4
dilakukan oleh Muslik (2009). Tahap selanjutnya yaitu pembuatan modul word graph kata kerja pada KG_EDITOR. Metode pengembangan sistem yang digunakan dalam pembuatan modul kata kerja ini yaitu prototype. Metode Pengembangan Prototype Model pengembangan prototype digunakan karena definisi tujuan perangkat lunak yang diberikan terlalu umum dan tidak menjelaskan kebutuhan masukan, proses, dan keluaran perangkat lunak secara spesifik. Metode pengembangan prototype dimulai dengan mengumpulkan semua informasi tentang kebutuhan, batasan, dan tujuan dalam membangun sistem (listen to customer). Setelah diperoleh kebutuhan inti perangkat lunak, selanjutnya dibuat mock-up atau desain ringkas sistem (build/revise mock-up). Mock-up dapat berbentuk sketsa ataupun kerangka perangkat lunak yang akan dibuat. Pengujian terhadap mock-up dilakukan oleh pengguna untuk mengetahui kekurangan sistem (customer testdrives mock-up). Koreksi sistem dilakukan berdasar pada hal-hal yang perlu diperbaiki pada mock-up. Iterasi berlangsung hingga sistem memenuhi kebutuhan pengguna (Pressman 2001). Proses pengembangan sistem prototype dapat dilihat pada Gambar 2.
listen to customer
build/revise mock-up
customer test-drives mock-up Gambar 2 Metode pengembangan perangkat lunak prototype. Listen to Customer Tahap awal pembuatan sistem yaitu dengan mendeskripsikan batasan dan kemungkinan kebutuhan sistem. Hal tersebut dapat diperoleh dari pengguna maupun berdasarkan analisis terhadap penelitian sebelumnya. Pengguna merupakan bagian terpenting pada metode prototype karena pengguna merupakan komponen yang menentukan apakah prototype yang dibuat telah memenuhi spesifikasi untuk dikembangkan sebagai produk. Informasi yang dicari pada tahap ini, yaitu mengenai deskripsi umum, deskripsi proses, kebutuhan, dan batasan sistem serta karakteristik serta kebutuhan pengguna.
Build/Revise Mock-up Tahap ini berfokus pada perencanaan dan perancangan prototype sistem. Sistem mulai dibuat sesuai informasi yang telah didapat setelah terkumpul informasi mengenai batasan dan kebutuhan sistem. Tujuan utama dari pembuatan mock-up adalah untuk menjawab satu atau lebih pertanyaan mengenai karakteristik fungsional dari produk. Mock-up yang dibuat berupa perancangan sementara yang berfokus pada penyajian kepada pengguna misalnya membuat format masukan dan keluaran sistem. Langkah-langkah pembuatan sistem meliputi perancangan antarmuka, perancangan kebutuhan fungsional, perancangan database, implementasi antarmuka, dan implementasi fungsional. Customer Test-drives Mock-up Tahap terakhir yaitu pengujian sistem oleh pengguna. Mock-up yang telah dibuat harus diuji untuk menentukan perilakunya dan mengumpulkan keluaran sehingga didapat produk yang sesuai dengan keinginan pengguna. Pengujian sistem bertujuan untuk melihat kesesuaian sistem dengan spesifikasi yang diberikan dan mencari kesalahan yang mungkin masih ada. Kesalahan yang ditemukan kemudian diperbaiki hingga sesuai dengan kebutuhan pengguna. Proses revisi dan pengujian terhadap mock-up dilakukan secara iteratif hingga didapatkan sistem yang sesuai dengan yang diinginkan oleh pengguna. Metode pengujian yang digunakan pada KG_EDITOR adalah metode black box. Pengujian sistem terfokus pada pengujian masukan dan keluaran sistem. Perhitungan akurasi modul word graph kata kerja dilakukan dengan menghitung banyak kata yang dapat dibangkitkan pola word graph kata kerja yang sesuai dari keseluruhan masukan yang diberikan. kata yang benar kurasi x kata yang diuji
HASIL DAN PEMBAHASAN Metode yang digunakan pada penelitian kali ini adalah metode prototype. Tahap awal metode tersebut yaitu membuat mock-up awal sesuai dengan kebutuhan pengguna. Mock-up yang telah dibuat kemudian dievaluasi dan kekurangan yang didapat dari hasil evaluasi kemudian diperbaiki untuk mendapatkan sistem yang sesuai dengan keinginan pengguna. Hal tesebut membuat keseluruhan proses pembuatan
5
modul word graph kata kerja terbagi atas beberapa iterasi. Penelitian mengenai pembuatan modul word graph kata kerja pada KG_EDITOR kali ini terbagi menjadi tiga iterasi. Iterasi 1 Listen to Customer Beberapa hal yang didapat berdasarkan komunikasi awal dengan pengguna dan analisis penelitian sebelumnya: 1 Deskripsi Umum Sistem KG_EDITOR adalah sebuah sistem berbasis desktop yang dikembangkan dengan menggunakan bahasa pemrograman Java. Sistem ini merupakan sebuah sistem yang digunakan untuk menganalisis teks dengan menerapkan konsep KG. Pengembangan KG_EDITOR dengan menggunakan bahasa pemrograman Java bertujuan untuk mengatasi kekurangan sistem Bogor_Delft_Construct pada penelitian sebelumnya, yaitu sistem dikembangkan dengan menggunakan MATLAB yang bersifat close platform. Penelitian kali ini dilakukan untuk menambahkan sebuah modul pembangkit word graph kata kerja pada sistem KG_EDITOR. Modul pembangkitan word graph kata kerja merupakan salah satu modul penyusun KG_EDITOR. Modul ini berfungsi untuk menampilkan word graph jenis kata kerja sesuai masukan yang diberikan pengguna. Terdapat 10 word graph kata kerja berdasarkan penelitian Muslik (2009) yang terdiri atas 31 aturan pembentukan kata kerja. Seluruh aturan pembentukan word graph kata kerja dapat dilihat pada Lampiran 1. 2 Deskripsi Proses Sistem Sistem akan menampilkan lembar kerja berupa kanvas kosong sebagai default tampilan sistem. Proses pembentukan word graph kata kerja dapat dilakukan dengan memasukkan kata kerja sebagai masukan sistem, yaitu dengan memilih menu „Modul‟ kemudian memilih submenu „Kata Kerja‟ untuk menjalankan modul word graph kata kerja. Dialog box berisi text field akan muncul sebagai sarana untuk memasukkan kata kerja. Kata masukan tersebut kemudian akan diproses melalui beberapa tahapan dan diperiksa termasuk word graph kata kerja yang mana. Word graph yang sesuai dengan kata masukan kemudian digambarkan dan ditampilkan pada kanvas KG_EDITOR. Pesan peringatan akan muncul jika kata masukan tidak sesuai dengan aturan pembentukan kata kerja
berdasarkan penelitian yang telah dilakukan oleh Muslik (2009) atau tidak sesuai dengan aturan yang diberikan sistem. Pesan peringatan tersebut terdapat pada dialog box ataupun pesan pada kanvas KG_EDITOR. Seluruh tahap pembuatan modul word graph kata kerja dapat dilihat pada Lampiran 2. 3 Karakteristik Pengguna Sistem KG_EDITOR bukan merupakan sistem yang ditujukan sebagai alat pembelajaran mengenai KG. Oleh karena itu, pengguna sistem ini adalah orang yang sudah memahami konsep KG. Hal tersebut dikarenakan modul word graph kata kerja pada sistem ini berfungsi untuk menganalisis teks yang berupa kata kerja dengan menerapkan konsep KG. Pengguna dapat mengerti keluaran modul pada sistem yang berupa word graph kata kerja jika pengguna memahami konsep KG. 4 Kebutuhan Pengguna Pengguna dapat memilih modul jenis kata yang ingin dibangkitkan dalam bentuk word graph, dalam hal ini modul kata kerja. Pengguna juga dapat memasukkan kata kerja untuk mendapatkan word graph yang diinginkan. Kata masukan kemudian diproses oleh sistem. Pengguna dapat melihat word graph kata kerja sesuai dengan masukan yang diberikan jika proses sistem berjalan dengan baik dan memenuhi kondisi yang diberikan. Pengguna dapat melihat pesan peringatan jika suatu kondisi tidak terpenuhi. Gambar 3 menjelaskan deskripsi kebutuhan pengguna KG_EDITOR dalam use case diagram. Memasukkan Input Kata Kerja
Melihat Word Graph Kata Kerja
Melihat Pesan Peringatan Sistem
Pengguna
Gambar 3 Use case diagram pada modul word graph kata kerja. 5 Kebutuhan Sistem Sistem dapat berjalan sesuai dengan fungsinya jika semua kebutuhan sistem terpenuhi. Sistem membutuhkan beberapa fungsi untuk menerima dan mengolah kata masukan, serta menampilkan word graph hasil pembangkitan dari kata masukan. Suatu sarana dibutuhkan agar pengguna dapat memasukkan
6
kata kerja sebagai masukan dari sistem. Selain itu, modul word graph kata kerja pada KG_EDITOR membutuhkan data dari Kamus Besar Bahasa Indonesia (KBBI) yang disesuaikan, yang disimpan ke dalam database. KG_EDITOR juga membutuhkan fungsi stemming untuk mengakomodasi kata masukan yang tidak terdapat dalam KBBI. KBBI digunakan dalam proses pengecekan kata masukan dan pengecekan kata dasar pada proses stemming. Data lain yang diperlukan yaitu aturan pembentukan word graph kata kerja yang disimpan ke dalam database. Fungsi komponen dibutuhkan untuk menampilkan komponen-komponen pembentuk word graph kata kerja pada kanvas sistem. Komponen pembentuk tersebut didapat dari penelitian Walayatullah (2012). Build Mock-up Pembuatan mock-up dilakukan berdasarkan hasil komunikasi yang dilakukan dengan pengguna. Tahapan yang dilakukan pada pembuatan mock-up modul word graph kata kerja yaitu: 1 Perancangan Antarmuka Antarmuka utama KG_EDITOR adalah sebuah kanvas sebagai media visualisasi word graph. Kanvas berada dalam keadaan kosong saat pertama kali sistem dijalankan. Terdapat menu „File‟ dan „Modul‟ sebagai menu utama sistem. Menu „File‟ berisi submenu „Exit‟ untuk keluar dari KG_EDITOR. Beberapa pilihan jenis kata terdapat pada menu „Modul‟. Pengguna dapat memilih jenis kata yang ingin ditampilkan dalam bentuk word graph. 2 Perancangan Kebutuhan Fungsional Modul pembangkitan word graph kata kerja digunakan untuk menentukan word graph berdasarkan aturan pembentukan kata kerja sesuai dengan masukan yang diberikan pengguna. Aturan pembentukan terdiri atas imbuhan dan kategori kata dasar dari kata masukan. Word graph yang didapatkan kemudian ditampilkan pada kanvas. Proses pembangkitan word graph kata kerja meliputi: Praproses Kata kerja masukan dari pengguna langsung diproses pada tahap ini untuk membatasi nilai masukan pada sistem. Batasan nilai masukan untuk word graph kata kerja, yaitu kata masukan harus berupa kata tunggal, tidak boleh kosong, dan tidak boleh mengandung simbol atau karakter numerik. Kata masukan kemudian akan diproses ke tahap selanjutnya jika keadaan tersebut terpenuhi.
Pengecekan KBBI Kata masukan kemudian diperiksa apakah terdapat pada KBBI atau tidak, dan apakah kata masukan tersebut berupa kata kerja atau bukan. Kata masukan akan dipecah menjadi kata dasar dan imbuhan jika kata masukan merupakan kata kerja dan terdapat dalam KBBI yang disesuaikan. Kata dasar dari kata masukan didapat dari pencarian pada KBBI Stemming Kata masukan yang telah melalui praproses dan tidak terdapat dalam KBBI akan masuk ke dalam proses stemming. Proses stemming adalah proses pencarian kata dasar dengan menghilangkan kemungkinan imbuhan yang melekat pada kata dasar. Oleh karena itu, langkah awal proses stemming yaitu pencarian kemungkinan awalan dan akhiran yang melekat pada kata masukan. Proses stemming akan mengolah kata masukan untuk mendapatkan kata dasar yang sesuai. Karena sistem tidak mengetahui imbuhan apa saja yang harus dihilangkan agar kata dasar ditemukan, berbagai kemungkinan awalan dan akhiran pada kata masukan dihilangkan. Tahap tersebut menghasilkan beberapa calon kata dasar. Sistem melakukan pengecekan pada tiap calon kata dasar. Kata dasar yang didapat dari proses stemming harus berada pada KBBI. Jika tidak, proses tersebut tidak akan menghasilkan data imbuhan dan kategori kata dasar yang diperlukan untuk penentuan word graph. Proses stemming pada modul word graph kata kerja dibuat sesuai dengan aturan pembentukan word graph kata kerja pada penelitian Muslik (2009). Penentuan word graph kata kerja Pengecekan word graph kata kerja dilakukan setelah data yang diperlukan didapat. Data tersebut berupa imbuhan dan kategori kata dasar dari kata masukan. Data untuk penentuan word graph kata kerja dapat berasal dari proses pengecekan langsung pada KBBI ataupun melalui proses stemming terlebih dahulu. Penentuan word graph kata kerja dilakukan dengan mencocokkan kategori kata dasar dan imbuhan yang didapat dengan aturan pembentukan word graph kata kerja berdasarkan penelitian Muslik (2009).
Pembangkitan word graph kata kerja Pembangkitan word graph kata kerja dilakukan jika kata masukan memenuhi kondisi aturan pembentukan kata kerja tertentu. Word graph yang sesuai kemudian digambarkan dan ditampilkan pada kanvas yang tersedia. Kata
7
dasar masukan dan kata masukan juga termasuk dalam komponen penggambaran word graph kata kerja. 3 Perancangan Database Database yang digunakan dalam sistem ini bernama „kamus‟. Tabel yang digunakan untuk modul kata kerja terdiri atas dua buah tabel yaitu tabel „Entry‟ dan tabel „PolaKataKer‟. Data yang terdapat pada KBBI disimpan ke dalam tabel „Entry‟. Tabel „Entry‟ terdiri atas empat field yaitu „EntryId‟, „Word‟, „Category‟, dan „Stem‟. Field „EntryId‟ sebagai primary key tabel „Entry‟, sedangkan field „Word‟ berisi kata dalam bahasa Indonesia, baik yang berupa kata dasar maupun kata turunan yang sudah terdapat imbuhan di dalamnya. Field „Category‟ berisi kategori dari kata pada field „Word‟, seperti v (kata kerja), n (kata benda), dan sebagainya. Field „Stem‟ berisi kata dasar dari kata pada field „Word‟. Beberapa kata turunan dapat memiliki kata dasar yang sama. Contoh isi tabel „Entry‟ dapat dilihat pada Tabel .
4 Implementasi Antarmuka Antarmuka KG_EDITOR terdiri atas menu bar dan kanvas sistem. Terdapat dua menu pada menu bar, yaitu menu „File‟ dan menu „Modul‟. Tampilan awal KG_EDITOR pada saat dijalankan adalah menu bar pada bagian atas window dan di bawahnya terdapat kanvas yang masih dalam keadaan kosong. Menu „File‟ hanya berisi satu submenu yaitu „Exit‟ untuk keluar dari sistem, sedangkan menu „Modul‟ terdiri atas tiga submenu yaitu „Kata Keterangan‟, „Kata Benda‟, dan „Kata Kerja‟. Pengguna dapat memilih salah satu submenu jenis kata yang diinginkan, kemudian input dialog box akan muncul. Pembangkitan word graph kata kerja dapat dilakukan dengan memilih submenu „Kata Kerja‟ atau dengan menekan tombol shortcut CTRL + J pada keyboard. Terdapat sebuah text field pada input dialog box sebagai media bagi pengguna untuk memasukkan kata yang ingin ditampilkan dalam bentuk word graph. Tampilan submenu dan input dialog box sistem dapat dilihat pada Gambar 4 dan Gambar 5.
Tabel 1 Contoh isi tabel „Entry‟ EntryId
Word
Category
Stem
50637
tingkat
n
tingkat
50638
bertingkat
v
tingkat
50640
meningkat
v
tingkat
50642
meningkatkan
v
tingkat
50643
peningkatan
n
tingkat
Tabel „PolaKataKer‟ dalam database „kamus‟ digunakan dalam proses pengecekan aturan pembentukan word graph kata kerja. Tabel tersebut terdiri atas empat field, yaitu „ walan‟, „JenisKD‟, „ khiran‟, dan „Pola‟. Sesuai dengan nama field tersebut, masingmasing field berisi awalan, kategori kata dasar, akhiran, dan nama pola word graph dari suatu kata kerja. Contoh isi tabel „PolaKataKer‟ dapat dilihat pada Tabel 2. Tabel 2 Contoh isi tabel 'PolaKataKer' Awalan
JenisKD
Akhiran
Pola
me
v
kan
2
di
a
kan
3
ber
v
an
5
ke
n
an
6
Gambar 4 Tampilan menu „Modul‟ sistem.
Gambar 5 Tampilan input dialog box. Peringatan sistem ditampilkan dalam bentuk dialog box. Pesan peringatan pada dialog box akan muncul bila kata masukan tidak memenuhi kondisi tertentu. Kondisi-kondisi tersebut adalah kata masukan tidak boleh kosong, berisi lebih dari satu kata (dipisahkan oleh spasi), ataupun terdapat simbol atau numerik. Tampilan peringatan pada dialog box untuk tahap praproses dapat dilihat pada Lampiran 3. Pesan peringatan untuk kata masukan dapat muncul setelah praproses terpenuhi, yaitu dalam pengecekan pada KBBI. Pesan peringatan akan muncul seperti Gambar 6 jika kategori kata masukan bukan merupakan „v‟ atau kata kerja.
8
Gambar 6 Tampilan peringatan masukan bukan kata kerja. Pesan peringatan muncul tidak hanya pada kesalahan dalam memasukkan kata masukan ke sistem, tetapi pesan peringatan juga muncul setelah proses stemming dilakukan. Calon-calon kata dasar yang diperoleh kemudian dicek keberadaannya pada KBBI. Jika semua calon tidak memenuhi kondisi yang diberikan atau proses stemming tidak menghasilkan kata dasar yang sesuai, pesan peringatan seperti pada Gambar 7 akan muncul.
Gambar 7 Tampilan peringatan kata dasar tidak ditemukan. Jika tidak terdapat kata dasar yang dikenali, aturan pembentukan word graph kata masukan juga tidak dapat ditemukan sehingga word graph tidak dapat ditampilkan. Selain itu, jika data yang didapat tidak memenuhi aturan pembentukan kata kerja, pola juga tidak dapat ditemukan. Pesan peringatan akan ditampilkan pada kanvas jika kondisi tersebut terjadi. Tampilan pesan peringatan tersebut dapat dilihat pada Gambar 8.
Gambar 8 Tampilan peringatan pada kanvas. 5 Implementasi Fungsional Praproses Tahap awal pembangkitan word graph kata kerja yaitu praproses yang bertujuan untuk membatasi nilai masukan. Kata masukan harus
berupa kata tunggal atau tidak mengandung spasi („ ‟). Kata tunggal juga dapat berupa kata berulang, baik berimbuhan maupun tidak, yang dihubungkan dengan tanda hubung (-). Kata masukan tidak boleh mengandung numerik atau simbol dan kata masukan tidak boleh kosong. Sistem dapat menerima kata masukan yang berupa huruf kapital, huruf kecil, atau gabungan keduanya karena kata masukan akan diubah ke dalam huruf kecil semua pada proses sistem. Class yang digunakan pada tahap ini adalah class „CekInputKerja‟. Kata masukan akan diproses ke tahap selanjutnya jika keadaan pada tahap praproses terpenuhi. Jika tidak terpenuhi, kata masukan tidak akan diproses ke tahap selanjutnya dan sistem akan menampilkan pesan peringatan. Contoh kata masukan yang diberikan pengguna adalah „mengairi‟. Kata tersebut akan melalui proses pengecekan apakah sesuai dengan kondisi yang diperbolehkan sistem. Berdasarkan pengecekan, kata „mengairi‟ memenuhi kondisi sistem dan dapat diproses ke tahap selanjutnya. Pengecekan KBBI Kata masukan yang telah lolos tahap praproses kemudian diperiksa apakah kata tersebut terdapat dalam KBBI yang disesuaikan. Proses pengecekan ini dilakukan oleh class „Kata‟. Proses yang terjadi ketika dilakukan pengecekan yaitu sistem akan memeriksa apakah kata masukan terdapat pada KBBI yang disesuaikan, yang dalam penelitian ini disimpan pada tabel „Entry‟. Pemeriksaan kata masukan pada KBBI dilakukan dengan menggunakan method Kata(). Kata masukan diperiksa apakah terdapat dalam field „Word‟ atau tidak. Kategori kata masukan akan diperiksa jika kata tersebut terdapat dalam field „Word‟. Kategori kata masukan didapat dengan mencari dalam field „Category‟. Kategori kata masukan tersebut harus berupa „v‟ atau kata kerja jika kata masukan terdapat dalam KBBI. Kemudian, diambil data kata dasar dari kata masukan dalam field „Stem‟. Sistem akan menampilkan pesan peringatan jika kategori kata masukan bukan berupa kata kerja. Kata dasar tidak perlu dicari lagi karena jika kata masukan terdapat dalam KBBI, kata dasarnya langsung diperoleh. Kata dasar yang didapat kemudian diperiksa kembali kategorinya. Setelah itu, akan dicari imbuhan dari kata masukan berdasarkan kata dasarnya. Proses pencarian imbuhan dilakukan dengan menghilangkan kata dasar yang didapat dari kata masukan. Data yang didapat dari proses ini
9
adalah imbuhan, kata dasar, dan kategori kata dasar dari masukan. Contoh kata masukan yang telah lolos tahap praproses adalah „mengairi‟. Kemudian, kata tersebut akan dicek keberadaannya pada KBBI. Kata tersebut terdapat dalam KBBI yang disesuaikan. Data kategori dan data kata dasar dari kata masukan didapat dengan menggunakan kueri "select Category, Stem from entry where Word ='"+input+"'", sedangkan data kategori kata
dasar didapat dengan menggunakan kueri "select Category from entry Word ='"+kata_dasar+"'".
where
Data awalan didapat dengan mengambil substring kata masukan mulai dari indeks ke nol sampai indeks kata dasar berada dan data akhiran didapat dengan mengambil substring kata masukan dari indeks kata dasar berada ditambah panjang kata dasar sampai akhir string kata masukan. Data yang didapat dari kata masukan „mengairi‟, yaitu kategori kata „v‟, kata dasar „air‟, kategori kata dasar „n‟, awalan „meng‟, dan akhiran „i‟.
Stemming Kata masukan akan melalui proses stemming jika kata masukan tidak ditemukan dalam field „Word‟. Stemming adalah pencarian kata dasar dengan menghilangkan kemungkinan imbuhan pembentuk kata kerja yang melekat. Diagram proses stemming dapat dilihat pada Gambar 9. Proses stemming dilakukan dengan menggunakan class „Stem‟ pada method runStem(). Tahap awal proses stemming yaitu mencari calon awalan kemudian mencari calon akhiran dari kata masukan. Kata Masukan
Pencarian calon awalan dilakukan dengan menggunakan method runAwalan(). Calon awalan didapat dengan melihat beberapa huruf pertama dari kata masukan. Terdapat dua calon awalan yaitu calon_awalan1 dan calon_awalan2, namun calon_awalan2 dapat berupa string kosong. Data lain yang didapat yaitu luluh dan buang. Kedua data tersebut didapat jika kata masukan memenuhi kondisi tertentu. Berikut adalah contoh kode program untuk mendapatkan awalan: 210 private void runAwalan(String input){ … 222 else if(input_kata.startsWith("me")){ 223 calon_awalan1 = "me"; 225 if(input.startsWith("men")){ 226 if(input.startsWith("meng")){ 227 calon_awalan2 = "meng"; 228 luluh = "k"; 229 buang = "ng"; 230 }… 241 }… 257 }… 302 }
Data yang didapat setelah menjalankan method runAwalan() dapat dilihat pada Tabel 3. Kolom „ walan Kata‟ berisi kemungkinan awalan dari kata masukan, kolom „C W ‟ berisi data calon_awalan1, kolom „C W2‟ berisi data calon_awalan2, kolom „B‟ berisi data buang, dan kolom „L‟ berisi data luluh. Data buang dan luluh digunakan untuk kata yang mengalami peluruhan. Kata masukan diperiksa apakah kata tersebut diawali dengan salah satu substring pada kolom „ walan Kata‟, kemudian didapatkan data yang sesuai dengan kondisi kata masukan. Data yang didapat berdasarkan contoh kode program yang diberikan, yaitu calon_awalan „me‟, calon_awalan2 „meng‟, buang „ng‟, dan luluh „k‟. Tabel 3 Data pencarian calon awalan
Cari Calon Awalan Pilih Kata Dasar yang Paling Sesuai
Tampilkan Pesan Peringatan
Cari Calon Akhiran Ya
Tidak Calon Awalan 1, Calon Awalan 2, Calon Akhiran 1, Calon Akhiran 2, Buang, Luluh
Semua CKD tidak ada pada KBBI?
Cari Calon Kata Dasar
Cek Calon Kata Dasar di KBBI
Gambar 9 Diagram proses stemming.
Awalan Kata
CAW1
CAW2
B
L
diperdimengmenymenmempermemterberke-
di di me me me me me te ber ke
diper meng meny men memper mem ter be -
ng ny n m r r -
r k s t r p -
10
Calon akhiran didapat dengan melihat beberapa huruf terakhir dari kata masukan. Pencarian akhiran dilakukan dengan menggunakan method runAkhiran(). Akhiran untuk pembentukan kata kerja terdiri atas -i, -an, dan -kan. Calon akhiran dari tiap kata masukan juga dapat terdiri atas satu atau dua calon akhiran. Pencarian akhiran dengan method runAkhiran() dapat dilihat pada contoh kode berikut: 304 private void runAkhiran(String input){ 305 if(input.endsWith("an")){ 306 calon_akhiran1 = "an"; 307 if(input.endsWith("kan")){ 308 calon_akhiran2 = "kan"; 309 } 310 } … 314 }
Kata masukan yang memiliki dua calon akhiran hanya kata masukan dengan substring „kan‟ pada akhir kata, seperti yang ditampilkan pada Tabel 4. Sama seperti pencarian awalan, kolom „ khiran Kata‟ berisi kemungkinan akhiran dari kata masukan, kolom „C K ‟ berisi data calon_akhiran1, dan kolom „C K2‟ berisi data calon_akhiran2. Tabel 4 Data pencarian calon akhiran Akhiran Kata -an -kan -i
CAK1
CAK2
an an i
kan -
Calon kata dasar didapat dari kata masukan yang telah dipotong berbagai kemungkinan imbuhan berdasarkan calon awalan dan calon akhiran. Urutan kemungkinan calon kata dasar yang diperoleh dapat dilihat pada Tabel 5. Urutan tersebut memengaruhi hasil dari proses stemming. Hasil dari proses pemotongan imbuhan pada kata masukan yaitu didapatkan beberapa calon kata dasar. Calon kata dasar dapat terdiri atas enam atau sembilan kata, sesuai dengan jumlah calon akhiran. Calon kata dasar berjumlah enam jika calon akhiran hanya berjumlah satu, sedangkan jika calon akhiran berjumlah dua, calon kata dasar akan berjumlah sembilan. Baris nomor 4, 5, dan 6 pada Tabel 5 tidak dipakai jika calon kata dasar hanya berjumlah enam. Contoh cara pembacaan data tabel tersebut yaitu pada calon kata dasar baris kedua. Kata masukan dihilangkan substring calon_awalan2 pada awal kata dan substring calon_akhiran1 pada akhir kata untuk mendapat calon kata. Penambahan substring luluh dilakukan pada awal calon kata.
Tabel 5 Urutan pencarian calon kata dasar No
Calon Kata Dasar
1
masukan - awalan 1 - akhiran 1
2
luluh + (masukan - awalan 2 - akhiran 1)
3
masukan - awalan 2 - akhiran 1
4
masukan - awalan 1 - akhiran 2
5
luluh + (masukan - awalan 2 - akhiran 2)
6
masukan - awalan 2 - akhiran 2
7
masukan - awalan 1
8
luluh + (masukan - awalan 2)
9
masukan - awalan 2
Semua calon kata dasar yang didapat kemudian diperiksa apakah terdapat dalam KBBI dan dicari kata dasarnya. Kemudian, dicari kategori dari kata dasar tersebut. Pengecekan calon kata dasar dilakukan oleh method cekCalon(). Suatu status ditambahkan untuk memeriksa hasil stemming. Status tersebut bernilai „yes‟ atau „no‟. Status akan bernilai „yes‟ jika calon kata dasar terdapat dalam KBBI, calon kata dasar sama dengan kata dasar yang didapat dari KBBI, dan kategori dari kata dasar memiliki suatu nilai tertentu. Status akan bernilai „no‟ jika keadaan tersebut tidak terpenuhi. Data yang didapat tersebut disimpan ke dalam array dua dimensi. Setiap kolom berisi calon kata dasar, calon awalan, calon akhiran, kata dasar, kategori kata dasar, dan status, sedangkan tiap baris berisi calon kata dasar yang dapat berjumlah enam ataupun sembilan. Kata dasar yang didapat dianggap benar jika status bernilai „yes‟ dan akan disimpan untuk proses selanjutnya. Pesan peringatan akan muncul jika tidak terdapat calon kata dasar yang memenuhi kondisi yang diberikan. Kata dasar yang didapat melalui proses stemming harus terdapat dalam KBBI meskipun kata masukan tidak terdapat dalam KBBI, karena kategori kata dasar diperlukan untuk menentukan pola word graph kata kerja dan data kategori kata dasar tidak dapat diperoleh jika kata dasar tidak terdapat dalam KBBI. Kata dasar akan diambil dan digunakan pada tahap selanjutnya jika terdapat lebih dari satu kata dasar dengan status bernilai „yes‟, yaitu kata pertama yang didapat sesuai dengan urutan baris yang terdapat pada array dua dimensi yang dibuat. Data yang didapat dari proses stemming berupa imbuhan, kata dasar, dan kategori kata dasar.
11
Contoh kata yang tidak terdapat dalam KBBI yaitu „bertabrakan‟. Pada pencarian awalan dan akhiran diperoleh data calon_awalan „be‟, calon_awalan2 „ber‟, buang „r‟, calon_akhiran „an‟, dan calon_akiran2 „kan‟. Calon kata dasar berjumlah sembilan karena terdapat dua calon akhiran. Gambar 10 memperlihatkan hasil dari proses stemming. Status yang bernilai „yes‟ ditemukan pertama kali pada baris kedua. Oleh karena itu, data yang didapat pada baris tersebut digunakan untuk tahap selanjutnya. Data yang didapat yaitu awalan „ber‟, akhiran „an‟, kata dasar „tabrak‟, dan kategori kata dasar „v‟.
Gambar 10 Contoh hasil stemming pada kata „bertabrakan‟.
Penentuan word graph kata kerja Tahap selanjutnya yaitu pengecekan aturan pembentukan word graph kata kerja dengan menggunakan data yang telah didapat. Pengecekan dilakukan dengan mencocokkan data dengan tabel „PolaKataKer‟ dalam database „kamus‟. Data imbuhan dan kategori kata dasar dibandingkan dengan data yang terdapat dalam tabel, kemudian dikembalikan nama word graph kata kerja yang memenuhi kondisi tersebut. Class yang digunakan dalam penentuan pola word graph kata kerja adalah class „PolaKataKer‟. Pengecekan pola word graph langsung mengembalikan nama pola yang didapat dari database. Kueri untuk pengecekan pola pada method cekPola() yaitu "select Pola from polakataker where " + "Awalan ='"+ data1[4]+"' AND " + "JenisKD ='"+ data1[3]+"' AND " + "Akhiran ='"+ data1[5]+"'". Sebagai
contoh, kata masukan „mengairi‟ yang telah diproses sebelumnya akan dicek pada tabel „PolaKataKer‟. Hasilnya, kata „mengairi‟ termasuk pada Pola 2. Pembangkitan word graph kata kerja Pola word graph yang didapat tersebut kemudian digambarkan. Penggambaran pola terdiri atas komponen pembentuk word graph kata kerja. Kata dasar yang didapat juga termasuk salah satu komponen dalam penggambaran pola word graph kata kerja. Pola
word graph yang dihasilkan kemudian ditampilkan pada kanvas KG_EDITOR yang tersedia. Proses pembangkitan word graph kata kerja juga masih menggunakan class yang sama dengan penentuan pola, yaitu class „PolaKataKer‟. Setiap word graph kata kerja dibangkitkan pada method yang berbeda tetapi masih berada dalam satu class „PolaKataKer‟. Berikut adalah contoh pembangkitan Pola 1 yang terdapat pada method Pola1() dan drawPola() dalam class „PolaKataKer‟: 235 public void Pola1(int x, int y, Graphics2D gd){ 236 FPar fr = new FPar (x-10, y-20, 240, 100); 237 Ali ali1 = new Ali(x+50, y+20); 238 Ali ali2 = new Ali(x+230, y+20); 239 TokenF f1 = new TokenF(x,y); 240 241 gd.drawString("WORD GRAPH KATA KERJA - POLA 1", 10,15); 242 fr.drawFrameFokus(gd); 243 f1.drawTokenF(gd); 244 ali1.drawAliKiri(gd); 245 ali2.drawAliKiri(gd); 246 gd.drawString(data1[2], x+160, y+30); 247 gd.drawString(data1[0], x+335, y+30); 248 } … 440 public void drawPola(Graphics2D gd){ 441 if(A==1) { 442 Pola1(50,50,gd); 443 } … 471 else { 472 gd.drawString("Pola tidak dapat ditemukan", 10,20); 473 } 474 }
Penggambaran word graph ditentukan oleh variabel integer berisi koordinat tiap komponen yang menentukan posisi penggambaran komponen pada kanvas. Selain itu, penggambaran frame juga ditentukan oleh variabel integer berisi data panjang dan lebar frame. Kemudian, pola digambarkan oleh method drawPola(). Sistem akan menampilkan pesan bahwa pola tidak ditemukan seperti pada Gambar 8 jika data yang didapat tidak sesuai dengan aturan pembentukan word graph kata kerja. Hasil pembangkitan Pola 1 tersebut dapat dilihat pada Gambar 11 dengan contoh kata masukan „berada‟.
Gambar 11 Contoh hasil pembangkitan Pola 1.
12
Class diagram dan sequence diagram keseluruhan modul word graph kata kerja dapat dilihat pada Lampiran 4 dan Lampiran 5.
dengan kata masukan berupa kata kerja berulang, baik yang terdapat dalam KBBI maupun tidak.
6 Lingkungan Implementasi Modul word graph kata kerja pada KG_EDITOR dikembangkan dalam lingkungan implementasi perangkat keras dan perangkat lunak dengan spesifikasi sebagai berikut:
Sistem membutuhkan suatu fungsi yang dapat mengakomodasi kata masukan berupa kata berulang sehingga kata masukan dapat diproses dan word graph kata kerja dapat dibangkitkan. Sistem harus dapat mengakomodasi kata berulang, baik yang terdapat dalam KBBI maupun yang tidak. Kata berulang yang tidak terdapat dalam KBBI harus dapat dilakukan proses stemming.
1 Perangkat keras • Intel® Core™ Duo CPU T8 • RAM 3 GB • Monitor, keyboard dan mouse
@2.
GHz
2 Perangkat lunak • Microsoft Windows 7 Ultimate sebagai sistem operasi • Java 6.0 sebagai bahasa pemrograman • NetBeans 6.8 sebagai IDE (Integrated Development Environment) • XAMPP sebagai aplikasi penyedia database MySQL Customer Test-drives Mock-up Mock-up yang dibuat sudah sesuai dengan kebutuhan pengguna. Sistem dapat menampilkan word graph kata kerja baik yang terdapat dalam KBBI maupun yang tidak terdapat dalam KBBI. Kata masukan sudah dapat dicek bentuk word graph-nya didasarkan pada aturan pembentukan kata kerja. Word graph yang didapat dari pengecekan aturan pembentukan kata kerja kemudian digambarkan dan ditampilkan pada kanvas. Kesalahan muncul pada saat pengguna memasukkan kata kerja yang berupa pengulangan. Sistem tidak dapat memproses kata masukan berupa pengulangan. Oleh karena itu sistem juga tidak dapat memperoleh word graph kata kerja kata masukan yang dimaksud. Terdapat empat word graph yang memiliki aturan pembentukan berupa kata kerja berulang, yaitu Pola 4, Pola 8, Pola 9, dan Pola 10. Keempat pola tersebut tidak dapat dibangkitkan oleh mock-up hasil iterasi pertama. Hasil pengujian mock-up iterasi pertama dapat dilihat lebih rinci pada Lampiran 6 sampai dengan Lampiran 15. Iterasi 2 Listen to Customer Hal yang dilakukan pada iterasi kedua yaitu memperbaiki kesalahan yang didapat pada mock-up sebelumnya. Kesalahan tersebut didapat dari hasil pengujian mock-up oleh pengguna. Kesalahan yang didapat pada mockup hasil dari iterasi pertama yaitu sistem tidak dapat menampilkan word graph kata kerja
Revise Mock-up Revisi dilakukan terhadap mock-up yang dibuat sebelumnya berdasarkan hasil evaluasi pada iterasi pertama. Tahap awal proses pembangkitan word graph adalah tahap praproses yang sudah sesuai dengan kebutuhan pengguna, namun agar dapat mengakomodasi kata kerja berulang ditambahkan fungsi untuk mengecek apakah terdapat tanda hubung pada kata masukan. Kata masukan yang telah lolos tahap praproses kemudian dilakukan pengecekan pada KBBI pada class „Kata‟. Kata masukan yang terdapat tanda hubung atau berupa pengulangan akan dipecah menjadi dua kata, yaitu kata pertama dan kata kedua. Tanda hubung sebagai pemisah antara kata pertama dan kata kedua. Tiap kata kemudian dilakukan pengecekan pada KBBI. Data dari kedua kata langsung didapat jika kedua kata terdapat dalam KBBI, sama seperti pengecekan langsung kata masukan pada KBBI yang dilakukan pada iterasi pertama. Pada salah satu atau kedua kata, akan dilakukan proses stemming dengan memanggil class „Stem‟ jika kata tidak ditemukan pada KBBI. Proses stemming tiap kata sama seperti proses stemming pada kata tidak berulang yang telah dijelaskan sebelumnya. Data tiap kata yang dihasilkan sama dengan data yang dihasilkan pada iterasi pertama. Data yang didapat digunakan untuk pengecekan word graph berdasarkan aturan pembentukan kata kerja. Pengecekan dilakukan dengan mencocokkan data dengan tabel „PolaKataKer‟, namun tidak semua aturan pembentukan word graph kata kerja terdapat dalam tabel tersebut. Kata kerja yang berupa pengulangan tidak dapat langsung dicek. Kemudian, pada kata yang telah dipecah menjadi dua bagian, dilakukan pengecekan word graph untuk masing-masing kata. Beberapa aturan pembentukan word graph kata kerja memiliki struktur yang sama
13
sehingga dikelompokkan dalam satu pola, tetapi untuk mengakomodasi kata kerja yang berupa pengulangan diperlukan penanda pada suatu pola pembentukan. Beberapa pola kemudian dipecah menjadi beberapa subpola, seperti Pola 1 yang dibedakan menjadi Pola 1a dan Pola 1b yang menghasilkan word graph yang sama. Pola 1a yaitu pola Kata Kerja Dasar (KKD) dan Pola 1b yaitu pola ber-KKD. Pola lain yang dipecah yaitu Pola 2, dibedakan menjadi Pola 2a dan Pola 2, sedangkan Pola 6 dibedakan menjadi Pola 6a, Pola 6b, dan Pola 6. Pola 2a yaitu pola meng-/mem-/me-KKD, Pola 6a yaitu pola meng-/mem-/me-KS, dan Pola 6b yaitu pola meng-/mem-/me-KB. Hal tersebut dilakukan sebagai penanda suatu word graph tertentu saja, namun tetap akan menghasilkan word graph yang sama. Misalnya, Pola 1a dan Pola 1b tetap menghasilkan word graph yang sama jika dibangkitkan, yaitu word graph kata kerja Pola 1. Word graph kata berulang didapat dengan memeriksa aturan pembentukan masing-masing kata (Pola1 dan Pola2). Pengecekan pola word graph tiap kata, sama dengan pengecekan pola word graph kata tidak berulang pada iterasi pertama. Pola pembentukan tiap kata tersebut kemudian dijadikan sebagai kondisi untuk pengembalian salah satu nama pola word graph kata kerja. Pengecekan Pola1 sama seperti kueri pada pengecekan pola kata tidak berulang, sedangkan untuk kata kedua digunakan kueri "select Pola from polakataker where " + "Awalan ='"+ data2[4]+"' AND " + "JenisKD ='"+ data2[3]+"' AND " + "Akhiran ='"+ data2[5]+"'".
Tabel 6 Pola pembentukan kata berulang Pola1
Pola2
Pola Word Graph
Pola 2a
Pola 1a
Pola 4
Pola 6a
Pola Adj
Pola 4
Pola 6b
Pola Nou
Pola 4
Pola 1a
Pola 1a
Pola 8
Pola 1a
Pola 2a
Pola 9
Pola 1b
Pola 1a
Pola 10
Pola 5
Pola Adj
Pola 10
Pola 5
Pola Nou
Pola 10
Aturan pembentukan kata berulang dapat dilihat pada Tabel 6. Pola Adj dan Pola Nou merupakan pola tambahan untuk mengakomodasi kata berulang yang berisi kata sifat dan kata benda dasar. Kedua pola tersebut tidak akan menghasilkan word graph pada
modul kata kerja. Nama pola word graph kata kerja dikembalikan jika Pola1 dan Pola2 memenuhi kondisi yang diberikan. Sistem akan menampilkan pesan peringatan jika tidak terdapat pola yang sesuai dengan pola pembentukan word graph kata kerja berdasarkan penelitian Muslik (2009). Contoh kata masukan berulang yaitu „tembak-menembak‟. Kata tersebut tidak terdapat dalam KBBI sehingga kata akan masuk ke dalam proses stemming. Kata pertama „tembak‟ terdapat dalam KBBI, setelah dilakukan pengecekan didapat data berupa data kategori kata „v‟, kata dasar „tembak‟, kategori kata dasar „v‟, awalan „‟, dan akhiran „‟. Kata kedua „menembak‟ juga terdapat dalam KBBI. Data yang didapat dari kata tersebut, yaitu kategori kata „v‟, kata dasar „tembak‟, kategori kata dasar „v‟, awalan „men‟, dan akhiran „‟. Berdasarkan data tersebut didapatkan pola kata pertama atau Pola1 berupa Pola 1a, dan kata kedua atau Pola2 berupa Pola 2a. Sesuai dengan pola pembentukan kata berulang pada Tabel 3, jika Pola1 merupakan Pola 1a dan Pola2 merupakan Pola 2a maka pola word graph kata masukan „tembak-menembak‟ yang dihasilkan yaitu Pola 9. Customer Test-drives Mock-up Mock-up pada iterasi kedua dibuat sesuai kebutuhan pengguna berdasarkan evaluasi pada hasil iterasi pertama. Sistem sudah dapat memproses kata masukan yang berupa kata berulang dengan cara memecah kata menjadi dua bagian. Pengecekan pola word graph tiap kata sudah dapat dilakukan dan menghasilkan word graph kata kerja yang sesuai dengan kata berulang sebagai masukan. Pengujian dengan kata masukan yang termasuk word graph Pola 8, Pola 9, dan Pola 10 sudah sesuai dengan aturan pembentukan word graph kata kerja. Beberapa kata masukan berulang yang temasuk Pola 4 tidak dapat dibangkitkan word graph kata kerja berdasarkan aturan pembentukannya. Pola 4 tidak dapat dibangkitkan jika kata masukan yang diberikan berupa kata berulang dengan kata kedua meluruh dan tidak memiliki imbuhan. Proses pencarian data kata kedua baik pada pengecekan KBBI maupun proses stemming tidak mendapatkan hasil yang sesuai. Word graph beberapa kata masukan yang termasuk pada Pola 4 tidak dapat dibangkitkan oleh mock-up hasil iterasi kedua. Hasil pengujian mock-up iterasi kedua untuk kata berulang dapat dilihat lebih rinci pada Lampiran 16 sampai dengan Lampiran 19.
14
Iterasi 3 Listen to Customer Iterasi ketiga dilakukan karena masih terdapat kesalahan pada mock-up hasil dari iterasi kedua. Hal yang dilakukan pada iterasi ketiga adalah memperbaiki kesalahan yang didapat pada mock-up sebelumnya. Kesalahan yang didapat pada mock-up hasil dari iterasi kedua adalah sistem tidak dapat menampilkan word graph beberapa kata kerja berulang yang termasuk Pola 4. Kata berulang dengan kata kedua berupa kata dasar yang meluluh dan tidak terdapat awalan tidak dapat dibangkitkan word graph yang sesuai. Contoh kata yang dimaksud yaitu seperti kata kedua „nari‟ pada kata „menarinari‟. Sistem membutuhkan suatu fungsi yang dapat mengakomodasi kata masukan berupa kata berulang dengan kata kedua berupa kata dasar yang meluruh dan tidak terdapat awalan, sehingga kata masukan dapat diproses dan word graph kata kerja dapat dibangkitkan. Revise Mock-up Kata yang tidak dapat dibangkitkan word graph-nya yaitu kata masukan berupa pengulangan dengan kata kedua berupa kata dasar yang meluluh dan tidak memiliki awalan. Kata kedua tersebut sudah pasti tidak terdapat pada KBBI. Oleh karena itu, revisi yang dilakukan pada iterasi ketiga yaitu memperbaiki fungsi stemming agar dapat mengakomodasi kata kedua yang meluruh dan tidak memiliki awalan. Method yang digunakan untuk memperbaiki mock-up hasil iterasi kedua yaitu masih menggunakan method runAwalan(). Method tersebut digunakan juga untuk mengakomodasi fungsi stemming yang digunakan hanya untuk kata kedua yang mengalami peluruhan, namun tidak terdapat awalan. Data yang didapat pada pencarian awalan untuk proses stemming kata kedua hanya berupa buang dan luluh saja. Berikut adalah contoh kode program pada method runAwalan() untuk kata kedua: 210 private void runAwalan(String input){ … 282 else { … 287 else if(input_kata.startsWith("n")){ … 296 else{ 297 buang = "n"; 298 luluh = "t"; 299 } 300 } 301 } 302 }
Kedua kata hasil pemecahan kata berulang kemudian dilakukan pengecekan pada KBBI. Kedua kata akan dilakukan proses stemming lagi dengan memanggil class „Stem‟ jika tidak terdapat dalam KBBI. Proses stemming pada kata pertama sama seperti proses stemming kata tidak berulang pada iterasi sebelumnya. Proses stemming pada kata kedua sedikit berbeda dengan proses stemming pada kata pertama. Stemming yang dilakukan yaitu stemming untuk mengakomodasi kata kedua yang meluluh namun tidak memiliki awalan. Setelah itu, jika masih belum ditemukan kata dasar yang sesuai, akan dilakukan proses stemming biasa, seperti stemming pada kata pertama. Jumlah calon kata dasar pada iterasi ketiga bertambah satu untuk mengakomodasi kata kedua pada kata berulang. Calon kata dasar menjadi berjumlah tujuh jika calon akhiran hanya satu, sedangkan jika terdapat dua calon akhiran maka calon kata dasar berjumlah sepuluh. Kata „menari-nari‟ tidak terdapat dalam KBBI sehingga perlu dilakukan proses stemming. Tahap selanjutnya yaitu pemecahan kata menjadi kata „menari‟ dan kata „nari‟. Kata pertama „menari‟ terdapat dalam KBBI, lalu didapat data awalan „men‟, akhiran „‟, kata dasar „tari‟, dan kategori kata dasar „n‟. Kata kedua „nari‟ tidak terdapat pada KBBI, kemudian dilakukan stemming untuk kata kedua. Data yang didapat untuk kata „nari‟, yaitu buang „n‟, luluh „t‟, dan calon akhiran „i‟. Calon akhiran hanya berjumlah satu sehingga calon kata dasar dari kata masukan „menarinari‟ berjumlah tujuh. Gambar 12 menunjukkan hasil stemming untuk kata kedua „nari‟.
Gambar 12 Contoh hasil stemming pada kata kedua „nari‟. Data yang didapat dari proses stemming untuk kata kedua, yaitu awalan „‟, akhiran „‟, kata dasar „tari‟, dan kategori kata dasar „n‟. Berdasarkan data tersebut, didapat Pola1 berupa Pola 6b dan Pola2 berupa Pola Nou. Sesuai dengan pola pembentukan kata berulang pada Tabel 3, jika Pola1 merupakan Pola 6b dan Pola2 merupakan Pola Nou maka pola word graph kata „menari-nari‟ yang dihasilkan yaitu Pola 4.