Textarea Dokumen Pembanding
LISTING PROGRAM
Winnowing.php
<?php
//Waktu Mulai Eksekusi
$waktu = microtime();
$waktu = explode(" ",$waktu);
$waktu = $waktu[1] + $waktu[0];
$waktu_mulai = $waktu;
?>
<html>
<head>
<title>PENDETEKSI DOKUMEN</title>
</head>
<body>
<h1><p style="text-align: center"><br>Sistem Pendeteksi Kemiripan Dokumen</p></h1>
<form method="POST" action="winnowing.php">
<table border = "1" width ="100%">
<tr>
<td><p><h2>Pilih Dokumen Uji : </p>
<input type="file" class="form-control" id="inputFile"
name="inputFile1" placeholder="File">
<?php
if (isset ($_POST['inputFile1'])) { include 'vendor/autoload.php';
$parser = new \Smalot\PdfParser\Parser();
$pdf = $parser->parseFile($_POST['inputFile1']);
$dokuji = $pdf->getText();
}
?>
<div class="container">
<textarea name="dokuji" style="width :100%" rows="20; overflow-y:scroll"><?php echo $dokuji; ?></textarea></td>
<td><p><h2>Pilih Dokumen Pembanding : </p>
<input type="file" class="form-control" id="inputFile"
name="inputFile2" placeholder="File">
<?php
if (isset ($_POST['inputFile2'])) {
$pdf2 = $parser->parseFile($_POST['inputFile2']);
$dokpembanding = $pdf2->getText();
}
?>
<div class="container">
<textarea name="dokpembanding" style="width :100%" rows="20;
overflow-y:scroll"><?php echo $dokpembanding;?></textarea></td>
<h2><p>K-Gram : <input type ="text" name = "k" value ="<?php echo
$k;?>" >
<p>W-Gram : <input type ="text" name = "window" value = "<?php echo
$window;?>" >
<p>Bilangan Prima : <input type="text" name="prima" value=" <?php echo
$prima;?>"></p>
A-3
</form>
</form>
<p>
<h2>Keterangan Hasil Proses</h2></p>
<table style="width : 100%" border = "5">
<tr>
<td><font face="Comic Sans MS" size="5">K-Gram Dokumen Uji</td>
<td><font face="Comic Sans MS" size="5">K-Gram Dokumen Pembanding</td>
</tr>
<tr>
<td>
<textarea style ="width :100%; overflow-y:scroll;" rows="20">
<?php
</textarea>
</td>
</tr>
<tr>
<td><font face="Comic Sans MS" size="5">Rolling Hash Dokumen Uji</td>
<td><font face="Comic Sans MS" size="5">Rolling Hash Dokumen Pembanding</td>
</tr>
<tr>
<td><textarea style="width :100%; overflow-y:scroll;" rows="20">
<?php
A-5
<tr>
<td><font face="Comic Sans MS" size="5">W-Gram Dokumen Uji</td>
<td><font face="Comic Sans MS" size="5">W-Gram Dokumen Pembanding</td>
</tr>
<tr>
<td><textarea style="width :100%; overflow-y:scroll;" rows="20">
<?php
echo "Window-".($i+1)." : {".rtrim($s, ' ')."}\n";
}
echo "Window-".($i+1)." : {".rtrim($s, ' ')."}\n";
}
?>
</textarea></td>
</tr>
<tr>
<td><font face="Comic Sans MS" size="5" >Fingerprint Dokumen Uji</td>
<td><font face="Comic Sans MS" size="5" >Fingerprint Dokumen Pembanding</td>
</tr>
<tr>
<td><textarea style="width :100%; overflow-y:scroll;" rows="20">
<?php
<td><textarea style="width :100%; overflow-y:scroll;" rows="20">
<?php
A-7
<td><font face="Comic Sans MS" "center"size="4">
<p>Jumlah Fingerprint Dokumen Uji = <?php echo
$count_fgr_uji;?></p>
<p>Jumlah Fingerprint Dokumen Pembanding = <?php echo
$count_fgr_banding;?> </p>
<p>Gabungan Fingerprint Uji dan Pembanding = <?php echo
$count_gabung_fgr;?></p>
<p>Intersection = <?php echo
$count_intersect_fingers;?></p>
<p>(Gabungan - Intersection) = <?php echo ($count_gabung_fgr -
$count_intersect_fingers);?></p>
<p><font face="Comic Sans MS" size ="6">Hasil Kemiripan Dokumen Uji dan Pembanding </p></font>
<p> Koefisien Jaccard = (Intersection / (Union-Intersection))
* 100 </p>
<p> (<?php echo $count_intersect_fingers
."/".($count_gabung_fgr - $count_intersect_fingers).") * 100 =
".$w->GetJaccardCoefficient();?> %</p>
if (($this->pdfuji == '') || ($this->pdfbanding == '')) exit;
//langkah I : buang semua huruf yang bukan kelompok [a-z A-Z 0-9]
dan ubah menjadi huruf kecil semua (lowercase)
$this->pdfuji = strtolower(str_replace(' ','',preg_replace("/[^a-zA-Z0-9\s-]/", "", $this->pdfuji)));
$this->pdfbanding = strtolower(str_replace(' ','',preg_replace("/[^a-zA-Z0-9\s-]/", "", $this->pdfbanding)));
//langkah II : Membentuk K-Gram
>arr_k_gramuji = >k_gram(>pdfuji,
$this->k_gram_value);
$this->arr_k_grambanding = $this->k_gram($this->pdfbanding,
$this->k_gram_value);
//langkah III : Membentuk rolling hash dari k gram yang telah terbentuk
$this->arr_rolling_hashuji =
$this->rolling_hash($this->arr_k_gramuji);
$this->arr_rolling_hashbanding =
$this->rolling_hash($this->arr_k_grambanding);
//langkah IV : Membentuk windowing dari pada tabel rolling hash yang telah terbentuk
$this->arr_windowuji =
$this->windowing($this->arr_rolling_hashuji, $this->k_window_value);
$this->arr_windowbanding =
$this->windowing($this->arr_rolling_hashbanding, $this->k_window_value);
//langkah V : Mencari nilai minimum pada window agar menghasilkan fingerprintings
$this->arr_fingerprintsuji =
$this->fingerprints($this->arr_windowuji);
$this->arr_fingerprintsbanding =
$this->fingerprints($this->arr_windowbanding);
A-9
//langkah VI : Menghitung koefisien kemiripan pada 2 dokumen uji dan pembanding menggunakan metode persamaan Jaccard Coefficient
$this->jaccard_coefficient =
$this->jaccard_coefficient($this->arr_fingerprintsuji, $this->arr_fingerprintsbanding);
}
private function jaccard_coefficient($fingerprint_uji,
$fingerprint_pembanding){
$arr_intersect = array_intersect( $fingerprint_uji,
$fingerprint_pembanding );
$arr_gabungan = array_merge( $fingerprint_uji,
$fingerprint_pembanding );
$count_intersect_fingers = count($arr_intersect);
$count_gabung_fgr = count( $arr_gabungan);
$coefficient = $count_intersect_fingers /
($count_gabung_fgr - $count_intersect_fingers );
return $coefficient;
} }
//Waktu Eksekusi Sistem
$waktu = microtime();
$waktu = explode(" ",$waktu);
$waktu = $waktu[1] + $waktu[0];
$waktu_selesai = $waktu;
$total_waktu = round($waktu_selesai - $waktu_mulai,2);
echo "<font size=6><br>Waktu Proses Pendeteksian ".$total_waktu." detik";
?>
LAMPIRAN B
DAFTAR RIWAYAT HIDUP