SKRIPSI
AGUSTIN SRI INTAN SINAGA
131401035
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
AGUSTIN SRI INTAN SINAGA 131401035
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : STUDI PERBANDINGAN KINERJA TEORETIS DAN RILL ALGORITMA EXACT STRING
MATCHING SHIFT-AND DAN MORRIS-PRATT
Kategori : SKRIPSI
Nama : AGUSTIN SRI INTAN SINAGA Nomor Induk Mahasiswa : 131401035
Program Studi : SARJANA (S1) ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, April 2017
Komisi Pembimbing:
Dosen Pembimbing II Dosen Pembimbing I
Dian Rachmawati, S.Si, M.Kom. M.Andri Budiman,S.T.,M.Comp.Sc.,M.E.M. NIP 198307232009122 004 NIP. 1975 1008 2008 0110 11
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
STUDI PERBANDINGAN KINERJA TEORETIS DAN RILL ALGORITMA
EXACT STRING MATCHING SHIFT-AND
DAN MORRIS-PRATT
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 11 Februari 2017
UCAPAN TERIMA KASIH
Puji, syukur, hormat, serta kemuliaan penulis panjatkan kehadirat Allah Tritunggal yang telah memberikan kesempatan kepada penulis untuk mengerjakan dan menyelesaikan skripsi ini. Begitu banyak bantuan yang penulis dapatkan baik itu secara moral dan materi untuk membantu kelancaran penulisan tugas akhir ini. Pada kesempatan ini, penulis ingin mengucapkan terima kasih kepada :
1. Bapak Prof. Dr. Runtung Sitepu, S.H., 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 S-1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
4. Ibu Dr. Maya Silvi Lydia, M.Sc. selaku Pembimbing akademik yang telah memberikan bimbingan dan dukungan kepada penulis.
5. Bapak M. Andri Budiman, S.T., M.Comp.Sc., M.E.M. selaku Dosen Pembimbing I yang telah memberikan bimbingan dan dukungan kepada penulis.
6. Ibu Dian Rachmawati, S.Si, M.Kom. selaku Dosen Pembimbing II yang telah memberikan bimbingan dan dukungan kepada penulis.
7. Ibu Amalia, S.T., M.T. selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
9. Orangtua penulis, yaitu Bapak Wilfrid Sinaga dan Magdalena Simanjuntak untuk setiap doa yang dipanjatkan, keringat dan air mata yang harus menetes dalam perjuangan memberikan pendidikan yang baik kepada penulis, kakak dan abang penulis yaitu Lasmey Sinaga, Julkifri Sinaga, Kristina Sinaga dan Junita Sinaga, abang dan kakak ipar penulis yaitu Sumarlin Siregar, Wina Manurung, Harly Silitonga, keponakan penulis yaitu Petra Siregar, Puspa Siregar, Putri Sinaga, Grace Sinaga, Immanuel Alvin Sinaga, Philip Leo Siregar, Jeremy Silitongan, dan Aristades Silitonga, untuk setiap doa, semangat, dorongan dan pengertian yang diberikan selama penulis menyelesaikan skripsi ini dan untuk Ibunda tercinta yang telah melahirkan penulis Rosmany Simanjuntak.
10. Sahabat – sahabat terbaik penulis di IOTA, yaitu Endang Tambunan, Evi Marpaung, Hanna Manullang, Laura Hasibuan, dan Yuni Nainggolan, yang telah memberikan doa dan dukungan selama penulis menjalani masa perkuliahan dan pengerjaan skripsi.
11. Kelompok kecil CHARA CHARISSE, yaitu Erwin Sinaga, Ezra Sirait, Daniel Siregar, Exaudi Naipospos yang telah memberikan doa dan dukungan selama penulis menjalani masa perkuliahan.
12. Kakak Maya Hartina Hutagalung, Abang Muhammad Miftahul Huda, Mangasa Manullang, Komunitas Mahasiswa Kristen Ilmu Komputer, rekan-rekan Pemerintahan Mahasiswa Bidang Agama Kristen dan adik-adik serta teman-teman Fakultas Ilmu Komputer dan Teknologi Informasi 2016 yang telah memberikan semangat kepada penulis dalam penyelesaian skripsi ini.
Semoga Allah memberi kelimpahan berkat kepada semua pihak yang telah memberikan bantuan, semangat, dukungan dan perhatian kepada penulis dalam menyelesaikan skripsi ini. Semoga skripsi ini bermanfaat bagi penulis, pendidikan, masyarakat, organisasi atau negara.
Medan, 11 Februari 2017
STUDI PERBANDINGAN KINERJA TEORETIS DAN RILL ALGORITMA
EXACT STRING MATCHING SHIFT-AND
DAN MORRIS-PRATT
ABSTRAK
Algoritma adalah urutan langkah–langkah komputasi yang mengubah input menjadi output. Pseudocode adalah langkah-langkah yang mempermudah manusia untuk memahami suatu algoritma dan mengimplementasikannya. Untuk mempermudah pengguna dalam mencari pseudocose dari algoritma tertentu, dibuatlah sebuah aplikasi pencarian string berbasis desktop dengan studi kasus Algoritma-Pseudocode. Penelitian ini membandingkan kompleksitas waktu (Ө) serta running time untuk fase
preprocessing dan pencarian dari algoritma Shift-And dan Morris-Pratt yang
diimplementasikan di dalam sistem yang dibuat. Shift-And memiliki rata – rata waktu pencarian yang lebih lama dibandingkan algoritma Morris-Pratt memiliki rata – rata waktu pencarian yang lebih cepat. Pada fase preprocessing, algoritma Shift-And dan Morris-Pratt memiliki kompleksitas waktu sebesar Ө(m). Pada fase pencarian, algoritma Shift-And memiliki kompleksitas waktu sebesar Ө(n), sementara algoritma Morris-Pratt memiliki kompleksitas waktu sebesar Ө(m+n).
COMPARISON STUDY OF THEORETICAL AND REAL
PERFORMANCE OF EXACT STRING MATCHING
SHIFT-AND AND MORRIS-PRATT
ABSTRACT
The algorithm is a sequence of computational steps that transform inputs into outputs. Pseudocodes are steps that facilitate human to understand and implements. To facilitate users in finding pseudocose of certain algorithms was built a desktop search application based string with case studies Algorithm-Pseudocode . This study compares the time complexity (Ө) and running time for the preprocessing phase and the search algorithm Shift-And and Morris-Pratt are implemented in the system are made. Shift-And has the average seek time is more than Morris-Pratt algorithm has. In the preprocessing phase, Shift-And algorithm and Morris-Pratt has a time complexity of Ө (m). In the search phase, Shift-And algorithm has a time complexity of Ө (n), while Morris-Pratt
algorithm has a time complexity of Ө (m + n).
DAFTAR ISI
PERSETUJUAN ii
PERNYATAAN iii
UCAPAN TERIMA KASIH iv
ABSTRAK vi
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
BAB 2 TINJAUAN PUSTAKA
2.1 Algoritma 6
2.2 Algoritma Pencocokan String (String Matching Algorithm) 6
2.3 Algoritma Shift-And 8
2.3.1 Fase Preprocessing 8
2.3.2 Fase Pencarian 9
2.4 Algoritma Morris-Pratt 13
2.4.1 Fase Preprocessing 13
2.4.2 Fase Pencarian 14
2.5 Analisis Algoritma 17
2.6 Notasi Asimptotik 18
2.6.1 Notasi O 18
2.6.2 Notasi Ω 19
2.6.3 NotasiӨ 19
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem 21
3.1.1 Analisis Masalah 21
3.1.2 Analisis Kebutuhan 23
3.1.2.1 Kebutuhan Fungsional 23 3.1.2.2 Kebutuhan Non-Fungsional 23
3.2 Perancangan Sistem 24
3.2.1 Pemodelan Sistem 25
3.2.1.1 Use-case Diagram 26 3.2.1.2 Activity Diagram 28 3.2.1.3 Sequence Diagram 30
3.2.2 Flowchart 31
3.2.2.1 Flowchart preShift-And 31 3.2.2.2 Flowchart pre-MP 32 3.2.2.3 Flowchart Algoritma Shift-And 34 3.2.2.4 Flowchart Algoritma Morris-Pratt 36 3.2.3 Perancangan Antarmuka (Interface) 38
3.2.4 Perancangan Database 43
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Sistem 44
4.1.1 Form Beranda 44
4.1.2 Form Algoritma String Matching 46
4.1.3 Form Pseudocode 47
4.1.4 Form Tentang 48
4.1.5 Form Bantuan 49
4.1.6 Database 50
4.2 Pengujian Sistem 51
4.2.1 Pengujian Algoritma Shift-And 52 4.2.2 Pengujian Algoritma Morris-Pratt 56 4.2.3 Analisis Kompleksitas Algoritma pada Sistem 59
4.2.3.1 Analisis Kompleksitas Fase Preprocessing
Shift-And 61
4.2.3.2 Analisis Kompleksitas Fase Pencarian
Shift-And 61
4.2.3.3 Analisis Kompleksitas Fase Preprocessing
DAFTAR TABEL
Tabel 2.1 Nilai mpNext[i] untuk pattern SINAGA 14 Tabel 3.1 Dokumentasi Narrative Use-Case Algoritma Shift-And 26 Tabel 3.2 Dokumentasi Narrative Use-Case Algoritma Morris-Pratt 27 Tabel 3.3 Dokumentasi Narrative Use-Case Pergeseran bit mask 27 Tabel 3.4 Dokumentasi Narrative Use-Case Pergeseran Tabel mpNext 28
Tabel 3.5 Perancangan Database 43
Tabel 4.1 Sampel Algoritma-Pseudocode pada Database 51 Tabel 4.2 Nilai bit mask untuk Pattern ‘sort’ 53 Tabel 4.3 Nilai Pergeseran mpNext untuk Pattern‘sort’ 57
DAFTAR GAMBAR
Gambar 2.1 Pergeseran pada algoritma Morris-Pratt: v adalah batasan dari u 14
Gambar 2.2 Notasi Big-Oh 19
Gambar 2.2 Notasi Big-omega 19
Gambar 2.4 Notasi Big-theta 20
Gambar 3.1 Ishikawa Diagram Sistem 22 Gambar 3.2 Diagram ilustrasi tahapan penelitian 25 Gambar 3.3 Use-case Diagram Sistem 26 Gambar 3.4 Activity Diagram Sistem 29 Gambar 3.5 Sequence Diagram Sistem 30
Gambar 3.6 Flowchart preSA 31
Gambar 3.7 Flowchart pre-MP 33
Gambar 3.8 Flowchart Algoritma Shift-And 35 Gambar 3.9 Flowchart Algoritma Morris-Pratt 37 Gambar 3.10 Rancangan Tampilan Halaman Utama 39 Gambar 3.11 Rancangan Tampilan Halaman Tentang 40 Gambar 3.12 Rancangan Tampilan Halaman Bantuan 40 Gambar 3.13 Rancangan Tampilan Halaman Algoritma String Matching 41 Gambar 3.14 Rancangan Tampilan Halaman Pseudocode 42
Gambar 4.1 Form Beranda 45
Gambar 4.2 Form Algoritma String Matching 46
Gambar 4.3 Form Lirik Lagu 47
Gambar 4.4 Form Tentang 48
Gambar 4.5 Form Bantuan 49
Gambar 4.6 Struktur Database 50
Gambar 4.7 Database Algoritma-Pseudocode 50 Gambar 4.8 Hasil Pencarian untuk Pattern No.1 pada Tabel 4.4. 65 Gambar 4.9 Hasil Pencarian untuk Pattern No.2 pada Tabel 4.4. 65 Gambar 4.10 Hasil Pencarian untuk Pattern No.3 pada Tabel 4.4. 66 Gambar 4.11 Hasil Pencarian untuk Pattern No.4 pada Tabel 4.4. 66 Gambar 4.12 Hasil Pencarian untuk Pattern No.5 pada Tabel 4.4. 67 Gambar 4.13 Hasil Pencarian untuk Pattern No.6 pada Tabel 4.4. 67 Gambar 4.14 Hasil Pencarian untuk Pattern No.7 pada Tabel 4.4. 68 Gambar 4.15 Hasil Pencarian untuk Pattern No.8 pada Tabel 4.4. 68 Gambar 4.16 Hasil Pencarian untuk Pattern No.9 pada Tabel 4.4. 69 Gambar 4.17 Hasil Pencarian untuk Pattern No.10 pada Tabel 4.4. 69 Gambar 4.18 Perbandingan Running Time untuk Berbagai Panjang Pattern