Ilustrasi Pencarian String Algortima Boyer-Moore

pencocokan karakter dari kanan, maka akan lebih banyak informasi yang didapat. Algoritma Boyer Moore termasuk algoritma string matching yang paling efisien dibandingkan algoritma-algoritma string matching lainnya. Karena sifatnya yang efisien, banyak dikembangkan algoritma string matching dengan bertumpu pada konsep algoritma Boyer- Moore Efendi Kurniadi 2013.

2.8.3.1 Ilustrasi Pencarian String Algortima Boyer-Moore

Teks : OKTAVIANIPRADITA Pattern : PRADITA 1. Mencari nilai suffix Tabel 2.1 Suffix Cara mencari :  Pada indeks ke – 6 pada tabel suffix beri nilai dari panjang pattern yaitu “PRADITA” mempunyai panjang karakter 7, maka tabel suffix indeks ke – 6 =7 Tabel 2.2 Proses Pencarian Suffix a  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 5 “A” banding “T”, hasil tidak sama maka beri nilai 0 pada tabel suffix  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 4 “A” banding “I”, hasil tidak sama maka beri nilai 0 pada tabel suffix  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 3 “A” banding “D”, hasil tidak sama maka beri nilai 0 pada tabel suffix  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 2 “A” banding “A”, hasil sama maka beri tanda - pada tabel suffix i 1 2 3 4 5 6 X[i] P R A D I T A suffix I 1 2 3 4 5 6 X[i] P R A D I T A Suffix 0 1 0 0 7 M = panjang pattern Universitas Sumatera Utara Tabel 2.3 Proses Pencarian Suffix b  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 1 “A” banding “R”, hasil tidak sama maka beri nilai 0 pada tabel suffix  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 0 “A” banding “P”, hasil tidak sama maka beri nilai 0 pada tabel suffix  Untuk mencari nilai indeks ke – 2 maka, masukkan rumus i – i – s = 2 – 2 – 1 = 2 – 1 = 1 : Tabel 2.4 Proses Pencarian Suffix c i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 0 0 7  S dalam rumus= jumlah berapa banyak pola yang sama pada keseluruhan teks  i dalam rumus = indeks dalam pattern yang cocok yang ingin dicari nilai suffix-nya 2. Membuat tabel BmGs Isi semua tabel BmGs dengan nilai panjang pattern yaitu 7 Tabel 2.5 Proses Pencarian BmGs  Lakukan pengecekan apakah hasil i + i hasil = suffix :  Untuk indeks ke – 6 :  i + i hasil = suffix - 6 + 1 = 7 , 7 = nilai suffix maka sama i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 - 0 0 7 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 Universitas Sumatera Utara Tabel 2.6 Proses Pencarian BmGs a  Lakukan pengecekan apakah hasil i + i hasil = suffix : Untuk indeks ke – 5 : i + i hasil = suffix - 5 + 1 = 6, 6 tidak sama nilai suffix maka sama Tabel 2.7 Proses Pencarian BmGs b  Lakukan pengecekan apakah hasil i + i hasil = suffix : Untuk indeks ke – 4 : i + i hasil = suffix - 4 + 1 = 5, 5 tidak sama nilai suffix maka sama Tabel 2.8 Proses Pencarian BmGs c  Lakukan pengecekan apakah hasil i + i hasil = suffix : Untuk indeks ke – 3 : i + i hasil = suffix - 3 + 1 = 4, 4 tidak sama nilai suffix maka sama Tabel 2.9 Proses Pencarian BmGs d  Lakukan pengecekan apakah hasil i + i hasil = suffix : i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 Universitas Sumatera Utara Untuk indeks ke – 2 : i + i hasil = suffix - 2 + 1 = 3, 3 tidak sama nilai suffix maka sama Tabel 2.10 Proses Pencarian BmGs e  Lakukan pengecekan apakah hasil i + i hasil = suffix : Untuk indeks ke – 1 : i + i hasil = suffix - 1 + 1 = 2, 2 tidak sama nilai suffix maka sama Tabel 2.11 Proses Pencarian Bmgs f  Lakukan pengecekan apakah hasil i + i hasil = suffix : Untuk indeks ke – 0 : i + i hasil = suffix - 0 + 1 = 1, 1 tidak sama nilai suffix maka sama Tabel 2.12 Proses Pencarian BmGs g  Masukkan rumus untuk mencari batas pencarian perhitungan nilai Bmgs : M – 1 - i = 7 – 1 - 6 = 0 sebagai batas pertama  Karena hanya terdapat 1 saja nilai pencocokan suffix maka perhitungan di atas selesai  Jika terdapat satu atau lebih lagi pencocokan nilai suffix yang sama maka lakukan perhitungan dengan rumus m – 1 – i untuk batas selanjutnya. Karena tidak ada untuk batas selanjutnya, maka : I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 Universitas Sumatera Utara  Mulai menghitung untuk mengetahui batas kedua M - 2 = 7 - 2 = 5, yang artinya menghitung nilai untuk pencarian tabel Bmgs nya dimulai dari indeks ke – 0 sampai indeks ke – 5.  Lalu masukkan rumus M - 1 – suffix-i = 0 -7 – 1 – 0 = 6 - artinya indeks yang ingin diisi dengan nilai Bmgs -M – 1 – i = 7 – 1 – 0 = 6 - niali Bmgs yang akan diisi pada indeks 6 , maka ubah nilai indeks ke – 6 menjadi 6 Tabel 2.13 Proses Pencarian BmGs h  i = 1  M – 1 – suffix = 7 – 1 – 0 = 6 - artinya indeks yang ingin diisi dengan nilai Bmgs  M – 1 – i = 7 – 1 – 1 = 5 - nilai Bmgs yang akan diisi pada indeks 6 , maka ubah nilai indeks ke – 6 menjadi 5 Tabel 2.14 Proses Pencarian BmGs i   i = 2  M – 1 – suffix = 7 – 1 – 1 = 5 - artinya indeks yang ingin diisi dengan nilai Bmgs  M – 1 – i = 7 – 1 – 2 = 4 - nilai Bmgs yang akan diisi pada indeks 5 , maka ubah nilai indeks ke – 5 menjadi 4 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 6 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 5 Universitas Sumatera Utara Tabel 2.15 Proses Pencarian BmGs j   i = 3  M – 1 – suffix = 7 – 1 – 0 = 6 - artinya indeks yang ingin diisi dengan nilai Bmgs  M – 1 – i = 7 – 1 – 3 = 3 - nilai Bmgs yang akan diisi pada indeks 6 , maka ubah nilai indeks ke – 6 menjadi 3 Tabel 2.16 Proses Pencarian BmGs k   i = 4  M – 1 – suffix = 7 – 1 – 0 = 6 - artinya indeks yang ingin diisi dengan nilai Bmgs  M – 1 – i = 7 – 1 – 4 = 2 - nilai Bmgs yang akan diisi pada indeks 6 , maka ubah nilai indeks ke – 6 menjadi 2 Tabel 2.17 Proses Pencarian BmGs l   i = 5  M – 1 – suffix = 7 – 1 – 0 = 6 - artinya indeks yang ingin diisi dengan nilai Bmgs  M – 1 – i = 7 – 1 – 5 = 1 - nilai Bmgs yang akan diisi pada indeks 6 , maka ubah nilai indeks ke – 6 menjadi 1 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 4 5 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 4 3 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 4 2 Universitas Sumatera Utara Tabel 2.17 Proses Pencarian BmGs m  3. Pembuatan tabel BmBc Tabel 2.19 BmBc I 1 2 3 4 5 6 X[i] P R A D I T A  Isi indeks paling akhir dengan tanda bintang dan isi tabel akhir dengan panjang pattern 7 Tabel 2.20 Proses Pencarian BmBc a X[i] P R A D I T BmBc 7  Mencari batas pencarian nilai BmBc denga rumus M -2 = 7 – 2 = 5, berarti sampai indeks ke – 5  Melakukan pencarian nilai BmBc sampai i = 5 dengan rumus M – 1 – i  7 – 1 – 0 = 6, untuk indeks ke - 0 i = 0  7 – 1 – 1 = 5, untuk indeks ke - 1 i = 1  7 – 1 – 2 = 4, untuk indeks ke - 2 i = 2  7 – 1 – 3 = 3, untuk indeks ke - 3 i = 3  7 – 1 – 4 = 2, untuk indeks ke - 4 i = 4  7 – 1 – 5 = 5, untuk indeks ke - 5 i = 5 Tabel 2.21 Proses Pencarian BmBc b X[i] P R A D I T BmBc 6 5 4 3 2 1 7 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 4 1 Universitas Sumatera Utara 4. Melakukan pencocokan string : Tabel 2.22 Proses Pencocokan String 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 O K T A V I A N I P R A D I T A 0 1 2 3 4 5 6 P R A D I T A  Lihat nilai BmBc pada tabel atas, yaitu “I” = 2  Masukkan rumus : 2 – M+1+i = 2 – 7+1+5 = -11  Lihat nilai BmGs untuk tabel kedua yaitu “T” = 4  Bandingakan nilai -11 dan 4, ambil nilai yang paling besar yaitu 4 untuk pergeseran Tabel 2.23 Proses Pencocokan String a 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 O K T A V I A N I P R A D I T A 0 1 2 3 4 5 6 P R A D I T A  Lihat nilai BmBc pada tabel atas, yaitu “R” = 5  Masukkan rumus : 5 – M+1+i = 5 – 7+1+10 = -18  Lihat nilai BmGs untuk tabel kedua yaitu “A” = 1  Bandingakan nilai -18 dan 1, ambil nilai yang paling besar yaitu 1 untuk pergeseran selanjutnya Tabel 2.24 Proses Pencocokan String b 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 O K T A V I A N I P R A D I T A 0 1 2 3 4 5 6 P R A D I T A  Lihat nilai BmBc pada tabel atas, yaitu “R” = 5  Masukkan rumus : 5 – M+1+i = 5 – 7+1+5 = -13  Lihat nilai BmGs untuk tabel kedua yaitu “T” = 4 Universitas Sumatera Utara  Bandingakan nilai -13 dan 4, ambil nilai yang paling besar yaitu 4 untuk pergeseran selanjutnya Tabel 2.25 Proses Pencocokan String c 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 O K T A V I A N I P R A D I T A 1 2 3 4 5 6 P R A D I T A 5. Selesai

2.8.4 Algoritma Rabin-Karp