LISTING PROGRAM
brute.php
<?php
$time_start = microtime(true); function bruteforce($cari,$kata){
$ditemukan=0; //$cari="katu";
//$kata="kata kita ke katu kate";
$cari_arr= str_split($cari); //mengubah kata yang dicari ke bentuk array $cari_len= count($cari_arr); // menghitung panjang kata yang dicari
$kata_arr= str_split($kata); //mengubah kata yang diperiksa ke bentuk array $kata_len= count($kata_arr); // menghitung panjang kata yang diperiksa $batas=$kata_len-$cari_len; // panjang kata - panjang yang di cari $x=0;
while ($x<=$batas) { $char_kata=''; $kata_full='';
for ($i=$x, $n=0; $i < $x+$cari_len; $i++, $n++) { $char_kata[$n]=$kata_arr[$i];
$kata_full.=$kata_arr[$i]; }
for ($j=0; $j < $cari_len; $j++) { // perulangan membandinkan huruf $a=$cari_arr[$j];
$b=$char_kata[$j];
if ($a!=$b) { // jika tidak cocok break;
} }
if ($kata_full==$cari) {
$ditemukan=1; // ditemukan break;
}
//echo "$kata_full, "; $x++;
}
if ($ditemukan==1) {
//echo "kata ditemukan di iterasi ke $iterasike"; //echo $kata."</br>";
$hasil="<a href='brute2.php?cari=$cari&kata=$kata' target='_blank'>$kata</a>";
return $hasil."<br/>"; }
}
$cari=$_REQUEST['cari']; include "koneksi.php";
$sql=mysql_query("SELECT * from kata",$koneksi)or die(mysql_error()); while($data=mysql_fetch_array($sql)){
$kata=$data['kata'];
$hasil=bruteforce($cari,$kata); echo $hasil;
if ($hasil!='') {
$jlh_temuan++; }
}
if ($jlh_temuan==0) { echo "not found"; }
if($cari!='')
echo '<br/> Run Time : ' . number_format((microtime(true) - $time_start),5); ?>
brute2.php
<style type="text/css"> table td {
width: 15px; text-align: center; }
.merah{
background: #99BFDB; }
.hijau{
background: #E1EEFC; }
</style>
<h1>Hasil Iterasi Saran Brute Force</h1> <?php
$time_start = microtime(true); function bruteforce($cari,$kata){
$ditemukan=0; //$cari="katu";
//$kata="kata kita ke katu kate";
$cari_arr= str_split($cari); //mengubah kata yang dicari ke bentuk array $cari_len= count($cari_arr); // menghitung panjang kata yang dicari
$kata_arr= str_split($kata); //mengubah kata yang diperiksa ke bentuk array $kata_len= count($kata_arr); // menghitung panjang kata yang diperiksa
$x=0;
while ($x<$batas+1) { $char_kata=''; $kata_full='';
for ($i=$x, $n=0; $i < $x+$cari_len; $i++, $n++) { $char_kata[$n]=$kata_arr[$i];
$kata_full.=$kata_arr[$i]; }
for ($j=0; $j < $cari_len; $j++) { $a=$cari_arr[$j];
$b=$char_kata[$j]; if ($a!=$b) {
break; }
}
//memunculkan iterasi ke echo "Iterasi ke-$iterasi"; //memunculkan perbandingan echo "<table border=1>"; //kata yang dibandingkan echo "<tr>";
for ($m=0; $m < $kata_len; $m++) { $char_kata=$kata_arr[$m]; echo "<td>$char_kata</td>"; }
echo "</tr>";
//spasi sebelum kata yang di cari echo "<tr>";
$b_char=0;
for ($n=0; $n < $x; $n++) { echo "<td>$nbsp</td>"; $b_char++;
}
//kata yang di cari
for ($o=0; $o < $cari_len; $o++) { $char_cari=$cari_arr[$o];
$char_kata=$kata_arr[$o+$b_char]; if ($char_cari==$char_kata)
$warna='hijau'; else
$warna='merah';
echo "<td class='$warna'>$char_cari</td>"; }
//spasi setelah kata yang di cari
for ($n=0; $n < $kata_len-$x-$cari_len; $n++) { echo "<td>$nbsp</td>";
}
echo "</table>";
if ($kata_full==$cari) { $ditemukan=1; break;
}
$x++; $iterasi++; }
if ($ditemukan==1) {
//echo "kata ditemukan di iterasi ke $iterasike"; //echo $kata."</br>";
} }
$jlh_temuan=0;
$cari=$_REQUEST['cari']; $kata=$_REQUEST['kata']; bruteforce($cari,$kata);
if($cari!='')
echo '<br/> Run Time : ' . number_format((microtime(true) - $time_start),5); ?>
kmp.php
<?php
$time_start = microtime(true); $jlh_temuan=0;
function kmp($cari, $kata){ $ditemukan=0; //$cari='kita';
//$kata="kata kita ke katu kate";
$cari_arr= str_split($cari); //mengubah kata yang dicari ke bentuk array $cari_len= count($cari_arr); // menghitung panjang kata yang dicari
$kata_arr= str_split($kata); //mengubah kata yang diperiksa ke bentuk array $kata_len= count($kata_arr); // menghitung panjang kata yang diperiksa $batas=$kata_len-$cari_len;
$x=0;
while ($x<=$batas) { $char_kata=''; $kata_full='';
for ($i=$x, $n=0; $i < $x+$cari_len; $i++, $n++) { $char_kata[$n]=$kata_arr[$i];
for ($j=0; $j < $cari_len; $j++) { // membandingkan huruf $a=$cari_arr[$j];
$b=$char_kata[$j]; if ($a!=$b) {
break; }
}
if ($kata_full==$cari) { // jika cocok $ditemukan=1;
break; }
//echo "$kata_full, "; $x+=$j+1; //
}
if ($ditemukan==1) {
//echo "kata ditemukan di iterasi ke $iterasike"; //echo $kata."</br>";
$hasil="<a href='kmp2.php?cari=$cari&kata=$kata'
target='_blank'>$kata</a>";
return $hasil."<br/>"; }
}
$cari=$_REQUEST['cari']; include "koneksi.php";
$sql=mysql_query("SELECT * from kata",$koneksi)or die(mysql_error()); while($data=mysql_fetch_array($sql)){
$kata=$data['kata']; $hasil=kmp($cari,$kata); echo $hasil;
if ($hasil!='') {
$jlh_temuan++; }
}
if ($jlh_temuan==0) { echo "not found"; }
if($cari!='')
kmp2.php
<style type="text/css"> table td {
width: 15px; text-align: center; }
.merah{
background: #99BFDB; }
.hijau{
background: #E1EEFC; }
</style>
<h1>Hasil Iterasi Saran Knuth-Morris-Pratt (KMP)</h1> <?php
$time_start = microtime(true); $jlh_temuan=0;
function kmp($cari, $kata){ $ditemukan=0; //$cari='kita';
//$kata="kata kita ke katu kate";
$cari_arr= str_split($cari); //mengubah kata yang dicari ke bentuk array $cari_len= count($cari_arr); // menghitung panjang kata yang dicari
$kata_arr= str_split($kata); //mengubah kata yang diperiksa ke bentuk array $kata_len= count($kata_arr); // menghitung panjang kata yang diperiksa $batas=$kata_len-$cari_len;
$iterasi=1; $x=0;
while ($x<=$batas) { $char_kata=''; $kata_full='';
for ($i=$x, $n=0; $i < $x+$cari_len; $i++, $n++) { $char_kata[$n]=$kata_arr[$i];
$kata_full.=$kata_arr[$i]; }
for ($j=0; $j < $cari_len; $j++) { $a=$cari_arr[$j];
$b=$char_kata[$j]; if ($a!=$b) {
break; }
}
echo "<table border=1>"; //kata yang dibandingkan echo "<tr>";
for ($m=0; $m < $kata_len; $m++) { $char_kata=$kata_arr[$m]; echo "<td>$char_kata</td>"; }
echo "</tr>";
//spasi sebelum kata yang di cari echo "<tr>";
$b_char=0;
for ($n=0; $n < $x; $n++) { echo "<td>$nbsp</td>"; $b_char++;
}
//kata yang di cari
for ($o=0; $o < $cari_len; $o++) { $char_cari=$cari_arr[$o];
$char_kata=$kata_arr[$o+$b_char]; if ($char_cari==$char_kata)
$warna='hijau'; else
$warna='merah';
echo "<td class='$warna'>$char_cari</td>"; }
//spasi setelah kata yang di cari
for ($n=0; $n < $kata_len-$x-$cari_len; $n++) { echo "<td>$nbsp</td>";
}
echo "</tr>"; echo "</table>";
if ($kata_full==$cari) { $ditemukan=1; break;
}
//echo "$kata_full, "; $x+=$j+1;
$iterasi++; }
if ($ditemukan==1) {
//echo "kata ditemukan di iterasi ke $iterasike"; //echo $kata."</br>";
//return $kata."<br/>"; }
$cari=$_REQUEST['cari']; $kata=$_REQUEST['kata']; $hasil=kmp($cari,$kata);
if($cari!='')
echo '<br/> Run Time : ' . number_format((microtime(true) - $time_start),5); ?>
class_paging.php
<?php class Paging {
// Fungsi untuk mencek halaman dan posisi data function cariPosisi($batas)
{
if(empty($_GET[halaman])){ $posisi=0;
$_GET[halaman]=1; }
else{
$posisi = ($_GET[halaman]-1) * $batas; }
return $posisi; }
// Fungsi untuk menghitung total halaman function jumlahHalaman($jmldata, $batas) {
$jmlhalaman = ceil($jmldata/$batas); return $jmlhalaman;
}
// Fungsi untuk link halaman 1,2,3 ... Next, Prev, First, Last function navHalaman($halaman_aktif, $jmlhalaman, $page) {
$link_halaman = "";
// Link First dan Previous if ($halaman_aktif > 1) {
$link_halaman .= " <a href=$file?$page&halaman=1><< First</a> | "; }
if (($halaman_aktif-1) > 0) {
$previous = $halaman_aktif-1;
// Link halaman 1,2,3, ...
for ($i=1; $i<=$jmlhalaman; $i++) {
if ($i == $halaman_aktif) {
$link_halaman .= "<b>$i</b> | "; }
else {
$link_halaman .= "<a href=$file?$page&halaman=$i>$i</a> | "; }
$link_halaman .= " "; }
// Link Next dan Last
if ($halaman_aktif < $jmlhalaman) {
$next=$halaman_aktif+1;
$link_halaman .= " <a href=$file?$page&halaman=$next>Next ></a> "; }
if (($halaman_aktif != $jmlhalaman) && ($jmlhalaman != 0)) {
$link_halaman .= " | <a href=$file?$page&halaman=$jmlhalaman>Last >></a> "; }
return $link_halaman; }
} ?>
edit_data.php
<!DOCTYPE html> <html>
<head>
<title>Adli Abdillah Nababan</title>
<link rel="stylesheet" type="text/css" href="css/style.css"> <style type="text/css">
#table_kata table{
border:1px solid #000000; }
#table_kata th{
background-color:#000; color:#FFFFFF;
}
#table_kata tr:hover{
#table_kata a{
text-decoration:none; color:#333;
} </style> </head>
<body>
<div id="wrapper"> <div id="header">
Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP)
Dalam Pencarian Word Suggestion </div>
<div id="menu"> <ul>
<li><a href="index.php">Word Suggestion</a></li> <li><a href="tambah_data.php">Tambah Data</a></li> <li><a href="tentang.php">Tentang</a></li>
</ul> </div>
<div id="pattern-wrap"> <?php
include "koneksi.php"; $id=$_REQUEST['id'];
$sql=mysql_query("SELECT * FROM kata WHERE
id_kata='$id'",$koneksi)or die(mysql_error()); $row=mysql_fetch_array($sql);
$kata=$row['kata']; ?>
<form action="proses_edit.php"> Edit Kata: <br/>
<input type="hidden" name="id" value="<?php echo $id?>">
<input type="text" name="kata" id="pattern" value="<?php echo $kata?>" /><br/>
<input type="submit" value="Edit Kata" /> </form>
</div> </div>
</body> </html>
index.php
<!DOCTYPE html> <html>
<head>
<title>Adli Abdillah Nababan</title>
</head> <body>
<div id="wrapper"> <div id="header">
Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP)
Dalam Pencarian Word Suggestion </div>
<div id="menu"> <ul>
<li><a href="index.php">Word Suggestion</a></li> <li><a href="tambah_data.php">Tambah Kata</a></li> <li><a href="tentang.php">Tentang</a></li>
</ul> </div>
<div id="pattern-wrap"> Input Pattern: <br/>
<input type="text" id="pattern" /> </div>
<div id="result">
<div id="result-left"> Brute Force:
<div id="brute_force">result</div> </div>
<div id="result-right"> Knuth-Morris-Pratt:
<div id="kmp">result</div> </div>
</div>
<a href="http://www.pnri.go.id/IstilahKomputer.aspx"<h>sumber: http://www.pnri.go.id/IstilahKomputer.aspx/</a>
</div>
<script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#pattern").keyup(function(event){ var kata = $("#pattern").val();
$("#brute_force").load('brute.php', {"cari":kata} ); $("#kmp").load('kmp.php', {"cari":kata} );
koneksi.php
<?php
$host="localhost"; $username="root"; $password="";
$database="istilah komputer";
$koneksi=mysql_connect($host,$username,$password) or die(mysql_error()); mysql_select_db($database,$koneksi) or die(mysql_error());
?>
proses_edit.php
<?php
include "koneksi.php";
$id=$_REQUEST['id']; $kata=$_REQUEST['kata'];
if($id && $kata) {
$sql=mysql_query("UPDATE kata SET kata='$kata' WHERE id_kata=$id",$koneksi) or die (mysql_error()); ?>
<script language="javascript">
alert('perubahan telah di simpan') window.location = "tambah_data.php"; </script>
<?php }
else { ?>
<script language="javascript">
alert('maaf, isi data anda dengan benar') window.back();
</script>
<?php } ?>
proses_hapus.php
include ("koneksi.php");
$id=$_REQUEST[id];
if($id!='') {
mysql_query("DELETE FROM kata WHERE id_kata=$id");
?>
<script language="javascript"> alert('kata di hapus')
window.location = "tambah_data.php"; </script>
<?php }
else {
?>
<script language="javascript">
alert('hapus gagal di hapus') window.back();
</script> <?php
} ?>
proses_tambah.php
<?php
include "koneksi.php";
$kata=$_REQUEST['kata'];
if($kata!=''){
$sql=mysql_query("INSERT into kata (kata) values ('$kata')"); if ($sql) {
?>
<script language="javascript"> alert('kata telah di simpan');
window.location = "tambah_data.php"; </script>
<?php }
} else{
?>
<script language="javascript"> alert('isi kata');
</script> <?php
}
?>
result.php
<?php
if( $_REQUEST["kata"] ) {
$kata = $_REQUEST['kata']; echo "Welcome ". $kata; }
?>
tambah_data.php
<!DOCTYPE html> <html>
<head>
<title>Adli Abdillah Nababan</title>
<link rel="stylesheet" type="text/css" href="css/style.css"> <style type="text/css">
#table_kata table{
border:1px solid #000000; }
#table_kata th{
background-color:#000; color:#FFFFFF;
}
#table_kata tr:hover{
background-color:#CCCCCC; }
#table_kata a{
text-decoration:none; color:#333;
} </style> </head>
<body>
<div id="wrapper"> <div id="header">
Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP)
<div id="menu"> <ul>
<li><a href="index.php">Word Suggestion</a></li> <li><a href="tambah_data.php">Tambah Kata</a></li> <li><a href="tentang.php">Tentang</a></li>
</ul> </div>
<div id="pattern-wrap">
<form action="proses_tambah.php"> Kata Baru: <br/>
<input type="text" name="kata" id="pattern" /><br/> <input type="submit" value="Tambah Kata" /> </form>
</div>
<div id="result">
<h3>Data Kata</h3> <?php
include "koneksi.php";
$file = "tambah_data.php"; $page = "";
// Memanggil dan menginisiasi class include "class_paging.php";
$p = new Paging;
// Tentukan limit atau batas $batas = 100;
// Cek halaman dan posisi data $posisi = $p->cariPosisi($batas);
$warna1 = ""; //baris ganjil $warna2 = ""; //baris genap
$warna = $warna1; //warna default
?>
<table id="table_kata"> <tr>
<th>No.</th> <th>Kata</th> <th>Action</th> </tr>
<?php $no=$posisi+1;
$sql = mysql_query("SELECT * FROM kata ORDER BY kata ASC LIMIT $posisi,$batas", $koneksi) or die (mysql_error());
$sql2 = mysql_query("SELECT * FROM kata ORDER BY kata ASC");
{
if($no%2==0) $warna=$warna2; else
$warna=$warna1;
//mencari sisa
$id_kata=$row['id_kata']; $kata=$row['kata'];
?>
<tr bgcolor="<?php echo $warna ?>"> <td><?php echo $no?></td>
<td><?php echo $kata ?></td> <td>
<a href='edit_data.php?id=<?php echo $id_kata?>' onClick="return confirm('Anda ingin mengubah data?')"><acronym title='Edit Data'><img src='images/edit.png' width='20' height='20' alt='edit'></a>
<a href='proses_hapus.php?id=<?php echo $id_kata?>' onClick="return confirm('Anda ingin menghapus data?')"><acronym title='Hapus
Data'><img src='images/delete.png' width='20' height='20'
alt='delete'></acronym></a>
</td> </tr> <?php $no++; }
?>
</table> <?php
// Dapatkan jumlah data keseluruhan $jmldata = mysql_num_rows($sql2);
// Dapatkan jumlah halaman
$jmlhalaman = $p->jumlahHalaman($jmldata, $batas);
// Cetak link navigasi halaman
$linkHalaman = $p->navHalaman($_GET[halaman], $jmlhalaman, $page); echo $linkHalaman;
?> </div> </div>
tentang.php
<!DOCTYPE html> <html>
<head>
<title>Adli Abdillah Nababan</title>
<link rel="stylesheet" type="text/css" href="css/style.css"> <style type="text/css">
#tentang-right{
font-family: Times; font-size: 20px; }
table td{
vertical-align: top; }
</style> </head>
<body>
<div id="wrapper"> <div id="header">
Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP)
Dalam Pencarian Word Suggestion </div>
<div id="menu"> <ul>
<li><a href="index.php">Word Suggestion</a></li> <li><a href="tambah_data.php">Tambah Kata</a></li> <li><a href="tentang.php">Tentang</a></li>
</ul> </div>
<div id="pattern-wrap"> Tentang Saya </div>
<div id="tentang">
<div id="tentang-left"> <br><br><br>
<center><img src="images/word-suggestion.png"></center> </div>
<div id="tentang-right"> <table>
<tr>
<td width="125">Nama</td> <td>:</td>
<td>Adli Abdillah Nababan</td> </tr>
<tr>
<td>131421065</td> </tr>
<tr>
<td>Judul Skripsi</td> <td>:</td>
<td>Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) Dalam
Pencarian Word Suggestion. </td>
</tr> <tr>
<td>Pembimbing I</td> <td>:</td>
<td>Dr. Poltak Sihombing, M.Kom</td> </tr>
<tr>
<td>Pembimbing II</td> <td>:</td>
<td>Dian Rachmawati, S.Si, M.Kom</td> </tr>
</table>
<center><img src="images/logo-usu.png"></center> </div>
</div> </div>
<script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#pattern").keyup(function(event){ var kata = $("#pattern").val();
$("#brute_force").load('brute.php', {"cari":kata} ); $("#kmp").load('kmp.php', {"cari":kata} );
DAFTAR RIWAYAT HIDUP
Saya yang bertanda tangan dibawah ini :
DATA PRIBADI
Nama : Adli Abdillah Nababan
Alamat : Jl. Pintu Air Gg. Langgar No.7A Medan
Hp : 082168444649
E-Mail : adlyan619@gmail.com
Tempat/ tanggal lahir : Padangsidimpuan, 13 Juni 1992 Jenis Kelamin : Laki-laki
Status : Belum Menikah
PENDIDIKAN
1998 - 2004 : SD Negeri 200110 Padangsidimpuan 2004 - 2007 : SMP Negeri 1 Padangsidimpuan 2007 - 2010 : SMA Negeri 1 Padangsidimpuan
2010 - 2013 : DIII Teknik Informatika Universitas Sumatera Utara 2013 - 2015 : S-1 Ekstensi Ilmu Komputer Universitas Sumatera Utara
SEMINAR
Seminar Nasional Literasi Informasi (SENARAI) 2014 Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Demikianlah Daftar Riwayat Hidup ini saya perbuat dengan sebenarnya.
Hormat Saya,