APLIKASI PEMERIKSA KEBENARAN KATA (SPELLING CHECKER) BAHASA INDONESIA PADA TEKS ARTIKEL BERBAHASA INDONESIA oleh: Gregorius S. Budhi1 ; Irwan Kristanto J.2 ; Elvi Suhartono3 1) Dosen tetap UK Petra Surabaya jurusan Teknik Informatika email: [email protected] 2) Dosen tetap UK Petra Surabaya jurusan Teknik Informatika email: [email protected] 3) Alumni UK Petra Jurusan Teknik Informatika ABSTRAK Seperti halnya bahasa-bahasa lainnya, bahasa Indonesia juga memiliki struktur yang membentuk bahasa tersebut sehingga banyak orang dapat memahaminya. Tetapi pada penerapannya dalam tulisan, banyak orang yang masih salah saat menulis kata bahasa indonesia. Dari sini muncul ide pembuatan sebuah aplikasi untuk memeriksa kata dalam bahasa Indonesia yang benar dari sebuah inputan berbentuk teks. Secara garis besar program ini melakukan proses scanner kata. Proses ini berfungsi untuk memeriksa tiap kata dari teks input. Perangkat lunak memerlukan paling sedikit 10.000 kosakata agar proses pemeriksaan kata semakin variatif. Proses scanner dapat menerima kata tunggal, kata ulang, serta kata-kata yang memiliki format tertentu, misalnya format tanggal dan sebagainya. Aplikasi ini dibuat menggunakan Delphi 6, dan database kata disimpan pada MS. Access 2000. Hasil dari proses scanner berupa semua kalimat yang tiap katanya benar, semua kalimat yang memiliki kesalahan pada katanya, daftar kata – kata yang salah dan sebuah daftar yang berisi beberapa kata yang disarankan sebagai pengganti kata salah yang diperiksa. Kata kunci: Bahasa Indonesia, Pemeriksaan Kata, Spelling Checker 1. Pendahuluan Seperti halnya bahasa-bahasa lainnya, bahasa Indonesia juga memiliki struktur yang membentuk bahasa tersebut sehingga bahasa tersebut dapat dipahami oleh banyak orang. Dalam bahasa Indonesia, terdapat huruf-huruf, kata-kata, dan kalimat-kalimat dimana kumpulan huruf-huruf membentuk kata, kumpulan kata membentuk kalimat kumpulan kalimat membentuk paragraf, dan seterusnya. Pada penerapannya dalam tulisan, banyak orang yang masih salah saat menuliskan kata – kata dalam bahasa Indonesia. Dari sini muncul ide pembuatan sebuah program aplikasi untuk memeriksa kebenaran kata – kata yang ditulis dalam bahasa Indonesia. Atau dengan kata lain sebuah Spelling Checker untuk bahasa Indonesia. 1 2. Teori Penunjang 2.1. Tata Bahasa Baku Bahasa Indonesia Tatabahasa Indonesia terdiri atas tiga unsur, yaitu fonologi, morfologi, dan sintaksis[4]. Dalam aplikasi ini, hanya morfologi yang diterapkan. 2.1.1. Morfologi Bagian dari tatabahasa yang membahas bentuk kata disebut morfologi. Didalam morfologi dikenal istilah morfem, dimana morfem adalah kesatuan yang ikut serta dalam pembentukkan kata dan yang dapat dibedakan artinya[4]. 2.1.2. Kata Kata adalah kesatuan terkecil dalam tatabahasa yang mengandung suatu ide[3]. Berdasarkan bentuknya kata dapat dibagi menjadi: Kata Dasar, Kata Berimbuhan, Kata Ulang, Kata Majemuk[3]. Berdasarkan jenisnya kata dapat dibagi menjadi: Kata Benda (Nomina), Kata Kerja (Verba), Kata Sifat (Adjektiva), Kata Keterangan (Adverbia), Kata Ganti (Pronomina), Kata Bilangan (Numeralia), Kata Depan (Preposisi) dan Kata Sambung (Konjungsi) [3]. 2.1.3. Imbuhan (Afiks) Imbuhan adalah suatu unsur struktural yang diikatkan pada sebuah kata dasar. Imbuhan terbagi atas: Awalan (Prefiks), Sisipan (Infiks), Akhiran (Sufiks), Konfiks dan Gabungan imbuhan yaitu pemakaian beberapa imbuhan sekaligus pada suatu kata dasar[3]. 3. DESAIN APLIKASI Desain dari aplikasi ini dapat dilihat pada gambar 1. Gambar 1: Desain Aplikasi 2 3.1. Pemilahan Lexeme Pada proses pemilihan ini, inputan teks akan dipilahpilahkan berdasarkan kriteria tertentu, yaitu: - Kumpulan angka, akan dipisahkan menjadi satu lexeme tersendiri. Misalnya: “1”, “23”, “222” dan sebagainya. - Kumpulan huruf, akan dipisahkan menjadi satu lexeme tersendiri. Misalnya “abc”, “saya”, “makan” dan sebagainya. - Gabungan angka dan tanda, seperti angka dengan tanda “.”, tanda “/”, serta tanda “,” akan dipisahkan menjadi satu lexeme tersendiri. Misalnya “123.000”, “1.550,00”, “1/2”, “100,5” dan sebagainya. - Gabungan huruf dengan angka, akan dipisahkan menjadi satu lexeme tersendiri. Misalnya: “as31asd23”, “a2da32” dan sebagainya. - Tanda baca. Masing-masing tanda akan menjadi suatu lexeme tersendiri. Terdiri atas tanda-tanda baca yang berlaku menurut tata bahasa Indonesia, yaitu tanda spasi (“ “), tanda titik (“.”), tanda seru (“!”), tanda tanya (“?”), tanda koma (“,”), tanda titik koma (“;”), tanda titik dua (“:”), tanda hubung (“-“), tanda petik dua (“ “ ”), dan tanda garis miring (“/”). Setelah memilah-milahkan inputan menurut kriteria yang ada, maka lexeme-lexeme yang telah dipilah akan dimasukkan ke dalam penyimpan variabel lexeme. 3.2. Proses Penentuan Jenis Token Secara garis besar token terdiri dari bagian: - Separator, terdiri atas tanda baca. Masing-masing tanda baca dianggap sebagai sebuah token, seperti misalnya token “titik”, “spasi”, “koma”, “tanda tanya” dan sebagainya - Kata, token ini masih dibedakan lagi ke dalam jenis-jenis kata. Di dalam jenis token kata ini terdapat format-format lexeme tertentu yang juga termasuk di dalam token kata, antara lain: Angka, dimana angka ini dapat berupa angka romawi maupun arab. Lexeme dengan format angka ini berjenis kata: numeralia. Tanggal. Nama. Lexeme yang merupakan nama akan berjenis kata pronomina. Identifier, yang termasuk ke dalam token ini adalah lexeme-lexeme yang tidak termasuk ke dalam jenis token lainnya. 3 Pada Proses Penentuan Token ini, terdapat prosedur pemeriksaan jenis token, yaitu: 1. Proses pemeriksaan kata ulang, Proses ini digunakan untuk memeriksa kata ulang. Flowchart dari proses ini dapat dilihat pada gambar 4. Gambar 2: Flowchart Proses pemeriksaan kata ulang 2. Proses pemeriksaan format angka romawi, angka arab dan tanggal. Untuk pemeriksaan format ini di disain tiga buah Deterministic Finite Automaton (DFA) yang dapat dilihat di gambar 3 sampai dengan gambar 5. Gambar 3: DFA Proses Pemeriksaan Format Angka Arab Gambar 4: DFA Proses Pemeriksaan Format Tanggal Gambar 5: DFA Proses Pemeriksaan Format Angka Romawi 4 3. Proses Normalisasi. Pada proses normalisasi ini lexeme akan diperiksa apakah merupakan kata turunan (bentuk dasar yang telah mengalami penambahan imbuhan). Flowchart dari proses Normalisasi ini dapat dilihat pada gambar 6. Gambar 6: Flowchart Proses Normalisasi Didalam proses normalisasi ini ada beberapa proses pemeriksaan kata, yaitu: a. Pemeriksaan Partikel dan Klitika. Awalnya Lexeme diperiksa terlebih dahulu apakah mengandung sebuah partikel atau tidak. Kalau mengandung partikel, maka partikel akan dipisahkan dari lexeme lalu disimpan sebagai satu lexeme tersendiri. Pemeriksaan selanjutnya adalah apakah lexeme tersebut mengandung klitika. Kalau mengandung klitika, maka klitika akan dipisahkan dari lexeme lalu disimpan sebagai satu lexeme tersendiri. Flowchart dari proses ini dapat dilihat pada gambar 9. Gambar 7: Flowchart pemeriksaan Partikel dan Klitika b. Pemeriksaan Awalan dan Nasalisasi. Lexeme akan diperiksa apakah menggunakan awalan apa tidak. Selain itu, juga diperiksa apakah awalan tersebut memang boleh digunakan pada kata dasar atau tidak. Pemeriksaan 5 awalan pada lexeme ini juga termasuk pemeriksaan Nasalisasi dan Peluluhan. Flowchart dari proses ini dapat dilihat pada gambar 8 sampai dengan 12. Gambar 8: Flowchart pemeriksaan Awalan dan Nasalisasi Gambar 9: Flowchart pemeriksaan Awalan dan Nasalisasi (lanjutan) Gambar 10: Flowchart pemeriksaan Awalan dan Nasalisasi (lanjutan) Gambar 11: Flowchart pemeriksaan Awalan dan Nasalisasi (lanjutan) Gambar 12: Flowchart pemeriksaan Awalan dan Nasalisasi (lanjutan) 6 c. Pemeriksaan Akhiran. Lexeme akan diperiksa apakah menggunakan akhiran apa tidak. Selain itu, juga diperiksa apakah akhiran tersebut boleh digunakan pada kata dasar atau tidak. Flowchart proses ini dapat dilihat pada gambar 13. d. Pemeriksaan Sisipan. Lexeme akan diperiksa apakah menggunakan sisipan apa tidak. Kemudian diperiksa apakah sisipan tersebut boleh dipergunakan pada kata dasar atau tidak. Flowchart proses ini dapat dilihat pada gambar 14. Gambar 13: Flowchart pemeriksaan Akhiran Gambar 14: Flowchart pemeriksaan Sisipan e. Pemeriksaan Konfiks dan Gabungan Imbuhan. Pertama-tama lexeme akan diperiksa apakah menggunakan konfiks atau tidak. Selain itu, juga diperiksa apakah konfiks tersebut boleh digunakan atau tidak. Kemudian lexeme akan diperiksa apakah menggunakan gabungan imbuhan atau tidak, dan juga diperiksa apakah gabungan imbuhan tersebut memang boleh digunakan atau tidak. Flowchart dari proses ini dapat dilihat pada gambar 15 dan gambar 16. Gambar 15: Flowchart pemeriksaan Konfiks dan Gabungan Imbuhan Gambar 16: Flowchart pemeriksaan Konfiks dan Gabungan Imbuhan (lanjutan) 7 3.3. Database Kosa Kata Database Kosa Kata yang digunakaan untuk menyimpan daftar kata, jenis kata dan imbuhan yang dapat dikenakan pada setiap kata, terdiri dari dua buah tabel dengan relasi one to one, seperti terlihat pada gambar 17. Gambar 17: Database Kosa Kata 3.4. Penanganan Kata yang Salah 1. Apabila pada lexeme telah dilakukan pemeriksaan imbuhan (Normalisasi) tetapi tetap tidak ditemukan kata dasar dari lexeme tersebut, maka lexeme tersebut akan dianggap sebagai kata dasar yang salah. Langkah berikutnya adalah melakukan pencarian semua kata yang mirip dengan lexeme tersebut pada database Kosa Kata kemudian menampilkannya sebagai saran. 2. Sedangkan untuk lexeme yang mengalami kesalahan pada pemakaian imbuhan akan dianggap sebagai kata yang salah pula. Bila terjadi kesalahan seperti ini, maka aplikasi akan memberikan peringatan pada user bahwa “Telah terjadi kesalahan pada penggunaan Imbuhan”. 8 4. PENGUJIAN Pengujian dilakukan untuk menguji apakah fungsi – fungsi pemeriksaan kata dan imbuhan sudah benar. Serta untuk menguji apakah Desain DFA untuk memeriksa format Angka Arab, Angka Romawi dan tanggal sudah benar. Peralatan yang digunakan dalam pengujian ini adalah sbb: Stand Alone PC : Processor AMD Atlon, RAM 256Mb Compiler : Delphi 6 Database : MS. Access 2000 Hasil dari pengujian dapat dilihat pada Tabel 1. Tabel 1: Hasil Pengujian No. Input Text 1 Makn 2 as22aa 3 4 6 Abud makn bakwan. Saya memakan bakwan. Saya memakan bakwan. Roti dimakan Abud. Kalimat salah Makn Abud makn bakwan. Roti dimakan Abud. III 8 IIIV IIIV 03-11-2004 sampai dengan 11/12/04 03-112004 sampai dengan 11/12/04 10 Tes tes tes 1, 2, 3, ini pengujian dan percobaan ! Makn abaimana, bagaimana, bakwan, makan, dsb. Abud abad, abadi, abdi, absurd, abu, dsb. makn abaimana, bagaimana, bakwan, makan, dsb. Keterangan Untuk kata yang salah akan dicarikan padanan yang mirip dari data kata yang ada dalam database, atau dapat juga user yang memberikan inputan pengganti. Identifier, tidak ada kata yang salah. Dapat dianggap benar oleh user dengan cara menekan tombol “Abaikan” Untuk membenarkan kata yang salah ini, user dapat menekan tombol “Abaikan” atau mengubahnya dengan memakai saran yang ada / inputan dari user dengan menekan tombol “Ubah Tidak ada kata yang salah. 7 9 Hasil Pengujian Kata Kata Saran salah Abud abad, abadi, abdi, absurd, abu, dsb. administrasi, afiliasi, investigasi, dsb. sampai dadaisme, damai, sabit, saga, saja, dll dengan daerah, dalang, sandera, sandung, dst. Dapat dianggap benar oleh user dengan cara menekan tombol “Abaikan”. Format Angka Romawi benar, tidak ada kata yang salah. Susunan angka romawi ini tidak benar, kata yang dimasukkan tidak dianggap sebagai angka romawi tetapi sebagai kumpulan huruf I dan V. Kata salah. Format Tanggal benar, tapi kata ‘sampai’ salah, karena kata tersebut belum ada pada database Kosa Kata. Dapat dianggap benar dengan cara menekan tombol “Abaikan”. Kata ‘dengan’ dianggap salah karena belum ada pada database Kosa Kata. Tidak ada kata yang salah. 9 5. KESIMPULAN - Semakin banyak Kosa Kata Dasar yang ada database Kosa Kata akan meningkatkan kemampuan apliksi ini dalam memeriksa variasi kata inputan. - Dari Pengujian didapat hasil bahwa desain DFA untuk memeriksa format tanggal, angka romawi, serta angka arab pada aplikasi ini sudah benar. - Dari Pengujian didapat hasil bahwa fungsi-fungsi untuk memeriksa jenis kata, imbuhan kata ulang, identifier, imbuhan dan nasalisasi sudah benar. - Dari hasil pengujian ditemukan bahwa identifier yang memiliki bentuk kata mirip dengan salah satu kata dasar pada tabel kosa kata akan menyebabkan sistem mengganggap indentifier tersebut sebagai kata yang salah. - Dari hasil pengujian secara keseluruhan dapat disimpulkan bahwa program aplikasi ini dapat digunakan untuk memeriksa kebenaran kata bahasa Indonesia. DAFTAR PUSTAKA 1. Cohen, Daniel I. A. Introduction to Computer Theory. Rev. ed. John Wiley & Sons, Inc, 1991. 2. Carrol, John, Long, Darrell, Theory Of Finite Automata With An Introduction To Formal Language, Prentice Hall Int. 1989 3. Pusat Pembinaan dan Pengembangan Bahasa Dep P dan K RI. Pedoman Umum Ejaan Bahasa Indonesia yang Disempurnakan. Ed. ke 2. Jakarta: Grasindo, 1993. 4. Dep P dan K RI. Tata Bahasa Baku Bahasa Indonesia. Cet. ke 3. Jakarta: Perum Balai Pustaka, 1992. Gregorius S. Budhi, memperoleh gelar S.T. dari Teknik Elektro ITATS Surabaya tahun 1993. Tahun 2001 memperoleh gelar M.T. dari Teknik Informatika ITS Surabaya. Saat ini sebagai staf pengajar tetap Teknik Informatika UK Petra, Surabaya. Irwan Kristanto J., memperoleh gelar S.T. dari Teknik Industri UK Petra Surabaya dan gelar S.Kom dari Teknik informatika STTS Surabaya pada tahun 1997. Saat ini sebagai staf pengajar tetap Teknik Informatika UK Petra, Surabaya. Elvi Suhartono, memperoleh gelar S.Kom dari Teknik Informatika UK Petra Surabaya tahun 2004. Saat ini sebagai staf karyawan sebuah perusahaan swasta di Surabaya. 10