Proses Indexing Pemisahan Kata Stemming

4.3.1. Proses Indexing

Proses indexingDokumen secara umum akan memanggil metode indexingDokumen. public void indexingDokumenDokumen dokumen throws SQLException { PorterStemmer stemming = new PorterStemmer; Dokumen d = dokumen; String isiDok = FileController.getKoneksiKontrol.ambilKatad.getFileFisik; d.setIsiisiDok; FileController.getKoneksiKontrol.insertDokumend;insert doc String[] doc = isiDok.toLowerCase.replaceAll;, .split ; for int j = 0; j doc.length; j++ { if doc[j].isEmpty { int index = IndexingController.getKoneksiKontrol.cekKatadoc[j]; if index == -1 { IndexingController.getKoneksiKontrol.insertKatad, stemming.stemmingdoc[j];insert word}}}}} List Code 4. 1 List indexingDokumen

4.3.2. Pemisahan Kata

Tokenizing Pada tahap ini, sistem akan melakukan proses pemisahan kata menggunakan metode replaceAll. Tanda baca ”;” digunakan sebagai pemisah gejala dan query. Dengan menggunakan metode split sebuah String dapat dipotong menjadi kata penyusunnya. dokumen.setIsiisi.replaceAll\n, \\;; List Code 4. 2 Penggunaan metode replaceAll String[] doc = isiDok.toLowerCase.replaceAll;, .split ; List Code 4. 3 Penggunaan metode split

4.3.3. Stemming

Proses stemming merupakan proses untuk mencari kata dasar. Pencarian kata dasar untuk bahasa Indonesia menggunakan metode Porter Stemmer for Bahasa Indonesia . Proses akan menerima masukan sebuah kata yang bertipe String. Proses stemming pada kata tersebut berdasarkan aturan – aturan yang diberikan pada metode Porter Stemmer for Bahasa Indonesia. Proses akan mengembalikan String sebagai kata dasar. public String stemmingString kata { String hasil = ; try { int id_Dic = IndexingController.getKoneksiKontrol.cekKataKamuskata; if id_Dic 0 { hasil = kata; } else { hasil = rule2rule1kata; String temp = rule3hasil; if temp.equalsIgnoreCasehasil { temp = rule4hasil; temp = rule5temp; hasil = temp; } else { String temp2 = rule5temp; if temp2.equalsIgnoreCasetemp { hasil = temp2; } else { hasil = rule4temp2; }}} if hasil.matches[a-zA-Z] { int idKataKamus = IndexingController.getKoneksiKontrol.cekKataKamushasil; int idKataStop = IndexingController.getKoneksiKontrol.cekKatahasil; if idKataKamus 1 idKataStop 1 { IndexingController.getKoneksiKontrol.insertKamushasil; }} } catch SQLException ex { Logger.getLoggerPorterStemmer.class.getName.logLevel.SEVERE, null, ex; } return hasil; } List Code 4. 4 Stemming Pada metode stemming memanggil metode rule1String. Metode tersebut mengimplementasikan algoritma penghapusan partikel -kah, -lah, -pun. Berikut adalah pemaparan metode rule1String. public String rule1String kata { String hasil = kata; int count = getCountWordkata; if count 3 { char[] a = kata.toLowerCase.toCharArray; if a[a.length - 3] == k a[a.length - 2] == a a[a.length - 1] == h { hasil = String.valueOfa, 0, a.length - 3; } else if a[a.length - 3] == l a[a.length - 2] == a a[a.length - 1] == h { hasil = String.valueOfa, 0, a.length - 3; } else if a[a.length - 3] == p a[a.length - 2] == u a[a.length - 1] == n {hasil = String.valueOfa, 0, a.length - 3; }} return hasil; } List Code 4. 5 List rule1 Metode rule2String mengimplementasikan algoritma penghapusan partikel - ku, -mu, -nya. Berikut adalah pemaparan metode rule2String. public String rule2String kata { String hasil = kata; int count = getCountWordkata; if count 3 { char[] a = kata.toLowerCase.toCharArray; if a[a.length - 2] == k a[a.length - 1] == u { hasil = String.valueOfa, 0, a.length - 2; } else if a[a.length - 2] == m a[a.length - 1] == u { hasil = String.valueOfa, 0, a.length - 2; } else if a[a.length - 3] == n a[a.length - 2] == y a[a.length - 1] == a { hasil = String.valueOfa, 0, a.length - 3; } } return hasil; } List Code 4. 6 List rule2 Metode rule3String mengimplementasikan algoritma penghapusan awalan meng-, meny-, men-, mem-, mem-, me-, peng-, peny- , pen-, pem-, di-, ter-, dan ke-. Berikut adalah pemaparan metode rule3String. public String rule3String kata { String hasil = kata; int count = getCountWordkata; if count 4 { char[] a = kata.toLowerCase.toCharArray; if a[0] == m a[1] == e { hasil = String.valueOfa, 2, a.length - 2; if a[2] == n { hasil = String.valueOfa, 3, a.length - 3; if String.valueOfa[3].matches[aiueoAIUEO] { hasil = t.concatString.valueOfa, 3, a.length - 3; } if a[3] == g { hasil = String.valueOfa, 4, a.length - 4; } else if a[3] == y { hasil = String.valueOfa, 4, a.length - 4; if String.valueOfa[4].matches[aiueoAIUEO] { hasil = s.concatString.valueOfa, 4, a.length - 4; }}} else if a[2] == m { hasil = String.valueOfa, 3, a.length - 3; if String.valueOfa[3].matches[aiueoAIUEO] { hasil = p.concatString.valueOfa, 3, a.length - 3; }} } else if a[0] == p a[1] == e { if a[2] == n { hasil = String.valueOfa, 3, a.length - 3; if String.valueOfa[3].matches[aiueoAIUEO] { hasil = t.concatString.valueOfa, 3, a.length - 3; } if a[3] == g {hasil = String.valueOfa, 4, a.length - 4; } else if a[3] == y { hasil = String.valueOfa, 4, a.length - 4; if String.valueOfa[4].matches[aiueoAIUEO] { hasil = t.concatString.valueOfa, 4, a.length - 4; }}} else if a[2] == m {hasil = String.valueOfa, 3, a.length - 3; if String.valueOfa[3].matches[aiueoAIUEO] { hasil = p.concatString.valueOfa, 3, a.length - 3; }} } else if a[0] == d a[1] == i {hasil = String.valueOfa, 2, a.length - 2; } else if a[0] == k a[1] == e {hasil = String.valueOfa, 2, a.length - 2; } else if a[0] == t a[1] == e a[2] == r {hasil = String.valueOfa, 3, a.length - 3; }} return hasil; } List Code 4. 7 List rule3 Metode rule4String mengimplementasikan algoritma penghapusan awalan ber-, bel-, be-, per-, pel-, pe-. Berikut adalah pemaparan metode rule4String. public String rule4String kata { String hasil = kata; int count = getCountWordkata; if count 3 { char[] a = kata.toLowerCase.toCharArray; if a[0] == b a[1] == e { hasil = String.valueOfa, 2, a.length - 2; if a[2] == r { hasil = String.valueOfa, 3, a.length - 3; } else if a[2] == l { hasil = String.valueOfa, 3, a.length - 3; } else if a[2] == n a[3] == g { hasil = kata; } } else if a[0] == p a[1] == e { hasil = String.valueOfa, 2, a.length - 2; if a[2] == r { hasil = String.valueOfa, 3, a.length - 3; } else if a[2] == l { hasil = String.valueOfa, 3, a.length - 3; }}} return hasil; } List Code 4. 8 List rule4 Metode rule5String mengimplementasikan algoritma penghapusan akhiran -kan, -an, -i. Berikut adalah pemaparan metode rule5String. Pada proses ini terdapat penambahan pada algoritma untuk menghindari masukan kata dengan awalan pada rule3 yang dikombinasi dengan akhiran pada rule5. public String rule5String kata { String hasil = kata; int count = getCountWordkata; if count 3 { char[] a = kata.toLowerCase.toCharArray; if a[a.length - 3] == k a[a.length - 2] == a a[a.length - 1] == n { if kata.startsWithke || kata.startsWithpeng { hasil = kata; } else { hasil = String.valueOfa, 0, a.length - 3; } } else if a[a.length - 2] == a a[a.length - 1] == n { if kata.startsWithdi || kata.startsWithter || kata.startsWithmeng { hasil = kata; } else { hasil = String.valueOfa, 0, a.length - 2; } } else if a[a.length - 1] == i { if kata.startsWithber || kata.startsWithke || kata.startsWithpeng { hasil = kata; } else { hasil = String.valueOfa, 0, a.length - 1; } } } return hasil; } List Code 4. 9 List rule5 Pada proses stemming memanggil metode getCountWordString yang digunakan untuk menghitung jumlah abjad kata masukkan. Dengan demikian tanda baca dan angka akan dihiraukan. Metode ini akan mengembalikan nilai bertipe integer. Nilai tersebut merupakan jumlah abjad pada kata masukkan. Berikut pemaparan metode getCountWordString. public int getCountWordString kata { int max = 0; if kata = null { char[] charArr = kata.toCharArray; for int i = 0; i charArr.length; i++ { if String.valueOfcharArr[i].matches[a-zA-Z] { max = max + 1; } } } return max; } List Code 4. 10 getCountWord

4.3.4. Pembacaan