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