Pisahin TLD Domain Pakai Python Biar Nggak Ngehang di Notepad++

Pisahin TLD Domain Pakai Python Biar Nggak Ngehang di Notepad++

Kalau alldomain.txt kebanyakan, mending pisahin domain per TLD pakai Python. Sekalian hapus yang sudah dipindah dari file sumber.

Masalahnya simpel: file kebanyakan, Notepad++ mulai ngeluh

Gue punya file alldomain.txt isinya kumpulan domain. Awalnya pengen misahin berdasarkan TLD kayak .com, .net, .org, dan .id pakai mark di Notepad++. Tapi pas datanya udah banyak, aplikasi mulai ngehang.

Jadi ya, daripada maksa editor teks, mending pindah ke Python. Jauh lebih enak buat kerja model begini.

Solusinya: baca file, filter TLD, simpan ke file baru

Intinya script ini bakal:

  • baca alldomain.txt
  • pisahin domain sesuai TLD yang lu tentuin
  • simpan ke file terpisah seperti domain_com.txt, domain_net.txt, dan seterusnya
  • hapus domain yang sudah dipindah dari file sumber

Jadi file sumber cuma nyisain domain yang belum masuk kategori mana pun.

Script Python

from collections import defaultdict

input_file = 'alldomain.txt'

# TLD yang mau dipisah
# Tambahin sendiri kalau perlu
simple_tlds = ['.com', '.net', '.org', '.dev', '.ai', '.io', '.stream', '.cloud', '.co']

# Variasi .id biar ikut ketangkep
id_variations = ['.id', '.co.id', '.net.id', '.my.id', '.or.id', '.ac.id', '.sch.id', '.go.id', '.mil.id']

with open(input_file, 'r', encoding='utf-8', errors='ignore') as f:
    domains = [line.strip() for line in f if line.strip()]

domain_groups = defaultdict(list)
remaining_domains = []

for domain in domains:
    matched = False
    lower_domain = domain.lower()

    # Prioritas untuk variasi .id
    for vid in id_variations:
        if lower_domain.endswith(vid):
            domain_groups['.id'].append(domain)
            matched = True
            break

    if not matched:
        for tld in simple_tlds:
            if lower_domain.endswith(tld):
                domain_groups[tld].append(domain)
                matched = True
                break

    if not matched:
        remaining_domains.append(domain)

for tld, dom_list in domain_groups.items():
    clean_tld = tld.lstrip('.').replace('.', '_')
    output_file = f'domain_{clean_tld}.txt'

    with open(output_file, 'w', encoding='utf-8') as f:
        for dom in sorted(dom_list):
            f.write(dom + '\n')

    print(f'✅ {len(dom_list)} domain disimpan ke {output_file}')

with open(input_file, 'w', encoding='utf-8') as f:
    for dom in sorted(remaining_domains):
        f.write(dom + '\n')

print(f'Sisa domain yang tidak masuk kategori: {len(remaining_domains)}')
print('Proses selesai.')

Cara pakai

  1. Simpan script ini sebagai separate_domains.py
  2. Taruh alldomain.txt di folder yang sama
  3. Jalankan command ini
python3 separate_domains.py

Kalau mau nambah TLD lain

Tinggal edit list ini:

simple_tlds = ['.com', '.net', '.org', '.dev', '.ai', '.io', '.stream', '.cloud', '.co']

Misalnya mau nambah .xyz, .app, atau .site, tinggal masukin aja ke list.

Catatan kecil biar nggak kejebak

  • Pakai endswith() supaya matching-nya lebih aman.
  • Variasi .id gue pisahin khusus karena bentuknya banyak.
  • File output otomatis disortir biar enak dicek lagi.
  • Kalau datanya gede banget, Python tetap jauh lebih waras daripada ngandelin editor teks.

Penutup

Kalau lu sering ngurus file domain besar, workflow kayak gini lumayan ngirit waktu. Sekali jalan, domain udah kepisah rapi, file sumber juga langsung bersih dari yang udah dipindah.

Kalau mau, script ini masih bisa gue bantu upgrade lagi buat: hapus duplikat, validasi domain, bikin folder output otomatis, atau nambah log yang lebih detail.

Tags: Catatan Teknis, Python, Domain, Notepad++, CLI