• Tidak ada hasil yang ditemukan

Implementasi Algoritma Horspool Dalam Pembuatan Kamus Istilah Psikologi Pada Platform Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Horspool Dalam Pembuatan Kamus Istilah Psikologi Pada Platform Android"

Copied!
67
0
0

Teks penuh

(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="";

(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 */

(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

(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.

(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).

(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

(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

(16)

Gambar 3.3 Activity Diagram Proses Pencarian Istilah

(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

(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

(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

(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

(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

(31)
[image:31.595.140.494.90.660.2]

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

[image:33.595.140.496.83.241.2]

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

[image:33.595.218.419.418.709.2]
(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

[image:34.595.221.413.339.637.2]

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

[image:35.595.219.413.194.493.2]

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.

(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 .

(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

(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

(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.

[image:42.595.111.525.442.511.2]

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.

(43)
[image:43.595.111.525.185.254.2]

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

[image:43.595.110.525.392.462.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

[image:43.595.110.525.580.649.2]

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

(44)
[image:44.595.113.523.177.247.2]

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:

(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.

(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

(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.

(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)

(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).

(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

(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

(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

(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

(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,

(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

(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 sayan

Gambar

Gambar 3.1 Fishbone Diagram
Gambar 3.2 Use Case Diagram Sistem
Tabel 3.1 Deskripsi Use Case Menampilkan Field Pencarian
Tabel 3.3 Deskripsi Use Case Menampilkan Hasil Pencarian
+7

Referensi

Dokumen terkait

Penerapan algoritma Knuth-Morris-Pratt dalam sistem yang dibangun adalah pada proses pencarian dengan algoritma Knuth-Morris-Pratt dalam mencari data istilah kedokteran

Dengan segala kerendahan hati, pada kesempatan ini penulis menyampaikan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi dengan judul

Penerapan String Matching Pada Aplikasi Kamus Bahasa Kedokteran Berbasis Java ME.. Sekolah Tinggi Manajemen Informatika dan Komputer Global Informatika Multi

Pada Tampilan menu kata ditemukan pada gambar dibawah ini, pengguna telah memasukan kata atau istilah di list inputan kemudian ditekan button “CARI”, apabila

Gambar diatas adalah sequence diagram main menu dimana menunjukan alur player dalam mengakses menu utama pada game ini, ketika user membuka game, akan muncul credits untuk

Dalam membuat aplikasi kamus, string matching dapat diimplementasikan untuk proses pencarian katanya dan tentunya setiap algoritma string matching memiliki keefektifan

Hasil penelitian menunjukkan bahwa pencarian string pada teks bahasa medis dengan menggunakan algoritma Boyer-Moore lebih. baik dibandingkan dengan algoritma

Sebelumnya telah diuraikan latar belakang dari skripsi ini, masalah yang akan dibahas adalah bagaimana melakukan pencarian atau pencocokan untuk menemukan string