3. METODOLOGI PENELITIAN 3.1
Kerangka Penelitian Keberhasilan suatu penelitian ditentukan dari perencanaan penelitian.
Dalam perencanaan penelitian tersebut harus jelas apa saja yang akan dilakukan agar penelitian dapat berjalan dengan semestinya. Langkah-langkah penelitian ini secara umum dapat digambarkan seperti yang terlihat pada Gambar 4.
Gambar 4 Langkah-langkah penelitian. 3.2 Prosedur Penelitian Berdasarkan langkah-langkah penelitian pada Gambar 4, tahapan penelitian yang dilakukan pada tiap langkah diuraikan pada pembahasan selanjutnya. 3.2.1 Tahap Pemahaman Masalah Untuk dapat menyelesaikan penelitian ini, masalah yang ada harus dipahami dengan baik. Permasalahan yang ada digali dengan cara studi literatur dari sumber-sumber yang berkaitan dengan permasalahan penelitian ini. Selain itu, permasalahan dalam tentang tata bahasa Sunda dilakukan dengan cara melakukan
22 wawancara dengan nara sumber yang kompeten yaitu Bapak Dr. Yayat Sudaryat, M.Hum. (dosen Sastra Sunda Universitas Pendidikan Indonesia) 3.2.2 Tahap Pengumpulan Dokumen dan Pemasukan Data Kamus Dokumen-dokumen dalam bahasa Sunda digunakan untuk pengujian pada tahap evaluasi stemming. Dokumen uji yang terkumpul adalah sebanyak 130 dokumen berbahasa Sunda dengan topik yang beragam. Topik dokumen berisi tentang sejarah, budaya, agama, berita dan lain-lain. Seluruh dokumen yang terkumpul, format penulisan dokumen kemudian diubah menjadi bentuk teks. Hal ini untuk memudahkan pembacaan dokumen oleh tokenizer. Data kamus diperlukan untuk pembandingan kata pada proses stemming. Untuk memasukan data kamus, sumber data didapat dari Kamus Lengkep SundaIndonesia Indonesia Sunda Sunda-Sunda (Tamsyah 1996) dan dilengkapi dengan kamus Sunda – Indonesia (Satjadibrata 2011). Dari hasil pemasukan data kamus tersebut didapat 8 234 kata. 3.2.3 Tahap Perancangan Tokenizer Tokenizer akan membaca kata per kata dari dokumen. Modul tokenizer akan menerima masukan berupa dokumen dan keluarannya adalah kumpulan kata atau token. Tokenizer akan mengabaikan tanda baca, dan tanda-tanda lainnya yang tidak diperlukan. Tokenizer akan membaca dokumen dalam bentuk teks atau HTML. Program selengkapnya tokenizer dapat dilihat pada Lampiran 1. 3.2.4 Tahap Pembuatan Kata Uji dari Dokumen Pada tahap ini, dokumen yang terkumpul akan dicari token atau kata yang ada dalam dokumen tersebut. Pembuatan kata uji ini akan menggunakan tokenizer yang dirancang pada Bab 3.2.3. Kata atau token yang terkumpul akan disimpan dalam sebuah tabel dalam database yang berisi daftar kemunculan kata dalam dokumen. Kata yang disimpan dalam database adalah kata yang unik, artinya tidak akan ada kata yang sama.
23 Kata uji ini akan digunakan untuk pengujian algoritme stemming yang dirancang. Selanjutnya kata hasil stemming akan dievaluasi apakah hasil stemming sesuai dengan kata yang diharapkan. 3.2.5 Tahap Pembuatan Stoplist Pada tahapan ini akan dibuang semua kata-kata dalam bahasa Sunda yang kurang memiliki arti. Pembuatan daftar stoplist dibuat secara manual. Kata-kata yang kurang berarti yang ditemukan, akan dimasukan dalam database stoplist. Daftar stoplist ini dikelompokan dalam kelompok sepeti terlihat pada Tabel 1. Tabel 1 Daftar stoplist Jenis Kata Kata Tanya Kata Penunjuk Kata Sambung
Kata Lainnya Kata Pangwates Kata Sabab/Slesan Kata Wengkuan Kata Matotoskeun
Contoh saha, naon, mana, naha, iraha, kumaha, sabaraha ieu, eta, dieu, kieu jeung, sareng, nepi, jaba, lian, nu, lamun, tapi, atawa, atanapi, tuluy, terus, teras, yen, majar, nu, anu, matak, majar teh, mah, seug, heug, mun, boa, ketah, ketang, pisan, sok, nu, anu bae, be, wae, we, weh, mung, ngan, ukur, keur, nuju, masih, keneh, pikeun, kanggo da, kapan, kapanan, apan, pan, apanan deui, deuih, ge, oge,ongkoh nya, nyah, enya, lain, sanes
3.2.6 Tahap Perancangan Stemming Proses stemming akan menghilangkan awalan (rarangken hareup), sisipan (rarangken tengah), akhiran (rarangken tukang), kata imbuhan terbelah (rarangken barung), dan kata gabungan (rarangken bareng). Selain itu algoritme stemming juga akan menguji apakah kata adalah kata ulang. Algoritme stemming yang dirancang berbentuk flowchart, seperti yang ada pada Gambar 5. Pada flowchart tersebut terlihat inti dari algoritme tersebut adalah pada proses penghilangan
imbuhan,
yaitu
modul/fungsi:
Hilangkan_Awalan(),
Hilangkan_Akhiran(), Hilangkan_Sisipan(), Hilangkan_Barung(), Hilangkan_ Bareng() dan Cek_Kata_Ulang().
24 Masing-masing modul inti dari stemming tersebut akan dibahas secara rinci pada pembahasan selanjutnya. mulai
Tmpkata=kata
Bandingkan ke kamus ya
Apakah kata ada dalam kamus? Database kamus
tidak Kata=hilangkan_awalan(kata) Bandingkan ke kamus
Apakah kata ada dalam kamus? tidak
Kata=Tmpkata
Kata=Hilangkan_akhiran(kata)
ya
Bandingkan ke kamus ya
Apakah kata ada dalam kamus?
Bandingkan ke kamus
tidak
Kata=hilangkan_sisipan (kata)
Kata=Tmpkata Bandingkan ke kamus ya
Apakah kata ada dalam kamus? Kata=Tmpkata Kata=hilangkan_barung (kata)
tidak Kata=Tmpkata Kata=cek_kata_ulang(kata)
Bandingkan ke kamus
HasilKata=kata
ya
Kata ada dalam kamus?
tidak ya
Apakah kata ada dalam kamus? Kata=hilangkan_bareng (kata) tidak Kata=Tmpkata
ya Selesai
HasilKata=Tmpkata
Apkah kata ada dalam kamus? tidak
Gambar 5 Diagram proses stemming. 3.2.6.1 Modul/fungsi Hilangkan_Awalan() Modul/fungsi Hilangkan_Awalan() membutuhkan sebuah modul/fungsi lain yang berfungsi untuk menguji apakah suatu kata yang akan di-stem memiliki kata awalan: ba-, barang-, di-, ka-, N-, pa,- pada-, pang-, para-, per-, pi- sa-, sang-,
25 si-, silih/sili, ti-, ting-/pating-. Modul/fungsi pengujian ini diberi nama Cek_Prefiks(). Fungsi Cek_Prefiks() ini akan mendapat masukan berupa kata awalan dan kata yang akan diuji. Keluarannya adalah berupa tipe data boolean true/benar atau false/salah. Jika kata yang akan di-stem mengandung awalan yang disebut di atas, maka fungsi Cek_Prefiks() akan bernilai true/benar dan keluaran lainnya adalah, variabel kata akan berisi kata yang sudah dihilangkan awalannya. Sebagai contoh diberikan kata barangbeuli (sesuatu untuk dibeli). Fungsi Cek_Prefiks()
akan
berbentuk Cek_Prefiks(“barang”,kata). Parameter pada fungsi Cek_prefiks() yaitu prefiksword akan berisi “barang” dan kata akan berisi “barangbeuli”. Selanjutnya fungsi Cek_Prefiks(“barang”, kata) akan menguji apakah awalan dari kata tersebut adalah “barang”, jika ya maka akan dihilangkan awalan tersebut sehingga sekarang
variabel
kata
berisi
“beuli”.
Bentuk
modul/fungsi
Cek_Prefiks() ini seperti terlihat pada Gambar 6. Fungsi Cek_Prefiks(prefiksword As String, kata As String) : Boolean n = Length(kata) i = Length(prefiksword) kt = Left(kata, i) //kt = Awalan dari kata If (kt = prfiksword) Then //Dibandingkan antara kt dengan awalan kata= Right(kata, n - i) //Jika benar kata=kata yang sdh // dihilangkan akhirannya Cek_Prefiks = True Else Cek_Prefiks = False End If End Fungsi
Gambar 6 Fungsi Cek_Prefiks(). Algoritme dari modul/fungsi Hilangkan_ Awalan() ini dapat dilihat pada Gambar 7. Pada algoritme tersebut terlihat ada modul/fungsi yang berguna untuk menguji apakah kata mengandung nasal (N-), yaitu ModulNasal_N(). Algoritme untuk ModulNasal_N adalah sebagai berikut: -
Apakah kata mengandung prefiks “nga”, jika ya maka bandingkan dengan kamus jika tidak ketemu maka uji lagi apakah prefiks=”ng”. Bandingkan lagi dengan kamus, jika tidak ketemu maka beri tambahan di awal huruf “k” dan bandingkan lagi dengan kamus.
26
Gambar 7 Fungsi Hilangkan_Awalan(). -
Jika tidak mengandung prefiks “nga”, uji lagi apakah mengandung prefiks “nge”, bandingkan lagi dengan kamus.
-
Jika tidak mengandung “nge” uji apakah huruf awalnya adalah “m”, jika ya maka ganti huruf awal dengan huruf “b” atau “p” masing-masing penggantian huruf hasilnya dibandingkan dengan kamus.
-
Jika tidak mengandung huruf awal “m”, maka uji lagi apakah dua huruf awal = “ny”, jika ya maka ganti huruf awal dengan huruf “c” atau “s” masingmasing penggantian huruf hasilnya dibandingkan dengan kamus.
-
Jika tidak mengandung dua huruf “ny” maka uji apakah huruf awal = “n” jika ya ganti huruf awal dengan “t” dan bandingkan dengan kamus.
Bentuk dari fungsi ModulNasal_N() dapat dilihat pada Lampiran 2.
27 3.2.6.2 Modul/fungsi Hilangkan_Akhiran() Sama
seperti
modul/fungsi
Hilangkan_Awalan(),
modul/fungsi
Hilangkan_Akhiran() juga memerlukan fungsi pembantu lain untuk menguji apakah suatu kata mengandung akhiran. Akhiran yang akan diuji adalah: -an, eun, -keun, -na, -ing/-ning. Modul/fungsi pengujian akhiran ini diberi nama Cek_Sufiks(). Modul ini menerima masukan berupa kata akhiran seperti yang disebut di atas dan kata yang akan dihilangkan akhirannya. Sebagai contoh akan diuji kata acukna (bajunya), yang mempunyai kata dasar acuk (baju) dan diberi akhiran -na. Fungsi Cek_Sufiks()
akan
berbentuk:
Cek_Sufiks(“na”,”acukna”).
Tugasnya
membandingkan apakah ada akhiran -na pada kata “acukna”. Fungsi Cek_Sudiks akan menghasilkan true (benar) jika ada akhiran -na, serta menghilangkan akhiran -na pada kata acukna sehingga didapat kata dasar acuk. Bentuk algoritme Cek_Sufiks() ini adalah seperti terlihat pada Gambar 8. Fungsi Cek_Sufiks(sufiksword As String, kata As String) : Boolean n = Length(kata) i = Length(sufiksword) kt = Right(kata, i) //kt = akhiran dari kata If (kt = sufiksword)Then //Dibandingkan antara kt dengan akhiran kata= Left(kata, n - i) //Jika benar kata=kata yang sdh // dihilangkanakhirannya Cek_Sufiks = True Else Cek_Sufiks = False End If End Fungsi
Gambar 8 Fungsi Cek_Sufiks(). Algoritme Hilangkan_Akhiran() akan menguji satu per satu apakah kata yang mempunyai akhiran seperti dalam daftar akhiran. Jika kata mempunyai akhiran maka akhiran pada kata tersebut akan dihilangkan. Algoritme Hilangkan_Akhiran() selengkapnya dapat dilihat pada Lampiran 2.
28 3.2.6.3 Modul/fungsi Hilangkan_Sisipan() Pada modul/fungsi Hilangkan_Sisipan() ini terdapat aturan-aturan seperti yang dibahas pada Bab 2. Aturan-aturan tersebut diterapkan dalam algoritme seperti pembahasan di bawah ini: 1) Digunakan pada kata dasar yang diawali konsonan “l”, contoh: kata lieur menjadi lalieur (pusing-pusing), leuleus menjadi laleuleus (lemas-lemas). Algoritme untuk aturan tersebut terlihat pada Gambar 9. If Cek_Prefiks("l", kata) Then //Jika huruf pertama adalah huruf //“l” maka 2) If Cek_Prefiks("al",kata) Then //diuji lagi apakah huruf //berikutnya=al gab //jika ya ganti al dengan huruf “l” 3) = "l" + kata If ReadKamus(gab)Then //bandingkan dengan kamus kata = gab 4) infiks = True Else kata = dummy 5) infiks = False End If .... End6)if ... End If
7) Gambar 9 Bagian algoritme Hilangkan_Sisipan() untuk aturan kata yang diawali dengan huruf “l”. Untuk lebih jelasnya diberi contoh sebagai berikut. Misalnya akan diuji untuk kata lalieur. Pengujian Cek_Prefiks("l", kata) akan memberikan hasil true dan kata berubah menjadi “alieur”. Pengujian berikutnya yaitu Cek_Prefiks("al", kata) maka akan memberikan nilai true juga dan kata akan menjadi “ieur”. Perintah gab = "l" + kata akan menambahkan huruf “l” pada kata “ieur” sehingga didapat kata “lieur” yang selanjutnya akan dibandingkan dengan kamus. 2) Digunakan pada kata dasar yang diakhiri konsonan “r” contoh: bageur menjadi balageur (banyak yang baik hati), pinter menjadi palinter (banyak yang pintar). Algoritme untuk aturan ini terlihat seperti pada Gambar 10.
29
If Cek_Sufiks("r", kata)Then //Apakah huruf terkahir adalah “r” kata = dummy //kata dikembalikan ke bentuk semula If InStr(kata, "al") Then //uji apakah kata mengandung “al” kata = Replace(kata, "al", "") //hilangkan “al” dalam kata If ReadKamus(kata) Then //Bandingkan dengan kamus infiks = True Else kata = dummy infiks = False End If End If ..... End if
Gambar 10 Bagian algoritme Hilangkan_Sisipan() untuk aturan kata yang diawali dengan huruf “r”. Pada modul ini terdapat sebuah variabel yang disebut dummy, yang fungsinya untuk mencatat kata sebelum diubah bentuknya. Variebel dummy ini berfungsi untuk mengembali kata menjadi bentuk semula jika diperlukan. Kata yang diberikan akan diuji apakah mempunyai huruf akhir “r” jika ya maka kata=dummy dan diuji lagi apakah kata mengandung suku kata “al”. Jika ya maka hilangkan suku kata “al” dan cari kata dalam kamus. Jika kata tidak ditemukan dalam kamus maka variabel infiks akan bernilai false dan variabel kata dikembalikan menjadi bentuk semula. 3) Digunakan pada kata dasar yang mengandung konsonan gabung br, tr, cr, kr, pr, jr, dan dr, contoh: kempreng menjadi kalempreng (tangan-tangan yang kaku), gombrang menjadi galombrang (pakaian yang kedodoran). Algoritme untuk aturan ini terlihat seperti pada Gambar 11.
If infiks_ar("tr br cr kr pr jr dr", kata) Then gab = Replace(kata, "al", "") kata = gab 4) infiks = True .... End if 5)
Gambar 11 Bagian algoritme Hilangkan_Sisipan() untuk aturan kata yang mengandung suku kata "tr”, “br”, “ cr”, “kr”, “ pr”, “ jr”, “dr”.
30 Kata yang diberikan, akan diuji apakah mengandung gabungan huruf "tr”, “br”, “ cr”, “kr”, “ pr”, “ jr”, “dr” Jika ya maka hilangkan suku kata “al” dari kata yang diberikan. 4) Rarangken tengah -ar- berubah menjadi ar- apabila digunakan pada kata dasar yang diawali huruf vokal, contoh: asup menjadi arasup (banyak yang masuk), ulin menjadi arulin (banyak yang main). Selain itu juga untuk mengatasi rarangken tengah “-ar-” yang berada di tengah seperti misalnya barudak (anak-anak), diperlukan fungsi pembantu untuk menguji apakah suatu kata mengandung suku kata “ar”. Fungsi tersebut memiliki bentuk seperti yang ditunjukkan pada Gambar 12. Fungsi in_str_ar(kata) : Boolean ar1 = Left(kata, 2) ar2 = Mid(kata, 2, 2) If ar1 = "ar" Or ar2 = "ar" Then in_str_ar = True Else in_str_ar = False End If End Fungsi
Gambar 12 Fungsi in_str_ar(). Sedangkan penggalan algoritme untuk mengatasi rarangken tengah “ar” ini adalah seperti yang terlihat pada Gambar 13. If in_str_ar(kata) Then kata = dummy kata = Replace(kata, "ar", "") If ReadKamus(kata) Then Hilangkan_Sisipan = True Else ..... Endif .... End if
Gambar 13 Bagian algoritme Hilangkan_Sisipan() untuk aturan kata yang mengandung suku kata “ar”. 5) Rarangken tengah -ar- berubah menjadi ra- apabila digunakan pada kata dasar yang hanya terdiri dari satu suku kata dan diawali huruf konsonan contoh: cleng menjadi racleng (berloncatan), beng menjadi rabeng
31 (berterbangan). Algoritme untuk aturan tersebut terlihat seperti pada Gambar 14. If Cek_Prefiks("ra", kata) Then kata = Replace(kata, "ra", "") If ReadKamus(kata) Then infiks = True Else infiks = False kata = dummy End If .... End if
Gambar 14 Bagian algoritme Hilangkan_Sisipan() untuk aturan kata yang mengandung suku kata “ra”. 6) Rarangken tengah -in-, contoh: tulis menjadi tinulis (tertulis/ditulis), panggih menjadi pinanggih
(bertemu),
sareng
menjadi
sinareng
(bersama).
Rarangken tengah -in- ini juga memerika fungsi pembantu yang berfungsi untuk menguji apakah sutu kata mengandung suku kata “in”. Fungsi tersebut memiliki bentuk seperti terlihat pada Gambar 15. Fungsi infiks_in(kata As String) : Boolean in1 = Mid(kata, 2, 2) //ambil huruf kedua kata sebanyak 2 //huruf If in1 = "in" Then infiks_in = True Else infiks_in = False End If End Fungsi
Gambar 15 Fungsi infiks_in(). Penggalan algoritme untuk mencari apakah kata mengandung suku kata “in” adalah seperti terlihat pada Gambar 16. If infiks_in(kata) Then kata = Replace(kata, "in", "") If ReadKamus(kata) Then Hilangkan_Sisipan = True Else Hilangkan_Sisipan = False kata = dummy End If End if
Gambar 16 Bagian algoritme Hilangkan_Sisipan() untuk aturan kata yang mengandung suku kata “in”.
32 Rarangken tengah -um-, contoh: sujud menjadi sumujud (bersujud), gantung menjadi gumantung (tergantung), lengis menjadi lumengis (memelas-melas) Pada Rarangken tengah -um- terdapat alomorf um-, yang terjadi apabila digunakan pada kata dasar yang diawali huruf vokal, contoh: amis menjadi umamis (macammacam manis), aing menjadi umaing (egois). Untuk mengatasi rarangken tengah “-um-“ ini juga diperlukan fungsi pembantu yang bertugas untuk menguji apakah kata mengandung suku kata “um” baik di awal kata maupun di tengah kata. Bentuk dari fungsi tersebut seperti terlihat pada Gambar 17. Sedangkan penggalan algoritme untuk rarangken tengah “-um-” seperti yang ditunjukkan pada Gambar 18. Algoritme selengkapnya untuk modul/fungsi Hilangkan_Sisipan() dapat dilihat pada Lampiran 2. Fungsi In_Str_Um(kata As String) As Boolean um1 = Left(kata, 2) um2 = Mid(kata, 2, 2) If um1 = "um" Or um2 = "um" Then In_Str_Um = True Else In_Str_Um = False End If End Fungsi
Gambar 17 Fungsi in_str_um().
If In_Str_Um(kata) <> 0 Then kata = Replace(kata, "um", "") If ReadKamus(kata) Then Hilangkan_Sisipan = True Else Hilangkan_Sisipan = False kata = dummy End If Else ..... Endif
Gambar 18 Bagian algoritme Hilangkan_Sisipan() untuk aturan kata yang mengandung suku kata “um”.
33 3.2.6.4 Modul/fungsi Hilangkan_Barung() Pada modul/fungsi Hilangkan_Barung() ini juga harus memenuhi aturanaturan seperti yang dibahas pada Bab 2. Misalnya untuk aturan yang berakhiran “eun”, ternyata akhiran “-eun” ini mempunyai banyak aturan pada awalannya, contohnya: Rarangken barung sa- -eun (contoh: satujueun = setuju, sahandapeun = lebih bawah, samobileun = untuk satu mobil), Rarangken barung pika- -eun (contoh: pikabungaheun = membuat gembira, pikasebeleun = menyebalkan, pikanyaaheun = membuat jadi sayang),
Rarangken barung pi- -eun (contoh:
pibajueun = bahan baju, pigeuliseun = akan cantik, pigedeeun = akan besar) Algoritme untuk rarangken barung yang memiliki pola seperti di atas, mula-mula akan diuji apakah akhiran dari kata yang diberikan adalah “eun”. Jika ya, maka selanjutnya diuji satu per satu apakah kata memiliki awalan pi-, pika- atau sa-. Sehingga algoritme dengan pola seperti ini adalah penggalan algoritme yang terlihat seperti pada Gambar 19. Algoritme selengkapnya untuk modul/fungsi Hilangkan_Barung() ini dapat dilihat pada Lampiran 2. If (Cek_Sufiks("eun", kata)) Then If Cek_Prefiks("pika", kata) Then 'jika barung = pika- -eun Hilangkan_Barung = True Else If Cek_Prefiks("pi", kata) Then 'jika barung = pi- -eun Hilangkan_Barung = True Else If Cek_Prefiks("sa", kata) Then 'jika barung = sa- -eun Hilangkan_Barung = True Else If Cek_Sufiks("an", kata) Then Hilangkan_Barung = True Else Hilangkan_Barung = False End If End If End If End If End if
Gambar 19 Bagian algoritme Hilangkan_Barung().
34 3.2.6.5 Modul/fungsi Hilangkan_Bareng() Sama seperti modul/fungsi Hilangkan_Barung(), modul ini juga harus mengikuti aturan seperti yang dibahas pada Bab 2. Rarangken bareng memiliki bentuk seperti ini: di- + -ar-, di- + -an, di- + -ar- + -an, di- + -keun, di- +-ar- + keun, di- + -pi, di- + -pika, di- + pang- + -keun, di- + pang- + N- + -keun, di- + pang- + N- + -ar- + -keun, di- + pang- + N- + -ar- +-an +-keun, N- + -ar-, N- + -an, N- + -ar- + -keun, N- + -pi-, N- + -pika-, N- + pang- + -keun-, pa- + N-, pang- + dipika- + -na, pang- + N- + pika- + -na, ting- + -arPembuatan algoritme untuk modul/fungsi Hilangkan_Bareng() ini mengikuti pola seperti yang sudah di bahas pada Sub Bab 3.2.6.4. Salah satu contoh adalah untuk kata yang mempunyai pola, awalan “pang”, bisa mendapatkan gabungan pang- + kata + -na, pangdipika + kata, pang- + kata, pang- N- pika- + kata + -na. Penggalan algoritme untuk pola seperti itu terlihat pada
Gambar
20.
Algoritme
selengkapnya
untuk
Hilangkan_Bareng() dapat dilihat pada Lampiran 2.
If Cek_Prefiks("pang", kata) Then If Cek_Sufiks("na", kata) Then dummy = kata If Cek_Prefiks("dipika", kata) Then Hilangkan_Bareng = True Else If modulNasal_N(kata) Then If Cek_Prefiks("pika", kata) Then Hilangkan_Bareng = True Else Hilangkan_Bareng = False End If End If End If Else If Cek_Sufiks("an", kata) Then Hilangkan_Bareng = True Else Hilangkan_Bareng = False End if End If Else ..... End if
Gambar 20. Bagian algoritme Hilangkan_Bareng().
modul/fungsi
35 3.2.6.5 Modul/fungsi Cek_Kata_Ulang() Pada modul/fungsi kata ulang, akan memisahkan dua hal, yaitu kata ulang yang berbentuk gembleng (seluruhnya) dan kata ulang yang berbentuk sabagian (sebagian). Kata ulang gembleng (seluruhnya) memiliki ciri setiap kata yang diulang dipisahkan dengan tanda “-“. Jika kata berbentuk gembleng (seluruhnya) maka kata yang diambil adalah kata terakhir setelah tanda “-“, setelah itu dicoba untuk menghilangkan imbuhan dari kata tersebut. Untuk kata ulang yang berbentuk sabagian (sebagian), kata ulang yang diberikan akan dihilangkan dahulu imbuhannya baru setelah itu dihilangkan unsur kata ulangnya. Bentuk dari algoritme untuk kata ulang ini dapat dilihat pada Lampiran 2. 3.2.7 Tahap Evaluasi Stemming Pada proses evaluasi stemming ini akan coba dibandingkan antara daftar kata yang muncul dalam dokumen dan daftar kata yang sudah dilakukan proses stemming. Pada tahap ini akan dilihat apakah kata yang ada dalam daftar kata yang muncul dalam dokumen sudah terstemming seperti yang diharapkan. Proses evaluasi dilakukan dengan mengamati secara manual. 3.2.8 Tahap Penulisan Tesis Setelah semua tahapan di atas selesai dilakukan, tahapan berikutnya adalah penulisan dokumen tesis. Penulisan dokumen tesis ini ditulis berdasarkan hasil yang sudah diuji coba dan penulisannya mengikuti standar yang sudah diberikan oleh Institut Pertanian Bogor. 3.2.9 Tahap Pembuatan Kesimpulan Tahapan terakhir adalah tahapan pembuatan kesimpulan. Tahapan ini akan coba disimpulkan bagaimana hasil dari penelitian ini. Dari penelitian ini juga akan ditulis saran-saran untuk penelitian ke depan.