Menghitung nilai good-suffix Pencarian dengan algoritma boyer moore

19 Algoritma : goodsuffixn, P, goodsuffixes prebadCharsn, P, badChars i := 0 while i = m – n do j := n – 1 while j = 0 n and T[i + j] = P[j] do j := j – 1 endwhile if j 0 then ketemu[i] := true; shift := goodsuffixes[0] else badcharactershift := badChars[chartointT[i + j]] – n + j + 1 goodsuffixesshift := goodsuffixes[j] shift := maxbadcharactershift, goodsuffixesshift endif i := i + shift endwhile

2.5.4 Menghitung nilai good-suffix

Pada subbab ini, digunakan pattern “senang” sebagai contoh perhitungan good-suffix. Tahapan menghitung nilai good-suffix dari pattern tersebut yaitu : 1. Pencocokkan dimulai dari karakter terakhir yaitu “g”, apabila karakter terakhir pada teks bukan “g” maka geser 1 posisi sehingga nilai pergeserannya 1, berlaku untuk semua pattern yang dicari. Teks s e n a n x a b c d e f Pattern s e n a n g Pergeseran s e n a n g 2. Jika karakter “g” sudah cocok, tetapi karakter sebelumnya bukan “n” maka geser pattern sebanyak 6 karakter sehingga nilai pergeserannya 6, karena teks tersebut bukan “senang”. Teks s e n a x g a b c d e f Pattern s e n a n g Pergeseran s e n a n g 3. Jika karakter “ng” sudah cocok, tetapi karakter sebelumnya bukan “a” maka geser pattern sebanyak 6 karakter sehingga nilai pergeserannya 6, karena teks tersebut bukan “senang”. Teks s e n x n g a b c d e f 20 Pattern s e n a n g Pergeseran s e n a n g 4. Jika karakter “ang” sudah cocok, tetapi karakter sebelumnya bukan “n” maka geser pattern sebanyak 6 karakter sehingga nilai pergeserannya 6, karena teks tersebut bukan “senang”. Teks s e x a n g a b c d e f Pattern s e n a n g Pergeseran s e n a n g 5. Jika karakter “nang” sudah cocok, tetapi karakter sebelumnya bukan “e” maka geser pattern sebanyak 6 karakter sehingga nilai pergeserannya 6, karena teks tersebut bukan “senang”. Teks s x n a n g a b c d e f Pattern s e n a n g Pergeseran s e n a n g 6. Jika karakter “enang” sudah cocok, tetapi karakter sebelumnya bukan “s” maka geser pattern sebanyak 6 karakter sehingga nilai pergeserannya 6, karena teks tersebut bukan “senang”. Teks x e n a n g a b c d e f Pattern s e n a n g Pergeseran s e n a n g Nilai pergeseran dari good-suffix yang sudah didapatkan : Posisi 1 2 3 4 5 6 Pattern s e n a n g Nilai pergeseran good-suffix 6 6 6 6 6 1

2.5.5 Pencarian dengan algoritma boyer moore

Sebelum melakukan pencarian dengan algoritma boyer moore, harus mencari nilai pergeseran bad-character dan pergeseran good-suffix dari pattern terlebih dahulu. Pattern dan teks yang digunakan adalah : Pattern p : senang Teks t : anak itu senang 21 Berdasarkan nilai pergeseran bad-character dan good-suffix yang sudah didapatkan pada sub bab 2.5.2 dan sub bab 2.5.4. Tahapan pencocokkan antara pattern dengan teks sebagai berikut : Posisi 1 2 3 4 5 6 Pattern s e n a n g Nilai pergeseran bad-character bc 5 4 1 2 1 6 Nilai pergeseran good-suffix gs 6 6 6 6 6 1 1. Pencocokkan pertama, karakter “i” pada teks tidak cocok dengan karakter “g” pada pattern sehingga nilai pergeseran good-suffix 1, karena ketidakcocokan pada karakter terakhir. K arakter “i” tidak ada pada pattern, maka nilai pergeseran bad-character 6. Karena nilai pergeseran bad-character lebih besar, maka geser pattern sebanyak 6 karakter. Teks a n a k i t u s e n a n g Pattern s e n a n g s e n a n g 2. Pencocokkan selanjutnya, karakter “n” pada teks tidak cocok dengan karakter “g” pada pattern sehingga nilai pergeseran good-suffix 1, karena ketidakcocokan pada karakter terakhir. K arakter “n” ada pada pattern, maka nilai pergeseran bad-character 1. Karena nilai pergeseran sama, maka geser pattern sebanyak 1 karakter. Teks a n a k i t u s e n a n g Pattern s e n a n g s e n a n g 3. Pencocokkan selanjutnya, karakter “a” pada teks tidak cocok dengan karakter “g” pada pattern sehingga nilai pergeseran good-suffix 1, karena ketidakcocokan pada karakter terakhir. K arakter “a” ada pada pattern, maka nilai pergeseran bad-character 2. Karena nilai pergeseran bad-character lebih besar, maka geser pattern sebanyak 2 karakter. Teks a n a k i t u s e n a n g Pattern s e n a n g 22 s e n a n g 4. Pencocokkan selanjutnya, karena karakter pada pattern dan teks cocok, maka pencocokkan dihentikan. Teks a n a k i t u s e n a n g Pattern s e n a n g

2.6 Pengujian