Studi Perbandingan Algoritma Brute Force, Boyer Moore dan Deterministic Finite Automata dalam Pencarian String pada Dokumen.

(1)

iv Universitas Kristen Maranatha

ABSTRAK

Tugas akhir ini membahas mengenai perbandingan pencarian string dalam dokumen dengan menggunakan metode algoritma brute force, Boyer Moore dan DFA (Deterministic Finite Automata). Penyelesaian masalah dilakukan dengan perbandingan pencarian kata berdasarkan ukuran file, ukuran dan ukuran keyword yang berbeda. Dengan melakukan ujicoba tersebut maka dapat diketahui hasil dari setiap algoritma yang digunakan. Untuk ukuran file besar dengan teks yang panjang maka algoritma Boyer Moore masih efektif dibandingkan dengan brute force dan DFA, sedangkan untuk teks yang pendek algoritma brute force, Boyer Moore, dan DFA dinyatakan relatif sama.


(2)

v Universitas Kristen Maranatha

ABSTRACT

This Final Project discusses about a comparison of string searching inside a document using brute force, Boyer Moore, and DFA algorithm methods. The problem solving is done using comparison of string searching based on the size of file and keyword. With this experiment, the result of each algorithm used can be found. For a big size file with a long text, Boyer Moore algorithm can still be effective compared to brute force and DFA. While for a short text, brute force, Boyer Moore, and DFA algorithm reveal the same relative result.


(3)

vi Universitas Kristen Maranatha

DAFTAR ISI

KATA PENGANTAR ... i

ABSTRACT ... v

DAFTAR ISI ... vi

DAFTAR TABEL ... vii

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 1

1.3 Tujuan ... 2

1.4 Batasan Masalah... 2

1.5 Sistematika Pembahasan ... 3

BAB II LANDASAN TEORI ... 5

2.1 Kompleksitas Algoritma...5

2.2 Pencarian String ... 6

2.3 Algoritma Boyer-Moore ... 8

2.3.1 Kompleksitas waktu Boyer Moore... 9

2.3.2 Langkah-langkah algoritma Boyer-Moore : ... 8

2.4 DFA (Deterministic Finite Automata)... 15

2.4.1 Kompleksitas waktu DFA ... 16

2.4.2 Diagram dan Tabel Transisi DFA ... 16

2.5 Java ... 20

2.5.1 Kelebihan Java ... 20

2.5.2 Kekurangan Java ... 20

2.6 Paket Java ... 23

2.6.1 Paket java.awt ... 23

2.6.1.1 Keterangan Paket java.awt ... 23

2.6.2 Paket java.io ... 23

2.6.2.1 Keterangan paket java.io ... 23

2.6.3 Paket java.lang ... 24

2.6.3.1 Keterangan Paket java.lang ... 24

2.6.4 Paket java.util... 25

2.6.4.1 Keterangan Paket java.util ... 25

2.7 Library Java Aplikasi Pencarian String dalam Dokumen ... 25

2.7.1 App Framework ... 25

2.7.2 DOM4J ... 25

2.7.3 iText ... 26

2.7.4 Apache POI ... 26

2.7.5 XmlBeans ... 27

BAB III ANALISIS DAN DESAIN ... 28

3.1 Analisis ... 28

3.2 Gambaran Keseluruhan ... 30

3.2.1 Persyaratan Antarmuka Eksternal ... 30


(4)

vii Universitas Kristen Maranatha

3.2.3 Antarmuka Perangkat Keras ... 30

3.2.4 Antarmuka Perangkat Lunak... 31

3.2.5 Fitur-Fitur Produk Perangkat Lunak ... 31

3.2.5.1 Melihat file doc, docx dan pdf dalam folder ... 31

3.2.5.2 Melakukan suatu pencarian kata kunci berupa string dalam dokumen dengan menggunakan algoritma Brute Force ... 32

3.2.5.3 Melakukan suatu pencarian kata kunci berupa string dalam dokumen dengan menggunakan algoritma Boyer Moore ... 32

3.2.5.4 Melakukan suatu pencarian kata kunci berupa string dalam dokumen dengan menggunakan algoritma DFA ... 33

3.2.5.5 Membuka dokumen yang dipilih user ... 34

3.2.5.6 Menampilkan waktu proses dari setiap algoritma ... 34

3.3 Desain Perangkat Lunak ... 35

3.3.1 Pemodelan Perangkat Lunak ... 35

3.3.1.1 Diagram Use Case ... 36

3.3.1.2 Diagram Activity ... 41

3.3.1.2.2 Pencarian Keyword dengan doc, docx dan pdf dalam algoritma Brute Force... ... 42

3.3.1.2.3 Pencarian Keyword dengan doc, docx dan pdf dalam algoritma Boyer Moore... .... 43

3.3.1.2.4 Pencarian Keyword dengan doc, docx dan pdf dalam algoritma DFA 44 3.4 Desain UI ... 45

3. 5 Studi Kasus ... 45

3.5.1 DFA ... 46

3.5.2 Boyer Moore ... 53

3.5.3 Brute Force ... 58

BAB IV PENGEMBANGAN PERANGKAT LUNAK ... 62

4.1 Implementasi Class ... 62

4.1.1 Class Brute Force ... 62

4.1.2 Class Boyer Moore ... 63

4.1.3 Class DFA ... 65

4.1.4 Class TA1 View ... 66

4.2 Tampilan Aplikasi ... 70

BAB V TESTING DAN EVALUASI SISTEM ... 74

5.1 Rencana Pengujian ... 74

5.1.1 Test Case Memilih Folder Dokumen ... 74

5.1.2 Test Case Melakukan Pencarian String Dalam Dokumen ... 75

5.1.3 Test Case Membuka Dokumen yang Dipilih ... 76

5.2 Pelaksanaan Pengujian ... 76

5.2.1 Hasil Test Case Memilih Folder Dokumen ... 77

5.2.2 Hasil Test Case Melakukan Pencarian String Dalam Dokumen ... 77

5.2.3 Hasil Test Case Membuka Dokumen yang Dipilih... 78

5.2.4 Uji Coba Perbandingan Algoritma ... 79

BAB VI KESIMPULAN DAN SARAN ... 91


(5)

viii Universitas Kristen Maranatha 6.2 Saran ... 91 DAFTAR PUSTAKA ... 92


(6)

ix Universitas Kristen Maranatha

DAFTAR GAMBAR

Gambar 2. 1 Gambar diagram state dari algoritma DFA ... 18

Gambar 2. 2 Gambar contoh diagram state dari algoritma DFA ... 18

Gambar 3. 1 Use Case Pencarian String dalam Dokumen ... 36

Gambar 3. 2 Diagram activity cari file doc, docx dan pdf dalam folder ... 41

Gambar 3. 3 Diagram activity Pencarian Keyword dengan algoritma Brute Force ... 42

Gambar 3. 4 Diagram activity Pencarian Keyword dengan algoritma Boyer Moore . 43 Gambar 3. 5 Diagram activity Pencarian Keyword dengan algoritma DFA ... 44

Gambar 3. 6 Antarmuka Aplikasi ... 45

Gambar 4. 1 Tampilan Awal Aplikasi Pencarian String dalam Dokumen ... 70

Gambar 4. 2 Memilih Dokumen ... 70

Gambar 4. 3 Input Keyword... 71

Gambar 4. 4 Hasil Pencarian String dalam Dokumen ... 71

Gambar 4. 5 Memilih Dokumen yang Akan Ditampilkan ... 72


(7)

x Universitas Kristen Maranatha

DAFTAR TABEL

Tabel 2. 1 Tabel Occurance Heuristic (Harlili, 2001)... ...12

Tabel 2. 2 Contoh tabel Occurance Heuristic 1...12

Tabel 2. 3 Contoh tabel Occurance Heuristic 2...13

Tabel 2. 4 Tabel Match Heuristic (Harlili, 2001)...13

Tabel 2. 5 Contoh tabel Match Heuristic 1... 13

Tabel 2. 6 Contoh tabel Match Heuristic 2... 14

Tabel 2. 7 Contoh tabel Match Heuristic 3... 14

Tabel 2. 8 Contoh tabel Match Heuristic 4... 14

Tabel 2. 9 Contoh tabel Match Heuristic 5... 15

Tabel 2. 10 Tabel Transisi DFA... 17

Tabel 2. 11 Contoh DFA... ...18

Tabel 3. 1 Deskripsi lihat file doc, docx dan pdf dalam folder ... 37

Tabel 3. 2 Deskripsi Pencarian Keyword dalam doc, docx dan pdf dengan algoritma Brute Force ... 38

Tabel 3. 3 Deskripsi Pencarian Keyword dalam doc, docx dan pdf dengan algoritma Boyer Moore ... 38

Tabel 3. 4 Deskripsi Pencarian Keyword dalam doc, docx dan pdf dengan algoritma DFA ... 39

Tabel 3. 5 Deskripsi Open dokumen yang dipilih user ... 40

Tabel 3. 6 Deskripsi Menampilkan waktu proses ... 40

Tabel 3. 7 Tabel transisi DFA (“nanas”) ... 46

Tabel 3. 8 Studi kasus DFA ... 47

Tabel 3. 9 Tabel OH dari kata nanas ... 53

Tabel 3. 10 Studi kasus Boyer Moore ... 53

Tabel 3. 11 Studi kasus Brute Force ... 58

Tabel 5. 1 Test Case Memilih Folder Dokumen ... 74

Tabel 5. 2 Test Case Melakukan Pencarian String Dalam Dokumen ... 75

Tabel 5. 3 Test Case Membuka Dokumen yang Dipilih ... 76

Tabel 5. 4 Hasil Test Case Memilih Folder Dokumen... 76

Tabel 5. 5 Hasil Test Case Melakukan Pencarian String Dalam Dokumen... 77

Tabel 5. 6 Hasil Test case Membuka Dokumen yang Dipilih ... 78

Tabel 5. 7 Uji Coba Perbandingan Algoritma (1 kata) ... 79

Tabel 5. 8 Uji Coba Perbandingan Algoritma (2 kata) ... 81

Tabel 5. 9 Uji Coba Perbandingan Algoritma (1 abjad (a)) ... 83

Tabel 5. 10 Uji Coba Perbandingan Algoritma (2 abjad)... 85

Tabel 5. 11 Uji Coba Perbandingan Algoritma (1 abjad (n))... 87


(8)

xi Universitas Kristen Maranatha

DAFTAR SIMBOL

Simbol Keterangan

user

UseCase1 proses

relasi antara user dan proses

Kondisi awal

Pilihan alur Kondisi Akhir


(9)

1

Universitas Kristen Maranatha

BAB I

PENDAHULUAN

1.1 Latar Belakang

Pencarian dokumen dengan menggunakan teknologi digital masih sedikit digunakan dalam kehidupan sehari – hari. Satu hal keuntungan yang didapat dengan menggunakan teknologi digital adalah kecepatan pencarian string dalam dokumen.

Algoritma pencarian kata kunci berupa string atau disebut juga pencocokan string dalam dokumen adalah algoritma untuk melakukan pencarian semua kemunculan kata kunci berupa string pendek. Pencocokan kata kunci berupa string merupakan permasalahan paling sederhana dari semua permasalahan kata kunci berupa string lainnya, dan dianggap sebagai bagian dari pemrosesan teks .

Dalam tugas akhir ini akan diteliti mengenai pencarian string dalam dokumen, yang bertujuan untuk mengetahui kecepatan dalam pencarian kata kunci berupa string dalam dokumen baik menggunakan algoritma Brute Force, Boyer-Moore atau DFA (Deterministic Finite Automata) .

1.2 Rumusan Masalah

Berdasarkan latar belakang tersebut , maka dapat dirumuskan permasalahan sebagai berikut :

1. Bagaimana penerapan algoritma Brute Force dalam pencarian string ? 2. Bagaimana penerapan algoritma Boyer Moore dalam pencarian string ? 3. Bagaimana penerapan algoritma DFA (Deterministic Finite Automata)


(10)

2

Universitas Kristen Maranatha 4. Bagaimana menerapkan ketiga algoritma Brute Force dan Boyer-Moore

serta DFA (Deterministic Finite Automata) dalam pencarian string dalam dokumen?

5. Bagaimana membandingkan kecepatan ketiga algoritma Brute Force, Boyer-Moore atau DFA (Deterministic Finite Automata) dalam pencarian string pada dokumen?

1.3 Tujuan

Adapun tujuan dari aplikasi ini yaitu:

1. Menerapkan cara kerja dari algoritma Boyer Moore dalam pencarian kata kunci berupa string.

2. Menerapkan cara kerja algoritma DFA dalam pencarian kata kunci berupa string.

3. Menerapkan algoritma Boyer Moore dan DFA (Deterministic Finitie Automata) dalam pencarian string dalam dokumen.

4. Membandingkan waktu proses dari setiap algoritma Brute Force, Boyer Moore, dan DFA dalam pencarian string.

1.4 Batasan Masalah

Berikut ini merupakan batasan masalah dari aplikasi :

1. Melakukan pencarian string dalam dokumen yang berupa plain text. 2. Melakukan pencarian kata kunci (string) berupa file Doc, Docx, dan PDF. 3. Melakukan pencarian kata kunci berupa string dengan menuliskan


(11)

3

Universitas Kristen Maranatha 1.5 Sistematika Pembahasan

Berikut adalah sistematika dalam penyajian laporan: BAB I PENDAHULUAN

Bab ini berisi tentang pendahuluan yang meliputi latar belakang, rumusan masalah, definisi, akronim, singkatan, dan sistematika pembahasan dan tentang gambaran keseluruhan produk meliputi perspektif produk, fungsi produk, karakteristik pengguna, batasan-batasan, asumsi dan ketergantungan, dan penundaan persyaratan.

BAB II LANDASAN TEORI

Bab ini berisi tentang persyaratan antarmuka eksternal meliputi antarmuka dengan pengguna, antarmuka perangka lunak dan fitur produk perangkat lunak.

BAB III ANALISIS DAN DESAIN

Bab ini berisi tentang pendahuluan meliputi identifikasi dan overview sistem, keputusan desain perangkat lunak secara keseluruhan, dan desain arsitektur perangkat lunak meliputi komponen perangkat lunak, konsep eksekusi, desain antar muka. BAB IV PENGEMBANGAN PERANGKAT LUNAK

Bab ini berisi tentang implementasi class dan hasil yang telah dicapai oleh perancang aplikasi , dan cara penggunaan aplikasi.

BAB V TESTING DAN EVALUASI SISTEM

Bab ini berisi mengenai pengujian dan analisa terhadap masing – masing fungsi dan aplikasi. Laporan dari pengujian tiap fungsi yang dibuat dalam metode black box testing.


(12)

4

Universitas Kristen Maranatha BAB VI KESIMPULAN DAN SARAN

a) Kesimpulan

Pengetahuan yang didapat penulis setelah mengerjakan karya ilmiah ini, baik berupa penegasa/pembuktian atau pengetahuan baru.

b) Saran


(13)

Universitas Kristen Maranatha 89

BAB VI

KESIMPULAN DAN SARAN

6.1 Kesimpulan

Berdasarkan hasil pengamatan dalam melakukan penelitian maka dapat ditarik kesimpulan sebagai berikut :

1. Algoritma brute force sudah berhasil diterapkan dalam pencarian kata kunci berupa string pada teks.

2. Algoritma Boyer Moore sudah berhasil diterapkan dalam pencarian kata kunci berupa string pada teks.

3. Algoritma DFA sudah berhasil diterapkan dalam pencarian kata kunci berupa string pada teks.

4. Algoritma Boyer Moore dan DFA sudah berhasil diterapkan dan dibandingkan dalam proses pencarian string dalam dokumen.

5. Program yang dikembangkan sudah berhasil mencatatkan waktu yang diperlukan oleh algoritma Boyer Moore dan DFA dalam melakukan pencarian string pada dokumen.

6. Algoritma Boyer Moore bekerja lebih cepat dibandingkan algoritma DFA untuk keyword yang berupa satu kata atau lebih.

7. Untuk keyword yang berupa satu atau dua huruf, terjadi anomali dalam proses pencarian dimana waktu yang dibutuhkan oleh algoritma Boyer Moore dan DFA bisa lebih lama dibandingkan waktu yang dihasilkan algoritma brute force.

6.2 Saran

Adapun saran untuk pengembangan karya tulis ini adalah sebagai berikut : 1. Pengembangan antarmuka aplikasi agar lebih menarik dan mudah digunakan


(14)

90

Universitas Kristen Maranatha 2. Penambahan fitur statistik waktu pencarian pada setiap algoritma yang

digunakan dengan grafik sehingga memudahkan dalam menganalisa data. 3. Aplikasi dapat digunakan untuk pencarian dokumen yang ada di dalam sebuah


(15)

Universitas Kristen Maranatha 92

DAFTAR PUSTAKA

Hariyanto, Bambang, 2007, Esensi-Esensi bahasa Pemograman Java, Informatika Bandung, Bandung.

Hariyanto, Bambang, 2004, Teori Bahasa, Otomata, dan Komputasi serta terapannya, Informatika Bandung, Bandung.

Hopcroft J.E, dan J.D Ullman, 1979, Introduction to Automata Theory, Languages and Computation, Addison-Wesley Publishing Company, Reading, Massachusetts. Harlili. Hanye S. Dulimarta. Rinaldi Munir. 2001,Teori Bahasa Formal, Departemen Teknik Informatika ITB, Bandung.

Kelley, 1999, Otomata dan Bahasa- Bahasa Formal, Pranhallindo.

Munir. Rinaldi, 2005, Kompleksitas Algoritma (Ruang dan Waktu), www. Informatika.org/~rinaldi/.../Kompleksita%20Algoritma.ppt, 19 Januari 2012.


(1)

2

Universitas Kristen Maranatha

4. Bagaimana menerapkan ketiga algoritma Brute Force dan Boyer-Moore serta DFA (Deterministic Finite Automata) dalam pencarian string dalam dokumen?

5. Bagaimana membandingkan kecepatan ketiga algoritma Brute Force, Boyer-Moore atau DFA (Deterministic Finite Automata) dalam pencarian

string pada dokumen?

1.3 Tujuan

Adapun tujuan dari aplikasi ini yaitu:

1. Menerapkan cara kerja dari algoritma Boyer Moore dalam pencarian kata kunci berupa string.

2. Menerapkan cara kerja algoritma DFA dalam pencarian kata kunci berupa string.

3. Menerapkan algoritma Boyer Moore dan DFA (Deterministic Finitie Automata) dalam pencarian string dalam dokumen.

4. Membandingkan waktu proses dari setiap algoritma Brute Force, Boyer Moore, dan DFA dalam pencarian string.

1.4 Batasan Masalah

Berikut ini merupakan batasan masalah dari aplikasi :

1. Melakukan pencarian string dalam dokumen yang berupa plain text. 2. Melakukan pencarian kata kunci (string) berupa file Doc, Docx, dan PDF. 3. Melakukan pencarian kata kunci berupa string dengan menuliskan


(2)

Universitas Kristen Maranatha

1.5 Sistematika Pembahasan

Berikut adalah sistematika dalam penyajian laporan: BAB I PENDAHULUAN

Bab ini berisi tentang pendahuluan yang meliputi latar belakang, rumusan masalah, definisi, akronim, singkatan, dan sistematika pembahasan dan tentang gambaran keseluruhan produk meliputi perspektif produk, fungsi produk, karakteristik pengguna, batasan-batasan, asumsi dan ketergantungan, dan penundaan persyaratan.

BAB II LANDASAN TEORI

Bab ini berisi tentang persyaratan antarmuka eksternal meliputi antarmuka dengan pengguna, antarmuka perangka lunak dan fitur produk perangkat lunak.

BAB III ANALISIS DAN DESAIN

Bab ini berisi tentang pendahuluan meliputi identifikasi dan overview sistem, keputusan desain perangkat lunak secara keseluruhan, dan desain arsitektur perangkat lunak meliputi komponen perangkat lunak, konsep eksekusi, desain antar muka. BAB IV PENGEMBANGAN PERANGKAT LUNAK

Bab ini berisi tentang implementasi class dan hasil yang telah dicapai oleh perancang aplikasi , dan cara penggunaan aplikasi.

BAB V TESTING DAN EVALUASI SISTEM

Bab ini berisi mengenai pengujian dan analisa terhadap masing – masing fungsi dan aplikasi. Laporan dari pengujian tiap fungsi yang dibuat dalam metode black box testing.


(3)

4

Universitas Kristen Maranatha

BAB VI KESIMPULAN DAN SARAN a) Kesimpulan

Pengetahuan yang didapat penulis setelah mengerjakan karya ilmiah ini, baik berupa penegasa/pembuktian atau pengetahuan baru.

b) Saran


(4)

Universitas Kristen Maranatha

89

BAB VI

KESIMPULAN DAN SARAN

6.1 Kesimpulan

Berdasarkan hasil pengamatan dalam melakukan penelitian maka dapat ditarik kesimpulan sebagai berikut :

1. Algoritma brute force sudah berhasil diterapkan dalam pencarian kata kunci berupa string pada teks.

2. Algoritma Boyer Moore sudah berhasil diterapkan dalam pencarian kata kunci berupa string pada teks.

3. Algoritma DFA sudah berhasil diterapkan dalam pencarian kata kunci berupa string pada teks.

4. Algoritma Boyer Moore dan DFA sudah berhasil diterapkan dan dibandingkan dalam proses pencarian string dalam dokumen.

5. Program yang dikembangkan sudah berhasil mencatatkan waktu yang diperlukan oleh algoritma Boyer Moore dan DFA dalam melakukan pencarian string pada dokumen.

6. Algoritma Boyer Moore bekerja lebih cepat dibandingkan algoritma DFA untuk keyword yang berupa satu kata atau lebih.

7. Untuk keyword yang berupa satu atau dua huruf, terjadi anomali dalam proses pencarian dimana waktu yang dibutuhkan oleh algoritma Boyer Moore dan DFA bisa lebih lama dibandingkan waktu yang dihasilkan algoritma brute force.

6.2 Saran

Adapun saran untuk pengembangan karya tulis ini adalah sebagai berikut : 1. Pengembangan antarmuka aplikasi agar lebih menarik dan mudah digunakan


(5)

90

Universitas Kristen Maranatha

2. Penambahan fitur statistik waktu pencarian pada setiap algoritma yang digunakan dengan grafik sehingga memudahkan dalam menganalisa data. 3. Aplikasi dapat digunakan untuk pencarian dokumen yang ada di dalam sebuah


(6)

Universitas Kristen Maranatha

92

Hariyanto, Bambang, 2007, Esensi-Esensi bahasa Pemograman Java, Informatika Bandung, Bandung.

Hariyanto, Bambang, 2004, Teori Bahasa, Otomata, dan Komputasi serta terapannya, Informatika Bandung, Bandung.

Hopcroft J.E, dan J.D Ullman, 1979, Introduction to Automata Theory, Languages and Computation, Addison-Wesley Publishing Company, Reading, Massachusetts. Harlili. Hanye S. Dulimarta. Rinaldi Munir. 2001,Teori Bahasa Formal, Departemen Teknik Informatika ITB, Bandung.

Kelley, 1999, Otomata dan Bahasa- Bahasa Formal, Pranhallindo.

Munir. Rinaldi, 2005, Kompleksitas Algoritma (Ruang dan Waktu), www. Informatika.org/~rinaldi/.../Kompleksita%20Algoritma.ppt, 19 Januari 2012.