SlideShare a Scribd company logo
ANALISIS PERBANDINGAN 
ALGORITMA KNUTH-MORRIS-PRATT 
DENGAN ALGORITMA BOYER-MOORE 
PADA PERMAINAN WORD SEARCH 
PUZZLE 
OLEH : 
ASEP ROJALI (10109411)
LATAR BELAKANG MASALAH
PERMAINAN WORD SEARCH PUZZLE
• 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
PERUMUSAN MASALAH
Implementasi algoritma Boyer-Moore pada permainan word 
search puzzle tidak hanya untuk satu arah, disesuaikan 
dengan karakteristik pencarian pada permainan word search 
puzzle
MAKSUD DAN TUJUAN
MAKSUD 
Algoritma Knuth-Morris-Pratt 
VS 
Algoritma Boyer-Moore 
Permainan word search puzzle
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
BATASAN MASALAH
•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.
METODOLOGI PENELITIAN
* 
Metode Penelitian Eksperimental 
– Tahap Pengumpulan Data 
– Tahap Analisis Algoritma
* 
INISIALISASI PAPAN 
PERMAINAN
*
* 
PENCARIAN KATA PADA 
PAPAN PERMAINAN
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
ANALISIS ALGORITMA
*
ALGORITMA KNUTH-MORRIS-PRATT 
•Fungsi pinggiran untuk pergeseran 
•Memiliki kompleksitas O(M+N) 
•Arah pencocokan dari kiri ke kanan
ALGORITMA BOYER-MOOR 
•Fungsi bad-character shift dan good-suffix shift untuk pergeseran 
•Memiliki kompleksitas O(N/M) 
•Arah pencocokan dari kanan ke kiri
* 
PSEUDECODE ALGORITMA 
DENGAN NOTASI Big-O
* 
ALGORITMA KNUTH-MORRIS-PRATT(1) 
Hasil dari notasi Big-O hitung nilai pinggiran : 
O(1) + O(1) + O(1) + O(M) + O(1) + O(1) + O(1) + 
O(1) + O(1) = 7 + 1M kali = O(M) 
Pseudocode Hitung Pinggiran :
* 
ALGORITMA KNUTH-MORRIS-PRATT(2) 
Hasil dari notasi Big-O hitung nilai pinggiran : 
O(M) + O(1) + O(1) + O(1) + O(N) + O(1) + 
O(1) + O(1) + O(1) + O(1) + O(1) + O(1) + 
O(1) + O(1) + O(1) = 10 + 1M kali + 1N kali = 
O(M+N) 
Pseudocode Pencarian Kata :
* 
ALGORITMA BOYER-MOORE(1) 
Hasil dari notasi Big-O hitung nilai pinggiran : 
O(M) + O(M) + O(1) + O(1) + O(N) + O(1) + 
O(1) + O(1) + O(1) = 6N+1N+2M kali = 
O(N/M) 
Pseudocode Pencarian Kata :
ANALISIS ALGORITMA 
PADA PERMAINAN
*
*
* 
1 
2
* 
1 
2
ANALISIS ALGORITMA 
TERHADAP KASUS
TEXT 
YHXBFLAMINGOHZV 
SMKOBXTHRABAXZ 
JHAEENHNLMMND 
JIKBKATDKSBH 
ATIBDZTBTEI 
NUSWNQYETU 
GPEMZCRTY 
KKRZBBBG 
RAIEKMV 
ILBFLT 
KAUAH 
TJYF 
MAC 
MM 
X
PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS- 
PRATT 
1.Tahap Preprocessing (Menghitung nilai pinggiran) 
2.Tahap Pencarian Kata
FLOWCHART ALGORITMA KNUTH-MORRIS-PRATT
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 
* *
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
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
PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE 
1.Tahap Preprocessing (Menghitung nilai bad-character 
shift dan good-suffix shift) 
2.Tahap Pencarian Kata
FLOWCHART ALGORITMA BOYER-MOORE
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) 
* *
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) 
* *
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 
* *
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 
* *
PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE 
GOOD-SUFFIX SHIFT(5) 
* *
PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE 
GOOD-SUFFIX SHIFT(6) 
* *
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 
* *
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 
* *
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 
* *
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 
* *
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. 
* *
IMPLEMENTASI SISTEM 
* *
* 
IMPLEMENTASI ANTAR MUKA PERMAINAN(1) 
Papan Permainan
* 
IMPLEMENTASI ANTAR MUKA PERMAINAN(2) 
Set Papan Permainan
* 
IMPLEMENTASI ANTAR MUKA PERMAINAN(3) 
Pencarian Menggunakan Algoritma Knuth-Morris-Pratt
* 
IMPLEMENTASI ANTAR MUKA PERMAINAN(4) 
Pencarian Menggunakan Algoritma Boyer-Moore
* 
PENGUJIAN
* 
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
* 
PENGUJIAN PADA PANJANG PAPAN(2)
PENGUJIAN PADA PANJANG PAPAN(3) 
* *
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. 
* *
* 
PENGUJIAN PADA POSISI POLA 20x20(2)
PENGUJIAN PADA POSISI POLA 20x20(3) 
* *
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. 
* *
* 
PENGUJIAN PADA POSISI POLA 30x30(2)
PENGUJIAN PADA POSISI POLA 30x30(3) 
* *
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. 
* *
* 
PENGUJIAN PADA POSISI POLA 40x40(2)
PENGUJIAN PADA POSISI POLA 40x40(3) 
* *
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. 
* *
* 
PENGUJIAN PADA POSISI POLA 50x50(2)
PENGUJIAN PADA POSISI POLA 50x50(3) 
* *
KESIMPULAN 
* *
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 
*
* 
SARAN
* 
Algoritma Boyer-Moore pada word search puzzle dapat diterapkan 
pada aplikasi game sesungguhnya
* 
DEMO SIMULASI
* 
TERIMA KASIH

More Related Content

Viewers also liked

Speeches before the security council
Speeches before the security councilSpeeches before the security council
Speeches before the security councilYawar Khan
 
Kantar Media - Want to engage a large number of consumers to brand?
 Kantar Media - Want to engage a large number of consumers to brand? Kantar Media - Want to engage a large number of consumers to brand?
Kantar Media - Want to engage a large number of consumers to brand?
Kantar_Media_UK
 
Last dayf of premier bhutto
Last dayf of premier bhuttoLast dayf of premier bhutto
Last dayf of premier bhuttoYawar Khan
 
Marching towards democracy
Marching towards democracyMarching towards democracy
Marching towards democracyYawar Khan
 
Reshaping foreign policy
Reshaping foreign policyReshaping foreign policy
Reshaping foreign policyYawar Khan
 
Bhutto zia and_islam
Bhutto zia and_islamBhutto zia and_islam
Bhutto zia and_islamYawar Khan
 
He was not_hanged
He was not_hangedHe was not_hanged
He was not_hangedYawar Khan
 
1. accioicorrectivaymodelodominó
1. accioicorrectivaymodelodominó1. accioicorrectivaymodelodominó
1. accioicorrectivaymodelodominó
Luis Gallardo
 
Quarium supplies
Quarium suppliesQuarium supplies
Quarium supplies
suburbanreef25
 
Pakistan and bhutto
Pakistan and bhuttoPakistan and bhutto
Pakistan and bhuttoYawar Khan
 
Pakistan andalliances
Pakistan andalliancesPakistan andalliances
Pakistan andalliancesYawar Khan
 
He was not_hanged
He was not_hangedHe was not_hanged
He was not_hangedYawar Khan
 
Bhutto vision of pakistan
Bhutto vision of pakistanBhutto vision of pakistan
Bhutto vision of pakistanYawar Khan
 
Η εξέγερση στη Μολδοβλαχία 2ο
Η εξέγερση στη Μολδοβλαχία 2οΗ εξέγερση στη Μολδοβλαχία 2ο
Η εξέγερση στη Μολδοβλαχία 2ο
argisdrougas
 
Stem cell
Stem cellStem cell
Stem cell
Abhay Thakur
 

Viewers also liked (17)

Speeches before the security council
Speeches before the security councilSpeeches before the security council
Speeches before the security council
 
Kantar Media - Want to engage a large number of consumers to brand?
 Kantar Media - Want to engage a large number of consumers to brand? Kantar Media - Want to engage a large number of consumers to brand?
Kantar Media - Want to engage a large number of consumers to brand?
 
all
allall
all
 
Last dayf of premier bhutto
Last dayf of premier bhuttoLast dayf of premier bhutto
Last dayf of premier bhutto
 
Marching towards democracy
Marching towards democracyMarching towards democracy
Marching towards democracy
 
Reshaping foreign policy
Reshaping foreign policyReshaping foreign policy
Reshaping foreign policy
 
Bhutto zia and_islam
Bhutto zia and_islamBhutto zia and_islam
Bhutto zia and_islam
 
He was not_hanged
He was not_hangedHe was not_hanged
He was not_hanged
 
1. accioicorrectivaymodelodominó
1. accioicorrectivaymodelodominó1. accioicorrectivaymodelodominó
1. accioicorrectivaymodelodominó
 
Quarium supplies
Quarium suppliesQuarium supplies
Quarium supplies
 
Pakistan and bhutto
Pakistan and bhuttoPakistan and bhutto
Pakistan and bhutto
 
Pakistan andalliances
Pakistan andalliancesPakistan andalliances
Pakistan andalliances
 
He was not_hanged
He was not_hangedHe was not_hanged
He was not_hanged
 
Bhutto vision of pakistan
Bhutto vision of pakistanBhutto vision of pakistan
Bhutto vision of pakistan
 
My pakistan
My pakistanMy pakistan
My pakistan
 
Η εξέγερση στη Μολδοβλαχία 2ο
Η εξέγερση στη Μολδοβλαχία 2οΗ εξέγερση στη Μολδοβλαχία 2ο
Η εξέγερση στη Μολδοβλαχία 2ο
 
Stem cell
Stem cellStem cell
Stem cell
 

Slide Presentation Final Project (S1)

  • 1. ANALISIS PERBANDINGAN ALGORITMA KNUTH-MORRIS-PRATT DENGAN ALGORITMA BOYER-MOORE PADA PERMAINAN WORD SEARCH PUZZLE OLEH : ASEP ROJALI (10109411)
  • 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
  • 8. MAKSUD Algoritma Knuth-Morris-Pratt VS Algoritma Boyer-Moore 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.
  • 13. * Metode Penelitian Eksperimental – Tahap Pengumpulan Data – Tahap Analisis Algoritma
  • 14. * INISIALISASI PAPAN PERMAINAN
  • 15. *
  • 16. * PENCARIAN KATA PADA PAPAN PERMAINAN
  • 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
  • 19. *
  • 20. ALGORITMA KNUTH-MORRIS-PRATT •Fungsi pinggiran untuk pergeseran •Memiliki kompleksitas O(M+N) •Arah pencocokan dari kiri ke kanan
  • 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
  • 22. * PSEUDECODE ALGORITMA DENGAN NOTASI Big-O
  • 23. * ALGORITMA KNUTH-MORRIS-PRATT(1) Hasil dari notasi Big-O hitung nilai pinggiran : O(1) + O(1) + O(1) + O(M) + O(1) + O(1) + O(1) + O(1) + O(1) = 7 + 1M kali = O(M) Pseudocode Hitung Pinggiran :
  • 24. * ALGORITMA KNUTH-MORRIS-PRATT(2) Hasil dari notasi Big-O hitung nilai pinggiran : O(M) + O(1) + O(1) + O(1) + O(N) + O(1) + O(1) + O(1) + O(1) + O(1) + O(1) + O(1) + O(1) + O(1) + O(1) = 10 + 1M kali + 1N kali = O(M+N) Pseudocode Pencarian Kata :
  • 25. * ALGORITMA BOYER-MOORE(1) Hasil dari notasi Big-O hitung nilai pinggiran : O(M) + O(M) + O(1) + O(1) + O(N) + O(1) + O(1) + O(1) + O(1) = 6N+1N+2M kali = O(N/M) Pseudocode Pencarian Kata :
  • 27. *
  • 28. *
  • 29. * 1 2
  • 30. * 1 2
  • 32. TEXT YHXBFLAMINGOHZV SMKOBXTHRABAXZ JHAEENHNLMMND JIKBKATDKSBH ATIBDZTBTEI NUSWNQYETU GPEMZCRTY KKRZBBBG RAIEKMV ILBFLT KAUAH TJYF MAC MM X
  • 33. PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS- PRATT 1.Tahap Preprocessing (Menghitung nilai pinggiran) 2.Tahap Pencarian Kata
  • 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 * *
  • 44. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(5) * *
  • 45. PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(6) * *
  • 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. * *
  • 52. * IMPLEMENTASI ANTAR MUKA PERMAINAN(1) Papan Permainan
  • 53. * IMPLEMENTASI ANTAR MUKA PERMAINAN(2) Set Papan Permainan
  • 54. * IMPLEMENTASI ANTAR MUKA PERMAINAN(3) Pencarian Menggunakan Algoritma Knuth-Morris-Pratt
  • 55. * IMPLEMENTASI ANTAR MUKA PERMAINAN(4) Pencarian Menggunakan Algoritma Boyer-Moore
  • 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
  • 58. * PENGUJIAN PADA PANJANG PAPAN(2)
  • 59. PENGUJIAN PADA PANJANG PAPAN(3) * *
  • 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. * *
  • 61. * PENGUJIAN PADA POSISI POLA 20x20(2)
  • 62. PENGUJIAN PADA POSISI POLA 20x20(3) * *
  • 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. * *
  • 64. * PENGUJIAN PADA POSISI POLA 30x30(2)
  • 65. PENGUJIAN PADA POSISI POLA 30x30(3) * *
  • 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. * *
  • 67. * PENGUJIAN PADA POSISI POLA 40x40(2)
  • 68. PENGUJIAN PADA POSISI POLA 40x40(3) * *
  • 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. * *
  • 70. * PENGUJIAN PADA POSISI POLA 50x50(2)
  • 71. PENGUJIAN PADA POSISI POLA 50x50(3) * *
  • 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 *
  • 75. * Algoritma Boyer-Moore pada word search puzzle dapat diterapkan pada aplikasi game sesungguhnya