Semua artikel

Mengurutkan dan menghapus duplikat baris: untuk apa gunanya

Kamus Besar Bahasa Indonesia (KBBI) mengalfabetisasi kata ulang seperti "kupu-kupu" atau "buku-buku" sebagai satu entri di bawah huruf awalnya, bukan sebagai dua kata terpisah yang diurutkan tanda hubungnya. Alat pengurutan teks biasa tidak tahu konvensi ini — bagi mesin, tanda hubung - hanyalah karakter biasa yang dibandingkan seperti karakter lain.

Pengurutan alfabet vs numerik

Pengurutan alfabet (leksikografis) membandingkan string karakter demi karakter, seperti teks. Karena itu, string "10" berakhir sebelum "9", karena karakter "1" secara leksikografis lebih kecil dari "9" — pengurutan tidak "memahami" bahwa itu adalah angka. Pengurutan numerik, sebaliknya, mengurai string sebagai angka sebelum membandingkan, menghasilkan urutan yang diharapkan 9, 10, 11.

Sensitivitas huruf besar/kecil saat mengurutkan

Di sebagian besar sistem, huruf besar secara leksikografis mendahului huruf kecil (karena pengkodean karakter), jadi "Zebra" bisa berakhir sebelum "apel" dalam pengurutan yang peka huruf besar/kecil. Pengurutan yang tidak peka huruf besar/kecil terlebih dahulu menormalkan string ke kapitalisasi yang sama untuk perbandingan, sambil tetap mempertahankan kapitalisasi asli dalam hasil.

Menghapus duplikat

Deduplikasi menghapus baris berulang dengan membandingkannya karakter demi karakter, bukan berdasarkan makna. Nuansa penting adalah sensitivitas terhadap huruf besar/kecil dan spasi: string "Teks" dan "teks " (dengan spasi ekstra) secara teknis berbeda dan tidak akan digabung tanpa normalisasi tambahan sebelum dibandingkan.

Untuk apa ini dibutuhkan

  • Menghapus entri berulang dari daftar alamat email atau URL sebelum impor.
  • Mengurutkan daftar versi atau ID secara numerik, bukan sebagai teks.
  • Membandingkan dua kumpulan data dengan cepat dengan membawa kedua daftar ke bentuk terurut yang sama.

Pengurutan alami (natural sort)

Pengurutan alami adalah kompromi antara pendekatan alfabet dan numerik: ia mengenali rangkaian angka di dalam string sebagai angka, sementara karakter lainnya dibandingkan sebagai teks. Berkat ini, file2.txt akan berada sebelum file10.txt, meskipun secara formal ini adalah string, bukan angka mandiri — berguna untuk nama berkas atau versi dengan prefiks teks.

Coba alat