Implementasi IMPLEMENTASI DAN PENGUJIAN

BAB 4 IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi

Setelah melakukan tahap analisis dan perancangan sistem, selanjutnya adalah melakukan implementasi untuk mengetahui keberhasilan program dalam mengimplementasikan algoritma Apostolico-Crochemore. Sistem ini dibangun dengan menggunakan Android Studio 2.0. Menu-menu yang terdapat dalam sistem ini adalah Menu Utama, Menu Navigation, Menu Navigation Help, Menu Navigation About, Menu Navigation Semua Hadits. Gambar 4.1. berikut adalah diagram ishikawa fishbone diagram yang akan memberi penjelasan mengenai sistem aplikasi yang dibangun. Gambar 4.1. Diagram Ishikawa Sistem pencarian hadits shahih berbasis android ini menggunakan algoritma Apostolico-Crochemore. Pada Sistem ini, User umum dapat melakukan pencarian Universitas Sumatera Utara hadits shahih dengan memasukkan kata atau query yang ingin dicari. Material yang digunakan adalah teks terjemahan hadits shahih tentang shalat. Sistem ini dapat dijalankan melalui smartphone dengan sistem operasi Android 4.2.2. Jelly Bean, dan data hadits shahihnya tersimpan di dalam sistem database sqlite. 4.1.1. Implementasi Algoritma Apostolico-Crochemore Proses pencarian kata dalam sistem aplikasi kumpulan hadits shahih ini adalah menggunakan algoritma Apostolico-Crochemore. Berikut ini adalah contoh-contoh pencarian string menggunakan algoritma Apostolico-Crochemore . Contoh 1 : Teks y : S E S U N G G U H N Y A S H A L A T K U Pattern x : S U N G G U H a. Fase Proses Awal Tabel 4.1. Fungsi pinggiran kmpNext pada pattern x I 1 2 3 4 5 6 7 x[i] S U N G G U H kmpNext[i] -1 l = 1 b. Fase Pencarian String Tahap 1 Perbandingan perkarakter dimulai dari indeks ke-1 pada pattern x. S E S U N G G U H N Y A S H A L A T K U 1 S U N G G U H Pattern x digeser ke kanan sebanyak : 1 - kmpNext[1] = 1 - 0 = 1 karakter Tahap 2 S E S U N G G U H N Y A S H A L A T K U 1 S U N G G U H Pattern x digeser ke kanan sebanyak : 1 - kmpNext[1] = 1 - 0 = 1 karakter Universitas Sumatera Utara Tahap 3 S E S U N G G U H N Y A S H A L A T K U 7 1 2 3 4 5 6 S U N G G U H Pada tahap ke-3, pattern x sudah ditemukan di dalam teks y. Jumlah perbandingan yang dilakukan untuk mencari pattern x dilakukan sebanyak 9 kali. Jika pencarian string terus dilakukan sampai teks habis maka pattern digeser sebanyak : 7 - kmpNext[7] = 7 - 0 = 7 karakter. Tahap 4 S E S U N G G U H N Y A S H A L A T K U 1 S U N G G U H Pattern x digeser ke kanan sebanyak : 1 - kmpNext[1] = 1 - 0 = 1 karakter Tahap 5 S E S U N G G U H N Y A S H A L A T K U 1 S U N G G U H Pattern x digeser ke kanan sebanyak : 1 - kmpNext[1] = 1 - 0 = 1 karakter Tahap 6 S E S U N G G U H N Y A S H A L A T K U 1 S U N G G U H Pattern x digeser ke kanan sebanyak : 1 - kmpNext[1] = 1 - 0 = 1 karakter Tahap 7 S E S U N G G U H N Y A S H A L A T K U 1 S U N G G U H Pattern x digeser ke kanan sebanyak : 1 - kmpNext[1] = 1 - 0 = 1 karakter Tahap 8 S E S U N G G U H N Y A S H A L A T K U 1 S U N G G U H Universitas Sumatera Utara Pada tahap ke-8, seluruh teks telah habis dicari. Maka total perbandingan yang dilakukan seluruhnya sampai teks habis adalah 14 kali. Contoh 2 : Pada contoh kedua ini penulis akan mencoba untuk menggunakan pattern yang hurufnya memiliki banyak kesamaan yaitu “SSSGGUH” yang mana memiliki tiga huruf “S” yang sama dan dua huruf “G” yang sama. Teks y : S E S S S G G U H N Y A S H A L A T K U Pattern x : S S S G G U H a. Fase Proses Awal Tabel 4.2. Fungsi pinggiran kmpNext pada pattern x i 1 2 3 4 5 6 7 x[i] S S S G G U H kmpNext[i] -1 -1 -1 2 l = 1 b. Fase Pencarian String Tahap 1 Perbandingan perkarakter dimulai dari indeks ke-3 pada pattern x. S E S S S G G U H N Y A S H A L A T K U 1 S S S G G U H Pattern x digeser ke kanan sebanyak : 3 - kmpNext[3] = 3 – 2 = 1 karakter. Tahap 2 S E S S S G G U H N Y A S H A L A T K U 1 S S S G G U H Pattern x digeser ke kanan sebanyak : 3 - kmpNext[3] = 3 – 2 = 1 karakter. Tahap 3 S E S S S G G U H N Y A S H A L A T K U 5 6 7 1 2 3 4 S S S G G U H Universitas Sumatera Utara Pada tahap ke-3, pattern x sudah ditemukan di dalam teks y. Jumlah perbandingan yang dilakukan untuk mencari pattern x dilakukan sebanyak 9 kali. Jika pencarian string terus dilakukan sampai teks habis maka pattern digeser sebanyak 7 karakter. Tahap 4 S E S S S G G U H N Y A S H A L A T K U 1 S S S G G U H Pattern x digeser ke kanan sebanyak : 3 - kmpNext[3] = 3 – 2 = 1 karakter. Tahap 5 S E S S S G G U H N Y A S H A L A T K U 1 S S S G G U H Pattern x digeser ke kanan sebanyak : 3 - kmpNext[3] = 3 – 2 = 1 karakter. Tahap 6 S E S S S G G U H N Y A S H A L A T K U 1 S S S G G U H Pattern x digeser ke kanan sebanyak : 3 - kmpNext[3] = 3 – 2 = 1 karakter. Tahap 7 S E S S S G G U H N Y A S H A L A T K U 1 S S S G G U H Pattern x digeser ke kanan sebanyak : 3 - kmpNext[3] = 3 – 2 = 1 karakter. Tahap 8 S E S S S G G U H N Y A S H A L A T K U 1 S S S G G U H Pada tahap ke-8, seluruh teks telah habis dicari. Maka total perbandingan yang dilakukan seluruhnya sampai teks habis adalah 14 kali. Dari kedua contoh di atas penulis mendapatkan bahwa antara contoh 1 dan contoh 2 tidak ditemukan perbedaan jumlah perbandingan. Universitas Sumatera Utara Gambar 4.2. berikut ini adalah contoh pencarian kata pada aplikasi kumpulan hadits shahih berbasis Android dimana langkah pertama yang dilakukan adalah memasukkan kata yang ingin dicari dengan menyentuh actionbar search yang berada pada ujung kanan atas menu utama aplikasi. Setelah kata dimasukkan maka sistem akan melakukan proses pencarian menggunakan algoritma Apostolico-Crochemore. Gambar 4.2. adalah tampilan dari aplikasi kumpulan hadits shahih dengan mencoba mencari kata “umar”. Gambar 4.2. Tampilan contoh pencarian kata “umar” Terlihat pada gambar 4.2 . bahwa hasil pencarian kata “umar” pada aplikasi kumpulan hadits shahih ditemukan sebanyak 31 hadits.

4.2. Antarmuka Sistem