Halaman Deteksi Dokumen di

46

4.4.4 Halaman Deteksi Dokumen di

Database Halaman Deteksi dokumen di database merupakan halaman proses pengujian dokumen uji terhadap dokumen yang tesimpan di database. Pada halaman ini terdapat dua tiga panel yaitu panel input dokumen, panel karya tulis tersimpan, dan panel hasil pengujian. Untuk memulai proses pengujian, pengguna memilih dokumen yang akan diuji dan memilih batas toleransi plagiarisme dengan memilih pada combobox presentase. Untuk memulai poengujian pengguna dapat menekan tompol “proses”. Hasil pengujian akan ditampilkan pada panel hasil di sebelah bawah. Pengguna dapat menyimpan dokumen yang sudah diuji dengan menekan tombol “simpan dokumen” Dapat dilihat pada gambar 4.4. Gambar 4.4 Halaman deteksi dokumen di database Berikut adalah beberapa potongan listing program untuk proses pendeteksian dokumen di database. 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; 47 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;} 48 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;} hasil = TestPlagiat.isPlagiarismd[0], docUji, k, t, rk - { String[] row = new String[5]; row[0] = docUji; row[1] = d[0]; row[2] = d[1]; row[3] = + rk.getSimilarity; row[4] = rk.getSimilarity t ? Ya : Tidak; model.addRowrow; jLabelWaktu.setText: + Long.toStringrk.waktuProses + ms;c 49

4.4.5 Halaman Karya Tulis Tersimpan