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