IMPLEMENTASI ALGORITMA BOYER-MOORE DALAM SISTEM PENELUSURAN KATALOG PERPUSTAKAAN SEKOLAH.

(1)

1

BAB I

PENDAHULUAN

1.1Latar Belakang

Sistem komputerisasi telah merambah di dunia pendidikan. Teknologi

Informasi berperan penting dalam memperbaiki kualitas suatu Instansi.

Penggunaannya tidak hanya sebagai proses otomatisasi terhadap akses

informasi, tetapi juga menciptakan akurasi, kecepatan, dan kelengkapan

sebuah sistem yang terintegrasi, sehingga proses organisasi yang terjadi akan

efisien, terukur, fleksibel.

Kemajuan suatu bangsa dapat diidentifikasikan dari minat bacanya,

karena semakin maju suatu bangsa maka minat bacanya akan semakin tinggi.

Demikian pula kondisi perpustakaan suatu bangsa merupakan refleksi dari

tingkat kebudayaan serta tingkat peradaban yang telah dicapainya.

Perpustakaan harus mampu memperkenalkan dan meningkatkan dasar-dasar

ilmu pengetahuan dan keterampilan kepada masyarakat serta menanamkan

sikap untuk terus menerus belajar secara berkelanjutan seumur hidup.

Perpustakaan berperan aktif sebagai sarana untuk membantu mencerdaskan

kehidupan bangsa, sehingga dapat meningkatkan partisipasi dan produktivitas

dalam pembangunan. Perkembangan ilmu pengetahuan dan teknologi dewasa


(2)

2

dan kemahiran dalam beberapa mata pelajaran saja. Isi pelajaran tidak dapat

lagi dibatasi kepada buku pelajaran ataupun metode mengajar dan tidak cukup

berdasarkan ingatan. Pendidikan bukan hanya menyampaikan pengetahuan

dari guru dan buku pelajaran kepada anak didik, tetapi juga memberi

kesempatan kepada anak didik untuk ikut aktif dalam usaha memperkaya

pengetahuannya dengan usaha sendiri.

Pendidikan di era globalisasi mengharuskan mata pelajaran untuk

diintegrasikan sebanyak mungkin dengan memanfaatkan perkembangan

teknologi informasi. Oleh karena itu anak didik membutuhkan sumber belajar

yang diantaranya adalah perpustakaan.fungsi sebagai sumber informasi ilmu

pengetahuan, teknologi dan kebudayaan dalam rangka mencerdaskan

kehidupan bangsa dan menunjang pelaksanaan pembangunan sekolah. Sebagai

sumber belajar perpustakaan sekolah juga berfungsi membantu program

pendidikan, sehingga perlu dikembangkan untuk mencapai sasaran yang

dikehendaki. Pengembangan perpustakaan sekolah tidak akan pernah berhasil

jika tanpa didukung oleh sarana dan prasarana yang memadai. Salah satu

sarana yang diperlukan di perpustakaan sekolah adalah sistem pelayanan

perpustakaan. Teknologi informasi juga dapat dimanfaatkan dalam layanan

perpustakaan untuk lebih memperlancar, mempercepat dan mempernyaman

layanan.

Perpustakaan adalah sebuah ruang dimana di dalamnya terdapat


(3)

3

sebagai media dalam mencari ilmu dan wawasan bagi semua orang. Dengan

semakin berkembangnya kegiatan dan inventaris suatu buku pada sebuah

perpustakaan serta semakin bertambahnya anggota, maka diperlukan suatu

sistem informasi yang dapat menampung semua informasi mengenai data

tersebut secara cepat.

Sebagian besar perpustakaan sekolah masih menggunakan sistem

pencarian manual untuk mencari buku perpustakaan. Sistem yang belum

terkomputerisasi tersebut menyebabkan kegiatan operasional perpustakaan

berjalan lambat dan tidak efektif terutama penelusuran koleksi perpustakaan

yang masih harus dilakukan secara manual, pengunjung harus datang ke

perpustakaan untuk mengetahui apakah koleksi yang ingin dipinjam tersedia

atau tidak. Sehingga diperlukan sebuah sistem yang dapat memecahkan

permasalahan tersebut sehingga dapat mempermudah pengunjung untuk

mengetahui ketersediaan koleksi perpustakaan tanpa harus datang ke

perpustakaan. Sistem penelusuran katalog perpustakaan sekolah yang akan

dibangun memerlukan algoritma pencarian string yang cepat dan efektif.

Implementasi algoritma Boyer-Moore ke dalam sistem penelusuran katalog

perpustakaan sekolah diharapkan dapat membuat penelusuran katalog lebih

cepat dan akurat sehingga pelayanan perpustakaan dapat berjalan dengan


(4)

4

1.2Rumusan Masalah

Dari latar belakang diatas maka dibuat rumusan masalah yang harus

diselesaikan dalam penelitian ini, yaitu :

1. Bagaimana membangun sebuah sistem penelusuran katalog dengan

mengimplementasikan algoritma Boyer-Moore agar dapat mempermudah

pengunjung untuk mengetahui ketersediaan dan keberadaan koleksi yang

akan dipinjam.

2. Bagaimana membangun sebuah sistem penelusuran katalog dengan

mengimplementasikan algoritma Boyer-Moore agar dapat mengurangi

beban kerja petugas perpustakaan sekolah.

1.3Batasan Masalah

1. Penelusuran katalog berdasarkan judul buku dan penulis.

2. Perangkat lunak yang akan dibangun merupakan perangkat lunak berbasis

web.

1.4Tujuan Penelitian

Tujuan dari penelitian yang dilakukan adalah sebagai berikut.

1. Membangun sistem penelusuran katalog dengan mengimplementasikan

algoritma Boyer-Moore agar dapat mempermudah pengunjung untuk

mengetahui ketersediaan dan keberadaan koleksi yang akan dipinjam.

2. Membangun sebuah sistem penelusuran katalog dengan

mengimplementasikan algoritma Boyer-Moore agar dapat mengurangi


(5)

5

1.5Manfaat Penelitian

1. Tersedianya sistem penelusuran katalog yang memudahkan pengunjung

untuk mencari data katalog buku tanpa harus datang ke perpustakaan.

2. Meringankan tugas pustakawan untuk mencari katalog buku karena

pengunjung dapat mencari data katalog melalui sistem penelusuran

katalog.

1.6Metode Pengumpulan Data

Metode pengumpulan data yang akan digunakan oleh penulis antara lain :

1. Studi literatur

Merupakan cara pengumpulan data dengan mempelajari literatur, paket

modul, buku-buku, jurnal dan berbagai referensi yang dianggap

mendukung.

2. Wawancara

Metode ini dilakukan dengan mengajukan beberapa pertanyaan kepada

nara sumber. Dalam penelitian ini penulis akan melakukan wawancara

dengan petugas perpustakaan sekolah.

3. Observasi

Yaitu metode untuk mendapatkan data dengan melakukan pengamatan

langsung dan pencatatan secara sistematis terhadap gejala atau fenomena


(6)

6

1.7Metode Pengembangan Sistem

Metode pengembangan yang akan digunakan oleh penulis adalah metode

sekuensial linier (waterfall). Metode ini terdiri dari beberapa tahap yaitu

1. Analisis : melakukan analisis terhadap berbagai kebutuhan fungsional dan

non fungsional.

2. Desain : melakukan perancangan sistem, fitur dan antarmuka sistem.

3. Kode : menerjemahkan hasil desain ke dalam kode program.

4. Test : melakukan pengujian terhadap sistem yang telah dibangun.

1.8Definisi Operasional

1. Platform adalah suatu lingkungan hardware atau software dimana suatu

program dapat berjalan di dalamnya. Contoh platform adalah Microsoft

Windows, Linux, Solaris OS dan Mac OS. Suatu platform biasanya

merupakan kombinasi dari sistem operasi dan seperangkat hardware.

2. Perpustakaan adalah kumpulan informasi yang bersifat ilmu pengetahuan,

hiburan, rekreasi, dan ibadah yang merupakan kebutuhan hakiki manusia.

3. Running Time adalah waktu yang diperlukan suatu algoritma untuk

menyelesaikan instruksi atau operasi.

4. Bahan pustaka adalah segala sesuatu yang menyimpan dan membawa

informasi paket informasi yang diadakan dan disimpan di perpustakaan.

5. Katalogisasi (cataloging) adalah kegiatan atau proses pembuatan wakil

ringkas dari bahan pustaka atau dokumen (buku, majalah, CD-ROM,


(7)

7

pustaka dan secara umum penyiapan bahan pustaka untuk digunakan

pemakai. Kadang-kadang disebut juga dengan istilah pengindeksan

(indexing).

6. Katalog (catalog) adalah presentasi ciri-ciri dari sebuah bahan pustaka

atau dokumen (misalnya: judul, pengarang, deskripsi fisik, subyek, dll.)

koleksi perpustakaan yang merupakan wakil ringkas bahan pustaka

tersebut yang disusun secara sistematis.

7. Klasifikasi (classification) adalah penyusunan sesuatu dalam susunan yang

logis sesuai dengan tingkat kemiripan atau kesamaannya.

8. Sirkulasi adalah jenis layanan di perpustakaan yang melayani peminjaman,

pengembalian, perpanjangan koleksi, pendaftaran anggota baru, dll.

9. Black Box Testing adalah teknik pengujian perangkat lunak dimana

pengujian dilakukan pada bagaimana sistem menerima input dan

mengeluarkan output yang diinginkan, tidak memperhitungkan apa yang

terjadi di dalam sistem.

1.9Sistematika Penulisan

BAB I PENDAHULUAN

Bab ini akan memberikan penjelasan umum mengenai penelitian yang

akan penulis lakukan.

BAB II TINJAUAN PUSTAKA

Bab ini menguraikan berbagai teori dan konsep yang berhubungan dengan

permasalahan yang diangkat dalam penelitian ini.


(8)

8

Bab ini membahas tentang metodologi penelitian beserta langkah-langkah

yang dilakukan oleh penulis.

BAB IV PEMBAHASAN DAN HASIL PENELITIAN

Bab ini menguraikan tahapan pelaksanaan secara terperinci

dan hasil penelitian yang dilakukan.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dan saran yang didapat dari hasil penelitian dan


(9)

33

BAB III

METODOLOGI PENELITIAN

3.1Desain Penelitian

Desain penelitian untuk sistem penelusuran katalog perpustakaan sekolah

dapat dilihat pada gambar berikut ini :

Gambar 3.1 Desain Penelitian

1. Menentukan kebutuhan data yang digunakan

2. Mempersiapkan alat dan bahan penelitian

Metode Pengumpulan Data :

1. Studi Pustaka

2. Observasi

3. Wawancara

Data Penelitian

Pengembangan Perangkat Lunak

Metode Pengembangan Perangkat Lunak : 1. Analisis

2. Desain 3. Kode 4. Test


(10)

34

3.2Metode Pengumpulan Data

1. Studi Pustaka

Tahap ini merupakan tahap pengumpulan pengetahuan dari

sumber-sumber seperti buku, dokumen atau publikasi dari berbagai sumber-sumber dan

perguruan tinggi. Sumber pengetahuan tersebut dijadikan sebagai landasan

teori untuk mengembangkan sistem penelusuran katalog perpustakaan

sekolah.

Penulis melakukan studi pustaka terhadap berbagai konsep mengenai

sistem penelusuran katalog dan algoritma Boyer-Moore yang digunakan

dalam proses penelusurannya.

2. Observasi

Observasi adalah pengamatan langsung para pengguna suatu sistem dan

atau pengamatan langsung suatu sistem yang sedang berjalan. Pada tahap

ini penulis melakukan observasi pada perpustakaan sekolah yang belum

memiliki sistem penelusuran katalog yang terkomputerisasi, penulis

mengamati dan mencatat berbagai kegiatan di lingkungan perpustakaan

sekolah dan sistem informasi perpustakaan yang sedang berjalan.

3. Wawancara

Pada tahap ini penulis melakukan wawancara dengan pengurus

perpustakaan tersebut untuk memperoleh keterangan mengenai objek

penelitian dan berbagai kebutuhan user yang akan menggunakan sistem


(11)

35

keterangan mengenai format data para pengguna, format data koleksi dan

berbagai kegiatan dalam pelayanan sirkulasi perpustakaan.

3.3Metode Pengembangan Perangkat Lunak

Pengembangan aplikasi sistem pelayanan perpustakaan ini akan

menggunakan metode sekuensial linier (waterfall). Metode waterfall

merupakan metode pengembangan perangkat lunak yang sistematik dan

sekuensial yang mulai pada tingkat dan kemajuan sistem sampai pada

analisis, desain, kode, test, dan pemeliharaan. Berikut ini adalah tahapan dari

model waterfall (Roger S. Pressman, 2002 : 37).

Gambar 3.2 Model Waterfall

1. Analisis

Proses menganalisis dan pengumpulan kebutuhan sistem yang sesuai

dengan domain informasi tingkah laku, unjuk kerja, dan antar muka

(interface) yang diperlukan. System / Information

Engineering


(12)

36

2. Desain

Dalam tahap ini penulis akan merancang desain dan model aplikasi yang

akan dikembangkan berdasarkan hasil analisa pada tahap sebelumnya.

3. Kode

Pengkodean(coding) merupakan proses menerjemahkan desain ke

dalam suatu bahasa yang bisa dimengerti oleh komputer.

4. Test

Proses pengujian berfokus pada logika internal software, memastikan

bahwa semua pernyataan sudah diuji, dan pada eksternal fungsional, yaitu

mengarahkan pengujian untuk menemukan kesalahan-kesalahan dan

memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang

sesuai dengan hasil yang dibutuhkan. Pada penelitian ini penulis

menggunakan teknik black box untuk menguji fitur-fitur sistem yang telah

dibangun.

3.4Alat Penelitian

1. Komputer dengan spesifikasi

a. Processor Core 2 Duo

b. Hard disk 320 GB

c. RAM 4 GB


(13)

37

2. Software yang digunakan :

a. XAMPP

b. Notepad ++

c. Mozilla Firefox

3.5Bahan Penelitian

Bahan penelitian yang menjadi objek penelitian adalah berbagai entitas

dari sistem penelusuran katalog perpustakaan sekolah baik administrator,

penerbit, penulis, laporan dan buku. Bahan penelitian tersebut yaitu :

1. Format data katalog perpustakaan sekolah

2. Data master perpustakaan sekolah


(14)

38

BAB IV

HASIL PENELITIAN DAN PEMBAHASAN

4.1 Hasil Penelitian

Pada perpustakaan sekolah, katalog perpustakaan masih berupa katalog fisik dari kertas karton. Katalog diurutkan berdasarkan klasifikasi katalog perpustakaan. Berikut ini adalah format kartu katalog perpustakaan.

499.221 YWD

C

Wulandari, Yayan

Cerdas Berbahasa Indonesia Sesuai EYD untuk SD,SMP,SMA :

Yudhistira, 2008.

ISBN : 9786028661348

1. Bahasa Indonesia

Gambar 4.1 Format Kartu Katalog Perpustakaan Sekolah

Berdasarkan hasil observasi dan wawancara yang telah dilakukan oleh penulis maka diperoleh beberapa data penelitian berupa format data katalog perpustakaan


(15)

39

sekolah yang meliputi no.isbn, judul buku, jenis buku, penulis, penerbit, jumlah buku, tahun terbit, kode buku, kode penulis, kode penerbit, kode rak dan kondisi.

Penelusuran katalog pada perpustakaan sekolah masih mengunakan cara manual sehingga pencarian katalog buku berjalan lambat. Alur kerja pencarian katalog perpustakaan sekolah tanpa sistem penelusuran katalog yang terkomputerisasi adalah sebagai berikut.

Gambar 4.2 Alur Kerja Penelusuran Katalog Manual

4.2 Pengembangan Perangkat Lunak

Pengembangan perangkat lunak system penelusuran katalog perpustakaan sekolah menggunakan metode sekuensial linier (waterfall). Beberapa tahap metode waterfall yang dilakukan oleh penulis adalah analisis, desain, coding dan test (pengujian).

olah data katalog manual

Memberitahukan data buku Menanyakan informasi buku

Pengunjung Kartu Katalog Pustakawan


(16)

40

4.2.1 Analisis

Pada tahap ini penulis melakukan analisis kebutuhan sistem agar dapat mengetahui arus proses dan data sistem yang akan dibangun. Model sistem penelusuran katalog perpustakaan sekolah dirancang menggunakan context diagram dan data flow diagram. Context diagram dan data flow diagram dapat dilihat pada Gambar 4.1 dan Gambar 4.2. Analisis sistem selengkapnya dapat dilihat pada Dokumen Teknis.

Gambar 4.3 Context Diagram Sistem Penelusuran Katalog

Dari diagram tersebut dapat dilihat bahwa admin dapat memasukkan data master dan login dengan id admin. Anggota hanya dapat memasukkan kata kunci katalog dan sistem akan memberikan hasil penelusuran berupa data katalog.


(17)

41

Gambar 4.4 Data Flow Diagram Level 1 Sistem Penelusuran Katalog Dari diagram diatas terlihat bahwa terdapat empat proses utama yang menyusun sistem penelusuran katalog yaitu proses autentifikasi, setup data, proses penelusuran, dan pembuatan laporan. Keterangan selengkapnya mengenai DFD level 1 dapat dilihat pada Dokumen Teknis.

4.2.2 Desain

Sistem penelusuran katalog perpustakaan sekolah merupakan sebuah sistem yang dibangun untuk membantu pengunjung perpustakaan sekolah untuk mencari dan melihat informasi mengenai buku yang ingin dipinjam. Selain itu sistem ini juga dapat membantu pustakawan dalam mengelola data buku perpustakaan. Berikut ini adalah desain sistem yang akan dibangun.


(18)

42

User(pengunjung) Admin (pustakawan)

Gambar 4.5 Desain Sistem Penelusuran Katalog

Pada tahap ini penulis melakukan perancangan antarmuka perangkat lunak sistem penelusuran perpustakaan sekolah. Beberapa fitur yang akan dirancang dalam perangkat lunak yaitu :

1. Penelusuran katalog berdasarkan kategori judul dan penulis . 2. Data Master (pengolahan data buku) : judul buku, jenis buku, isbn,

penulis, penerbit, tahun terbit, kondisi dan rak buku.

Perancangan antarmuka untuk user dan admin adalah sebagai berikut.

Gambar 4.6 Desain Antarmuka Admin

Pencarian Katalog

Pengelolaan Data Master


(19)

43

Gambar 4.7 Desain Antarmuka User 4.2.3 Coding

Dari hasil analisis dan desain yang telah dilakukan, penulis mengubahnya ke dalam bentuk code dengan cara mengimplementasikan hasil analisis dan desain tersebut ke dalam bahasa pemograman web dengan menggunakan algoritma Boyer-Moore. Berikut ini adalah pseudocode algoritma Boyer-Moore pada fase pra-pencarian dan fase pencarian :

1. Fase Preprocessing

procedure preBmBc(

input P : array[0..n-1] of char, input n : 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

procedure preSuffixes(

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


(20)

44

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

Deklarasi:

f, g, i: integer

Algoritma:

suff[n - 1] := n; g := n - 1;

for (i := n - 2 downto 0) {

if (i > g and (suff[i + n - 1 - f] < i - g)) suff[i] := suff[i + n - 1 - f];

else

if (i < g) g := i; endif f := i;

while (g >= 0 and P[g] = P[g + n - 1 - f]) --g;

endwhile

suff[i] = f - g; endif

endfor

procedure preBmGs(

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

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

Deklarasi: i, j: integer

suff: array [0..RuangAlpabet] of integer

preSuffixes(x, n, suff);

for (i := 0 to m-1) bmGs[i] := n endfor

j := 0

for (i := n - 1 downto 0) if (suff[i] = i + 1)

for (j:=j to n - 2 - i) if (bmGs[j] = n)

bmGs[j] := n - 1 - i endif

endfor endif endfor

for (i = 0 to n - 2)

bmGs[n - 1 - suff[i]] := n - 1 - i; endfor


(21)

45

Procedure compute_last_occurence_function(var p: string, occ: array of integer, m: integer)

Declaration c: char

i , j, a: integer; Begin

//initialize the occ array

For i 0 to ALPHABET_SIZE do occ[i] -1

For j 0 to m do Begin

C P[j] occ[a] j End_for End_of_Procedure

Procedure goodprecomp1(var p: string, s: string, f:array_of_integer, m: integer)

Declaration i, j : integer Begin

i ← m j ← m+1 f[i] j while i>0 do begin

while j<=m and p[i=1]?p[j-1] do begin

if s[j] = 0 then s[j] j-1 j f[j]

end_while i ← i-1 j ← j-1 f[i] ← j


(22)

46

end_while End_of_procedure

2. Fase Pencarian

procedure BoyerMooreSearch( input m, n : integer,

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

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

Deklarasi:

i, j, shift, bmBcShift, bmGsShift: integer BmBc : array[0..255] of interger

BmGs : array[0..n-1] of interger

Algoritma:

preBmBc(n, P, BmBc) preBmGs(n, P, BmGs) i:=0

while (i<= m-n) do j:=n-1

while (j >=0 n and T[i+j] = P[j]) do j:=j-1

endwhile

if(j < 0) then ketemu[i]:=true; endif

bmBcShift:= BmBc[chartoint(T[i+j])]-n+j+1 bmGsShift:= BmGs[j]

shift:= max(bmBcShift, bmGsShift) i:= i+shift

Algoritma Boyer-Moore kemudian diimplementasikan ke dalam sistem penelusuran katalog perpustakaan sekolah menggunakan bahasa pemrograman web yaitu php. Hasil implementasi algoritma Boyer-Moore tersebut berupa skrip php yang digunakan pada fitur Pencarian Katalog yaitu pencarian.php. Skrip pencarian.php tersebut adalah sebagai berikut.


(23)

47

<?php

include "include/koneksi.php";

$data_cari = $_REQUEST['data_cari'];

$sql = "SELECT * FROM buku”;

$minta= mysql_query($sql);

$pat = strlen(trim($data_cari)); $text = strlen(trim($pat));

$hasil= ($text/$pat) ; // kompleksitas waktu boyer moore mysql_query($sql, $connect)

or die ("SQL Error".mysql_error()); if (! empty($sql)) {

echo "<table class=table_utama width=99% border=0 cellspacing=1 >

<tr bgcolor=#0066FF> <td> Jenis Buku </td> <td> Judul Buku </td> <td> Penulis </td></tr>";

$load_time = microtime();

$load_time = explode(' ',$load_time);

$load_time = $load_time[1] + $load_time[0]; $page_end = $load_time;

$final_time = ($page_end-$page_start);

$page_load_time = number_format($final_time, 4, '.',".");

while($hs=mysql_fetch_array($minta)) {

echo "<tr>

<td>$hs[jenis_buku] </td>

<td><a href=?act=detail_cari&no_buku=$hs[no_buku]> $hs[judul] </a></td>

<td> $hs[penulis] </td></tr>"; }

echo "</table><br>";

echo "Running time penelusuran : <b>$hasil</b> millisecond."; echo "<p><a href=javascript:history.back(1)>Back

</a>"; }

}


(24)

48

Hasil implementasi dapat dilihat pada tabel Tabel 4.1 dibawah ini. Hasil implementasi lebih lengkap dapat dilihat pada Dokumen Teknis.

Tabel 4.1 Hasil Implementasi

No Nama File Keterangan

1 index.php Halaman awal sistem yang merupakan penghubung antarhalaman system

2 administrator.php Halaman login administrator

3 cek_admin.php File ini berfungsi sebagai autentifikasi username dan password administrator

4 session.php File ini berfungsi sebagai perekaman data admin agar dapat mengakses setiap halaman

5 menu_utama.php Halaman ini menyediakan daftar fitur yang dapat digunakan oleh administrator

6 olah_buku.php File ini membantu administrator untuk mengedit atau menghapus data buku perpustakaan

7 laporan.php Halaman ini berfungsi menampilkan data koleksi perpustakaan

8 form_cari.html File ini berfungsi menampilkan form pencarian katalog 9 pencarian.php File ini berfungsi menampilkan hasil pencarian katalog

secara singkat.

10 cari_detail.php File ini berfungsi menampilkan data buku secara detail

4.2.4 Test

Pada tahap ini penulis melakukan beberapa pengujian terhadap fitur-fitur perangkat lunak sistem penelusuran katalog perpustakaan sekolah yang telah dibangun. Selain itu untuk mengetahui kecepatan algoritma Boyer-Moore penulis akan menghitung running time waktu algoritma Boyer-Moore.


(25)

49

Lingkungan perangkat keras yang digunakan dalam proses pengujian adalah sebagai berikut :

1. Processor Intel Centrino 2.1 GHz 2. RAM 2 GB

3. Hard Disk 100 GB

Lingkungan perangkat lunak yang digunakan dalam proses pengujian adalah sebagai berikut :

1. Sistem Operasi Windows Vista SP 1 2. Browser Mozilla Firefox 3.6.10 3. XAMPP 1.7.3

Bentuk dari pengujian yang dilakukan adalah pengujian kebenaran fungsional unit perangkat lunak, pengujian yang dilakukan menggunakan teknik pengujian Black Box. Pengujian blackbox dilakukan untuk menemukan kesalahan yang terjadi seperti fungsi yang tidak benar/hilang, kesalahan interface, kesalahan struktur data, kesalahan kinerja, atau kesalahan inisialisasi dan terminasi (Pressman, 2002: 551). Pelaksanaan pengujian dapat dilihat pada Tabel 4.2 dibawah ini. Untuk hasil pengujian selengkapnya dapat dilihat pada Dokumen Teknis.


(26)

50

Tabel 4.2 Pelaksanaan Pengujian

No Bentuk

pengujian

Metode Data uji Tujuan

1 Pengujian login admin

Black box Id Admin dan password Admin

Melihat koneksi database dan keamanan sistem pada fitur admin login

2 Pengujian penelusuran katalog

Black box Data sembarang dapat mewakili data buku dan data penulis Melihat proses penelusuran dan hasil penelusuran

3 Pengujian pengelolaan data master

Black box Data sembarang dapat mewakili data buku, data penulis, data jenis dan data penerbit

Melihat proses input dan output

4.3 Pembahasan

Berikut ini adalah hasil perhitungan kompleksitas waktu dari tiap algoritma menggunakan test case berupa target text dan pattern dengan panjang yang bervariasi. Panjang string text (text size) yang digunakan adalah 100, sedangkan panjang pattern yang digunakan bervariasi antara 1 sampai 18 karakter. Pattern merupakan jumlah string yang dicari dan text adalah jumlah


(27)

51

string yang tersedia pada database sistem penelusuran katalog. Panjang pattern sesuai dengan panjang string dari kata kunci yang dimasukkan pada form pencarian katalog. Hasil pengujian running time algoritma dapat dilihat pada Tabel 4.1 dibawah ini. Satuan running time algoritma adalah millisecond.

Tabel 4.3 Hasil Pengujian Kecepatan Running Time Boyer-Moore Pattern

Size

Running Time Boyer-Moore (millisecond)

3 33.3333

4 25

5 20

9 11.1111

10 10

11 9.09091

12 8.33333

15 6.66667

18 5.55556

Berikut ini adalah keterangan dari perhitungan running time Boyer-Moore pada Tabel 4.1.

Contoh : m = 4, m adalah pattern size ; dan n = 100, n adalah text size. Maka Running time = (n/m) = (100/4) = 25 millisecond

Berdasarkan hasil pengujian yang diperoleh pada Tabel 4.1 penulis memperoleh kesimpulan dalam implementasi algoritma Boyer-Moore ke dalam sistem penelusuran katalog perpustakaan sekolah yaitu semakin besar jumlah pattern yang dicari maka semakin kecil running time algoritma Boyer-Moore. Pada jumlah pattern (m) 6 karakter, maka running time algoritma


(28)

52

Boyer-Moore yang diperoleh sebesar 16.66 millisecond. Sedangkan pada m sebesar 18 karakter, running time algoritma Boyer-Moore yang diperoleh sebesar 5,55 millisecond.

Berikut ini penjelasan mengenai proses pencarian katalog dengan algoritma Boyer-Moore berdasarkan masukkan kata kunci pada form pencarian katalog. Misalnya string yang akan dicari adalah “musik” dari judul “terampil bermain musik”. Maka proses pencarian string “musik” adalah sebagai berikut. Pattern : musik Text : Terampil Bermain Musik

1. Preprocessing tahap pertama

Pada preprocessing tahap pertama, pencocokan string pattern dimulai dengan mencocokan string pattern dengan deretan string text yang pertama “terampil”.

Tabel 4.4 Preprocessing Tahap Pertama

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

t e r a m p i l b e r m a i n m u s i k

m u s i k

Keterangan :

Pada tahap ini tidak ada satu pun karakter pattern yang cocok dengan karakter text sehingga pergeseran string pattern sebesar jumlah string pattern sebanyak 5 posisi, pencarian berikutnya dimulai dari karakter keenam dari text.


(29)

53

2. Preprocessing tahap kedua

Tabel 4.5 Preprocessing Tahap Kedua

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

t e r a m p i l b e r m a i n m u s i k

m u s i k

Keterangan :

Pada tahap ini akhir karakter pattern “k” tidak cocok dengan karakter “b” pada text. Karakter “i” tidak cocok dengan spasi. Tidak ada satu pun kakater yang cocok. Pergeseran string sebesar 5 posisi.

3. Preprocessing tahap ketiga

Tabel 4.6 Preprocessing Tahap Ketiga

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

t e r a m p i l b e r m a i n m u s i k

m u s i k

Keterangan :

Pada tahap ini tidak ada satu pun karakter pattern yang cocok dengan karakter text. Nilai pergeseran string sebesar satu karakter. Pencarian string dilanjutkan pada string ke-12 dari string text, dimulai pada karakter “r”.


(30)

54

4. Bad Character Rule

Tabel 4.7 Bad Character Rule

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

t e r a m p i l b e r m a i n m u s i k

m u s i k

Keterangan :

Pada tahap ini terdapat satu karakter yang memiliki kecocokan yaitu pada posisi string ke-15, karakter “i”. Nilai pergeseran adalah satu karakter.

5. Good Suffix Rule

Tabel 4.8 Good Suffix Rule

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

t e r a m p i l b e r m a i n m u s i k

m u s i k

Keterangan :

Pada tahap ini terdapat satu karakter yang memiliki kecocokan yaitu pada posisi string ke-13, karakter “m”. Nilai pergeseran adalah tiga karakter. Pencarian string dilanjutkan pada posisi string ke-16 pada karakter “n” string text.


(31)

55

6. Bad Character Shift Rule

Tabel 4.9 Bad Character Shift Rule

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

t e r a m p i l b e r m a i n m u s i k

m u s i k

Keterangan :

Pada tahap ini tidak ada satu pun karakter pattern yang cocok dengan karakter text. Nilai pergeseran string sebesar dua karakter. Pencarian dilanjutkan pada posisi string ke-18.

7. Tahap Good Suffix Shift Rule

Tabel 4.10 Good Suffix Shift Rule

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

t e r a m p i l b e r m a i n m u s i k

m u s i k

Keterangan :

Pada tahap ini semua karakter pattern cocok dengan karakter text. Pencarian string berhasil dilakukan.


(32)

58

DAFTAR PUSTAKA

Aulia, Rama. (2008). Analisis Algoritma Knuth Morris Pratt dan Algoritma

Boyer Moore Dalam Proses Pencarian String. [online]. Tersedia :

http://www.informatika.org/~rinaldi/Stmik/2007-2008/Makalah2008/MakalahIF2251-2008-101.pdf

Boyer R.S., Moore J.S., (1977). A fast string searching algorithm.

Communications of the ACM. 20:762-772.

Dwi AP, Nur Hadi, dkk .(2008). Analisis Algoritma Boyer-Moore untuk

Pemecahan Kasus String Matching. [online]. Tersedia :

http://www.teknokrat.ac.id/perangkat_ajar/New%20Folder/Algoritma%20

1%20(Teori)/Pertemuan_kedelapan/DAA_20052_113020170_113020175

_113020177_113020185_Analisa_Algoritma_Boyer-Moore_untuk_Pemecahan_Kasus_String_Matching.pdf

Edisman. (2009). Sejarah DDC. [online]. Tersedia :

http://sadisman-edisman.blogspot.com/2009/06/sejarah-ddc_9148.html

Fernando, Hary. (2009). Perbandingan dan Pengujian Beberapa Algoritma

Pencocokan String. [online]. Tersedia :


(33)

59

Indrarto. Setiawan, M. Andri dan Hidayat, Taufiq. (2008). Online Public Access

Catalogue. [online]. Tersedia :

http://journal.uii.ac.id/index.php/Snati/article/viewFile/672/597

Munir, Rinaldi. (2004). Algoritma Pencarian String. [online]. Tersedia :

http://kur2003.if.itb.ac.id/file/trans-Bahan%20Kuliah%20ke-15.doc

Pratama, Satya Fajar. (2008). Pencocokan DNA Pattern Dengan Algoritma

Boyer-Moore. [online]. Tersedia :

http://www.informatika.org/~rinaldi/Stmik/2007-2008/Makalah2008/MakalahIF2251-2008-053.pdf

Pressman, Roger S. (2001). Software Engineering : A Practitioner’s Approach.

Singapore : McGraw-Hill, Inc.

Rompah, Edward Geopholda. (2009). Algoritma Boyer-Moore. [online]. Tersedia

: http://edwardgr.wordpress.com/2009/01/06/algoritma-boyer-moore/

Shofia. (2009). Dewey Decimal Classification. [online]. Tersedia :

http://shofi4.files.wordpress.com/2008/11/ddc.pdf

Szpektor, Idan. (2008). Boyer Moore Algorithm. [online]. Tersedia :

http://www.math.tau.ac.il/~haimk/seminar04/boyer-moore-algorithm.ppt

Wahyudin, Asep. (2007). Rekayasa Perangkat Lunak. [online]. Tersedia :


(34)

60

Wikipedia. (2010). Algoritma Boyer Moore. [online]. Tersedia :

http://id.wikipedia.org/wiki/Algoritma_Boyer-Moore

Wikipedia. (20010). Algoritma Pencarian String. [online]. Tersedia :


(35)

LAMPIRAN

procedure preBmBc(

input P : array[0..n-1] of char, input n : 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

procedure preSuffixes(

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

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

Deklarasi:

f, g, i: integer

Algoritma:

suff[n - 1] := n; g := n - 1;

for (i := n - 2 downto 0) {

if (i > g and (suff[i + n - 1 - f] < i - g)) suff[i] := suff[i + n - 1 - f];

else

if (i < g) g := i; endif f := i;

while (g >= 0 and P[g] = P[g + n - 1 - f]) --g;

endwhile

suff[i] = f - g; endif

endfor

procedure preBmGs(

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

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


(36)

i, j: integer

suff: array [0..RuangAlpabet] of integer

preSuffixes(x, n, suff);

for (i := 0 to m-1) bmGs[i] := n endfor

j := 0

for (i := n - 1 downto 0) if (suff[i] = i + 1)

for (j:=j to n - 2 - i) if (bmGs[j] = n)

bmGs[j] := n - 1 - i endif

endfor endif endfor

for (i = 0 to n - 2)

bmGs[n - 1 - suff[i]] := n - 1 - i; endfor

Procedure compute_last_occurence_function(var p: string, occ: array of integer, m: integer)

Declaration c: char

i , j, a: integer; Begin

//initialize the occ array

For i 0 to ALPHABET_SIZE do occ[i] -1

For j 0 to m do Begin

C P[j] occ[a] j End_for

End_of_Procedure

Procedure goodprecomp1(var p: string, s: string, f:array_of_integer, m: integer)

Declaration i, j : integer Begin

i ← m j m+1 f[i] j while i>0 do begin

while j<=m and p[i=1]?p[j-1] do begin

if s[j] = 0 then s[j] j-1 j f[j]


(37)

end_while i ← i-1 j j-1 f[i] ← j end_while

End_of_procedure

procedure BoyerMooreSearch( input m, n : integer,

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

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

Deklarasi:

i, j, shift, bmBcShift, bmGsShift: integer BmBc : array[0..255] of interger

BmGs : array[0..n-1] of interger

Algoritma:

preBmBc(n, P, BmBc) preBmGs(n, P, BmGs) i:=0

while (i<= m-n) do j:=n-1

while (j >=0 n and T[i+j] = P[j]) do j:=j-1

endwhile

if(j < 0) then ketemu[i]:=true; endif

bmBcShift:= BmBc[chartoint(T[i+j])]-n+j+1 bmGsShift:= BmGs[j]

shift:= max(bmBcShift, bmGsShift) i:= i+shift


(1)

58

DAFTAR PUSTAKA

Aulia, Rama. (2008). Analisis Algoritma Knuth Morris Pratt dan Algoritma

Boyer Moore Dalam Proses Pencarian String. [online]. Tersedia :

http://www.informatika.org/~rinaldi/Stmik/2007-2008/Makalah2008/MakalahIF2251-2008-101.pdf

Boyer R.S., Moore J.S., (1977). A fast string searching algorithm.

Communications of the ACM. 20:762-772.

Dwi AP, Nur Hadi, dkk .(2008). Analisis Algoritma Boyer-Moore untuk

Pemecahan Kasus String Matching. [online]. Tersedia :

http://www.teknokrat.ac.id/perangkat_ajar/New%20Folder/Algoritma%20

1%20(Teori)/Pertemuan_kedelapan/DAA_20052_113020170_113020175

_113020177_113020185_Analisa_Algoritma_Boyer-Moore_untuk_Pemecahan_Kasus_String_Matching.pdf

Edisman. (2009). Sejarah DDC. [online]. Tersedia :

http://sadisman-edisman.blogspot.com/2009/06/sejarah-ddc_9148.html

Fernando, Hary. (2009). Perbandingan dan Pengujian Beberapa Algoritma

Pencocokan String. [online]. Tersedia :

http://www.informatika.org/~rinaldi/Stmik/2009-2010/Makalah2009/MakalahIF3051-2009-006.pdf


(2)

59

Indrarto. Setiawan, M. Andri dan Hidayat, Taufiq. (2008). Online Public Access

Catalogue. [online]. Tersedia :

http://journal.uii.ac.id/index.php/Snati/article/viewFile/672/597

Munir, Rinaldi. (2004). Algoritma Pencarian String. [online]. Tersedia :

http://kur2003.if.itb.ac.id/file/trans-Bahan%20Kuliah%20ke-15.doc

Pratama, Satya Fajar. (2008). Pencocokan DNA Pattern Dengan Algoritma

Boyer-Moore. [online]. Tersedia :

http://www.informatika.org/~rinaldi/Stmik/2007-2008/Makalah2008/MakalahIF2251-2008-053.pdf

Pressman, Roger S. (2001). Software Engineering : A Practitioner’s Approach.

Singapore : McGraw-Hill, Inc.

Rompah, Edward Geopholda. (2009). Algoritma Boyer-Moore. [online]. Tersedia

: http://edwardgr.wordpress.com/2009/01/06/algoritma-boyer-moore/

Shofia. (2009). Dewey Decimal Classification. [online]. Tersedia :

http://shofi4.files.wordpress.com/2008/11/ddc.pdf

Szpektor, Idan. (2008). Boyer Moore Algorithm. [online]. Tersedia :

http://www.math.tau.ac.il/~haimk/seminar04/boyer-moore-algorithm.ppt

Wahyudin, Asep. (2007). Rekayasa Perangkat Lunak. [online]. Tersedia :

http://fpmipa.upi.edu/kuliah/rekayasa_perangkat_lunak/Model Proses.pdf


(3)

60

Wikipedia. (2010). Algoritma Boyer Moore. [online]. Tersedia :

http://id.wikipedia.org/wiki/Algoritma_Boyer-Moore

Wikipedia. (20010). Algoritma Pencarian String. [online]. Tersedia :

http://id.wikipedia.org/wiki/Algoritma_pencarian_string


(4)

LAMPIRAN

procedure preBmBc(

input P : array[0..n-1] of char, input n : 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

procedure preSuffixes(

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

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

Deklarasi:

f, g, i: integer Algoritma:

suff[n - 1] := n; g := n - 1;

for (i := n - 2 downto 0) {

if (i > g and (suff[i + n - 1 - f] < i - g)) suff[i] := suff[i + n - 1 - f];

else

if (i < g) g := i; endif f := i;

while (g >= 0 and P[g] = P[g + n - 1 - f]) --g;

endwhile

suff[i] = f - g; endif

endfor

procedure preBmGs(

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

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


(5)

i, j: integer

suff: array [0..RuangAlpabet] of integer preSuffixes(x, n, suff);

for (i := 0 to m-1) bmGs[i] := n endfor

j := 0

for (i := n - 1 downto 0) if (suff[i] = i + 1)

for (j:=j to n - 2 - i) if (bmGs[j] = n)

bmGs[j] := n - 1 - i endif

endfor endif endfor

for (i = 0 to n - 2)

bmGs[n - 1 - suff[i]] := n - 1 - i; endfor

Procedure compute_last_occurence_function(var p: string, occ: array of integer, m: integer)

Declaration c: char

i , j, a: integer; Begin

//initialize the occ array

For i

0 to ALPHABET_SIZE do occ[i]

-1

For j

0 to m do Begin

C

P[j] occ[a]

j End_for

End_of_Procedure

Procedure goodprecomp1(var p: string, s: string, f:array_of_integer, m: integer)

Declaration i, j : integer Begin

i ← m j m+1 f[i] j while i>0 do begin

while j<=m and p[i=1]?p[j-1] do begin

if s[j] = 0 then s[j] j-1 j f[j]


(6)

end_while i ← i-1 j j-1 f[i] ← j end_while

End_of_procedure

procedure BoyerMooreSearch( input m, n : integer,

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

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

Deklarasi:

i, j, shift, bmBcShift, bmGsShift: integer BmBc : array[0..255] of interger

BmGs : array[0..n-1] of interger Algoritma:

preBmBc(n, P, BmBc) preBmGs(n, P, BmGs) i:=0

while (i<= m-n) do j:=n-1

while (j >=0 n and T[i+j] = P[j]) do j:=j-1

endwhile

if(j < 0) then ketemu[i]:=true; endif

bmBcShift:= BmBc[chartoint(T[i+j])]-n+j+1 bmGsShift:= BmGs[j]

shift:= max(bmBcShift, bmGsShift) i:= i+shift