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