Perhitungan Nilai Levenshtein Distance dan Boyer Moore pada Fitur Autocomplete

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini akan membahas tentang implementasi algoritma Levenshtein Distance ke dalam fitur autocorrect yang bekerja memperbaiki sugesti kata yang diinputkan, sehingga sistem akan menampilkan perbaikan judul buku yang inputkan dan Boyer Moore pada fitur autocomplete yang bekerja untuk melengkapi judul buku yang diinputkan oleh user sehingga memudahkan user dalam mencari judul buku yang diinginkan pada aplikasi katalog perpustakaan Aceh Timur, implementasi pada bab ini sesuai dengan analisis yang telah dijelaskan pada bab sebelumnya. Pada bab ini juga akan dilakukan pengujian terhadap kemampuan sistem.

4.1. Perhitungan Nilai Levenshtein Distance dan Boyer Moore pada Fitur Autocomplete

dan Autocorrect secara manual 4.1.1 Perhitungan Nilai Levenshtein Distance untuk Fitur Autocorrect Berikut adalah langkah-langkah proses pencarian jarak Levenshtein dengan kata depan dari judul buku yaitu: 3. Membandingkan string String yang akan dibandingkan yaitu judul buku yang diinput sebagai string target dan judul buku yang terdapat di dalam database sebagai string sumber. Misalkan : String Target : algoritma Universitas Sumatera Utara String Sumber : algoritma pencarian. Misalkan string target atau judul buku yang diinputkan adalah “algoritma” sedangkan string sumber atau judul buku yang terdapat di dalam database misalnya adalah “algoritma pencarian”,”pemrograman c++”,“kecerdasan buatan”. Judul buku yang terdapat di dalam database akan diubah menjadi string target atau judul buku yang diinputkan. 4. Melakukan modifikasi dan perhitungan jarak Levenshtein Operasi Levenshtein Distance terdiri dari 3 yaitu, operasi penyisipan, operasi penukaran dan operasi penghapusan. Sehingga proses modifikasi yang dapat dilakukan yaitu : a. Target = algoritma Sumber = Algoritma pencarian 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Target = A l g o r i t m a - - - - - - - - - - Sumber = A l g o r i t m a - P e n c a r i a n a Pada proses modifikasi dapat dilihat terdapat 10 operasi penghapusan, yang dimulai dengan menghapus spasi pada indeks ke-10, kemudian menghapus karakter ‘p’ pada indeks ke-11, ‘e’ pada indeks ke-12,’n’ pada indeks 13, ‘c’ pada indeks ke-14, ‘a’ pada indeks ke-15, ‘r’ pada indeks ke-16, ‘i’ ke-17 ,‘a’ pada indeks ke-18, dan ‘n’ pada indeks ke 19. Kemudian melakukan di dalam 1 operasi penukaran yaitu menukar karakter ‘A’ menjadi ‘a’ pada posisi indeks ke-1, sedangkan operasi penyisipan tidak perlu dilakukan. Selanjutnya melakukan perhitungan jarak levenshtein dengan rumus yaitu: = d s 1, t 1 + d s 2, t 2 + d s 3, t 3 + d s 4, t 4 + d s 5, t 5 + d s 6, t 6 + d s 7, t 7 + d s 8, t 8 + d s 9, t 9 + d s 10, t 10 + Universitas Sumatera Utara d s 11, t 11 + d s 12, t 12 + d s 13, t 13 + d s 14, t 14 + d s 15, t 15 + d s 16, t 16 + d s 17, t 17 + d s 18, t 18 + s 19, t 19 = d A, a + d l, l + d g, g + d o, o + d r, r + d i, i + d t, t + d m, m + d a, a + d -, - + d p, - + d e,- +d n,- + d c,- + d a,- + dr,- + d i,- + d a,-+ d n,- = 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1+1 = 11 Dari perhitungan yang dilakukan diperoleh nilai modifikasi atau jarak Levenshtein yang diperoleh adalah 11. 4.1.1.1 Potongan Program dari Metode Levenshtein Distance Berikut adalah potongan program dari metode Levenshtein Distance : for n=0; n cari_len; n++ { nilai=cari_len-1-n; char=cari_arr[n]; ifnilai==0 val[char]=1; else val[char]=nilai; } for n=0; n cari_len; n++ { char=cari_arr[n]; echo char = .val[char]; } x=0; y=1; whilex=batas perulangan sebanyak panjang kata yang diperiksa dikurang panjang kata yang di cari { Universitas Sumatera Utara iterasike=y; cocok=; for z=x; z cari_len+x; z++ { cocok.=kata_arr[z]; } f cocok==cari { ditemukan=1; break; } akhir=kata_arr[x+cari_len-1]; if in_arrayakhir, cari_arr { x+=val[akhir]; } else{ x+=cari_len; } y++; } if xbatas { echo kata tidak ditemukan; return ; } if ditemukan==1 { echo kata ditemukan di iterasi ke iterasike; return kata2; } 4.1.2 Perhitungan Nilai Boyer Moore untuk Fitur Autocomplete Algoritma Boyer Moore dianggap sebagai pencocokan string yang paling efisien dalam berbagai aplikasi. Algoritma ini sering diimplementasi dalam teks editor seperti Microsoft Word untuk fungsi Font dan Replace. Minandar 2009. 4. Sistematika Algoritma Boyer Moore d. Algoritma Boyer Moore mulai mencocokkan pattern pada awal teks. Universitas Sumatera Utara e. Dari kanan ke kiri, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuain sampai salah satu kondisi berikut : - Karakter di pattren dan di teks yang dibandingkan tidak cocok missmatch - Semua karakter dipattern cocok, kemudian algoritma ini akan memberitahukan penemuan di posisi ini. f. Algoritma menggeser pattern dengan memaksimalkan nilai pergeseran Occurrence Heuristic dan pergeseran Math Heuristic untuk melakukan pergeseran seingga menemukan teks yang sama dengan pattern. R Wald,2012 Cara kerja Algoritma Boyer Moore : e l e k T r o n I k Gambar 5.2. Pencocokan 1 Gambar 4.1. Pencocokan 1 Langkah ke -1 e l e k T r o n I k Gambar 4.2. Pencocokan 2 Langkah ke 2 e l e k t r o n I k Gambar 5.2. R o n I R o n i r o n I Universitas Sumatera Utara Gambar 4.3. Pencocokan 3 Langkah ke-3 Dari gambar 5.2, dapat dilihat bahwa karakter terakhir dari kata kunci adalah huruf “i” yang terakhir dari kata kunci adalah huruf “i” yang dicocokkan dengan huruf “k” pada kata “elektronik”. Karena huruf “i” dan huruf “k” berbeda, maka akan dilakukan pencocokan huruf “k” dengan seluruh karakter pada kata kunci. Karena huruf “k” tidak terdapat pada seluruh karakter pada kata kunci, maka kata kunci bergeser ke kanan sebanyak empat karakter sesuai dengan panjang karakter kata kunci seperti yang tampak pada gambar 5.3. setelah dilakukan pergeseran maka dicocokkan kembali karakter terakhir pada kata kunci yaitu huruf “i” dengan huruf “n” dicocokkan dengan keseluruhan karakter pada kata kunci. Karena pada kata kunci. Karena pada kata kunci terdapat huruf “n”, maka kata kunci akan bergeser sedemikian rupa sehingga huruf “n” pada kata kunci memiliki posisi yang sejajar dengan posisi huruf “n” pada kata yang dicocokkan seperti yang ditujukan pada gambar 5.4. Setelah itu dilakukan kembali pencocokan karakter terkhir kata kunci, yaitu huruf “i” yang terletak sejajar dengan huruf “i” tersebut, karena karakter tersebut sama maka dicocokkan kembali karakter yang berbeda dsebelah kiri huruf “i” sehingga kesluruhan karakter pada kata kunci selesai diperiksa. 5. Cara menghitung Tabel Occurrence Heuristic Posisi 1 2 3 4 String R O N I OH 3 2 1 Tabel 4.1. Occurence Heuristic 6. Lakukan pencacahan mulai dari posisi terakhir string sampai ke posisi awal, dimulai dengan nilai 0, catat karakter yang sudah ditemukan dalam contoh ini karakter “I” 7. Mundur ke posisi sebelumnya, nilai pencacah ditambah 1, jika karakter pada posisi ini belum pernah ditemukan, maka nilai pergeserannya adala sama dengan Universitas Sumatera Utara nilai pencacah.dalam contoh ini, karakter “N” belum pernah ditemukan sehingga nilai pergeserannya adalah sebesar nilai pencacah yaitu 1. 8. Mundur ke posisi sebelumnya, karakter”O” nilai pergeserannya 2 9. Mundur lagi, karakter “R” nilai pergeserannya yaitu 3. 10. Begitu seterusnya sampai posisi awal string. 6. Cara menghitung tabel Math Heuristic Posisi 1 2 3 4 String R O N I OH 4 4 4 1 Tabel 4.2 Math Heuristic Nilai MH didapat dari langkah-langkah sebagai berikut : String R O N X A B C D Pattern R O N I R O N I Gambar 4.3. Proses pencarian Math Heuristic 1 Untuk ketidakcocokan karakter pada posisi terakhir posisi 4, karakter “I” maka nilai pergesernnya selalu I String R O X I A B C D Pattern R O N I R O N I Universitas Sumatera Utara Gambar 4.4. Proses pencarian Math Heuristic 2 Jika karakter “I” sudah cocok, tetapi karakter pada posisi 3 sebelum “I” bukan “N” maka geser sebanyak 4 posisi, sehingga posisi string melawati teks. Karena sudah pasti “ ROXI” bukan “RONI” String R X N I A B C D Pattern R O N I R O N I Gambar 4.5. Proses pencarian Math Heuristic 3 Jika karakter “N” sudah cocok, tetapi karakter pada posisi 2 sebelum “N” bukan “O” maka geser sebanyak 4 posisi, sehingga posisi string melewati teks. Karena sudah past “RXNI” bukan “RONI” String X O N I A B C D Pattern R O N I R O N I Gambar 4.6. Proses pencarian Math Heuristic 4 Jika karakter “O” sudah cocok, tetapi karakter posisi 1 sebelum”O” bukan “R” maka geser sebanyak 4 posisi, sehingga posisi string melewati teks. Karena sudah pasti “XONI” bukan “RONI”. Dari proses diatas maka pergeseran Math Heuristic nya ditemukan R=4, O=4, I=1. Hasil pencocokan : String 1 2 3 4 Pattern R O N I OH 3 2 1 Universitas Sumatera Utara MH 4 4 4 1 Tabel 4.3. Tabel nilai OH dan MH 4.1.2.1 Potongan Program dari Metode Boyer Moore Berikut adalah potongan program dari metode Boyer Moore : file = index.php; cari=urlencodecari; page = cari=cari; Memanggil dan menginisiasi class include adminlibraryclass_paging.php; p = new Paging; Tentukan limit atau batas batas = 10; Cek halaman dan posisi data posisi = p-cariPosisibatas; no=posisi+1; search=_REQUEST[search]; query=SELECTid_buku,judul_buku,pengarang,penerbit,tahu n_terbit,levenshteincari, judul_buku as lev FROM buku ORDER BY lev; sql = mysql_queryquery LIMIT posisi,batas, koneksi or die mysql_error; sql2 = mysql_queryquery; no=0; whilerow=mysql_fetch_arraysql { Universitas Sumatera Utara

4.2. Pengujian Sistem