PERBANDINGAN ALGORITMA BOYER-MOORE DAN ALGORITMA RABIN- KARP PADA PENCARIAN TEKS DALAM UNDANG- UNDANG PERLINDUNGAN ANAK SKRIPSI PRADITA OKTAVIANI 121401041 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2016
ii PERSETUJUAN Judul : PERBANDINGAN ALGORITMA BOYER- MOORE DAN ALGORITMA RABIN-KARP PADA PENCARIAN TEKS DALAM UNDANG-UNDANG PERLINDUNGAN ANAK Kategori : SKRIPSI Nama : PRADITA OKTAVIANI Nomor Induk Mahasiswa : 121401041 Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen Fakultas : ILMU KOMPUTER : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATRA UTARA Diluluskan di Medan, April 2016 Komisi Pembimbing : Pembimbing 2 Pembimbing 1 Amalia, S.T., M.T. Dr. Poltak Sihombing, M.Kom NIP. 19781221 201401 2 001 NIP. 196203171991031001 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
iii PERNYATAAN PERBANDINGAN ALGORITMA BOYER- MOORE DAN ALGORITMA RABIN-KARP PADA PENCARIAN TEKS DALAM UNDANG-UNDANG PERLINDUNGAN ANAK SKRIPSI Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya. Medan, Juni 2016 Pradita Oktaviani 121401041
iv PENGHARGAAN Syukur Alhamdulillah selalu terucap kehadirat Allah SWT yang dengan rahmat dan hidayah- Nya penulis dapat menyelesaikan menyusun skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi. Pada pengerjaan skripsi dengan judul Perbandingan Algoritma Boyer-Moore dan Algoritma Rabin-Karp pada Pencarian Teks dalam Undang-Undang Perlindungan Anak, penulis menyadari bahwa banyak pihak yang turut membantu, baik dari pihak keluarga, sahabat dan orang-orang tercinta yang mendukung dalam pengerjaan skripsi ini. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada: 1. Bapak Prof. Runtung Sitepu, SH, M.Hum selaku Rektor. 2. Bapak Prof. Dr. Opim Salim Sitompul, MSc selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi. 3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi sekaligus Dosen Pembimbing I yang telah memberikan arahan, kritik dan saran serta motivasi kepada penulis dalam pengerjaan skripsi ini. 4. Ibu Amalia, S.T., M.T. selaku Dosen Pembanding II yang telah banyak memberikan arahan, motivasi dan masukan yang sangat berharga kepada penulis. 5. Bapak M. Andri Budiman, S.T.,M.Comp.Sc.,M.E.M. selaku Dosen Pembanding I yang telah banyak membarikan kritik dan saran yang membangun kepada penulis 6. Bapak Amer Sharif, S.Si.,M.Kom. selaku Dosen Pembanding II yang telah banyak membarikan kritik dan saran yang membangun kepada penulis 7. Seluruh tenaga pengajar dan pegawai di Fakultas Ilmu Komputer dan Teknologi Informasi USU, terkhusus Ibu maya Silvia, Ibu dian Rachmawati, Ibu siti Dara Fadillla, Ibu Amalia, Bapak Agus Salim Harahap, Bapak Mohammad Andri Budiman,
v Bapak Ade Candra, Bapak Syurahbil Hadi yang selama ini sudah menjadi orang tua kedua bagi penulis. 8. Keluarga tercinta yang selalu mendoakan serta memberikan kasih sayang, semangat, serta dorongan kepada penulis dan memberi segalanya tanpa pamrih, ayahanda Prayitno, Ibunda Rosini, Kakak tercinta Prayanti Dewi Anggraini, Pratika Dwi Septiani dan Pratiwi Tria May Latifani. 9. Teman-teman yang selalu menghibur, memberi semangat dan membantu saat penulisan skripsi, Aulia Tarindah Putri, Citra Eka Mutia, Indri Hidayati, Khalida Zia, Muzdalifa, Rizky Adawiyah, dan Tika Linavia. 10. Teman-teman kuliah, Stambuk 2012 terkhusus KOM A teman-teman seperjuangan saat menimba ilmu di S1 Ilmu Komputer. 11. Semua pihak yang terlibat langsung maupun tidak langsung yang tidak dapat penulis ucapkan satu demi satu yang telah membantu penyelesaian laporan ini. Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini. Medan, Juni 2016 Penulis, Pradita Oktaviani
vi ABSTRAK Anak adalah seseorang yang belum berusia 18 (delapan belas) tahun, termasuk anak yang dalam kandungan. Kekerasan terhadap anak sering kali terjadi di Indonesia. Jumlah kasus kekerasan pada anak di Indonesia terus meningkat. Selain tindak kekerasan terhadap anak, anak juga sering menjadi korban eksploitasi pihak yang tidak bertanggung jawab. Kebanyakan dari anak Indonesia belum memahami betul apa saja hak-hak dan perlindungan yang sepantasnya mereka dapatkan dari negara. Pentingnya memahami hak-hak dan perlindungan bagi anak merupakan pembekalan yang baik bagi anak untuk melindungi diri dari pelanggaran hak anak. Untuk memberikan solusi tentang masalah undang-undang perlindungan anak, maka penulis mencoba merancang sebuah aplikasi pencarian undangundang perlindungan anak berbasis android dengan menggunakan algoritma Boyer-Moore dan Rabin-Karp. Hasil dari pengujian dan perbandingan dari kedua algoritma : kompleksitas kedua algoritma sama, yaitu : θ(mn). Sedangkan real-running-time algoritma Boyer-Moore memiliki rata-rata penemuan string : 0,091818181818s dan algortima Rabin-Karp memiliki rata-rata penemuan string : 0,618181818282s. KataKunci : Anak,eksploitasi, algoritma, Boyer-Moore, Rabin-Karp
vii An Comparison Boyer-Moore Algorithm and Rabin-Karp Algorithm On Searching Text in Children Protection Laws ABSTRACT Child is someone whom under 18 (eighteen) years old, including child whom still in womb. Child abuse often happens in Indonesia. The amount of child abuse in Indonesia is getting higher. Not only child abuse, but also children in Indonesia become a victim of exploitation by the irresponsible part. Mostly children in Indonesia not quite understand what are their rights and the protections that they should has from the country. The importance children to understand what is their rights and their protections are really good suply for children to protect them from violation of their rights. To give an solution about the problems of children protection laws, author try to devise an aplication for children protection laws based on android with applying Boyer-Moore algorithm dan Rabin-Karp algrithm. The result of testing and comparison from both algorithms are: the complexity of both algorithms are the same : θ(mn), Meanwhile the real-running-time Boyer-Moore algorithm has average time to found string is : 0,091818181818s and Rabin-Karp algorithm has average time to found string is : 0,618181818282s. Keywords : Child, expliotation, algorithm, Boyer-Moore, Rabin-Karp
viii DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar Daftar Lampiran ii iii iv vi vii viii x xii xiii 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 Anak 6 2.2 Android 6 2.3 Sejarah Android 6 2.4 Fitur Android 7 2.5 Versi Android 7 2.6 Query 9 2.7 Search Engine 9 2.8 Algoritma 9 2.8.1 AlgoritmaString Mathcing 10 2.8.2 Klasifikasi Pencocokan String 10 2.8.3 Algoritma Boyer-Moore 11 2.8.3.1 Ilustrasi Pencarian String Algoritma Boyer-Moore 11 2.8.4 Algoritma Rabin-Karp 20 2.8.5 Hashing 20 2.8.5.1 Ilustrasi Pencarian String Algoritma Rabin-Karp 20 Bab 3 Analisis dan Perancangan Sistem 3.1 Analisis Sistem 23 3.1.1 Analisis Masalah 23 3.1.2 Analisis Persyaratan 24 3.1.2.1 Kebutuhan Fungsional 24 3.1.2.2 Kebutuhan Non Fungsional 25 3.1.3 Pemodelan 25 3.1.3.1 Preprocessing 26
ix 3.1.3.1.1 Case Folding 26 3.1.3.2 Use Case Diagram 28 3.1.3.3 Activity Diagram 29 3.1.3.4 Sequence Diagram 30 3.1.3.5 Flowchart Sistem 31 3.2 Perancangan Sistem 35 3.2.1 Menu Intro 35 3.2.2 Menu Pemilihan 36 3.2.3 Menu Tentang 36 3.2.4 Menu Utama 37 Bab 4 Implementasi dan Pengujian Sistem 4.1 Implementasi 38 4.1.1 Implementasi Algoritma Boyer-Moore dan Rabin-Karp 38 4.2 Antarmuka Sistem 38 4.2.1 Menu Intro 39 4.2.2 Menu Pemilihan 39 4.2.3 Menu Tentang 40 4.2.4 Menu Utama 40 4.3 Hasil Pengujian 44 4.3.1 Komplesitas Algoritma Big θ 45 4.3.2 Real-Running-Time 53 Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 61 5.2 Saran 62 Daftar Pustaka 63 Listing Program A-1 Curriculum Vitae B-1
x DAFTAR TABEL Nomor Tabel 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 4.1 Nama Tabel Suffix Proses Pencarian Suffix (a) Proses Pencarian Suffix (b) Proses Pencarian Suffix (c) Proses Pencarian BmGs Proses Pencarian BmGs (a) Proses Pencarian BmGs (b) Proses Pencarian BmGs (c) Proses Pencarian BmGs (d) Proses Pencarian BmGs (e) Proses Pencarian BmGs (f) Proses Pencarian BmGs (g) Proses Pencarian BmGs (h) Proses Pencarian BmGs (i) Proses Pencarian BmGs (j) Proses Pencarian BmGs (k) Proses Pencarian BmGs (l) Proses Pencarian BmGs (m) BmBc Proses Pencarian BmBc (a) Proses Pencarian BmBc (b) Proses Pencocokan String Proses Pencocokan String (a) Proses Pencocokan String (b) Proses Pencocokan String (c) Mencari Nilai Hash Memeriksa Pencocokan String (a) Memeriksa Pencocokan String (b) Memeriksa Pencocokan String (c) Memeriksa Pencocokan String (d) Kebutuhan Fungsional Kebutuhan Non-Fungsional Use Case Masukkan String Use Case Memilih Algoritma Keterangan Gambar Rancangan Interface Menu Intro Keterangan Gambar Rancangan Interface Menu Pemilihan Keterangan Gambar Rancangan Interface Menu Tentang Keterangan Gambar Rancangan Interface Menu Utama Komplesitas Boyer-Moore PreBmBc Halaman 12 12 12 13 13 13 14 14 14 14 15 15 16 16 16 17 17 17 17 18 18 18 19 19 19 20 21 21 21 22 25 25 29 29 35 36 37 37 45
xi 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Kompleksitas Boyer-Moore Suffixes Kompleksitas Boyer-Moore BmGs Kompleksitas Boyer-Moore Check Kompleksitas Rabin-Karp Kompleksitas Rabin-Karp (a) Running-Time Boyer-Moore Running-Time Rabin-Karp Running-Time Boyer-Moore dan Rabin-Karp 46 47 48 50 51 53 56 58
xii DAFTAR GAMBAR Nomor Gambar 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 Nama Gambar Diagram Ishikawa Preprocessing-Case Folding Use Case Diagram Activity Diagram Sequence Diagram Flowchart Sistem Flowchart Boyer-Moore Flowchart Rabin-Karp Rancangan Interface menu Intro Rancangan Interface menu Pemilihan Rancangan Interface menu Tentang Rancangan Interface menu Utama Menu Intro Menu Pemilihan Menu Tentang Hasil Pencarian Algoritma Boyer-Moore (a) Hasil Pencarian Algoritma Boyer-Moore (b) Hasil Pencarian Algoritma Rabin-Karp (a) Hasil Pencarian Algoritma Rabin-Karp (b) Grafik Running-Time Boyer-Moore Grafik Running-Time Rabin-Karp Grafik Running-Time Boyer-Moore dan Rabin-Karp Halaman 24 27 28 30 31 32 33 34 35 36 36 37 39 40 40 41 42 43 44 54 57 60
xiii DAFTAR LAMPIRAN Halaman Listing Program A-1 Curriculum Vitae B-1