Implementasi Algoritma Horspool Dalam Pembuatan Kamus Istilah Psikologi Pada Platform Android

(1)

LISTING PROGRAM

// Source Code MainActivity.java package id.frappucino;

import android.app.Activity;

import android.content.res.Configuration;

import android.os.Bundle;

import android.support.v4.app.ActionBarDrawerToggle;

import android.support.v4.widget.DrawerLayout;

import android.view.MenuItem;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.AdapterView.OnItemClickListener;

public class MainActivity extends Activity { private DrawerLayout mDrawerLayout;

private ListView mDrawerList;

private ActionBarDrawerToggle mDrawerToggle; private CharSequence mJudulDrawer;

private CharSequence mJudul; private String[] mNama; @Override

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

setContentView(R.layout.activity_content);

// inisialisasi

mJudul = mJudulDrawer = getTitle();

mNama = getResources().getStringArray(R.array.array_drawer); mDrawerLayout = (DrawerLayout)

findViewById(R.id.drawer_layout);

mDrawerList = (ListView) findViewById(R.id.drawer_kiri); mDrawerList.setAdapter(new ArrayAdapter(this,

R.layout.item_navdrawer, mNama));

// memberi event klik item item daftar nama

mDrawerList.setOnItemClickListener(new OnItemClickListener() { @Override

public void onItemClick(AdapterView arg0, View arg1, int

posisi,

long id) {

// memanggil metode pilihItem() pilihItem(posisi);

} });


(2)

untuk

// membuka-menutup jika disentuh

getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true);

// merupakan metode untuk mengaktifkan drawer saat ikon ActionBar

// disentuh atau saat layar sebelah kiri digeser (sliding) ke kanan

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_drawer, 0, 0) {

// metode saat drawer dalam kondisi tertutup

// judul pada ActionBar menampilkan item buah terpilih public void onDrawerClosed(View view) {

getActionBar().setTitle(mJudul); invalidateOptionsMenu();

}

// metode saat drawer dalam kondisi terbuka

// judul pada ActionBar menampilkan nama aplikasi: public void onDrawerOpened(View drawerView) { getActionBar().setTitle(mJudulDrawer); invalidateOptionsMenu();

} };

// mDrawerLayout diberi event mDrawerToggle mDrawerLayout.setDrawerListener(mDrawerToggle);

// dalam keadaan awal, saat aplikasi mulai dijalankan, item yang dipilih

// adalah indeks 0

if (savedInstanceState == null) { pilihItem(0);

}

new Data(new DbHelper(this)).insertAllWords1(); }

private void pilihItem(int position) {

// metode saat item planet dipilih; judul pada ActionBar akan // diperbarui kemudian drawer akan menutup

switch (position) { case 0:

getFragmentManager().beginTransaction().replace(R.id.frame_konten,

new MainFragment(), "MainFragment").commit(); break;

case 1:

getFragmentManager().beginTransaction().replace(R.id.frame_konten,

new kosaKata(), "kosaKata").commit(); break;

case 2:

getFragmentManager().beginTransaction().replace(R.id.frame_konten,


(3)

break; }

mDrawerList.setItemChecked(position, true); setTitle(mNama[position]);

mDrawerLayout.closeDrawer(mDrawerList); }

}

// Source Code SearchMethod.java package id.frappucino;

import java.util.ArrayList;

public class SearchMethod {

private char[] x, y; // pattern, text

private int m, n; // pattern length, text length

private String matches; // string of match positions private char[] showmatches; // char array that shows matches

private int[] BmBc = new int[256]; // used by the BMH algorithm /** searches the text yy for the pattern xx

*/

public void search(String yy, String xx) { setText(yy);

setPattern(xx); horspoolSearch(); }

/** sets the text */

private void setText(String yy) {

n=yy.length(); y=yy.toCharArray(); initmatches(); }

/** sets the pattern */

private void setPattern(String xx) {

m=xx.length(); x=xx.toCharArray(); BmBc = null;

BmBc = new int[256]; horspoolPreprocess(); }

/** initializes match positions and the array showmatches */

private void initmatches() {

matches="";

showmatches=new char[n]; for (int i=0; i<n; i++)


(4)

showmatches[i]=' '; }

/** preprocessing of the pattern */

private int[] horspoolPreprocess() {

int i,j;

for (i=0; i < 256; i++){ BmBc[i]=m;

}

for (j=0; j<m-1; j++){ BmBc[x[j]] = m - 1 - j; }

return BmBc; }

/** searches the text for all occurences of the pattern */

private void horspoolSearch() {

int i = m-1; int k;

k = 0;

while (i <= n-1) {

while ((k < m) && ((y[i-k] == x[m-1-k])))//jika huruf pada indeks pattern sama dengan indeks huruf pada text

{

k++; }

if (k==m) //apabila jumlah k sama dengan jumlah pattern {

report(i-m+1); //menampilkan indeks pada string teks k++;

} else {

i = i+BmBc[y[i]]; }

} }

/** reports a match */

private void report(int i) {

try {

matches += i + " ";

//Log.d("Hasil Matches", matches); //showmatches[i] = '^';

} catch (Exception e){ }

}

/** returns the match positions after the search */

public int[] getMatches() {


(5)

int i = 0, j = 0, n = matches.length();

ArrayList<String> list = new ArrayList<String>(); for(; i < n; i++) {

if(matches.charAt(i) == ' ') {

list.add(matches.substring(j, i)); j = i + 1;

} }

int[] result = new int[list.size()]; i = 0;

for(String s : list)

result[i++] = Integer.valueOf(s); return result;

} }

// Source Code activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" >

<EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_marginTop="24dp" android:ems="19" android:hint="@string/masukkan_kata" android:inputType="text" android:textColorLink="@color/black" android:textSize="20sp" />

<ListView

android:id="@+id/result"

android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/editText1" android:cacheColorHint="@color/black" /> <TextView android:id="@+id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_below="@id/result" android:text="Not Found" android:layout_marginTop="20dp" android:textSize="18sp" />


(6)

CURRICULUM VITAE

Data Diri

Nama : Ade Mutiara Kartika Dewi Nasution Tempat/Tanggal Lahir : Lhokseumawe/21 April 1994

Alamat Sekarang : Jl. Pasar I Gg. Jatiluhur No. 14B, Tanjungsari, Medan 20132

Alamat Orang Tua : Jl. Sudirman Gg. Mangaraja Bintang No. 02, Padangsidimpuan

Agama : Islam

Jenis Kelamin : Perempuan Nomor Hp : 082294073926

Email : ademutiaraa@gmail.com

Riwayat Pendidikan

2000 – 2006 : SD Negeri 014 Sungai Sagu, Indragiri Hulu 2006 – 2009 : SMP Negeri 1 Ujungbatu

2009 – 2012 : SMA Negeri 1 Padangsidimpuan

2012 – : S1 Ilmu Komputer Universitas Sumatera Utara, Medan

Seminar/Kursus/Workshop

2015 : Kursus Bahasa Inggris di Cambridge School of English (CaSE)

2014 : Seminar Nasional Gelora Literasi Teknologi Informasi & Komunikasi

2014 : Workshop Fotografi Dasar VII UKM Fotografi USU 2013 : Seminar Internasional Forum Bisnis (MIBEX 2013)

Keahlian

Bahasa : Indonesia, Inggris Bahasa Pemrograman : C++


(7)

DBMS : MySQL

Multimedia : MovieMaker, Proshow

Pengalaman Organisasi

2013-2014 : Pemerintahan Mahasiswa (PEMA) Fasilkom-TI USU 2014-2015 : UKM Fotografi USU


(8)

DAFTAR PUSTAKA

Baeza-Yates, R.A. & Regnier, M. 1992. Average running time of the boyer-moore-horspool algorithm. Journal Theoretical Computer Science Vol. 92, No. 1: 19-31.

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

Cormen, T.H., Leiserson, C.E., Rivest, R.L. & Stein, C. 1994. Introduction to

Algorithms. McGraw-Hill Book Company: North America.

Effendi, D., Hartono, T. & Kurnaedi, A. 2013. Penerapan string matching menggunakan algoritma Boyer-Moore pada translator bahasa Pascal ke C.

Majalah Ilmiah Unikom Vol. 11, No. 2: 262-271.

Hastriana, E. 2010. Perbandingan algoritma string matching knuth-morris-pratt dengan boyer-moore-horspool pada simulasi pengenalan sidik jari. Skripsi. Universitas Islam Negeri Syarif Hidayatullah.

Hasugian, J. 2006. Penggunaan bahasa alamiah dan kosa kata terkendali dalam sistem temu balik informasi berbasis teks. Jurnal Studi Perpustakaan dan Informasi Vol. 2, No. 2: 72-80.

Horspool, R.N. 1980. Practical fast searching in strings. Journal Software Practice

and Experience Vol. 10: 501-506.

Knuth D.E., Morris (Jr) J.H. & Pratt V.R. 1977. Fast pattern matching in strings.

SIAM Journal on Computing Vol. 6, No.1: 323-350.

Mirabella, F.M. 2012. Variasi-variasi algoritma boyer-moore dan perbandingannya dalam pencarian string. Skripsi. Institut Teknologi Bandung.

Parno, Dharmayanti & Rahmansyah, N. 2011. Aplikasi mobile kamus istilah psikologi berbasis Android 2.2. Prosiding Psikologi, Ekonomi, Sastra, Arsitektur & Sipil

(PESAT), pp. 121-128.

Saptari, J. & Purwono. 2006. Temu kembali informasi bibliografi dengan bahasa alami pada field judul dan subjek : studi efektifitas katalog induk terpasang perpustakaan UGM. Jurnal Berkala Ilmu Perpustakaan dan Informasi Vol. 3, No. 1: 1-13.

Sheik, S.S., Aggarwal, S.K., Poddar, A., Balakhrisnan, N. & Sekar, K. 2004. A fast pattern matching algorithm. Journal of Chemical Information and Computer

Science Vol. 44, No. 4: 1251-1256.

Singh, R. & Verma, H.N. 2011. A fast string matching algorithm. International


(9)

Singla, N. & Garg, D. 2012. String matching algorithms and their applicability in various applications. International Journal of Soft Computing and Engineering Vol. 1, No. 6: 218-222.

Tambun, E.D. 2010. Perbandingan penggunaan algoritma boyer-moore dan algoritma horspool pada pencarian string dalam bahasa medis. Skripsi. Institut Teknologi Bandung.

Wibowo, A. 2012. Peningkatan performansi sistem temu balik informasi dengan metode phrasal translation dan query expansion. Skripsi. Polteknik Negeri Batam.


(10)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem dilakukan untuk dapat memahami kebutuhan sistem dan gambaran tugas-tugas yang akan dikerjakan, sebelum membangun sistem terlebih dahulu dilakukan beberapa tahap analisis untuk mengidentifikasi segala kebutuhan yang akan diterapkan dalam sistem agar tidak terjadi kesalahan dan sistem yang dibangun akan optimal.

3.1.1 Analisis Masalah

Mengidentifikasi masalah merupakan langkah pertama yang dilakukan dalam tahap analisis sistem. Masalah dapat didefinisikan sebagai suatu pertanyaan yang diinginkan untuk dipecahkan. Masalah inilah yang menyebabkan sasaran dari sistem tidak dapat dicapai. Oleh karena itu langkah pertama yang harus dilakukan pada tahap ini adalah mengidentifikasi terlebih dahulu masalah yang terjadi (identify).

Kebutuhan masyarakat terhadap layanan teknologi berbasis IT sangat bervariatif, salah satu kebutuhan adalah kebutuhan akan ketersediaan kamus dengan berbagai kepentingan mulai dari kamus yang bersifat umum seperti kamus bahasa hingga kamus istilah-istilah khusus seperti kamus politik, kamus ekonomi maupun kamus psikologi (Parno, et al. 2011).

Seperti yang diketahui, ilmu psikologi memiliki istilah-istilah asing yang tidak diketahui oleh orang awam. Kamus istilah psikologi saat ini banyak beredar dalam bentuk buku, yang penggunaannya menyulitkan karena pengguna harus mencari arti


(11)

dan istilah psikologi secara manual. Disisi lain, buku sangat sulit untuk dibawa kemana-mana dan tidak dapat di-update setiap saat sesuai dengan kebutuhan dan perkembangan pada saat ini. Pencarian istilah pada buku kamus mengakibatkan kesulitan jika dilakukan secara manual karena melibatkan data yang jumlahnya banyak. Mengingat masyarakat dewasa sangat akrab dengan layanan smartphone, maka penulis berniat untuk membuat suatu aplikasi kamus pada platform Android yang memuat istilah-istilah psikologi. Dengan adanya aplikasi kamus psikologi berbasis Android ini, proses pencarian istilah-istilah psikologi akan menjadi lebih mudah dan dipastikan akan lebih cepat.

Untuk mengidentifikasi masalah yang dijelaskan di atas digunakan Fishbone

Diagram (Diagram Tulang Ikan). Fishbone Diagram adalah sebuah alat visual untuk

mengidentifikasi, mengeksplorasi dan secara grafik menggambarkan secara detail semua penyebab yang berhubungan dengan suatu permasalahan. Untuk lebih jelasnya mengenai Fishbone Diagram, dapat dilihat pada Gambar 3.1.

Membuat kamus istilah psikologi pada platform Android menggunakan algoritma Horspool Pengguna Sistem Mesin Kamus Metode Mempunyai mobilitas yang tinggi Belum ada aplikasinya Pencarian kata belum

dapat dilakukan Sulitnya mendapatkan informasi data dengan cepat Kamus masih berbentuk buku Kesulitan dalam mendapatkan perangkat elektronik

Proses pencarian data sangat banyak Metode dilakukan

manual Data tidak dapat

diperbarui setiap saat

Gambar 3.1 Fishbone Diagram

Seperti yang terlihat pada Gambar 3.1 di atas, masalah utama adalah pada persegi panjang di posisi paling kanan gambar (bagian kepala) Fishbone Diagram. Kategori masalah ditunjukkan pada empat persegi panjang yang masing-masing terhubung ke garis utama, sedangkan rincian masalah ditunjukkan dalam bentuk tanda panah horizontal pada masing-masing kategori masalah.


(12)

3.1.2 Analisis Kebutuhan Sistem

Dalam analisis kebutuhan sistem terdapat dua bagian penting yang harus dipenuhi, yaitu analisis kebutuhan fungsional sistem dan analisis kebutuhan non-fungsional sistem.

3.1.2.1Analisis Kebutuhan Fungsional Sistem

Analisis kebutuhan fungsional sistem adalah analisis terhadap kebutuhan secara fungsional baik dalam aliran data ataupun informasi dan merupakan hal yang harus dimiliki oleh sistem untuk mencapai tujuannya. Berikut ini merupakan beberapa kebutuhan fungsional sistem yang akan dibangun, antara lain:

1. Sistem dapat membaca pattern yang ingin dicari pada teks yang sebelumnya telah diinput.

2. Sistem dapat memanggil dan menampilkan data berupa string yang berasal dari database Android (pada sistem ini menggunakan SQLite).

3. Sistem dapat menghasilkan arti kata dari pattern yang dicari dengan menggunakan algoritma Horspool.

4. Sistem ini merupakan aplikasi pada platform Android.

3.1.2.2Analisis Kebutuhan Non-Fungsional Sistem

Analisis kebutuhan non-fungsional adalah suatu analisis untuk mengetahui elemen-elemen apa saja yang berhubungan dengan sistem yang sedang berjalan. Untuk mendukung kinerja sistem, sistem sebaiknya dapat berfungsi sebagai berikut:

1. Interface sistem harus mudah digunakan sehingga dapat dioperasikan dengan baik

oleh pengguna.

2. Sistem dibangun dengan perangkat yang tidak mengeluarkan biaya yang besar dan dapat berjalan dengan baik pada berbagai versi sistem operasi perangkat Android.

3.1.3 Pemodelan Sistem

Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang objek apa saja yang akan berinteraksi dengan sistem, serta hal-hal apa saja yang harus


(13)

dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan baik sesuai dengan kegunaannya.

Pada penelitian ini digunakan UML (Unified Modeling Language) sebagai bahasa pemodelan untuk mendesain merancang sistem yang akan dibangun. UML yang digunakan antara lain use case diagram, activity diagram dan sequence diagram.

3.1.3.1Use Case Diagram

Use Case Diagram menggambarkan kebutuhan sistem secara fungsional dengan

mengidentifikasi aktor-aktor yang terlibat dan berinteraksi dengan fungsi dasar pada sistem. Use Case Diagram akan menjelaskan fungsi apa saja yang dikerjakan oleh sistem. Use Case Diagram dari sistem yang akan dibangun dapat ditunjukkan pada Gambar 3.2 berikut:


(14)

Deskripsi Use Case Menampilkan Field Pencarian pada Gambar 3.2 dapat dilihat pada Tabel 3.1 berikut.

Tabel 3.1 Deskripsi Use Case Menampilkan Field Pencarian

Name Use-case Menampilkan field pencarian Actors Pengguna

Description Use Case ini mendeskripsikan proses menampilkan field untuk melakukan pencarian

Basic Flow Pengguna dapat memasukkan istilah yang akan dicari Alternate Flow Pengguna dapat melihat istilah yang sudah tersimpan Pre Condition -

Post Condition Sistem akan melakukan pencocokan terhadap istilah yang dicari

Pada proses Menginput Istilah, deskripsi Use Case dapat dinyatakan dalam Tabel 3.2 berikut.

Tabel 3.2 Deskripsi Use Case Menginput Istilah

Name Menginput Istilah Actors Pengguna

Description Use Case ini mendeskripsikan proses menginputkan istilah Basic Flow Pengguna menginputkan istilah yang akan dicari

Alternate Flow Pengguna dapat kembali ke menu awal dan memilih untuk menginput istilah baru, melihat istilah yang sudah tersimpan dan melihat tentang Pre Condition Pengguna dapat melihat menu awal


(15)

Pada proses Menampilkan Hasil Pencarian, deskripsi Use Case dinyatakan dalam Tabel 3.3 berikut.

Tabel 3.3 Deskripsi Use Case Menampilkan Hasil Pencarian

Name Menampilkan Hasil Pencarian Actors Pengguna

Description Use Case ini mendeskripsikan proses menampilkan hasil pencarian istilah

Basic Flow Pengguna memilih istilah yang telah ditemukan

Alternate Flow Pengguna dapat kembali ke menu awal dan memilih untuk mencari istilah baru, melihat istilah yang sudah tersimpan dan melihat tentang Pre Condition Pengguna dapat melihat menu awal

Post Condition Pengguna mengetahui arti dari istilah tersebut

3.1.3.2 Activity Diagram

Activity Diagram merupakan bentuk khusus dari state machine yang bertujuan

memodelkan komputasi-komputasi dan aliran-aliran kerja yang terjadi dalam sistem/perangkat lunak yang sedang dikembangkan. Activity Diagram

menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi dan bagaimana keseluruhan aktivitas berakhir. Activity Diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Untuk proses pencarian istilah pada kamus psikologi menggunakan algoritma Horspool, acticity diagram dapat dilihat pada Gambar 3.3 pada halaman selanjutnya.


(16)

Gambar 3.3 Activity Diagram Proses Pencarian Istilah

Seperti yang terlihat pada Gambar 3.3, sistem menampilkan layout menu utama pada Kamus Istilah Psikologi di tahap awal kemudian pengguna dapat memilih untuk melakukan pencarian istilah dengan menginput istilah yang ingin dicari. Sistem merespon dengan menampilkan pattern sesuai dengan yang diinput pengguna. Kemudian pengguna dapat memilih istilah kata yang telah ditemukan untuk melihat arti dari kata tersebut dan sistem menampilkan arti dari istilah yang dicari.


(17)

3.1.3.3Sequence Diagram

Sequence Diagram digunakan untuk menggambarkan interaksi antara objek dengan

proses yang terkait pada kelas diagram melalui message dalam eksekusi operation, untuk satu buah use case. Sequence membantu untuk menggambarkan data yang masuk dan keluar dari sistem, seperti yang terlihat pada Gambar 3.4 berikut.

Gambar 3.4 Sequence Diagram

Pada Sequence Diagram seperti yang terlihat pada Gambar 3.4 diatas, yang dilakukan adalah aktor mengakses menu utama untuk membuka field inputan pencarian, kemudian menginput istilah yang akan dicari lalu akan memanggil fungsi BmBc() untuk menghitung nilai pergeseran dan melakukan proses pencocokan string menggunakan algoritma Horspool. Kemudian menampilkan hasil pencarian istilah kata.

3.1.3.4Flowchart Sistem dan Algoritma

Flowchart merupakan gambar atau bagan yang menunjukkan aliran data di dalam


(18)

menunjukkan aliran pekerjaan secara keseluruhan dari sistem. Bagan ini menjelaskan urutan-urutan dari prosedur yang ada di dalam sistem. Flowchart dari sistem yang akan dibangun dapat dilihat pada Gambar 3.5 berikut ini.


(19)

Untuk flowchart fungsi proses perhitungan bad-character dan pencarian algoritma Horspool dapat dilihat pada Gambar 3.6 dan 3.7 berikut.


(20)

(21)

3.2 Perancangan Interface

Perancangan antarmuka (interface) merupakan salah satu bagian yang sangat penting dalam sebuah perancangan sistem. Perancangan antarmuka dibuat agar mudah dalam membangun sebuah sistem. Sebuah antarmuka harus dirancang dengan memperhatikan pengguna sehingga dapat memberikan kemudahan dan kenyamanan untuk digunakan oleh pengguna.

3.2.1 Antarmuka Menu Utama

Perancangan Menu Utama dapat dilihat pada Gambar 3.8 berikut.

Gambar 3.8 Rancangan Antarmuka Menu Utama Keterangan Gambar 3.8 di atas adalah sebagai berikut:

1. Application Icon untuk menampilkan ikon dari aplikasi.

2. Textview Judul untuk menampilkan judul menu utama.

3. Edittext Input untuk menginput data istilah psikologi.

4. Textview Istilah untuk menampilkan nama istilah psikologi.

5. Listview Data Istilah untuk menampilkan seluruh istilah yang bersesuaian dengan


(22)

3.2.2 Antarmuka Menu Psychology Term

Perancangan Menu Psychology Term dapat dilihat pada Gambar 3.9 berikut.

Gambar 3.9 Rancangan Antarmuka Menu Psychology Term

Keterangan Gambar 3.9 di atas adalah sebagai berikut: 1. Imagebutton untuk menampilkan Menu Navigasi.

2. Application Icon untuk menampilkan ikon dari aplikasi.

3. Textview Judul untuk menampilkan judul menu Psychology Term. 4. Button Actionbar Add untuk menambah daftar istilah baru.

5. Textview Data Istilah untuk menampilkan nama istilah psikologi.

6. Imageview Delete untuk menghapus data istilah.

7. Imageview Edit untuk mengubah data istilah.


(23)

3.2.3 Antarmuka Menu About

Perancangan Menu About dapat dilihat pada Gambar 3.10 berikut.

Gambar 3.10 Rancangan Antarmuka Menu About

Keterangan Gambar 3.10 di atas adalah sebagai berikut: 1. Imagebutton untuk menampilkan Menu Navigasi.

2. Application Icon untuk menampilkan ikon dari aplikasi.

3. Textview Judul untuk menampilkan judul menu About.

4. Textview Deskripsi untuk menampilkan deskripsi kamus. 5. Textview untuk menampilkan versi aplikasi.


(24)

3.2.4 Antarmuka Menu Navigation

Perancangan Menu Navigation dapat dilihat pada Gambar 3.11 berikut.

Gambar 3.11 Rancangan Antarmuka Menu Navigation

Keterangan Gambar 3.11 di atas adalah sebagai berikut: 1. Imagebutton untuk menampilkan Menu Navigasi.

2. Application Icon untuk menampilkan ikon dari aplikasi.

3. Textview Judul untuk menampilkan judul menu.

4. Navigation Searching untuk menampilkan Menu Utama yaitu Menu Searching.

5. Navigation Psychology Term untuk menampilkan daftar istilah yang telah

tersimpan.


(25)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Implementasi sistem merupakan tahapan yang harus dilakukan dalam proses pengembangan perangkat lunak. Setelah melewati proses analisis dengan mempertimbangkan kemungkinan yang akan diterapkan kedalam sistem maka langkah selanjutnya adalah mengimplementasikan apa yang telah dianalisis sebelumnya. Sistem ini dibangun dengan menggunakan Android Studio 1.2.2. Pada sistem ini terdapat 3 menu, yaitu: Menu Utama, Menu Psychology Terms, Menu

About.

4.1.1 Implementasi Algoritma Horspool

Penerapan algoritma Horspool dalam sistem yang dibangun adalah pada proses pencarian dalam mencari data istilah psikologi yang ingin diketahui artinya. Adapun langkah yang dilakukan adalah melakukan pencarian data yang telah tersimpan lebih dulu pada edittext dalam menu utama. Pada algoritma disimpan informasi yang digunakan untuk melakukan pergeseran apabila ketidakcocokan terjadi dan tidak hanya satu karakter sehingga mempercepat pencocokan string. Algoritma ini melakukan pencocokan dari kanan ke kiri. Untuk contoh pencarian dapat dilihat pada Gambar 4.1 seperti yang terlihat pada halaman selanjutnya.


(26)

Contoh:

Kata yang dicari: motive

Gambar 4.1 Contoh Pencarian

Gambar 4.1 di atas menunjukkan contoh pencarian untuk kata “motive”. Pada hasil pencarian, muncul istilah “Abundancy motive” dan “Safety motive”. Seperti yang telah dijelaskan sebelumnya bahwa algoritma Horspool mencocokkan karakter dari kanan ke kiri.

4.2 Antarmuka Sistem

Pada aplikasi kamus istilah psikologi menggunakan algoritma Horspool ini terdapat tiga menu, yaitu:

1. Menu Utama

2. Menu Psychology Terms 3. Menu About


(27)

4.2.1 Menu Utama

Pada menu utama, terdapat 1 button actionbar navigation yang berfungsi untuk mengarahkan pengguna menuju halaman lain dan 1 edittext yang berfungsi untuk mencari data istilah yang ingin dicari artinya menggunakan algoritma Horspool. Menu utama dapat dilihat pada Gambar 4.2 berikut ini.

Gambar 4.2 Menu Utama

Pada menu utama seperti yang terlihat pada Gambar 4.2 di atas, juga akan menampilkan daftar istilah yang bersesuaian dengan pencarian yang ditampilkan dalam listview.

4.2.2 Menu Psychology Terms

Pada menu ini akan ditampilkan 2 button actionbar yaitu: button actionbar navigation yang berfungsi untuk mengarahkan ke halaman lain, button actionbar add yang berfungsi jika ingin menambahkan istilah baru dan ditampilkan 2 imageview yaitu:

imageview delete yang berfungsi jika kita ingin menghapus istilah yang telah

tersimpan, imageview edit yang berfungsi jika kita ingin mengubah istilah ataupun arti dari data yang telah tersimpan. Menu psychology terms akan ditampilkan dalam Gambar 4.3 sebagai berikut:


(28)

Gambar 4.3 Menu Psychology Terms

Seperti yang terlihat pada Gambar 4.3 di atas, menu psychology terms juga akan menampilkan keseluruhan data yang telah tersimpan dalam listview.

4.2.3 Menu About

Pada menu ini akan ditampilkan sebuah button actionbar yaitu: button actionbar

navigation yang berfungsi untuk mengarahkan ke halaman lain. Menu about juga

menampilkan deskripsi singkat tentang sistem. Menu about ditampilkan dalam Gambar 4.4 pada halaman selanjutnya.


(29)

Gambar 4.4 Menu About

Seperti yang terlihat pada Gambar 4.4 di atas, menu about menampilkan informasi mengenai aplikasi yang dibuat, versi aplikasi.

4.2.4 Menu Navigation

Pada menu navigation ditampilkan menu pilihan yaitu List searching, List psychology

terms, List about. Menu navigation akan muncul ketika icon navigation yang terdapat

pada sudut kiri atas dipilih. Menu navigation dapat dilihat pada Gambar 4.5 pada halaman selanjutnya.


(30)

Gambar 4.5 Menu Navigation

Seperti yang terlihat pada Gambar 4.5 di atas, menu navigation menampilkan tiga pilihan menu yaitu menu searching, menu psychology terms dan menu about.

4.3 Pengujian Sistem

Pengujian sistem dilakukan untuk mengetahui bagaimana kinerja sistem dalam pencarian istilah psikologi menggunakan algoritma Horspool. Dalam pengujian, yang akan dicari adalah istilah psikologi sebagai field-nya. Semua hasil pencarian ditampilkan sesuai dengan inputan yang match pada pencarian.

4.3.1 Pengujian Pencarian Data Istilah Dengan Algoritma Horspool

Pada Tabel 4.1 seperti yang terlihat pada halaman selanjutnya, dapat dilihat hasil pencarian data istilah menggunakan algoritma Horspool.


(31)

Tabel 4.1 Hasil Pencarian Data Istilah dengan Algoritma Horspool Nama Hasil

Pencarian

Gambar Hasil

A01 Cocok

A02 Cocok


(32)

A04 Cocok

A05 Tidak cocok


(33)

A07 Cocok

4.3.2 Pengujian Proses Add Data

Gambar 4.6 di bawah menyatakan proses tambah data istilah baru. Data yang telah ditambah akan disimpan di database sqlite dengan nama tabel Word dalam kolom

Column_Type_Istilah dan kolom Column_Type_Arti dan dapat dilihat pada listview menu psychology terms.


(34)

Seperti yang terlihat pada Gambar 4.6 di atas ketika button Add diklik, maka akan keluar form baru add new term. Terdapat kolom “term” untuk memasukkan istilah baru dan kolom “meaning” untuk memasukkan arti dari istilah baru tersebut serta terdapat button “Add” untuk menyimpan istilah dan arti ke dalam listview pada menu

psychology terms.

4.3.3 Pengujian Proses Edit Data

Pada Gambar 4.7 berikut terlihat proses edit data istilah. Data yang telah diedit atau dibuat baru tersimpan dalam database sqlite dengan nama tabel Word dalam kolom

Column_Type_Istilah dan kolom Column_Type_Arti dan dapat dilihat pada listview

pada menu psychology terms.

Gambar 4.7 Edit Data

Seperti yang terlihat pada Gambar 4.7 di atas ketika button Edit diklik, maka akan keluar form baru change word. Terdapat kolom “term” untuk mengedit istilah dan kolom “meaning” untuk mengedit arti dari istilah baru tersebut serta terdapat button “Change” untuk menyimpan istilah dan arti yang baru ke dalam listview pada menu


(35)

4.3.4 Pengujian Proses Delete Data

Pada Gambar 4.8 terlihat proses delete data istilah. Data yang telah di-delete akan terhapus dalam database sqlite dan dapat dilihat pada listview pada menu psychology

terms.

Gambar 4.8 Delete Data

Seperti yang terlihat pada Gambar 4.8 di atas ketika button Delete diklik, maka akan keluar form baru delete word. Terdapat button “ok” untuk menyetujui proses delete data yang dipilih, dimana istilah yang di-delete akan terhapus dari listview pada menu


(36)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil dari Implementasi Algoritma Horspool Dalam Pembuatan Kamus Istilah Psikologi Pada Platform Android, maka dapat disimpulkan bahwa:

1. Kamus istilah psikologi dibuat dengan mengimplementasikan algoritma Horspool untuk pencocokan data, dengan field istilah sebagai inputan pencariannya.

2. Sistem menyimpan dan mencari istilah psikologi menggunakan algoritma Horspool pada platform Android.

5.2. Saran

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

1. Untuk pengembangan selanjutnya, diharapkan agar dapat menangani pergeseran

pattern dari arah spesifik yang ditentukan oleh algoritma (in a specific order) untuk

proses pencarian yang lebih efisien.

2. Untuk pengembangan selanjutnya, diharapkan aplikasi ini menyediakan menu pilihan algoritma berbagai pencocokan string seperti Rabin-Karp, Quick Search,

Reverse Colussi sehingga memberi pengetahuan lebih tentang algoritma

pencocokan string.

3. Untuk pengembangan selanjutnya, diharapkan agar dapat membuat online database berbagai istilah psikologi agar dapat terintegrasi secara real-time.


(37)

BAB 2

LANDASAN TEORI

2.1 String Matching

2.1.1 Pengertian String Matching

String matching adalah pencarian sebuah pattern pada sebuah teks (Cormen, T.H. et al. 1994). String matching digunakan untuk menemukan suatu string yang disebut

dengan pattern dalam string yang disebut dengan teks (Charras, C. & Lecroq, T. 1997). Prinsip kerja algoritma string matching (Effendi, D. et al. 2013) adalah sebagai berikut:

1. Memindai teks dengan bantuan sebuah window yang ukurannya sama dengan panjang pattern.

2. Menempatkan window pada awal teks.

3. Membandingkan karakter pada window dengan karakter dari pattern. Setelah pencocokan (baik hasilnya cocok atau tidak cocok) dilakukan pergeseran ke kanan pada window. Prosedur ini dilakukan berulang-ulang sampai window berada pada akhir teks. Mekanisme ini disebut mekanisme sliding window.

Algoritma string matching mempunyai tiga komponen utama (Effendi, D. et

al. 2013), yaitu:

1. Pattern, yaitu deretan karakter yang akan dicocokkan dengan teks, dinyatakan

dengan [ … − ], panjang pattern dinyatakan dengan .

2. Teks, yaitu tempat pencocokan pattern dilakukan. Dinyatakan dengan [ … − ], panjang teks dinyatakan dengan .


(38)

3. Alfabet, berisi semua simbol yang digunakan oleh bahasa pada teks dan pattern, dinyatakan dengan ∑ dengan ukuran dinyatakan ASIZE.

2.1.2 Cara Kerja String Matching

Cara yang jelas untuk mencari pattern yang cocok dengan teks adalah dengan mencoba mencari di setiap posisi awal dari teks dan mengabaikan pencarian secepat mungkin jika karakter yang salah ditemukan (Knuth, D.E. et al. 1977). Proses pertama adalah menyelaraskan bagian paling kiri dari pattern dengan teks. Kemudian dibandingkan karakter yang sesuai dari teks dan pattern. Setelah seluruhnya cocok maupun tidak cocok dari pattern, window digeser ke kanan sampai posisi − +

pada teks. Menurut Singh, R. & Verma, H.N. (2011), efisiensi dari algoritma terletak pada dua tahap:

1. Tahap praproses, tahap ini mengumpulkan informasi penuh tentang pattern dan menggunakan informasi ini pada tahap pencarian.

2. Tahap pencarian, pattern dibandingkan dengan window dari kanan ke kiri atau kiri ke kanan sampai kecocokan atau ketidakcocokan terjadi.

Dengan sebuah nilai karakter (m < n) yang akan dicari dalam teks. Dalam algoritma pencocokan string, teks diasumsikan berada di dalam memori, sehingga bila kita mencari string di dalam sebuah arsip, maka semua isi arsip perlu dibaca terlebih dahulu kemudian disimpan di dalam memori. Jika pattern muncul lebih dari sekali di dalam teks, maka pencarian hanya akan memberikan keluaran berupa lokasi pattern ditemukan pertama kali (Wulan, 2011).

2.1.3 Klasifikasi Algoritma String Matching

Algoritma string matching dapat diklasifikasikan menjadi tiga bagian menurut arah pencariannya (Charras, C. & Lecroq, T. 1997), yaitu:

1. From left to right

Dari arah yang paling alami, dari kiri ke kanan, yang merupakan arah untuk membaca. Algoritma yang termasuk dalam kategori ini adalah algoritma Brute

Force, algoritma Morris dan Pratt yang kemudian dikembangkan menjadi


(39)

2. From right to left

Dari arah kanan ke kiri, arah yang biasanya menghasilkan hasil terbaik secara partikal. Contoh algoritma ini adalah algoritma Boyer-Moore, yang kemudian banyak dikembangkan menjadi algoritma Tuned Boyer-Moore, algoritma Turbo

Boyer-Moore, algoritma Zhu Takaoka dan algoritma Horspool.

3. In a specific order

Dari arah yang ditentukan secara spesifik oleh algoritma tersebut, arah ini menghasilkan hasil terbaik secara teoritis. Algoritma yang termasuk kategori ini adalah algoritma Colussi dan algoritma Crochemore-perrin.

2.1.4 Teknik Algoritma String Matching

Menurut Singla, N. & Garg, D. (2012), ada dua teknik utama dalam algoritma string

matching, yaitu:

1. Exact string matching.

Exact string matching, merupakan pencocokan string secara tepat dengan susunan

karakter dalam string yang dicocokkan memiliki jumlah maupun urutan karakter dalam string yang sama. Bagian algoritma ini bermanfaat jika pengguna ingin mencari string dalam dokumen yang sama persis dengan string masukan. Beberapa algoritma exact string matching antara lain:

a. Knuth-Morris-Pratt

Metode ini mencari kehadiran sebuah kata dalam teks dengan melakukan observasi awal (preprocessing) dengan cara mengecek ulang kata sebelumnya. Algoritma ini melakukan pencocokan dari kiri ke kanan.

b. Boyer-Moore

Algoritma Boyer-Moore adalah algoritma string matching yang paling efisien dibandingkan algoritma string matching lainnya. Sebelum melakukan pencarian

string, algoritma melakukan proses terlebih dahulu pada pattern, bukan pada string pada teks tempat pencarian. Algoritma ini melakukan pencocokan

karakter yang dimulai dari kanan ke kiri. Karena sifatnya yang sangat efisien,

Boyer-Moore memiliki banyak variasi penyederhanaannya. Salah satunya

adalah algoritma Horspool yang akan digunakan dalam penelitian ini dan akan dijelaskan pada poin berikutnya.


(40)

2. Approximate string matching atau Fuzzy string matching.

Fuzzy string matching merupakan pencocokan string secara samar, maksudnya

pencocokan string dimana string yang dicocokkan memiliki kemiripan memiliki susunan karakter yang berbeda (mungkin jumlah atau urutannya), tetapi string tersebut memiliki kemiripan baik kemiripan tekstual/penulisan (approximate string

matching) atau kemiripan ucapan (phonetic string matching).

2.2 Algoritma Horspool

Algoritma Horspool adalah penyederhanaan dari algoritma Boyer-Moore yang dibuat oleh R. Nigel Horspool. Menurut Horspool, R.N. (1980), masalah dalam pencarian teks ini adalah mencari dalam teks yang besar untuk menemukan pattern pertama. Karena teks yang dicari bisa sangat besar (memungkinkan ratusan ribu karakter) maka penting untuk menggunakan teknik yang lebih efisien. Algoritma Horspool bekerja dengan metode yang hampir sama dengan algoritma Boyer-Moore namun tidak melakukan lompatan berdasarkan karakter pada pattern yang ditemukan tidak cocok pada teks.

Algoritma Horspool mempunyai nilai pergeseran karakter yang paling kanan dari window. Pada tahap observasi awal (preprocessing), nilai shift akan dihitung untuk semua karakter. Pada tahap ini, dibandingkan pattern dari kanan ke kiri hingga kecocokan atau ketidakcocokan pattern terjadi. Karakter yang paling kanan pada

window digunakan sebagai indeks dalam melakukan nilai shift. Dalam kasus

ketidakcocokan (karakter tidak terdapat pada pattern) terjadi, window digeser oleh panjang dari sebuah pattern. Jika tidak, window digeser menurut karakter yang paling kanan pada pattern (Baeza-Yates, R.A. & Regnier, M. 1992).

2.2.1 Pencarian Dengan Algoritma Horspool

Terdapat dua tahap pada pencocokan string menggunakan algoritma Horspool (Singh, R. & Verma, H.N. 2011), yaitu:

1. Tahap praproses

Pada tahap ini, dilakukan observasi pattern terhadap teks untuk membangun sebuah tabel bad-match yang berisi nilai shift ketika ketidakcocokan antara pattern


(41)

dan teks terjadi. Secara sistematis, langkah-langkah yang dilakukan algoritma

Horspool pada tahap praproses adalah:

a. Algortima Horspool melakukan pencocokan karakter ter-kanan pada pattern. b. Setiap karakter pada pattern ditambah ke dalam tabel bad-match dan dihitung

nilai shift-nya.

c. Karakter yang berada pada ujung pattern tidak dihitung dan tidak dijadikan karakter ter-kanan dari karakter yang sama dengannya.

d. Apabila terdapat dua karakter yang sama dan salah satunya bukan karakter ter-kanan, maka karakter dengan indeks terbesar yang dihitung nilai shift-nya. e. Algoritma Horspool menyimpan panjang dari pattern sebagai panjang nilai shift

secara default apabila karakter pada teks tidak ditemukan dalam pattern.

f. Nilai (value) shift yang akan digunakan dapat dicari dengan perhitungan panjang dari pattern dikurang indeks terakhir karakter dikurang 1, untuk masing-masing karakter, � � = − � − .

Sebagai contoh, dapat dilihat pada Tabel 2.1 berikut.

Pattern: KARTIKA

�⏟ �⏟ �⏟ �⏟ �⏟ �⏟ �⏟

Tabel 2.1 Bad-match pada praproses

value = 7 – 5 – 1 = 1

value = 7 – 1 – 1 = 5

value = 7 – 2 – 1 = 4

value = 7 – 3 – 1 = 3

value = 7 – 4 – 1 = 2

* : karakter yang tidak dikenali

Karakter Index Value

K 5 1

A 1 5

R 2 4

T 3 3

I 4 2


(42)

2. Tahap pencarian

Secara sistematis, langkah-langkah yang dilakukan algoritma Horspool pada tahap praproses adalah:

a. Dilakukan perbandingan karakter paling kanan pattern terhadap window.

b. Tabel bad-match digunakan untuk melewati karakter ketika ketidakcocokan terjadi.

c. Ketika ada ketidakcocokan, maka karakter paling kanan pada window berfungsi sebagai landasan untuk menentukan jarak shift yang akan dilakukan.

d. Setelah melakukan pencocokan (baik hasilnya cocok atau tidak cocok) dilakukan pergeseran ke kanan pada window.

e. Prosedur ini dilakukan berulang-ulang sampai window berada pada akhir teks atau ketika pattern cocok dengan teks.

Untuk menggambarkan rincian algoritma, akan diberikan contoh kasus dimana pattern P = “KARTIKA” dan teks T = “ADEMUTIARA KARTIKA”. Inisialisasi awal dan pembuatan bad-match terlihat pada Tabel 2.2 dan Tabel 2.3 berikut.

Tabel 2.2 Inisialisasi awal bad-match

m 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 T A D E M U T I A R A K A R T I K A P K A R T I K A

i 0 1 2 3 4 5 6

Tabel 2.3 Pembuatan bad-match P A R T I K *

i 1 2 3 4 5 - v 5 4 3 2 1 7

Seperti yang terlihat pada Tabel 2.2 di atas, inisialisasi awal bad-match dilakukan. Setiap teks dan pattern masing-masing diberi nilai m dan i, dimana m sebagai panjang pattern dan i sebagai indeks. Tabel 2.3 menunjukkan nilai pergeseran

bad-match dengan menghitung nilai v seperti yang telah dilakukan pada Tabel 2.1.

Pada tahap awal pencarian, dilakukan perbandingan karakter paling kanan pattern terhadap window. Apabila terjadi ketidakcocokan, akan dilakukan pergeseran ke kanan untuk melewati karakter yang tidak cocok dimana nilai pergeserannya terdapat


(43)

pada tabel bad-match. Karakter paling kanan teks pada window berfungsi sebagai landasan untuk menentukan jarak geser yang akan dilakukan. Hal ini terlihat pada Tabel 2.4 berikut.

Tabel 2.4 Iterasi algoritma Horspool pertama

m 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 T A D E M U T I A R A K A R T I K A P K A R T I K A

i 0 1 2 3 4 5 6

Terdapat ketidakcocokan seperti yang terlihat pada Tabel 2.4. Karakter “I” adalah karakter paling kanan teks pada window. Pada tabel bad-match, nilai geser karakter “I” adalah 2. Maka, dilakukan pergeseran ke kanan pada window sebanyak 2

kali. Hal ini terlihat pada Tabel 2.5.

Tabel 2.5 Iterasi algoritma Horspool kedua

m 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 T A D E M U T I A R A K A R T I K A

P K A R T I K A

i 0 1 2 3 4 5 6

Pada Tabel 2.5, terdapat ketidakcocokan kembali antara karakter “R” dan “A”. Pada tabel bad-match, nilai geser karakter “R” adalah 4. Maka, dilakukan pergeseran ke kanan pada window sebanyak 4 kali. Hal ini terlihat pada Tabel 2.6.

Tabel 2.6 Iterasi algoritma Horspool ketiga

m 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 T A D E M U T I A R A K A R T I K A

P K A R T I K A

i 0 1 2 3 4 5 6

Pada iterasi ketiga yang terlihat pada Tabel 2.6, kecocokan pattern dan teks terjadi pada karakter “A” dan karakter “K”. Namun, kembali terjadi ketidakcocokan antara karakter “I” dan “(spasi)“. Maka, karakter paling kanan teks pada window

menentukan jarak geser yang akan dilakukan. Sebagaimana yang terlihat pada Tabel 2.6, karakter “A” berfungsi sebagai landasan nilai geser. Nilai geser karakter “A”


(44)

yang terdapat pada tabel bad-match adalah 5. Maka dilakukan pergeseran ke kanan pada window sebanyak 5 kali dan dilanjutkan dengan iterasi keempat seperti yang terlihat pada Tabel 2.7.

Tabel 2.7 Iterasi algoritma Horspool keempat

m 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 15 16 17 T A D E M U T I A R A K A R T I K A

P K A R T I K A

i 0 1 2 3 4 5 6

Pada Tabel 2.7, window telah berada pada akhir teks dan semua pattern cocok dengan teks. Seluruh pencocokan karakter menggunakan algoritma Horspool telah selesai dan berhenti pada iterasi keempat.

Berikut adalah pseudocode algoritma Horspool pada tahap praproses:

Procedure preBmBc (

input P : array[0. . m-1] of char, input m : integer,

input/output BmBc : array [0 . . n-1] of integer )

Deklarasi:

i : integer Algoritma:

for (i := 0 to ASIZE – 1) BmBc[i] := m;

endfor

for (i := 0 to m-2)

BmBc[P[i]] := m – i – 1; endfor

Dan berikut adalah pseudocode algoritma Horspool pada tahap pencarian:

Procedure HorspoolSearch ( input m, n : integer,

input P : array[0 . . m-1] of char, input T : array[0 . . n-1] of char,

output find : array[0 . . m-1] of boolean )

Deklarasi:

j : integer

BmBc : array[0 . . n] of integer c : char

Algoritma:

preBmBc(P, m, BmBc) j := 0


(45)

while (j <= n – m) do c = T[j + m – 1];

if (P[m – 1] == c && memcmp(P, T + j, m-1) == 0) then find[j] := true;

endif

j := j + BmBc[c]; endwhile

2.2.2 Kelebihan Algoritma Horspool

Algoritma Horspool merupakan penyederhanaan dari algoritma Boyer-Moore dan mudah dalam implemenasinya. Algoritma Horspool hanya menggunakan pergeseran karakter-buruk yang terjadi pada Boyer-Moore (Charras, C. & Lecroq, T. 1997).

Untuk melakukan dan menghitung nilai pergeseran bad-character adalah dengan melihat karakter paling kanan pada window. Algortima ini lebih efisien digunakan ketika ditemukan panjang pattern yang kecil (Sheik, S.S. et al. 2004).

Adapun kelebihan algoritma Horspool telah digunakan dalam beberapa penelitian. Penelitian oleh Hastriana, E. (2010) yang membandingkan algoritma string

matching Knuth-Morris-Pratt dengan Boyer-Moore-Horspool pada simulasi

pengenalan sidik jari telah dihasilkan dari simulasi pengenalan sidik jari melalui tahap model pengembangan sistem RAD yang dibuat bahwa algoritma

Boyer-Moore-Horspool menghasilkan pencocokan yang lebih cepat dibanding Knuth-Morris-Pratt

karena Boyer-Moore-Horspool melakukan pergeseran yang lebih jauh daripada

Knuth-Morris-Pratt.

Penelitian oleh Mirabella, F.M. (2012) yang membandingkan algoritma

Boyer-Moore dan variasi-variasinya dalam pencarian string telah dihasilkan bahwa algoritma Horspool jauh lebih sederhana penggunaannya dibandingkan algoritma Boyer-Moore

tetapi total kompleksitas waktu yang dibutuhkan algoritma menyatakan algoritma

Horspool masih kalah cepat dalam melakukan pencocokan string dibandingkan

dengan beberapa variasi turunan algoritma Boyer-Moore.

Penelitian oleh Tambun, E.D. (2010) yang membandingkan penggunaan algoritma Boyer-Moore dan algoritma Horspool pada pencarian string dalam bahasa medis telah dihasilkan dari pengujian dan analisa program yang dibuat bahwa pencarian string dalam bahasa medis dengan menggunakan algoritma Boyer-Moore lebih baik dibandingkan dengan algoritma Horspool dikarenakan bahasa medis banyak menggunakan kosakata yang panjang dengan karakter yang beragam. Namun, algoritma Boyer-Moore kurang cocok digunakan untuk teks dengan varian karakter


(46)

yang sedikit (binary string) dikarenakan lompatan pengecekan yang dilakukan oleh

Boyer-Moore menjadi cenderung lebih pendek.

2.3 Information Retrieval System

2.3.1 Pengertian Information Retrieval System

Menurut Hasugian, J. (2006), sistem temu kembali informasi pada dasarnya adalah suatu proses untuk mengidentifikasi, kemudian memanggil (retrieval) suatu dokumen dari suatu simpanan (file), sebagai jawaban atas permintaan informasi. Secara sederhana, temu kembali informasi merupakan suatu sistem yang menyimpan informasi dan menemukan kembali informasi tersebut (Saptari, J. & Purwono, 2006). Sistem Temu Balik Informasi (Information Retrieval System) adalah ilmu mencari informasi dalam suatu dokumen, mencari dokumen itu sendiri dan mencari metadata yang menggambarkan suatu dokumen. Dalam sudut pandang pengguna, Sistem Temu Balik Informasi membantu pencarian informasi dengan memberikan koleksi informasi yang sesuai dengan kebutuhan pengguna (Wibowo, A. 2012).

2.3.2 Komponen Information Retrieval System

Ada lima komponen Sistem Temu Balik Informasi (Hasugian, J. 2006), yaitu: 1. Pengguna.

Pengguna STBI adalah orang yang menggunakan atau memanfaatkan STBI dalam rangka kegiatan pengelolaan dan pencarian informasi. Berdasarkan perannya, pengguna STBI dibedakakan atas 2 (dua) kelompok yaitu pengguna (user) dan pengguna akhir (end user). Pengguna (user) adalah seluruh pengguna STBI yang menggunakan STBI baik untuk pengelolaan (input data, backup data, maintenance) maupun untuk keperluan pencarian/penelusuran informasi, sedangkan pengguna akhir (end user) adalah pengguna yang hanya menggunakan STBI untuk keperluan pencarian dan atau penelusuran informasi.

2. Query.

Query adalah format bahasa permintaan yang dimasukkan oleh pengguna kedalam

STBI. Dalam interface STBI, selalu disediakan kolom/ruas sebagai tempat bagi pengguna untuk mengetikkan query-nya. Setelah query dimasukkan selanjutnya


(47)

mesin akan melakukan proses pemanggilan (recall) terhadap dokumen yang diinginkan dari database.

3. Dokumen.

Dokumen adalah istilah yang digunakan untuk penyebutan seluruh bahan pustaka. Dokumen dalam bahasa STBI online adalah seluruh dokumen elektronik (digital) yang telah diinput (dimasukkan) dan disimpan dalam database. Media penyimpanan database dapat berbentuk CD-ROM ataupun berbentuk harddisk.

Database dapat diakses secara online maupun diakses secara offline. Database

yang diakses secara online dapat pula diakses secara bersamaan (multiuser), sedangkan database offline hanya dapat digunakan oleh satu orang dalam waktu yang sama (single user).

4. Indeks Dokumen.

Indeks adalah daftar istilah atau kata (list of terms). Dokumen yang dimasukkan/disimpan dalam database diwakili oleh indeks. Fungsinya adalah sebagai representasi subyek dari sebuah dokumen. Indeks memiliki tiga jenis yaitu: a. Indeks subyek adalah menentukan subyek dokumen pada istilah mana/apa yang

menjadi representasi subyek dari sebuah dokumen.

b. Indeks pengarang adalah mementukan nama pengarang mana yang menjadi representasi dari suatu karya.

c. Indeks bebas adalah menjadikan seluruh kata/istilah yang terdapat pada sebuah dokumen menjadi sebuah representasi dari dokumen, terkecuali stopword. Stopword adalah kata yang tidak di indeks seperti : yang, that, meskipun, di, ke, dan lain-lain atau seluruh kata sandang/partikel.

5. Pencocokan.

Pencocokkan istilah (query) yang dimasukkan oleh pengguna dengan indeks dokumen yang tersimpan dalam database dilakukan oleh mesin komputer. Komputerlah yang melakukan proses pencocokkan dalam waktu yang sangat singkat sesuai dengan kecepatan memory dan processing yang dimiliki oleh komputer. Komputer hanya dapat melakukan pencocokan berdasarkan kesamaan istilah dikarenakan tidak dapat berfikir seperti manusia. Oleh karena itu sering terjadi “ambiguitas” atau kesalahan makna untuk sebuah istilah.


(48)

2.4 Android

Android adalah sebuah sistem operasi untuk perangkat mobile yang mencakup sistem operasi, middleware dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan sebuah aplikasi yang diinginkan. Pesatnya pertumbuhan Android karena merupakan sistem operasi open source sehingga bebas didistribusikan dan dipakai oleh vendor manapun.

Android dipasarkan dibawah lisensi Apache Software yang memungkinkan pengembangan distribusi tahap kedua, tahap ketiga dan seterusnya. Karena bersifat

open source, maka pengembang aplikasi Android dapat memperoleh keuntungan

tambahan melalui perbaikan yang dilakukan serta peningkatan tanpa harus terikat kepada lisensi semula.

2.4.1 Android SDK (Software Development Kit)

Android SDK adalah tools API (Aplication Programming Interface) yang dipergunakan untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Beberapa fitur Android:

1. Framework, adalah layer dimana para pembuat aplikasi melakukan pengembangan/pembuatan aplikasi yang akan dijalankan di sistem operasi Android.

2. Android Run Time, salah satunya Dalvik Virtual Machine yang dioptimalkan untuk menjalankan fungsi-fungsi secara efisien, dimana merupakan pengembangan linux

kernel untuk melakukan threading dan manajemen tingkat rendah.

3. Browser yang terintegrasi.

4. Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D, grafis 3D berdasarkan spesifikasi OpenGL ES 1,0.

5. SQLite untuk penyimpanan data.

6. Media support yang mendukung audio, video dan gambar.

2.4.2 ADK (Android Development Tools)

ADK adalah plugin yang didesain untuk IDE Eclipse yang memberikan kemudahan dalam aplikasi Android menggunakan IDE Eclipse. Dengan ADT dapat dilakukan


(49)

pembuatan package Android (.apk) yang digunakan untuk didistribusikan aplikasi Android yang dirancang. Semakin tinggi platform Android yang digunakan, dianjurkan menggunakan ADT yang lebih terbaru.

2.5 Android Studio

Android studio merupakan sebuah Integrated Development Environment (IDE) untuk

platform Android. Android studio bersifat free dibawah Apache License 2.0. Android

Studio di desain khusus untuk Android Development. Beberapa keunggulan yang terdapat pada Android Studio adalah:

1. Tampilan editor yang lebih baik dan bagus, What You See Is What You Get (WYSIWYG) editor.

2. Tampilan antarmuka yang lebih modern. 3. Gradle-based build system yang fleksibel.

4. Dapat mem-build banyak APK.

5. Google Cloud Platform built-in support, memudahkan integrasi dengan Google Cloud Messaging dan App Engine.

Beberapa perbandingan Android Studio dan Eclipse ADT dapat dilihat pada Tabel 2.8 berikut.

Tabel 2.8 Perbandingan Android Studio dan Eclipse ADT

Features Android Studio Eclipse ADT

Build system Gradle ANT

Maven-based build dependencies Yes No

Build variants and multiple APK generation Yes No Advanced Android code completion and

refactoring Yes No

Editor layout grafis Yes No

APK Signing and keystore management Yes No


(50)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Pada era globalisasi saat ini informasi telah berkembang dengan pesat. Smartphone sebagai bagian dari era globalisasi, lebih berkembang dan lebih diminati penggunaannya oleh masyarakat karena beragam fitur dapat ditampilkan untuk memenuhi kebutuhan dan daya tarik tersendiri bagi pengguna. Jenis-jenis sistem operasi smartphone diantaranya Windows, Blackberry, Symbian, iOS dan Android. Sistem operasi Android merupakan salah satu sistem operasi yang tengah berkembang di masyarakat. Terdapat keunggulan dari sistem operasi ini antara lain sistem operasinya dapat diubah sesuai dengan keinginan kita sendiri (Parno, et al. 2011).

Kebutuhan masyarakat terhadap layanan teknologi berbasis IT sangat bervariatif, salah satu kebutuhan adalah kebutuhan akan ketersediaan kamus dengan berbagai kepentingan mulai dari kamus yang bersifat umum seperti kamus bahasa hingga kamus istilah-istilah khusus seperti kamus politik, kamus ekonomi maupun kamus psikologi (Parno, et al. 2011).

Seperti yang diketahui, ilmu psikologi memiliki istilah-istilah asing yang tidak diketahui oleh orang awam. Kamus istilah psikologi saat ini banyak beredar dalam bentuk buku, yang penggunaannya menyulitkan karena pengguna harus mencari arti dan istilah psikologi secara manual. Disisi lain, buku sangat sulit untuk dibawa kemana-mana dan tidak dapat di-update setiap saat sesuai dengan kebutuhan dan perkembangan pada saat ini. Mengingat masyarakat dewasa sangat akrab dengan layanan smartphone, maka penulis berniat untuk membuat suatu aplikasi kamus pada


(51)

platform Android yang memuat istilah-istilah psikologi menggunakan algoritma

Horspool. Tidak hanya ditujukan untuk orang awam, aplikasi kamus psikologi ini

diharapkan dapat membantu para mahasiswa jurusan psikologi maupun para psikolog dalam memahami arti istilah psikologi dengan mudah dan cepat yang membantu kegiatan mereka sehari-hari.

Algoritma pencocokan string sendiri merupakan algoritma yang paling penting dalam pemrosesan teks. Algoritma ini juga merupakan komponen dasar dalam implementasi perangkat-perangkat lunak dalam kebanyakan sistem operasi yang ada saat ini (Charras, C. & Lecroq, T. 1997). Salah satu algoritma pencocokan string adalah algoritma Horspool. Algoritma Horspool merupakan turunan dari algoritma

Boyer-Moore dan mudah dalam implementasinya. Ketika panjang dari pattern kecil,

sangat tidak efisien untuk menggunakan algoritma Boyer-Moore. Algoritma Horspool hanya menggunakan perpindahan karakter-buruk yang terjadi pada Boyer-Moore. Untuk melakukan dan menghitung nilai pergeseran bad-character adalah dengan melihat karakter paling kanan pada window. Nilai pergeseran ini dihitung pada tahap praproses untuk semua karakter pada set alfabet sebelumnya. Algoritma ini lebih efisien digunakan ketika ditemukan panjang pattern yang kecil (Sheik, S.S. et al. 2004).

1.2 Rumusan Masalah

Berdasarkan latar belakang, maka rumusan masalah dalam penelitian ini adalah bagaimana membuat kamus istilah psikologi pada platform Android menggunakan algoritma Horspool.

1.3 Batasan Penelitian

Dalam perancangan aplikasi kamus berbasis Android, dilakukan beberapa batasan sebagai berikut:

1. Algoritma yang digunakan dalam penelitian ini adalah algoritma Horspool dan tidak membahas algoritma lain.

2. Aplikasi hanya menyimpan 500 istilah psikologi beserta artinya yang bersumber pada Kamus Lengkap Psikologi J.P. Chaplin.


(52)

4. Aplikasi dirancang menggunakan bahasa pemrograman Java dan Android Studio sebagai compiler.

5. Aplikasi menggunakan DBMS SQLite untuk penyimpanan data istilah.

6. Aplikasi hanya sesuai dengan smartphone berbasis android 4.1 (Jelly Bean) sampai dengan android 5.1.1 (Lollipop).

1.4 Tujuan Penelitian

Tujuan dari penelitian ini adalah menyediakan suatu aplikasi yang dapat menyimpan dan mencari istilah psikologi pada smartphone berbasis android.

1.5 Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini adalah membantu masyarakat dalam mencari istilah psikologi yang ingin diketahui secara lebih mudah dan lebih praktis.

1.6 Metodologi Penelitian

Dalam penelitian ini, ada beberapa tahapan yang akan dilakukan adalah sebagai berikut:

1. Studi Pustaka

Pada tahap ini, dilakukan peninjauan terhadap buku-buku, jurnal-jurnal, artikel-artikel yang membahas tentang algoritma Horspool.

2. Analisis Sistem

Melakukan analisis terhadap permasalahan yang ada, batasan sistem, kinerja sistem, cara kerja sistem.

3. Perancangan Sistem

Membuat flowchart, Unified Modeling Language (UML) dan Design Interface. 4. Implementasi Sistem

Pada tahap ini, implementasi algoritma Horspool untuk mencari istilah dalam aplikasi kamus psikologi berbasis android.

5. Pengujian Sistem

Aplikasi yang telah diimplementasikan diuji berdasarkan hasil analisis dan perancangan serta menguji kebenaran dari algoritma Horspool untuk mencari data hasil terjemahan.


(53)

6. Dokumentasi Sistem

Dokumentasi dihasilkan dengan membuat skripsi sebagai laporan dari hasil penelitian.

1.7 Sistematika Penulisan

Untuk membuat penulisan lebih terstruktur, maka penulisan ini dibagi menjadi lima bab, yaitu:

BAB 1: PENDAHULUAN

Bab ini berisi penjelasan mengenai latar belakang masalah, rumusan masalah, batasan penelitian, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan skripsi.

BAB 2: LANDASAN TEORI

Pada bab ini berisi penjelasan mengenai teori-teori yang terkait dengan penelitian ini diantaranya adalah pencocokan String (String Matching), Algoritma Horspool, Android dan Android Studio.

BAB 3: ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi analisis sistem dalam pembuatan kamus pada android, desain sistem dan perancangan sistem.

BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab ini akan membahas tentang implementasi hasil penelitian menjadi sebuah aplikasi untuk membuat Kamus Istilah Psikologi pada platform Android. Kemudian dilanjutkan dengan tahapan pengujian sistem untuk menguji apakah sistem sudah berjalan sesuai dengan perancangan.

BAB 5: KESIMPULAN DAN SARAN

Pada bab ini berisi kesimpulan yang diperoleh dalam penelitian dan saran yang diberikan untuk pengembangan lebih lanjut.


(54)

ABSTRAK

Kamus adalah sebuah referensi yang berisi kata dan frase yang biasanya diurutkan berdasarkan alfabet dan diikuti oleh deskripsi arti dari kata atau frase tersebut. Kamus terdiri dari beberapa jenis, salah satunya adalah kamus istilah. Kamus psikologi adalah sebuah kamus istilah yang berisi istilah psikologi. Kamus psikologi identik dengan buku yang tebal yang lama dalam pencarian dan kurang efisien dalam penggunaannya. Untuk itu dibuatlah sebuah aplikasi kamus psikologi yang menerapkan algoritma

Horspool sebagai masalah pencariannya dan database SQLite sebagai penyimpanan

data. Algoritma pencarian diperlukan untuk mempersingkat waktu dalam pencarian itu sendiri. Algoritma Horspool menerapkan informasi pencarian yang disimpan untuk melakukan pergeseran yang lebih jauh karena pencocokan string dilakukan dari kanan ke kiri, sehingga waktu pencarian string lebih singkat. Field yang digunakan dalam pencarian ini adalah istilah psikologi secara umum, dengan memasukkan nama istilah psikologi sebagai inputannya dalam pencarian, kemudian akan didapatkan hasil pencarian berupa arti dari istilah tersebut. Hasil dari aplikasi ini menampilkan keseluruhan pattern yang cocok dengan teks.


(55)

THE IMPLEMENTATION OF HORSPOOL ALGORITHM TO MAKE DICTIONARY OF PSYCHOLOGY IN ANDROID PLATFORM

ABSTRACT

Dictionary is a reference that contains words and phrases that are usually arranged alphabetically and followed by description of the meaning. Dictionary has a several kinds, one of it is a dictionary of terms. Psychology dictionary is a dictionary of terms that contain psychology terms. Psychology dictionary identical with the thick book that slow in its search and not efficient in its use. To overcome this, is made a psychology dictionary application which applying Horspool algorithm as its search and SQLite database as a data storage. Searching algorithm is needed to shorten the time in the search itself. Horspool algorithm apply searching information which stored to do a further shift because the strings match moves from right to left, so can shorten the time of search. The field that is used in this searching is a term of psychology in general, by inserting it as an input in search, then would got the result in the form of the meaning from the terms. The result of this application show the whole patterns that are match with text.


(56)

IMPLEMENTASI ALGORITMA HORSPOOL DALAM PEMBUATAN KAMUS ISTILAH PSIKOLOGI PADA PLATFORM ANDROID

SKRIPSI

ADE MUTIARA KARTIKA DEWI NASUTION 121401059

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2016


(57)

IMPLEMENTASI ALGORITMA HORSPOOL DALAM PEMBUATAN KAMUS ISTILAH PSIKOLOGI PADA PLATFORM ANDROID

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

ADE MUTIARA KARTIKA DEWI NASUTION 121401059

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2016


(58)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA HORSPOOL

DALAM PEMBUATAN KAMUS ISTILAH PSIKOLOGI PADA PLATFORM ANDROID

Kategori : SKRIPSI

Nama : ADE MUTIARA KARTIKA DEWI NASUTION

Nomor Induk Mahasiswa : 121401059

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, 2016 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Ade Candra, S.T., M.Kom Dr. Poltak Sihombing, M.Kom

NIP. 197909042009121002 NIP. 196203171991031001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001


(59)

PERNYATAAN

IMPLEMENTASI ALGORITMA HORSPOOL DALAM PEMBUATAN KAMUS ISTILAH PSIKOLOGI PADA PLATFORM ANDROID

SKRIPSI

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

Medan, 2016

Ade Mutiara Kartika 121401059


(60)

PENGHARGAAN

Alhamdulillahirrabbil’alamin. Puji dan syukur penulis ucapkan atas kehadirat Allah SWT yang telah memberikan limpahan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. Shalawat beriring salam penulis juga persembahkan kepada Nabi Besar Muhammad SAW.

Dengan segala kerendahan hati, pada kesempatan ini penulis menyampaikan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi dengan judul Implementasi Algoritma Horspool dalam Pembuatan Kamus Istilah Psikologi pada Platform Android. Penulis mengucapkan terima kasih kepada:

1. Bapak Prof. Dr. Runtung Sitepu, SH., M.Hum sebagai Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Muhammad Zarlis sebagai Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara dan Dosen Pembimbing I yang telah memberikan arahan dan motivasi kepada penulis dalam pengerjaan skripsi ini.

4. Bapak Ade Candra, S.T., M.Kom sebagai Dosen Pembimbing II yang telah memberikan arahan dan motivasi kepada penulis dalam pengerjaan skripsi ini. 5. Bapak Drs. Agus Salim Harahap, M.Si dan Bapak Handrizal, S.Si.,

M.Comp.Sc selaku Dosen Penguji yang telah memberikan saran dan kritik kepada penulis dalam penyempurnaan skripsi ini.

6. Seluruh Dosen serta staf Pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. 7. Kedua Orangtua penulis tercinta Ibunda Hafnida Harahap dan Ayahanda Marjan Nasution, Abang dan Kakak tercinta Rizki Febrianti Maharani Nasution, Reza Syah Harahap serta Adik Oryza Pratiwi Nasution yang telah

memberikan do’a, dukungan, perhatian, kesabaran serta kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya.

8. Salawatbadar yang selama ini telah menjadi keluarga kedua penulis selama

mengikuti perkuliahan, tempat berbagi suka dan duka dalam pengerjaan skripsi ini, kepada Ade Rani Abdullah, Astrid Febrina Ramadhani Siregar S.Kom, T. Raisya Hannisa S.Kom, Sari Ramadhani Siregar.


(61)

9. Arief Try Hidayat yang selalu memberikan do’a, dukungan moral, semangat, perhatian yang tak ternilai kepada penulis dalam pengerjaan skripsi ini.

10.Teman-teman kuliah, khususnya Nurhasbiah Nasution S.Kom, Dwi Puspita Sari Syahnan S.Kom, Indah Widya Sari, Parlindungan Sinabariba, Nadhira Dwi Sabrina serta Stambuk 2012 yang tidak dapat disebut satu-persatu, yang telah banyak membantu dalam pengerjaan skripsi ini.

11.Rekan-rekan pengurus PEMA (Pemerintahan Mahasiswa) dan IMILKOM (Ikatan Mahasiswa S1 Ilmu Komputer) Fasilkom-TI periode 2014-2015 yang telah memberikan banyak dukungan, tempat belajar berorganisasi yang benar, dan mendapatkan pengalaman yang tak ternilai.

12.Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu-persatu yang telah membantu penyelesaian skripsi ini. Sekali lagi penulis mengucapkan terima kasih kepada semua pihak yang membantu dalam penyelesaian skripsi ini yang tidak dapat disebutkan satu persatu, terima kasih atas ide, saran dan motivasi yang diberikan. Semoga Allah SWT memberikan limpahan karunia kepada semua pihak yang telah memberikan bantuan, perhatian, kasih sayang serta dukungan kepada penulis dalam menyelesaikan skripsi ini.

Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan karena kesempurnaan hanyalah milik Allah SWT semata. Oleh karena itu penulis menerima kritik dan saran dari semua pihak yang bersifat membangun dan menyempurnakan skripsi ini. Penulis berharap semoga skripsi ini bermanfaat bagi penulis sendiri pada khususnya dan pembaca pada umumnya.

Medan, Mei 2016 Penulis,


(62)

ABSTRAK

Kamus adalah sebuah referensi yang berisi kata dan frase yang biasanya diurutkan berdasarkan alfabet dan diikuti oleh deskripsi arti dari kata atau frase tersebut. Kamus terdiri dari beberapa jenis, salah satunya adalah kamus istilah. Kamus psikologi adalah sebuah kamus istilah yang berisi istilah psikologi. Kamus psikologi identik dengan buku yang tebal yang lama dalam pencarian dan kurang efisien dalam penggunaannya. Untuk itu dibuatlah sebuah aplikasi kamus psikologi yang menerapkan algoritma

Horspool sebagai masalah pencariannya dan database SQLite sebagai penyimpanan

data. Algoritma pencarian diperlukan untuk mempersingkat waktu dalam pencarian itu sendiri. Algoritma Horspool menerapkan informasi pencarian yang disimpan untuk melakukan pergeseran yang lebih jauh karena pencocokan string dilakukan dari kanan ke kiri, sehingga waktu pencarian string lebih singkat. Field yang digunakan dalam pencarian ini adalah istilah psikologi secara umum, dengan memasukkan nama istilah psikologi sebagai inputannya dalam pencarian, kemudian akan didapatkan hasil pencarian berupa arti dari istilah tersebut. Hasil dari aplikasi ini menampilkan keseluruhan pattern yang cocok dengan teks.


(1)

vi

ABSTRAK

Kamus adalah sebuah referensi yang berisi kata dan frase yang biasanya diurutkan berdasarkan alfabet dan diikuti oleh deskripsi arti dari kata atau frase tersebut. Kamus terdiri dari beberapa jenis, salah satunya adalah kamus istilah. Kamus psikologi adalah sebuah kamus istilah yang berisi istilah psikologi. Kamus psikologi identik dengan buku yang tebal yang lama dalam pencarian dan kurang efisien dalam penggunaannya. Untuk itu dibuatlah sebuah aplikasi kamus psikologi yang menerapkan algoritma Horspool sebagai masalah pencariannya dan database SQLite sebagai penyimpanan data. Algoritma pencarian diperlukan untuk mempersingkat waktu dalam pencarian itu sendiri. Algoritma Horspool menerapkan informasi pencarian yang disimpan untuk melakukan pergeseran yang lebih jauh karena pencocokan string dilakukan dari kanan ke kiri, sehingga waktu pencarian string lebih singkat. Field yang digunakan dalam pencarian ini adalah istilah psikologi secara umum, dengan memasukkan nama istilah psikologi sebagai inputannya dalam pencarian, kemudian akan didapatkan hasil pencarian berupa arti dari istilah tersebut. Hasil dari aplikasi ini menampilkan keseluruhan pattern yang cocok dengan teks.


(2)

vii

THE IMPLEMENTATION OF HORSPOOL ALGORITHM TO MAKE DICTIONARY OF PSYCHOLOGY IN ANDROID PLATFORM

ABSTRACT

Dictionary is a reference that contains words and phrases that are usually arranged alphabetically and followed by description of the meaning. Dictionary has a several kinds, one of it is a dictionary of terms. Psychology dictionary is a dictionary of terms that contain psychology terms. Psychology dictionary identical with the thick book that slow in its search and not efficient in its use. To overcome this, is made a psychology dictionary application which applying Horspool algorithm as its search and SQLite database as a data storage. Searching algorithm is needed to shorten the time in the search itself. Horspool algorithm apply searching information which stored to do a further shift because the strings match moves from right to left, so can shorten the time of search. The field that is used in this searching is a term of psychology in general, by inserting it as an input in search, then would got the result in the form of the meaning from the terms. The result of this application show the whole patterns that are match with text.


(3)

viii

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Bab 1 Pendahuluan

1.1 Latar Belakang Masalah 1

1.2 Rumusan Masalah 2

1.3 Batasan Penelitian 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 Landasan Teori

2.1 String Matching 5

2.1.1 Pengertian String Matching 5

2.1.2 Cara Kerja String Matching 6

2.1.3 Klasifikasi Algoritma String Matching 6

2.1.4 Teknik Algoritma String Matching 7

2.2 Algoritma Horspool 8

2.2.1 Pencarian Dengan Algoritma Horspool 8

2.2.2 Kelebihan Algoritma Horspool 13

2.3 Information Retrieval System 14

2.3.1 Pengertian Information Retrieval System 14

2.3.2 Komponen Information Retrieval System 14

2.4 Android 16

2.4.1 Android SDK (Software Development Kit) 16

2.4.2 ADK (Android Development Tools) 16

2.5 Android Studio 17

Bab 3 Analisis dan Perancangan Sistem


(4)

ix

3.1.3.1 Use Case Diagram 21

3.1.3.2 Activity Diagram 23

3.1.3.3 Sequence Diagram 25

3.1.3.4 Flowchart Sistem dan Algoritma 25

3.2 Perancangan Interface 29

3.2.1 Antarmuka Menu Utama 29

3.2.2 Antarmuka Menu Psychology Term 30

3.2.3 Antarmuka Menu About 31

3.2.4 Antarmuka Menu Navigation 32

Bab 4 Implementasi dan Pengujian Sistem

4.1 Implementasi Sistem 33

4.1.1 Implementasi Algoritma Horspool 33

4.2 Antarmuka Sistem 34

4.2.1 Menu Utama 35

4.2.2 Menu Psychology Terms 35

4.2.3 Menu About 36

4.2.4 Menu Navigation 37

4.3 Pengujian Sistem 38

4.3.1 Pengujian Pencarian Data Istilah dengan Algoritma Horspool 38

4.3.2 Pengujian Proses Add Data 41

4.3.3 Pengujian Proses Edit Data 42

4.3.4 Pengujian Proses Delete Data 43

Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 44

5.2 Saran 44

Daftar Pustaka 45

Listing Program A-1


(5)

x

DAFTAR TABEL

Nomor

Tabel Nama Tabel Halaman

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 3.1 3.2 3.3 4.1

Bad-match pada praproses Inisialisasi awal bad-match Pembuatan bad-match

Iterasi algoritma Horspool pertama Iterasi algoritma Horspool kedua Iterasi algoritma Horspool ketiga Iterasi algoritma Horspool keempat

Perbandingan Android Studio dan Eclipse ADT Deskripsi Use Case Menampilkan Field Pencarian Deskripsi Use Case Menginput Istilah

Deskripsi Use Case Menampilkan Hasil Pencarian Hasil Pencarian Data Istilah dengan Algoritma Horspool

9 10 10 11 11 11 12 17 22 22 23 39


(6)

xi

DAFTAR GAMBAR

Nomor

Gambar Nama Gambar Halaman

3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Fishbone Diagram

Use Case Diagram Sistem

Activity Diagram Proses Pencarian Istilah

Sequence Diagram

Flowchart Sistem Pencarian Istilah Dengan Algoritma Horspool

Flowchart Proses Perhitungan Bad-Character Flowchart Algoritma Horspool

Rancangan Antarmuka Menu Utama

Rancangan Antarmuka Menu Psychology Term Rancangan Antarmuka Menu About

Rancangan Antarmuka Menu Navigation Contoh Pencarian

Menu Utama

Menu Psychology Terms Menu About

Menu Navigation Add Data Baru Edit Data Delete Data 19 21 24 25 26 27 28 29 30 31 32 34 35 36 37 38 41 42 43