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