IMPLEMENTASI ALGORITMA KNUTH-MORRIS-PRATH
STRING MATCHING UNTUK MENCARI KATA ATAU
ISTILAH PADA KAMUS KOMPUTER
BERBASIS ANDROID.
SKRIPSI
INDAH MUSTIKA TANJUNG
121421004
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
IMPLEMENTASI ALGORITMA KNUTH-MORRIS-PRATH STRING MATCHING UNTUK MENCARI KATA ATAU ISTILAH PADA KAMUS KOMPUTER
BERBASIS ANDROID.
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
Oleh :
INDAH MUSTIKA TANJUNG 121421099
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA MEDAN
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA KNUTH-MORRIS
PRATT STRING MATCHING UNTUK MENCARI
KATA ATAU ISTILAH PADA KAMUS KOMPUTER BERBASIS ANDROID.
Kategori : SKRIPSI
Nama : INDAH MUSTIKA TANJUNG
Nomor Induk Mahasiswa : 121421004
Program Studi : EKSTENSI S1 ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, Januari 2015 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Ade Candra, ST, M.Kom Drs. Agus Salim Harahap, M.Si NIP. 19790904 200912 1 002 NIP. 19540828 198103 1 004
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
IMPLEMENTASI ALGORITMA KNUTH-MORRIS PRATH STRING
MATCHING UNTUK MENCARI KATA ATAU ISTILAH PADA
KAMUS KOMPUTER 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,
PENGHARGAAN
Alhamdulillah segala puji dan syukur atas nikmat yang luas kepada Allah Yang Maha Esa sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih Penulis sampaikan kepada semua pihak yang telah membantu Penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung, teristimewa orangtua penulis yang sangat mengasihi dan menyayangi penulis dan memberi dukungan tiada henti. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada:
1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis 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 sebagai Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skrisi ini .
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
5. Bapak Drs. Agus Salim Harahap, M.Si selaku Dosen Pembimbing I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
6. Bapak Ade Candra, ST, M.Kom selaku Dosen Pembimbing II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
8. Semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
9. Keluarga besar penulis, Orang tua yang senantiasa mendoakan dan mendukung serta adik- adik tersayang Habib, Putri, Pipin, Tita
10. Teman-teman seperjuangan mahasiswa Ekstensi S1-Ilmu Komputer stambuk 2012, teman-teman D3 Mipa teruntuk M. Iqbal dalam diskusi pembuatan program. Dan adik-adik junior yang telah memberikan semangat dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini.
11. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.
Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.
Medan, Februari 2015 Penulis,
( Indah Mustika Tanjung )
IMPLEMENTASI ALGORITMA KNUTH-MORRIS-PRATH STRING
MATCHING UNTUK MENCARI KATA ATAU ISTILAH PADA
ABSTRAK
Kamus adalah buku acuan yang digunakan manusia untuk menerjemahkan suatu bahasa/istilah asing. Pada umumnya disusun menurut abjad berikut keterangan tentang maknanya, pemakaiannya, atau terjemahannya. Demikian halnya dengan kamus istilah komputer sangat diperlukan dalam menerjemahkan istilah komputer. Begitu banyak metode algoritma yang dapat digunakan dalam pembuatan aplikasi kamus, salah satunya dengan menggunakan algoritma Knuth Morris Pratt (KMP). Dengan algoritma ini, setiap teks yang akan diterjemahkan akan ditinjau kata-kata untuk kemudian dicari kecocokannya dengan kata padanan dalam istilah yang diinginkan. Dalam kajian ini penulis akan melakukan analisa sekaligus uji coba terhadap penerapan algoritma Knuth Morris Pratt ini dalam aplikasi kamus istilah komputer pada smartphone Android. Didapatkan hasil dengan menggunakan Algoritma Knuth Morris Pratt bahwa aplikasi ini dapat membantu pengguna gadget untuk mencari kata atau istilah pada kamus komputer berbasis Android.
Kata-kata Kunci : Algoritma, String Matching, Knuth-Morris-Pratt (KMP), Kamus, Android.
TO FIND THE WORD OR TERM ON ANDROID BASED COMPUTER DICTIONARY
ABSTRACT
Dictionary is a reference book that we used to translate a language / foreign terms. Generally, the following is alphabetical with description of its meaning, its use, or its translation. Similarly, the dictionary of computer terms is needed in translating the computer term. So many methods of algorithms that can be used in the making of an dictionary application, one of them by using the algorithm of Knuth Morris Pratt (KMP). With this algorithm, any text that we translated will be reviewed by words then searched for compatibility with the word equivalent in terms desired. In this study the authors will perform an analysis and a tests on the application of this Knuth Morris Pratt algorithm in computer terms dictionary app on Android smartphone. Is obtained by using the algorithm of Knuth Morris Pratt that this application can help users gadget to search for words or terms in the dictionary of computer -based Android .
DAFTAR ISI
1.6. Metodologi Penelitian 4
1.7. Sistematika Penulisan 5
BAB 2. TINJAUAN PUSTAKA 6
2.1. Definisi Algoritma 6
2.1.1. Algoritma 6
2.2. String 7
2.2.1. String Matching 7
2.2.2. Algoritma Knuth Morris Pratt String Matching 8
2.2.3. Fungsi Pinggiran 8
2.2.4. Fungsi Pembanding String 10
2.2.5. Klasifikasi Pencocokan String 12
2.3. Mobile Device 14
2.4. Android 15
2.4.1. Sejarah Android 15
2.4.2. Pengertian Android 16
2.4.3. Versi Android 16
2.4.4. Arsitektur Android 18
2.5. Database 19
2.5.1. Menggunakan Format CSV 19
2.6. Kamus 21
BAB 3. ANALISIS DAN PERANCANGAN SISTEM 22
3.1. Analisis System 22
3.1.1. Analisis kebutuhan Sistem 23
3.2. Analisis Kebutuhan Sistem 23
3.2.2. Kebutuhan Non-Fungsioanal 24
3.3. Pemodelan Sistem 24
3.3.1. Use-Case Diagram 24
3.3.2. Activity Diagram 25
3.3.3. Sequence Diagram 31
3.4. Perancangan Sistem 32
3.4.1. Flowchart System 33
3.4.2. Flowchart Algoritma Knuth Moriis Pratt 34 3.5. Perancangan Antarmuka Sistem (Interface) 36
3.5.1. Halaman Utama 36
3.5.2. Rancangan Halaman Cari Kata 38
3.5.3. Rancangan Halaman Tambah Kata 40
3.5.4. Rancangan Halaman Tentang 41
3.5.5. Rancangan Halaman Bantuan 42
BAB 4. IMPLEMENTASI DAN PENGUJIAN 43
4.1. Pengujian Sistem 43
4.2. Implementasi Sistem 54
4.2.1. Halaman Utama 55
4.2.2. Halaman Cari kata 55
4.2.3. Halaman Tambah Kata 57
4.2.4. Dataset .csv 58
4.2.5. Halaman Tentang 60
4.2.6. Halaman Bantuan 62
Kompleksitas Waktu Algoritma PROMETHEE 86
BAB 5. KESIMPULAN DAN SARAN
5.1. Kesimpulan 64
5.2. Saran 64
DAFTAR TABEL
halaman
Tabel 2.1. Fungsi Pinggiran Untuk Pattern abcabd 8 Tabel 2.2 Pengklasifikasian dalam Use Case Diagram 21 Tabel 2.3. Tabel Relasi-relasi dalam Use Case Diagram 21 Tabel 3.1. Keterangan Bagian-Bagian Rancangan Halaman Utama 39 Tabel 3.2. Keterangan Bagian-Bagian Rancangan Pencarian Kata 41 Tabel 3.3. Keterangan Bagian-Bagian Rancangan Tambah Kata 42 Tabel 3.4. Keterangan Bagian-Bagian Rancangan Tentang Aplikasi 43 Tabel 3.5. Keterangan Bagian-Bagian Rancangan Bantuan Aplikasi 44
DAFTAR GAMBAR
halaman
Gambar 2.1. Android Architecture 25
Gambar 3.1. Diagram Ishikawa Untuk Analisis Masalah 28 Gambar 3.2. Use Case Algoritma Knuth Morris Pratt 28 Gambar 3.3. Activity Diagram Panjang Teks dan Pattern 29 Gambar 3.4. Activity Diagram Proses Awal Menemukan Karakter 30 Gambar 3.5 Activity Diagram Menghitung Nilai Pergeseran Karakter 31 Gambar 3.6. Activity Diagram Membandingkan Karakter Per Karakter 32
Gambar 3.7. Activity Diagram System 33
Gambar 3.8. Sequence System Pada Kamus komputer 35
Gambar 3.9. Flowchart System 36
Gambar 3.10. Flowchart Proses KMP 37
Gambar 3.11. Rancangan Halaman Utama 39
Gambar 3.12. Rancangan Halaman Cari Kata 40
Gambar 3.13. Rancangan Halaman Tambah Kata 42
Gambar 3.14. Rancangan Halaman Tentang Aplikasi 43 Gambar 3.15. Rancangan Halaman Bantuan Aplikasi 44
Gambar 4.1. Perbatasan r, s dari a string x 47
Gambar 4.2. Perpanjangan Perbatasan 47
Gambar 4.3. Awalan Panjang i Dari Pola Dengan Batas Lebar b[i] 48
Gambar 4.4. Batas Panjang m Dari Awalan x pt 49
Gambar 4.5. Pergeseran Pola Ketika Ketidakcocokan Pada Posisi j Terjadi 50 Gambar 4.6. Hasil Pencarian Menggunakan Algoritma KMP 55
Gambar 4.7. Halaman Utama 57
Gambar 4.8. Contoh Fungsi Autocomplete 58
Gambar 4.9. Tambah Kata 59
Gambar 4.10. Penyimpanan Kata Istilah Komputer 60
Gambar 4.11. Tentang Aplikasi Komputer 63