IMPLEMENTASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS- PRATT DALAM PEMBUATAN KAMUS KEDOKTERAN PADA PLATFORM ANDROID SKRIPSI ARIEF TRY HIDAYAT 101401080 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2015
IMPLEMENTASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS- PRATT DALAM PEMBUATAN KAMUS KEDOKTERAN PADA PLATFORM ANDROID SKRIPSI Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer ARIEF TRY HIDAYAT 101401080 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2015
ii PERSETUJUAN Judul : IMPLEMENTASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS-PRATT DALAM PEMBUATAN KAMUS KEDOKTERAN PADA PLATFORM ANDROID. Kategori : SKRIPSI Nama : ARIEF TRY HIDAYAT Nomor Induk Mahasiswa : 101401080 Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen Fakultas Komisi Pembimbing : : ILMU KOMPUTER : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, 2015 Pembimbing 2 Pembimbing 1 Maya Silvi Lydia, B.Sc, M.Sc. Dr. Poltak Sihombing, M.Kom NIP. 197401272002122001 NIP. 196203171991031001 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
iii PERNYATAAN IMPLEMENTASI ALGORITMA PENCOCOKAN STRING KNUTH- MORRIS-PRATT DALAM PEMBUATAN KAMUS KEDOKTERAN PADA PLATFORM ANDROID SKRIPSI Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya. Medan, 2015 Arief Try Hidayat 101401080
iv PENGHARGAAN Alhamdulillahirrabbil alamin. Puji dan syukur penulis ucapkan atas kehadirat Allah SWT yang telah memberikan limpahan rahmat dan karunia-nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi. Shalawat beriring salam penulis juga persembahkan kepada Nabi Besar Muhammad SAW. Dengan segala kerendahan hati, pada kesempatan ini penulis menyampaikan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi dengan judul Implementasi Algoritma Pencocokan String Knuth-Morris-Pratt dalam Pembuatan Kamus Kedokteran pada Platform Android. Penulis mengucapkan terima kasih kepada: 1. Bapak Prof. Subhilhar, Ph.D sebagai PJ Rektor (USU). 2. Bapak Prof. Dr. Muhammad Zarlis sebagai Dekan Fakultas Ilmu Komputer dan Teknologi Informasi. 3. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara dan Dosen Pembimbing I yang telah memberikan arahan dan motivasi kepada penulis dalam pengerjaan skripsi ini. 4. Ibu Maya Silvi Lydia, BSc. MSc sebagai Sekretaris Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara dan Dosen Pembimbing II yang telah memberikan arahan dan motivasi kepada penulis dalam pengerjaan skripsi ini. 5. Ibu Dian Rachmawati, S.Si, M.Kom dan Bapak M. Andri Budiman, S.T., M.Comp.Sc., M.E.M. selaku Dosen penguji yang telah memberikan saran dan kritik kepada penulis dalam penyempurnaan skripsi ini. 6. Seluruh Dosen serta staf Pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi. 7. Kedua Orangtua penulis tercinta Ibunda Elva dan Ayahanda Bariza Bachtiar, Abang dan Kakak tercinta Veroza Satria Utama, Azizah, Rendy Mardhika, dan Habibul Ummi yang telah memberikan do a, dukungan, perhatian, kesabaran serta kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya. 8. Rental House Family yang selama ini telah menjadi keluarga kedua penulis selama mengikuti perkuliahan, tempat berbagi suka dan duka dalam pengerjaan skripsi ini, kepada Ali Huseini Siambaton, Andri Agasi, Azhar Fadhilah, S.Kom, Dani Rizki S.Kom, Fadly Herdika, Gunalan Anggirasa,
v S.Kom, Ivan Grace Halim, Mego Suntoro, S.Kom, M. Pristian, M. Khairil, Sobirin, S.Kom, Suhaili Hamdi, Safriatullah, S.Kom, Yohanes Armando Silitonga, S.Kom. 9. Teman- teman kuliah, khususnya Muhammad Reza Nasution, S.Kom, Ahmad Rasyidi, S.Kom, Wahyu Eko Putra, Dwi Rizki Ananda, S.Kom, Edo Affan serta Stambuk 2010 yang tidak dapat disebut satu-persatu, yang telah banyak membantu dalam pengerjaan skripsi ini. 10. Rekan-rekan pengurus IMILKOM (Ikatan Mahasiswa S1 Ilmu Komputer) Fasilkom-TI 2013-2014 yang telah memberikan banyak dukungan, tempat belajar berorganisasi yang benar, dan mendapatkan pengalaman yang tak ternilai. 11. Ade Mutiara Kartika Dewi Nasution yang selalu memberikan do a, dukungan moral, semangat, perhatian yang tak ternilai kepada penulis dalam pengerjaan skripsi ini. 12. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini. Sekali lagi penulis mengucapkan terima kasih kepada semua pihak yang membantu dalam penyelesaian skripsi ini yang tidak dapat disebutkan satu persatu, terima kasih atas ide, saran dan motivasi yang diberikan. Semoga Allah SWT memberikan limpahan karunia kepada semua pihak yang telah memberikan bantuan, perhatian, kasih sayang serta dukungan kepada penulis dalam menyelesaikan skripsi ini. Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan karena kesempurnaan hanyalah milik Allah SWT semata. Oleh karena itu penulis menerima kritik dan saran dari semua pihak yang bersifat membangun dan menyempurnakan skripsi ini. Penulis berharap semoga skripsi ini bermanfaat bagi penulis sendiri pada khususnya dan pembaca pada umumnya. Medan, September 2015 Penulis, Arief Try Hidayat
vi ABSTRAK Kebutuhan masyarakat terhadap layanan teknologi semakin bervariasi. Media penyimpanan serta media pencarian terhadap suatu kamus yang cepat dan efisien menjadi salah satu kebutuhan tersebut. Namun disamping itu jarang ditemukan aplikasi mobile yang dapat memenuhi kebutuhan tersebut. Untuk itu dibuatlah sebuah aplikasi kamus kedokteran yang menerapkan algoritma Knuth-Morris-Pratt sebagai masalah pencariannya dan database SQLite sebagai penyimpanan data. Algoritma Knuth-Morris-Pratt menerapkan informasi pencarian yang disimpan untuk melakukan pergeseran yang lebih jauh, tidak hanya satu karakter agar dapat melakukan pencarian yang lebih cepat. Field yang digunakan dalam pencarian ini adalah istilah penyakit, dengan memasukkan nama istilah penyakit sebagai inputannya dalam pencarian, kemudian akan didapatkan hasil pencarian berupa arti dari istilah tersebut. Hasil dari aplikasi ini menampilkan keseluruhan pattern yang cocok dengan teks, dengan kecepatan pencarian 0,06 detik. KataKunci : Algoritma Knuth-Morris-Pratt, Kamus Kedokteran
vii THE IMPLEMENTATION OF KNUTH-MORRIS-PRATT STRING MATCHING TO MAKE MEDICAL DICTIONARY IN ANDROID PLATFORM ABSTRACT The needs for technology services more varied. The storage media and search media for a fast and efficient dictionary is the one those needs. However, is rarely found a mobile application that can comply those needs. Therefore, it made a medical dictionary application which applying Knuth-Morris-Pratt algorithm as a matter of search, and SQLite database as a data storage. Knuth-Morris-Pratt algorithm apply search information which stored to do a further shift, not just one character in order to do a faster search. The fields that are used in this quest is a term of the disease by inserting it as an input in search, then get the results in the form of the meaning from the term disease. The result of this application show the whole patterns that arematch with text, with the speed of searching is 0.06 seconds for one character. Keyword : Knuth-Morris-Pratt algorithm, Medical Dictionary
viii DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar ii iii iv vi vii viii x xi Bab 1 Pendahuluan 1.1 Latar Belakang 1 1.2 Rumusan Masalah 2 1.3 Batasan Masalah 2 1.4 Tujuan Penelitian 3 1.5 Manfaat Penelitian 3 1.6 Metodologi Penelitian 3 1.7 Sistematika Penulisan 4 Bab 2 Landasan Teori 2.1 Information Retrieval System 5 2.1.1 Pengertian Information Retrieval System 5 2.2 Pencocokan String (String Matching) 7 2.2.1 Pengertian Pencocokan String 7 2.2.2 Kerangka Kerja Pencocokan String 7 2.2.3 Kerangka Pikir Pencocokan String 8 2.2.4 Macam Algoritma Pencocokan String 10 2.3 Algoritma Knuth-Morris-Pratt 11 2.3.1 Fungsi Pinggiran Pada Algoritma Knuth-Morris-Pratt 12 2.3.2 Pencarian Dengan Algoritma Knuth-Morris-Pratt 12 2.3.3 Kompleksitas Waktu Algoritma Knuth-Morris-Pratt 15 2.3.4 Kelebihan Algoritma Knuth-Morris-Pratt 15 2.4 Eclipse 16 Bab 3 Analisis dan Perancangan Sistem 3.1 Analisis Sistem 18 3.1.1 Analisis Masalah 18 3.1.2 Analisis Kebutuhan Sistem 20 3.1.2.1 Kebutuhan Fungsional Sistem 20 3.1.2.2 Kebutuhan Non Fungsional Sistem 20 3.1.3 Pemodelan 20 3.1.3.1 Use Case Diagram 21
ix 3.1.3.2 Activity Diagram 23 3.1.3.3 Sequence Diagram 24 3.1.3.4 Flowchart Sistem 24 3.2 Perancangan Sistem 26 3.2.1 Antarmuka Menu Utama 26 3.2.2 Antarmuka Menu Kosa Kata 27 3.2.3 Antarmuka Menu Tentang 28 3.2.4 Antarmuka Menu Navigation 28 Bab 4 Implementasi dan Pengujian Sistem 4.1 Implementasi 30 4.1.1 Implementasi Algoritma Knuth-Morris-Pratt 30 4.2 Antarmuka Sistem 33 4.2.1 Tampilan Menu Utama 33 4.2.2 Tampilan Menu Kosa Kata 34 4.2.3 Tampilan Menu Tentang 34 4.2.4 Tampilan Menu Navigation 35 4.3 Pengujian Sistem 36 4.3.1 Pengujian Pencarian data istilah dengan Algoritma Knuth-Morris-Pratt 36 4.3.2 Pengujian Waktu Pencarian data istilah dengan Algoritma Knuth-Morris-Pratt 39 4.3.3 Pengujian Proses Tambah Data 41 4.3.4 Pengujian Proses Edit Data 41 4.3.5 Pengujian Proses Delete Data 42 Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 44 5.2 Saran 44 Daftar Pustaka 46 Listing Program A-1 Curriculum Vitae B-1
x DAFTAR TABEL Nomor Tabel 2.1 2.2 2.3 2.4 3.1 3.2 3.3 4.1 4.2 Nama Tabel Pencarian Kata Menggunakan Algoritma Knuth-Morris-Pratt Pencarian Kata Menggunakan Algoritma Boyer-Moore Pencarian Kata Menggunakan Algoritma Colossi Fungsi Pinggiran Use Case Pencarian Istilah Kata Use Case Proses Menginputkan Istilah Kata yang Dicari Use Case Proses Tampil Hasil Pencarian Hasil Pencarian Data Istilah Dengan Algoritma Knuth-Morris- Pratt Hasil Waktu Pencarian Data Istilah Dengan Algoritma Knuth- Morris-Pratt Halaman 8 8 9 12 22 22 22 36 39
xi DAFTAR GAMBAR Nomor Gambar 2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Nama Gambar Iterasi metode Knuth-Morris-Pratt Pertama Iterasi metode Knuth-Morris-Pratt Kedua Iterasi metode Knuth-Morris-Pratt Ketiga Iterasi metode Knuth-Morris-Pratt Keempat Diagram Ishikawa untuk Analisis Masalah Sistem Use Case Diagram Sistem Activity Diagram Sequence Diagram Flowchart Algoritma Knuth-Morris-Pratt Rancangan Antarmuka Menu Utama Rancangan Antarmuka Menu Kosa Kata Rancangan Antarmuka Menu Tentang Rancangan Antarmuka Menu Navigation Contoh Pencarian Pencarian Kata Tampilan Menu Utama Tampilan Menu Kosa Kata Tampilan Menu Tentang Tampilan Menu Navigation Menambah Data Mengubah Data Menghapus Data Halaman 13 13 14 14 19 21 23 24 25 26 27 28 29 31 32 33 34 35 36 41 42 43