Query Latar Belakang ContentActivity.class

Level 18. Penamaan mengadaptasi nama sejenis permen dalam beraneka macam rasa buah. Ukurannya sebesar kacang merah. Permen ini keras di luar tapi lunak di dalam serta lengket bila di gigit. o Android versi 4.4 KitKat Android 4.4 Kitkat API level 19.Google mengumumkan Android KitKat dinamai dengan izin Nestle dan Hershey pada 3 september 2013. Dengan tanggal rilis 31 Oktober 2013. KitKat merupakan merk sebuah coklat yang dikeluarkan oleh Nestle. Rilis berikutnya setelah nama KitKat diperkirakan banyak pengamat akan diberi nomor 5.0 dan dinamai „Pie’ Safaat, 2015.

2.6 Query

Query adalah satu atau beberapa kata atau frase kalimat yang di masukan di ketikan oleh pengguna saat melakukan pencarian pada search engine google atau search engine lainnya. 2.7 Search Engine Mesin pencari search engine adalah salah satu program komputer yang di rancang khusus untuk membantu seseorang menemukan file-file yang disimpan dalam komputer, misalnya dalam sebuah web server umum di web atau komputer sendiri. Mesin pencari memungkinkan kita untuk meminta content media dengan kriteria yang spesifik biasanya berisikan frase atau kata yang kita inginkan dan memperoleh daftar file yang memenuhi kriteria tersebut. Mesin pencari biasanya menggunakan indeks untuk mencari file setelah pengguna memasukan kriteria pencarian. Mesin pencari yang akan dibahas adalah mesin pencari khusus yang digunakan untuk mencari informasi di dalam database lokal. Untuk memudahkan dan mempercepat pencarian, mesin pencari mempunyai metode pencarian tertentu yang sering disebut algoritma. Adapun struktur umum sebuah mesin pencari adalah sebagai berikut : 1. Kotak teks pencari Kotak ini digunakan sebagai tempat memasukan kata kunci yang akan dijadikan acuan dilakukan pencarian. 2. Tombol pencari Tombol ini yang akan menjalankan perintah pencarian. Universitas Sumatera Utara

2.8 Algoritma

Algoritma adalah merupakan jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Namun jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Cara membuat kue atau masakan dalam resep masakan, itu juga merupakan algoritma Saniman Fathoni 2008. Logika berasal dari dari bahasa Yunani yaitu LOGOS yang berarti ilmu. Logika dapat diartikan ilmu yang mengajarkan cara berpikir untuk melakukan kegiatan dengan tujuan tertentu. Algoritma berasal dari nama seorang Ilmuwan Arab yang bernama Abu Jafar Muhammad Ibnu Musa Al Khuwarizmi penulis buku berjudul Al Jabar Wal Muqabala. 2 Kata Al Khuwarizmi dibaca orang barat menjadi Algorism yang kemudian lambat laun menjadi Algorithm diserap dalam bahasa Indonesia menjadi Algoritma. Algoritma dapat diartikan urutan penyelesaian masalah yang disusun secara sistematis menggunakan bahasa yang logis untuk memecahkan suatu permasalahan Barakbah Ahsan 2013. Algoritma adalah suatu himpunan berhingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik Barakbah Ahsan 2013.

2.8.1 Algoritma String Matching

Pengertian string menurut Dictionary of Algorithms and Data Structures, National Institute of Standards and Technology NIST adalah susunan dari karakter-karakter angka, alfabet atau karakter yang lain dan biasanya direpresentasikan sebagai struktur data array. String dapat berupa kata, frase, atau kalimat. Pencocokan string string matching menurut Dictionary of Algorithms and Data Structures, National Institute of Standards and Technology NIST, diartikan sebagai sebuah permasalahan untuk menemukan pola susunan karakter string di dalam string lain atau bagian dari isi teks. Algoritma pencarian string String Matching salah satu bagian terpenting dalam berbagai proses yang berkaitan dengan data dengan tipe teks.

2.8.2 Klasifikasi Pencocokan String

Pencocokan string string matching secara garis besar dapat dibedakan menjadi dua yaitu ... ...: Universitas Sumatera Utara o Exact string matching, merupakan pencocokan string secara tepat dengan susunan karakter dalam string yang dicocokkan memiliki jumlah maupun urutan karakter dalam string yang sama. Contoh: kata step akan menunjukkan kecocokan hanya dengan kata step. 2. Inexact string matching atau Fuzzy string matching, merupakan pencocokan string secara samar, maksudnya pencocokan string dimana string yang dicocokkan memiliki kemiripan dimana keduanya memiliki susunan karakter yang berbeda mungkin jumlah atau urutannya tetapi string-string tersebut memiliki kemiripan baik kemiripan tekstualpenulisan approximate string matching atau kemiripan ucapan phonetic string matching. Inexact string matching masih dapat dibagi lagi menjadi dua yaitu : a. Pencocokan string berdasarkan kemiripan penulisan approximate string matching merupakan pencocokan string dengan dasar kemiripan dari segi penulisannya jumlah karakter, susunan karakter dalam dokumen. Tingkat kemiripan ditentukan dengan jauh tidaknya beda penulisan dua buah string yang dibandingkan tersebut dan nilai tingkat kemiripan ini ditentukan oleh pemrogram programmer. Contoh: cimpuler dengan compiler, memiliki jumlah karakter yang sama tetapi ada dua karakter yang berbeda. Jika perbedaan dua karakter ini dapat ditoleransi sebagai sebuah kesalahan penulisan maka dua string tersebut dikatakan cocok. b. Pencocokan string berdasarkan kemiripan ucapan phonetic string matching merupakan pencocokan string dengan dasar kemiripan dari segi pengucapannya meskipun ada perbedaan penulisan dua string yang dibandingkan tersebut. Contoh step dengan steb dari tulisan berbeda tetapi dalam pengucapannya mirip sehingga dua string tersebut dianggap cocok. Contoh yang lain adalah step, dengan steppe, sttep, stepp, stepe. Exact string matching bermanfaat jika pengguna ingin mencari string dalam dokumen yang sama persis dengan string masukan. Tetapi jika pengguna menginginkan pencarian string yang mendekati dengan string masukan atau terjadi kesalahan penulisan string masukan maupun dokumen objek pencarian, contoh algoritma exact string matching antara lain: algoritma Boyer-Moore. 2.8.3 Algoritma Boyer-Moore Algoritma Boyer-Moore dipublikasikan oleh Robert S. Boyer,dan J. Strother Moore pada tahun 1977. Pencocokan karakter yang dilakukan menggunakan algoritma boyer-moore dimulai dari string sebelah kanan pattern. Ide di balik algoritma ini ialah dengan memulai Universitas Sumatera Utara pencocokan karakter dari kanan, maka akan lebih banyak informasi yang didapat. Algoritma Boyer Moore termasuk algoritma string matching yang paling efisien dibandingkan algoritma-algoritma string matching lainnya. Karena sifatnya yang efisien, banyak dikembangkan algoritma string matching dengan bertumpu pada konsep algoritma Boyer- Moore Efendi Kurniadi 2013.

2.8.3.1 Ilustrasi Pencarian String Algortima Boyer-Moore

Teks : OKTAVIANIPRADITA Pattern : PRADITA 1. Mencari nilai suffix Tabel 2.1 Suffix Cara mencari :  Pada indeks ke – 6 pada tabel suffix beri nilai dari panjang pattern yaitu “PRADITA” mempunyai panjang karakter 7, maka tabel suffix indeks ke – 6 =7 Tabel 2.2 Proses Pencarian Suffix a  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 5 “A” banding “T”, hasil tidak sama maka beri nilai 0 pada tabel suffix  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 4 “A” banding “I”, hasil tidak sama maka beri nilai 0 pada tabel suffix  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 3 “A” banding “D”, hasil tidak sama maka beri nilai 0 pada tabel suffix  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 2 “A” banding “A”, hasil sama maka beri tanda - pada tabel suffix i 1 2 3 4 5 6 X[i] P R A D I T A suffix I 1 2 3 4 5 6 X[i] P R A D I T A Suffix 0 1 0 0 7 M = panjang pattern Universitas Sumatera Utara Tabel 2.3 Proses Pencarian Suffix b  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 1 “A” banding “R”, hasil tidak sama maka beri nilai 0 pada tabel suffix  Lalu bandingkan dari kanan ke kiri teks, indeks ke -6 dibandingkan dengan indeks ke – 0 “A” banding “P”, hasil tidak sama maka beri nilai 0 pada tabel suffix  Untuk mencari nilai indeks ke – 2 maka, masukkan rumus i – i – s = 2 – 2 – 1 = 2 – 1 = 1 : Tabel 2.4 Proses Pencarian Suffix c i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 0 0 7  S dalam rumus= jumlah berapa banyak pola yang sama pada keseluruhan teks  i dalam rumus = indeks dalam pattern yang cocok yang ingin dicari nilai suffix-nya 2. Membuat tabel BmGs Isi semua tabel BmGs dengan nilai panjang pattern yaitu 7 Tabel 2.5 Proses Pencarian BmGs  Lakukan pengecekan apakah hasil i + i hasil = suffix :  Untuk indeks ke – 6 :  i + i hasil = suffix - 6 + 1 = 7 , 7 = nilai suffix maka sama i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 - 0 0 7 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 Universitas Sumatera Utara Tabel 2.6 Proses Pencarian BmGs a  Lakukan pengecekan apakah hasil i + i hasil = suffix : Untuk indeks ke – 5 : i + i hasil = suffix - 5 + 1 = 6, 6 tidak sama nilai suffix maka sama Tabel 2.7 Proses Pencarian BmGs b  Lakukan pengecekan apakah hasil i + i hasil = suffix : Untuk indeks ke – 4 : i + i hasil = suffix - 4 + 1 = 5, 5 tidak sama nilai suffix maka sama Tabel 2.8 Proses Pencarian BmGs c  Lakukan pengecekan apakah hasil i + i hasil = suffix : Untuk indeks ke – 3 : i + i hasil = suffix - 3 + 1 = 4, 4 tidak sama nilai suffix maka sama Tabel 2.9 Proses Pencarian BmGs d  Lakukan pengecekan apakah hasil i + i hasil = suffix : i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 Universitas Sumatera Utara Untuk indeks ke – 2 : i + i hasil = suffix - 2 + 1 = 3, 3 tidak sama nilai suffix maka sama Tabel 2.10 Proses Pencarian BmGs e  Lakukan pengecekan apakah hasil i + i hasil = suffix : Untuk indeks ke – 1 : i + i hasil = suffix - 1 + 1 = 2, 2 tidak sama nilai suffix maka sama Tabel 2.11 Proses Pencarian Bmgs f  Lakukan pengecekan apakah hasil i + i hasil = suffix : Untuk indeks ke – 0 : i + i hasil = suffix - 0 + 1 = 1, 1 tidak sama nilai suffix maka sama Tabel 2.12 Proses Pencarian BmGs g  Masukkan rumus untuk mencari batas pencarian perhitungan nilai Bmgs : M – 1 - i = 7 – 1 - 6 = 0 sebagai batas pertama  Karena hanya terdapat 1 saja nilai pencocokan suffix maka perhitungan di atas selesai  Jika terdapat satu atau lebih lagi pencocokan nilai suffix yang sama maka lakukan perhitungan dengan rumus m – 1 – i untuk batas selanjutnya. Karena tidak ada untuk batas selanjutnya, maka : I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 i 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 7 Universitas Sumatera Utara  Mulai menghitung untuk mengetahui batas kedua M - 2 = 7 - 2 = 5, yang artinya menghitung nilai untuk pencarian tabel Bmgs nya dimulai dari indeks ke – 0 sampai indeks ke – 5.  Lalu masukkan rumus M - 1 – suffix-i = 0 -7 – 1 – 0 = 6 - artinya indeks yang ingin diisi dengan nilai Bmgs -M – 1 – i = 7 – 1 – 0 = 6 - niali Bmgs yang akan diisi pada indeks 6 , maka ubah nilai indeks ke – 6 menjadi 6 Tabel 2.13 Proses Pencarian BmGs h  i = 1  M – 1 – suffix = 7 – 1 – 0 = 6 - artinya indeks yang ingin diisi dengan nilai Bmgs  M – 1 – i = 7 – 1 – 1 = 5 - nilai Bmgs yang akan diisi pada indeks 6 , maka ubah nilai indeks ke – 6 menjadi 5 Tabel 2.14 Proses Pencarian BmGs i   i = 2  M – 1 – suffix = 7 – 1 – 1 = 5 - artinya indeks yang ingin diisi dengan nilai Bmgs  M – 1 – i = 7 – 1 – 2 = 4 - nilai Bmgs yang akan diisi pada indeks 5 , maka ubah nilai indeks ke – 5 menjadi 4 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 6 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 7 5 Universitas Sumatera Utara Tabel 2.15 Proses Pencarian BmGs j   i = 3  M – 1 – suffix = 7 – 1 – 0 = 6 - artinya indeks yang ingin diisi dengan nilai Bmgs  M – 1 – i = 7 – 1 – 3 = 3 - nilai Bmgs yang akan diisi pada indeks 6 , maka ubah nilai indeks ke – 6 menjadi 3 Tabel 2.16 Proses Pencarian BmGs k   i = 4  M – 1 – suffix = 7 – 1 – 0 = 6 - artinya indeks yang ingin diisi dengan nilai Bmgs  M – 1 – i = 7 – 1 – 4 = 2 - nilai Bmgs yang akan diisi pada indeks 6 , maka ubah nilai indeks ke – 6 menjadi 2 Tabel 2.17 Proses Pencarian BmGs l   i = 5  M – 1 – suffix = 7 – 1 – 0 = 6 - artinya indeks yang ingin diisi dengan nilai Bmgs  M – 1 – i = 7 – 1 – 5 = 1 - nilai Bmgs yang akan diisi pada indeks 6 , maka ubah nilai indeks ke – 6 menjadi 1 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 4 5 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 4 3 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 4 2 Universitas Sumatera Utara Tabel 2.17 Proses Pencarian BmGs m  3. Pembuatan tabel BmBc Tabel 2.19 BmBc I 1 2 3 4 5 6 X[i] P R A D I T A  Isi indeks paling akhir dengan tanda bintang dan isi tabel akhir dengan panjang pattern 7 Tabel 2.20 Proses Pencarian BmBc a X[i] P R A D I T BmBc 7  Mencari batas pencarian nilai BmBc denga rumus M -2 = 7 – 2 = 5, berarti sampai indeks ke – 5  Melakukan pencarian nilai BmBc sampai i = 5 dengan rumus M – 1 – i  7 – 1 – 0 = 6, untuk indeks ke - 0 i = 0  7 – 1 – 1 = 5, untuk indeks ke - 1 i = 1  7 – 1 – 2 = 4, untuk indeks ke - 2 i = 2  7 – 1 – 3 = 3, untuk indeks ke - 3 i = 3  7 – 1 – 4 = 2, untuk indeks ke - 4 i = 4  7 – 1 – 5 = 5, untuk indeks ke - 5 i = 5 Tabel 2.21 Proses Pencarian BmBc b X[i] P R A D I T BmBc 6 5 4 3 2 1 7 I 1 2 3 4 5 6 X[i] P R A D I T A suffix 0 1 7 BmGs 7 7 7 7 7 4 1 Universitas Sumatera Utara 4. Melakukan pencocokan string : Tabel 2.22 Proses Pencocokan String 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 O K T A V I A N I P R A D I T A 0 1 2 3 4 5 6 P R A D I T A  Lihat nilai BmBc pada tabel atas, yaitu “I” = 2  Masukkan rumus : 2 – M+1+i = 2 – 7+1+5 = -11  Lihat nilai BmGs untuk tabel kedua yaitu “T” = 4  Bandingakan nilai -11 dan 4, ambil nilai yang paling besar yaitu 4 untuk pergeseran Tabel 2.23 Proses Pencocokan String a 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 O K T A V I A N I P R A D I T A 0 1 2 3 4 5 6 P R A D I T A  Lihat nilai BmBc pada tabel atas, yaitu “R” = 5  Masukkan rumus : 5 – M+1+i = 5 – 7+1+10 = -18  Lihat nilai BmGs untuk tabel kedua yaitu “A” = 1  Bandingakan nilai -18 dan 1, ambil nilai yang paling besar yaitu 1 untuk pergeseran selanjutnya Tabel 2.24 Proses Pencocokan String b 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 O K T A V I A N I P R A D I T A 0 1 2 3 4 5 6 P R A D I T A  Lihat nilai BmBc pada tabel atas, yaitu “R” = 5  Masukkan rumus : 5 – M+1+i = 5 – 7+1+5 = -13  Lihat nilai BmGs untuk tabel kedua yaitu “T” = 4 Universitas Sumatera Utara  Bandingakan nilai -13 dan 4, ambil nilai yang paling besar yaitu 4 untuk pergeseran selanjutnya Tabel 2.25 Proses Pencocokan String c 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 O K T A V I A N I P R A D I T A 1 2 3 4 5 6 P R A D I T A 5. Selesai

2.8.4 Algoritma Rabin-Karp

Algorima Rabin-Karp menggunakan metoda hash dalam mencari suatu kata. Algoritma ini dibuat oleh Michael O. Rabin dan Richard M. Karp. Teori ini jarang digunakan untuk mencari kata tunggal, namun teori ini cukup penting dan sangat efektif bila digunakan untuk mencari lebih dari satu kata Andres Saloko 2010

2.8.5 Hashing

Algoritma Rabin-Karp ini tidak melakukan pergeseran yang rumit untuk menyelesaikan masalah, algoritma ini mempercepat pengecekan kata pada suatu teks dengan menggunakan fungsi hash. Fungsi hash adalah fungsi yang mengkonversikan suatu kata menjadi nilai yang disebut nilai hash hashvalue. Contohnya s eperti hash“PRADITA”=9853. Rabin-Karp memiliki fakta bahwa jika suatu kata adalah sama maka nilai hash-nya juga sama. Jadi kita dapat melihat bahwa yang perlu kita lakukan adalah mencari nilai hash dari kata yang kita punya kemudian mencari kata dalam teks yang mempunyai nilai hash yang sama Atmopawiro, 2014.

2.8.5.1 Ilustrasi Pencarian String Algoritma Rabin-Karp

1. Menghitung nilai hash pada pola string [PRADITA] = 9853 cara menghitung hash :  Cari nilai pada tabel ASCII untuk teks “PRADITA” dan beri basis “2”, dimana teks yang paling kiri memiliki nilai terbesar dan teks yang paling kanan memiliki nilai yang terkecil. Universitas Sumatera Utara Tabel 2.26 Mencari Nilai Hash P R A D I T A 80 82 65 68 73 84 65 2 6 2 5 2 4 2 3 2 2 2 1 2  Lakukan perhitungan nilai hash : = 802 6 + 822 5 + 652 4 + 682 3 + 732 2 + 842 1 + 652 = 8064 + 8232 + 6516 + 688 + 734 + 842 + 651 = 5120 + 2624 + 1040 + 544 + 292 + 168 + 65 = 9853  Lakukan hal yang sama untuk pencarian hash pada untuk teks “DIPRADITAO” 2. Memeriksa pencocokan antar string o Langkah-1: Tabel 2.27 Memeriksa Pencocokan String a Y D I P R A D I T A O X P R A D I T A hash {Y[0 .. 6]} = 9093 o langkah-2 : Tabel 2.28 Memeriksa Pencocokan String b Y D I P R A D I T A O X P R A D I T A A hash {Y[1 .. 7]} = 9490 o langkah-3 : Tabel 2.29 Memeriksa Pencocokan String c Y D I P R A D I T A O X P R A D I T A hash {y[2 .. 8]} = 9853 cocok Universitas Sumatera Utara o langkah-4 : Tabel 2.30 Memeriksa Pencocokan String d Y D I P R A D I T A O X P R A D I T A hash {y[3 .. 9]} = 9545 3. Pada perbandingan ketiga didapatkan hasil yang sama dengan nilai hash pada string “PRADITA” = 9853 Carras Thiery 2004. Universitas Sumatera Utara

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Kekerasan terhadap anak adalah tindakan melukai yang berulang-ulang secara fisik dan emosi terhadap anak yang ketergantungan, melalui desakan hasrat, hukuman badan yang tak terkendali, degredasi dan cemoohan permanen atau kekerasan seksual, biasanya dilakukan para orang tua atau pihak lain yang seharusnya merawat anak Abdullah, 2010. 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. Eksploitasi anak menunjuk pada sikap diskriminatif atau perlakuan sewenang-wenang terhadap anak yang dilakukan oleh keluarga maupun masyarakat Rahman, 2010. 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 undang-undang perlindungan anak berbasis android. Terdapat beberapa macam algoritma string matching yang dapat digunakan untuk melakukan pencarian string, diantaranya : algoritma Rabin-Karp dan algoritma Boyer- Moore. Cara kerja algoritma Boyer-Moore yaitu dengan mencocokkan karakter dari kanan teks ke kiri teks. Algoritma ini mencocokkan karakter per karakter pada teks. Jika tidak cocok maka karakter di pattern tidak cocok mismatch. Jika cocok maka algoritma akan memberitahu penemuan posisi ini. Sedangkan algoritma Rabin-Karp merupakan pencocokan string yang menggunakan fungsi hash sebagai pembanding antara string yang dicari m dengan substring pada teksn. Apabila hash value keduanya sama maka akan dilakukan Universitas Sumatera Utara perbandingan sekali lagi terhadap karakter-karakternya. Apabila hasil keduanya tidak sama, maka substring akan bergeser ke kanan. Pergeseran dilakukan sebanyak n-m kali. Algoritma Boyer-Moore memiliki ke-efisienan waktu yang cukup baik dalam memproses sebuah pattern yang berukuran panjang, karena lompatan karakternya yang cukup besar. Algoritma Rabin-Karp memiliki beberapa kelebihan dalam melakukan pola pencocokkan string, yaitu: tidak banyak menggunakan kapasitas memory, proses dalam mencari pola pattern-nya yang tidak terlalu rumit. Berdasarkan beberapa kelebihan-kelebihan yang dipunyai oleh kedua algoritma ini, maka penulis akan melakukan perbandingan terhadap kedua algoritma dalam pencarian undang-undang perlindungan anak. Sehingga akan didapatkan algoritma mana yang lebih baik.

1.2 Rumusan Masalah