Dokumen tersebut membahas perbandingan antara algoritma Knuth-Morris-Pratt dan algoritma Boyer-Moore dalam mencari kata yang tersembunyi pada permainan word search puzzle. Algoritma Boyer-Moore dinilai lebih efisien dibandingkan algoritma Knuth-Morris-Pratt karena memiliki kompleksitas waktu O(N/M) dibandingkan O(M+N).
Kriptograf - Algoritma Kriptografi Klasik (bagian 1)KuliahKita
Materi pengenalan algoritma kriptografi klasik seperti caesar cipher, dan cipher-cipher sederhana lain yang juga pernah dipakai di jaman perang dulu di http://kuliahkita.com/kelas/kriptografi/
Kantar Media is a well-established brand of trusted media analysts and advisors. We help the world’s advertisers, media owners, advertising/media/PR agencies, and publishers together with government, NGO, and trade organisations to measure their media reputation and impact.
Kriptograf - Algoritma Kriptografi Klasik (bagian 1)KuliahKita
Materi pengenalan algoritma kriptografi klasik seperti caesar cipher, dan cipher-cipher sederhana lain yang juga pernah dipakai di jaman perang dulu di http://kuliahkita.com/kelas/kriptografi/
Kantar Media is a well-established brand of trusted media analysts and advisors. We help the world’s advertisers, media owners, advertising/media/PR agencies, and publishers together with government, NGO, and trade organisations to measure their media reputation and impact.
Fresh quarium supplies, fish tank supplies, saltwater aquarium supplies, aquarium maintenance, aquarium supply, fish aquarium supplies. For More Information, Visit: http://www.suburbanreef.com
Fresh quarium supplies, fish tank supplies, saltwater aquarium supplies, aquarium maintenance, aquarium supply, fish aquarium supplies. For More Information, Visit: http://www.suburbanreef.com
4. • Sistem dapat menemukan semua kata yang tersembunyi
*
di dalam puzzle yang tersusun secara random
• Penelitian sebelumnya
– Algoritma Knuth-Morris-Pratt (word search puzzle)
– Perbandingan Algoritma Knuth-Morris-Pratt dan
Algoritma Boyer-Moore
6. Implementasi algoritma Boyer-Moore pada permainan word
search puzzle tidak hanya untuk satu arah, disesuaikan
dengan karakteristik pencarian pada permainan word search
puzzle
9. TUJUAN
Algoritma Boyer-Moore lebih baik dari Algoritma
Knuth-Morris-Pratt pada permainan word search puzzle
pada panjang bidang papan permainan, panjang kata
dan posisi kata
11. •Algoritma Knuth-Morris-Pratt VS Algoritma Boyer-Moore
•Bidang papan permainan memiliki bentuk matriks n x n
•Ukuran panjang bidang papan permainan dinamis
•Pengujian menggunakan beberapa pola kata dari beberapa
panjang kalimat yaitu 3-10 karakter dan menggunakan 8
sampel dengan posisi random
•Pengujian kata-kata diambil dari nama-nama hewan dalam
Bahasa Indonesia.
17. PENCARIAN KATA PADA PERMAINAN
1. Kiri ke kanan, jika tidak ketemu ubah
cara baca
2. Kanan ke kiri, jika tidak ketemu ubah
cara baca
3. Atas ke bawah, jika tidak ketemu
ubah cara baca
4. Bawah ke atas, jika tidak ketemu
ubah cara baca
5. Secara diagonal dari kiri atas ke
kanan bawah, jika tidak ketemu ubah
cara baca
6. Secara diagonal dari kanan bawah
ke kiri atas, jika tidak ketemu ubah
cara baca
7. Secara diagonal dari kanan atas ke
kiri bawah, jika tidak ketemu ubah
cara baca
8. Secara diagonal dari kiri bawah ke
kanan atas, , jika tidak ketemu ubah
cara baca
21. ALGORITMA BOYER-MOOR
•Fungsi bad-character shift dan good-suffix shift untuk pergeseran
•Memiliki kompleksitas O(N/M)
•Arah pencocokan dari kanan ke kiri
35. PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS-PRATT(1)
Substring Pattern Prefix dan Suffix
Nilai Pinggiran
F L A M I N G O
0 0 1 0 0 0 0 0
* *
36. PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS-PRATT(
2)
Tahap Pencarian Kata :
Teks : Y H X B F L A M I N G O H Z V
Pattern : F L A M I N G O
F L A M I N G O
0 0 0 0 0 0 0 0
1)
2)
Tidak terjadi ketidakcocokan, maka
pattern digeser sejumlah 1 karakter
Teks : Y H X B F L A M I N G O H Z V
Pattern : F L A M I N G O
Tidak terjadi ketidakcocokan, maka
pattern digeser sejumlah 1 karakter
F L A M I N G O
0 0 0 0 0 0 0 0
Teks : Y H X B F L A M I N G O H Z V
Pattern : F L A M I N G O
F L A M I N G O
0 0 0 0 0 0 0 0
3)
Tidak terjadi ketidakcocokan, maka
pattern digeser sejumlah 1 karakter
37. PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS-PRATT(
3)
Tahap Pencarian Kata :
4)
Teks : Y H X B F L A M I N G O H Z V
Pattern : F L A M I N G O
Tidak terjadi ketidakcocokan, maka
pattern digeser sejumlah 1 karakter
F L A M I N G O
0 0 0 0 0 0 0 0
Teks : Y H X B F L A M I N G O H Z V
Pattern : F L A M I N G O
F L A M I N G O
0 0 0 0 0 0 0 0
5)
Tahap pencarian dengan algoritma Knuth-Morris-Pratt selesai setelah melakukan
sebanyak 4 iterasi
38. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE
1.Tahap Preprocessing (Menghitung nilai bad-character
shift dan good-suffix shift)
2.Tahap Pencarian Kata
40. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE
BAD-CHARACTER SHIFT(1)
Mulai : Index = Panjang (pattern)-2
F L A M I N G O
Pindah = 1
Tabel comparator
BmBc
Bandingkan “G” dengan “Null Hasil
BmBc(sebelum) BmBc(sesudah)
Karakter Null Karakter G
Nilai OH Null Nilai OH 1
1)
Mulai : Index = Panjang (pattern)-3
F L A M I N G O
Pindah = 2
Tabel comparator
BmBc
Bandingkan “N” dengan “G" Hasil
BmBc(sebelum) BmBc(sesudah)
Karakter G Karakter N G
Nilai OH 1 Nilai OH 2 1
2)
* *
41. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE
BAD-CHARACTER SHIFT(2)
Mulai : Index = Panjang (pattern)-4
F L A M I N G O
Pindah = 3
Tabel comparator
BmBc
Bandingkan “I” dengan
“G“,”N”
Hasil
BmBc(sebelum) BmBc(sesudah)
Karakter G N Karakter I N G
Nilai OH 1 2 Nilai OH 3 2 1
3)
Mulai : Index = Panjang (pattern)-5
F L A M I N G O
Pindah = 4
Tabel comparator BmBc
Bandingkan “M” dengan
“G“,”N”,”I”
Hasil
BmBc(sebelum) BmBc(sesudah)
Karakter G N I Karakter M I N G
Nilai OH 1 2 3 Nilai OH 4 3 2 1
4)
* *
42. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE
BAD-CHARACTER SHIFT(3)
Mulai : Index = Panjang (pattern)-6
F L A M I N G O
Pindah = 5
5)
Tabel comparator
BmBc
Bandingkan “A” dengan
“G“,”N”,”I”,”M”
BmBc(sebelum) BmBc(sesudah)
Karakter G N I M Karakter A M I N G
Nilai OH 1 2 3 4 Nilai OH 5 4 3 2 1
Mulai : Index = Panjang (pattern)-7
Hasil
F L A M I N G O
Pindah = 6
6)
Tabel comparator BmBc
Bandingkan “L” dengan
“G“,”N”,”I”,”M”,”A”
Hasil
BmBc(sebelum) BmBc(sesudah)
Karakter G N I M A Karakter L A M I N G
Nilai OH 1 2 3 4 5 Nilai OH 6 5 4 3 2 1
* *
43. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE
BAD-CHARACTER SHIFT(4)
Mulai : Index = Panjang (pattern)-1
F L A M I N G O
Pindah = 7
7)
Tabel comparator
BmBc
Hasil
BmBc(sebelum) BmBc(sesudah)
Karakter G N I M A L Karakter F L A M I N G
Nilai OH 1 2 3 4 5 6 Nilai OH 7 6 5 4 3 2 1
Mulai : Index = Panjang (pattern)-1
Bandingkan “F” dengan
“G“,”N”,”I”,”M”,”A”,”L”
F L A M I N G O
Pindah = 8
8)
Tabel comparator BmBc
Bandingkan “O” dengan
“G“,”N”,”I”,”M”,”A”,”L”,”F”
Hasil
BmBc(sebelum) BmBc(sesudah)
Karakter G N I M A L F Karakter F L A M I N G 0
Nilai OH 1 2 3 4 5 6 7 Nilai OH 7 6 5 4 3 2 1 0
* *
46. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE
GOOD-SUFFIX SHIFT(7)
1) Suffix
2) Suffix
Index 7
Prefix O Move
Suffix NULL
Suffix
comparator
FLAMING 1
FLAMIN 2
FLAMI 3
FLAM 4
FLA 5
FL 6
F 7
NULL 8
MH value ?
Index 0 1 2 3 4 5 6 7
Karakter F L A M I N G O
Nilai MH 8 1
Index 6
Prefix G Move
Suffix O
Suffix
comparator
FLAMING 1
FLAMIN 2
FLAMI 3
FLAM 4
FLA 5
FL 6
F 7
NULL 8
MH value ?
Index 0 1 2 3 4 5 6 7
Karakter F L A M I N G O
Nilai MH 8 1
* *
47. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE
GOOD-SUFFIX SHIFT(8)
3) Suffix
4) Suffix
Index 5
Prefix N Move
Suffix GO
Suffix
comparator
FLAMING 1
FLAMIN 2
FLAMI 3
FLAM 4
FLA 5
FL 6
F 7
NULL 8
MH value ?
Index 0 1 2 3 4 5 6 7
Karakter F L A M I N G O
Nilai MH 8 8 1
Index 4
Prefix I Move
Suffix NGO
Suffix
comparator
FLAMING 1
FLAMIN 2
FLAMI 3
FLAM 4
FLA 5
FL 6
F 7
NULL 8
MH value ?
Index 0 1 2 3 4 5 6 7
Karakter F L A M I N G O
Nilai MH 8 8 8 1
* *
48. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE
GOOD-SUFFIX SHIFT(9)
5) Suffix
6) Suffix
Index 3
Prefix M Move
Suffix INGO
Suffix
comparator
FLAMING 1
FLAMIN 2
FLAMI 3
FLAM 4
FLA 5
FL 6
F 7
NULL 8
MH value ?
Index 0 1 2 3 4 5 6 7
Karakter F L A M I N G O
Nilai MH 8 8 8 8 1
Index 2
Prefix A Move
Suffix MINGO
Suffix
comparator
FLAMING 1
FLAMIN 2
FLAMI 3
FLAM 4
FLA 5
FL 6
F 7
NULL 8
MH value ?
Index 0 1 2 3 4 5 6 7
Karakter F L A M I N G O
Nilai MH 8 8 8 8 8 1
* *
49. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE
GOOD-SUFFIX SHIFT(10)
7) Suffix
8) Suffix
Index 1
Prefix L Move
Suffix AMINGO
Suffix
comparator
FLAMING 1
FLAMIN 2
FLAMI 3
FLAM 4
FLA 5
FL 6
F 7
NULL 8
MH value ?
Index 0 1 2 3 4 5 6 7
Karakter F L A M I N G O
Nilai MH 8 8 8 8 8 8 1
Index 0
Prefix F Move
Suffix LAMINGO
Suffix
comparator
FLAMING 1
FLAMIN 2
FLAMI 3
FLAM 4
FLA 5
FL 6
F 7
NULL 8
MH value ?
Index 0 1 2 3 4 5 6 7
Karakter F L A M I N G O
Nilai MH 8 8 8 8 8 8 8 1
* *
50. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE
(11)
1)
BmBc & BmGs
Index 0 1 2 3 4 5 6 7
Karakter F L A M I N G O
Nilai OH 7 6 5 4 3 2 1 0
Nilai MH 8 8 8 8 8 8 8 1
Teks : Y H X B F L A M I N G O H Z V
Pattern : F L A M I N G O
BmGs [7] = BmBc[M] -7 + 7 atau Max (1 = 4 - 7 + 7 ) = 4
2)
Teks : Y H X B F L A M I N G O H Z V
Pattern : F L A M I N G O
Tahap pencarian dengan algoritma Boyer-Moore diatas pencarian selesai setelah
melakukan sebanyak 1 iterasi.
* *
57. *
PENGUJIAN PADA PANJANG PAPAN(1)
Kondisi dengan bidang papan 20x20, 30x30,40x40 dan 50x50
Jumlah kata terdapat 8 kata dengan panjang 3-10 karakter dengan
posisi random
Pengujian akan dilakukan 4 kali sesuai dengan bidang papan dengan
kondisi pola kata random
60. PENGUJIAN PADA POSISI POLA 20x20(1)
Kondisi dengan bidang papan 20x20
Jumlah kata terdapat 8 kata dengan panjang 3-10 karakter dengan
posisi random
Pengujian akan dilakukan 8 kali sesuai dengan banyak kata dengan
kondisi posisi pola terpenuhi semua.
* *
63. PENGUJIAN PADA POSISI POLA 30x30(1)
Kondisi dengan bidang papan 30x30
Jumlah kata terdapat 8 kata dengan panjang 3-10 karakter dengan
posisi random
Pengujian akan dilakukan 8 kali sesuai dengan banyak kata dengan
kondisi posisi pola terpenuhi semua.
* *
66. PENGUJIAN PADA POSISI POLA 40x40(1)
Kondisi dengan bidang papan 40x40
Jumlah kata terdapat 8 kata dengan panjang 3-10 karakter dengan
posisi random
Pengujian akan dilakukan 8 kali sesuai dengan banyak kata dengan
kondisi posisi pola terpenuhi semua.
* *
69. PENGUJIAN PADA POSISI POLA 50x50(1)
Kondisi dengan bidang papan 50x50
Jumlah kata terdapat 8 kata dengan panjang 3-10 karakter dengan
posisi random
Pengujian akan dilakukan 8 kali sesuai dengan banyak kata dengan
kondisi posisi pola terpenuhi semua.
* *
73. Secara umum algoritma Boyer-Moore lebih efisien daripada algoritma
Knuth-Morris-Pratt.
Pencarian pada posisi diagonal dapat menambah waktu pencarian
pada kedua algoritma Knuth-Morris-Pratt dan algoritma Boyer-Moore
Parameter seperti panjang papan, posisi pola dan panjang kata dapat
mempengaruhi efisiensi algoritma pencarian string pada algoritma
Knuth-Morris-Pratt
*