42
Berikut adalah potongan listing program bagian tombol “Login”.
4.4.2 Halaman Utama
Halaman utama adalah halaman yang muncul saat pengguna sudah login ke sistem. Pada halaman ini terdapat tiga menu utama
yaitu deteksi dua dokumen, deteksi dokumen di
database
, dan karya tulis tersimpan serta terdapat menu tambahan yaitu menu edit
pengguna. Dapat dilihat pada gambar 4.2.
Gambar 4.2 Halaman utama
try { Connection conn = new Database.connect;
String sql = select from LOGIN where USERNAME=+ jTextFieldUsername.getText + and PASSWORD= +
jPasswordField.getText+ ; PreparedStatement ps = conn.prepareStatementsql;
ResultSet rs = ps.executeQuery; ifrs.next{
this.dispose; HalamanUtama i = new HalamanUtama;
i.setVisibletrue; } else{
JOptionPane.showMessageDialognull, Maaf Username dan Password Salah;} } catch SQLException ex {}
43
4.4.3 Halaman Deteksi dua Dokumen
Halaman Deteksi dua dokumen merupakan halaman yang digunakan dalam proses pendeteksian dua dokumen yang terindikasi
plagiat. Pada halaman ini pengguna akan memilih dokumen asli dan dokumen uji kemudian penguna bisa memilih batas toleransi
plagiarisme dengan memilih pada
combobox
presentase, dan untuk memulai proses pengujian adalah dengan menekan tombol “proses”.
Setelah proses selesai, hasil akan ditampilkan pada panel sebelah
kanan halaman ini. Dapat dilihat pada gambar 4.3.
Gambar 4.3 Halaman deteksi dua dokumen Berikut adalah beberapa potongan listing program untuk proses
pendeteksian dua dokumen. 1.
Listing program
case folding
private String deleteDelimiterString isiDoc{ String [] delimiter =
{0,1,2,3,4,5,6,7,8,9,`,~,,,,,,,,,,, ,-,_,=,+,{,},[,],:,;,,,,,.,,?,};
for String delimiter1 : delimiter { isiDoc = isiDoc.replacedelimiter1, .toLowerCase;}
return isiDoc;
44
2. Listing program
filtering
3. Listing program
stemming
4. Listing program
parsing k-gram
5. Listing program
hashing
public String removeStopWordString words { String[] wordArray = words.split\\s+;
String newSentence = ; for String word : wordArray {
boolean inList = false; try {
inList = isInListword; } catch SQLException ex {
Logger.getLoggerStopWordRemover.class.getName.logLevel.SEVERE, null, ex;} ifinList containNumericword
newSentence = newSentence + word + ;}} return newSentence;}
private String StemString isiDoc{ StringBuilder result = new StringBuilder;
if isiDoc=null isiDoc.trim.length0{ StringReader tReader = new StringReaderisiDoc;
IndonesianAnalyzer analyzer = new IndonesianAnalyzerVersion.LUCENE_34; org.apache.lucene.analysis.TokenStream tStream = analyzer.tokenStreamcontents,
tReader; TermAttribute term = tStream.addAttributeTermAttribute.class;
try { while tStream.incrementToken{
result.appendterm.term; result.append ;}
} catch IOException ioe{ System.out.printlnError: +ioe.getMessage;}}
if result.length==0 result.appendisiDoc;
return result.toString.trim;}}
private void parsingKgramString pattern, String teks, int jumKgram for int i = 0; i jumKgram; i++ {
int nextKgram = Kgram + i; matchingpattern.substringi, nextKgram, teks;}}
private int hashString pattern {fungsi hash int h = 0;
for int i = 0; i pattern.length; i++ { h += pattern.charAti Math.powbasis, pattern.length - i - 1;}
return h;}
45
6. Listing program Rabin-Karp
7. Listing program
similarity
8. Listing program tombol “Start”
private void matchingString pattern, String teks {rabin karp int panjangPattern = pattern.length;
int panjangTeks = teks.length; int i, j;
int hashPattern = hashpattern; int hashTeks = hashteks.substring0, panjangPattern;
for i = 0; i panjangTeks - panjangPattern; i++ { if hashPattern == hashTeks {
for j = 0; j panjangPattern; j++ { if teks.charAti + j = pattern.charAtj {break;}}
if j == panjangPattern { jumPatternSama++;
patternSama[i] = pattern; break;}} else {
hashTeks = hashteks.substringi + 1, panjangPattern + i + 1;}}}
public double getSimilarity { DecimalFormat twoDForm = new DecimalFormat.;
double A = 2jumPatternSama; double B = jumPatternDocAsli + jumPatternDocUji;
double C = A B 100; int decimalPlace = 2;
BigDecimal bigDecimal = new BigDecimalC; bigDecimal = bigDecimal.setScaledecimalPlace, BigDecimal.ROUND_UP;
if similarity == null { similarity = bigDecimal.doubleValue;}
return similarity;}
SwingUtilities.invokeLater - { boolean p = TestPlagiat.isPlagiarismsumberDocAsli, sumberDocUji, kgram, presentase,
rk - { similarity = rk.similarity;viewDocAsli = rk.DocAsli;viewDocUji = rk.DocUji;
waktuProses = rk.waktuProses;patternSama = rk.patternSama; jLabelNilaiSimilarity.setText: + Double.toStringsimilarity + ;
jLabelNilaiWaktuProses.setText: + Long.toStringwaktuProses + ms;}; jLabelNilaiPlagiat.setTextp ? : Ya : : Tidak;
46
4.4.4 Halaman Deteksi Dokumen di