Tokenization Stopwords Stemming Operasi Teks pada Query to Document

13. Tabel Hukum_pasal Kode Program 4.13 Implementasi Pembuatan Tabel Hukum_pasal

4.3. Implementasi Operasi Teks

4.3.1. Operasi Teks pada Query to Document

Operasi teks pada sub sistem ini terdapat 3 tahap, yaitu tokenization, eliminasi stopwords, dan stemming. Berikut ini merupakan implementasi dari ketiga tahap tersebut :

4.3.1.1. Tokenization

Proses tokenization dilakukan sebelum proses stopwords. Di bawah ini kode program 4.14 merupakan implementasi dari proses tokenization : Kode Program 4.14 Implementasi Tokenization CREATE TABLE `hukum_pasal` `id_no_psl` varchar10 NOT NULL, `id_hukum` varchar6 NOT NULL, PRIMARY KEY `id_no_psl`,`id_hukum`, KEY `FK_hukum_pasal` `id_hukum`, CONSTRAINT `FK_hukum_pasal` FOREIGN KEY `id_hukum` REFERE NCES `kamus_hukum` `id_hukum` ENGINE=InnoDB DEFAULT CHARSET=latin1 StringTokenizer st = new StringTokenizerklmt.toString, _+{}|:?1234567890=[];,.€\; while st.hasMoreTokens { String test = st.nextToken; StringTokenizer st2 = new StringTokenizertest.toLowerCase; while st2.hasMoreTokens { String kata = String.valueOfst2.nextToken.toLowerCase; } }

4.3.1.2. Stopwords

Proses stopwords dilakukan setelah proses tokenization, dimana dilakukan pemanggilan terhadap cariStopwordsString kata terlebih dahulu untuk menyeleksi stopwords, kemudian kata yang bukan termasuk stopwords akan ditampung pada list bukanStopwords. Berikut ini pada kode program 4.15 merupakan uraian dari method cariStopwords : Kode Program 4.15 Implementasi Stopwords public Stopwords cariStopwordsString kata throws SQLException { PreparedStatement statement = null; ResultSet rs2 = null; conn.setAutoCommitfalse; String sql = SELECT stopword from stopwords where stopword = + kata + ; statement = conn.prepareStatementsql; rs2 = statement.executeQuery; Stopwords s = new Stopwords; while rs2.next { s.setStopwordrs2.getString1; } conn.commit; return s; }

4.3.1.3. Stemming

Berikut ini pada kode program 4.16 merupakan method StemmingBobbyNazief untuk mencari kata dasar dari setiap istilah dengan menghilangkan awalan dan akhiran : public class StemmingBobbyNazief { ResultSet rs = null; PreparedStatement pst = null; private Connection conn; private String kata; public StemmingBobbyNaziefConnection koneksi { this.conn = koneksi; } public static StemmingBobbyNazief getkoneksi throws SQLException { StemmingBobbyNazief kon = new StemmingBobbyNaziefKoneksi.ConnectDb; return kon; } public void setKataString kata { this.kata = kata; } public String getKata { try { String cr, cr2; delReduplikasi; hapusInflectionSuffixes1; hapusDerivationSuffixes1; hapusDerivationPrefix_I; cr = cariRootwordskata; if cr = null { return kata; } else { kata = kata + i; cr2 = cariRootwordskata; if cr2 = null { return kata; } else if cr2 == null { return kata = kata.substring0, kata.length - 1; } } } catch SQLException ex { Logger.getLoggerStemmingBobbyNazief.class.getName.logLevel.SEVERE , null, ex; } return kata; } public String delReduplikasi { String cari; try { cari = cariRootwordskata; if cari == null { String firstWord = null; String secondWord = null; ifkata.contains- { firstWord = kata.substring0, kata.indexOf-; secondWord = kata.substringkata.indexOf- + 1; String cr, cr2; cr = cariRootwordsfirstWord; cr2 = cariRootwordssecondWord; if cr = null { kata = firstWord; } else if cr2 = null { kata = secondWord; } else if cr = null cr2 = null { kata = firstWord + + secondWord; } else { kata = secondWord; } } } } catch SQLException ex { Logger.getLoggerStemmingBobbyNazief.class.getName.logLevel.SEVERE , null, ex; } return kata; } public String hapusInflectionSuffixes1 { try { String cari; cari = cariRootwordskata; if cari == null { if kata.endsWithlah { hapusInflectionSuffixes2; } else if kata.endsWithkah { kata = kata.substring0, kata.length - 3; hapusInflectionSuffixes2; } else if kata.endsWithtah { kata = kata.substring0, kata.length - 3; hapusInflectionSuffixes2; } else if kata.endsWithpun { kata = kata.substring0, kata.length - 3; hapusInflectionSuffixes2; } else { hapusInflectionSuffixes2; } } } catch SQLException ex { Logger.getLoggerStemmingBobbyNazief.class.getName.logLevel.SEVERE , null, ex; } return kata; } public String hapusDerivationSuffixes1 { try { String cari; cari = cariRootwordskata; if cari == null { if kata.endsWithi { kata = kata.substring0, kata.length - 1; } else if kata.endsWithkan { kata = kata.substring0, kata.length - 3; } else if kata.endsWithan { kata = kata.substring0, kata.length - 2; } } } catch SQLException ex { Logger.getLoggerStemmingBobbyNazief.class.getName.logLevel.SEVERE , null, ex; } return kata; } public String hapusDerivationPrefix_I { try { String cr, cari; cari = cariRootwordskata; if cari == null { if kata.startsWithdi { kata = kata.substring2; } else if kata.startsWithke { kata = kata.substring2; } else if kata.startsWithse { kata = kata.substring2; } else if kata.startsWithte { if kata.startsWithter { cr = cariRootwordsr + kata.substring3; if cr = null { kata = r + kata.substring3; } else { kata = kata.substring3; } } else { kata = kata.substring2; } } else if kata.startsWithbe { if kata.startsWithber { cr = cariRootwordskata.substring3; if cr == null { kata = kata.substring2; } else { kata = kata.substring3; } } else if kata.startsWithbel { kata = kata.substring3; } else { kata = kata.substring2; } } else if kata.startsWithme { men, mem, meng, meny, menge if kata.startsWithmeng { cr = cariRootwordsk + kata.substring4; if cr = null { kata = k + kata.substring4; } else { kata = kata.substring4; } } else if kata.startsWithmeny { cr = cariRootwordss + kata.substring4; if cr = null { kata = s + kata.substring4; } else { kata = kata.substring4; } } else if kata.startsWithmem { cr = cariRootwordsp + kata.substring3; if cr = null { kata = p + kata.substring3; } else { kata = kata.substring3; } } else if kata.startsWithmen { cr = cariRootwordst + kata.substring3; if cr = null { kata = t + kata.substring3; } else { kata = kata.substring3; } } else { kata = kata.substring2; } } else if kata.startsWithpe { if kata.startsWithper { kata = kata.substring3; } else if kata.startsWithpem { cr = cariRootwordsp + kata.substring3; if cr = null { kata = p + kata.substring3; } else { kata = kata.substring3; } } else if kata.startsWithpeny { cr = cariRootwordss + kata.substring4; if cr = null { kata = s + kata.substring4; } else { kata = kata.substring4; } Kode Program 4.16 Implementasi Stemming } else if kata.startsWithpen { cr = cariRootwordst + kata.substring3; if cr = null { kata = t + kata.substring3; } else { kata = kata.substring3; } } else if kata.startsWithpeng { cr = cariRootwordsk + kata.substring4; if cr = null { kata = k + kata.substring4; } else { kata = kata.substring4; } } else { kata = kata.substring2; } } } } catch SQLException ex { Logger.getLoggerStemmingBobbyNazief.class.getName.logLevel.SEVERE , null, ex; } return kata; } public String cariRootwordsString kata throws SQLException { PreparedStatement statement = null; ResultSet rs2 = null; conn.setAutoCommitfalse; String sql = SELECT rootword from rootwords where rootword = + kata + ; statement = conn.prepareStatementsql; rs2 = statement.executeQuery; String s = null; while rs2.next { s = rs2.getStringrootword; } conn.commit; return s; } }

4.3.2. Operasi Teks pada Document to Document