PERBANDINGAN ALGORITMA MORRIS - PRATT DAN ALGORITMA HORSPOOL PADA APLIKASI KAMUS ISTILAH
TELEKOMUNIKASI BERBASIS ANDROID
SKRIPSI
LAURA ANGELINA HASIBUAN 131401047
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERBANDINGAN ALGORITMA MORRIS - PRATT DAN ALGORITMA HORSPOOL PADA APLIKASI KAMUS ISTILAH
TELEKOMUNIKASI BERBASIS ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
LAURA ANGELINA HASIBUAN 131401047
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN
PERSETUJUAN
Judul : PERBANDINGAN ALGORITMA MORRIS – PRATT
DAN ALGORITMA HORSPOOL PADA APLIKASI KAMUS ISTILAH TELEKOMUNIKASI BERBASIS ANDROID
Kategori : SKRIPSI
Nama : LAURA ANGELINA HASIBUAN
Nomor Induk Mahasiswa : 131401047
Program Studi : SARJANA (S-1) ILMU KOMPUTER Departemen : ILMU KOMPUTER
Fakultas : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, Juli 2017 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Herriyance, S.T., M.Kom Dr. Poltak Sihombing, M.Kom. NIP. 198010242010121002 NIP. 196203171991031001
Diketahi/disetujui oleh
Program Studi S-1 Ilmu Komputer Ketua,
PERNYATAAN
PERBANDINGAN ALGORITMA MORRIS - PRATT DAN ALGORITMA HORSPOOL PADA APLIKASI KAMUS ISTILAH
TELEKOMUNIKASI BERBASIS ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing – masing telah disebutkan sumbernya.
Medan, 12 Juni 2017
UCAPAN TERIMA KASIH
Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa yang telah memberikan rahmat dan berkat-Nya, sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
Penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar–besarnya 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 S1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembimbing I yang telah memberikan bimbingan, kritik , saran dan dukungan dalam penyempurnaan skripsi ini.
9. Sahabat penulis, IOTA (Agustin Sri Intan Sinaga, S.Kom, Yuni M.K Nainggolan, S.Kom, Evi P. Marpaung, Endang Pranata Tambunan, dan Hanna Saraswaty Manullang) yang telah banyak memberikan doa, dukungan dan semangat selama proses menyelesaikan skripsi ini.
10.Kelompok Tumbuh Bersama Chara Charisse (Evi dan Agustin) dan Hosana (Exa, Daniel, Ezra, Adit) serta PKK yaitu Erwin Sinaga yang telah mendukung dalam doa maupun semangat dalam penyelesaian skripsi ini. 11.Keluarga KMKI yang telah banyak memberikan doa dan semangat kepada
penulis dalam penyelesaian skripsi ini.
12.Teman – teman kuliah Ilmu Komputer Stambuk 2013 khususnya untuk KOM B yang telah banyak memberikan motivasi dan semangat dalam menyelesaikan skripsi ini.
13.Dan semua pihak yang telah banyak membantu yang tidak bisa disebutkan satu-persatu.
Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan kepada penulis mendapatkan pahala yang melimpah dari Tuhan Yang Maha Esa
Medan, 20 Juli 2017
ABSTRAK
Indonesia mengalami kemajuan teknologi yang cukup baik saat ini. Seiring perkembangan teknologi di Indonesia ternyata banyak munculnya istilah –istilah dalam telekomunikasi. Untuk dapat memahami istilah – istilah dalam telekomunikasi tersebut, kamus dapat dijadikan sebagai acuan. Namun, kurangnya minat membaca buku dalam masyarakat membuat kamus kurang diminati karena tidak praktis. Oleh karena itu, di zaman canggih ini perlu untuk membuat aplikasi kamus berbasis android ataupun web agar masyarakat semakin mudah memahami istilah – istilah telekomunikasi secara praktis dengan menggunakan gadget. Dalam membuat aplikasi kamus, string matching dapat diimplementasikan untuk proses pencarian katanya dan tentunya setiap algoritma string matching memiliki keefektifan masing-masing dan perlu dilakukan perbandingan algoritma untuk mengetahui algoritma yang efisien.
String matching memiliki beberapa algoritma, beberapa algoritmanya adalah
algoritma Morris- Pratt dan Horspool yang akan diimplementasikan pada aplikasi kamus tersebut. Algoritma Morris - Pratt merupakan algoritma yang terdiri dari dua fase yaitu fase preprocessing yang dilakukan fungsi pinggiran untuk menentukan jumlah langkah pergeseran pattern terbesar dengan menggunakan perbandingan sebelum pencarian string. Perbandingan karakter dilakukan dengan mencocokkan
pattern ke dalam teks yang dicari dari kiri ke kanan. Algoritma Horspool merupakan algoritma yang melakukan dan menghitung nilai pergeseran bad-character dengan melihat karakter paling kanan pada window. Hasil dari penelitian ini adalah algoritma Morris-Pratt lebih efisien dari algoritma Horspool dan aplikasi dapat berjalan dengan baik. Pada penelitian ini dapat diketahui bahwa saat proses pencarian, total rata-rata
running time untuk algoritma Morris - Pratt adalah 46,6 ms dan algoritma Horspool adalah 50,5 ms.
COMPARISON OF MORRIS-PRATT ALGORITHM AND HORSPOOL ALGORITHM ON TERM OF TELECOMMUNICATION
ANDROID BASED DICTIONARY APPLICATION
ABSTRACT
Indonesia has a good progress on technology today. Along with the development of technology in Indonesia, there are many emergence of the term in telecommunication. In order to understand the terms in the telecommunication, the dictionary may serve as a reference. However, the lack of interest in reading books in society makes the dictionary less desirable because it is not practical. Therefore, in advanced times it is necessary to create a dictionary application based on android or web so that people more easily understand the terms telecommunication terms practically by using gadgets. In creating a dictionary application, string matching can be implemented for the search process and of course, each string matching algorithm has its own effectiveness and needs to be done comparison algorithm to find efficient algorithm. String matching has several algorithms, some algorithms are Morris-Pratt and Horspool algorithms that will be implemented in the dictionary application. Morris - Pratt algorithm is an algorithm consisting of two phases preprocessing phase by peripheral function to determine the largest number of step shifting pattern by using comparison before string search. Character comparison is done by matching the pattern into the text searched from left to right. Horspool algorithm is an algorithm that performs and calculates the value of bad-character shift by looking at the rightmost character in the window. The result of this research is the Morris-Pratt algorithm is more efficient than Horspool algorithm and the application can run well. In this study it can be seen that during the search process, the total running time for the Morris - Pratt algorithm is 46.6 ms and the Horspool algorithm is 50.5 ms.
DAFTAR ISI
Daftar Lampiran xii
Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metode Penelitian 4
1.7 Sistematika Penelitian 5
Bab 2 Landasan Teori
2.1 Algoritma 6
2.2 Android 6
2.3 Pencocokan String (String Matching) 7
2.4 Algoritma Morris-Pratt 8
2.4.1 Fase Preprocessing 8
2.4.2 Fase Pencarian 8
2.5 Algoritma Horspool 9
2.5.1 Pencarian Dengan Algoritma Horspool 9
2.5.2 Tahap Pencarian 10
2.6 Notasi Asimptotik 11
2.6.1 Notasi O 11
2.6.2 Notasi Ω 11
2.7 Penelitian yang Relevan 12 Bab 3 Analisis dan Perancangan
3.1 Analisis Sistem 13
3.1.1 Analisis Masalah 13
3.1.2 Analisis Kebutuhan 14
3.1.3 Analisis Proses 16
3.2 Perancangan Sistem 16
3.2.1 General Arsitektur Perancangan Sistem 17
3.2.2 Use – Case Diagram 19
3.2.3 Activiy Diagram 22
3.2.4 Sequence Diagram 22
3.2.5 Pseudocode 23
3.2.6 Diagram Alir (Flowchart) 26
3.2.7 Perancangan Antarmuka (Interface) 30 Bab 4 Implementasi dan Pengujian Sistem
4.1 Implementasi Sistem 34
4.1.1 Antarmuka Utama 34
4.1.2 Antarmuka Hasil Pencarian 36
4.1.3 Antarmuka Tentang (About) 37
4.1.4 Antarmuka Bantuan 38
4.2 Pengujian Sistem 39
4.2.1 Pengujian Pencarian Kata dengan Algoritma Morris-Pratt 39 4.2.2 Pengujian Pencarian Kata dengan Algoritma Horspool 44
4.2 Hasil Pengujian Sistem 48
DAFTAR TABEL
Nomor Tabel
Nama Tabel Halaman
3.1
Tabel skenario Use-case memilih algoritma pencarian Tabel skenario Use-case masukkan kata
Nilai mpNext[i] untuk pattern HASIBUAN
Pengujian sistem pencocokan string dengan Algoritma Morris-Pratt
Bad Match Praproses Inisialisasi awal bad-match
Pembuatan bad-match
Iterasi algoritma Horspool pertama Iterasi algoritma Horspool kedua
21
4.8 Pengujian sistem pencocokan string dengan algoritma Horspool 46
4.9 Hasil pengujian algoritma Morris-Pratt 49
4.10 Hasil pengujian algoritma Horspool 49
4.11 Hasil pengujian kata terpanjang 50
4.12 Hasil pengujian kata terpendek 50
4.13 Kompleksitas algoritma Morris-Pratt 53
4.14 Kompleksitas fungsi fase pencarian algortima Morris-Pratt 54 4.15 Kompleksitas funsi fase preprocessing algoritma Horspool 55 4.16 Kompleksitas fungsi pencarian algoritma Horspool 56
DAFTAR GAMBAR
Nomor Gambar
Nama Gambar Halaman
2.1
3.2 General Arsitektur Perancangan Sistem 17
3.3 Use-case Diagram 20
3.4 Activity Diagram 22
3.5 Sequence Diagram 23
3.6 Pseudocode Fase Pencarian Algoritma Morris-Pratt 24
3.7 Pseudocode Fase Pencarian Algoritma Horspool 25
3.8 Flowchart Gambaran Umum Sistem 26
3.9 Flowchart Algoritma Morris-Pratt 27
3.10 Flowchart Algoritma Horspool 28
3.11 Flowchart Sisem Pencarian Istilah dengan Algoritma Horspool 29
3.12 Halaman Utama Aplikasi Kamus 30
3.13 Antarmuka Hasil Pencarian 31
3.14 Halaman About 34
3.15 Menu Help 33
4.1 Tab Morris- Pratt 35
4.2 Tab Horspool 35
4.3 Antarmuka hasil pencarian ditemukan 36
4.4 Hasil pencarian tidak ditemukan 37
DAFTAR LAMPIRAN
Lampiran 1 Listing Program A-1
Lampiran 2 Curriculum Vitae B-1