Perbandingan Algoritma Knuth Morris Pratt dan Boyer Moore pada Aplikasi Kamus Bahasa Indonesia-Korea Berbasis Android
PERBANDINGAN ALGORITMA KNUTH MORRIS PRATT DAN BOYER
MOORE PADA APLIKASI KAMUS BAHASA INDONESIA-KOREA
BERBASIS ANDROID
SKRIPSI
VICI INDAH YANA
121401062
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
2016
PERBANDINGAN ALGORITMA KNUTH MORRIS PRATT DAN BOYER
MOORE PADA APLIKASI KAMUS BAHASA INDONESIA-KOREA
BERBASIS ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh gelar
Sarjana Komputer
VICI INDAH YANA
121401062
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2016
ii
PERSETUJUAN
Judul
Kategori
Nama
Nomor Induk Mahasiswa
Program Studi
Departemen
Fakultas
: PERBANDINGAN ALGORITMA KNUTH MORRIS
PRATT DAN BOYER MOORE PADA APLIKASI
KAMUS BAHASA INDONESIA-KOREA
BERBASIS ANDROID
: SKRIPSI
: VICI INDAH YANA
: 121401062
: SARJANA (S1) ILMU KOMPUTER
: ILMU KOMPUTER
: ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Diluluskan di
Medan,
Komisi Pembimbing
2016
:
Pembimbing 2
Pembimbing 1
Maya Silvi Lydia, B.Sc, M.Sc
NIP. 19740127 200212 2 001
Dr. Poltak Sihombing, M.Kom
NIP. 19620317 199103 1 001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,
Dr. Poltak Sihombing, M.Kom
NIP. 196203171991031001
iii
PERNYATAAN
PERBANDINGAN ALGORITMA KNUTH MORRIS PRATT DAN BOYER
MOORE PADA APLIKASI KAMUS BAHASA INDONESIA-KOREA
BERBASIS ANDROID
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali
beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan,
Vici Indah Yana
121401062
2016
iv
PENGHARGAAN
Puji dan syukur kehadirat Allah SWT yang telah memberikan rahmat dan
hidayah-Nya, sehingga Penulis dapat menyelesaikan penyusunan skripsi ini,
sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1
Ilmu Komputer Universitas Sumatera Utara.
Pada pengerjaan skripsi dengan judul Perbandingan Algoritma Knuth
Morris Pratt dan Boyer-Moore pada Aplikasi Kamus Bahasa Indonesia-Korea
berbasis Android, penulis menyadari bahwa banyak pihak yang turut membantu,
baik dari pihak keluarga, sahabat dan orang-orang terkasih yang memotivasi
dalam pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih
kepada:
1. Bapak Prof. Dr. Runtung Sitepu, SH, M.Hum selaku Rektor Universitas
Sumatera Utara.
2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1
Ilmu Komputer Universitas Sumatera Utara dan selaku Dosen
Pembimbing I yang telah memberikan bimbingan, saran, dan masukan
kepada penulis dalam pengerjaan skripsi ini.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Dosen Pembimbing II yang telah
memberikan bimbingan, saran, dan masukan kepada penulis dalam
pengerjaan skripsi ini.
5. Bapak Prof. Dr. Iryanto, M.Si selaku Dosen Pembanding I yang telah
memberikan kritik dan saran dalam penyempurnaan skripsi ini.
6. Bapak Ade Candra, S.T, M.Kom selaku Dosen Pembanding II yang telah
memberikan kritik dan saran dalam penyempurnaan skripsi ini.
7. Bapak M.Andri Budiman, ST, M.Comp. Sc, M.E.M dan Ibu Dian
Rachmawati, S.Si, M.Kom yang telah memberikan ilmu bermanfaat
kepada penulis dalam pengerjaan skripsi ini
8. Wakil Dekan Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara, seluruh tenaga pengajar, seluruh staff
v
akademik serta pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI
USU.
9. Ayahanda Gama Solihin dan Ibunda Elfina Septi, yang selalu memberikan
doa dan dukungan serta kasih sayang kepada penulis, Adik tersayang Ega
yang terus memberikan dukungan dan dorongan bagi penulis untuk
menyelesaikan skripsi ini.
10. Teman-teman kuliah, kepada Akhiruddin, Novi, Ricky, Rizky, Ila,
Nurmardiah, Novita, Boris, Siti, Evelin, Neno, Dian, Ica, Zahra, Arif
Maulana dan seluruh anak Kom B yang tidak bisa disebutkan satu-persatu,
yang telah berbagi suka dan duka, semangat dan dorongan sehingga
penulis dapat menyelesaikan skripsi ini.
11. Teman-teman stambuk 2012 dan para Senior 2010 - 2011 yang telah
banyak membagi ilmu dan membantu pengerjaan skripsi ini
12. Teman-teman belajar bahasa korea, kepada Achmad Gadavi, Cici Henny
Mauliza yang telah membantu penulis untuk mempelajari bahasa Korea
pada pengerjaan skripsi ini
13. Dan semua pihak yang telah banyak membantu yang tidak bisa disebutkan
satu-persatu.
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah
memberikan bantuan, perhatian, serta dukungan kepada penulis dalam
menyelesaikan skripsi ini.
Medan,
2016
Penulis,
Vici Indah Yana
vi
ABSTRAK
Penelitian ini membahas tentang bagaimana melakukan pencarian kata pada
Kamus Bahasa Asing dengan menggunakan Algoritma pencocokan kata.
Penelitian ini bertujuan untuk mengetahui Algoritma yang lebih baik diantara
Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore untuk proses
pencocokan kata. Pencocokan kata merupakan bagian penting dari sebuah proses
pencarian kata dalam sebuah dokumen. Algoritma pencocokan kata yang
digunakan dalam penelitian ini adalah Algoritma Knuth Morris Pratt dan Boyer
Moore. Algoritma Knuth Morris Pratt melakukan perbandingan teks dan pola
dimulai dari kiri ke kanan sedangkan Algoritma Boyer Moore melakukan
perbandingan teks dan pola dimulai dari kanan ke kiri, tetapi pergeseran window
tetap dari kiri ke kanan. Hasil dari penelitian ini menunjukkan bahwa Algoritma
Knuth Morris Pratt lebih cepat dibandingkan Algoritma Boyer Moore untuk
proses pencarian kata. Hasil rata-rata Running Time Algoritma Knuth Morris
Pratt adalah 132.1 ms dan Algoritma Boyer Moore adalah 134.6 ms.
Kata kunci : Pencocokan kata, Algoritma Knuth Morris Pratt, Algoritma
Boyer Moore.
vii
THE COMPARISON BETWEEN KNUTH MORRIS PRATT
ALGORITHM AND BOYER MOORE ALGORITHM IN INDONESIAN KOREAN DICTIONARY APPLICATION ON ANDROID
ABSTRACT
This research discusses about how to do a word searching in foreign language
dictionary using string matching algorithm. This research is aimed to know which
algorithm is better between Knuth Morrish Pratt algorithm and Boyer Moore
algorithm in string matching process. String matching is an important parts of
string searching process in a document. String matching algorithm that is used in
this research are Knuth Morris Pratt algorithm and Boyer Moore algorithm. Knuth
Morris Pratt algorithm performs the comparisons of the text and the pattern from
left to right. Whereas Boyer Moore algorithm performs the comparisons of the
text and the pattern from right to left, but the shifting of the window remains from
left to right.The result of this research shows that Knuth Morris Pratt algorithm is
faster than Boyer Moore algorithm in word searching process. The running time
average of Knuth Morris Pratt algorithm is 132.1 ms and Boyer Moore algorithm
is 134.6 ms
Keywords: String Matching, Knuth Morris Pratt Algorithm, Boyer Moore
Algorithm.
viii
DAFTAR ISI
Halaman
Persetujuan
Pernyataan
Penghargaan
Abstrak
Abstract
Daftar Isi
Daftar Tabel
Daftar Gambar
Daftar Lampiran
ii
iii
iv
vi
vii
viii
x
xi
xii
Bab 1 Pendahuluan
1.1 Latar Belakang
1.2 Perumusan Masalah
1.3 Ruang Lingkup Penelitian
1.4 Tujuan Penelitian
1.5 Manfaat Penelitian
1.6 Metode Penelitian
1.7 Sistematika Penulisan
1
3
3
3
4
4
5
Bab 2 Landasan Teori
2.1 Definisi Kamus
2.2 Definisi Algoritma
2.2.1 Algoritma String Matching (pencocokan kata)
2.2.1.1 Algoritma Knuth Morris Pratt
2.2.1.2 Algoritma Boyer Moore
2.2.1.2.1 Suffix
2.2.1.2.2 Good-Suffix Shift (Match Heuristic)
2.2.1.2.3 Bad-Character Shift (Occurance Heuristic)
2.3 Definisi Kompleksitas Algoritma
2.4 Definisi Android
2.5 Penelitian yang Relevan
7
7
7
8
13
13
14
16
19
20
21
Bab 3 Analisis dan Perancangan Sistem
3.1 Analisis Sistem
3.1.1 Analisis Masalah
3.1.2 Analisis Persyaratan
3.1.2.1 Persyaratan Fungsional
3.1.2.2 Persyaratan Non-Fungsional
3.2. Pemodelan
3.2.1 Use Case Diagram
23
23
24
25
25
26
26
ix
3.2.2 Activity Diagram
3.2.3 Sequance Diagram
3.3 Pseudocode
3.3.1 Pseudocode Algoritma Knuth Morris Pratt
3.3.2 Pseudocode Algoritma Boyer Moore
3.4 Flowchart
3.5 Perancangan Antarmuka Sistem (Interface)
3.5.1 Rancangan Halaman Splash Screen
3.5.2 Rancangan Navigation Drawer
3.5.3 Rancangan Halaman Beranda
3.5.4 Rancangan Halaman Pencarian
3.5.5 Rancangan Halaman Fitur
3.5.6 Rancangan Halaman Bantuan
3.5.7 Rancangan Halaman Tentang
3.5.8 Rancangan Halaman Keluar
29
30
31
31
32
34
37
37
38
39
39
43
43
44
45
Bab 4 Implementasi dan Pengujian Sistem
4.1 Implementasi
4.1.1 Tampilan Halaman Splash Screen
4.1.2 Tampilan Navigation Drawer
4.1.3 Tampilan Halaman Beranda
4.1.4 Tampilan Halaman Pencarian
4.1.5 Tampilan Halaman Fitur
4.1.6 Tampilan Halaman Bantuan
4.1.7 Tampilan Halaman Tentang
4.1.8 Tampilan Halaman Keluar
4.2 Pengujian Sistem
4.2.1 Pengujian pencarian kata pada Kamus Bahasa Indonesia-Korea
dengan Algoritma Knuth Morris Pratt
4.2.2 Pengujian pencarian kata pada Kamus Bahasa Indonesia-Korea
dengan Algoritma Boyer Moore
4.3 Hasil Pengujian
4.4 Kompleksitas Algoritma
4.4.1 Kompleksitas Algoritma Knuth Morris Pratt
4.4.2 Kompleksitas Algoritma Boyer Moore
59
65
68
68
71
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan
5.2. Saran
76
77
Daftar Pustaka
78
47
47
48
48
49
50
51
51
52
53
53
x
DAFTAR TABEL
Nomor
Tabel
2.1
2.2
2.3
2.4
2.5
2.6
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19
4.20
4.21
4.22
4.23
4.24
4.25
4.26
4.27
4.28
Nama Tabel
Halaman
Hasil Perhitungan kmpNext[i] dan shift[i]
Hasil Perhitungan Suffix
Hasil Perhitungan bmGs
Hasil Perhitungan bmBc
Pergeseran karakter untuk bmBc
Pergeseran posisi untuk bmGs
Use Case Proses Menentukan tipe terjemahan
Use Case Proses Input kata
Use Case Proses Algoritma Knuth Morris Pratt
Use Case Proses Algoritma Boyer Moore
Pseudecode preKmp
Pseudecode KMP
Pseudecode suffix
Pseudecode bmGs
Pseudecode bmBc
Pseudecode BM
Hasil Pencarian kata “a” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “an” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “ma” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “perempuan” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “komput” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “ch” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “imnida” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “keopyuteogong” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “xy” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “samuso” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “a” dengan Algoritma Boyer Moore
Hasil Pencarian kata “an” dengan Algoritma Boyer Moore
Hasil Pencarian kata “ma” dengan Algoritma Boyer Moore
Hasil Pencarian kata “perempuan” dengan Algoritma Boyer Moore
Hasil Pencarian kata “komput” dengan Algoritma Boyer Moore
Hasil Pencarian kata “ch” dengan Algoritma Boyer Moore
Hasil Pencarian kata “imnida” dengan Algoritma Boyer Moore
Hasil Pencarian kata “keopyuteogong” dengan Algoritma Boyer Moore
Hasil Pencarian kata “xy” dengan Algoritma Boyer Moore
Hasil Pencarian kata “samuso” dengan Algoritma Boyer Moore
Hasil Pengujian Algoritma Knuth Morris Pratt
Hasil Pengujian Algoritma Boyer Moore
Kompleksitas fungsi preKmp Algoritma Knuth Morris Pratt
Kompleksitas fungsi KMP Algoritma Knuth Morris Pratt
Kompleksitas fungsi preBmBc Algoritma Boyer Moore
Kompleksitas fungsi suffixes Algoritma Boyer Moore
Kompleksitas fungsi preBmGs Algoritma Boyer Moore
Kompleksitas fungsi BM Algoritma Boyer Moore
9
14
15
17
18
18
27
27
28
28
31
31
32
32
33
33
53
54
54
55
55
56
56
57
57
58
59
60
60
61
61
62
62
63
63
64
65
66
68
69
71
71
72
73
xi
DAFTAR GAMBAR
Nomor
Gambar
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
3.14
3.15
13.16
13.17
13.18
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
Nama Gambar
Halaman
Diagram Ishikawa
Use Case Diagram Sistem
Activity Diagram Sistem
Sequence Diagram Sistem
Flowchart Gambaran Umum Sistem Kamus
Flowchart Algoritma Knuth Morris Pratt
Flowchart Algoritma Boyer Moore
Rancangan Splash Screen
Rancangan Navigation Drawer
Rancangan Beranda
Rancangan Pencarian
Rancangan Hasil Pencarian
Rancangan Alert dialog Terjemahan
Rancangan Alert dialog Hasil
Rancangan Fitur
Rancangan Bantuan
Rancangan Tentang
Rancangan Keluar
Halaman Splash Screen
Halaman Navigation Drawer
Halaman Beranda
Halaman Pencarian
Alert dialog Hasil
Alert dialog Terjemahan
Halaman Fitur
Halaman Bantuan
Halaman Tentang
Halaman Keluar
Perbandingan hasil Running Time Algoritma Knuth Morris
Pratt dan Algoritma Boyer Moore
Perbandingan total Running Time Algoritma Knuth Morris
Pratt dan Algoritma Boyer Moore
24
26
29
30
34
35
36
37
38
39
40
41
42
42
43
44
45
45
47
48
48
49
49
50
50
51
51
52
67
67
xii
DAFTAR LAMPIRAN
Halaman
A. Listing Program
B. Daftar Riwayat Hidup
A-1
B-1
MOORE PADA APLIKASI KAMUS BAHASA INDONESIA-KOREA
BERBASIS ANDROID
SKRIPSI
VICI INDAH YANA
121401062
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
2016
PERBANDINGAN ALGORITMA KNUTH MORRIS PRATT DAN BOYER
MOORE PADA APLIKASI KAMUS BAHASA INDONESIA-KOREA
BERBASIS ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh gelar
Sarjana Komputer
VICI INDAH YANA
121401062
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2016
ii
PERSETUJUAN
Judul
Kategori
Nama
Nomor Induk Mahasiswa
Program Studi
Departemen
Fakultas
: PERBANDINGAN ALGORITMA KNUTH MORRIS
PRATT DAN BOYER MOORE PADA APLIKASI
KAMUS BAHASA INDONESIA-KOREA
BERBASIS ANDROID
: SKRIPSI
: VICI INDAH YANA
: 121401062
: SARJANA (S1) ILMU KOMPUTER
: ILMU KOMPUTER
: ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Diluluskan di
Medan,
Komisi Pembimbing
2016
:
Pembimbing 2
Pembimbing 1
Maya Silvi Lydia, B.Sc, M.Sc
NIP. 19740127 200212 2 001
Dr. Poltak Sihombing, M.Kom
NIP. 19620317 199103 1 001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,
Dr. Poltak Sihombing, M.Kom
NIP. 196203171991031001
iii
PERNYATAAN
PERBANDINGAN ALGORITMA KNUTH MORRIS PRATT DAN BOYER
MOORE PADA APLIKASI KAMUS BAHASA INDONESIA-KOREA
BERBASIS ANDROID
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali
beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan,
Vici Indah Yana
121401062
2016
iv
PENGHARGAAN
Puji dan syukur kehadirat Allah SWT yang telah memberikan rahmat dan
hidayah-Nya, sehingga Penulis dapat menyelesaikan penyusunan skripsi ini,
sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1
Ilmu Komputer Universitas Sumatera Utara.
Pada pengerjaan skripsi dengan judul Perbandingan Algoritma Knuth
Morris Pratt dan Boyer-Moore pada Aplikasi Kamus Bahasa Indonesia-Korea
berbasis Android, penulis menyadari bahwa banyak pihak yang turut membantu,
baik dari pihak keluarga, sahabat dan orang-orang terkasih yang memotivasi
dalam pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih
kepada:
1. Bapak Prof. Dr. Runtung Sitepu, SH, M.Hum selaku Rektor Universitas
Sumatera Utara.
2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1
Ilmu Komputer Universitas Sumatera Utara dan selaku Dosen
Pembimbing I yang telah memberikan bimbingan, saran, dan masukan
kepada penulis dalam pengerjaan skripsi ini.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Dosen Pembimbing II yang telah
memberikan bimbingan, saran, dan masukan kepada penulis dalam
pengerjaan skripsi ini.
5. Bapak Prof. Dr. Iryanto, M.Si selaku Dosen Pembanding I yang telah
memberikan kritik dan saran dalam penyempurnaan skripsi ini.
6. Bapak Ade Candra, S.T, M.Kom selaku Dosen Pembanding II yang telah
memberikan kritik dan saran dalam penyempurnaan skripsi ini.
7. Bapak M.Andri Budiman, ST, M.Comp. Sc, M.E.M dan Ibu Dian
Rachmawati, S.Si, M.Kom yang telah memberikan ilmu bermanfaat
kepada penulis dalam pengerjaan skripsi ini
8. Wakil Dekan Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara, seluruh tenaga pengajar, seluruh staff
v
akademik serta pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI
USU.
9. Ayahanda Gama Solihin dan Ibunda Elfina Septi, yang selalu memberikan
doa dan dukungan serta kasih sayang kepada penulis, Adik tersayang Ega
yang terus memberikan dukungan dan dorongan bagi penulis untuk
menyelesaikan skripsi ini.
10. Teman-teman kuliah, kepada Akhiruddin, Novi, Ricky, Rizky, Ila,
Nurmardiah, Novita, Boris, Siti, Evelin, Neno, Dian, Ica, Zahra, Arif
Maulana dan seluruh anak Kom B yang tidak bisa disebutkan satu-persatu,
yang telah berbagi suka dan duka, semangat dan dorongan sehingga
penulis dapat menyelesaikan skripsi ini.
11. Teman-teman stambuk 2012 dan para Senior 2010 - 2011 yang telah
banyak membagi ilmu dan membantu pengerjaan skripsi ini
12. Teman-teman belajar bahasa korea, kepada Achmad Gadavi, Cici Henny
Mauliza yang telah membantu penulis untuk mempelajari bahasa Korea
pada pengerjaan skripsi ini
13. Dan semua pihak yang telah banyak membantu yang tidak bisa disebutkan
satu-persatu.
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah
memberikan bantuan, perhatian, serta dukungan kepada penulis dalam
menyelesaikan skripsi ini.
Medan,
2016
Penulis,
Vici Indah Yana
vi
ABSTRAK
Penelitian ini membahas tentang bagaimana melakukan pencarian kata pada
Kamus Bahasa Asing dengan menggunakan Algoritma pencocokan kata.
Penelitian ini bertujuan untuk mengetahui Algoritma yang lebih baik diantara
Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore untuk proses
pencocokan kata. Pencocokan kata merupakan bagian penting dari sebuah proses
pencarian kata dalam sebuah dokumen. Algoritma pencocokan kata yang
digunakan dalam penelitian ini adalah Algoritma Knuth Morris Pratt dan Boyer
Moore. Algoritma Knuth Morris Pratt melakukan perbandingan teks dan pola
dimulai dari kiri ke kanan sedangkan Algoritma Boyer Moore melakukan
perbandingan teks dan pola dimulai dari kanan ke kiri, tetapi pergeseran window
tetap dari kiri ke kanan. Hasil dari penelitian ini menunjukkan bahwa Algoritma
Knuth Morris Pratt lebih cepat dibandingkan Algoritma Boyer Moore untuk
proses pencarian kata. Hasil rata-rata Running Time Algoritma Knuth Morris
Pratt adalah 132.1 ms dan Algoritma Boyer Moore adalah 134.6 ms.
Kata kunci : Pencocokan kata, Algoritma Knuth Morris Pratt, Algoritma
Boyer Moore.
vii
THE COMPARISON BETWEEN KNUTH MORRIS PRATT
ALGORITHM AND BOYER MOORE ALGORITHM IN INDONESIAN KOREAN DICTIONARY APPLICATION ON ANDROID
ABSTRACT
This research discusses about how to do a word searching in foreign language
dictionary using string matching algorithm. This research is aimed to know which
algorithm is better between Knuth Morrish Pratt algorithm and Boyer Moore
algorithm in string matching process. String matching is an important parts of
string searching process in a document. String matching algorithm that is used in
this research are Knuth Morris Pratt algorithm and Boyer Moore algorithm. Knuth
Morris Pratt algorithm performs the comparisons of the text and the pattern from
left to right. Whereas Boyer Moore algorithm performs the comparisons of the
text and the pattern from right to left, but the shifting of the window remains from
left to right.The result of this research shows that Knuth Morris Pratt algorithm is
faster than Boyer Moore algorithm in word searching process. The running time
average of Knuth Morris Pratt algorithm is 132.1 ms and Boyer Moore algorithm
is 134.6 ms
Keywords: String Matching, Knuth Morris Pratt Algorithm, Boyer Moore
Algorithm.
viii
DAFTAR ISI
Halaman
Persetujuan
Pernyataan
Penghargaan
Abstrak
Abstract
Daftar Isi
Daftar Tabel
Daftar Gambar
Daftar Lampiran
ii
iii
iv
vi
vii
viii
x
xi
xii
Bab 1 Pendahuluan
1.1 Latar Belakang
1.2 Perumusan Masalah
1.3 Ruang Lingkup Penelitian
1.4 Tujuan Penelitian
1.5 Manfaat Penelitian
1.6 Metode Penelitian
1.7 Sistematika Penulisan
1
3
3
3
4
4
5
Bab 2 Landasan Teori
2.1 Definisi Kamus
2.2 Definisi Algoritma
2.2.1 Algoritma String Matching (pencocokan kata)
2.2.1.1 Algoritma Knuth Morris Pratt
2.2.1.2 Algoritma Boyer Moore
2.2.1.2.1 Suffix
2.2.1.2.2 Good-Suffix Shift (Match Heuristic)
2.2.1.2.3 Bad-Character Shift (Occurance Heuristic)
2.3 Definisi Kompleksitas Algoritma
2.4 Definisi Android
2.5 Penelitian yang Relevan
7
7
7
8
13
13
14
16
19
20
21
Bab 3 Analisis dan Perancangan Sistem
3.1 Analisis Sistem
3.1.1 Analisis Masalah
3.1.2 Analisis Persyaratan
3.1.2.1 Persyaratan Fungsional
3.1.2.2 Persyaratan Non-Fungsional
3.2. Pemodelan
3.2.1 Use Case Diagram
23
23
24
25
25
26
26
ix
3.2.2 Activity Diagram
3.2.3 Sequance Diagram
3.3 Pseudocode
3.3.1 Pseudocode Algoritma Knuth Morris Pratt
3.3.2 Pseudocode Algoritma Boyer Moore
3.4 Flowchart
3.5 Perancangan Antarmuka Sistem (Interface)
3.5.1 Rancangan Halaman Splash Screen
3.5.2 Rancangan Navigation Drawer
3.5.3 Rancangan Halaman Beranda
3.5.4 Rancangan Halaman Pencarian
3.5.5 Rancangan Halaman Fitur
3.5.6 Rancangan Halaman Bantuan
3.5.7 Rancangan Halaman Tentang
3.5.8 Rancangan Halaman Keluar
29
30
31
31
32
34
37
37
38
39
39
43
43
44
45
Bab 4 Implementasi dan Pengujian Sistem
4.1 Implementasi
4.1.1 Tampilan Halaman Splash Screen
4.1.2 Tampilan Navigation Drawer
4.1.3 Tampilan Halaman Beranda
4.1.4 Tampilan Halaman Pencarian
4.1.5 Tampilan Halaman Fitur
4.1.6 Tampilan Halaman Bantuan
4.1.7 Tampilan Halaman Tentang
4.1.8 Tampilan Halaman Keluar
4.2 Pengujian Sistem
4.2.1 Pengujian pencarian kata pada Kamus Bahasa Indonesia-Korea
dengan Algoritma Knuth Morris Pratt
4.2.2 Pengujian pencarian kata pada Kamus Bahasa Indonesia-Korea
dengan Algoritma Boyer Moore
4.3 Hasil Pengujian
4.4 Kompleksitas Algoritma
4.4.1 Kompleksitas Algoritma Knuth Morris Pratt
4.4.2 Kompleksitas Algoritma Boyer Moore
59
65
68
68
71
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan
5.2. Saran
76
77
Daftar Pustaka
78
47
47
48
48
49
50
51
51
52
53
53
x
DAFTAR TABEL
Nomor
Tabel
2.1
2.2
2.3
2.4
2.5
2.6
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19
4.20
4.21
4.22
4.23
4.24
4.25
4.26
4.27
4.28
Nama Tabel
Halaman
Hasil Perhitungan kmpNext[i] dan shift[i]
Hasil Perhitungan Suffix
Hasil Perhitungan bmGs
Hasil Perhitungan bmBc
Pergeseran karakter untuk bmBc
Pergeseran posisi untuk bmGs
Use Case Proses Menentukan tipe terjemahan
Use Case Proses Input kata
Use Case Proses Algoritma Knuth Morris Pratt
Use Case Proses Algoritma Boyer Moore
Pseudecode preKmp
Pseudecode KMP
Pseudecode suffix
Pseudecode bmGs
Pseudecode bmBc
Pseudecode BM
Hasil Pencarian kata “a” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “an” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “ma” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “perempuan” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “komput” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “ch” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “imnida” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “keopyuteogong” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “xy” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “samuso” dengan Algoritma Knuth Morris Pratt
Hasil Pencarian kata “a” dengan Algoritma Boyer Moore
Hasil Pencarian kata “an” dengan Algoritma Boyer Moore
Hasil Pencarian kata “ma” dengan Algoritma Boyer Moore
Hasil Pencarian kata “perempuan” dengan Algoritma Boyer Moore
Hasil Pencarian kata “komput” dengan Algoritma Boyer Moore
Hasil Pencarian kata “ch” dengan Algoritma Boyer Moore
Hasil Pencarian kata “imnida” dengan Algoritma Boyer Moore
Hasil Pencarian kata “keopyuteogong” dengan Algoritma Boyer Moore
Hasil Pencarian kata “xy” dengan Algoritma Boyer Moore
Hasil Pencarian kata “samuso” dengan Algoritma Boyer Moore
Hasil Pengujian Algoritma Knuth Morris Pratt
Hasil Pengujian Algoritma Boyer Moore
Kompleksitas fungsi preKmp Algoritma Knuth Morris Pratt
Kompleksitas fungsi KMP Algoritma Knuth Morris Pratt
Kompleksitas fungsi preBmBc Algoritma Boyer Moore
Kompleksitas fungsi suffixes Algoritma Boyer Moore
Kompleksitas fungsi preBmGs Algoritma Boyer Moore
Kompleksitas fungsi BM Algoritma Boyer Moore
9
14
15
17
18
18
27
27
28
28
31
31
32
32
33
33
53
54
54
55
55
56
56
57
57
58
59
60
60
61
61
62
62
63
63
64
65
66
68
69
71
71
72
73
xi
DAFTAR GAMBAR
Nomor
Gambar
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
3.14
3.15
13.16
13.17
13.18
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
Nama Gambar
Halaman
Diagram Ishikawa
Use Case Diagram Sistem
Activity Diagram Sistem
Sequence Diagram Sistem
Flowchart Gambaran Umum Sistem Kamus
Flowchart Algoritma Knuth Morris Pratt
Flowchart Algoritma Boyer Moore
Rancangan Splash Screen
Rancangan Navigation Drawer
Rancangan Beranda
Rancangan Pencarian
Rancangan Hasil Pencarian
Rancangan Alert dialog Terjemahan
Rancangan Alert dialog Hasil
Rancangan Fitur
Rancangan Bantuan
Rancangan Tentang
Rancangan Keluar
Halaman Splash Screen
Halaman Navigation Drawer
Halaman Beranda
Halaman Pencarian
Alert dialog Hasil
Alert dialog Terjemahan
Halaman Fitur
Halaman Bantuan
Halaman Tentang
Halaman Keluar
Perbandingan hasil Running Time Algoritma Knuth Morris
Pratt dan Algoritma Boyer Moore
Perbandingan total Running Time Algoritma Knuth Morris
Pratt dan Algoritma Boyer Moore
24
26
29
30
34
35
36
37
38
39
40
41
42
42
43
44
45
45
47
48
48
49
49
50
50
51
51
52
67
67
xii
DAFTAR LAMPIRAN
Halaman
A. Listing Program
B. Daftar Riwayat Hidup
A-1
B-1