Halaman Utama Halaman Deteksi dua Dokumen

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