Slide 1

Slide 1 text

ANALISIS PERBANDINGAN ALGORITMA KNUTH-MORRIS-PRATT DENGAN ALGORITMA BOYER-MOORE PADA PERMAINAN WORD SEARCH PUZZLE OLEH : ASEP ROJALI (10109411)

Slide 2

Slide 2 text

LATAR BELAKANG MASALAH

Slide 3

Slide 3 text

PERMAINAN WORD SEARCH PUZZLE

Slide 4

Slide 4 text

* • 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

Slide 5

Slide 5 text

PERUMUSAN MASALAH

Slide 6

Slide 6 text

Implementasi algoritma Boyer-Moore pada permainan word search puzzle tidak hanya untuk satu arah, disesuaikan dengan karakteristik pencarian pada permainan word search puzzle

Slide 7

Slide 7 text

MAKSUD DAN TUJUAN

Slide 8

Slide 8 text

Algoritma Knuth-Morris-Pratt VS Algoritma Boyer-Moore Permainan word search puzzle MAKSUD

Slide 9

Slide 9 text

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 TUJUAN

Slide 10

Slide 10 text

BATASAN MASALAH

Slide 11

Slide 11 text

•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.

Slide 12

Slide 12 text

METODOLOGI PENELITIAN

Slide 13

Slide 13 text

* Metode Penelitian Eksperimental – Tahap Pengumpulan Data – Tahap Analisis Algoritma

Slide 14

Slide 14 text

* INISIALISASI PAPAN PERMAINAN

Slide 15

Slide 15 text

*

Slide 16

Slide 16 text

* PENCARIAN KATA PADA PAPAN PERMAINAN

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

ANALISIS ALGORITMA

Slide 19

Slide 19 text

*

Slide 20

Slide 20 text

•Fungsi pinggiran untuk pergeseran •Memiliki kompleksitas O(M+N) •Arah pencocokan dari kiri ke kanan ALGORITMA KNUTH-MORRIS-PRATT

Slide 21

Slide 21 text

•Fungsi bad-character shift dan good-suffix shift untuk pergeseran •Memiliki kompleksitas O(N/M) •Arah pencocokan dari kanan ke kiri ALGORITMA BOYER-MOOR

Slide 22

Slide 22 text

* PSEUDECODE ALGORITMA DENGAN NOTASI Big-O

Slide 23

Slide 23 text

* 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 :

Slide 24

Slide 24 text

* 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 :

Slide 25

Slide 25 text

* 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 :

Slide 26

Slide 26 text

ANALISIS ALGORITMA PADA PERMAINAN

Slide 27

Slide 27 text

*

Slide 28

Slide 28 text

*

Slide 29

Slide 29 text

* 1 2

Slide 30

Slide 30 text

* 1 2

Slide 31

Slide 31 text

ANALISIS ALGORITMA TERHADAP KASUS

Slide 32

Slide 32 text

YHXBFLAMINGOHZV SMKOBXTHRABAXZ JHAEENHNLMMND JIKBKATDKSBH ATIBDZTBTEI NUSWNQYETU GPEMZCRTY KKRZBBBG RAIEKMV ILBFLT KAUAH TJYF MAC MM X TEXT

Slide 33

Slide 33 text

1.Tahap Preprocessing (Menghitung nilai pinggiran) 2.Tahap Pencarian Kata PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS- PRATT

Slide 34

Slide 34 text

FLOWCHART ALGORITMA KNUTH-MORRIS-PRATT

Slide 35

Slide 35 text

* * PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS-PRATT(1) F L A M I N G O 0 0 1 0 0 0 0 0 Substring Pattern Prefix dan Suffix Nilai Pinggiran

Slide 36

Slide 36 text

PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS- PRATT(2) Tahap Pencarian Kata : 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 1) 2) Tidak terjadi ketidakcocokan, maka pattern digeser sejumlah 1 karakter 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 F L A M I N G O 0 0 0 0 0 0 0 0 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 3) Tidak terjadi ketidakcocokan, maka pattern digeser sejumlah 1 karakter

Slide 37

Slide 37 text

PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS- PRATT(3) Tahap Pencarian Kata : 4) 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 F L A M I N G O 0 0 0 0 0 0 0 0 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 5) Tahap pencarian dengan algoritma Knuth-Morris-Pratt selesai setelah melakukan sebanyak 4 iterasi

Slide 38

Slide 38 text

1.Tahap Preprocessing (Menghitung nilai bad-character shift dan good-suffix shift) 2.Tahap Pencarian Kata PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE

Slide 39

Slide 39 text

FLOWCHART ALGORITMA BOYER-MOORE

Slide 40

Slide 40 text

* * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE BAD-CHARACTER SHIFT(1) Mulai : Index = Panjang (pattern)-2 F L A M I N G O Pindah = 1 Bandingkan “G” dengan “Null Hasil BmBc(sebelum) BmBc(sesudah) Karakter Null Karakter G Nilai OH Null Nilai OH 1 1) Tabel comparator BmBc Mulai : Index = Panjang (pattern)-3 F L A M I N G O Pindah = 2 Bandingkan “N” dengan “G" Hasil BmBc(sebelum) BmBc(sesudah) Karakter G Karakter N G Nilai OH 1 Nilai OH 2 1 2) Tabel comparator BmBc

Slide 41

Slide 41 text

* * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE BAD-CHARACTER SHIFT(2) Mulai : Index = Panjang (pattern)-4 F L A M I N G O Pindah = 3 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) Tabel comparator BmBc Mulai : Index = Panjang (pattern)-5 F L A M I N G O Pindah = 4 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) Tabel comparator BmBc

Slide 42

Slide 42 text

* * 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 Mulai : Index = Panjang (pattern)-7 F L A M I N G O Pindah = 6 6) Tabel comparator BmBc Bandingkan “A” dengan “G“,”N”,” I”,”M” Hasil 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 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

Slide 43

Slide 43 text

* * 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 Mulai : Index = Panjang (pattern)-1 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 Bandingkan “F” dengan “G“,”N”,” I”,”M”,”A”,”L” 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

Slide 44

Slide 44 text

* * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(5)

Slide 45

Slide 45 text

* * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(6)

Slide 46

Slide 46 text

* * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(7) Index 0 1 2 3 4 5 6 7 Karakter F L A M I N G O Nilai MH 8 1 Suffix Index 7 Move Prefix O Suffix NULL Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? 1) 2) Suffix Index 6 Move Prefix G 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

Slide 47

Slide 47 text

* * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(8) Index 0 1 2 3 4 5 6 7 Karakter F L A M I N G O Nilai MH 8 8 1 Suffix Index 5 Move Prefix N Suffix GO Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? 3) 4) Suffix Index 4 Move Prefix I 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

Slide 48

Slide 48 text

* * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(9) 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 Suffix Index 3 Move Prefix M Suffix INGO Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? 5) 6) Suffix Index 2 Move Prefix A 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

Slide 49

Slide 49 text

* * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(10) 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 Suffix Index 1 Move Prefix L Suffix AMINGO Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? 7) 8) Suffix Index 0 Move Prefix F 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

Slide 50

Slide 50 text

* * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE (11) 1) BmGs [7] = BmBc[M] -7 + 7 atau Max (1 = 4 - 7 + 7 ) = 4 2) 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 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.

Slide 51

Slide 51 text

* * IMPLEMENTASI SISTEM

Slide 52

Slide 52 text

* IMPLEMENTASI ANTAR MUKA PERMAINAN(1) Papan Permainan

Slide 53

Slide 53 text

* IMPLEMENTASI ANTAR MUKA PERMAINAN(2) Set Papan Permainan

Slide 54

Slide 54 text

* IMPLEMENTASI ANTAR MUKA PERMAINAN(3) Pencarian Menggunakan Algoritma Knuth-Morris-Pratt

Slide 55

Slide 55 text

* IMPLEMENTASI ANTAR MUKA PERMAINAN(4) Pencarian Menggunakan Algoritma Boyer-Moore

Slide 56

Slide 56 text

* PENGUJIAN

Slide 57

Slide 57 text

* 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

Slide 58

Slide 58 text

* PENGUJIAN PADA PANJANG PAPAN(2)

Slide 59

Slide 59 text

* * PENGUJIAN PADA PANJANG PAPAN(3)

Slide 60

Slide 60 text

* * 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.

Slide 61

Slide 61 text

* PENGUJIAN PADA POSISI POLA 20x20(2)

Slide 62

Slide 62 text

* * PENGUJIAN PADA POSISI POLA 20x20(3)

Slide 63

Slide 63 text

* * 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.

Slide 64

Slide 64 text

* PENGUJIAN PADA POSISI POLA 30x30(2)

Slide 65

Slide 65 text

* * PENGUJIAN PADA POSISI POLA 30x30(3)

Slide 66

Slide 66 text

* * 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.

Slide 67

Slide 67 text

* PENGUJIAN PADA POSISI POLA 40x40(2)

Slide 68

Slide 68 text

* * PENGUJIAN PADA POSISI POLA 40x40(3)

Slide 69

Slide 69 text

* * 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.

Slide 70

Slide 70 text

* PENGUJIAN PADA POSISI POLA 50x50(2)

Slide 71

Slide 71 text

* * PENGUJIAN PADA POSISI POLA 50x50(3)

Slide 72

Slide 72 text

* * KESIMPULAN

Slide 73

Slide 73 text

* 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

Slide 74

Slide 74 text

* SARAN

Slide 75

Slide 75 text

* Algoritma Boyer-Moore pada word search puzzle dapat diterapkan pada aplikasi game sesungguhnya

Slide 76

Slide 76 text

* DEMO SIMULASI

Slide 77

Slide 77 text

* TERIMA KASIH