89 LISTING PROGRAM brute.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/>"; $jlh_temuan=0;
90 $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> $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; $iterasi=1;
91 $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 "</tr>";
92 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 $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]; $kata_full.=$kata_arr[$i];
93 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!='') echo '<br/> Run Time : '. number_format((microtime(true) - $time_start),5);
94 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> $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; //memunculkan iterasi ke echo "Iterasi ke-$iterasi"; //memunculkan perbandingan
95 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/>";
96 $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 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.= "<a href=$file?$page&halaman=$previous>< Previous</a> ";
97 // 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 background-color:#cccccc;
98 #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 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 id="pattern-wrap"> 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=" echo $id"> <input type="text" name="kata" id="pattern" value=" echo $kata" /><br/> <input type="submit" value="edit Kata" /> </form> </body> </html> index.php <!DOCTYPE html> <html> <head> <title>adli Abdillah Nababan</title> <link rel="stylesheet" type="text/css" href="css/style.css">
99 </head> <body> <div id="wrapper"> <div id="header"> Implementasi Algoritma Brute Force dan Algoritma Knuth-Morris-Pratt (KMP) Dalam Pencarian Word Suggestion <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 id="pattern-wrap"> Input Pattern: <br/> <input type="text" id="pattern" /> <div id="result"> <div id="result-left"> Brute Force: <div id="brute_force">result <div id="result-right"> Knuth-Morris-Pratt: <div id="kmp">result <a href="http://www.pnri.go.id/istilahkomputer.aspx"<h>sumber: http://www.pnri.go.id/istilahkomputer.aspx/</a> <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 ); ); ); </script> </body> </html>
100 koneksi.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 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> else <script language="javascript"> alert('maaf, isi data anda dengan benar') window.back(); </script> proses_hapus.php
101 include ("koneksi.php"); $id=$_request[id]; if($id!='') mysql_query("delete FROM kata WHERE id_kata=$id"); else <script language="javascript"> alert('kata di hapus') window.location = "tambah_data.php"; </script> <script language="javascript"> alert('hapus gagal di hapus') window.back(); </script> proses_tambah.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> else <script language="javascript"> alert('isi kata'); window.history.back();
102 </script> result.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) Dalam Pencarian Word Suggestion
103 <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 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 id="result"> <h3>data Kata</h3> 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> $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"); while($row=mysql_fetch_array($sql))
104 if($no%2==0) $warna=$warna2; else $warna=$warna1; //mencari sisa $id_kata=$row['id_kata']; $kata=$row['kata']; <tr bgcolor=" echo $warna "> <td> echo $no</td> <td> echo $kata </td> <td> <a href='edit_data.php?id= 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= 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> $no++; </table> // 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; </body> </html>
105 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 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 id="pattern-wrap"> Tentang Saya <div id="tentang"> <div id="tentang-left"> <br><br><br> <center><img src="images/word-suggestion.png"></center> <div id="tentang-right"> <table> <tr> <td width="125">nama</td> <td>:</td> <td>adli Abdillah Nababan</td> </tr> <tr> <td>nim</td> <td>:</td>
106 <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> <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 ); ); ); </script> </body> </html>
107 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 2013-2015 : S-1 Ekstensi Ilmu Komputer SEMINAR Seminar Nasional Literasi Informasi (SENARAI) 2014 Fakultas Ilmu Komputer dan Teknologi Informasi. Demikianlah Daftar Riwayat Hidup ini saya perbuat dengan sebenarnya. Hormat Saya, Adli Abdillah Nababan