• Tidak ada hasil yang ditemukan

Implementasi Algoritma Levenshtein Distance dan Boyer Moore untuk Fitur Autocomplete dan Autocorrect pada Aplikasi Katalog Perpustakaan Daerah Aceh Timur

N/A
N/A
Protected

Academic year: 2016

Membagikan "Implementasi Algoritma Levenshtein Distance dan Boyer Moore untuk Fitur Autocomplete dan Autocorrect pada Aplikasi Katalog Perpustakaan Daerah Aceh Timur"

Copied!
112
0
0

Teks penuh

(1)

IMPLEMENTASI ALGORITMA LEVENSHTEIN DISTANCE

DAN BOYER MOORE UNTUK FITUR AUTOCOMPLETE

DAN AUTOCORRECT PADA APLIKASI KATALOG

PERPUSTAKAAN DAERAH ACEH TIMUR

SKRIPSI

TEUKU IGHFAR HAJAR

131421063

PROGRAM STUDI S1 EKSTENSI ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2015

(2)

IMPLEMENTASI ALGORITMA LEVENSHTEIN DISTANCE

DAN BOYER MOORE UNTUK FITUR AUTOCOMPLETE

DAN AUTOCORRECT PADA APLIKASI KATALOG

PERPUSTAKAAN DAERAH ACEH TIMUR

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh

ijazah Sarjana Ilmu Komputer

TEUKU IGHFAR HAJAR

131421063

PROGRAM STUDI S1 EKSTENSI ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2015

(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA LEVENSHTEIN

DISTANCE DN BOYER MOORE UNTUK FITUR

AUTOCOMPLETE DAN AUTOCORRECT PADA APLIKASI KATALOG PERPUSTAKAAN

ACEH TIMUR

Kategori : SKRIPSI

Nama : TEUKU IGHFAR HAJAR

Nomor Induk Mahasiswa : 131421063

Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI (FASILKOMTI) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, 2 Agustus 2015

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

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

Diketahui/Disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001

(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA LEVENSHTEIN DISTANCE DAN BOYER

MOORE UNTUK FITUR AUTOCOMPLETE DAN AUTOCORRECT PADA

APLIKASI PERPUSTAKAAN DERAH ACEH TIMUR

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali

beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Juni 2015

Teuku Ighfar Hajar

131421063

(5)

PENGHARGAAN

Puji dan syukur kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Ny

a, sehingga Penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk

memperoleh gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer Universit

as Sumatera Utara.

Penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar–besar

nya kepada :

1. Bapak Prof. Dr. Subhilhar, M.A., Ph.D. selaku Plt Rektor Universitas Sumatera

Utara.

2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan

Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu

Komputer Universitas Sumatera Utara dan Dosen Pembimbing I yang telah

memberikan kritik dan saran dalam penyempurnaan skripsi ini.

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu

Komputer Universitas Sumatera Utara dan sebagai Dosen Pembimbing II yang

telah memberikan kritik dan saran dalam penyempurnaan skripsi ini..

6. Bapak M. Andri Budiman, ST, M.Comp, Sc.M.E.M selaku Dosen Pembanding

I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

7. Bapak Ade Candra ST, M.Kom selaku Dosen Pembanding II yang telah

memberikan kritik dan saran dalam penyempurnaan skripsi ini.

9. Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi

Universitas Sumatera Utara, seluruh tenaga pengajar serta pegawai di Program

Studi S1 Ilmu Komputer Fasilkom-TI USU.

10.Ayahanda H. Bustami T. Ibrahim, S.Ag dan Ibunda Hj. Farida AR yang selalu

memberikan doa dan dukungan serta kasih sayang kepada penulis, serta

kakanda tersayang Miftahul Wardah, S.Si, Musriyani Safitri, S.Si, Teuku

Muarrif Ikramullah, S.Kom dan adik tersayang Teuku Ichsanul Aulia yang

terus memberikan dukungan dan dorongan bagi penulis untuk menyelesaikan

skripsi ini.

(6)

11. Sahabat terbaik saya, terutama Satriyo Wibowo,Ryan Dhika Priyatna, Adli

Abdillah Nababan, Ade Rizka, Nurul Zakya Haque,Fera Ferdian,Wiwin

Agustini Lubis, Tiany Dwi Lestari, Ratno Zulita dan Tika Puspita Sari serta

teman-teman seperjuangan yang sedang menyelesaikan skripsinya terutama

stambuk 2013 terkhusus kom B atas semangat dan dorongannya dan Padlian

Chairi yang membantu dalam menyelesaikan skripsi ini.

12. Buat Silvia Bilqis Magdalena yang selalu memberikan semangat dan

dorongannya sehingga saya bersemangat dalam menyelesaikan skripsi saya

ini.

13. Sahabat kecil saya, Sayed Multazam, Teuku Nazarullah dan Cahya Isna Kirani

Lubis atas semangat dan dorongannya membantu dalam menyelesaikan skripsi

ini.

14.Dan semua pihak yang telah banyak membantu yang tidak bisa disebutkan

satu-persatu.

Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan kep

ada penulis mendapatkan pahala yang melimpah dari Allah SWT.

Medan, Juni 2015

Penulis

(7)

ABSTRAK

Katalog perpustakaan adalah suatu media yang dapat menampilkan sejumlah data buku atau koleksi pada suatu perpustakaan. Dengan mencari judul buku pada katalog perpustakaan maka informasi mengenai judul buku yang dicari dapat diperoleh dengan mudah. Namun, terkadang dalam pengetikan judul buku terdapat kendala ketika ingin memperoleh informasi mengenai judul buku yang dicari. Kendala tersebut adalah kesalahan dalam pengetikan judul buku pada kotak pencarian. Kesalahan dalam pengetikan judul buku tersebut akan mengakibatkan informasi dari buku tersebut tidak dapat ditemukan. Oleh karena itu, diperlukan suatu aplikasi yang dapat membantu penguna ketika mengetikkan judul buku yang akan dicari seperti

autocomplete dan autocorrect. Autocomplete merupakan suatu fitur atau layanan yang

dapat menampilkan prediksi kata yang diketikkan belum lengkap, sedangkan

autorrect merupakan suatu fitur/layanan yang dapat menampilkan perbaikan kata.

Algoritma Levenshtein Distance merupakan algoritma pencocokan string berdasarkan pendekatan perkiraan dan digunakan untuk menampilkan autocorrect sedangkan algoritma Boyer Moore adalah algoritma pencocokan string berdasarkan lompatan dari setiap string yang digunakan untuk menghasilkan autocomplete. Keluaran yang dihasilkan dari sistem ini berupa prediksi judul buku yang diketikkan oleh pengguna

Kata kunci : Algoritma Levenshtein Distance, Algoritma Boyer Moore, Autocomplete,

Autocorrect, katalog perpustakaan, Aceh Timur

(8)

Implementation Levenshtein Distance Algorithm and Boyer Moore for Autocomplete and Autocorrect Feature in Aceh Timur’s Library Catalog

ABSTRACT

A library catalogue is a medium which can show some data, book, or collection in a

library by searching for a title in the library catalogue. Therefore, the information

connected to the title which the readers are looking for can be found easily. However,

sometimes, there are some difficulties in searching some books by using its title. The

difficulties are the type missing in the searching box. As a result, the book which is

searched for cannot be found. Therefore, it is needed to create an application to help

the users when they type the title of the book,with some essential feature such as auto

complete and autocorrect. Autocomplete is a feature that can show missing word.

Algorithm Levenshtein Distance is an algorithm which can match string based on

hypotheses approach. Boyer Moore is used to make autocomplete. The output create

from this system is a oprediction of the book’s title that is typed by the users.

Keywords: Algorithm Levenshtein Distance, Algoritm Boyer Moore, Autocomplete,

Autocorrect, Library catalogue, Aceh Timur

(9)

DAFTAR ISI

1.3 Ruang Lingkup Penelitian 3

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 4

1.6 Metode Penelitian 4

1.7 Sistematika Penulisan 5

BAB 2 LANDASAN TEORI

2.1 Katalog Perpustakaan 6

2.2 Fitur atau Layanan Autocomplete 7 2.3 Fitur atau Layanan Autocorrect 8

2.4 Approximate String Matching 8

2.4.1 Operasi penghapusan 8

2.4.2 Operasi penyisipan 9

2.4.3 Operasi penukaran 10

2.5 Algoritma Levenshtein Distance 10

2.6 Algoritma Boyer Moore 13

2.6.1 Cara Kerja Algoritma Boyer Moore 16

2.6.2 Prosedur Algoritma Boyer Moore 19

2.7 Penelitian Terdahulu 22

(10)

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Masalah 24

3.2 Analisis Kebutuhan Sistem 25

3.2.1 Kebutuhan fungsional sistem 25

3.2.2 Kebutuhan nonfungsional sistem 26

3.3 Pemodelan sistem 27

3.3.1 Use case Diagram 27

3.3.2 Activity Diagram 29

3.3.3 Sequence Diagram 31

3.4 Analisis Data 31

3.5 Perancangan Sistem 34

3.5.1 Flowchart sistem Autocomplete 34

3.5.2 Proses pencarian Boyer Moore untuk autocomplete 35

3.5.3 Flowchart sistem Autocorrect 40

3.5.4 Proses pencarian pada Levenshtein Distance untuk 41

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM 4.1 Perhitungan Nilai Levenshtein Distance dan Boyer Moore pada Fitur Autocomplete dan Autocorrect secara manual 57 4.1.1 Perhitungan Nilai Levenshtein Distance Untuk Fitur Autocorrect 57

4.1.1.1 Potongan Program dari Metode Levenshtein Distance 59

4.1.2 Perhitungan Nilai Boyer Moore untuk Fitur Autocomplete 61 4.1.2.1Potongan Program dari Metode Boyer Moore 65

(11)

4.3 Implementasi Perancangan Antarmuka 69

4.3.1 Tampilan halaman awal user 70

4.3.2 Tampilan halaman hasil pencarian judul buku 70 4.3.3 Tampilan halaman informasi data buku 71

4.3.4 Tampilan halaman login admin 71

4.3.5 Tampilan halaman awal admin 72

4.3.6 Tampilan halaman daftar buku 73

4.3.7 Tampilan halaman tambah buku 73

4.3.8 Tampilan halaman edit buku 74

BAB 5 KESIMPULAN DAN SARAN

5.1 Kesimpulan 75

5.2 Saran 76

DAFTAR PUSTAKA 77

LAMPIRAN

(12)

DAFTAR TABEL

Halaman

Tabel 2.1 Penelitian sebelumnya 22

Tabel 3.1 Tabel Use Case Proses Pencarian Judul Buku 28 Tabel 3.2 Keterangan Bagian-Bagian Rancangan Halaman Utama 30

Tabel 3.3 Sampel Data Buku 32

Tabel 3.4 Occurence Heuristic 37

Tabel 3.5 Math Heuristic 37

Tabel 3.6 Math Heuristic 39

Tabel 4.1 Occurence Heuristic 63

Tabel 4.2 Math Heuristic 63

Tabel 4.3 Tabel nilai OH dan MH 65

Tabel 4.4 Rencana Pengujian Sistem 67

Tabel 4.5 Hasil Pengujian Fungsi Dasar Sistem 68 Tabel 4.6 Pengujian Hasil pencarian Autocorrect 68 Tabel 4.7 Pengujian Hasil pencarian Autocomplete 69

(13)
(14)

Gambar 4.9 Tampilan halaman informasi data buku 68

Gambar 4.10 Tampilan halaman login admin 69

Gambar 4.11 Tampilan halaman awal admin 69

Gambar 4.12 Tampilan halaman daftar buku 70

Gambar 4.13 Tampilan halaman tambah buku 70

Gambar 4.14 Tampilan halaman edit buku 71

Gambar 4.15 Autocomplete untuk “panduan” 72

Gambar 4.16 Autocorrect untuk “sehat”

73

(15)

ABSTRAK

Katalog perpustakaan adalah suatu media yang dapat menampilkan sejumlah data buku atau koleksi pada suatu perpustakaan. Dengan mencari judul buku pada katalog perpustakaan maka informasi mengenai judul buku yang dicari dapat diperoleh dengan mudah. Namun, terkadang dalam pengetikan judul buku terdapat kendala ketika ingin memperoleh informasi mengenai judul buku yang dicari. Kendala tersebut adalah kesalahan dalam pengetikan judul buku pada kotak pencarian. Kesalahan dalam pengetikan judul buku tersebut akan mengakibatkan informasi dari buku tersebut tidak dapat ditemukan. Oleh karena itu, diperlukan suatu aplikasi yang dapat membantu penguna ketika mengetikkan judul buku yang akan dicari seperti

autocomplete dan autocorrect. Autocomplete merupakan suatu fitur atau layanan yang

dapat menampilkan prediksi kata yang diketikkan belum lengkap, sedangkan

autorrect merupakan suatu fitur/layanan yang dapat menampilkan perbaikan kata.

Algoritma Levenshtein Distance merupakan algoritma pencocokan string berdasarkan pendekatan perkiraan dan digunakan untuk menampilkan autocorrect sedangkan algoritma Boyer Moore adalah algoritma pencocokan string berdasarkan lompatan dari setiap string yang digunakan untuk menghasilkan autocomplete. Keluaran yang dihasilkan dari sistem ini berupa prediksi judul buku yang diketikkan oleh pengguna

Kata kunci : Algoritma Levenshtein Distance, Algoritma Boyer Moore, Autocomplete,

Autocorrect, katalog perpustakaan, Aceh Timur

(16)

Implementation Levenshtein Distance Algorithm and Boyer Moore for Autocomplete and Autocorrect Feature in Aceh Timur’s Library Catalog

ABSTRACT

A library catalogue is a medium which can show some data, book, or collection in a

library by searching for a title in the library catalogue. Therefore, the information

connected to the title which the readers are looking for can be found easily. However,

sometimes, there are some difficulties in searching some books by using its title. The

difficulties are the type missing in the searching box. As a result, the book which is

searched for cannot be found. Therefore, it is needed to create an application to help

the users when they type the title of the book,with some essential feature such as auto

complete and autocorrect. Autocomplete is a feature that can show missing word.

Algorithm Levenshtein Distance is an algorithm which can match string based on

hypotheses approach. Boyer Moore is used to make autocomplete. The output create

from this system is a oprediction of the book’s title that is typed by the users.

Keywords: Algorithm Levenshtein Distance, Algoritm Boyer Moore, Autocomplete,

Autocorrect, Library catalogue, Aceh Timur

(17)

BAB 1

PENDAHULUAN

1.1.Latar Belakang

Kemajuan teknologi pada masa sekarang sangat membantu serta memberi kemudahan

bagi manusia dalam melakukan berbagai aktivitas, khususnya aktivitas yang berkaitan

dengan informasi seperti mencari informasi buku, mencari bahan kuliah, mencari informasi

seseorang, dan lain-lain. Jika informasi yang dicari memiliki jumlah yang masih sedikit,

pencarian dapat dilakukan secara manual. Namun jika informasi yang dicari sudah memiliki

jumlah yang banyak dan besar maka pengguna akan mengalami kesulitan dalam mencari

informasi yang dicari (Chiquita, 2011). Untuk memperoleh informasi dengan cepat dan

mudah dari banyaknya kumpulan informasi maka dapat menggunakan mesin pencari.

Mesin pencari merupakan program komputer yang dirancang agar mampu

menemukan informasi yang dicari dari banyaknya kumpulan informasi yang tersedia Dengan

adanya mesin pencari setiap orang dapat dengan mudah memperoleh informasi yang

diinginkan. Dengan mengetikkan kata yang ingin dicaripada mesin pencari maka seluruh

informasi yang diinginkan akan ditampilkan. Namun sejumlah penelitian terhadap mesin

pencari menyimpulkan bahwa rata-rata kesalahan dalam pengetikan kata yang dicari yang

dilakukan oleh pengguna cukup tinggi ,kesalahan dalam pengetikan kata yang dicari oleh

pengguna dapat menyebabkan informasi yang dicari tidak dapat ditemukan.Untuk itu

dibutuhkan penambahan fitur yang dapat membantu pengguna ketika mengetik, dimana fitur

tersebut dapat menampilkan prediksi kata seperti autocomplete dan autocorrect yang dapat

membantu pengguna untuk mengetikkan kata pada mesin pencari.

(18)

Autocomplete merupakan fitur atau layanan yang dapat menampilkan prediksi kata

jika kata yang diketikkan belum lengkap (Chiquita, 2011). Beberapa penelitian yang

berkaitan dengan masalah ini diantaranya yaitu penelitian yang pernah dilakukan oleh

(Chiquita, 2011), pada penelitiannya Chiquita menerapkan algoritma Boyer-Moore untuk

layanan autocomplete dan menggunakan algoritma Dynamic Programming untuk layanan

autocorrect untuk mencari kata di dalam paragraf. Kemudian selanjutnya penelitian yang

pernah dilakukan oleh Chiquita (2011), pada penelitiannya Kusuma melakukan pencocokan

string untuk fitur autocompletion pada text editor atau integrated development environment

(IDE) menggunakan algoritma Brute Force dan KMP. Selanjutnya penelitian yang pernah

dilakukan oleh Pradhana (2012), pada penelitiannya Pradhana menerapkan algoritma string

matching seperti Brute Force, Knuth-Morris Pratt dan Boyer-Moore untuk fitur autocorrect

dan fitur autotext pada smart phones. Pada penelitian ini, penulis akan mensimulasikan

algoritma Levenshtein Distance dan Boyer Moore untuk menghasilkan fitur autocomplete dan

autocorrect. Pada simulasinya fitur autocomplete digunakan untuk membantu pengetikan

judul buku pada aplikasi katalog perpustakaan, sedangkan autocomplete untuk membenarkan

pencarian judul buku yang dicari. Algoritma Levenshtein Distance dan Boyer Moore

merupakan salah satu algoritma Approximate String Matching yang digunakan dalam

pencarian string berdasarkan pendekatan perkiraan (Adiwidya, 2009). Pada penelitian

sebelumnya algoritma string matching seperti Brute Force,, dan Knuth-Morris Pratt

melakukan pencocokan secara bertahap pada seluruh rangkaian string sehingga memiliki

proses yang cenderung panjang dan rumit.Sedangkan algoritma Levenshtein Distance

melakukan modifikasi dengan mengubah suatu string menjadi string yang lain sehingga

prosesnya lebih sederhana.

Algoritma Levenshtein Distance terbukti dapat menyelesaikan beberapa permasalahan

dalam penelitian ilmiah, beberapa penelitian yang pernah dilakukan yang berkaitan dengan

algoritma Levenshtein Distance, diantaranya yaitu Adriyani (2012) menggunakan algoritma

Levenstein Distance dan metode empiris untuk menampilkan saran perbaikan kesalahan

pengetikan dokumen berbahasa Indonesia, (2010) di dalam penelitiannya menggunakan

algoritma Levenshtein Distance untuk menampilkan string suggestion pada aplikasi seperti

spell checker dan kamus. Selanjutnya Benisius (2010) menggunakan algoritma Levenshtein

Distance untuk sistem pengoreksian kata kunci, dimana di dalam penelitiannya Benisius

melakukan studi kasus terhadap website Universitas Halmahera. Di dalam penelitiannya juga,

Benisius menggunakan proses crawling dan indexing untuk mengumpulkan informasi dari

(19)

website Universitas Halmahera untuk dicocokkan dengan kata kunci sebagai hasil koreksi

kata kunci.

1.2.Rumusan Masalah

1. Bagaimana cara kerja fitur autocomplete dan fitur autocorrect dalam proses pencarian

judul buku pada katalog perpustakaan menggunakan Algoritma Levenshtein Distance

dan Algoritma Boyer Moore?

1.3.Ruang Lingkup Penelitian

Adapun batasan masalah yang diberikan pada penelitian ini adalah sebagai berikut :

1. Peneliti menerapkan algoritma Levenshtein Distance pada fitur autocorrect dan

Algoritma Boyer Moore pada fitur autocomplete.

2. Data koleksi perpustakaan yang akan digunakan di dalam penelitian hanya data buku

saja seperti judul buku, pengarang, penerbit, tahun terbit, edisi, jenis, deskripsi,

subjek, bahasa dan jumlah eksemplar, sedangkan jurnal dan kumpulan dokumen

pendidikan yang lain tidak diikut sertakan.

3. Data judul buku yang diambil berasal dari Dinas Perpustakaan dan Arsip Daerah Aceh

Timur

4. Dalam hal ini peneliti menggunakan PHP (Hypertext Prepocessor) dan MySQL

sebagai DBMS

1.4.Tujuan Penelitian

Mensimulasikan algoritma Levenshtein Distance dan Boyer Moore dalam membuat fitur

autocomplete dan autocorrect pada aplikasi katalog perpustakaan Daerah Aceh Timur agar

dapat membantu pengguna ketika menuliskan judul buku yang ingin dicari.

1.5. Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini adalah

(20)

1. Membantu pengguna dalam mencari buku dengan menggunakan aplikasi

perpustakaan ini.

2. Menerapkan fitur autocomplete dan autocorrect untuk mempermudah dalam

pencarian buku pada aplikasi ini.

3. Mempersingkat waktu serta keefesienan waktu dalam pencarian judul buku pada

aplikasi ini.

1.6. Metode Penelitian

Adapun metode penelitian yang akan digunakan adalah:

1. Studi Literatur

Pada tahap ini dilakukan dengan membaca dan mempelajari lebih dalam buku-buku

referensi, jurnal atau sumber-sumber penelitian lain yang berkaitan dengan autocomplete

serta teori algoritma Levenshtein Distance.

2. Analisis dan Perancangan Desain Sistem

Pada tahap ini akan dilakukan analisis terhadap penerapan algoritma Levenshtein

Distance pada autocomplete, serta perancangan aplikasi, antara lain: menggambar flowchart, use case, DFD dan perancangan antarmuka atau interface.

3. Implementasi Sistem

Pada tahap ini akan dilakukan pengkodean dan menerapkan perancangan aplikasi

tersebut ke dalam bahasa pemrograman PHP dan MYSQL.

4. Pengujian Sistem

Pada tahap ini akan dilakukan pengujian terhadap aplikasi apakah telah memenuhi

kriteria atau tidak.

5. Dokumentasi Sistem

Pada tahap ini akan dilakukan penulisan laporan mengenai aplikasi tersebut yang

bertujuan untuk menunjukkan hasil penelitian ini.

(21)

1.7.Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari lima bagian utama sebagai berikut:

BAB 1: PENDAHULUAN

Bab ini akan menjelaskan tentang latar belakang, rumusan masalah, batasan masalah, tujuan

penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.

BAB 2: LANDASAN TEORI

Bab ini akan menjelaskan tentang segala teori yang berkaitan dengan penelitian seperti

pengertian autocomplete, pembahasan algoritma Levenshtein Distance, penelitian-penelitian

terdahulu dan teori-teori lainnya yang berkaitan dengan penelitian.

BAB 3: ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi analisis terhadap fokus permasalahan penelitian dan perancangan sistem yang

akan dibangun seperti menggambar flowchart atau diagram alur kerja system, analisis

terhadap proses kerja algoritma Levenshtein Distance pada autocomplete dan perancangan

antarmuka atau interface.

BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi pembahasan tentang implementasi algoritma yang disusun pada bab 3 dan

pengujian terhadap sistem yang dibangun.

BAB 5: KESIMPULAN DAN SARAN

Bab ini memuat kesimpulan dari keseluruhan uraian bab-bab sebelumnya dan saran yang

diperoleh yang diharapkan dapat bermanfaat untuk pengembangan program selanjutnya.

(22)

BAB 2

LANDASAN TEORI

Pada bab ini akan dibahas tentang teori-teori dan konsep dasar yang mendukung pembahasan

dari sistem yang akan dibuat.

2.1. Katalog Perpustakaan

Katalog perpustakaan adalah suatu media yang dibutuhkan oleh perpustakaan agar dapat

memudahkan pengunjung dalam memperoleh informasi mengenai koleksi apa saja yang

dimiliki oleh perpustakaan.

Ada beberapa pengertian tentang katalog perpustakaan, antara lain yaitu :

a. Gates (1989) menyatakan bahwa katalog perpustakaan adalah suatu daftar yang

sistematis dari buku dan bahan-bahan lain dalam suatu perpustakaan, dengan

informasi deskriptif mengenai pengarang, judul, penerbit, tahun terbit, bentuk fisik,

subjek, dan ciri khas bahan.

b. Sulistyo-Basuki (1991) menyatakan bahwa katalog perpustakaan adalah senarai

dokumen yang dimiliki sebuah perpustakaan atau kelompok perpustakaan

2.2. Fitur atau Layanan Autocomplete

(23)

Autocomplete merupakan pola yang pertama kali muncul dalam bantuan fungsi aplikasi

dekstop, dimana pengguna mengentrikan teks ke dalam kotak kemudian saran pengetikan

akan muncul secara otomatis . Autocomplete memecahkan beberapa masalah umum pada

pengetikan (Morville & Callender, 2010) yaitu :

a. Mengetik membutuhkan waktu.

b. Pengguna tidak dapat mengeja kata dengan baik.

c. Pengguna sering salah atau lupa ketika mengetikkan kata-kata, sulit mengingat istilah

yang tepat.

Autocomplete bekerja ketika pengguna menulis huruf pertama atau beberapa huruf/karakter

dari sebuah kata, program yang melakukan prediksi akan mencari satu atau lebih

kemungkinan kata sebagai pilihan. Jika kata yang dimaksud ada dalam pilihan kata prediksi

maka kata yang dipilih tersebut akan disisipkan pada teks (Kusuma, 2012). Saat ini

autocomplete tidak hanya terdapat pada dekstop, tetapi terdapat juga pada web browser, email-programs, search engine interface, source code editors, database query tools, word processor, dan command line interpreters (Kusuma, 2012). Ilustrasi penggunaan layanan autocomplete dapat dilihat pada gambar 2.1.

Gambar 2.1. Ilustrasi Penggunaan Autocomplete

2.3. Fitur atau layanan Autocorrect

Auto Correct adalah fitur yang berguna untuk memberikan sugesti kata (suggestion). Dengan

mengetikkan beberapa huruf atau seluruh huruf maka sistem akan mencari kedalam database

(24)

apakah ada kata yang memenuhi kriteria dari huruf-huruf yang dimasukkan untuk mencari

judul buku,penerbit bahkan pengarang dari buku tersebut. Ilustrasi penggunaan fitur

autocorrect dapat dilihat pada gambar 2.2

Gambar 2.2. Ilustrasi Penggunaan Autocorrect

2.4. Approximate String Matching

Approximate string matching merupakan pencocokan string dengan dasar kemiripan dari segi

penulisannya (jumlah karakter dan susunan karakter), tingkat kemiripan ditentukan dengan

jauh tidaknya beda penulisan dua buah string yang dibandingkan tersebut (Haryanto, 2011).

Operasi mengubah string ini bisa berupa mengubah satu huruf ke huruf yang lain, menghapus

satu huruf dari string, atau memasukkan satu huruf ke dalam string. Operasi-operasi ini

digunakan untuk menghitung jumlah perbedaan yang diperlukan untuk pertimbangan

kecocokan suatu string dengan string sumber, jumlah perbedaan tersebut diperoleh dari

penjumlahan semua pengubahan yang terjadi dari masing-masing operasi. Penggunaan

perbedaan tersebut diaplikasikan dalam berbagai macam algoritma, seperti Hamming,

Levenshtein, Damerau-Levenshtein, Jaro-Winkler, Wagner-Fischer, dan lain-lain (Husain,

2013). Operasi penghitungan tersebut meliputi tiga operasi string seperti di bawah ini

(Adiwidya, 2009).

2.4.1. Operasi penghapusan

Operasi penghapusan dilakukan dengan menghapus karakter pada indeks tertentu untuk

menyamakan string sumber (S) dengan string target (T), misalnya S= matching dan T=

match. Penghapusan dilakukan untuk karakter i pada lokasi ke-6, penghapusan karakter n

(25)

pada lokasi ke-7, penghapusan karakter g pada lokasi ke-8. Operasi penghapusan tersebut

menunjukkan tranformasi S ke T, ilustrasinya adalah sebagai berikut :

1 2 3 4 5 6 7 8

T = m a t c h - - -

S = m a t c h i n g

2.4.2. Operasi penyisipan

Operasi penyisipan dilakukan dengan menyisipkan karakter pada indeks tertentu untuk

menyamakan string sumber (S) dengan string target (T), misalnya S= cerdas dan T=

kecerdasan. Operasi penyisipan dapat dilakukan dengan menyisipkan e pada posisi 2,

menyisipkan c pada posisi 3, menyisipkan a pada posisi 8 dan menyisipkan n pada posisi 9.

Yang dapat diilustrasikan sebagai berikut:

K e c e r d a s a n

K - - e r d a s - -

1 2 3 4 5 6 7 8 9

T = K e c e r d a s a n

S = K - - e r d a s - -

e c a n

2.4.3. Operasi penukaran

Operasi penukaran dilakukan dengan menukar karakter pada indeks tertentu untuk

menyamakan string sumber (S) dengan string target (T), misalnya S= computer dan T=

komputer. String S ditranformasikan menjadi T dengan melakukan penggantian (substitusi)

pada posisi ke-1. Huruf C ditukar menjadi K. Prosesnya dapat diilustrasikan sebagai berikut:

(26)

1 2 3 4 5 6 7 8

T = k o m p u t e r

S = c o m p u t e r

k

2.5. Algoritma Levenshtein Distance

Algoritma Levenshtein Distance ditemukan oleh Vladimir Levenshtein, seorang

ilmuan asal Rusia pada tahun 1965 (Janowski, 2010), algoritma ini sering juga disebut

dengan Edit Distance (Husain,2013). Yang dimaksud dengan distance adalah jumlah

modifikasi yang dibutuhkan untuk mengubah suatu bentuk string ke bentuk string yang lain,

sebagai contoh hasil penggunaan algoritma ini, string “komputer” dan “computer” memiliki

distance 1 karena hanya perlu dilakukan satu operasi saja untuk mengubah satu string ke

string yang lain. Dalam kasus dua string di atas, string “computer” dapat menjadi

“komputer” hanya dengan melakukan satu penukaran karakter „c‟ menjadi „k‟ (Andhika,

2010). Algoritma Levenshtein Distance digunakan secara luas dalam berbagai bidang,

misalnya mesin pencari, pengecek ejaan (spell checking), pengenal pembicaraan (speech

recognition), pengucapan dialek, analisis DNA, pendeteksi pemalsuan, dan lain-lain.

Algoritma ini menghitung jumlah operasi string paling sedikit yang diperlukan untuk

mentransformasikan suatu string menjadi string yang lain (Adiwidya, 2009). Algoritma

Levenshtein Distance bekerja dengan menghitung jumlah minimum pentranformasian suatu

string menjadi string lain yang meliputi penghapusan, penyisipan, dan penukaran (Husain,

2013). Selisih perbedaan antar string dapat diperoleh dengan memeriksa apakah suatu string

sumber sesuai dengan string target. Nilai selisih perbedaan ini disebut juga Edit distance/

jarak Levenhstein. Jarak Levenshtein antar string s dan string t tersebut adalah fungsi D

yang memetakan (s,t) ke suatu bilangan real nonnegatif, sebagai contoh diberikan dua buah

string s = s(1)s(2)s(3)...s(m) dan t = t(1)t(2)t(3)...t(n) dengan | s | = m dan | t | = n sepanjang

alfabet V berukuran r sehingga s dan t anggota dari V*. S(j) adalah karakter pada posisi ke-j

pada string s dan t(i) adalah karakter pada posisi ke-i pada string t. Sehingga jarak

Levenshtein dapat didefinisikan sebagai (Harahap, 2013).

(27)

D ( s, t) adalah banyaknya operasi minimum dari operasi penghapusan, penyisipan dan

penukaran untuk menyamakan string s dan t. Pada implementasi pencocokan antar string,

ketiga operasi tersebut dapat dilakukan sekaligus untuk menyamakan string sumber dengan

string target seperti pada contoh berikut ini. Jika diberikan string sumber (S) =

“pemrograman” dan T = “ algoritma” merupakan string target, dengan | s | = 11, | t | = 9,

maka proses pencocokan string dapat diilustrasikan sebagai berikut :

1 2 3 4 5 6 7 8 9 10 11

T = a l g o r i t m a - -

S = p e m p r o s e s a n

a l g o i t m a

Pada contoh di atas terlihat bahwa proses penukaran karakter „p‟ pada indeks ke-1, „e‟ pada indeks ke-2,”m” pada indeks ke-3, ‟p‟ pada indeks ke-4, ‟o‟ pada indeks ke-6, ‟s‟ pada indeks ke-7, ‟e‟ pada indeks ke-8, penyisipan karakter „g‟ pada indeks ke-3 dan proses penghapusan karakter „a‟ pada indeks ke-9, dan „n‟ pada indeks ke-11. Maka jarak Levenshtein antara S dan T adalah sebagai berikut ini.

(28)

= d( s1, t1 ) + d( s2, t2 ) + d( s3, t3 ) + d( s4, t4 ) + d( s5, t5 ) +

d( s6, t6 ) + d( s7, t7 ) + d( s8, t8 ) + d( s9, t9 ) + d( s10, t10 ) +

d( s11, t11 ) + d( s12, t12 )

= d( a, p ) + d( l, e ) + d( g, - ) + d( o, m ) + d( r, r ) + d( i, o) +

d( t, g ) + d( m, r) + d( a, a ) + d( -, m )+ d( -, a) + d(-, n)

= 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1

= 10

Sehingga jarak Levenshtein antara string T = “pemprosesan” dan T = “algoritma”

adalah D(s, t) = 10.

2.6. Algoritma Boyer Moore

Algoritma Boyer Moore termasuk algoritma string matching yang paling efisien

dibandingkan algoritma-algoritma string matching lainnya. Karena sifatnya yang efisien,

banyak dikembangkan algoritma string matching dengan bertumpu pada konsep algoritma

Boyer Moore, beberapa di antaranya adalah algoritma Turbo BM dan algoritma Quick

Search.( Chiquita. 2012).

Algoritma Boyer Moore menggunakan metode pencocokan string dari kanan ke kiri

yaitu men-scan karakter pattern dari kanan ke kiri dimulai dari karakter paling kanan.

Algoritma Boyer Moore menggunakan dua fungsi shift yaitu good-suffix shift dan

(29)

character shift untuk mengambil langkah berikutnya setelah terjadi ketidakcocokan antara

karakter pattern dan karakter teks yang dicocokkan ( Sagita Vina, 2012).

1. Deskripsi kerja algoritma Boyer Moore

Untuk menjelaskan konsep dari good-suffix shift dan bad-character shift diperlukan

contoh kasus, seperti kasus ketidakcocokan ditengah pencocokan karakter pada teks dan

pattern. Karakter pattern x[i]=a tidak cocok dengan karakter teks y[i+j]=b saat pencocokan

pada posisi j. Maka x[i+l .. m-1]= y[i+j+1 .. j+m-1]=u dan x[i] ≠ y[i+j].

2. Good-suffix shift

Konsep dari fungsi good-suffix shift adalah sebagai berikut:

1. Good-suffix shift adalah pergeseran yang dibutuhkan dari x[i]=a ke karakter lain yang

letaknya lebih kiri dari x[i] dan terletak di sebelah kiri segmen u. Kasus ini ditunjukkan

pada Gambar 2.3.

y

x shift

x

Gambar 2.3 Good-suffix shift, uterjadi lagi didahului karakter c berbeda dari a

2. Jika tidak ada segmen yang sama dengan u, maka dicari u yang merupakan suffiks

terpanjang u. Kasus ini ditunjukkan pada Gambar 2.4

(30)

y

x shift

x

Gambar 2.4 Good-suffix shift, hanya suffix dari u yang terjadi lagi di pattern x

3. Bad-character shift

Berdasarkan contoh kasus di atas, bad-character adalah karakter pada teks yaitu y

[i+j] yang tidak cocok dengan karakter pada pattern.

Konsep dari fungsi bad-character shift adalah sebagai berikut:

1. Jika bad-character y[i+j] terdapat pada pattern di posisi terkanan k yang lebih kiri dari

x[i] maka pattern digeser ke kanan sejauh i-k. Kasus ini ditunjukkan pada Gambar 2.5.

y

x shift x

Gambar 2.5 Bad-character shift, b terdapat di pattern x

2. Jika bad-character y[i+j] tidak ada pada pattern sama sekali, maka pattern digeser ke

kanan sejauh i. Kasus ini dit tunjukkan pada Gambar 2.6.

y

u b

u a

Contains no b b

u b

u a

Contains no b

(31)

x shift

x

Gambar 2.6 Bad-character shift, b tidak ada di pattern x

3. Jika bad-character y[i+j] terdapat pada pattern di posisi terkanan k yang lebih kanan

dari x[i] maka pattern seharusnya digeser sejauh i-k yang hasilnya negatif (pattern

digeser kembali ke kiri). Maka bila kasus ini terjadi. akan diabaikan.

Pada kasus ketidakcocokan di atas, algoritma akan membandingkan langkah yang

diambil oleh fungsi good-suffix shift dan bad-character shift di mana langkah yang paling

besar yang akan digunakan.

2.6.1 Cara kerja algoritma Boyer Moore

Cara kerja dari algoritma Boyer Moore adalah sebagai berikut:

1. Menjalankan prosedur preBmBc dan preBmGs untuk mendapatkan inisialisasi.

a.Menjalankan prosedur preBmBc. Fungsi dari prosedur ini adalah untuk

menentukan berapa besar pergeseran yang dibutuhkan untuk mencapai karakter

tertentu pada pattern dari karakter pattern terakhir/terkanan. Hasil dari prosedur

preBmBc disimpan pada tabel BmBc.

b.Menjalankan prosedur preBmGs. Sebelum menjalankan isi prosedur ini,

prosedur suffix dijalankan terlebih dulu pada pattern. Fungsi dari prosedur suffix

adalah memeriksa kecocokan sejumlah karakter yang dimulai dari karakter

terakhir/terkanan dengan sejumlah karakter yang dimulai dari setiap karakter

(32)

yang lebih kiri dari karakter terkanan tadi. Hasil dari prosedur suffix disimpan

pada tabel suff. Jadi suff[i] mencatat panjang dari suffix yang cocok dengan

segmen dari pattern yang diakhiri karakter ke-i.

c.Dengan prosedur preBmGs, dapat diketahui berapa banyak langkah pada pattern

dari sebeuah segmen ke segmen lain yang sama yang letaknya lebih kiri dengan

karakter di sebelah kiri segmen yang berbeda. Prosedur preBmGs menggunakan

tabel suff untuk mengetahui semua pasangan segmen yang sama. Contoh pada

Gambar 2.1, yaitu berapa langkah yang dibutuhkan dari au(u = segmen, a =

karakter di sebelah kiri u) ke cu yang mempunyai segmen u pada pattern dengan

karakter di sebelah kiri segmen yaitu c berbeda dari a dan terletak lebih kiri dari

au. Hasil dari prosedur preBmGs disimpan pada tabel BmGs.

2. Dilakukan proses pencarian string dengan menggunakan hasil dari prosedur preBmBc

dan preBmGs yaitu tabel BmBc dan BmGs.

Berikut ini diberikan contoh untuk menjelaskan proses inisialisasi dari algoritma Boyer

Moore dengan pattern gcagagag yang akan dicari pada string gcatcgcagagagtatacagtacg.

1. Dengan prosedur preBmBc, didapatkan jumlah pergeseran pada pattern yang

dibutuhkan untuk mencapai karakter a,c,g,t dari posisi terkanan. Berdasarkan contoh

diketahui untuk mencapai masing-masing karakter tadi dibutuhkan pergeseran

sebanyak 1, 6, 2 dan 8.

2. Dengan prosedur preBmGs, dijalankan prosedur suffix terlebih dulu. Dengan prosedur

suffix akan diketahui:

suff[0] = 1, 1 karakter g posisi 7 cocok dengan 1 karakter g posisi 0.

suff[1] = 0, karakter g posisi 7 tidak cocok dengan karakter c posisi 1.

(33)

suff[2] = 0, karakter g posisi 7 tidak cocok dengan karakter a posisi 2.

suff[3] = 2, 2 karakter dimulai dari karakter g posisi 7 cocok dengan 2 karakter

dimulai dari karakter g posisi 3, yang artinya karakter a,g posisi 6,7 cocok dengan

karakter a,g posisi 2,3.

suff[4] = 0, karakter g posisi 7 tidak cocok dengan karakter a posisi 4.

suff[5] = 4, 4 karakter dimulai dari karakter g posisi 7 cocok dengan 4 karakter

dimulai dari karakter 5,artinya karakter a,g,a,g posisi 4,5,6,7 cocok dengan karakter

a,g,a,g posisi 2,3,4,5.

suff[6] = 0,karakter g posisi 7 tidak cocok dengan karakter a posisi 6.

suff[7] = 8, 8 karakter g,c,a,g,a,g,a,g posisi 0,1,2,3,4,5,6,7 cocok dengan 8 karakter

g,c,a,g,a,g,a,g posisi 0,1,2,3,4,5,6,7.

3. Dengan prosedur BmGs akan didapatkan:

0 1 2 3 4 5 6 7

g c a g a g a g

bmGs[0]= 7, karakter ke-0 g adalah karakter sebelah kiri segmen cagagag.Tidak ada

segmen cagagag lain dengan karakter sebelah kiri bukan g maka digeser 7 langkah.

bmGs[1]= 7, karakter ke-1 c adalah karakter sebelah kiri segmen agagag. Tidak ada

segmen agagag lain dengan karakter sebelah kiri bukan c maka digeser 7 langkah.

bmGs[2]= 7, karakter ke-2 a adalah karakter sebelah kiri segmen gagag. Tidak ada

segmen gagag lain dengan karakter sebelah kiri bukan a maka digeser 7 langkah.

(34)

bmGs[3]= 2. karakter ke-3 g adalah karakter sebelah kiri segmen agag. Karena ada

segmen agag posisi 2,3,4,5 dengan karakter sebelah kiri bukan g yaitu c posisi 1 maka

digeser 2 langkah.

bmGs[4]= 7, karakter ke-4 a adalah karakter sebelah kiri segmen gag. Karena tidak ada

seamen gag lain dengan karakter sebelah kiri bukan a maka digeser 7 langkah.

bmGs[5]= 4. karakter ke-5 g adalah karakter sebelah kiri seamen ag. Karena ada

segmen ag posisi 2,3 dengan karakter sebelah kiri bukan g yaitu c posisi 1 maka

digeser 4 langkah.

bmGs[6]= 7, karakter ke-6 a adalah karakter sebelah kiri segmen yaitu a posisi 7.

Karena tidak ada segmen g dengan karakter sebelah kirinya bukan a maka digeser 7

langkah.

bmGs[7]= 1, karakter ke-7 g adalah karakter sebelah kiri segmen dan karena segmen

tidak ada maka digeser 1 langkah

2.6.2 Prosedur Algoritma Boyer Moore

procedure preBmBc(in/out x: string, m: integer, output BmBc: array of integer)

{ ASIZE = ukuran ∑ }

i traversal [0..ASIZE - 1]

BmBc[i] ← m

i traversal [0..m - 2]

BmBc[x[i] ] ← m - i - 1

Gambar 2.7 Prosedur preBmBc algoritma Boyer Moore

procedure suffix (in/out x: string, m: integer, output suff: array of integer)

(35)

suff [m – 1] ← m

g ← m – 1

i traversal [m – 2..0]

if ( i > g and suff [i + m -1 – f] < i – g) then

suff [i] ← suff [ i + m – 1 – f]

else

if (i < g) then

g ← i

f ← i

while (g ≥ 0 and x[g] ← x [ g + m - 1 - f ] ) do

g ← g - 1

f ← i

while ( g ≥ 0 and x [g] ← x [g] + m - 1 - f ] ) do

g ← g - 1

suff [ i ] ← f - g

Gambar 2.7 Prosedur suffix algoritma Boyer Moore

procedure preBmGs(in/out x: string, m: integer, output BmGs: array of integer)

suffix (x, m, suff)

i traversal [0..m - 1]

BmGs[i] ← m

i traversal [m – 1 .. -1]

if (I = - 1 or suff [i] = i + 1 ) then

(36)

j traversal [ 0 .. m - 2 - i ) do

if (BmGs [j] = m) then BmGs [j] ← m - 1 - i

i traversal [0..m - 2]

BmGs [m - 1 - suff [i] ] ← m - 1 - i

Gambar 2.7 prosedur preBmGs algoritma Boyer Moore

procedure BM(in/out x,y: string, m,n: integer)

{ Preprocessing }

preBmGs(x, m, BmGs)

preBmBc(x, m, BmBc)

{ Searching }

j ← 0

while ( j ≤ n – m )do

i traversal [m - 1..0]

if (x[i] = y [ i + j ] ) then

if ( i < 0 )

OUTPUT ( j )

j ← j + BmGs [ 0 ]

else

j ← j + MAX( BmGs [i] , BmBc [ y [ i + j ] ] - m + 1 + i )

(37)

2.7 Penelitian Terdahulu

Pada bagian ini akan dijelaskan beberapa penelitian terdahulu, layanan autocorrect dan

autocomplete telah banyak digunakan pada penelitian terdahulu. Seperti layanan autocomplete dan autocorrect pada teks editor (Chiquita, 2011), dengan menggunakan

algoritma Boyer-Moore dan Dynamic Programming. Kemudian layanan autocorrect juga

pernah diterapkan pada Smart Phones (Pradhana, 2012), dengan menggunakan kombinasi

algoritma Brute Force, Boyer-Moore dan Knuth-Morris Pratt. Untuk lebih jelasnya, pada

tabel 2.1 berikut akan dijelaskan penelitian-penelitian yang telah dibuat sebelumnya.

Tabel 2.1 Penelitian sebelumnya

No. Judul Pengarang Tahun Kelebihan Kekurangan

(38)

4

Simulasi Algoritma Levenshtein

Distance untuk fitur Autocomplete pada aplikasi katalog

perpustakaan

Yuli Primadani 2014

Algoritma Levenshtein Distance dapat bekerja

maksimal pada fitur autocomplete

Tidak dilengkapi dengan fitur autocorrect

(39)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Masalah

Pada bab ini akan membahas tentang analisis dan perancangan sistem untuk fitur

autocomplete dan autocorrect dengan menggunakan algoritma Levenshtein Distance dan

Boyer Moore, membuat pemodelan sistem seperti merancang alur kerja sistem (flowchart).

Mempelajari dan menganalisis konsep kerja dan proses kerja algoritma Levenstein Disance

dan Boyer Moore dan merancang antar muka.

Untuk mendapatkan informasi buku secara cepat pada katalog perpustakaan, pada

umumnya orang mengetikkan judul buku pada mesin pencari. Dengan adanya mesin pencari,

informasi mengenai buku yang akan dicari akan ditampilkan akan lebih mudah untuk

ditampilkan. Namun ketika mengetikkan judul buku tersebut, biasanya pengguna salah

mengetikkan atau bahkan lupa akan judul buku yang akan dicari.

Kesalahan dalam pengetikan judul buku menyebabkan judul buku yang akan dicari

tidak akan ditemukan, posisi huruf yang salah atau bahkan lupa judul buku keselurahan

sehingga membuat data yang dicari tidak dapat disesuaikan dengan data yang ada di

database, sehingga menyebabkan mesin pencari tidak menemukan informasi yang dicari.

Untuk itu pada mesin pencarian perlu dibutuhkan fitur autocomplete dan autocorrect.

Layanan ini berguna untuk membantu pengguna ketika mengetikkan judul buku yang akan

dicari.

Gambar 3.1. merupakan diagram Ishikawa yang dapat digunakan untuk menganalisis

masalah. Bagian kepala atau segi empat yang berada di sebelah kanan merupakan masalah.

Sementara di pada bagian tulang merupakan penyebab.

(40)

Gambar 3.1 Diagram Ishikawa Untuk Ruang Lingkup Penelitian

3.2. Analisis Kebutuhan Sistem

Analisis kebutuhan sistem dapat dibagi pada dua kelompok, yaitu kebutuhan fungsional

sistem dan kebutuhan non fungsional sistem

3.2.1 Kebutuhan Fungsional

Fungsional sistem adalah aktifitas atau pelayanan yang harus dimiliki oleh sebuah sistem

berupa input, proses, output, maupun penyimpanan data ( Harahap, 2013). Adapun kebutuhan

fungsional yang dibutuhkan yaitu :

1. Pengguna memasukkan input berupa judul buku.

2. Sistem melakukan pencocokan string melalui judul buku yang diketikkan oleh

pengguna.

3. Sistem harus mampu menampilkan autocomplete dan autocorret yang mendekati

seperti input yang dimasukkan oleh pengguna.

(41)

3.2.2 Kebutuhan Non fungsional

Kebutuhan non fungsional sistem merupakan karakteristik atau batasan yang menentukan

kepuasan pada sebuah sistem seperti kinerja, kemudahan pengguna, biaya, dan kemampuan

sistem bekerja tanpa mengganggu fungsionalitas sistem lainnya (Whitten, 2007).

1. Sisi performa, sistem yang dirancang harus memiliki :

- Antarmuka (interface) yang sederhana dan menarik.

- Autocomplete yang mampu menampilkan judul buku yang diketikkan oleh

pengguna

- Autocorrect yang mampu memperbaiki judul buku yang diketikkan oleh pengguna

2. Sisi kemudahan penggunaan, sistem yang dirancang harus memiliki :

- Tampilan antarmuka (interface) menu bar, serta tombol botton akan dibuat

sederhana sehingga dapat emmudakan bagi para pengguna.

- Halaman form dirancang dengan mempertimbangkan jenis huruf, warna dan

layout dari antar muka.

- Bahasa yang digunakan dapat mudah dimengerti.

3. Sisi Ekonomi, sistem yang dirancang memiliki :

- Instalasi perangkat lunak dan keras yang tidak memerlukan biaya yang besar.

4. Sisi dokumentasi, sistem memiliki kemapuan sebagai berikut :

- Sistem dapat menyimpan data yang diinputkan pada database

5. Sisi kontrol, sistem yang dirancang harus memiliki :

- Sistem mengizinkan pembatalan terhadap suatu tindakan

- Sistem mampu menampilkan pesan kesalahan jika input yang dimasuukan oleh

pengguna tidak tepat.

6. Sisi kualitas, sistem yang akan dirancang memiliki :

- Kemampuan membandingkan input lebih dari satu kata

- Sistem mampu menampilkan hasil yang lebih baik

(42)

<<extends>>

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 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 dan merancang Sistem Pendukung Keputusan Pemilihan Gitar dengan

Metode Weighted Sum Model. Model UML yang digunakan antara lain use case diagram,

activity diagram, dan sequence diagram.

3.3.1. Use-Case Diagram

Use case merupakan fungsionalitas dari suatu sistem, sehingga customer atau pengguna

sistem paham dan mengerti mengenai kegunaan sistem yang akan dibangun. Use case berperan menggambarkan interaksi antar komponen-komponen yang berperan dalam sistem yang akan dirancang.

Gambar 3.2 Use Case Diagram Sistem

(43)

di dalam use case diagram dapat digambarkan bahwa terdapat 2 orang aktor yang akan

berperan, yaitu user dan admin. Untuk memperoleh informasi mengenai buku yang dicari

maka aktor user harus memasukkan input berupa judul buku ke dalam search box.

Selanjutnya jika pencarian yang dilakukan berhasil maka sistem akan menampilkan sebuah

halaman yang berisi kumpulan dari buku-buku yang berkaitan dengan judul buku yang

diinputkan, kemudian user harus mengklik salah satu dari judul buku yang ditampilkan untuk

dapat melihat informasi buku secara lengkap.

Selanjutnya untuk bagian admin yaitu terlebih dahulu melakukan login, dengan menginputkan

username dan password, jika username dan password berhasil divalidasi, maka selanjutnya

admin akan masuk ke halaman beranda. Untuk melakukan pengelolahan admin dapat

melakukan penambahan, pengeditan dan penghapusan buku.

Tabel 3.1. Tabel Use Case Proses Pencarian Judul buku

Name Proses Pencarian Judul Buku pada katalog perpustakaan Daerah Aceh Timur

Actors User yang telah ditentukan.

Description Use Case ini mendeskripsikan Pencarian Judul buku

dengan menggunakan fitur autocomplete dan

autocorrect dengan menggunakan algortima

Levenshtein Distance dan algoritma Boyer Moore

Basic Flow User memasukkan inputan karakter berupa judul Buku

yang ingin dicari pada katalog perpustakaan.

Alternate Flow

User dipermudah dengan fitur autocomplete dan autocorrect.

User mendapatkan pencarian judul buku yang ingin

dicari jika tersedia di dalam database.

(44)

3.3.2. Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang

atau menggambarkan proses parallel yang mungkin terjadi dalam beberapa eksekusi. Gambar

3.3 merupakan activity diagram dari sistem yang dibangun.

Pencarian Judul buku Input judul

buku

Info buku

Menampilkan halaman awal

Menampilkan judul buku Mulai

Judul buku tidak ditemukan

User

=Autocomplete

=Autocorrect =Boyer Moore

=Levenshtein Distance

Menampilkan info buku

Sistem

(45)

Gambar 3.3 Activity Diagram Sistem

Tabel 3.2 Keterangan Bagian-Bagian Rancangan Halaman Utama

3.3.3. Sequence Diagram

Sequence diagram merupakan diagram yang menggambarkan interaksi antar objek dan

menjelaskan bagaimana suatu operasi dilakukan.Diagram ini juga menunjukkan serangkaian

pesan yang dipertukarkan oleh objek. Dalam sistem yang akan dibangun, interaksi dilakukan

antara pengguna dan sistem. Sequence diagram sistem dapat dilihat pada Gambar 3.4. Name Activity Diagram Activity diagram Sistem

Actors User

Deskripsi Activity ini mendeskripsikan proses Sistem pada Aplikasi

Pencarian Judul buku pada fitur autocomplete dan

autocorrect

Prakondisi Sudah Masuk ke tampilan utama

Bidang Khas Suatu

Kejadian

Kegiatan User Respon system

1. Menginputkan judul buku

yang ingin dicari

2. Menekan tombol cari

3. Memilih judul buku yang

ditampilkan

Pasca kondisi Menampilkan Judul buku

(46)

Gambar 3.4 Sequence Diagram Sistem

Dari keterangan diatas dapat digambarkan dengan sequence diagram mengenai informasi

sistem yang berjalan saat ini, sehingga dengan diagram ini dapat menggambarkan pergerakan

sebuah objek dan pesan yang terjadi di dalam sistem penyampaian informasi.

3.4 Analisis Data

Data yang digunakan pada sistem ini adalah data buku yang didapatkan dari Dinas

Perpustakaan dan Arsip Daerah Aceh Timur. Pada tabel 3.1 akan diberikan beberapa data

buku yang diperoleh dari Dinas Peepustakaan dan Arsip Daerah Kabupaten Aceh Timur

No. Judul Pengarang Penerbit Edisi Jenis Subjek Bahasa Jumlah Eksemplar

Halaman awal Halaman Judul buku

User

Halaman info buku

Menekan tombol cari

Halaman awal

Menampilkan halaman awal

Klik judul buku

(47)

1

Tabel 3.3 Sampel Data Buku

Dapat dilihat pada tabel 3.1 bahwa data buku yang berhasil dikumpulkan dari katalog Dinas

Perpustakaan dan Arsip Daerah Kabupaten Aceh Timur adalah sebanyak 100 data, data ini

diambil dan dikumpulkan pada tanggal 30 Maret 2015 sampai 03 April 2015

(48)

3.5 Perancangan sistem

3.5.1 Flowchart Sistem autocomplete

Adapun alur kerja yang terdapat pada autocomplete dapat dilihat pada gambar 3.5

tidak

ya

Gambar.3.5 Flowchart autocomplete dengan algoritma Boyer Moore Mengambil semua judul buku

pada database

Memodifikasi kata pada judul buku dengan operasi tambah/tukar/hapus

Hitung nilai jarak pada Boyer Moore

Mulai

Ketika ditemukan kata yang pas Input Judul buku

Membandingkan judul buku pada database dengan judul buku yang diinput pengguna

selesai

Menampilkan Autocomplete

(49)

3.5.2 Proses pencarian pada Boyer Moore untuk autocomplete

Algoritma Boyer Moore adalah salah satu algoritma pencarian string yang

dipublikasikan oleh Rober S. Boyer an J. Stroher Moore pada tahun 1977. Algoritma Boyer

Moore tidak seperti algoritma pencarian string lainnya, algoritma Boyer Moore mulai

mencocokkan karakter dari sebelah kanan pattern sehingga pencariannya lebih cepat.

Algoritma Boyer Moore dianggap sebagai pencocokan string yang paling efisien

dalam berbagai aplikasi. Algoritma ini sering diimplementasi dalam teks editor seperti

Microsoft Word untuk fungsi Font dan Replace. (Minandar 2009).

1. Sistematika Algoritma Boyer Moore

a. Algoritma Boyer Moore mulai mencocokkan pattern pada awal teks.

b. Dari kanan ke kiri, algoritma ini akan mencocokkan karakter per karakter

pattern dengan karakter di teks yang bersesuain sampai salah satu kondisi

berikut :

- Karakter di pattren dan di teks yang dibandingkan tidak cocok (missmatch)

- Semua karakter dipattern cocok, kemudian algoritma ini akan

memberitahukan penemuan di posisi ini.

c. Algoritma menggeser pattern dengan memaksimalkan nilai pergeseran

Occurrence Heuristic dan pergeseran Math Heuristic untuk melakukan

pergeseran seingga menemukan teks yang sama dengan pattern. R Wald,2012

Cara kerja Algoritma Boyer Moore :

e l e k T r o n I k

Gambar 5.2. Pencocokan 1

Gambar 3.6. Pencocokan 1 R o n I

(50)

Langkah ke -1

e l e k T r o n I k

Gambar 3.7. Pencocokan 2

Langkah ke 2

e l e k t r o n I k

Gambar 5.2.

Gambar 3.8. Pencocokan 3

Langkah ke-3

Dari gambar 5.2, dapat dilihat bahwa karakter terakhir dari kata kunci adalah huruf “i” yang

terakhir dari kata kunci adalah huruf “i” yang dicocokkan dengan huruf “k” pada kata

“elektronik”. Karena huruf “i” dan huruf “k” berbeda, maka akan dilakukan pencocokan

huruf “k” dengan seluruh karakter pada kata kunci. Karena huruf “k” tidak terdapat pada

seluruh karakter pada kata kunci, maka kata kunci bergeser ke kanan sebanyak empat

karakter sesuai dengan panjang karakter kata kunci seperti yang tampak pada gambar 5.3.

setelah dilakukan pergeseran maka dicocokkan kembali karakter terakhir pada kata kunci

yaitu huruf “i” dengan huruf “n” dicocokkan dengan keseluruhan karakter pada kata kunci.

Karena pada kata kunci. Karena pada kata kunci terdapat huruf “n”, maka kata kunci akan

bergeser sedemikian rupa sehingga huruf “n” pada kata kunci memiliki posisi yang sejajar

dengan posisi huruf “n” pada kata yang dicocokkan seperti yang ditujukan pada gambar 5.4.

Setelah itu dilakukan kembali pencocokan karakter terkhir kata kunci, yaitu huruf “i” yang

terletak sejajar dengan huruf “i” tersebut, karena karakter tersebut sama maka dicocokkan

kembali karakter yang berbeda dsebelah kiri huruf “i” sehingga kesluruhan karakter pada

kata kunci selesai diperiksa.

R o n i

r o n I

(51)

2. Cara menghitung Tabel Occurrence Heuristic

Posisi 1 2 3 4

String R O N I

OH 3 2 1 0

Tabel 3.4. Occurence Heuristic

1. Lakukan pencacahan mulai dari posisi terakhir string sampai ke posisi awal,

dimulai dengan nilai 0, catat karakter yang sudah ditemukan (dalam contoh ini

karakter “I”)

2. Mundur ke posisi sebelumnya, nilai pencacah ditambah 1, jika karakter pada

posisi ini belum pernah ditemukan, maka nilai pergeserannya adala sama dengan

nilai pencacah.(dalam contoh ini, karakter “N” belum pernah ditemukan sehingga

nilai pergeserannya adalah sebesar nilai pencacah yaitu 1).

3. Mundur ke posisi sebelumnya, karakter”O” nilai pergeserannya 2

4. Mundur lagi, karakter “R” nilai pergeserannya yaitu 3.

5. Begitu seterusnya sampai posisi awal string.

3. Cara menghitung tabel Math Heuristic

Posisi 1 2 3 4

String R O N I

OH 4 4 4 1

Tabel 3.5 Math Heuristic

(52)

Nilai MH didapat dari langkah-langkah sebagai berikut :

String R O N X A B C D

Pattern R O N I

R O N I

Gambar 3.9. Proses pencarian Math Heuristic 1

Untuk ketidakcocokan karakter pada posisi terakhir (posisi 4), karakter “I” maka nilai

pergesernnya selalu I

String R O X I A B C D

Pattern R O N I

R O N I

Gambar 3.10. Proses pencarian Math Heuristic 2

Jika karakter “I” sudah cocok, tetapi karakter pada posisi 3 (sebelum “I”) bukan “N” maka

geser sebanyak 4 posisi, sehingga posisi string melawati teks. Karena sudah pasti “ ROXI”

bukan “RONI”

String R X N I A B C D

Pattern R O N I

R O N I

Gambar 3.11. Proses pencarian Math Heuristic 3

Jika karakter “N” sudah cocok, tetapi karakter pada posisi 2 (sebelum “N”) bukan “O” maka

geser sebanyak 4 posisi, sehingga posisi string melewati teks. Karena sudah past “RXNI”

bukan “RONI”

(53)

String X O N I A B C D

Pattern R O N I

R O N I

Gambar 3.12. Proses pencarian Math Heuristic 4

Jika karakter “O” sudah cocok, tetapi karakter posisi 1 (sebelum”O”) bukan “R” maka geser

sebanyak 4 posisi, sehingga posisi string melewati teks. Karena sudah pasti “XONI” bukan

“RONI”. Dari proses diatas maka pergeseran Math Heuristic nya ditemukan R=4, O=4, I=1.

Hasil pencocokan :

String 1 2 3 4

Pattern R O N I

OH 3 2 1 0

MH 4 4 4 1

Tabel 3.6. Tabel nilai OH dan MH

(54)

3.5.3 Flowchart Sistem autocorrect

Adapun alur kerja yang terdapat pada autocorrect dapat dilihat pada gambar 3.13

tidak

ya

ya

Gambar 3.13 Flowchart autocorrect dengan menggunakan algoritma Levenshtein Distance Mengambil semua judul buku

pada database

Memodifikasi kata pada judul buku dengan operasi tambah/tukar/hapus

Hitung nilai jarak Levenstein Distance

Jika nilai Levenshein Distance = 0

Input Judul buku

Membandingkan judul buku pada database dengan judul buku yang diinput pengguna

selesai

Menampilkan Autocorrect Start

(55)

3.5.4 Proses pencarian jarak Levenshtein untuk autocorrect

Langkah-langkah yang terdapat pada flowchart sistem dapat menjelaskan bagaimana

alur kerja yang terdapat di dalam sistem , proses kerja algoritma Levenshtein Distance untuk

mendapatkan nilai jarak Levenshtein yang akan menghasilkan autocorrect, yaitu :

1. Memberikan input berupa judul buku pada kotak pencarian.

2. Selanjutnya judul buku yang akan diinputkan akan dibandungkan dengan semua

judu buku yang terdapat di database

3. Kemudian akan dilakukan modifikasi kata pada judul buku dengan menggunakan

operasi sisip, tukar dan hapus, hal ini dilakukan jika kata yang dicocokkan berbeda

4. Setelah modifikasi dilakukan selanjutnya yaitu menghitung nilai Levenshtein

Distance, nilai Levenshtein Distance di peroleh dari hasil modifikasi.

5. Jika nilai jarak Levenshtein Distance sama dengan 0 maka judul buku yang

diinputkan dengan judul buku yang terdapat pada database dianggap sama persis

sehingga proses perulangan itu dihentikan karena dianggap sudah cocok, dan jika

tidak maka perulangan akan terus berlanjut.

6. Kemudian judul buku yang dianggap sudah cocok atau mendekati maka akan

ditampilkan sebagai autocorrect.

Algoritma Levenshtein Distance akan menampilkan layanan autocorrect dengan

melakukan perbandingan berdasarkan judul buku yang diinputkan dengan judul buku yang

terdapat di dalam database. Ketika judul buku diketikkan, sistem akan melakukan modifikasi

terhadap judul buku yang terdapat di dalam database. Modifikasi tersebut meliputi proses

penyisipan, penukaran dan penghapusan, jika proses modifikasi telah dilakukan selanjutnya

akan dilakukan perhitungan nilai jarak Levenshtein.

Penentuan jarak Levenshtein didasarkan kepada nilai yang paling terkecil atau paling

sedikit jumlah modifikasinya, sehingga string atau kata yang memiliki nilai modifikasi yang

paling sedikit saat dibandingkan dengan string atau kata lain dianggap sebagai kata yang

cocok atau paling mendekati.

(56)

Berikut adalah langkah-langkah proses pencarian jarak Levenshtein dengan kata depan

dari judul buku yaitu:

1. Membandingkan string

String yang akan dibandingkan yaitu judul buku yang diinput sebagai string target dan

judul buku yang terdapat di dalam database sebagai string sumber.

Misalkan :

String Target : algoritma

String Sumber : algoritma pencarian, pemrograman basic, kecerdasan buatan.

Misalkan string target atau judul buku yang diinputkan adalah “algoritma” sedangkan

string sumber atau judul buku yang terdapat di dalam database misalnya adalah “algoritma

pencarian”,”pemrograman c++”,“kecerdasan buatan”. Judul buku yang terdapat di dalam

database akan diubah menjadi string target atau judul buku yang diinputkan.

2. Melakukan modifikasi dan perhitungan jarak Levenshtein

Operasi Levenshtein Distance terdiri dari 3 yaitu, operasi penyisipan, operasi penukaran

dan operasi penghapusan. Sehingga proses modifikasi yang dapat dilakukan yaitu :

a. Target = algoritma

Sumber = Algoritma pencarian

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Target = A l g o r i t m a - - - - - - - - - -

Sumber = A l g o r i t m a - P e n c a r i a n

a

Pada proses modifikasi dapat dilihat terdapat 10 operasi penghapusan, yang dimulai dengan

menghapus spasi pada indeks ke-10, kemudian menghapus karakter ‘p’ pada indeks ke-11, ‘e’

pada indeks ke-12,’n’ pada indeks 13, ‘c’ pada indeks ke-14, ‘a’ pada indeks ke-15, ‘r’ pada

indeks ke-16, ‘i’ ke-17 ,‘a’ pada indeks ke-18, dan ‘n’ pada indeks ke 19. Kemudian

melakukan di dalam 1 operasi penukaran yaitu menukar karakter ‘A’ menjadi ‘a’ pada posisi

(57)

indeks ke-1, sedangkan operasi penyisipan tidak perlu dilakukan. Selanjutnya melakukan

perhitungan jarak levenshtein dengan rumus yaitu:

= d( s1, t1 ) + d( s2, t2 ) + d( s3, t3 ) + d( s4, t4 ) + d( s5, t5 ) +

d( s6, t6 ) + d( s7, t7 ) + d( s8, t8 ) + d( s9, t9 ) + d( s10, t10 ) +

d( s11, t11 )+ d( s12, t12 )+ d( s13, t13 )+ d( s14, t14 )+

d( s15, t15 )+ d( s16, t16 )+ d( s17, t17 ) + d( s18, t18 )+( s19, t19)

= d( A, a ) + d( l, l) + d( g, g ) + d( o, o ) + d( r, r ) +

d( i, i) + d( t, t) + d( m, m) + d( a, a ) + d( -, - ) +

d( p, - )+ d (e,-) +d (n,-) + d (c,-) + d (a,-) + d(r,-) +

d (i,-) + d (a,-)+ d (n,-)

= 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 +

1 + 1 + 1+1

= 11

Dari perhitungan yang dilakukan diperoleh nilai modifikasi atau jarak Levenshtein yang

diperoleh adalah 11.

b. Target = algoritma

Sumber = Pemrograman basic

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Target = a l g o r i t m a - - - - - - - -

Sumber = P e m r o g r a m a n - B a s i c

a l g o r i t m a

Gambar

Gambar 2.5 Bad-character shift, b terdapat di pattern x
Gambar 2.7 Prosedur suffix algoritma Boyer Moore
Gambar 2.7 prosedur preBmGs algoritma Boyer Moore
Tabel 2.1 Penelitian sebelumnya
+7

Referensi

Dokumen terkait

menyelesaikan Laporan Skripsi yang berjudul “ PENERAPAN STRING MATCHING MENGGUNAKAN ALGORITMA BOYER-MOORE PADA TRANSLATOR BAHASA PASCAL KE C ”.. Laporan ini diajukan

Implementasi Algoritma Pencocokan String Boyer Moore dalam pembuatan Contact Manager pada platform android.. Universitas Sumatra

Penelitian ini bertujuan untuk mengetahui Algoritma yang lebih baik diantara Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore untuk proses pencocokan

Penelitian yang dilakukan oleh (Yulianto, Arifudin, &amp; Alamsyah, 2018) menggunakan metode Approximate String Matching, menyatakan bahwa algoritma Levenshtein Distance yang

Algoritma Turbo Boyer Moore melakukan pencarian kata lebih cepat bila dibandingkan dengan String Matching on Ordered Alphabets karena algoritma Turbo Boyer Moore

Algoritma ini telah banyak dikenal pada kalangan masyarakat dan dianggap paling efisien untuk pencarian string, Algoritma boyer moore mulai mencocokan karakter dari sebelah kanan

Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembimbing I yang telah memberikan kritik dan saran dalam

menerapkan dan memanfaatkan algoritma pencocokan string seperti algoritma Boyer-Moore dan regular expression, data tweet yang ada dapat diolah dan dianalisis