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