3.5 Perancangan sistem
3.5.1 Flowchart Sistem autocomplete
Adapun alur kerja yang terdapat pada autocomplete dapat dilihat pada gambar 3.5
tidak
ya
Gambar.3.5 Flowchart autocomplete dengan algoritma Boyer Moore
Mengambil semua judul buku pada database
Memodifikasi kata pada judul buku dengan operasi
tambahtukarhapus
Hitung nilai jarak pada Boyer Moore
Mulai
Ketika ditemukan kata yang pas
Input Judul buku
Membandingkan judul buku pada database dengan judul
buku yang diinput pengguna
selesai
Menampilkan Autocomplete
Universitas Sumatera Utara
3.5.2 Proses pencarian pada Boyer Moore untuk autocomplete
Algoritma Boyer Moore adalah salah satu algoritma pencarian string yang dipublikasikan oleh Rober S. Boyer an J. Stroher Moore pada tahun 1977. Algoritma Boyer
Moore tidak seperti algoritma pencarian string lainnya, algoritma Boyer Moore mulai mencocokkan karakter dari sebelah kanan pattern sehingga pencariannya lebih cepat.
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. 1.
Sistematika Algoritma Boyer Moore a.
Algoritma Boyer Moore mulai mencocokkan pattern pada awal teks. b.
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.
c. 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 3.6. Pencocokan 1 R o
n I
Universitas Sumatera Utara
Langkah ke -1 e
l e
k T
r o
n I
k
Gambar 3.7. Pencocokan 2
Langkah ke 2 e
l e
k t
r o
n I
k Gambar 5.2.
Gambar 3.8. 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. R o
n i
r o
n I
Universitas Sumatera Utara
2. Cara menghitung Tabel Occurrence Heuristic
Posisi 1
2 3
4 String
R O
N I
OH 3
2 1
Tabel 3.4. Occurence Heuristic 1.
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” 2.
Mundur ke posisi sebelumnya, nilai pencacah ditambah 1, jika karakter pada posisi ini belum pernah ditemukan, maka nilai pergeserannya adala sama dengan
nilai pencacah.dalam contoh ini, karakter “N” belum pernah ditemukan sehingga nilai pergeserannya adalah sebesar nilai pencacah yaitu 1.
3. Mundur ke posisi sebelumnya, karakter”O” nilai pergeserannya 2
4. Mundur lagi, karakter “R” nilai pergeserannya yaitu 3.
5. Begitu seterusnya sampai posisi awal string.
3. Cara menghitung tabel Math Heuristic
Posisi 1
2 3
4 String
R O
N I
OH 4
4 4
1 Tabel 3.5 Math Heuristic
Universitas Sumatera Utara
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 3.9. 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
Gambar 3.10. 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 3.11. 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”
Universitas Sumatera Utara
String X
O N
I A
B C
D Pattern
R O
N I
R O
N I
Gambar 3.12. 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 MH
4 4
4 1
Tabel 3.6. Tabel nilai OH dan MH
Universitas Sumatera Utara
3.5.3 Flowchart Sistem autocorrect