• Tidak ada hasil yang ditemukan

Merujuk pada penelitian Hitosi (2012), Algoritma stemming Nazief dan Adriani ini dikembangkan berdasarkan aturan morfologi bahasa Indonesia yang mengelompokkan dan mengenkapsulasi imbuhan-imbuhan, termasuk di dalamnya adalah awalan (prefix), sisipan (infix), akhiran (suffix) dan gabungan awalan-akhiran (confixes). Pada umumnya kata dasar pada bahasa Indonesia terdiri dari kombinasi:

1. Cari kata yang akan distem dalam kamus. Jika ditemukan maka diasumsikan bahwa kata tersebut adalah root word. Maka algoritma berhenti.

2. Inflection Suffixes (“-lah”, “-kah”, “-ku”, “-mu” atau “-nya”) dibuang. Jika berupa pertikel (“-lah”, “-kah”, “-tah” atau “-pun”) maka langkah ini dulangi lagi untuk menghapus Possesive Pronouns (“-ku”, “-mu” atau “-nya”), jika ada. 3. Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di

kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a.

1. Jika “-an” telah dihapus dan huruf terakhir dari kata tersebut adalah “-k”, maka “-k” juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma berhenti. Jika tidak ditemukan makan lakukan langkah 3b. 2. Akhiran yang dihapus (“-i”, “-an”, atau “-kan”) dikembalikan, lanjut ke

langkah 4.

4. Hapus Derivation Prefix (“di-”, “ke-”, “se-”, “te-”, “be-”, “me” atau “pe-”). Ada beberapa langkah pada tahap ini.

a. Tentukan tipe awalan, Jika terdapat tipe awalan (di-, ke-, se-) hapus dan cocokan dengan kamus, jika ada berhenti, jika tidak hapus derivation_suffixes dan lanjutkan.

1. Apabila ditemukan awalan (diper-) maka hapus awalan (diper-) dan hapus Derivation Suffixes kemudian cocokan dengan kamus, jika ditemukan berhenti, jika tidak kembalikan Derivation Suffixes dan dilanjutkan.

2. Apabila ditemukan awalan (keber- atau keter-), maka hapus awalan (keber- atau keter-), cek Derivation Suffixes jika ditemukan hapus, kemudian cocokan dengan kamus, jika ditemukan berhenti, jika tidak kembalikan Derivation Suffixes dan lanjut ke langkah berikutnya.

b. Jika ditemukan tipe awalan (te-, ter, be-, ber) maka hapus kemudian hapus Derivation Suffixes, cocokan dengan kamus, jika ditemukan algoritma berhenti, jika tidak kembalikan Derivation Suffixes lanjutkan ke langkah selanjutnya.

c. Jika ditemukan tipe awalan (me-, pe-) maka awalan dihapus, kemudian cocokan dengan kamus. Jika ditemukan maka algoritma dihentikan, jika tidak hapus Derivation Suffixes, kemudian cocokan lagi dengan kamus jika ditemukan berhenti, jika tidak lanjutkan kembalikan Derivation Suffixes dan ke langkah berikut.

1. Apabila ditemukan awalan (memper-) maka awalan dihapus, cocokan dengan kamus, apabila ditemukan algoritma berhenti, jika tidak, maka hapus Derivation Suffixes dan cocokan kembali dengan kamus, jika ditemukan maka algoritma berhenti, jika tidak Derivation Suffixes dikembalikan dan dilanjutkan ke langkah berikutnya.

2. Jika ditemukan awalan (meng- atau peng-) maka awalan dihapus, cocokan dengan kamus apabila ditemukan algoritma berhenti, jika tidak maka hapus Derivation Suffixes kemudian cocokan kembali dengan kamus, jika ditemukan maka algoritma berhenti, jika tidak maka Derivation Suffixes dikembalikan, dan awalan dikembalikan. Seleksi diulang kembali, jika awalan (meng- atau peng-) ditemukan ganti awalan tersebut dengan huruf “k” kemudian cek ke kamus, apabila ditemukan algoritma dihentikan jika tidak, hapus Derivation Suffixes kemudian cocokan kembali, jika ditemukan algoritma berhenti, jika tidak ditemukan, kembalikan awalan dan Derivation Suffixes.

3. Jika awalan (meny atau peny), maka hapus awalan tersebut kemudian cocokan dengan kamus, jika ditemukan maka algoritma berhenti, jika tidak hapus Derivation Suffixes lalu cocokan kembali, jika ditemukan algoritma berhenti jika tidak awalan dan Derivation Suffixes dikembalikan.

4. Jika awalan (mel-, mer, pel atau per), maka hapus awalan tersebut kemudian cocokan dengan kamus, jika ditemukan maka algoritma berhenti, jika tidak hapus Derivation Suffixes lalu cocokan kembali, jika

ditemukan algoritma berhenti jika tidak awalan dan Derivation Suffixes dikembalikan.

5. Jika awalan (men atau pen), maka hapus awalan dan ganti dengan huruf “t” tersebut kemudian cocokan dengan kamus, jika ditemukan maka algoritma berhenti, jika tidak hapus Derivation Suffixes lalu cocokan kembali, jika ditemukan algoritma berhenti jika tidak awalan dan Derivation Suffixes dikembalikan dan ulang dari awal. Jika awalan (men- atau pen-) maka hapus awalan tersebut kemudian cocokan dengan kamus, jika ditemukan maka algoritma berhenti, jika tidak hapus Derivation Suffixes lalu cocokan kembali, jika ditemukan algoritma berhenti jika tidak awalan dan Derivation Suffixes dikembalikan.

6. Jika awalan (mem- atau pem-), maka hapus awalan tersebut kemudian cocokan dengan kamus, jika ditemukan maka algoritma berhenti, jika tidak hapus Derivation Suffixes lalu cocokan kembali, jika ditemukan algoritma berhenti jika tidak awalan dan Derivation Suffixes dikembalikan. Jika awalan (meny atau peny), maka hapus awalan tersebut dan ganti dengan huruf “p” kemudian cocokan dengan kamus, jika ditemukan maka algoritma berhenti, jika tidak hapus Derivation Suffixes lalu cocokan kembali, jika ditemukan algoritma berhenti jika tidak awalan dan Derivation Suffixes dikembalikan.

5. Melakukan Recoding.

6. Jika semua langkah telah selesasi tetapi tidak juga berhasil maka kata awal diasumsikan sebagai root word. Proses selesai.

Tipe awalan ditentukan melalui langkah – langkah berikut :

1 Jika awalannya adalah : “di-”, “ke-” atau “se-” maka tipe awalanannya secara berturut – turut adalah “di-“, “ke-” atau “se-”.

2 Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-”, maka dibutuhkan sebuah proses tambahan untuk menentukan tipe awalannya.

3 Jika dua katakter pertama “di-”, “ke-”, “se-”, “te-”, “me-” atau “pe” maka berhenti.

4 Jika tipe awalan adalah “none” maka berhenti. Jika tipe awalan adalah bukan “none” maka awalan dapat dilihat pada.

Tabel 2. 1 Kombinasi awalan yang tidak diijinkan

Awalan Akhiran yang tidak diijinkan

be- -i

di- -an

ke- -i, -kan

me- -an

se- -i, -kan

Tabel 2. 2 Cara menentukan tipe awalan untuk kata yang diawali dengan te-

Following Character Tipe

Awalan

Set 1 Set 2 Set 3 Set 4

"-r-" "-r-" - - none

"-r-" Vowel - -

ter-luluh "-r-" not (vowel or

"-r-") "-er-" vowel ter "-r-" not (vowel or "-r-") "-er-" not vowel ter- "-r-" not (vowel or "-r-") not "-er-" - ter not (vowel or

"-r-") "-er-" vowel - none not (vowel or

"-r-") "-er-"

not

vowel - te

Tabel 2. 3 Jenis awalan berdasarkan tipe awalannya

Awalan Awalan yang harus dihapus

di- di- ke- ke- se- se- te- te- ter- ter- ter-luluh ter

Untuk mengatasi keterbatasan pada algoritma diatas, maka ditambahkan aturan – aturan dibawah ini.

Jika kedua kata yang dihubungkan oleh kata penghubung adalah kata yang sama maka root word adalah bentuk tunggalnya, contoh : “buku-buku” root wordnya adalah “buku”.

Kata lain, misalnya “bolak-balik”, “berbalas-balasan”, dan “seolah-olah”. Untuk mendapatkan root wordnya kedua kata diartikan secara terpisah. Jika keduanya memiliki root word yang sama maka diubaj menjadi bentuk tunggal, contoh kata “berbalas-balasan”, “berbalas” dan “balasan” memiliki root word yang sama yaitu “balas”, maka root word “berbalas-balasan” adalah “balas”. Sebaliknya, pada kata “bolak-balik”, “balik” memiliki root word yang berbeda, maka root wordnya adalah bolak-balik.

2. Tambahan bentuk awalan dan akhiran serta aturannya.

Untuk tipe awalan “mem-”, kata yang diawali dengan awalan “memp-” memiliki tipe awalan “mem-”. Tipe awalan “meng”, kata yang diawali dengan awalan “mengk-” memiliki tipe awalan “meng-”.

Contoh kalimat untuk stemming nazief adriani adalah sebagai berikut. Kata = “Mengajar”.

1. Cek dikamus, pada kata tersebut tidak ditemukan kata dasar mengajar. 2. Cek apakah memiliki imbuhan Inflection Suffixes (lah”, kah”, ku”, “-mu” atau “-nya”), pada kata tersebut tidak ditemukan imbuhan Inflection Suffixes. 3. Cek apakah beimbuhan Derivation Suffixes (“-i”, “-an” atau “-kan”), pada kata tersebut tidak ditemukan imbuhan Derivation Suffixes.

4. Cek apakah berimbuhan Derivation Prefix (“di-”, “ke-”, “se-”, “te-”, “be-”, “me” atau “pe-”). Pada kata tersebut terdeteksi berawalan me-, hapus awalan me- menjadi “ngajar”, cek kamus tidak ditemukan kata dasar ngajar, awalan dikembalikan.

5. Cek apakah kata tersebut berawalan meng. Pada kata tersebut berawalan meng, maka awalan tersebut dihapus, menjadi “ajar”. Cek kamus, ternyata ditemukan maka algoritma dihentikan.

Kata = “Mengaduk – aduk”.

1. Cek kata pertama “mengaduk, cocokan ke kamus. Pada kata tersebut tidak ditemukan kata dasar mengaduk.

2. Cek apakah memiliki imbuhan Inflection Suffixes (lah”, kah”, ku”, “-mu” atau “-nya”), pada kata tersebut tidak ditemukan imbuhan Inflection Suffixes

3. Cek apakah beimbuhan Derivation Suffixes (“-i”, “-an” atau “-kan”), pada kata tersebut tidak ditemukan imbuhan Derivation Suffixes.

4. Cek apakah berimbuhan Derivation Prefix (“di-”, “ke-”, “se-”, “te-”, “be-”, “me” atau “pe-”). Pada kata tersebut terdeteksi berawalan me-, hapus awalan me- menjadi “ngaduk”, cek kamus tidak ditemukan kata dasar ngaduk, awalan dikembalikan menjadi mengaduk.

5. Cek apakah kata tersebut berawalan meng. Pada kata tersebut berawalan meng + aduk, maka awalan tersebut dihapus, menjadi “aduk”. Cek kamus, ternyata ditemukan maka algoritma dihentikan.

6. Simpan kata pertama pada temp variable, cek kata kedua apakah sama dengan temp variable, jika sama hapus.

Dokumen terkait