• Tidak ada hasil yang ditemukan

Implementasi Algoritma Apostolico-Crochemore Pada Aplikasi Kumpulan Hadits Shahih Berbasis Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Apostolico-Crochemore Pada Aplikasi Kumpulan Hadits Shahih Berbasis Android"

Copied!
63
0
0

Teks penuh

(1)
(2)

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

private boolean isSearchOpened = false; private EditText edPencarian;

private MenuItem mSearchAction;

// List view

private ListView lv;

// Listview Adapter

ArrayAdapter<String> adapter;

// List untuk dbhadits List<String> dbhadits;

//ALGORITMA APOSTOLICO-CROCHEMORE static int xsize = 256;

static int[] kmpNext = new int[xsize];

(3)
(4)

}

//AKHIR DARI ALGORITMA APOSTOLICO-CROCHEMORE

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//PENGAMBILAN DATABASES

DatabaseAccess databaseAccess = DatabaseAccess.getInstance(this); databaseAccess.open();

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar);

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, toolbar,

R.string.navigation_drawer_open, R.string.navigation_drawer_close); drawer.setDrawerListener(toggle); toggle.syncState();

(5)

findViewById(R.id.nav_view);

navigationView.setNavigationItemSelectedListener(this); }

protected void handleMenuSearch(){

ActionBar action = getSupportActionBar();

if(isSearchOpened){

action.setDisplayShowCustomEnabled(false); action.setDisplayShowTitleEnabled(true);

InputMethodManager imm = (InputMethodManager)

(6)

//MASUK KE PROSES PENCARIAN

//MENAMPILKAN HASIL PENCARIAN DARI DATABASE adapter = new ArrayAdapter(getBaseContext(),

R.layout.content_main, R.id.label, saveResult); lv.setAdapter(adapter);

//MENAMPILKAN JUMLAH HADITS YANG BERHASIL DITEMUKAN SISTEM String jml = Integer.toString(jumlah_hasil);

Toast.makeText(getBaseContext(), "Hadits yang ditemukan sebanyak "+jml+" hadits", Toast.LENGTH_LONG).show(); return true;}

return false;} });

edPencarian.requestFocus();

//perintah membuka keyboard

(7)

imm.showSoftInput(edPencarian, InputMethodManager.SHOW_IMPLICIT);

mSearchAction.setIcon(R.drawable.search_color); isSearchOpened = true;

}}

@Override

public boolean onPrepareOptionsMenu(Menu menu) {

mSearchAction = menu.findItem(R.id.action_search); SearchView searchView = (SearchView)

MenuItemCompat.getActionView(menu.findItem(R.id.action_search)); return super.onPrepareOptionsMenu(menu);

}

@Override

public void onBackPressed() {

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

if (drawer.isDrawerOpen(GravityCompat.START)) { drawer.closeDrawer(GravityCompat.START);

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu); return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) { //Menu Toolbar

(8)

case R.id.action_search: handleMenuSearch(); return true;

}

return super.onOptionsItemSelected(item); }

@SuppressWarnings("StatementWithEmptyBody") @Override

public boolean onNavigationItemSelected(MenuItem item) { int id = item.getItemId();

drawer.closeDrawer(GravityCompat.START); return true;

(9)

2. DatabaseOpenHelper.java

package com.skripsi.zahra.haditsshahih;

/**

* Created by zahra on 12/08/16. */

import android.content.Context;

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;

public class DatabaseOpenHelper extends SQLiteAssetHelper { private static final String DATABASE_NAME = "db_hadits"; private static final int DATABASE_VERSION = 1;

public DatabaseOpenHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION); }

}

3. DatabaseAccess.java

package com.skripsi.zahra.haditsshahih;

/**

* Created by zahra on 12/08/16. */

import android.content.Context; import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList; import java.util.List;

public class DatabaseAccess {

private SQLiteOpenHelper openHelper; private SQLiteDatabase database;

(10)

/**

* Private constructor to aboid object creation from outside classes.

*

* @param context */

private DatabaseAccess(Context context) {

this.openHelper = new DatabaseOpenHelper(context); }

/**

* Return a singleton instance of DatabaseAccess. *

* @param context the Context

* @return the instance of DabaseAccess */

public static DatabaseAccess getInstance(Context context) { if (instance == null) {

(11)

*

* @return a List of tb_HaditsShahih */

public List<String> getData() {

List<String> list = new ArrayList<>();

public class HelpActivity extends Activity{

@Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_help); //menerima Intent yang dikirim

Intent i = this.getIntent(); }

(12)

5. AboutActivity.java

package com.skripsi.zahra.haditsshahih; /**

* Created by zahra on 09/08/16. */

import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView;

public class AboutActivity extends Activity{

@Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_about);

//menerima Intent yang dikirim Intent i = this.getIntent(); }

(13)

CURRICULUM VITAE

---

Data Pribadi

Nama : Dewi Zahra

Tempat/Tanggal Lahir : Medan / 4 Desember 1994 Tinggi/Berat Badan : 165 cm / 60 kg

Agama : Islam

Kewarganegaraan : Indonesia

Alamat Sekarang : Jl. Brigjen Z. Hamid Titi Kuning Gg. Keluarga No.3, Medan

Alamat Orang Tua : Jl. Brigjen Z. Hamid Titi Kuning Gg. Keluarga No.3, Medan

Telp/ Hp : 08982838002

Email : dewizahr4@gmail.com

---

Riwayat Pendidikan

[2009 – 2012] : SMAN 13 Medan

[2006 – 2009] : SMP Swasta Harapan Mandiri Medan [2000 – 2006] : SDN 067775 Medan

[1999 – 2000] : TK Dewantara Medan

---

Keahlian

Keahlian Komputer :

(14)

---

Pengalaman Organisasi

[2004 – 2005] Pramuka SDN 067775 Medan [2007 – 2008] Anggota Shiroite Karatedo [2009] Anggota Basket SMAN 13 Medan

[2009] Anggota Dokter Remaja SMAN 13 Medan

[2013 – 2014] Anggota Kewirausahaan UKMI Al-Khuwarizmi [2014 – 2015] Anggota Keputrian UKMI Al-Khuwarizmi

[2014 – 2015] Anggota Kaderisasi DPW KAM-Rabbani FASILKOM-TI

---

Pengalaman Kepanitiaan

[2014] Anggota Konsumsi TRICK 9 UKMI Al-Khuwarizmi

[2014] Anggota Konsumsi Meet and Greet DPW KAM-Rabbani FASILKOM-TI [2014] Anggota Kesehatan PORSENI IMILKOM

[2014] Anggota Keamanan PMB Fakultas Fasilkom-TI

---

Seminar

[2014] Seminar Nasional Literasi Informasi “SENARAI”

Kompetisi

(15)

DAFTAR PUSTAKA

Arifin, Z. 2012. Metode Pentarjihan Hadits Ditinjau Dari Segi Sanad Dan Matan. Metodologi Tarjih Muhammadiyah Edisi 1, No. 1: 16-49.

Budijono, P.K. 2012. Implementasi Algoritma Apostolico-crochemore Untuk Pencarian Lirik Lagu Pada Kidung Puji-pujian Kristen. Skripsi. Duta

Wacana Christian University.

Buulolo, E. 2013. Implementasi Algoritma String Matching Dalam Pencarian Surat Dan Ayat Dalam Bible Berbasis Android. Pelita Informatika Budi Darma. Vol. 3. ISSN: 2301-9425.

Charras, C. & Lecroq, T. 1997. Handbook of Exact String Matching Algorithms. Oxford University Press: United Kingdom.

Mudawam, S. 2012. Syari’ah Fiqih Hukum Islam. Jurnal Ilmu Syari’ah dan Hukum Vol. 46, No.2: 403-450.

Munir, R. 1999. Algoritma & Pemrograman Dalam Bahasa Pascal dan C. Informatika: Bandung.

Muttaqin, Z. 2014. Analisis Dan Pembuatan Aplikasi Mobile “Kalkulator Perhitungan Energi” Pada Smartphone Berbasis Android. Naskah Publikasi. STMIK AMIKOM Yogyakarta.

Nababan, A.A. 2015. Implementasi Algoritma Brute Force Dan Algoritma Knuth-Morris-Pratt (KMP) Dalam Pencarian Word Suggestion. Skripsi. Universitas

Sumatera Utara.

Navarro, G. & Raffinot, M. 2002. Flexible Pattern Matching in Strings. Cambridge University Press: United Kingdom.

Nugraha, D.W. 2011. Aplikasi Algoritma Prim Untuk Menentukan Minimum Spanning Tree Suatu Graf Berbobot Dengan Menggunakan Pemrograman Berorientasi Objek. Jurnal Ilmiah Foristek. Vol. 1, No. 2: 70-79.

(16)

Sarumaha, N. 2013. Aplikasi Kamus Bahasa Inggris-Indonesia-Nias Berbasis Mobile Android Dengan Algoritma String Matching. Pelita Informatika Budi Darma.

Vol. 5, No. 1. ISSN: 2301-9425.

Suntoro, M. 2015. Implementasi Algoritma Pencocokan String Boyer-Moore Dalam Pembuatan Contact Manager Pada Platform Android. Skripsi. Universitas Sumatera Utara.

(17)

BAB 3

ANALISIS DAN PERANCANGAN

3.1.Analisis Sistem

Analisis sistem dilakukan untuk menghasilkan pemahaman yang menyeluruh terhadap kebutuhan sistem aplikasi kumpulan hadits shahih berbasis android yang menggunakan algoritma Apostolico-Crochemore sebagai metode pencariannya. Pada penelitian ini, proses utama dilakukan oleh user. User menjalankan aplikasi tersebut melalui smartphone yang dimiliki untuk mencari kata atau query yang ingin dicari pada aplikasi kumpulan hadits shahih yang mana hadits tersebut dishahihkan oleh Syaikh Muhammad Nashiruddin Al-Albani dalam kitab terjemahan Shahih At-Targhib Wa At-Tarhib.

3.1.1. Analisis Kebutuhan Sistem

Analisis kebutuhan sistem meliputi analisis kebutuhan fungsional dan nonfungsional.

a. Analisis Kebutuhan Fungsional Sistem

Kebutuhan fungsional dalam aplikasi kumpulan hadits shahih yang harus dipenuhi adalah sebagai berikut:

1. Sistem dapat menampilkan isi database hadits shahih yang tersedia.

2. Sistem dapat melakukan pencarian hadits shahih menggunakan algoritma Apostolico-Crochemore.

(18)

12

b. Analisis Kebutuhan Nonfungsional Sistem

Persyaratan nonfungsional yang akan mendukung kinerja sistem aplikasi kumpulan hadits shahih adalah sebagai berikut:

1. Sistem yang dibangun memiliki interface yang user friendly sehingga pengguna dapat menggunakan serta mempelajari sistem tersebut dengan mudah.

2. Sistem yang dibangun tidak memerlukan perangkat tambahan yang dapat merepotkan serta mengeluarkan biaya tambahan pada pengguna.

3. Sistem yang dibangun menyediakan halaman bantuan untuk memberikan informasi bantuan mengenai aplikasi kepada pengguna.

3.1.2. Pemodelan

Pada tahapan pemodelan sistem ini dilakukan penggambaran cara kerja sistem yang akan dibangun sehingga proses pembangunan sistem dapat berjalan dengan baik. Pada tugas akhir ini penggambaran cara kerja sistem tersebut akan menggunakan UML (Unified Modeling Language) sebagai bahasa pemodelan untuk mendesain dan merancang aplikasi kumpulan hadits shahih dalam mencari data hadits yang dicari. Model UML yang akan digunakan pada tahap pemodelan ini adalah Usecase diagram, Activity diagram, dan Sequence diagram.

a. Usecase Diagram

Usecase Diagram adalah diagram yang menggambarkan secara ringkas siapa yang

menggunakan sistem dan apa saja yang dapat dilakukannya. Usecase Diagram dari sistem aplikasi kumpulan hadits shahih dapat dilihat pada gambar 3.1.

(19)

13

1. Skenario Usecase Input Kata

Nama Usecase : Input kata

Deskripsi : Usecase yang mendeskripsikan proses input query dari user Pre-kondisi : Pengguna belum memasukkan query

Tabel 3.1. Skenario usecase input kata

2. Skenario Usecase Pencarian Menggunakan Algoritma Apostolico-Crochemore

Nama Usecase : Pencarian menggunakan algoritma Apostolico-Crochemore Deskripsi : Usecase yang mendeskripsikan proses pencarian kata

menggunakan algoritma Apostolico-Crochemore Pre-kondisi : Pengguna telah memasukkan query

Tabel 3.2. Skenario usecase pencarian menggunakan algoritma Apostolico- Crochemore

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Input kata yang dicari

2. Memeriksa input

3. Melanjutkan kepada proses pencocokan kata

Skenario Alternatif

1. Input kata yang dicari

2. Sistem tidak bereaksi apapun karena tidak ada aksi input oleh pengguna

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Menunggu hasil pencarian

(20)

14

3. Skenario Usecase Hasil Pencarian

Nama Usecase : Hasil Pencarian

Deskripsi : Usecase yang mendeskripsikan proses yang menampilkan hasil pencarian

Pre-kondisi : Sistem telah selesai melakukan proses pencarian kata

Tabel 3.3. Skenario usecase hasil pencarian

b. Activity Diagram

Activity Diagram merupakan diagram yang menggambarkan aliran kerja atau aktivitas

dari sebuah sistem. Activity Diagram dari sistem aplikasi kumpulan hadits shahih yang akan dibangun dapat dilihat pada gambar 3.2.

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Melihat hasil pencarian

2. Menampilkan hasil pencarian hadits pada halaman utama aplikasi

3. Menampilkan toast “Hadits yang ditemukan sebanyak (jumlah hadits yang ditemukan) hadits”.

Skenario Alternatif

1. Melihat hasil pencarian

(21)

15

Gambar 3.2. Activity Diagram

c. Sequence Diagram

Sequence Diagram merupakan diagram yang menggambarkan interaksi antar

objek-objek yang melakukan suatu tugas atau aksi tertentu. Sequence Diagram untuk proses pencarian data hadits shahih dengan Algoritma Apostolico-Crochemore dapat dilihat pada gambar 3.3.

(22)

16

d. Flowchart Sistem

Flowchart adalah bagan-bagan yang mempunyai arus atau aliran yang

menggambarkan uraian langkah-langkah penyelesaian suatu masalah. Flowchart dari sistem aplikasi kumpulan hadits shahih yang akan dibangun akan diperlihatkan pada gambar 3.4. yang menggambarkan fase proses awal dan gambar 3.5. yang menggambarkan fase pencarian string.

(23)

17

(24)

18

Gambar 3.4. merupakan flowchart mengenai fase proses awal pada algoritma Apostolico-Crochemore dimana pada fase ini akan dihitung fungsi pinggiran yang mengindikasikan pergeseran x terbesar yang mungkin pada pattern x yang dimasukkan oleh user. Fungsi pinggiran pada algoritma Apostolico-Crochemore adalah kmpNext. Diketahui nilai awal indeks i adalah 0, dan nilai awal indeks j sama dengan kmpNext[0] yaitu -1. Selama i < m, maka akan dilakukan beberapa kondisi yaitu sebagai berikut:

1. Selama j > -1 dan x[i] tidak sama dengan x[j], maka j = kmpNext[j]. 2. Kemudian setelah itu nilai i dan j ditambah 1.

3. Jika x[i] sama dengan x[j] maka kmpNext[i] = kmpNext[j], sedangkan jika x[i] tidak sama dengan x[j] maka kmpNext[i] = j. Kemudian dilakukan perulangan hingga syarat i < m tidak terpenuhi.

Selanjutnya gambar 3.5. merupakan flowchart mengenai fase pencarian string menggunakan algoritma Apostolico-Crochemore dimana pada fase ini dilakukan proses pencarian (pencocokan) pattern dengan teks.

Dimulai dengan menentukan nilai l (ell) dimana l adalah posisi karakter pertama dari x yang berbeda dari x[0]. Selama x[l – 1] sama dengan x[l], maka nilai l ditambah 1. Kemudian setelah mendapatkan nilai l, jika l sama dengan m, maka l sama dengan 0. Selanjutnya diberikan nilai i sama dengan l dan nilai j dan k sama dengan 0. Kemudian selama nilai j <= n – m, maka akan dilakukan beberapa kondisi yaitu sebagai berikut:

1. Selama i < m dan x[i] sama dengan y[i + j] maka i ditambah dengan 1. 2. Setelah itu, jika i >= m maka:

a. Selama k < l dan x[k] sama dengan y[j + k] maka k ditambah dengan 1. b. Kemudian setelah itu, jika k >= l maka output nilai j yang mana nilai j

(25)

19

4. Jika i sama dengan l, maka nilai k sama dengan nilai yang paling besar antara 0 dan k-1, kemudian lewati langkah ke-5 dan lakukan perulangan kembali pada langkah pertama selama kondisi j<=n–m masih terpenuhi.

5. Jika kmpNext[i] <= l, maka nilai k sama dengan nilai yang paling besar antara 0 dan kmpNext[i], dan nilai i sama dengan nilai l. Sedangkan jika kondisi tersebut tidak terpenuhi maka nilai k = l dan i = kmpNext[i]. Kemudian lakukan perulangan kembali pada langkah satu selama kondisi j<=n–m masih terpenuhi.

3.2.Perancangan Sistem

Proses perancangan sistem ini dilakukan agar perancangan antarmuka (interface) sistem dapat dirancang dengan baik dengan memperhatikan manfaat dari perancangan sistem ini yaitu untuk memudahkan pengguna dalam memahami serta menggunakan sistem aplikasi kumpulan hadits shahih ini.

3.2.1. Menu Utama

Perancangan desain antarmuka Menu Utama dapat dilihat pada gambar 3.6.

(26)

20

Tabel 3.4. Keterangan gambar 3.6. rancangan desain interface Menu Utama

No Keterangan

1 Button ActionBar untuk Menu Navigation 2 TextView judul menu utama

3 Button ActionBar Search untuk melakukan proses pencarian hadits 4 ListView untuk menampilkan data hadits shahih yang ada pada database

5 ScrollBar yang berfungsi untuk melihat bagian dokumen yang belum terlihat karena keterbatasan ruang tampilan

3.2.2. Menu Navigation

Di dalam menu navigation terdapat 3 menu lainnya, yaitu: 1. Menu Help

Berfungsi untuk menampilkan halaman petunjuk penggunaan yang dapat dilihat pada gambar 3.8.

2. Menu About

Berfungsi untuk menampilkan halaman mengenai perancang dan pembuat aplikasi kumpulan hadits shahih yang berisi judul skripsi, nama, nim, logo fakultas, program studi, fakultas, nama universitas dan tahun pembuatan yang dapat dilihat pada gambar 3.8.

3. Menu Semua Hadits

Berfungsi untuk menampilkan kembali semua daftar hadits yang ada pada database.

(27)

21

Gambar 3.7. Rancangan desain Interface Menu Navigation

Tabel 3.5. Keterangan gambar 3.7. rancangan desain interface Menu Navigation

No Keterangan

1 ImageView untuk menampilkan gambar icon aplikasi kumpulan hadits shahih 2 TextView untuk menampilkan judul aplikasi, judul kitab hadits yang digunakan

dan nama penyusun kitab yang digunakan

3 Menu Navigation Help untuk menampilkan petunjuk penggunaan 4 Menu Navigation About untuk menampilkan tentang aplikasi

5 TextView untuk menampilkan klasifikasi menu dari menu navigation

(28)

22

Gambar 3.8. Rancangan desain Interface Menu About(1) dan Help(2).

Tabel 3.6. Keterangan gambar 3.8. rancangan desain interface Menu About(1) dan Help(2)

No Keterangan

1 ImageView untuk menampilkan gambar cover skripsi penulis

(29)

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

(30)

24

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 0 1 2 3 4 5 6 7

Perbandingan perkarakter dimulai dari indeks ke-1 pada pattern x.

(31)

25 perbandingan yang dilakukan untuk mencari pattern x dilakukan sebanyak 9 kali.

(32)

26

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 0 1 2 3 4 5 6 7

Perbandingan perkarakter dimulai dari indeks ke-3 pada pattern x.

(33)

27

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. Pada tahap ke-8, seluruh teks telah habis dicari. Maka total perbandingan yang dilakukan seluruhnya sampai teks habis adalah 14 kali.

(34)

28

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

(35)

29

4.2.1. Menu Utama

Menu utama memiliki dua button actionbar yaitu button actionbar search dan button actionbar navigation. Button actionbar search berfungsi untuk menampilkan editText

yang mana digunakan sebagai wadah untuk memasukkan query atau kata yang ingin dicari. Sedangkan button actionbar navigation berfungsi untuk menampilkan menu lainnya seperti menu help, menu about, dan menu semua hadits. Tampilan menu utama dapat dilihat pada gambar 4.3.

Gambar 4.3. Tampilan menu utama

Pada menu utama ditampilkan seluruh hadits yang ada pada database dengan menggunakan listview.

4.2.2. Menu Navigation

Menu navigation menampilkan tiga menu yang dapat dipilih untuk ditampilkan yaitu

(36)

30

Gambar 4.4. Tampilan menu navigation

4.2.3. Menu Help dan Menu About

Menu help adalah menu yang berfungsi untuk menampilkan petunjuk penggunaan aplikasi kumpulan hadits shahih agar memudahkan pengguna dalam mengetahui fungsi-fungsi setiap menu. Menu help dapat dilihat pada gambar 4.5.

Sedangkan Menu about adalah menu yang berfungsi untuk menampilkan tentang aplikasi kumpulan hadits shahih agar pengguna mengetahui beberapa informasi mengenai aplikasi tersebut. Menu about dapat dilihat pada gambar 4.6.

(37)

31

4.2.4. Menu Semua Hadits

Menu semua hadits merupakan menu yang digunakan untuk menampilkan kembali semua hadits yang tersedia pada aplikasi kumpulan hadits shahih. Tampilan Menu semua hadits adalah seperti pada tampilan menu utama pada gambar 4.3.

4.3. Pengujian

Tahap pengujian sistem ini dilakukan untuk mengetahui keberhasilan sistem dalam melakukan pencarian kata menggunakan algoritma Apostolico-Crochemore. Semua hasil pencarian yang sesuai dengan kata yang dimasukkan akan ditampilkan ke dalam bentuk listview.

4.3.1. Pengujian Pencarian Kata dengan Algoritma Apostolico-Crochemore

Tabel 4.3. berikut ini akan memperlihatkan hasil pencarian kata dengan menggunakan algoritma Apostolico-Crochemore.

Tabel 4.3. Hasil Pencarian Kata dengan Algoritma Apostolico-Crochemore

No Kata yang dicari Tampilan Hasil Keterangan

1 umar Match

(38)

32

3 242 Match

4 where Mismatch

(39)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil dari Implementasi Algoritma String Matching Apostolico-Crochemore dalam pembuatan aplikasi hadits shahih berbasis android, maka dapat

disimpulkan bahwa algoritma String Matching Apostolico-Crochemore yang diimplementasikan pada aplikasi kumpulan hadits shahih berbasis android ini berhasil diterapkan dan menghasilkan pencarian yang sesuai dengan yang diharapkan. Dalam algoritma Apostolico-Crochemore, semakin banyak huruf yang memiliki persamaan dalam sebuah pattern maka itu tidak berpengaruh pada kecepatan proses pencarian pattern dalam teks karena hasil jumlah perbandingan yang didapatkan adalah sama dengan pattern yang memiliki huruf yang sedikit persamaannya.

5.2. Saran

Adapun saran yang dapat diberikan untuk mengembangkan penelitian ini adalah sebagai berikut:

1. Diharapkan kedepannya database sistem tersimpan di dalam cloud agar database dapat diakses secara online oleh aplikasi kumpulan hadits shahih. Sehingga aplikasi tidak banyak membebani storage pada smartphone.

(40)

BAB 2

LANDASAN TEORI

2.1.Pengertian Hadits

Menurut pendapat muhaddihin muta’akhirin, di antaranya dikemukakan oleh ibn Salah (w. 643 H/1245 M) dalam muqaddimah-nya. “Hadits shahih adalah hadits yang bersambung sanadnya, diriwayatkan oleh periwayat yang adil dan dabit sampai akhir sanad-nya, tidak terdapat kejanggalan (shadh) dan cacat (‘illah)” (Arifin, 2012).

2.2.Pengertian Aplikasi

Istilah aplikasi berasal dari bahasa inggris “application” yang berarti penerapan, lamaran atau penggunaan. Aplikasi adalah penggunaan atau penerapan suatu konsep yang menjadi pokok pembahasan. Aplikasi dapat diartikan juga sebagai program komputer yang dibuat untuk menolong manusia dalam melaksanakan tugas tertentu (Sarumaha, 2013).

2.3.Pengertian Android

(41)

6

pengembang untuk menciptakan aplikasi mereka sendiri sehingga dapat digunakan oleh bermacam peranti penggerak. Pada saat perilisan perdana Android pada tanggal 5 November 2007, Android bersama Open Handset Alliance lalu menyatakan mendukung pengembangan standar terbuka Programming pada perangkat seluler (Sarumaha, 2013).

Pada tahun 2007, Google dan beberapa perusahaan yang tergabung dalam Open Handset Alliance (Intel, Nvidia, Texas Instrument) mengembangkan sistem operasi Android dan resmi menjadi open source. Google menginginkan agar Android bersifat terbuka dan gratis, oleh karena itu hampir setiap kode program Android diluncurkan berdasarkan lisensi open-source Apache yang berarti bahwa semua orang yang ingin menggunakan Android dapat men-download penuh source code-nya. Di samping itu produsen perangkat keras juga dapat menambahkan extension-nya sendiri ke dalam Android sesuai kebutuhan produk mereka. Pada tahun 2008, Android SDK 1.0 diluncurkan dan phone G1 yang diproduksi oleh HTC menggunakan sistem operasi tersebut. Pada tahun 2010, Android menjadi sistem operasi Blackberry dan menjadi sistem operasi terbaik pada platform smart-phone. Versi 2.2 (Froyo) diluncurkan dan lebih dari 60 gadget menggunakannya (Muttaqin, 2014).

2.4.Pengertian Algoritma

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis (Munir, 1999).

Algoritma merupakan salah satu cabang ilmu komputer yang membahas prosedur penyelesaian suatu permasalahan. Dengan algoritma yang baik maka komputer bisa menyelesaikan perhitungan dengan cepat dan benar. Sebaliknya jika algoritma kurang baik maka penyelesaian lambat dan bahkan tidak didapat solusi yang diharapkan. Suatu algoritma akan memerlukan masukan (input) tertentu untuk memulainya, dan akan menghasilkan keluaran (output) tertentu pada akhirnya. Hal-hal yang perlu diperhatikan dalam algoritma adalah mencari langkah-langkah yang paling sesuai untuk penyelesaian suatu masalah, karena setiap algoritma memiliki karakteristik tertentu yang memiliki kelebihan dan kekurangan. Beberapa hal yang harus dipahami dalam mencari algoritma antara lain (Nugraha, 2011):

(42)

7

3. Berapa lama yang diperlukan untuk menyelesaikan masalah. 4. Berapa jumlah data yang dapat ditangani oleh suatu algoritma.

2.4.1. Algoritma String Matching (pencocokan string)

String adalah rangkaian karakter atas ∑ alfabet yang terbatas. Misalnya, ATCTAGAGA adalah string atas ∑ = {A, C, G, T} (Navarro & Raffinot, 2002).

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 dan array. String dapat berupa kata, frase, atau kalimat. Pencocokan string (string matching) merupakan bagian penting dari sebuah proses pencarian string(string searching) dalam sebuah dokumen. Hasil dari sebuah pencarian string

dalam dokumen tergantung dari teknik dan cara pencocokan string yang digunakan (Buulolo, 2013).

2.4.2. Algoritma Apostolico-Crochemore

Algoritma Apostolico-Crochemore menggunakan tabel fungsi pinggiran kmpNext yang berasal dari Algoritma Knuth-Morris-Pratt untuk menghitung fungsi pinggiran yang mengindikasikan pergeseran x terbesar yang mungkin terjadi pada pattern x sebelum melakukan proses pencarian pada teks y. Diketahui l = 0 jika x adalah karakter tunggal yang dipangkatkan (x = cm dengan c di dalam ) dan l adalah posisi karakter pertama dari x yang berbeda dari x[0] (x = albu untuk a, b di dalam , u di dalam , dan a ≠b). Setiap pembandingan dilakukan dengan posisi yang berpola dengan urutan sebagai berikut : l , l +1, ..., m-2, m-1, 0, 1, ..., l -1. Selama fase pencarian, kita mempertimbangkan (i, j, k) di mana:

 i, j dan k adalah indeks

(43)

8

 l i < m dan x[ l ..i-1] = y[j+ l .. i+j-1]. (lihat gambar 2.1.) Inisialisasi awal dari (i, j, k) adalah ( l , 0, 0).

Gambar 2.1. Pembandingan dengan algoritma Apostolico-Crochemore memperhatikan (i, j, k).

Komputasi (perhitungan) untuk menentukan (i, j, k) berikutnya mempertimbangkan tiga kasus yang bergantung pada nilai i, yaitu sebagai berikut: 1. i = l

Jika x[i] = y[i+j] maka (i, j, k) berikutnya adalah (i+1, j, k).

Jika x[i] y[i+j] maka (i, j, k) berikutnya adalah ( l , j+1, max{0, k-1}). 2. l < i < m

Jika x[i] = y[i+j] maka (i, j, k) berikutnya adalah (i+1, j, k).

Jika x[i] y[i+j] maka ada dua kasus yang muncul yang bergantung pada nilai kmpNext[i] :

 kmpNext[i] l maka (i, j, k) berikutnya ( l , i+j-kmpNext[i], max{0, kmpNext[i]}).

 kmpNext[i] > l maka (i, j, k) berikutnya (kmpNext[i], i+j-kmpNext[i], kmpNext[i] l ).

3. i = m

Jika k < l dan x[k] = y[j+k] maka (i, j, k) berikutnya adalah (i, j, k+1). Sebaliknya salah satu dari k < l dan x[k] ≠y[j+k], atau k = l. Jika k = l kemunculan x diberitahukan. Pada kedua kasus tersebut perhitungan (i, j, k) berikutnya sama seperti perhitungan pada kasus l < i < m (Charras dan Lecroq, 1997).

Berikut ini adalah contoh cara kerja algoritma Apostolico-Crochemore. Teks y : G C A T C G C A G A G A G T A T A C A G

(44)

9

1. Fase Proses Awal

Tabel 2.1. Fungsi pinggiran kmpNext

i 0 1 2 3 4 5 6 7 8

Perbandingan perkarakter dimulai dari indeks ke-1.

G C A T C G C A G A G A G T A T A C A G

1 2 3

G C A G A G A G

Pattern x digeser sebanyak : 3-kmpNext[3] = 3- -1 = 4 karakter

Tahap 2

G C A T C G C A G A G A G T A T A C A G

1

G C A G A G A G

Pattern x digeser sebanyak : 1-kmpNext[1] = 1-0 = 1 karakter

Tahap 3

G C A T C G C A G A G A G T A T A C A G

8 1 2 3 4 5 6 7

G C A G A G A G

Pada tahap 3, pattern x sudah ditemukan di dalam teks y. Jumlah perbandingan yang dilakukan untuk mencari pattern x dilakukan sebanyak 12 kali.

Jika pencarian string terus dilakukan sampai teks habis maka pattern x digeser sebanyak : 8-kmpNext[8] = 8-1 = 7 karakter.

Tahap 4

G C A T C G C A G A G A G T A T A C A G

1

(45)

10

2.5. Penelitian Yang Relevan

Berikut ini beberapa penelitian yang terkait dengan algoritma Apostolico-Crochemore:

1. Nababan, A.A. (2015) dalam penelitiannya melakukan perancangan fitur pencari saran hasil terdekat dengan pencarian menggunakan algoritma pencocokan string Brute Force dan Knuth Morris-Pratt(KMP). Hasil penelitian tersebut ditemukan bahwa algoritma Knuth Morris-Pratt(KMP) melakukan pergeseran lebih jauh (tidak hanya bergeser satu karakter seperti dalam Brute Force). Dengan ini penggunaan algoritma Knuth-Morris-Pratt (KMP) dapat mempersingkat waktu dengan hasil rata-rata runtime 0,42717 ms dibandingkan dengan algoritma Brute Force yang memiliki hasil rata-rata runtime 0,44683 ms dalam pencocokan string-nya.

2. Suntoro, M. (2015) dalam penelitiannya melakukan implementasi algoritma pencocokan string Boyer-Moore dalam pembuatan contact manager pada platform Android. Algoritma Boyer-Moore menerapkan prinsip good suffix dimana karakter yang dicari sejajar dengan karakter yang menyerupainya serta prinsip bad character dimana jika karakter tidak memiliki kemiripan maka langsung dieliminasi. Field yang dipakai dalam pencarian contact manager adalah nama contact, dengan memasukan nama sebagai inputannya dalam pencarian. Hasil dari aplikasi ini menampilkan keseluruhan pattern yang match dengan teks, dengan kecepatan pencarian 0,9 detik.

3. Rizal (2015) dalam penelitiannya melakukan implementasi algoritma pencocokan string Turbo Boyer-Moore dalam pembuatan permainan tebak kata bahasa Aceh. Dalam penelitian tersebut ditemukan bahwa algoritma Turbo Boyer-Moore berhasil diterapkan dan menghasilkan pencocokan yang sesuai dengan yang diharapkan. Algoritma Turbo Boyer-Moore melakukan pencocokan dengan sangat cepat. Dari hasil penelitian juga ditemukan bahwa permainan tersebut menambah pembendaharaan kosa kata bahasa Aceh bagi siapa saja yang ingin belajar atau merasa kurang akan kosakata bahasa Aceh. Terbukti dari penelitian yang dilakukan, yaitu melalui hasil pretest, lalu percobaan pada game dan test.

(46)

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Terdapat dua sumber Syari‟ah yang dipahami sebagai Hukum Ilahi dalam Islam yaitu Al-Qur‟an dan As-Sunnah (Al-Hadits). Al-Qur‟an adalah firman Allah yang tidak dapat diubah. As-Sunnah adalah kehidupan dan contoh dari Nabi Muhammad

Shallallahu „alaihi wa sallam, pentingnya As-Sunnah merupakan sumber Syariah, seperti ditegaskan dalam beberapa ayat dari Al-Qur‟an misalnya (Al-Qur‟an 33:21)

yang artinya “Sesungguhnya telah ada pada (diri) Rasulullah itu suri teladan yang baik bagimu (yaitu) bagi orang yang mengharap (rahmat) Allah dan (kedatangan) hari

kiamat dan dia banyak menyebut Allah” (Mudawam, 2012).

Semakin berkembangnya zaman, hadits semakin mudah untuk didapatkan karena telah disusun dalam buku-buku yang memuat ribuan hadits dalam bahasa arab maupun bahasa Indonesia. Tersedia juga buku-buku saku yang memuat beberapa hadits yang mudah untuk dibawa kemana saja. Apalagi dengan semakin berkembangnya teknologi, kini hadits dapat diakses melalui benda pintar yaitu smartphone yang berukuran kecil, ringan dan mudah dibawa kemana saja. Oleh karena itu penulis berinisiatif untuk membuat sebuah aplikasi kumpulan hadits shahih yang berbasis android agar dapat memanfaatkan teknologi canggih untuk menyebarkan informasi tentang hadits melalui smartphone serta memudahkan bagi para pencari ilmu Islam yang ingin mencari informasi tentang hadits yang ingin dicarinya.

(47)

2

berbagai metode pencarian yang ada (Budijono, 2012). Disini penulis akan membuat sebuah aplikasi kumpulan hadits shahih berbasis android yang akan menerapkan salah satu metode pencarian atau sering disebut juga dengan pencocokan string (string matching atau pattern matching) yaitu algoritma Apostolico-Crochemore.

Algoritma Apostolico-Crochemore terdiri dari dua fase, yaitu fase proses awal (preprocessing) dan fase pencarian string. Pada fase proses awal, dilakukan perhitungan fungsi pinggiran kmpNext yang berasal dari Algoritma Knuth-Morris-Pratt yang mengindikasikan pergeseran pattern terbesar yang mungkin terjadi pada pattern sebelum melakukan proses pencarian pada teks (Charras dan Lecroq, 1997).

Kemudian pada fase pencarian string dilakukan perbandingan pattern pada teks sehingga pattern ditemukan di dalam teks ataupun tidak ditemukan di dalam teks.

Dengan adanya aplikasi kumpulan hadits shahih berbasis android ini diharapkan pengguna smartphone dengan sistem operasi android mendapatkan sebagian informasi tentang hadits dengan mudah di tangan mereka. Tanpa harus kesulitan membawa buku yang tebal dan berat kemanapun mereka berada. Untuk mewujudkan hal tersebut, maka penulis tertarik untuk mengangkat suatu judul yaitu

Implementasi Algoritma Apostolico-Crochemore Pada Aplikasi Kumpulan Hadits Shahih Berbasis Android”.

1.2. Rumusan Masalah

Berdasarkan uraian latar belakang diatas, maka akan dibahas bagaimana mengimplementasikan algoritma Apostolico-Crochemore untuk menyelesaikan permasalahan dalam rangka pencarian hadits shahih berdasarkan kata kunci atau query yang diberikan oleh user.

1.3. Ruang Lingkup Penelitian

Adapun ruang lingkup penelitian dalam penelitian ini adalah sebagai berikut :

1. Aplikasi ini dirancang untuk smartphone android versi 4.2.2 (Jelly Bean) dan Menggunakan bahasa pemrograman Java (eclipse java IDE).

(48)

3

3. Aplikasi ini hanya akan memuat hadits shahih yang dikutip dari kitab terjemahan Shahih At-Targhib Wa At-Tarhib yang disusun oleh Syaikh Muhammad Nashiruddin al-Albani.

4. Aplikasi ini hanya memuat minimal 300 hadits shahih.

1.4. Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah untuk membangun aplikasi kumpulan hadits shahih agar mempermudah pencari hadits dengan mengimplementasikan algoritma Apostolico-Crochemore dalam sistem pencarian hadits pada aplikasi hadits shahih

berbasis Android.

1.5. Manfaat Penelitian

Adapun manfaat penelitian dalam tugas akhir ini adalah untuk memberikan kemudahan kepada pengguna yang ingin mendapatkan informasi tentang hadits melalui smartphone dengan sistem operasi android yang mereka miliki.

1.6. Metode Penelitian

Tahapan penelitian yang dilakukan dalam penelitian ini adalah : 1. Studi Literatur

Studi pustaka dilakukan dengan mencari dan mempelajari sumber-sumber pustaka yang berkaitan dengan topik penelitian yang diambil oleh penulis, yaitu mengenai String Matching dan algoritma Apostolico-Crochemore. Referensi yang digunakan

dapat berupa buku, jurnal, artikel, paper, dan makalah baik berupa media cetak maupun sumber ilmiah di internet yang dapat dipercaya.

2. Analisis dan Perancangan

Dalam tahap analisis dan perancangan akan dibuat gambaran sistem menggunakan flowchart, Unified Modelling Language (UML), dan Design Interface.

3. Implementasi

(49)

4

4. Pengujian

Pada tahap ini akan dilakukan pengujian pada sistem yang telah dibuat untuk menguji keakuratan output dari sistem tersebut.

5. Dokumentasi

Dokumentasi dilakukan dalam bentuk skripsi sebagai laporan dari hasil penelitian.

1.7. Sistematika Penelitian

Adapun langkah-langkah dalam menyelesaikan penelitian ini adalah sebagai berikut :

BAB 1 : PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang pemilihan judul skripsi

“Implementasi Algoritma Apostolico-Crochemore Pada Aplikasi Kumpulan Hadits Shahih Berbasis Android”, rumusan masalah, ruang lingkup penelitian, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.

BAB 2 : LANDASAN TEORI

Bab ini membahas mengenai teori-teori yang berkaitan dengan perancangan aplikasi kumpulan hadits shahih berbasis Android.

BAB 3 : ANALISIS DAN PERANCANGAN

Bab ini menjelaskan analisis yang dilakukan terhadap permasalahan dan penyelesaian persoalan dalam menggunakan aplikasi kumpulan hadits shahih berbasis Android dengan mengimplementasikan Algoritma Apostolico-Crochemore untuk mencari hadits shahih.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi implementasi perancangan sistem dari hasil analisis dan perancangan yang sudah dibuat, serta menguji sistem untuk menemukan kelebihan dan kekurangan pada sistem yang dibuat.

BAB 5 : KESIMPULAN DAN SARAN

(50)

vi

ABSTRAK

Hadits merupakan perkataan, perbuatan, ketetapan dan persetujuan dari Nabi Muhammad shallallahu „alaihi wa sallam yang dijadikan sebagai sumber hukum Islam kedua setelah Al-Qur‟an. Mempelajari hadits adalah salah satu hal yang sangat penting dalam Islam. Hadits yang dapat dijadikan panduan adalah hadits yang diyakini kebenarannya. Salah satu hadits yang paling diyakini kebenarannya adalah hadits shahih. Hadits shahih dapat ditemukan di dalam kitab-kitab hadits shahih seperti Shahih Al-Bukhari, Shahih Muslim, dan kitab ahli hadits abad ini yang di susun oleh Syaikh Al-Albani. Kitab-kitab tersebut sangat tebal dan berat untuk dibawa kemana saja. Dan dengan hadits yang begitu banyak, pencarian hadits atau kata yang dilakukan secara manual cukup menyulitkan. Untuk mempermudah setiap orang dalam mencari hadits shahih, maka dibuatlah aplikasi kumpulan hadits shahih berbasis android dengan mengimplementasikan algoritma Apostolico-Crochemore ke dalam sistem pencariannya. Algoritma Apostolico-Crochemore menggunakan tabel fungsi pinggiran kmpNext yang berasal dari Algoritma Knuth-Morris-Pratt untuk menghitung fungsi pinggiran yang mengindikasikan pergeseran x terbesar yang mungkin terjadi pada pattern x sebelum melakukan proses pencarian pada teks y. Penerapan algoritma Apostolico-Crochemore ini menghasilkan kemudahan pengguna smartphone yang bersistem operasi android dalam mencari hadits yang terdapat pada

aplikasi kumpulan hadits shahih berbasis android. Dalam algoritma Apostolico-Crochemore, semakin banyak huruf yang memiliki persamaan dalam sebuah pattern

maka itu tidak berpengaruh pada kecepatan proses pencarian pattern dalam teks karena jumlah perbandingannya adalah sama dengan pattern yang memiliki huruf yang sedikit persamaannya.

(51)

vii

THE IMPLEMENTATION OF APOSTOLICO-CROCHEMORE

ALGORITHM IN APPLICATION OF SAHEEH HADITH COLLECTION

BASED ON ANDROID

ABSTRACT

Hadith is the words, actions and approvals of the Prophet Muhammad shallallaahu 'alaihi wa sallam which is the second source of Islamic law after the Al-Qur'an. Learning the hadith is one thing that is very important in Islam. Hadith that can be used as a guide is hadith believed to be the truth. One of the most believed to be the truth hadith is saheeh hadith. Saheeh hadith can be found in the books of saheeh hadits such as Saheeh Al-Bukhari, Saheeh Muslim, and the book of hadith scholars of this century who collated by Shaykh al-Albani. The books are very thick and heavy to take anywhere. Searching the word of hadith manually is something troublesome, because there are so many hadith. In order to facilitate everyone in search of saheeh hadith, then made an application of saheeh hadith collection based on android by implementing the algorithm Apostolico-Crochemore into its search system. Apostolico-Crochemore algorithm uses the kmpNext shift table that derived from Knuth-Morris-Pratt algorithm to compute the shifts of the largest possible shift x occurs in pattern x before do the search process in the text y. Implementation of Apostolico-Crochemore algorithm in application saheeh hadith collection based on android can help smartphone with android operating system user to search the word of hadith in the application of saheeh hadith collection based on android. In Apostolico-Crochemore algorithm, the more letters having similarities in a pattern, then it did not influence his speed the search pattern in the text because the number of a comparison is similar with pattern that have the letters with little similarities.

(52)

IMPLEMENTASI ALGORITMA APOSTOLICO-CROCHEMORE PADA

APLIKASI KUMPULAN HADITS SHAHIH

BERBASIS ANDROID

SKRIPSI

DEWI ZAHRA

121401087

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(53)

ii

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA APOSTOLICO-

CROCHEMORE PADA APLIKASI KUMPULAN HADITS SHAHIH BERBASIS ANDROID

Kategori : SKRIPSI

Nama : DEWI ZAHRA

Nomor Induk Mahasiswa : 121401087

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA Diluluskan di

Medan, Oktober 2016 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001 Dr. Maya Silvi Lydia, B.Sc, M.Sc NIP. 19740127 200212 2 001

(54)

iii

PERNYATAAN

IMPLEMENTASI ALGORITMA APOSTOLICO-CROCHEMORE PADA APLIKASI KUMPULAN HADITS SHAHIH

BERBASIS ANDROID

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 31 Agustus 2016

(55)

iv

PENGHARGAAN

Alhamdulillah, segala puji bagi Allah subhanahu wa ta‟ala, yang dengan izin dan pertolongan-Nya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. Shalawat dan salam semoga dilimpahkan kepada Rasulullah shallallahu „alaihi wa sallam, para sahabatnya, dan orang-orang yang mengikuti petunjuknya sampai hari kiamat.

Dalam pengerjaan skripsi dengan judul Implementasi Algoritma Apostolico-Crochemore Pada Aplikasi Kumpulan Hadits Shahih Berbasis Android, penulis menyadari bahwa banyak pihak yang turut membantu serta memberikan motivasi. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:

1. Ayah, Ibu, Mas Ahsan Ridwana, Mbak Humaira dan Mas Ahmad Setyadi tercinta

yang telah meberikan kasih sayang, do‟a dan semangat tiada hentinya, sehingga

skripsi ini dapat diselesaikan.

2. Prof. Dr. Runtung Sitepu, SH, M.Hum selaku Rektor Universitas Sumatera Utara. 3. Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fakultas Ilmu Komputer dan

Teknologi Informasi Universitas Sumatera Utara.

4. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

5. Prof. Dr. Iryanto, M.Si selaku Dosen Pembimbing I yang telah memberikan kritik dan saran serta nasihat dalam pengerjaan skripsi ini.

6. Ibu Dr. Maya Silvi Lydia, B.Sc, M.Sc selaku Dosen Pembimbing II yang telah memberikan kritik dan saran serta perhatian dalam pengerjaan skripsi ini.

7. Prof. Dr. Muhammad Zarlis selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam pengerjaan skripsi ini.

8. Bapak Dr. Syahril Efendi, S.Si, MIT selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam pengerjaan skripsi ini.

(56)

v

10.Semua dosen dan seluruh pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

11.Teman-teman CKR, RPG, dan ZazuneShop yang telah menjadi keluarga kedua penulis selama mengikuti perkuliahan, kepada Dian Sartini, Nurhaliza Nasution, Novi Nuryanti Azharia, Neno Rama Dhianita, Zuhru Finty, Nurmardiah Siregar, Vici Indah Yana, Evelin Silvana Carolina Sinaga, Novita Permata Dewi, dan Lailatul Ilmi Sinaga.

12.Kak Yayang, Kak Aisyah, Kak Irma, Kak Tari, Kak Nurul, Kak Azizah, Kak Retri, Mbak Monik serta teman-teman yang pernah tergabung dalam satu lingkaran cinta (liqo‟) yaitu Athifah Putri Al-Mubarok, Wynda A. Siregar, Eni, Tika, Fitri, Dina, Ida, Lily, Windy, Hasbi, Dwi, Nisa dan lainnya yang telah memberikan inspirasi iman kepada penulis.

13.Johan Surya yang telah memberikan banyak bantuan, Mustafa Ahmad Reza, Siti Khadijah, Juwita P. Pasaribu, Nanda, teman kelas KOM-B dan teman-teman satu stambuk 2012 yang telah memberikan dukungan serta membantu dalam pengerjaan skripsi ini.

14.Rekan-rekan pengurus UKMI Al-Khuwarizmi, dan DPW KAM-Rabbani Fasilkom-TI yang telah memberikan banyak kontribusi yang bermanfaat, tempat belajar berorganisasi, serta tempat menimba pengalaman dan ilmu agama Islam. 15.Semua pihak yang terlibat langsung maupun tidak langsung yang tidak dapat

penulis ucapkan satu per satu karena keterbatasan penulis.

Semoga Allah subhanahu wa ta‟ala melimpahkan berkah dan hidayah-Nya kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.

Medan, 13 September 2016 Penulis,

(57)

vi

ABSTRAK

Hadits merupakan perkataan, perbuatan, ketetapan dan persetujuan dari Nabi Muhammad shallallahu „alaihi wa sallam yang dijadikan sebagai sumber hukum Islam kedua setelah Al-Qur‟an. Mempelajari hadits adalah salah satu hal yang sangat penting dalam Islam. Hadits yang dapat dijadikan panduan adalah hadits yang diyakini kebenarannya. Salah satu hadits yang paling diyakini kebenarannya adalah hadits shahih. Hadits shahih dapat ditemukan di dalam kitab-kitab hadits shahih seperti Shahih Al-Bukhari, Shahih Muslim, dan kitab ahli hadits abad ini yang di susun oleh Syaikh Al-Albani. Kitab-kitab tersebut sangat tebal dan berat untuk dibawa kemana saja. Dan dengan hadits yang begitu banyak, pencarian hadits atau kata yang dilakukan secara manual cukup menyulitkan. Untuk mempermudah setiap orang dalam mencari hadits shahih, maka dibuatlah aplikasi kumpulan hadits shahih berbasis android dengan mengimplementasikan algoritma Apostolico-Crochemore ke dalam sistem pencariannya. Algoritma Apostolico-Crochemore menggunakan tabel fungsi pinggiran kmpNext yang berasal dari Algoritma Knuth-Morris-Pratt untuk menghitung fungsi pinggiran yang mengindikasikan pergeseran x terbesar yang mungkin terjadi pada pattern x sebelum melakukan proses pencarian pada teks y. Penerapan algoritma Apostolico-Crochemore ini menghasilkan kemudahan pengguna smartphone yang bersistem operasi android dalam mencari hadits yang terdapat pada

aplikasi kumpulan hadits shahih berbasis android. Dalam algoritma Apostolico-Crochemore, semakin banyak huruf yang memiliki persamaan dalam sebuah pattern

maka itu tidak berpengaruh pada kecepatan proses pencarian pattern dalam teks karena jumlah perbandingannya adalah sama dengan pattern yang memiliki huruf yang sedikit persamaannya.

(58)

vii

THE IMPLEMENTATION OF APOSTOLICO-CROCHEMORE

ALGORITHM IN APPLICATION OF SAHEEH HADITH COLLECTION

BASED ON ANDROID

ABSTRACT

Hadith is the words, actions and approvals of the Prophet Muhammad shallallaahu 'alaihi wa sallam which is the second source of Islamic law after the Al-Qur'an. Learning the hadith is one thing that is very important in Islam. Hadith that can be used as a guide is hadith believed to be the truth. One of the most believed to be the truth hadith is saheeh hadith. Saheeh hadith can be found in the books of saheeh hadits such as Saheeh Al-Bukhari, Saheeh Muslim, and the book of hadith scholars of this century who collated by Shaykh al-Albani. The books are very thick and heavy to take anywhere. Searching the word of hadith manually is something troublesome, because there are so many hadith. In order to facilitate everyone in search of saheeh hadith, then made an application of saheeh hadith collection based on android by implementing the algorithm Apostolico-Crochemore into its search system. Apostolico-Crochemore algorithm uses the kmpNext shift table that derived from Knuth-Morris-Pratt algorithm to compute the shifts of the largest possible shift x occurs in pattern x before do the search process in the text y. Implementation of Apostolico-Crochemore algorithm in application saheeh hadith collection based on android can help smartphone with android operating system user to search the word of hadith in the application of saheeh hadith collection based on android. In Apostolico-Crochemore algorithm, the more letters having similarities in a pattern, then it did not influence his speed the search pattern in the text because the number of a comparison is similar with pattern that have the letters with little similarities.

(59)

viii

2.2. Pengertian Aplikasi 5

2.3. Pengertian Android 5

2.4. Pengertian Algoritma 6

2.4.1. Algoritma String Matching (pencocokan string) 7

2.4.2. Algoritma Apostolico-Crochemore 7

2.5. Penelitian Yang Relevan 10

Bab 3 Analisis Dan Perancangan

3.1. Analisis Sistem 11

3.1.1. Analisis Kebutuhan Sistem 11

3.1.2. Pemodelan 12

3.2. Perancangan Sistem 19

3.2.1. Menu Utama 19

3.2.2. Menu Navigation 20

Bab 4 Implementasi Dan Pengujian

4.1. Implementasi 23

4.1.1. Implementasi Algoritma Apostolico-Crochemore 24

4.2. Antarmuka Sistem 28

4.2.1. Menu Utama 29

(60)

ix

4.2.3. Menu Help dan Menu About 30

4.2.4. Menu Semua Hadits 31

4.3. Pengujian 31

4.3.1. Pengujian Pencarian Kata dengan Algoritma Apostolico-

Crochemore 31

Bab 5 Kesimpulan Dan Saran

5.1. Kesimpulan 33

5.2. Saran 33

Daftar Pustaka 34

(61)

x

DAFTAR TABEL

Nomor

Tabel Nama Tabel Halaman

2.1. Fungsi pinggiran kmpNext pada pattern x = G C A G A G A G 9

3.1. Skenario usecase input kata 13

3.2. Skenario usecase pencarian menggunakan algoritma Apostolico-Crochemore

13

3.3. Skenario usecase hasil pencarian 14

3.4. Keterangan gambar 3.6. rancangan desain interface Menu Utama

20 3.5. Keterangan gambar 3.7. rancangan desain interface Menu

Navigation

21 3.6. Keterangan gambar 3.8. rancangan desain interface Menu

About(1) dan Help(2)

22

4.1. Fungsi pinggiran kmpNext pada pattern x 24

4.2. Fungsi pinggiran kmpNext pada pattern x 26

4.3. Hasil Pencarian Kata dengan Algoritma Apostolico-Crochemore

(62)

xi

DAFTAR GAMBAR

Nomor

Gambar Nama Gambar Halaman

2.1. Pembandingan dengan algoritma Apostolico-Crochemore memperhatikan (i, j, k).

8

3.1. Use Case Diagram System 12

3.2. Activity Diagram 15

3.3. Sequence Diagram 15

3.4. Flowchart Preprocessing (Fase Proses Awal) 16

3.5. Flowchart Fase Pencarian String 17

3.6. Rancangan desain Interface Menu Utama 19

3.7. Rancangan desain Interface Menu Navigation 21 3.8. Rancangan desain Interface Menu About(1) dan Help(2). 22

4.1. Diagram Ishikawa 23

4.2. Tampilan contoh pencarian kata “umar” 28

4.3. Tampilan menu utama 29

4.4. Tampilan menu navigation 30

4.5. Tampilan menu help 30

(63)

xii

DAFTAR LAMPIRAN

Halaman

Listing Program 37

Gambar

Gambar 3.1. Use Case Diagram System
Tabel 3.1. Skenario usecase input kata
Tabel 3.3. Skenario usecase hasil pencarian
Gambar 3.2. Activity Diagram
+7

Referensi

Dokumen terkait

Adapun pekerjaan yang praktikan lakukan di unit simpan pinjam Koperasi Pegawai Maritim (KOPEGMAR) Jakarta selama melakukan Praktek Kerja Lapangan adalah sebagai

Begitu pula halnya dengan pertunjukan Wayang Calonarang sajian ida Bagus Sudiksa, karena begitu banyaknya para undangan merupakan rencang-rencang (pengikut) Betari

Untuk itu maka dibutuhkan koordinasi lintas sektor yang tidak hanya bersifat ad hoc dan hanya fokus pada konteks pemadaman akan tetapi dibutuhkan sebuah koordinasi sinergis

Pada penelitian ini di lakukan perancangan dan implementasi keamanan data document (.doc) dengan menggunakan metode enkripsi twofish yang berfungsi untuk mengenkripsi data

speaking ability was better improved. The improvement was made by them in all indicators. The highest improvement made by the students was found in term of fluency and the

Berdasarkan penelitian, pembahasan, pengujian, dan analisis terhadap sistem, maka dapat diambil kesimpulan sebagai berikut : (1) sistem keamanan data dokumen (

Daya serap air yang ditunjukkan pada Gambar 1, memberikan kecenderungan yang linier, dengan nilai R 2 = 0.869, artinya bahwa sebanyak 86,9% dari total daya

(3) Sesuai dengan konsep ESQ Ary Ginanjar Agustian, maka nilai-nilai karakter terdapat pada 6 rukun Iman, 5 rukun Islam dan Ihsan yang masing-masing terkandung