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