• Tidak ada hasil yang ditemukan

Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) Dalam Pencarian Word Suggestion

N/A
N/A
Protected

Academic year: 2019

Membagikan "Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) Dalam Pencarian Word Suggestion"

Copied!
19
0
0

Teks penuh

(1)

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/>"; }

}

(2)

$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

(3)

$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>";

}

(4)

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];

(5)

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!='')

(6)

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; }

}

(7)

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/>"; }

(8)

$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&amp;halaman=1><< First</a> | "; }

if (($halaman_aktif-1) > 0) {

$previous = $halaman_aktif-1;

(9)

// 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&amp;halaman=$i>$i</a> | "; }

$link_halaman .= " "; }

// Link Next dan Last

if ($halaman_aktif < $jmlhalaman) {

$next=$halaman_aktif+1;

$link_halaman .= " <a href=$file?$page&amp;halaman=$next>Next ></a> "; }

if (($halaman_aktif != $jmlhalaman) && ($jmlhalaman != 0)) {

$link_halaman .= " | <a href=$file?$page&amp;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{

(10)

#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>

(11)

</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} );

(12)

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

(13)

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');

(14)

</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)

(15)

<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");

(16)

{

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>&nbsp;&nbsp;

<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>&nbsp;&nbsp;

</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>

(17)

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>

(18)

<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} );

(19)

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,

Referensi

Dokumen terkait

Dari hasil pengkajian didapatkan data mengenai tanda gejala dari gangguan kesehatan dimana masalah kesehatan yang dialami oleh keluarga memerlukan bantuan untuk segera

The main problems in this research are 1. What are the obstacles and solutions to murabahah financing at BNI Syariah KFO Masamba? The objectives of this study

Skripsi adalah karya tulis ilmiah yang mengemukakan pendapat penulis berdasar pendapat orang lain dimana karya ilmiah yang ditulis berdasarkan hasil penelitian lapangan, didukung

In conclusion, considering the white dragon fruit extract effectively increase the synthesis of testosterone as well as the spermiogenic parameters thus the

Jaringan lemak pada obesitas menyebabkan suplai darah yang tidak adekuat, mengakibatkan lamanya proses penyembuhan dan menurunnya resistensi terhadap infeksi Selain itu juga

Dalan pasal 1 ayat 1 sub lb ini yang non jadi tujuan da­ ri pcrbuatan terdalcwa adalah ncnggulingfcan, ncrusak atau nc- rongrong kekuasaan nogara atau kcwibawaan pcncrintah -yang

Menjelaskan sebab terjadinya karena tindakan yang tidak sesuai prosedur, teknik operasi yang cukup sulit dan peralatan yang kurang memadai, serta

Dan masa adaptasi penggunaan kontrasepsi IUD adalah jangka waktu yang dibutuhkan pengguna IUD dalam merespon keberadaan IUD di dalam rahimnya ditandai dengan