slide presentation final project (s1)

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

Upload: asep-rojali

Post on 24-Jun-2015

206 views

Category:

Technology


8 download

DESCRIPTION

ANALYZING COMPARISON BETWEEN KNUTH-MORRIS-PRATT ALGORITHM WITH BOYER-MOORE ALGORITHM IN WORD SEARCH PUZZLE GAMES.

TRANSCRIPT

Page 1: Slide Presentation Final Project (S1)

ANALISIS PERBANDINGAN ALGORITMA KNUTH-MORRIS-PRATT

DENGAN ALGORITMA BOYER-MOORE PADA PERMAINAN WORD SEARCH

PUZZLE

OLEH :ASEP ROJALI (10109411)

Page 2: Slide Presentation Final Project (S1)

LATAR BELAKANG MASALAH

Page 3: Slide Presentation Final Project (S1)

PERMAINAN WORD SEARCH PUZZLE

Page 4: Slide Presentation Final Project (S1)

*

• 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

Page 5: Slide Presentation Final Project (S1)

PERUMUSAN MASALAH

Page 6: Slide Presentation Final Project (S1)

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

dengan karakteristik pencarian pada permainan word search puzzle

Page 7: Slide Presentation Final Project (S1)

MAKSUD DAN TUJUAN

Page 8: Slide Presentation Final Project (S1)

Algoritma Knuth-Morris-PrattVS

Algoritma Boyer-MoorePermainan word search puzzle

MAKSUD

Page 9: Slide Presentation Final Project (S1)

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

Page 10: Slide Presentation Final Project (S1)

BATASAN MASALAH

Page 11: Slide Presentation Final Project (S1)

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

Page 12: Slide Presentation Final Project (S1)

METODOLOGI PENELITIAN

Page 13: Slide Presentation Final Project (S1)

*

Metode Penelitian Eksperimental

– Tahap Pengumpulan Data

– Tahap Analisis Algoritma

Page 14: Slide Presentation Final Project (S1)

*

INISIALISASI PAPAN PERMAINAN

Page 15: Slide Presentation Final Project (S1)

*

Page 16: Slide Presentation Final Project (S1)

*

PENCARIAN KATA PADA PAPAN PERMAINAN

Page 17: Slide Presentation Final Project (S1)

PENCARIAN KATA PADA PERMAINAN1. Kiri ke kanan, jika tidak ketemu ubah

cara baca2. Kanan ke kiri, jika tidak ketemu ubah

cara baca3. Atas ke bawah, jika tidak ketemu

ubah cara baca4. Bawah ke atas, jika tidak ketemu

ubah cara baca5. 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

Page 18: Slide Presentation Final Project (S1)

ANALISIS ALGORITMA

Page 19: Slide Presentation Final Project (S1)

*

Page 20: Slide Presentation Final Project (S1)

•Fungsi pinggiran untuk pergeseran•Memiliki kompleksitas O(M+N)•Arah pencocokan dari kiri ke kanan

ALGORITMA KNUTH-MORRIS-PRATT

Page 21: Slide Presentation Final Project (S1)

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

ALGORITMA BOYER-MOOR

Page 22: Slide Presentation Final Project (S1)

*

PSEUDECODE ALGORITMADENGAN NOTASI Big-O

Page 23: Slide Presentation Final Project (S1)

*

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 :

Page 24: Slide Presentation Final Project (S1)

*

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 :

Page 25: Slide Presentation Final Project (S1)

*

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 :

Page 26: Slide Presentation Final Project (S1)

ANALISIS ALGORITMA PADA PERMAINAN

Page 27: Slide Presentation Final Project (S1)

*

Page 28: Slide Presentation Final Project (S1)

*

Page 29: Slide Presentation Final Project (S1)

*

1

2

Page 30: Slide Presentation Final Project (S1)

*

1

2

Page 31: Slide Presentation Final Project (S1)

ANALISIS ALGORITMA TERHADAP KASUS

Page 32: Slide Presentation Final Project (S1)

CONTOH KASUS

YHXBFLAMINGOHZV

SMKOBXTHRABAXZ

JHAEENHNLMMND

JIKBKATDKSBH

ATIBDZTBTEINUSWNQYETU

GPEMZCRTYKKRZBBBG

RAIEKMV

ILBFLT

KAUAHTJYFMAC

MMX

TEXT

Page 33: Slide Presentation Final Project (S1)

1.Tahap Preprocessing (Menghitung nilai pinggiran)

2.Tahap Pencarian Kata

PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS-PRATT

Page 34: Slide Presentation Final Project (S1)

FLOWCHART ALGORITMA KNUTH-MORRIS-PRATT

Page 35: Slide Presentation Final Project (S1)

* *

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

Page 36: Slide Presentation Final Project (S1)

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

Page 37: Slide Presentation Final Project (S1)

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

Page 38: Slide Presentation Final Project (S1)

1.Tahap Preprocessing (Menghitung nilai bad-character shift dan good-suffix shift)

2.Tahap Pencarian Kata

PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE

Page 39: Slide Presentation Final Project (S1)

FLOWCHART ALGORITMA BOYER-MOORE

Page 40: Slide Presentation Final Project (S1)

* *

PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE BAD-CHARACTER SHIFT(1)

Mulai : Index = Panjang (pattern)-2F L A M I N G O

Pindah = 1

Bandingkan “G” dengan “Null HasilBmBc(sebelum) BmBc(sesudah)

Karakter Null Karakter GNilai OH Null Nilai OH 1

1)

Tabel comparator BmBc

Mulai : Index = Panjang (pattern)-3F L A M I N G O

Pindah = 2

Bandingkan “N” dengan “G" HasilBmBc(sebelum) BmBc(sesudah)

Karakter G Karakter N GNilai OH 1 Nilai OH 2 1

2)

Tabel comparator BmBc

Page 41: Slide Presentation Final Project (S1)

* *

PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE BAD-CHARACTER SHIFT(2)

Mulai : Index = Panjang (pattern)-4F 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 GNilai 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 GNilai OH 1 2 3 Nilai OH 4 3 2 1

4)

Tabel comparator BmBc

Page 42: Slide Presentation Final Project (S1)

* *

PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE BAD-CHARACTER SHIFT(3)

Mulai : Index = Panjang (pattern)-6F L A M I N G O

Pindah = 5

5)

Tabel comparator BmBc

Mulai : Index = Panjang (pattern)-7F 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 GNilai 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 GNilai OH 1 2 3 4 5 Nilai OH 6 5 4 3 2 1

Page 43: Slide Presentation Final Project (S1)

* *

PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE BAD-CHARACTER SHIFT(4)

Mulai : Index = Panjang (pattern)-1F L A M I N G O

Pindah = 7

7)

Tabel comparator BmBc

Mulai : Index = Panjang (pattern)-1F 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 0Nilai 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 GNilai OH 1 2 3 4 5 6 Nilai OH 7 6 5 4 3 2 1

Page 44: Slide Presentation Final Project (S1)

* *

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

Page 45: Slide Presentation Final Project (S1)

* *

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

Page 46: Slide Presentation Final Project (S1)

* *

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

SuffixIndex 7

MovePrefix OSuffix NULL

Suffix comparator

FLAMING 1FLAMIN 2FLAMI 3FLAM 4FLA 5FL 6F 7

NULL 8MH value ?

1) 2) SuffixIndex 6

MovePrefix GSuffix O

Suffix comparator

FLAMING 1FLAMIN 2FLAMI 3FLAM 4FLA 5FL 6F 7

NULL 8MH value ?

Index 0 1 2 3 4 5 6 7

Karakter F L A M I N G O

Nilai MH 8 1

Page 47: Slide Presentation Final Project (S1)

* *

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

SuffixIndex 5

MovePrefix NSuffix GO

Suffix comparator

FLAMING 1FLAMIN 2FLAMI 3FLAM 4FLA 5FL 6F 7

NULL 8MH value ?

3) 4) SuffixIndex 4

MovePrefix ISuffix NGO

Suffix comparator

FLAMING 1FLAMIN 2FLAMI 3FLAM 4FLA 5FL 6F 7

NULL 8MH 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

Page 48: Slide Presentation Final Project (S1)

* *

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

SuffixIndex 3

MovePrefix MSuffix INGO

Suffix comparator

FLAMING 1FLAMIN 2FLAMI 3FLAM 4FLA 5FL 6F 7

NULL 8MH value ?

5) 6) SuffixIndex 2

MovePrefix ASuffix MINGO

Suffix comparator

FLAMING 1FLAMIN 2FLAMI 3FLAM 4FLA 5FL 6F 7

NULL 8MH 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

Page 49: Slide Presentation Final Project (S1)

* *

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

SuffixIndex 1

MovePrefix LSuffix AMINGO

Suffix comparator

FLAMING 1FLAMIN 2FLAMI 3FLAM 4FLA 5FL 6F 7

NULL 8MH value ?

7) 8) SuffixIndex 0

MovePrefix FSuffix LAMINGO

Suffix comparator

FLAMING 1FLAMIN 2FLAMI 3FLAM 4FLA 5FL 6F 7

NULL 8MH 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

Page 50: Slide Presentation Final Project (S1)

* *

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 7Karakter F L A M I N G ONilai OH 7 6 5 4 3 2 1 0Nilai 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.

Page 51: Slide Presentation Final Project (S1)

* *

IMPLEMENTASI SISTEM

Page 52: Slide Presentation Final Project (S1)

*

IMPLEMENTASI ANTAR MUKA PERMAINAN(1)

Papan Permainan

Page 53: Slide Presentation Final Project (S1)

*

IMPLEMENTASI ANTAR MUKA PERMAINAN(2)

Set Papan Permainan

Page 54: Slide Presentation Final Project (S1)

*

IMPLEMENTASI ANTAR MUKA PERMAINAN(3)

Pencarian Menggunakan Algoritma Knuth-Morris-Pratt

Page 55: Slide Presentation Final Project (S1)

*

IMPLEMENTASI ANTAR MUKA PERMAINAN(4)

Pencarian Menggunakan Algoritma Boyer-Moore

Page 56: Slide Presentation Final Project (S1)

*

PENGUJIAN

Page 57: Slide Presentation Final Project (S1)

*

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

Page 58: Slide Presentation Final Project (S1)

*

PENGUJIAN PADA PANJANG PAPAN(2)

Page 59: Slide Presentation Final Project (S1)

* *

PENGUJIAN PADA PANJANG PAPAN(3)

Page 60: Slide Presentation Final Project (S1)

* *

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.

Page 61: Slide Presentation Final Project (S1)

*

PENGUJIAN PADA POSISI POLA 20x20(2)

Page 62: Slide Presentation Final Project (S1)

* *

PENGUJIAN PADA POSISI POLA 20x20(3)

Page 63: Slide Presentation Final Project (S1)

* *

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.

Page 64: Slide Presentation Final Project (S1)

*

PENGUJIAN PADA POSISI POLA 30x30(2)

Page 65: Slide Presentation Final Project (S1)

* *

PENGUJIAN PADA POSISI POLA 30x30(3)

Page 66: Slide Presentation Final Project (S1)

* *

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.

Page 67: Slide Presentation Final Project (S1)

*

PENGUJIAN PADA POSISI POLA 40x40(2)

Page 68: Slide Presentation Final Project (S1)

* *

PENGUJIAN PADA POSISI POLA 40x40(3)

Page 69: Slide Presentation Final Project (S1)

* *

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.

Page 70: Slide Presentation Final Project (S1)

*

PENGUJIAN PADA POSISI POLA 50x50(2)

Page 71: Slide Presentation Final Project (S1)

* *

PENGUJIAN PADA POSISI POLA 50x50(3)

Page 72: Slide Presentation Final Project (S1)

* *

KESIMPULAN

Page 73: Slide Presentation Final Project (S1)

*

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

Page 74: Slide Presentation Final Project (S1)

*

SARAN

Page 75: Slide Presentation Final Project (S1)

*

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

Page 76: Slide Presentation Final Project (S1)

*

DEMO SIMULASI

Page 77: Slide Presentation Final Project (S1)

*

TERIMA KASIH