KBBI ke MySQL: Teknik Konversi Data Kamus Besar Bahasa Indonesia dari Format Manual ke Database (1)

SEBAGAI seorang penulis pengagum kata, tentunya saya memerlukan kamus. Untuk referensi dalam bahasa Indonesia, di deretan rak buku ada beberapa kamus bahasa Indonesia, mulai dari yang tipis, sampai kamus tebal seperti karya J.S. Badudu, dan juga Kamus Besar Bahasa Indonesia (KBBI).
Mencari arti kata menggunakan kamus cetak, sungguh merepotkan untuk zaman canggih seperti sekarang ini. Belum lagi masalah mobilitas, karena beratnya lebih dari sebuah laptop. Solusinya, ya, benar sekali, harus ada kamus elektronik alias kamus digital.
Tentunya bukan sembarang kamus elektronik, karena harus merujuk pada bahasa yang baik dan benar versi Pusat Bahasa. KBBI boleh dibilang kamus yang paling lengkap saat ini, meski baru tahun 2008 menyediakan versi online. Ada juga beberapa laman situs yang menyediakan kamus versi PDF untuk KBBI.
Saya akan mengulas dulu KBBI dalam format PDF—yang dulu saya unduh dari web Kemendiknas. KBBI versi PDF dibagi menjadi file-file PDF berdasarkan abjad, jadi ada 26 file PDF dari A-Z. Ukurannya gendut-gendut untuk format teks, karena setiap file menyertakan cover kamus dan penjelasan penggunaan kamus. Dalam file yang memuat entri Q, misalnya, terdapat 19 halaman. Padahal yang memuat lema dari abjad Q hanya 1 halaman.
Misalnya kita ingin mencari lema ”bulan”, maka kita harus mencari dulu file B.pdf, kemudian cari kata bulan (bisa menggunakan fasilitas Find peda PDF Reader). Ini juga cukup repot karena kemungkinan tidak langsung menuju ke lema ”bulan”, malah lema ”badar” yang duluan tampil, karena di sana ada kalimat ”mukanya spt bulan”. Intinya, untuk versi PDF, masih memerlukan waktu dalam hal pencarian.
Kemudian saya beralih ke versi online di web pusatbahasa.diknas.go.id/kbbi. Jelas yang ini harus selalu koneksi ke internet. Memang lebih simpel dari versi PDF, tetapi menurut saya masih memiliki beberapa kekurangan. Pada form pencarian, entahlah, saya kurang begitu paham maksud ”sama dengan”, ”diawali”, atau ”memuat”. Kemudian kita hanya bisa mencari kata dasar saja berdasarkan lema. Jika kita mencari ”bulan purnama”, maka akan diberi jawaban ”tidak menemukan kata yang sesuai dengan kriteria pencarian!!!” (dengan warna merah, dan tanda seru tiga).
Pencarian KBBI online sepenuhnya menggunakan metoda POST. Ketika mencari kata “burung”, ia akan menampilkan dulu “daftar kata burung” (daftar, tapi cuma ada satu). Untuk melihat arti “burung”, maka menekan klik sekali lagi. Kurang praktis, apalagi jika koneksi internet pas-pasan. Ya, jangankan membuat servis API untuk dibuka dari web lain, KBBI online masih memerlukan reprogramming agar lebih disukai pengguna.
Kemudian hadirlah beberapa KBBI versi offline, dan sepertinya menjawab ketidakpuasan pengguna internet terhadap KBBI online. Saya menemukan 2 kamus, yaitu Stardic (stardict.sourceforge.net), dan KBBI Offline karya Ebta Setiawan (ebsoft.web.id). Sumbernya masih pada KBBI Daring yang disediakan oleh Pusat Bahasa.
Cukup nyaman menggunakan kedua kamus tersebut. Tangtangan lain ketika saya ingin menggabungkan kamus dengan aplikasi yang saya buat. Contoh sederhananya begini. Misalnya ketika saya memuat sebuah tulisan di web (dalam bahasa Indonesia, tentunya), pengunjung bisa melihat arti dari kata yang ada pada tulisan tersebut dengan cara klik ganda. Bagi para programmer, tidak sulit tentunya, dengan syarat memiliki database KBII yang lengkap.
Nah, itulah dia, masalah database yang menjadi persoalan. Untuk membuat database KBBI yang lengkap, dikerjakan seorang diri, secara manual pula (misalnya copy-paste), bisa menghabiskan waktu “separuh umur”. Saya pun berpikir demikian. Rasanya terlalu berlebihan jika harus menambah pekerjaan dengan copy-paste puluhan ribu entri KBBI. Tapi saya benar-benar ingin memiliki database KBBI, setidaknya pada format MySQL.
Kang Google pun saya gunakan, untuk mencari-cari orang yang berbaik hati menaruh database KBII. Hasilnya masih nihil, atau mungkin matak saya kurang jeli melihat hasil index Kang Google. Malah tiba-tiba saya menenukan KBBI versi lainnya, yaitu CHM, yang disimpan di sini (http://dc119.4shared.com/download/lrqYBX5p/KBBILuring.chm?tsid=20110410-111951-721669cb). Terima kasih untuk yang telah berkenan hati mengunggahnya.
CHM merupakan jenis file dari Microsoft yang terdiri kompilasi file-file HTML. KBBI versi CHM kemudian saya decode menggunakan CHM Decoder (http://www.gridinsoft.com/downloads/chm.zip). Hasilnya, wow, CHM tersebut beranak-binak menjadi 36.007 file HTML.
Dari sana saya menyusun jalan cerita (anak IF menyebutnya algoritma).
- Buat database dan tabel di MySQL untuk memuat setiap entri kamus yang terdiri dari field kata beserta artinya.
- Analisa file HTML dengan membuang tag yang tidak perlu, dan hanya mengambil data yang dibutuhkan database.
- Untuk menghemat waktu, semua data dalam 36 ribu file HTML harus masuk ke database dalam satu kali klik.
- Penjelasan dari suatu lema, harus pilah kembali berdasarkan sublema, cara pengucapan, kelas kata, contoh kalimat, peribahasa, dan pernak-pernik kamus lainnya.
Untuk langkah 1 sampai 3 tak begitu mendapat tantangan berarti. Bisa dilakukan hanya dengan beberapa baris PHP dan jQuery. Tekniknya adalah dengan “menyuruh” PHP membaca file HTML satu persatu, kemudian memilah menjadi lema dan arti lema, kemudian memasukkannya ke database, dan setelah sukses membaca file berikutnya, dan berhenti ketika semua file selesai dibaca. Pada prosesor Dual Core di laptop saya, perintah tersebut mampu mengeksekusi 20 file perdetik, artinya tak lebih satu jam semua data telah masuk ke database.
Ada satu pekerjaan lagi, yaitu memilah arti kata berdasarkan sublema, kelas kata, dan lain-lain. Tetapi, akan saya lanjutkan besok karena tengah malah telah lewat.***(Dadan Sutisna)
