Anda di halaman 1dari 142

RANCANG BANGUN APLIKASI PERBANDINGAN

ALGORITMA KNUTH-MORRIS-PRATT DAN


BOYER MOORE PADA PENCARIAN
KATALOG BUKU
(Studi Kasus: Taman Baca Masyarakat Pesantrend Buku Cikarang)

SKRIPSI

Diajukan untuk memenuhi salah satu syarat


memperoleh Gelar Sarjana Komputer

Disusun oleh :
Zaky Ali Husaeni
311610044

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PELITA BANGSA
BEKASI
2020
LEMBAR PERSETUJUAN SKRIPSI

RANCANG BANGUN APLIKASI PERBANDINGAN


ALGORITMA KNUTH-MORRIS-PRATT DAN BOYER
MOORE PADA PENCARIAN KATALOG BUKU
(Studi Kasus: Taman Baca Masyarakat Pesantrend Buku Cikarang)

Disusun oleh:
Zaky Ali Husaeni
311610044

Telah diperiksa dan disahkan


pada tanggal : 13 Desember 2020

Dosen Pembimbing I Dosen Pembimbing II

Ahmad Turmudi Zy, S.Kom., M.Kom. Nurhadi Surojudin, S.Kom., M.Kom.


NIDN. 0408087907 NIDN. 0402118105

Mengetahui,
Ketua Program Studi Teknik Informatika

Aswan Supriyadi Sunge, SE., M.Kom.


NIDN. 0426018003

i
LEMBAR PENGESAHAN

RANCANG BANGUN APLIKASI PERBANDINGAN


ALGORITMA KNUTH-MORRIS-PRATT DAN BOYER
MOORE PADA PENCARIAN KATALOG BUKU
(Studi Kasus: Taman Baca Masyarakat Pesantrend Buku Cikarang)

Disusun oleh:
Zaky Ali Husaeni
311610044

Telah dipertahankan didepan Dewan Penguji


pada tanggal : 13 Desember 2020

Dosen Penguji I Dosen Penguji II

Arif Siswandi, S.Kom., M.M. Aswan Supriyadi Sunge, SE., M.Kom.


NIDN. 0414077406 NIDN. 0426018003

Dosen Pembimbing I Dosen Pembimbing II

Ahmad Turmudi Zy, S.Kom., M.Kom. Nurhadi Surojudin, S.Kom., M.Kom.


NIDN. 0408087907 NIDN. 0402118105

Mengetahui,
Ketua Program Studi Teknik Informatika

Aswan Supriyadi Sunge, SE., M.Kom.


NIDN. 0426018003

Dekan Fakultas Teknik

Putri Anggun Sari, S.Pt., M.Si.


NIDN. 0424088403
ii
PERNYATAAN KEASLIAN SKRIPSI

Sebagai mahasiswa Universitas Pelita Bangsa, yang bertanda tangan dibawah ini,
saya :
Nama : Zaky Ali Husaeni
NIM : 311610044

Menyatakan bahwa karya ilmiah yang berjudul :

“Rancang Bangun Aplikasi Perbandingan Algoritma Knuth-Morris-Pratt dan


Boyer Moore Pada Pencarian Katalog Buku (Studi Kasus: Taman Baca
Masyarakat Pesantrend Buku Cikarang)”

Merupakan karya asli saya (kecuali cuplikan dan ringkasan yang masing-masing
telah saya jelaskan sumbernya dan perangkat seperti webcam dll). Apabila
dikemudian hari, karya saya disinyalir bukan merupakan karya asli saya, yang
disertai dengan bukti-bukti yang cukup, maka saya bersedia untuk dibatalkan
gelar saya beserta hak dan kewajiban yang melekat pada gelar tersebut.
Demikian surat pernyataan ini saya buat dengan sebenarnya.d

Dibuat di : Bekasi
Pada Tanggal : 13 Desember 2020
Yang Menyatakan,

Zaky Ali Husaeni

iii
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK
KEPENTINGAN AKADEMIS

Sebagai mahasiswa Universitas Pelita Bangsa, yang bertanda tangan dibawah ini,
saya :
Nama : Zaky Ali Husaeni
NIM : 311610044

Demi mengembangkan Ilmu Pengetahuan, menyetujui untuk memberikan kepada


Universitas Pelita Bangsa Hak Bebas Royalti Non-Eksklusif (Non Exclusive Free
Right) atas karya ilmiah yang berjudul :

“Rancang Bangun Aplikasi Perbandingan Algoritma Knuth-Morris-Pratt dan


Boyer Moore Pada Pencarian Katalog Buku (Studi Kasus: Taman Baca
Masyarakat Pesantrend Buku Cikarang)”

Beserta perangkat yang diperlukan (bila ada). Dengan Hak Bebas Royalti
Non-Eksklusif ini Universitas Pelita Bangsa berhak untuk menyimpan,
memperbanyak, menggunakan, mengelolanya dalam bentuk pangkalan data
(database), mendistribusikan dan menampilkan/mempublikasikannya diinternet
atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya
selama tetap mencantumkan nama saya sebagai penulis/pencipta.

Saya bersedia untuk menanggung secara pribadi, tanpa melibatkan pihak


Universitas Pelita Bangsa, segala bentuk tuntutan hukum yang timbul atau
pelanggaran Hak Cipta dalam karya ilmiah saya ini.
Demikian surat pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Bekasi
Pada Tanggal : 13 Desember 2020
Yang Menyatakan,

Zaky Ali Husaeni

iv
UCAPAN TERIMA KASIH

Dengan memanjatkan puji syukur kehadirat Allah SWT, Tuhan Yang Maha
Pengasih dan Maha Penyayang yang telah melimpahkan segala rahmat, hidayat
dan inayah-Nya kepada penulis, sehingga Skripsi dengan judul "Rancang Bangun
Aplikasi Perbandingan Algoritma Knuth-Morris-Pratt Dan Boyer Moore Pada
Pencarian Katalog Buku (Studi Kasus: Taman Baca Masyarakat Pesantrend Buku
Cikarang)" dapat diselesaikan sesuai dengan rencana karena dukungan dari
berbagai pihak yang tidak ternilai besarnya. Oleh karena itu penulis
menyampaikan terima kasih kepada:
1. Bapak Hamzah Muhammad Mardiputra, S.K.M., M.M. sebagai Rektor
Universitas Pelita Bangsa.
2. Ibu Putri Anggun Sari, S.Pt., M.Si. sebagai Dekan Teknik Universitas
Pelita Bangsa.
3. Bapak Aswan Supriyadi Sunge, SE., M.Kom. sebagai Ketua Program
Studi Teknik Informatika - S1.
4. Bapak Ahmad Turmudi Zy, S.Kom., M.Kom. sebagai dosen pembimbing
I.
5. Bapak Nurhadi Surojudin, S.Kom., M.Kom. sebagai dosen pembimbing II.
6. Orang Tua saya yang selalu memberikan dukungan dan doa.
7. Teman-teman di kelas TI.16.D.5 yang selalu memberikan motivasi dan
semangat.
8. Seluruh direksi Universitas Pelita Bangsa dan Taman Baca Masyarakat
Pesantrend Buku Cikarang yang tidak dapat saya sebutkan namanya satu
persatu.

Semoga Allah SWT memberikan balasan yang lebih besar kepada beliau, dan
pada akhirnya penulis berharap agar laporan Kerja Praktik ini dapat bermanfaat
dan berguna sebagaimana fungsinya.

v
Bekasi, 13 Desember 2020

Zaky Ali Husaeni

vi
ABSTRAK

Aktivitas yang dilakukan saat ini dalam mencari data katalog buku kurang
efektif dikarenakan cara yang digunakan masih konvensional. Algoritma string
matching merupakan solusi untuk membuat mesin pencari aplikasi katalog buku
agar lebih akurat dan cepat saat melakukan pencarian data. Terdapat beberapa
algoritma string matching diantaranya algoritma Knuth-Morris-Pratt dan Boyer
Moore yang paling efektif dalam melakukan pencocokan string pada kasus
katalog buku, untuk itu perlu adanya analisa perbandingan algoritma
Knuth-Morris-Pratt dan Boyer Moore dengan menggunakan Metode
Perbandingan Eksponensial untuk menentukan algoritma yang cocok. Dari hasil
perbandingan yang dilakukan maka dapat disimpulkan bahwa algoritma Boyer
Moore lebih cepat dan akurat.

Kata Kunci : Aplikasi, Knuth-Morris-Pratt, Boyer Moore

vii
ABSTRACT

The activities currently carried out in searching for book catalog data are
less effective because the method used is still conventional. The string matching
algorithm is a solution for making book catalog application search engines to be
more accurate and faster when performing data searches. There are several
string matching algorithms including the Knuth-Morris-Pratt and Boyer Moore
algorithms which are the most effective in performing string matching in the case
of book catalogs, for that we need a comparison analysis of the
Knuth-Morris-Pratt and Boyer Moore algorithms using the Exponential
Comparison Method to determine the algorithm. which are suitable. From the
results of the comparisons made, it can be concluded that the Boyer Moore
algorithm is faster and more accurate.

Keywords: Application, Knuth-Morris-Pratt, Boyer Moore

viii
DAFTAR ISI

LEMBAR PERSETUJUAN SKRIPSI......................................................................i

LEMBAR PENGESAHAN..................................................................................... ii

PERNYATAAN KEASLIAN SKRIPSI................................................................ iii

PERNYATAAN PERSETUJUAN PUBLIKASI................................................... iv

UCAPAN TERIMA KASIH....................................................................................v

ABSTRAK.............................................................................................................vii

ABSTRACT............................................................................................................viii

DAFTAR ISI...........................................................................................................ix

DAFTAR TABEL.................................................................................................xiii

DAFTAR GAMBAR............................................................................................ xiv

DAFTAR LAMPIRAN........................................................................................xvii

BAB I PENDAHULUAN........................................................................................ 1

1.1 Latar Belakang..........................................................................................1

1.2 Identifikasi Masalah..................................................................................2

1.3 Batasan Masalah....................................................................................... 3

1.4 Rumusan Masalah.....................................................................................3

1.5 Tujuan....................................................................................................... 3

1.6 Manfaat..................................................................................................... 3

BAB II LANDASAN TEORI.................................................................................. 5

2.1 Tinjauan Pustaka.......................................................................................5

2.2 Landasan Teori......................................................................................... 7

2.2.1 Definisi Rancang.......................................................................... 7

ix
2.2.2 Definisi Bangun............................................................................7

2.2.3 Aplikasi........................................................................................ 7

2.2.4 Definisi Rancang Bangun Aplikasi.............................................. 8

2.2.5 Algoritma Knuth Morris Pratt...................................................... 8

2.2.6 Algoritma Boyer Moore............................................................. 14

2.2.7 Taman Baca Masyarakat............................................................ 20

2.2.8 Katalog....................................................................................... 21

2.2.9 Website.......................................................................................21

2.2.9.1 Hyper Text Preprocessor (PHP)....................................22

2.2.9.2 MYSQL......................................................................... 23

2.2.9.3 HTML............................................................................ 23

2.2.9.4 Javascript....................................................................... 23

2.2.9.5 CSS................................................................................ 24

2.2.10 Flowchart..................................................................................24

2.2.11 Unified Modeling Language (UML)........................................26

2.2.11.1 Use Case Diagram....................................................... 26

2.2.11.2 Activity Diagram......................................................... 28

2.2.11.3 Sequence Diagram....................................................... 29

2.2.11.4 Class Diagram..............................................................30

2.2.12 Metode Perbandingan Eksponsial............................................ 31

2.3 Kerangka Pemikiran............................................................................... 32

BAB III METODE PENILITIAN..........................................................................34

3.1 Tentang Organisasi................................................................................. 34

x
3.2 Visi dan Misi Organisasi........................................................................ 34

3.2.1 Visi............................................................................................. 34

3.2.2 Misi.............................................................................................35

3.3 Sistem Yang Sedang Berjalan................................................................ 35

3.4 Sistem Yang Diusulkan.......................................................................... 36

3.5 Perancangan Sistem................................................................................ 38

3.5.1 Use Case Diagram......................................................................38

3.5.2 Activity Diagram........................................................................41

3.5.3 Sequence Diagram......................................................................46

3.5.4 Class Diagram............................................................................ 47

3.5.5 Perancangan Database................................................................48

3.5.6 Perancangan User Interface........................................................49

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM....................................58

4.1 Analisa Kebutuhan Sistem......................................................................58

4.1.1 Spesifikasi Hardware..................................................................58

4.1.2 Spesifikasi Software...................................................................58

4.2 Tahap Implementasi................................................................................59

4.2.1 Tahap Implementasi Instalasi Xampp........................................ 59

4.2.2 Implementasi Database.............................................................. 63

4.2.3 Implementasi Interface...............................................................64

4.3 Metode Perbandingan Eksponsial...........................................................70

4.4 Pengujian Sistem.................................................................................... 78

4.4.1 Pengujian Sistem Black-Box...................................................... 79

xi
BAB V KESIMPULAN DAN SARAN.................................................................81

5.1 Kesimpulan............................................................................................. 81

5.2 Saran....................................................................................................... 82

DAFTAR PUSTAKA............................................................................................ 83

xii
DAFTAR TABEL

Tabel 2 .1 Prosedur BmGs..................................................................................... 19

Tabel 2 .2 Simbol-Simbol Flowchart.....................................................................24

Tabel 2 .3 Simbol-Simbol Use Case...................................................................... 26

Tabel 2 .4 Simbol-Simbol Activity Diagram......................................................... 28

Tabel 2 .5 Simbol-Simbol Sequence Diagram.......................................................29

Tabel 2 .6 Simbol-Simbol Class Diagram.............................................................30

Tabel 3 .1 Skenario Use Case View Cara Penggunaan.......................................... 39

Tabel 3 .2 Skenario Use Case Pilih Algoritma...................................................... 39

Tabel 3 .3 Skenario Use Case Cari Katalog Buku................................................. 40

Tabel 3 .4 Skenario Use Case Login......................................................................40

Tabel 3 .5 Skenario Use Case Cari Mengelola Katalog Buku...............................41

Tabel 3 .6 Katalog Buku........................................................................................ 48

Tabel 3 .7 User....................................................................................................... 49

Tabel 4 .1 Penentuan Kriteria.................................................................................70

Tabel 4 .2 Penentuan Bobot Kriteria......................................................................71

Tabel 4 .3 Pemberian Nilai Kriteria....................................................................... 72

Tabel 4 .4 Menghitung Nilai Kriteria.....................................................................73

Tabel 4 .5 Menentukan Hasil Keputusan............................................................... 76

Tabel 4 .6 Pengujian Sistem Black-Box................................................................. 79

xiii
DAFTAR GAMBAR

Gambar 2 .1 Iterasi Algoritma KMP......................................................................11

Gambar 2 .2 Iterasi Ke 2 Algoritma KMP............................................................. 11

Gambar 2 .3 Iterasi ke 3 Algoritma KMP.............................................................. 12

Gambar 2 .4 Iterasi ke 4 Algoritma KMP.............................................................. 12

Gambar 2 .5 Iterasi ke 5 Algoritma KMP.............................................................. 12

Gambar 2 .6 Pseudocode Algoritma KMP Pada Fase Pra-pencarian.................... 13

Gambar 2 .7 Pseudocode Algoritma KMP Pada Fase Pencarian...........................14

Gambar 2 .8 Good-suffix shift, u terjadi lagi didahului karakter c berbeda dari a. 15

Gambar 2 .9 Good-suffix shift, hanya suffix dari u terjadi lagi di pattern x........... 16

Gambar 2 .10 Bad-character shift, b terdapat di pattern x.................................... 16

Gambar 2 .11 Bad-character shift, b tidak ada di pattern x...................................16

Gambar 2 .12 Algoritma Boyer Moore Prosedur preBmBc.................................. 20

Gambar 2 .13 Rumus Metode Eksponsial..............................................................32

Gambar 2 .14 Kerangka Pemikiran........................................................................33

Gambar 3 .1 Struktur Organisasi TBM Pesantrend Buku Cikarang...................... 34

Gambar 3 .2 Flowchart Aktivitas Pencarian Katalog Buku.................................. 36

Gambar 3 .3 Flowmap Proses Perbandingan Pencarian Katalog........................... 37

Gambar 3 .4 Use Case Diagram Algoritma Katalog Buku................................... 38

Gambar 3 .5 Activity Diagram Login.....................................................................41

Gambar 3 .6 Activity Diagram Mengelola Katalog Buku......................................42

Gambar 3 .7 Activity Diagram View Cara Penggunaan......................................... 43

Gambar 3 .8 Activity Diagram Cari Katalog Menggunakan Algoritma KMP.......44

xiv
Gambar 3 .9 Activity Diagram Cari Katalog Menggunakan Algoritma BM......... 45

Gambar 3 .10 Sequence Diagram Admin Aplikasi Katalog Buku........................ 46

Gambar 3 .11 Sequence Diagram Pengunjung Aplikasi Katalog Buku................ 47

Gambar 3 .12 Class Diagram Aplikasi Katalog Buku...........................................48

Gambar 3 .13 Perancangan User Interface Login Aplikasi................................... 50

Gambar 3 .14 Perancangan User Interface Dashboard Admin............................. 51

Gambar 3 .15 Perancangan User Interface Tambah Katalog Buku.......................52

Gambar 3 .16 Perancangan User Interface Ubah Katalog Buku........................... 53

Gambar 3 .17 Perancangan User Interface Hapus Katalog Buku..........................54

Gambar 3 .18 Perancangan User Interface Halaman Utama Aplikasi...................55

Gambar 3 .19 Perancangan User Interface Halaman Cara Penggunaan Aplikasi. 56

Gambar 3 .20 Perancangan User Interface Halaman Pencarian Katalog Buku.....57

Gambar 4 .1 Halaman Awal Instalasi Xampp........................................................ 60

Gambar 4 .2 Halaman Pilihan Komponen............................................................. 61

Gambar 4 .3 Halaman Pilihan Lokasi Instalasi......................................................62

Gambar 4 .4 Halaman Akhir Instalasi....................................................................63

Gambar 4 .5 Tabel Katalog.................................................................................... 64

Gambar 4 .6 Tabel User......................................................................................... 64

Gambar 4 .7 Interface Menu Utama Aplikasi Perbandingan Algoritma............... 65

Gambar 4 .8 Interface Halaman Hasil Pencarian...................................................65

Gambar 4 .9 Interface Halaman Cara Penggunaan Aplikasi Katalog Buku.......... 66

Gambar 4 .10 Interface Halaman Login Admin Aplikasi Katalog Buku.............. 66

Gambar 4 .11 Interface Halaman Dashboard Admin Aplikasi Katalog Buku...... 67

xv
Gambar 4 .12 Interface Halaman Tambah Data Katalog Buku............................. 68

Gambar 4 .13 Interface Halaman Ubah Data Katalog Buku................................. 69

Gambar 4 .14 Interface Halaman Hapus Data Katalog Buku................................ 69

Gambar 4 .15 Presentase Waktu Pencarian............................................................77

Gambar 4 .16 Presentase Keakuratan Pencarian....................................................78

xvi
DAFTAR LAMPIRAN

Lampiran 1 Kartu Pengendali Bimbingan Skripsi I............................................85

Lampiran 2 Kartu Pengendali Bimbingan Skripsi II...........................................86

Lampiran 3 Surat Keterangan Penelitian............................................................ 87

Lampiran 4 List Full Coding database.sql.......................................................... 88

Lampiran 5 List Full Coding koneksi.php.......................................................... 95

Lampiran 6 List Full Coding index.php..............................................................96

Lampiran 7 List Full Coding kmp.php..............................................................102

Lampiran 8 List Full Coding inbm.php.............................................................106

Lampiran 9 List Full Coding cara_penggunaan.php.........................................111

Lampiran 10 List Full Coding admin/index.php...............................................113

Lampiran 11 List Full Coding login.php...........................................................115

Lampiran 12 List Full Coding tambah_katalog.php......................................... 118

Lampiran 13 List Full Coding ubah_katalog.php............................................. 120

Lampiran 14 List Full Coding proses_hapus_katalog.php............................... 123

Lampiran 15 List Full Coding proses_logout.php............................................ 124

xvii
BAB I

PENDAHULUAN

1.1 Latar Belakang

Informasi adalah hal yang sangat penting dalam berbagai bidang, termasuk

dalam informasi mengenai buku. Suatu informasi harus mempunyai tiga syarat

yang sangat penting yaitu akurat, tepat dan dapat dipercaya. Dalam perkembangan

teknologi informasi yang sekarang ini sangat meningkat pesat, penguasaan

terhadap informasi tidak cukup hanya sekedar menguasai, tapi diperlukan

kecepatan.

Pada Taman Baca Masyarakat (TBM) Pesantrend Buku Cikarang saat ini

masih menggunakan buku tulis sebagai catatan dan alat pencarian katalog buku

yang berisi keberadaan bahan pustaka, dan informasi tentang adanya dokumen

pustaka. Banyaknya jumlah buku dan pengunjung mengakibatkan ketidak

efisienan pada penggunaannya yang dimana pengguna harus mencari kata per kata

secara manual, artinya pengguna harus mencari halaman per halaman untuk

mendapatkan suatu informasi buku yang dicari dan tentunya menghambat dalam

pelayanan bagi pengunjung yang akan membaca atau meminjamnya, dengan

rata-rata durasi pencarian 82,1 detik. Untuk itu perlu adanya aplikasi pencarian

katalog buku online berbasis website sebagai fasilitas petugas dan pengunjung

TBM Pesantrend Buku Cikarang, untuk mempermudah dalam mencari informasi

buku yang dibutuhkan.

Namun aplikasi pencarian katalog buku membutuhkan metode, yaitu

algoritma string matching yang diterapakan pada search engine agar hasil

1
2

pencarian dapat lebih cepat dan akurat. Berdasarkan penelitian sebelumnya

perbandingan antara algoritma Zhu-Takaoka dan Knuth-Morris-Pratt (KMP)

menghasilkan lebih cepat algoritma Zhu-Takaoka pada aplikasi kamus bahasa

komputer (Handrizal et al, 2017), pada algoritma KMP dan Boyer Moore yang

lebih cepat dalam waktu akses pencocokan string adalah algoritma Boyer Moore

pada kamus bahasa Nias (Fince et al) dan pada kamus bahasa Indonesia-Korea

Algoritma KMP lebih cepat dibandingkan Algoritma Boyer Moore untuk proses

pencarian kata dengan hasil rata-rata running time KMP adalah 132.1 ms dan

Algoritma Boyer Moore adalah 134.6 ms (Vici, 2016). Dari hasil perbandingan

sebelumnya penentuan kecepatan algoritma string matching tergantung pada

data-data yang diterapkan, untuk itu pada penelitian ini akan membandingkan

algoritma KMP dan Boyer Moore.

Dalam melakukan perbandingan tentunya dibutuhkan suatu metode untuk

mendapatkan hasil data-data yang akurat. Metode dalam penelitian ini

menggunakan Metode Perbandingan Eksponensial (MPE).

1.2 Identifikasi Masalah

Berdasarkan latar belakang diatas, maka identifikasi permasalahan pada

penelitian ini adalah :

1. Banyaknya jumlah buku dan pengunjung sehingga memerlukan waktu

yang cukup lama dalam pencarian data buku.

2. Jumlah buku yang terus bertambah setiap bulannya menyebabkan

pencarian buku akan semakin lama.


3

1.3 Batasan Masalah

Agar pembahasan lebih jelas lagi dan bisa terarah dengan maksud dan

tujuan penelitian ini, maka penulis membuat batasan masalah yaitu pencarian

katalog buku masih dilakukan secara manual belum terotomasi oleh sistem.

1.4 Rumusan Masalah

Berdasarkan pada indentifikasi diatas, maka rumusan masalah penelitian ini

yaitu bagaimana merancang dan membangun aplikasi berbasis website

perbandingan algoritma Knuth Morris Pratt dan Boyer Moore untuk pencarian

katalog buku dengan cepat dan akurat?

1.5 Tujuan

Tujuan dalam penelitian ini adalah mencari nilai perbandingan antara

algortima Knuth Morris Pratt (KMP) dan Boyer-Moore menggunakan Metode

Perbandingan Eksponensial (MPE).

1.6 Manfaat

Adapun manfaat dari penelitian tersebut adalah sebagai berikut :

1. Bagi penulis :

a. Dapat mengembangkan ilmu yang telah diperoleh penulis selama

perkuliahan.

b. Dapat berguna bagi pihak-pihak yang memerlukan baik sebagai

referensi, bahan pembanding, maupun sebagai bahan rujukan untuk

mengadakan penelitian lebih lanjut.

2. Bagi TBM :

a. Dapat mengetahui dan memperoleh gambaran pada proses sistem


4

katalog buku.

b. Dapat mempermudah pencarian data buku.

c. Dapat menerapkan sistem informasi yang telah digunakan untuk

proses pencocokan data pembaca dan buku bacaan.

3. Bagi Pembaca :

a. Sebagai bahan referensi dalam pembuatan karya ilmiah yang

bersangkutan.

b. Menambah pengetahuan dan wawasan bagi pembaca dalam

pembuatan karya ilmiah.


BAB II

LANDASAN TEORI

2.1 Tinjauan Pustaka

Untuk mengkaji penelitian ini, penulis mengambil beberapa referensi yang

berkaitan dengan Aplikasi Perbandingan Algoritma KMP dan Boyer Moore pada

Pencarian Katalog Buku sebagai berikut :

1. Perbandingan Algoritma Knuth Morris Pratt dan Boyer Moore dalam

Pencocokan String pada Aplikasi Kamus Bahas Nias adalah jurnal yang

disusun oleh Fince Tinus Waruwu dan Rila Mandala yang berasal dari

Magister Ilmu Komputer Universitas Putra Indonesia pada tahun 2016.

Tujuan pada penelitian adalah untuk membandingkan algoritma KMP

dan Boyer Moore dalam pencocokan string bahasa nias dan untuk

merancang aplikasi pencocokan string pada aplikasi kamus bahasa nias.

Kesimpulan pada penelitian ini adalah pada perbandingan algoritma

KMP dan Boyer Moore yang lebih cepat dalam waktu akses pencocokan

string adalah algoritma Boyer Moore.

2. Analisa Perbandingan Boyer Moore dan Knuth Morris Pratt dalam

Pencarian Judul Buku menerapkan Metode Perbandingan Eksponensial

(Studi Kasus : Perpustkaan STMIK Budi Darma) yang disusun oleh

Alwin Fau, Mesran dan Guidio Leonardo Ginting. Tujuan penelitian ini

adalah untuk mengetahui hasil perbandingan antara algoritma KMP dan

Boyer Moore dengan MPE untuk diterapakan pada proses pencarian

judul buku. Kesimpulan pada penelitian ini adalah Algoritma Boyer

5
6

Moore merupakan algoritma yang tercepat dalam pencarian judul buku.

3. Perbandingan Algoritma Knuth Morris Pratt dan Boyer Moore pada

Aplikasi Kamus Bahasa Indonesia-Korea Berbasis android yang disusun

oleh Vici Indah Yana yang berasal dari Fakultas Ilmu Komputer dan

Teknologi Informasi Universitas Sumatera Utara Medan pada tahun

2016. Tujuan penelitian ini adalah untuk mengetahui bagaimana

melakukan pencarian kata pada Kamus Bahasa Asing menggunakan

Algoritma pencocokan string dan untuk mengetahui algoritma mana

yang lebih baik dalam pencariannya. Kesimpulan pada penelitian ini

adalah Algoritma KMP lebih cepat dibandingkan dengan Boyer Moore

dengan hasil rata-rata running time KMP 132.1 ms dan Boyer Moore

134.6 ms.

4. Implementasi dan Analisis Algoritma Zhu-Takaoka dan Algoritma

Knuth Morris Pratt pada Aplikasi Kamus Istilah Kesehatan Berbasis

Android yang disusun oleh Desy Rahayu Aradani yang berasal dari

Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera

Utara Medan pada tahun 2017. Tujuan penelitian ini adalah untuk

mengetahui lama waktu proses kerja (running time) yang diperlukan

dalam proses pencarian kata menggunakan algoritma Zhu-Takoka dan

KMP pada kamus istilah kesehatan. Kesimpulan pada penelitian adalah

menunjukan algoritma Zhu-Takoaka lebih cepat dibandingkan algoritma

KMP dengan hasil rata-rata running time Zhu-Takoaka 29.536 ms dan

KMP 31.568 ms.


7

2.2 Landasan Teori

2.2.1 Definisi Rancang

Rancang atau perancangan merupakan sesuatu aktivitas yang mempunyai

tujuan membuat desain sistem baru yang dapat menyelesaikan masalah-masalah

yang dialami organisasi atau perusahaan yang diperoleh dari pemilihan alternatif

sistem yang terbaik. Al- Bahra Bin Ladjamudin (2005:39).

2.2.2 Definisi Bangun

Menurut Pressman (2009) definisi bangun adalah kegiatan menciptakan

sistem baru dan mengganti atau memperbaiki sistem yang sudah ada secara total.

Rancang bangun ialah penggambaran dan perencanaan serta pembuatan

sketsa atau pengaturan dari beberapa elemen yang terpisah kedalam suatu

kesatuan yang utuh dan dapat berfungsi.

2.2.3 Aplikasi

Aplikasi ialah sesuatu bagian dari perangkat lunak komputer yang

menggunakan keahlian komputer langsung untuk melaksanakan sesuatu tugas

yang di perlukan pengguna. Pengertian Aplikasi menurut Barry Pratama :

1. Aplikasi merupakan satu unit dari perangkat lunak yang dirancang untuk

melayani kebutuhan dari sebagian aktivitas.

2. Aplikasi merupakan sistem lengkap yang mengerjakan tugas khusus.

3. Aplikasi berbasis informasi terdiri atas sekumpulan menu, formulir,

laporan serta program yang penuhi kebutuhan suatu fungsional unit

bisnis/organisasi/lembaga.

Aplikasi pencarian katalog buku ini diklasifikasikan ke dalam Media


8

Development Software yang artinya pengembangan media cetak dari buku catatan

daftar isi katalog konvensional menjadi Aplikasi katalog berbasis website.

2.2.4 Definisi Rancang Bangun Aplikasi

. Rancang bangun aplikasi adalah kegiatan menerjemahkan dari hasil analisa

ke dalam bentuk paket perangkat sistem aplikasi dan komponen yang didasarkan

pada spesifikasi desain lalu menciptakan sistem tersebut atau memperbaiki sistem

yang sudah ada. Whitten dkk (2007).

2.2.5 Algoritma Knuth Morris Pratt

Algoritma Knuth-Morris-Pratt (KMP) adalah salah satu algoritma pencarian

string, dikembangkan secara terpisah oleh Donald E. Knuth pada tahun 1967 dan

James H. Morris bersama Vaughan R. Pratt pada tahun 1966, namun keduanya

mempublikasikannya secara bersamaan pada tahun 1977. Metode pencarian KMP

bekerja dengan cara melewatkan iterasi-iterasi yang tidak perlu karena dinilai

tidak akan menghasilkan kesesuaian antara pola/kata yang dicari dengan susunan

pola/kalimat utama. Misal sebuah pencarian berjumlah m di dalam sebuah kalimat

K[] yang mengandung kata k[]. Algoritma yang paling mudah adalah dengan

mencari kecocokan karakter pada nilai-nilai yang berurutan dari indeks m , posisi

dalam string yang dicari , yaitu K[m]. Jika indeks m mencapai akhir dari string

maka tidak ada karakter yang cocok, dalam hal pencarian dikatakan gagal. Pada

setiap posisi m, algoritma mengecek keseusaian dari karakter pertama dalam kata

yang dicari, yaitu K[m] = k[0]?. Jika kecocokan ditemukan, algoritma menguji

karakter lain dalam mencari kata dengan memeriksa nilai-nilai yang berurutan

dari posisi indeks kata, i. Algoritma mengambil karakter k[i] dalam mencari kata
9

dan memeriksa kesetaraan ekspresi K[m+i] = k[i]?. Jika semua karakter yang

berurutan sesuai dalam k pada posisi m maka kecocokan ditemukan pada posisi

dalam string pencarian.

Dengan metode seperti itu, performa tidak dijamin optimal. Jika string tidak

acak, kemudian memeriksa percobaan m dapat mengambil banyak perbandingan

karakter. Kasus terburuk adalah jika dua string cocok dalam semua kecuali huruf

terakhir. Bayangkan bahwa string K[] terdiri dari 1 milyar karakter yang

semuanya A, dan bahwa kata k[] adalah 999 A karakter dan diakhiri dengan huruf

B. Algoritma pencocokan string sederhana sekarang akan memeriksa 1000

karakter pada setiap posisi trial sebelum menolak hasil dan memajukan posisi trial

pengecekan. Kini contoh sederhana pencarian akan mengambil sekitar 1000

perbandingan karakter kali 1 miliar untuk posisi 1 triliun perbandingan karakter.

Jika panjang k [] adalah n, maka kinerja kasus terburuk adalah O (k ⋅ n).

Pada algoritma KMP, pergeseran untuk setiap pengecekan dapat dikurangi.

Perhitungan penggeseran pada algoritma ini adalah sebagai berikut, bila terjadi

ketidakcocokkan pada saat pattern sejajar dengan teks[i..i+n-1], kita bisa

menganggap ketidakcocokan pertama terjadi di antara teks[i+j] dan pattern[j],

dengan 0 < j < n. Berarti, teks[i..i+j-1] = pattern[0..j-1] dan a=teks[i+j] tidak sama

dengan b=pattern[j]. Ketika kita menggeser, sangat beralasan bila ada sebuah

awalan v dari pattern akan sama dengan sebagian akhiran u dari sebagian teks.

Sehingga kita bisa menggeser pattern agar awalan v tersebut sejajar dengan

akhiran dari u.

Dengan kata lain, pencocokkan string akan berjalan secara efisien bila kita
10

mempunyai tabel yang menentukan berapa panjang kita seharusnya menggeser

seandainya terdeteksi ketidakcocokkan di karakter ke-j dari pattern. Tabel itu

harus memuat next[j] yang merupakan posisi karakter pattern[j] setelah digeser,

sehingga kita bisa menggeser pattern sebesar j-next[j] relatif terhadap teks.

Secara sistematis, langkah-langkah yang dilakukan algoritma

Knuth-Morris-Pratt pada saat mencocokkan string:

1. Algoritma Knuth-Morris-Pratt mulai mencocokkan pattern pada awal

teks.

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

karakter pattern dengan karakter di teks yang bersesuaian, sampai salah

satu kondisi berikut dipenuhi:

a. Karakter di pattern dan di teks yang dibandingkan tidak cocok

(mismatch).

b. Semua karakter di pattern cocok. Kemudian algoritma akan

memberitahukan penemuan di posisi ini.

c. Algoritma kemudian menggeser pattern berdasarkan tabel next, lalu

mengulangi langkah 2 sampai pattern berada di ujung teks.

Untuk menggambarkan rincian algoritma, akan diberikan contoh kasus,

dimana kata W = "ABCDABD" dan kalimat S = "ABC ABCDAB

ABCDABCDABDE". Pada waktu tertentu, algoritma dalam keadaan yang

ditentukan oleh dua variabel bilangan bulat:

1. m yang menunjukkan posisi dalam S yang merupakan awal dari

pertandingan prospektif untuk W.


11

2. i indeks di W yang menunjukkan karakter saat ini sedang

dipertimbangkan.

Dalam setiap langkah kita membandingkan S [m + i] dengan W [i] dan

muka jika mereka sama. Hal ini digambarkan, pada awal menjalankan, seperti :

m : 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
S : A B C A B C D A B A B C D A B C D A B D E
W : A B C D A B D
i : 0 1 2 3 4 5 6
Gambar 2.1 Iterasi Algoritma KMP

Kemudian lanjutkan dengan membandingkan karakter berturut-turut W

untuk karakter dari S, bergerak dari satu ke yang berikutnya apakah mereka cocok.

Namun, pada langkah keempat, kita mendapatkan S [3] adalah spasi dan W [3] =

'D', tidak cocok. Daripada mulai mencari lagi di S [1], sistem mencatat bahwa

tidak ada 'A' terjadi antara posisi 0 dan 3 di S kecuali pada 0; oleh karena itu,

setelah memeriksa semua karakter mereka yang sebelumnya, kita tahu tidak ada

peluang untuk menemukan awal yang cocok jika kita memeriksa mereka lagi.

Oleh karena itu kita beralih ke karakter berikutnya, menetapkan m = 4 dan i = 0.

m : 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
S : A B C A B C D A B A B C D A B C D A B D E
W : A B C D A B D
i : 0 1 2 3 4 5 6

Gambar 2.2 Iterasi Ke 2 Algoritma KMP

Algoritma mendapatkan hasil yang hampir lengkap "ABCDAB" ketika, di

W [6] (S [10]), sistem kembali memiliki ketidaksesuaian. Namun, sesaat sebelum

berakhirnya pencocokan parsial saat ini, program melewati sebuah "AB" yang

bisa menjadi awal dari pencocokan baru, jadi program harus mempertimbangkan

ini. Seperti yang sudah kita tahu bahwa karakter ini cocok dengan dua karakter
12

sebelum posisi saat ini, kita tidak perlu memeriksa mereka lagi; kita hanya

me-reset m = 8, i = 2 dan terus cocok dengan karakter saat ini. Dengan demikian,

kita tidak hanya menghilangkan karakter cocok sebelumnya dari S, tetapi juga

cocok dengan karakter sebelumnya dari W.

m : 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
S : A B C A B C D A B A B C D A B C D A B D E
W : A B C D A B D
i : 0 1 2 3 4 5 6
Gambar 2.3 Iterasi ke 3 Algoritma KMP

Pencarian ini gagal, namun pola masih tidak mengandung spasi, sehingga

dalam percobaan pertama, kita kembali ke awal W dan mulai mencari di karakter

berikutnya S: m = 11, reset i = 0.

m : 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
S : A B C A B C D A B A B C D A B C D A B D E
W : A B C D A B D
i : 0 1 2 3 4 5 6
Gambar 2.4 Iterasi ke 4 Algoritma KMP

Kita kembali mendapatkan hasil "ABCDAB" tapi karakter berikutnya, 'C',

tidak cocok dengan karakter akhir 'D' dari kata W. Penalaran seperti sebelumnya,

kita menetapkan m = 15, untuk memulai pada dua karakter string "AB" yang

mengarah ke posisi saat ini, set i = 2, dan terus mencocokkan dari posisi saat ini.

m : 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
S : A B C A B C D A B A B C D A B C D A B D E
W : A B C D A B D
i : 0 1 2 3 4 5 6
Gambar 2.5 Iterasi ke 5 Algoritma KMP

Kali ini kita mampu menyelesaikan seluruh pencocokkan, yang karakter

pertama adalah S[15].


13

Berikut adalah pseudocode algoritma KMP pada fase pra-pencarian:

procedure preKMP (
input P : array[0..n-1] of char,
input n : integer,
input/output kmpNext : array[0..n] of integer
)

Deklarasi:
i,j: integer

Algoritma
i := 0;
j := kmpNext[0] := -1;
while (i < n) {
while (j > -1 and not (P[i] = P[j]))
j := kmpNext[j];
i := i+1;
j := j+1;
if (P[i] = P[j])
kmpNext[i] := kmpNext[j];
else
kmpNext[i] := j;
endif
endwhile
Gambar 2.6 Pseudocode Algoritma KMP Pada Fase Pra-pencarian

Dan berikut adalah pseudocode algoritma KMP pada fase pencarian:

procedure KMPSearch (
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,next: integer
kmpNext : array[0..n] of integer

Algoritma
preKMP(n, P, kmpNext)
i:=0
14

while (i <= m-n) do


j := 0
while (j > n1 and T[i+j] = P[j]) do
j := j+1;
endwhile
if(j >= n) then
ketemu[i]:= true;
endif
next := j - kmpNext[j]
i := i+next
endwhile
Gambar 2.7 Pseudocode Algoritma KMP Pada Fase Pencarian

Algoritma ini menemukan semua kemunculan dari pattern dengan panjang

n di dalam teks dengan panjang m dengan kompleksitas waktu O(m+n).

Algoritma ini hanya membutuhkan O(n) ruang dari memori internal jika teks

dibaca dari file eksternal. Semua besaran O tersebut tidak tergantung pada

besarnya ruang alfabet.

2.2.6 Algoritma Boyer Moore

Algoritma Boyer Moore diperkenalkan oleh Bob Boyer dan J.S. Moore pada

tahun 1977. Pada Metode ini pencocokan kata dimulai dari karakter terakhir kata

kunci menuju karakter awalnya. Jika terjadi perbedaan antara karakter terakhir

kata kunci dengan kata yag dicocokkan, maka karakter-karakter dalam potongan

kata yang dicocokkan tadi akan diperiksa satu per satu. Hal ini dimaksudkan

untuk mendeteksi apakah ada karakter dalam potongan kata tersebut yang sama

dengan karakter yang ada pada kata kunci. 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.


15

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 bad-character shift untuk mengambil langkah

berikutnya setelah terjadi ketidakcocokan antara karakter pattern dan karakter teks

yang dicocokkan (Dwi Purwoko, 2006).

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

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

y b u

x a u
Shift
x c u
Gambar 2.8 Good-suffix shift, u terjadi 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

berikut.
16

y b u

x a u
Shift
x v

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

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

yanglebih kiri dari x[i] maka pattern digeser ke kanan sejauh i-k. Kasus

ini ditunjukkan pada gambar berikut.

y b u

x a u
Shift
x b contains no b
Gambar 2.10 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

berikut.

y b u

x a u
Shift
x contains no b
Gambar 2.11 Bad-character shift, b tidak ada di pattern x

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

yanglebih kanan dari x[i] maka pattern seharusnya digeser sejauh i-k
17

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 dimana langkah

yang paling besar yang akan digunakan.

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

patternterakhir/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 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
18

letaknya lebih kiri dengan karakter di sebelah kiri segmen yang

berbeda. Prosedur preBmGs menggunakan tabel suff untuk

mengetahui semua pasangan segmen yang sama.

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.

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

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

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

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


19

4karakter 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 posisi6.

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.

c. Dengan prosedur BmGs akan didapatkan:

Tabel 2.1 Prosedur BmGs


0 1 2 3 4 5 6 7
g c a g a g A G

bbmGs[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.

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

Karena tidak ada seamen gag lain dengan karakter sebelah kiri bukan

a maka digeser 7 langkah.


20

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.

Berikut ini adalah prosedur yang ada dalam algoritma Boyer Moore :

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
Gambar 2.12 Algoritma Boyer Moore Prosedur preBmBc

2.2.7 Taman Baca Masyarakat

Berdasarkan UU RI No 20 Tahun 2003 tentang Sistem Pendidikan Nasional,

pasal 26 ayat (4), disebukan bahwa satuan pendidikan nonformal terdiri atas

lembaga kursus, lembaga pelatihan, kelompok belajar, pusat kegiatan belajar


21

masyarakat, majelis taklim, serta satuan pendidikan yang sejenis.

TBM (Taman Baca Masyarakat) merupakan sebuah lembaga yang

menyediakan bahan bacaan yang dibutuhkan oleh masyarakat sebagai tempat

penyelenggaraan pembinaan kemampuan membaca dan belajar. Selain itu, TBM

juga merupakan tempat yang digunakan untuk mendapatkan informasi bagi

masyarakat, khususnya yang bersumber dari bahan pustaka. Bahan pustaka itu

sendiri merupakan semua jenis bahan bacaan dalam berbagai bentuk media.

2.2.8 Katalog

Katalog berasal dari bahasa Indonesia berasal dari kata Catalog dalam

bahasa Belanda, serta Catalogue dari bahasa Inggris. Istilah katalog itu sendiri

berasal dari frase Yunani Katalogos. Kata bermakna sarana atau menurut,

sedangkan logos memiliki berbagai arti seperti kata, susunan, alasan dan nalar.

Jadi katalog dari segi kata bermakna sebuah karya dengan isinya disusun menurut

cara yang masuk akal.

Beberapa definisi katalog menurut ilmu perpustakaan dapat disebutkan

sebagai berikut :

1. Katalog berarti daftar berbagai jenis koleksi perpustakaan yang disusun

menurut sistem tertentu. (Fathmi, 2004).

2. Katalog perpustakaan adalah daftar buku atau koleksi pustaka dalam

suatu perpustakaan atau dalam suatu koleksi. (Sulistyo-Basuki, 1991).

2.2.9 Website

Website adalah kumpulan dari teknologi informasi dan aplikasi, ditambah

situs web yang menggunakannya. Website atau situs juga dapat diartikan sebagai
22

kumpulan halaman yang menampilkan informasi data teks, data gambar diam atau

gerak, data animasi, suara, video dan atau gabungan dari semuanya, baik yang

bersifat statis maupun dinamis yang membentuk satu rangkaian bangunan yang

saling terkait dimana masing-masing dihubungkan dengan jaringan-jaringan

halaman (hyperlink). Bersifat statis apabila isi informasi website tetap, jarang

berubah, dan isi informasinya searah hanya dari pemilik website.

2.2.9.1 Hyper Text Preprocessor (PHP)

Hyper Text Preprocessor (PHP) adalah sebuah bahasa utama script

server-side yang disisipkan pada HTML yang dijalankan di server, dan juga bisa

digunakan untuk membuat aplikasi desktop.

PHP secara umum dikenal dengan sebagai bahasa pemrograman

script-script yang membuat dokumen HTML secara on the fly yang dieksekusi di

server web, dokumen HTML yang dihasilkan dari suatu aplikasi bukan dokumen

HTML yang dibuat dengan menggunakan editor teks atau editor HTML, dikenal

juga sebagai bahasa pemrograman server side (Betha Sidik, 2012: 4).

Kelebihan PHP dari Bahasa Pemrograman lain antara lain :

1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak dapat

melakukan sebuah kompilasi dalam penggunaannya.

2. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari

mulai apache, IIS, Lighttpd, hingga Xitami dengan konfigurasi yang

relatif mudah.

3. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis

dan developer yang siap membantu dalam pengembangan.


23

4. Dalam sisi pemahaman, PHP adalah bahasa scripting yang paling

mudah karena memiliki referensi yang banyak.

5. PHP adalah bahasa open source yang dapat digunakan diberbagai mesin

(Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime

melalui consule serta juga dapat menjalankan perintah-perintah sistem.

2.2.9.2 MYSQL

MySQL adalah sebuah sistem manajemen database yang bersifat open

source. MySQL adalah pasangan serasi dari PHP. MySQL dapat digunakan untuk

membuat dan mengelola database beserta isinya. Kita dapat memanfaatkan

MySQL untuk menambahkan, mengubah dan menghapus data yang berada dalam

dabatase. MySQL merupakan sistem manajemen database yang bersifat at

relational, artinya data-data yang dikelola dalam database akan diletakkan pada

beberapa tabel yang terpisah sehingga manipulasi data akan menjadi jauh lebih

cepat.

2.2.9.3 HTML

Hyper Text Markup Language (HTML) adalah sebuah bahasa markup yang

digunakan untuk membuat sebuah halaman web. HTML digunakan untuk mark up

(penanda) terhadap suatu dokumen teks. Simbol mark up yang digunakan oleh

HTML ditandai dengan tanda lebih kecil (<) dan tanda lebih besar (>). Kedua

tanda tersebut disebut tag. Tag yang digunakan sebagai tanda penutup diberi

karakter garis miring (</..>) (Yusi et al, 2012).

2.2.9.4 Javascript

Javascript adalah bahasa yang berbentuk kumpulan script yang fungsinya


24

digunakan untuk menambahkan interaksi antara halaman web dengan pengunjung

halaman web. Javascript dijalankan pada sisi klien yang akan memberikan

kemampuan fitur-fitur tambahan halaman web yang lebih baik dibandingkan

fitur-fitur yang terdapat pada HTML (Yusi et al, 2012).

2.2.9.5 CSS

Cascading Style Sheet (CSS) adalah stylesheet language yang digunakan

untuk mendeskripsikan penyajian dari dokumen yang dibuat dalam mark up

language. CSS merupakan sebuah dokumen yang berguna untuk melakukan

pengaturan pada komponen halaman web, inti dari dokumen ini adalah

memformat halaman web standar menjadi bentuk web yang memiliki kualitas

yang lebih indah dan menarik (Yusi et al, 2012).

2.2.10 Flowchart

Menurut Jogiyanto (2005) Flowchart adalah bagan (chart) yang

menunjukan alir atau arus (flow) didalam program atau prosedur sistem secara

logika.

Berikut adalah simbol-simbol flowchart beserta fungsinya :

Tabel 2.2 Simbol-Simbol Flowchart

Simbol Nama Fungsi

Terminal Menyatakan permulaan atau akhir suatu program

Input/Output Menyatakan proses input output tanpa tergantung

jenis peralatannya
25

Process Menyatakan suatu tindakan (proses) yang dilakukan

oleh komputer

Decision Menunjukan suatu kondisi tertentu yang akan

menghasilkan dua kemungkinan jawaban : ya/tidak

Connector Menyatakan sambungan dari proses ke proses

lainnya dalam halaman yang sama

Offline Menyatakan sambungan dari proses ke proses

Connector lainnya dalam halaman yang berbeda

Predefined Menyatakan penyediaan tempat penyimpanan suatu

Process pengolahan untuk memberi harga awal

Punched Card Menyatakan input berasal dari kartu atau output

yang ditulis ke kartu

Punce Tape Menyatakan input dan output memakai pita kertas

yang berlubang

Document Menyatakan input asalnya dari dokumen ke dalam

bentuk kertas atau keluaran yang dicetak ke kertas

Flow Dipakai untuk hubungkan simbol satu dengan

simbol lainnya.

Predefine Dipakai untuk melaksanakan suatu bagian

process prosedur

Rangkap dari Rangkap dokumen di indikaskan dengan pemberian

sebuah nomor dokumen pada sudut sebelah kanan simbol

Dokumen dokumen
26

Manual Menyatakan simbol yang menunjukan pengolahan

Operation yang tidak dilakukan oleh komputer

2.2.11 Unified Modeling Language (UML)

Pada perkembangan teknik pemrograman berorientasi objek, muncullah

sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang

dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu

Unified Modeling Language (UML) (Rosa A. S. dan M. Shalahudin, 2016).

Adapun beberapa diagram yang termasuk dalam UML adalah sebagai

berikut :

2.2.11.1 Use Case Diagram

Sukamto dan Shalahuddin (2013:155), “Use case diagram merupakan

pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use

case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem

informasi yang akan dibuat”.

Berikut adalah simbol-simbol yang ada pada diagram use case menurut

Rosa dan Shalahuddin (2013:156) :

Tabel 2.3 Simbol-Simbol Use Case

Simbol Penjelasan

Use Case :

UseCase Sebuah deskripsi dari seperangkat aksi-aksi berurutan yang

ditampilkan pada sebuah sistem.


27

Aktor / Actor :

Orang, proses, atau sistem lain yang berinteraksi dengan

sistem informasi yang akan dibuat di luar sistem informasi

yang akan dibuat itu sendiri.

Generaliasai / Generalization :

Relasi antar use case, dimana salah satunya dalam bentuk

yang lebih umum dari yang lain.

Asosiasi /Association :

Menggambarkan interaksi antara actor dan use case.

System :
system
Tempat seluruh aktivitas-aktivitas sistemyang sedang

berjalan.

Kebergantungan / Dependancy :

Untuk menggambarkan ketergantungan sebuah use case

dengan use case lainnya.

Include :

Menggambarkan bahwa keseluruhan dari sebuah use case


<<Include>>
merupakan fungsionalitas use case lainnya.

Ekstensi / Extend :

Menggambarkan hubungan antar use case dimana bahwa


<<Extend>>
sebuah use case merupakan fungsionalitas

use case lainnya apabila kondisi tertentu terpenuhi.


28

2.2.11.2 Activity Diagram

Sukamto dan Shalahuddin (2013:161), “Activity diagram menggambarkan

workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau

menu yang ada pada perangkat lunak”.

Berikut adalah simbol-simbol yang ada pada diagram aktivitas menurut

Rosa dan Shalahuddin (2013:162) :

Tabel 2.4 Simbol-Simbol Activity Diagram

Simbol Penjelasan

Status Awal Status awal aktivitas sistem, sebuah diagram aktivitas

memiliki sebuah status awal

Aktivitas Aktivitas yang dilakukan sistem, aktivitas biasanya

diawali dengan kata kerja

Percabangan/Decision Asosiasi percabangan dimana jika ada pilihan aktivitas

lebih dari satu.

Penggabungan/Join Asosiasi penggabungan dimana lebih dari satu aktivitas

digabungkan menjadi satu.

Status akhir Status akhir yang dilakukan sistem, sebuah diagram

aktivitas memiliki sebuah status akhir.

Swimlane Swimlane memisahkan organisasi bisnis yang


Nama swimlane
bertanggung jawab terhadap aktivitas yang terjadi
29

2.2.11.3 Sequence Diagram

Diagram sekuen menggambarkan kelakuan objek pada use case dengan

mendeskripsikan waktu hidup objek dengan massage yang dikirimkan dan

diterima antar objek.

Berikut adalah simbol-simbol yang ada pada diagram sekuen menurut

Sukamto dan Shalahuddin (2013:165) :

Tabel 2.5 Simbol-Simbol Sequence Diagram

Simbol Penjelasan
Aktor/Actor Orang, proses, atau sistem lain yang berinteraksi dengan

sistem informasi yang akan dibuat di luar sistem informasi

yang akan dibuat itu sendiri

Garis hidup/Lifeline Menyatakan kehidupan suatu objek

Objek Menyatakan objek yang berinteraksi pesan


Nama objek :

Waktu aktif Menyatakan objek dalam keadaan aktif dan berinteraksi

Pesan tipe create Menyatakan suatu objek membuat objek yang lain, arah

<<create>> panah mengarah pada objek yang dibuat

Pesan tipe call Menyatakan suatu objek memanggil operasi/metode yang

1 : nama_metode() ada pada objek lain atau dirinya sendiri

Pesan tipe send Menyatakan bahwa suatu objek mengirimkan

1 : masukan data/masukan/informasi ke objek lainnya, arah panah

mengarah pada objek yang dikirimi


30

Pesan tipe return Menyatakan bahwa suatu objek yang telah menjalankan

1 : keluaran suatu operasi atau metode menghasilkan suatu kembalian

ke objek tertentu, arah panah mengarah pada objek yang

menerima kembalian

Pesan tipe destroy Menyatakan suatu objek mengakhiri hidup objek yang
destroy()
lain, arah panah mengarah pada objek yang diakhiri,

sebaiknya jika ada create maka ada destroy

2.2.11.4 Class Diagram

Sukamto dan Shalahuddin (2013:141), “Class diagram menggambarkan

struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk

membangun sistem”. Kelas memiliki apa yang disebut atribut dan metode atau

operasi.

Berikut adalah simbol-simbol yang ada pada diagram kelas menurut Rosa

dan Shalahuddin (2013:146):

Tabel 2.6 Simbol-Simbol Class Diagram

Penjelasan

Kelas Kelas pada struktur system


nama_kelas
+ attribut
+ operasi()

Antarmuka/Interface Sama dengan konsep interface dalam

pemrograman berorientasi objek (OOP)

Asosiasi/Association Relasi antar kelas dengan makna umum, asosiasi


31

biasanya juga disertai dengan multiplicity

Asosiasi berarah/Directed Relasi antar kelas dengan makna kelas yang satu
association
digunakan oleh kelas yang lain, asosiasi biasanya

juga disertai dengan multiplicity

Generalisasi/Generalization Relasi antar kelas dengan makna generalisasi -

spesialisasi (umum khusus)

Kebergantungan/Dependency Kebergantungan antar kelas

Relasi antar kelas dengan makna semua bagian

(whole-part)

2.2.12 Metode Perbandingan Eksponsial

Metode Perbandingan Exponensial (MPE) adalah salah satu metode dari

Decision Suport System (DSS) yang digunakan untuk menentukan urutan prioritas

alternatif keputusan dengan kriteria jamak (Rohmat et al, 2018).

Dalam menggunakan metode perbandingan eksponensial, ada beberapa

tahapan yang harus dilakukan. Tahapan-tahapan tersebut adalah sebagai berikut :

1. Menyusun alternatif-alternatif keputusan yang akan dipilih.

2. Menentukan kriteria atau perbandingan relatif kriteria keputusan yang

penting untuk dievaluasi dengan menggunakan skala konversi tertentu

sesuai dengan keinginan pengambil keputusan.

3. Menentukan tingkat kepentingan relatif dari setiap dari setiap kriteria

keputusan atau pertimbangan kriteria. Penentuan bobot ditetapkan pada

setiap kriteria untuk menunjukkan tingkat kepentingan suatu kriteria.


32

4. Melakukan penilaian terhadap semua alternatif pada setiap kriteria dalam

bentuk total skor tiap alternatif.

5. Menghitung skor atau nilai total setiap alternatif dan mengurutkannya.

Semakin besar total nilai (TN) alternatif maka semakin tinggi urutan

prioritasnya.

Formulasi perhitungan skor untuk setiap alternatif dalam metode

perbandingan eksponensial adalah sebagai berikut :

Gambar 2.13 Rumus Metode Eksponsial

Dimana :

��� = total nilai alternatif ke –i

���� = derajat kepentingan relatif kriteria ke –j pada pilihan keputusan i

���� = derajat kepentingan kriteria keputusan ke –j; ���� > 0; bulat

j = jumlah pilihan keputusan

m = jumlah kriteria keputusan

2.3 Kerangka Pemikiran

Penggunaan buku tulis sebagai catatan katalog buku yang berisi bahan

pustakan dan dokumen pustaka saat ini belum efektif dalam mencari sebuah

informasi buku yang dibutuhkan dengan cepat dan efisien, untuk itu perlu

dibuatkannya suatu aplikasi pencarian katalog buku berbasis website agar dapat

mempermudah pengguna dalam mencari informasi data buku yang dibutuhkan.


33

Namun untuk mengoptimalkan dalam pencarian data buku pada aplikasi

katalog buku dibutuhkan algoritma string matching. Untuk itu perlu dilakukan

tahap perbandingan dan analisis terhadap algoritma KMP dan Boyer Moore untuk

mengetahui algoritma mana yang lebih cocok untuk aplikasi pencarian katalog

buku. Alur kerangka pemikiran pada penelitian ini dapat dilihat pada gambar

dibawah ini :

Identifikasi sistem yang berjalan

Analisa permasalahan

Saat ini pencarian katalog buku Pemilihan algoritma string


pada buku tulis dilakukan Buku tulis tidak efisien matching yang tepat pada
dengan konvensional aplikasi katalog buku

Perancangan Sistem

Pembuatan Sistem

Analisis Perbandingan Algoritma KMP dan Boyer Moore

Aplikasi Pencarian Katalog Buku

Mempermudah pengunjung Aplikasi katalog lebih efisien


untuk mendapatkan informasi dan update.
buku.

Gambar 2.14 Kerangka Pemikiran


BAB III

METODE PENILITIAN

3.1 Tentang Organisasi

Pesantrend Buku Cikarang adalah Taman Baca Masyarakat (TBM) yang

berlokasi di kampung Pelaukan (Tanggul) Desa Karang Rahayu Kecamatan

Karang Bahagia, Bekasi. Pesantrend Buku Cikarang lahir dari aktivis kampung

yang resah akan arus globalisasi yang berdampak negatif dan apatisme akan

kampung sendiri. Maka pada tahun 2016 terbentuklah TBM Pesantrend Buku

Cikarang yang bercita-cita dan berkeinginan luhur ingin mencerdaskan

masyarakat di perkampungan agar pengetahuan masyarakat menjadi bertambah

dan memiliki sifat sense of belonging.

Berikut merupakan struktur organisasi TBM Pesantrend Buku Cikarang :

Ketua
Ade Maulana Aji, S.Pd.

Sekretaris Bendahara
Ade Sugito Noval Hadi

Gambar 3.1 Struktur Organisasi TBM Pesantrend Buku Cikarang

3.2 Visi dan Misi Organisasi

3.2.1 Visi

Terciptanya lingkungan masyarakat yang sadar akan ilmu pengetahuan dan

teknologi serta menjadikan membaca sebagai gaya hidup.

34
35

3.2.2 Misi

1. Menjadikan membaca sebagai kebutuhan atau gaya hidup

2. Menanamkan minat baca pada setiap anak sedini mungkin

3. Membuat lingkungan menjadi ramah anak

4. Menjadikan alam sekitar sebagai sekolah atau media belajar

5. Membuka paradigma masyarakat bahwa membaca atau berliterasi itu

penting.

3.3 Sistem Yang Sedang Berjalan

Analisis sistem yang sedang berjalan pada sistem pencarian katalog buku di

TBM (Taman Baca Masyarakat) Pesantrend Buku Cikarang bertujuan untuk

mengetahui bagaimana cara kerja sistem tersebut dan juga masalah yang sedang

dihadapi sistem tersebut. Prosedur sistem pencarian katalog buku di TBM

Pesantrend Buku Cikarang di deskripsikan sebagai berikut :

1. Pengunjung membuka buku catatan berisi kumpulan katalog buku.

2. Petugas TBM menyiapkan data katalog buku pada buku catatan.

3. Pengunjung mencari informasi katalog buku yang di inginkan.

4. Pengunjung mendapatkan informasi katalog buku yang berisi tentang

bahan pustaka dan dokumen pustaka.


36

Sistem pencarian katalog buku yang sedang berjalan

Pengunjung Petugas Taman Baca Masyarakat

Mulai

Membuka Buku
Catatan Katalog Data Katalog

Mencari
Katalog
Buku

Mendapatkan
Informasi
Katalog
Buku

Selesai

Gambar 3.2 Flowchart Aktivitas Pencarian Katalog Buku

3.4 Sistem Yang Diusulkan

Sistem pada aplikasi yang diusulkan berupa aplikasi online berbasis website

yang memiliki desain yang lebih mudah diakses dan memiliki search engine yang

maksimal dalam pencocokan string, sehingga sistem dapat menampilkan semua

informasi yang berkaitan dengan string yang dicari dengan mudah. Sistem

aplikasi nantinya menggunakan algoritma string matching pada tools search

engine sehingga dapat menampilkan informasi dengan cepat dan akurat.


37

Pada penelitian ini terdapat sebuah tahap analisis perbandingan algoritma

string matching KMP dan Boyer Moore dengan membuatkan aplikasi

perbandingan algoritma, untuk mengetahui seberapa lama waktu dan pemakaian

memori yang digunakan dalam proses pencarian, yang nantinya akan diolah

menggunakan Metode Perbandingan Eksponensial dalam menentukan algoritma

yang tepat.

Proses Perbandingan Pencarian Bahan Pustaka dan Dokumen

Pustaka dari Katalog Buku Algortima KMP dan Boyer Moore

Pengguna Sistem

Tampilan Mengecek
aplikasi katalog

Database
katalog

Masukkan
katalog

T Cocok?

Menampilkan Y
hasil pencarian

Gambar 3.3 Flowmap Proses Perbandingan Pencarian Katalog


38

3.5 Perancangan Sistem

Sebagai solusi untuk mengatasi permasalahan yang telah dijelaskan, berikut

dibuatkan UML (Unified Modeling Languange), perancangan database dan

perancangan user interface serta perancangan algoritma sebagai berikut :

3.5.1 Use Case Diagram

Pada use case diagram aplikasi perbandingan algoritma katalog buku

terdapat dua aktor yaitu pengunjung dan admin serta memiliki lima use case. Pada

setiap aktor dan use case memiliki gambaran interaksi yang berbeda-beda

diantaranya :

1. Aktor Pengunjung

Aktor Pengunjung dapat berinterakasi dengan use case view cara

penggunaan, pilih algoritma dan cari katalog buku.

2. Aktor Admin

Aktor Admin yang melakukan pengelolaan data pada aplikasi dan hanya

dapat berinterakasi dengan use case login dan mengelola katalog buku.

Gambar 3.4 Use Case Diagram Algoritma Katalog Buku


39

Berikut merupakan skenario dari masing-masing use case :

Tabel 3.1 Skenario Use Case View Cara Penggunaan

Use Case View Cara Penggunaan

Tujuan Untuk melihat bagaimana cara mengoprasikan aplikasi katalog

buku

Aktor Pengunjung

Kondisi Awal Halaman awal aplikasi

Skenario 1. Pengunjung mengklik tombol cara penggunaan

2. Sistem memporses request yang dilakukan oleh Pengunjun

Kondisi Akhir Sistem menampilkan informasi cara penggunaan aplikasi

Tabel 3.2 Skenario Use Case Pilih Algoritma

Use Case Pilih Algoritma

Tujuan Untuk memilih algoritma KMP atau Boyer Moore yang akan di

gunakan dalam sistem pencarian

Aktor Pengunjung

Kondisi Awal Halaman awal aplikasi

Skenario 1. Pengunjung memilih algoritma yang akan digunakan

2. Sistem memproses search engine pada aplikasi agar sesuai

dengan algoritma yang dipilih Pengunjung

Kondisi Akhir Sistem menampilkan search engine menggunakan algoritma

yang dipilih oleh Pengunjung


40

Tabel 3.3 Skenario Use Case Cari Katalog Buku

Use Case Cari Katalog Buku

Tujuan Untuk memulai pencarian katalog buku

Aktor Pengunjung

Kondisi Awal Halaman awal aplikasi

Skenario 1. Pengunjung memasukan kata pada kolom pencarian yang

disediakan, kemudian Pengunjung mengklik tombol cari

2. Sistem mencocokan data yang dimasukan Pengunjung

Kondisi Akhir Sistem menampilkan hasil pencarian

Tabel 3.4 Skenario Use Case Login

Use Case Login

Tujuan Untuk masuk ke dalam dashboard Admin

Aktor Admin

Kondisi Awal Halaman awal aplikasi

Skenario 1. Admin mengakses halaman login, kemudian Admin

melakukan memasukan username dan password pada form

login

2. Sistem memproses request yang dilakukan oleh Admin

Kondisi Akhir Admin dapat masuk kedalam dashboard


41

Tabel 3.5 Skenario Use Case Cari Mengelola Katalog Buku

Use Case Mengelola Katalog Buku

Tujuan Untuk mengelola katalog buku yang ada pada aplikasi

Aktor Admin

Kondisi Awal Login tervalidasi

Skenario 1. Admin mengklik tombol kelola katalog buku, kemudian

Admin dapat melakukan input data, ubah data dan hapus

data pada aplikasi

2. Sistem memproses request yang dilakukan oleh Admin

Kondisi Akhir Admin dapat mengelola katalog buku

3.5.2 Activity Diagram

Pada activity diagram aplikasi katalog buku menggambarkan tentang setiap

proses aktifitas yang terjadi pada sistem.

1. Activity Diagram Login

Gambar 3.5 Activity Diagram Login


42

Pada activity diagram untuk login dimulai dengan mengakses halaman

admin, kemudian sistem akan menampilkan halaman aplikasi, Admin kemudian

login dengan username dan password yang sudah terdaftar, lalu sistem akan

mengecek apakah username dan password ada atau tidak, apabila ada maka

sistem akan menampilkan halaman admin.

2. Activity Diagram Mengelola Katalog Buku

Gambar 3.6 Activity Diagram Mengelola Katalog Buku


43

Pada activity diagram mengelola katalog buku dimulai dengan memilih

tombol kelola katalog buku, setelah itu Admin dapat mengelola katalog buku.

3. Activity Diagram View Cara Penggunaan

Gambar 3.7 Activity Diagram View Cara Penggunaan

Pada activity diagram view cara penggunaan aplikasi, dimulai dari

Pengunjung membuka aplikasi kemudian sistem akan menampilkan aplikasi, lalu


44

memilih tombol informasi cara penggunaan pada menu aplikasi, maka sistem

akan menampilkan informasi cara penggunaan.

4. Activity Diagram Cari Katalog Buku Menggunakan Algoritma KMP

Gambar 3.8 Activity Diagram Cari Katalog Menggunakan Algoritma KMP

Pada activity diagram mencari katalog buku menggunakan algoritma KMP

tahap awal yang dilakukan pada pengunjung adalah dengan membuka aplikasi

perbandingan, kemudian sistem akan menampilkan aplikasi, lalu pengunjung

memilih algoritma yaitu algoritma KMP, sistem akan menampilkan search engine
45

sebagai fasilitas pengunjung dalam mencari detail katalog, setelah itu pengunjung

akan memasukan kata pada kolom pencarian, jika kata yang dicari ada maka

sistem akan menampilkan detail katalog buku berupa bahan pustaka dan dokumen

pustaka, apabila tidak ada maka akan dikembalikan pada halaman search engine.

5. Activity Diagram Cari Katalog Buku Menggunakan Algoritma Boyer

Moore

Gambar 3.9 Activity Diagram Cari Katalog Menggunakan Algoritma BM


46

Pada activity diagram mencari katalog buku menggunakan algoritma Boyer

Moore tahap awal yang dilakukan pada pengunjung adalah dengan membuka

aplikasi perbandingan, kemudian sistem akan menampilkan aplikasi, lalu

pengunjung memilih algoritma yaitu algoritma Boyer Moore, sistem akan

menampilkan search engine sebagai fasilitas pengunjung dalam mencari detail

katalog, setelah itu pengunjung akan memasukan kata pada kolom pencarian, jika

kata yang dicari ada maka sistem akan menampilkan detail katalog buku berupa

bahan pustaka dan dokumen pustaka, apabila tidak ada maka akan dikembalikan

pada halaman search engine.

3.5.3 Sequence Diagram

Sequence Diagram Aplikasi Katalog Buku adalah suatu diagram yang

memperlihatkan atau menampilkan interkasi-interaksi antar objek di dalam

sistem.

1. Sequence Diagram Admin Aplikasi Katalog Buku

Gambar 3.10 Sequence Diagram Admin Aplikasi Katalog Buku


47

2. Sequence Diagram Pengunjung Aplikasi Katalog Buku

Gambar 3.11 Sequence Diagram Pengunjung Aplikasi Katalog Buku

3.5.4 Class Diagram

Class diagram menggambarkan struktur dan deskripsi class, package, dan

object beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi,

dan lain-lain. Berikut adalah class diagram yang dibutuhkan dalam perancangan

Sistem Aplikasi Perbandingan Algoritma dan Katalog Buku.


48

Gambar 3.12 Class Diagram Aplikasi Katalog Buku

3.5.5 Perancangan Database

1. Tabel Katalog
Tabel 3.6 Katalog Buku

No Nama Field Type Size Keterangan


1 isbn Char 20 Primary Key
2 judul Char 50 -
3 pengarang Char 80 -
4 penerbit Char 30 -
5 ukuran_halaman Char 25 -
6 edisi_cetakan Char 10 -
7 tahun_terbit Int 4 -
8 letak_buku Char 10 -
49

2. Tabel User

Tabel 3.7 User

No Nama Field Type Size Keterangan

-
1 username Char 50

2 password Char 100 -

3.5.6 Perancangan User Interface

Dalam tahap ini dilakukan perancangan struktur menu dan layout dari setiap

halaman. Hasilnya berbentuk beberapa halaman yang menjadi pedoman dalam

pengembangan sistem informasi.

1. Perancangan User Interface Halaman Admin Aplikasi

a. Halaman Login

Pada halaman login merupakan tampilan login untuk admin mengisi

username dan password sebagai salah satu syarat untuk memasuki

halaman admin. Rancangan layout halaman login admin terdiri dari

beberapa elemen, antara lain :

1. Form pengisian username dan password

2. Button sign in sebagai button pengiriman data username dan

password untuk memasuki dashboard admin

3. Footer sebagai identitas pembuat aplikasi


50

Gambar 3.13 Perancangan User Interface Login Aplikasi

b. Dashboard Admin

Pada halaman dashboard admin merupakan tampilan untuk admin

dalam mengelola data katalog buku. Rancangan layout halaman

admin terdiri dari beberapa elemen, antara lain :

1. Isi konten admin yaitu hasil penginputan data-data.

2. Button tambah katalog

3. Form search sebagai tools mempermudah admin dalam mencari

data.

4. Button aksi yaitu edit dan delete.

5. Footer sebagai identitas pembuat aplikasi


51

Gambar 3.14 Perancangan User Interface Dashboard Admin

c. Halaman Tambah Katalog Buku

Pada halaman ini merupakan tampilan penambahan data katalog buku.

Rancangan layout halaman tambah terdiri dari beberapa elemen,

antara lain :

1. Teks tambah katalog buku sebagai keterangan form

2. Form Judul, ISBN, Pengarang, Penerbit, Ukuran/Halaman,

Edisi/Cetakan, Tahun Terbit, dan Letak Buku untuk menginput

data

3. Button simpan untuk menyimpan data

4. Button batal untuk membatalkan penambahan katalog buku.


52

Gambar 3.15 Perancangan User Interface Tambah Katalog Buku

d. Halaman Ubah Katalog Buku

Pada halaman ini merupakan tampilan untuk mengubah data-data

katalog buku pada aplikasi. Rancangan layout yang terdiri dari

beberapa elemen, antara lain :

1. Teks ubah katalog buku sebagai keterangan form

2. Form untuk menginput data

3. Button simpan untuk menyimpan data

4. Button batal
53

Gambar 3.16 Perancangan User Interface Ubah Katalog Buku

e. Pop Up Hapus Katalog Buku

Pada halaman ini menampilkan pop up persetujuan penghapusan

katalog buku. Rancangan layout terdiri dari beberapa elemen, antara

lain :
54

1. Teks pertanyaan untuk validasi penghapusan

2. Button ya untuk menyetujui penghapusan

3. Button batal untuk membatalkan penghapusan

Gambar 3.17 Perancangan User Interface Hapus Katalog Buku

2. Perancangan User Interface Halaman Aplikasi Katalog Buku

a. Halaman Utama Aplikasi Katalog Buku

Pada halaman ini merupakan tampilan halaman utama aplikasi

katalog buku. Rancangan layout halaman utama terdiri dari beberapa

elemen, antara lain :

1. Menu hyperlink algoritma Knuth-Morris-Pratt berfungsi sebagai

search engine katalog buku

2. Menu hyperlink algoritma Boyer Moore berfungsi sebagai search

engine katalog buku

3. Menu hyperlink cara penggunaan berfungsi menampilkan

halaman cara penggunaan aplikasi

4. Form pencarian digunakan untuk mencari katalog buku

5. Footer sebagai identitas pembuat aplikasi


55

Gambar 3.18 Perancangan User Interface Halaman Utama Aplikasi

b. Halaman Cara Pengguaan Aplikasi

Pada halaman ini merupakan tampilan dari informasi bagaimana cara

menggunkan aplikasi katalog buku. Rancangan layout terdiri dari

beberapa elemen, antara lain :

1. Teks cara penggunaan aplikasi sebagai keterangan halaman

2. Icon home yang merupakan link menuju kehalaman utama

aplikasi

3. Tiga kotak gambar yang menunjukan cara penggunaan aplikasi

4. Footer sebagai identitas pembuat aplikasi


56

Gambar 3.19 Perancangan User Interface Halaman Cara Penggunaan Aplikasi

c. Halaman Pencarian Katalog Buku

Halaman ini menampilkan detail katalog buku, hasil penggunaan

waktu dan penggunaan memori pada sistem saat melakukan

pencarian. Rancangan layout halaman ini terdiri dari beberapa

elemen, antara lain :

1. Navigasi bar Algoritma merupakan link untuk pilihan search

engine katalog buku dan navigasi bar cara penggunaan merupakan

link untuk menuju ke halaman cara penggunaan aplikasi

2. Form pencarian untuk memasukan kata.

3. Button cari untuk melakukan perintah pencarian

4. Sebuah teks keterangan hasil testing waktu

5. Sebuah teks keterangan hasil penggunaan memori

6. Button refresh testing untuk pencarian baru


57

7. Teks judul katalog merupakan hasil pencarian

8. Teks Judul, ISBN, Pengarang, Penerbit, Ukuran/Halaman,

Edisi/Cetakan, Tahun Terbit, dan Letak Buku merupakan detail

katalog buku dari hasil pencarian

Gambar 3.20 Perancangan User Interface Halaman Pencarian Katalog Buku


BAB IV

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Analisa Kebutuhan Sistem

Analisis kebutuhan sistem ini sangat dibutuhkan dalam mengidentifikasi

data dan proses yang dibutuhkan pada sistem baru. Sistem yang digunakan harus

sesuai dengan kebutuhan.

4.1.1 Spesifikasi Hardware

Untuk merancang aplikasi perbandingan algoritma katalog buku, penulis

menggunakan perangkat keras sebagai berikut:

Komputer dengan spesifikasi:

1. Processor: AMD Quad-Core E2-6110

2. RAM: 6GB

3. VGA: AMD RadeonTM R2 Graphics

4. Harddisk: 500 GB

4.1.2 Spesifikasi Software

Untuk merancang aplikasi perbandingan algoritma kamus bahasa istilah

komputer, penulis menggunakan perangkat keras sebagai berikut:

1. Windows 10

2. Xampp

3. Sublime Text 3

4. Web Browser

58
59

4.2 Tahap Implementasi

Pada tahap implementasi terdapat beberapa implementasi diantaranya :

1. Persiapan instalasi server offline dengan Xampp.

2. Implentasi pembuatan database dengan bantuan phpmyadmin.

3. Implementasi pembuatan interface dengan bahasa pemrograman html, js

dan css.

4. Implementasi code pemrograman dengan bahasa pemrograman PHP.

4.2.1 Tahap Implementasi Instalasi Xampp

Sebagai langkah awal implementasi yaitu perlu melakukan instalasi Xampp.

Fungsinya adalah sebagai server yang berdiri sendiri (localhost), yang terdiri atas

program Apache HTTP Server, MySQL database, dan penerjemah bahasa yang

ditulis dengan bahasa pemrograman PHP dan Perl. Program ini tersedia dalam

General License Public dan bebas, merupakan web server yang mudah digunakan

yang dapat melayani tampilan web dinamis. Berikut adalah langkah langkah

instalasi Xampp:

1. Mulai proses instalasi dengan klik dua kali pada installer XAMPP. Klik

‘Next’ setelah splash screen.


60

Gambar 4.1 Halaman Awal Instalasi Xampp

2. Kemudian pilih komponen-komponen yang ingin diinstal. Pilih pilihan

default dan klik ‘Next’.


61

Gambar 4.2 Halaman Pilihan Komponen


62

3. Pilih folder sebagai tempat XAMPP akan diinstal, di folder ini akan

menampung semua file aplikasi web kita, jadi pastikan untuk memilih

drive yang memiliki banyak ruang (space).

Gambar 4.3 Halaman Pilihan Lokasi Instalasi

4. Proses Install sudah selesai! Pilih Kotak centang ‘Do you want to start

the Control Panel now?’ untuk membuka panel kontrol XAMPP.


63

Gambar 4.4 Halaman Akhir Instalasi

4.2.2 Implementasi Database

Database merupakan kumpulan dari tabel-tabel yang akan menyimpan data

mentah, karena itu setiap tabel harus saling berhubungan agar akses data untuk

mendapatkan informasi yang tepat dan cepat dapat dilakukan dengan baik.

Berikut tabel-tabel yang telah dibuat :


64

Gambar 4.5 Tabel Katalog

Tabel Katalog merupakan tabel yang berada pada database compairing yang

digunakan untuk penyimpanan data-data pada aplikasi perbandingan algoritma

dan aplikasi katalog buku.

Gambar 4.6 Tabel User

Tabel User merupakan tabel yang berada pada database compairing yang

digunakan untuk penyimpanan data-data username & password untuk akases

menu admin pada aplikasi katalog buku.

4.2.3 Implementasi Interface

Implementasi Interface yang dilakukan berdasarkan hasil rancangan

interface pada tahap desain. Hasil dari implementasi antar muka yaitu :

1. Implementasi Interface Halaman Menu Utama Aplikasi Perbandingan

Algoritma.
65

Gambar 4.7 Interface Menu Utama Aplikasi Perbandingan Algoritma

Pada Interface Menu Utama Aplikasi Perbandingan Algoritma adalah

tampilan awal saat mengakses Aplikasi Perbandingan.

2. Implementasi Interface Halaman Hasil Pencarian Aplikasi Perbandingan

Algoritma.

Gambar 4.8 Interface Halaman Hasil Pencarian Aplikasi Perbandingan Algoritma

Pada Interface Hasil Pencarian Aplikasi Perbandingan Algoritma

merupakan tampilan data-data informasi penggunaan waktu dan memori

algoritma saat melakukan pencarian data.


66

3. Implementasi Interface Halaman Informasi Cara Penggunaan Aplikasi

Katalog Buku.

Gambar 4.9 Interface Halaman Cara Penggunaan Aplikasi Katalog Buku

Pada Interface Halaman Informasi Cara Penggunaan Aplikasi Katalog Buku

merupakan tampilan cara penggunaan aplikasi.

4. Implementasi Interface Halaman Login Admin Aplikasi Katalog Buku.

Gambar 4.10 Interface Halaman Login Admin Aplikasi Katalog Buku


67

Pada Interface Halaman Login Admin Aplikasi Katalog Buku merupakan

tampilan untuk melakukan login pada aplikasi.

5. Implementasi Interface Halaman Dashboaord Admin Aplikasi Katalog

Buku.

Gambar 4.11 Interface Halaman Dashboard Admin Aplikasi Katalog Buku

Pada Interface Halaman Dashboard Admin Aplikasi Katalog Buku

merupakan tampilan untuk melakukan pengelolaan data-data pada aplikasi.


68

6. Implementasi Interface Halaman Tambah Data Katalog Buku.

Gambar 4.12 Interface Halaman Tambah Data Katalog Buku

Pada Interface Halaman Halaman Tambah Katalog pada aplikasi Katalog

Buku merupakan tampilan untuk melakukan input data pada aplikasi.


69

7. Implementasi Interface Halaman Ubah Data Katalog Buku.

Gambar 4.13 Interface Halaman Ubah Data Katalog Buku

Pada Interface Halaman Ubah Katalog pada aplikasi Katalog Buku

merupakan tampilan untuk melakukan edit data-data pada aplikasi.

8. Implementasi Interface Halaman Hapus Data Katalog Buku.

Gambar 4.14 Interface Halaman Hapus Data Katalog Buku


70

Pada Interface Halaman Hapus Katalog pada aplikasi Katalog Buku

merupakan tampilan untuk melakukan penghapusan data-data pada aplikasi.

4.3 Metode Perbandingan Eksponsial

Metode Perbandingan Eksponensial (MPE) ialah salah satu metode untuk

menentukan urutan prioritas alternatif keputusan dengan kritiria jamak. Dalam

menghitung dan membandingkan proses pencarian dari algoritma KMP dan Boyer

Moore adalah sebagai berikut :

1. Menentukan alternatif

Untuk menganalisa perbandingan kecepatan antara algoritma KMP dan

Boyer Moore dalam melakukan pencarian maka perlu dilakukan

penentuan algoritma yang mana akan digunakan sebagai algoritma

pencarian string pada aplikasi kamus bahasa istilah komputer.

2. Menentukan Kriteria

Untuk dapat membandingakan keduab alternatif tersebut, makan

selanjutnya perlu dilakukan penentuan kriteria dalam menganalisa proses

dan cara kerjanya. Untuk kriterianya dapat dilihat pada tabel berikut :

Tabel 4.1 Penentuan Kriteria

Kriteria Keterangan

Besar memori yang digunakan Perhitungan pemakaian memori

saat melakukan pencarian terjadi pada saat algoritma

melakukan pencocokan string

Jumlah waktu yang digunakan Perhitungan waktu diperoleh pada

dalam melakukan pencarian saat algoritma melakukan


71

pencocokan string dari awal

pencocokan sampai selesai

3. Menentukan bobot kriteria

Penentuan bobot merupakan salah satu komponen yang sangat

berpengaruh terhadap nilai analisa, untuk itu menetapkan bobot kriteria

berdasarkan tingkatan pengaruh dalam menentukan kecepatan dalam

melakukan pencarian. Pembobotan kriteria dapat dilihat pada tabel

dibawah ini :

Tabel 4.2 Penentuan Bobot Kriteria

Kriteria Presentase Bobot Keterangan

Pengaruh Range

Kriteria (0-1)

Jumlah 50% 0,5 Tingkat pengaruh penggunaan

pemakaian memori sangat berpengaruh

memori dalam menentukan kecepatan

sebuah algoritma dalam

melakukan pencarian karena

semakin banyak kapasitas

memori yang digunakan saat

melakukan pencarian, maka

akan semakin lambat juga suatu

algoritma menyelesaikan
72

masalah.

Waktu yang 50% 0,5 Penelian terhadap waktu dalam

dibutuhkan melakukan proses pencarian

merupakan komponen yang

dapat memberikan suatu nilai

terhadap algoritma dalam

melakukan pencarian.

4. Pemberian nilai pada setiap kriteria

Pada kriteria yang telah dibentuk harus diberikan nilai. Nilai tersebut

dapat dilihat pada tabel dibawah ini yang dimana nilai berdasarkan

analisa algoritma KMP dan Boyer Moore menggunakan aplikasi

perbandingan algoritma yang peneliti buat.

Tabel 4.3 Pemberian Nilai Kriteria

Alternatif Proses Ke- Pattern Kriteria

Kapasitas Memori Jumlah

(byte) Waktu(Second)

Algortima 1 Kancil 145016 0,0054

KMP 2 2020 145016 0,0057

3 Informatika 145032 0,0055

4 Pendidikan 145032 0,006

5 Android 145016 0,0057


73

Algoritma 1 Kancil 141960 0,0028

Boyer Moore 2 2020 141960 0,0021

3 Informatika 141976 0,0031

4 Pendidikan 141976 0,0021

5 Android 141960 0,0031

5. Menghitung Nilai

Setelah melakukan pengisian nilai terhadap masing-masing kriteria,

makan proses berikutnya adalah melakukan perhitungan dengan

menggunakan rumus dari Metode Perbandingan Eksponensial (MPE).

Proses perhitungannya sebagai berikut :

Tabel 4.4 Menghitung Nilai Kriteria

Proses Kriteria Total Total

Ke - Jumlah Memori Jumlah Waktu Nilai Nilai

B KMP BM B KMP BM KMP BM

N N N N

1 0,5 145016 141960 0,5 0,0054 0,0028 380,88 376,83

2 0,5 145016 141960 0,5 0,0057 0,0021 380,89 376,82

3 0,5 145032 141976 0,5 0,0055 0,0031 380,9 376,85

4 0,5 145032 141976 0,5 0,006 0,0021 380,91 376,84

5 0,5 145016 141960 0,5 0,0057 0,0031 380,89 376,83


74

Keterangan :

1. B : Bobot

2. KMP : Knuth Morris Pratt

3. BM : Boyer Moore

4. N : Nilai Kriteria

5. Total Nilai : Σ ��

Langkah-langkah / proses perhitungan adalah sebagai berikut :

a. Proses perhitungan total nilai pada proses ke-1:

Nilai KMP = (145016)0,5 + (0,0054)0,5

= 380,81 + 0,07

= 380,88

Nilai BM = (141960)0,5 + (0,0028)0,5

= 376,78 + 0,05

= 376,83

b. Proses perhitungan total nilai pada proses ke-2 :

Nilai KMP = (145016)0,5 + (0,0057)0,5

= 380,81 + 0,08

= 380,89

Nilai BM = (141960)0,5 + (0,0021)0,5

= 376,78 + 0,05

= 376,83
75

c. Proses perhitungan total nilai pada proses ke-3 :

Nilai KMP = (145032)0,5 + (0,0055)0,5

= 380,83 + 0,07

= 380,9

Nilai BM = (141976)0,5 + (0,0031)0,5

= 376,8 + 0,06

= 376,86

d. Proses perhitungan total nilai pada proses ke-4 :

Nilai KMP = (145032)0,5 + (0,006)0,5

= 380,83 + 0,08

= 380,91

Nilai BM = (141976)0,5 + (0,0021)0,5

= 376,8 + 0,05

= 376,85

e. Proses perhitungan total nilai pada proses ke-5 :

Nilai KMP = (145016)0,5 + (0,0057)0,5

= 380,81 + 0,08

= 380,89

Nilai BM = (141960)0,5 + (0,0031)0,5

= 376,78 + 0,06

= 376,84
76

f. Proses perhitungan total nilai pada proses ke-6 :

Total Nilai KMP = 380,88 + 380,89 + 380,9 + 380,91 + 380,89

= 1904,47

Total Nilai BM = 376,83 + 376,83 + 376,86 + 376,85 + 376,84

= 1884,21

6. Menentukan Hasil Atau Prioritas Keputusan

Setelah diperoleh nilai akhir atau total nilai dari masing-masing alternatif,

maka tahapan selanjutnya yang dilakukan adalah menentukan prioritas

keputusan berdasarkan nilai dari masing-masing alternatif. Hasil

prioritas keputusan dapat dilihat pada tabel dibawah ini :

Tabel 4.5 Menentukan Hasil Keputusan

Alternatif Total Nilai Rangking

Algoritma Boyer Moore 1884,21 1

Algoritma Knuth Morris Pratt 1904,47 2

Berdasarkan hasil penentuan prioritas keputusan dapat dilihat bahwa

algoritma Boyer Moore memiliki rangking 1, artinya adalah algoritma

Boyer Moore yang lebih baik dari pada algoritma Knuth Morris Pratt.
77

7. Presentase Waktu Pencarian Algoritma KMP dan Boyer Moore

Gambar 4.15 Presentase Waktu Pencarian

Pada diagram pie chart diatas merupakan hasil dari semua total

penjumlahan penggunaan waktu dari algoritma KMP dan Boyer Moore,

dapat dilihat penggunaan waktu pada algoritma KMP lebih besar

sebanyak 68%, dibandingkan algoritma Boyer Moore yaitu 32%. Dari

hasil diagram pie chart diatas maka algoritma Boyer Moore lebih cepat

dari algoritma KMP.


78

8. Presentase Keakuratan dalam Pencarian Algoritma KMP dan Boyer

Moore

Gambar 4.16 Presentase Keakuratan Pencarian

4.4 Pengujian Sistem

Pengujian merupakan hal terpenting yang bertujuan untuk menemukan

kesalahan-kesalahan atau kekurangan-kekurangan pada perangkat lunak yang

akan diuji. Pengujian bermaksud mengetahui perangkat lunak yang sudah

memenuhi kriteria yang sesuai dengan tujuan perancangan lunak tersebut. Berikut

adalah hasil dari pengujian sistem dengan menggunakan pengujian Black-Box dan

White-Box.
79

4.4.1 Pengujian Sistem Black-Box

Tabel 4.6 Pengujian Sistem Black-Box

No Menu Skenario Harapan Hasil

1 Halaman Utama Klik tombol Informasi Mengakses Valid

Cara Penggunaan Informasi Cara

Penggunaan

2 Klik tombol Mengakses Valid

Knuth-Morris-Pratt halaman search

engine algoritma

Knuth Morris Pratt

3 Klik tombol Mengakses Valid

Boyer-Moore halaman search

engine algoritma

Boyer Moore

4 Klik tombol Cari Memulai Valid

melakukan

pencarian pada

search engine

5 Halaman Login Mengisi form login Mengakses Valid

dan klik tombol Login halaman dashboard

admin website

6 Halaman Admin Klik tombol tambah Mengakses form Valid


80

tambah katalog

buku dan

menyimpan serta

membatalkan data

inputan

7 Klik tombol Ubah Mengakses form Valid

ubah katalog buku

dan menyimpan

serta membatalkan

perubahan

terhadap data

8 Klik tombol Hapus Menghapus data Valid

katalog buku

9 Klik tombol Cari Memulai Valid

melakukan

pencarian pada

data katalog buku

10 Klik tombol Keluar Untuk keluar dari Valid

halaman

dashboard admin
BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan penelitian yang telah dilakukan, dapat disimpulkan bahwa :

1. Dengan adanya total nilai dari Metode Perbandingan Eksponesal (MPE)

yang telah dilakukan pada algoritma KMP dan Boyer Moore dengan

persentase penggunaan waktu pencarian algoritma Boyer Moore 32%

dengan rata-rata durasi pencarian 0,00264 detik dan algoritma KMP

68% dengan rata-rata durasi pencarian 0,00566 detik, Maka algoritma

Boyer Moore lebih cepat di bandingkan KMP. Pada tingkat keakuratan

dalam pencarian data algoritma Boyer Moore 51% dan KMP 49%, maka

algoritma Boyer Moore lebih akurat dibandingkan dengan algoritm

KMP.

2. Dari hasil analisa sistem berjalan yang telah dilakukan kebutuhan

aplikasi katalog buku pada Taman Baca Masyarakat Pesantrend Buku

memerlukan algoritma Boyer Moore yang diterapkan pada search

engine aplikasi untuk mendapatkan data-data yang akurat dan lebih cepat

saat melakukan pencarian pattern.

3. Dengan adanya sistem aplikasi katalog buku pada Taman Baca

Masyarakat Pesantrend Buku memudahkan petugas dan pengunjung

dalam mencari data katalog buku yang dibutuhkan.

81
82

5.2 Saran

Setelah memperhatikan hasil penelitian dan kesimpulan diatas, maka akan

dikemukakan beberapa saran yang sekiranya berguna dan dapat diterapkan pada

Taman Baca Masyarakat Pesantrend Buku untuk langkah-langkah selanjutnya.

Berikut ini beberapa hal yang kiranya yang menjadi bahan pertimbangan untuk

menyikapi masa yang akan datang:

1. Dalam menggunakan Metode Perbandingan Eksponensial (MPE)

disarankan algortima yang digunakan atau yang dibandingkan dapat

ditambahkan dengan algoritma-algoritma string matching lainnya.

2. Sistem aplikasi pencarian katalog buku dapat dikembangkan dengan

dibuat mobile application agar pengguna lebih mudah menggunakannya.

3. Diharapkan agar dapat menjadi referensi dan bahan pembelajaran untuk

melakukan penelitian dengan objek yang berbeda.


83

DAFTAR PUSTAKA

[1] Handrizal, Budiman, A., Ardani D. R. (2017). Implementation and


Analysis Zhu-Takaoka Algorithm and Knuth-Morris-Pratt Algorithm for
Dictionary of Computer Application Based on Android. International
Journal Of Information System & Technology, 8-21.

[2] Waruwu, F. T., Mandala R. (2016). Perbandingan Algoritma Knuth Morris


Pratt Dan Boyer Moore Dalam Pencocokan String Pada Aplikasi Kamus
Bahasa Nias. Jurnal Ilmiah INFOTEK.

[3] Fau, Alwin. (2017). Analisa Perbandingan Boyer Moore Dan Knuth
Morris Pratt Dalam Pencarian Judul Buku Menerapkan Metode
Perbandingan Eksponensial. STMIK Budi Darma.

[4] Vici & Indah. 2016. Perbandingan Algoritma Knuth Morris Pratt dan
Boyer Moore pada Aplikasi Kamus Bahasa Indonesia-Korea Berbasis
android. Medan: Universitas Sumatera Utara.

[5] Ardani, Desy Rahayu. (2017). Implementasi dan Analisis Algoritma


Zhu-Takaoka dan Algoritma Knuth-Morris-Pratt pada Aplikasi Kamus
Istilah Kesehatan Berbasis Android. Univsersitas Sumatera Utara

[6] Al-Bahra bin Ladjamudin. 2005. Analisis dan Desain Sistem Informasi.
Yogyakarta: Graha Ilmu.

[7] Bentley, Lonnie D & Whitten Jeffrey L. Systems Analysis and Design for
the Global Enterprise Seventh Edition International Edition. New York :
McGrawHill, 2007.

[8] Fathmi dan Adriati, 2004. Katalogisasi: Bahan Ajar Diklat Calon
Pustakawan Tingkat Ahli. Jakarta: Perpustakaan Nasional RI.

[9] Sulistyo, Basuki. 1991. Pengantar Ilmu Perpustakaan. Jakarta: Gramedia


84

Pustaka Utama.

[10] Betha, Sidik. 2012. Pemrograman Web dengan PHP. Bandung:


Informatika.

[11] Binarso, Y. A., dkk. (2012). Pembangunan Sistem Informasi Alumni


Berbasis Web Pada Program Studi Teknik Informatika Universitas
Diponegoro. Journal of Informatics and Technology, 72-84.

[12] Jogiyanto, Hartono. 2005. Analisis & Desain Sistem Informasi Pendekatan
Terstruktur Teori dan Praktek Aplikasi Bisnis. Andi. Yogyakarta.

[13] Shalahuddin, M., Rosa A.S. 2016. Rekayasa Perangkat Lunak (Terstruktur
dan Berorientasi Objek) Cetakan Keempat. Bandung: Informatika
Bandung.

[14] Shalahuddin, M., Rosa A.S. 2013. Rekayasa Perangkat Lunak. Bandung:
Informatika. Bandung: Informatika Bandung.

[15] Borman, R. I., Helmi F. (2018). Penerapan Metode Perbandingan


Eksponensial (MPE) Dalam Sistem Pendukung Keputusan Penerima
Beasiswa Siswa Berprestasi Pada SMK XYZ. CESS (Journal of Computer
Engineering System and Science.
85

Lampiran 1 Kartu Pengendali Bimbingan Skripsi I

KARTU KENDALI BIMBINGAN SKRIPSI

Nama : Zaky Ali Husaeni


NIM : 311610044
Program Studi : Teknik Informatika
Dosen Pembimbing : Ahmad Turmudi Zy, S.Kom., M.Kom.
Judul Kerja Praktik : Rancang Bangun Aplikasi Perbandingan Algoritma
Knuth-Morris-Pratt dan Boyer Moore Pada Pencarian
Katalog Buku (Studi Kasus: Taman Baca Masyarakat
Pesantrend Buku Cikarang)

Tanggal Konsultasi Sub Pokok Bahasan Saran

07/11/2020 Konsultasi bimbingan awal

23/11/2020 Pengajuan Bab 1, 2 dan 3

04/12/2020 Laporan progres bab 3

06/12/2020 Konsultasi progres skripsi

08/12/2020 Laporan pembuatan sistem

10/12/2020 Laporan hasil sistem dan bab 4

13/12/2020 Laporan skripsi keseluruhan

Mengetahui,
Dosen Pembimbing I

Ahmad Turmudi Zy, S.Kom., M.Kom.


NIDN. 0408087907
86

Lampiran 2 Kartu Pengendali Bimbingan Skripsi II

KARTU KENDALI BIMBINGAN SKRIPSI

Nama : Zaky Ali Husaeni


NIM : 311610044
Program Studi : Teknik Informatika
Dosen Pembimbing : Nurhadi Surojudin, S.Kom., M.Kom.
Judul Kerja Praktik : Rancang Bangun Aplikasi Perbandingan Algoritma
Knuth-Morris-Pratt dan Boyer Moore Pada Pencarian
Katalog Buku (Studi Kasus: Taman Baca Masyarakat
Pesantrend Buku Cikarang)

Tanggal Konsultasi Sub Pokok Bahasan Saran

13/12/2020 Laporan skripsi keseluruhan

13/12/2020 Perbaikan tata cara penulisan

Mengetahui,
Dosen Pembimbing II

Nurhadi Surojudin, S.Kom., M.Kom.


NIDN. 0402118105
87

Lampiran 3 Surat Keterangan Penelitian


88

Lampiran 4 List Full Coding database.sql

-- phpMyAdmin SQL Dump


-- version 4.5.0.2
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 12 Des 2020 pada 13.17
-- Versi Server: 10.0.17-MariaDB
-- PHP Version: 5.6.14

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";


SET time_zone = "+00:00";

/*!40101 SET
@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET
@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS
*/;
/*!40101 SET
@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
-- Database: `compairing`
-- Struktur dari tabel `katalog`
--

CREATE TABLE `katalog` (


`isbn` char(20) NOT NULL,
`judul` char(50) NOT NULL,
`pengarang` char(80) NOT NULL,
`penerbit` char(30) NOT NULL,
89

`ukuran_halaman` char(25) NOT NULL,


`edisi_cetakan` char(10) NOT NULL,
`tahun_terbit` char(4) NOT NULL,
`letak_buku` char(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `katalog`

INSERT INTO `katalog` (`isbn`, `judul`, `pengarang`, `penerbit`,


`ukuran_halaman`, `edisi_cetakan`, `tahun_terbit`, `letak_buku`) VALUES
('602-18650-4-0', 'Kebijakan Fiskal & Pengelolaan Pajak di Indonesia', 'DR Edi
Selamet', 'Aswaja Pressindo', '-', 'I, 1st', '2015', 'R3-B2-S3'),
('602-18650-5-7', 'Kamus Bahasa Jawa Sansekerta', 'Agvenda Wibowo', 'Aswaja
Pressindo', '-', 'I. 1st', '2015', 'R3-B1-S1'),
('602-1866-10-8', 'Fundraising Taman Bacaan Masyarakat', 'Muksin Kalida',
'Aswaja Pressindo', '14.5 x 21 cm / viii+96 Ha', 'I, 3rd', '2015', 'R1-B1-S1'),
('602-18662-3-8', 'Konstruksi Alat - Alat Bimbingan Konseling', 'Mukhiar',
'Aswaja Pressindo', '15.5 x 23 cm / viii+174 h', 'I, 1st', '2015', 'R3-B1-S3'),
('602-18663-6-8', 'Kamus Bahasa Inggris Disertai : Rregular & Irregul',
'Muhammad Abdu Syakur Alaa & Putri Amanda Karimatullah', 'Aswaja
Pressindo', '14.5 x 21 cm / 544 Hal', 'I, 1st', '2015', 'R3-B3-S1'),
('602-18664-0-5', 'Dinamika Hukum Parate Executie: Obyek Hak Tanggung',
'Herowati Poesoko', 'Aswaja Pressindo', '15.5 x 23 cm / 323Hal', 'I/1st', '2015',
'R2-B3-S3'),
('602-18665-4-2', 'Hukum Waris Islam di Indonesia', 'Dr. H. A. Sukris Sarmadi',
'Aswaja Pressindo', '14.5 x 21 cm / vi+156 hal', 'I. 1st', '2015', 'R3-B2-S3'),
('602-6370-31-0', 'Melampaui Positivisme Hukum Negara', 'Mahrus Ali', 'Aswaja
Pressindo', '15.5 x 23 cm / vi+142 Hal', 'I, 1st', '2015', 'R1-B3-S1'),
('602-6370-37-2', 'Model Pembelajaran Berbasis Kognitif Moral Dari Te',
'Sarbaini', 'Aswaja Pressindo', '14.5 x 21 cm / x+160 Hal', 'I, 1st', '2015',
90

'R3-B2-S3'),
('602-6370-56-3', 'Memahami Ilmu Pendidikan', 'Arif Rohman', 'Aswaja
Pressindo', '14.5 x 21 cm / xx+228 hal', 'I, 1st', '2017', 'R1-B2-S1'),
('602-7762-16-9', 'Menelusuri Kesultanan Tanah Jawa', 'DR HA Sukris S',
'Aswaja Pressindo', '-', 'I, 1st', '2015', 'R2-B3-S2'),
('602-7762-19-0', 'Bahasa Indonesia untuk Mahasiswa', 'Dr.H. Zulkifli Musaba,
M.Pd', 'Aswaja Pressindo', '14.5 x 21 cm / viii+122', 'I, 1st', '2015', 'R1-B2-S1'),
('602-7762-29-9', 'Managemen Berbasis Syariah', 'PROF DR H M Maruf
Abdullah', 'Aswaja Pressindo', '14.5 x 21 cm / xxviii+382', 'I, 1st', '2015',
'R1-B3-S1'),
('602-7762-46-6', 'Media Pembelajaran Bahasa Arab', 'M.Khalilullah.S.Ag.M.A',
'Aswaja Pressindo', '15.5 x 23 cm / viii+150 H', 'I, 1st', '2015', 'R1-B2-S1'),
('602-7762-55-8', 'Kiat Sukses meningkatkan Sales & Insentif Medical', 'Fikri C
Wardana', 'Aswaja Pressindo', '15.5 x 23 cm / x+128 Hal', 'I, 1st', '2015',
'R1-B3-S2'),
('602-7762-56-5', 'Kiat Sukses Mensupervisi Medical Reps', 'Fikri C Wardana',
'Aswaja Pressindo', '15.5 x 23 cm / xii+170 Ha', 'I, 1st', '2015', 'R2-B3-S1'),
('602-7762-63-3', 'Ganyang Malaysia!Kenapa Tidak Ampuh Lagi?', 'Moh.
Zahirul Alim', 'Aswaja Pressindo', '15.5 x 23 cm / viii+158 H', '3rd', '2015',
'R2-B3-S3'),
('602-7762-71-8', 'Hukum Persaingan Usaha', 'Galuh Puspaningrum', 'Aswaja
Pressindo', '15.5 x 23 cm / x+174 Hal', 'I, 1st', '2015', 'R3-B3-S1'),
('602-7762-81-7', 'Hukum Pidana Di Bidang Teknologi Informasi', 'PROF
Widodo', 'Aswaja Pressindo', '15.5 x 23 cm / xvi+260 Ha', 'I, 1st', '2015',
'R1-B2-S3'),
('602-7762-82-4', 'Jordan Dulu Anak Yang Selalu Kalah', 'Yusron Aminullah',
'Aswaja Pressindo', '15 x 15 cm / xviii+88 Hal', 'I, 1st', '2015', 'R1-B1-S1'),
('602-7762-83-1', 'Membumikan Hukum Progresif', 'Mahrus Ali', 'Aswaja
Pressindo', '15.5 x 23 cm / xiv+152 Ha', 'I, 1st', '2015', 'R1-B1-S3'),
('602-7762-84-8', 'Hukum Pelayanan Publik Di Indonesia', 'Husni Thamrin',
'Aswaja Pressindo', '16 x 24 cm / vi+154 Hal', 'I, 2nd', '2015', 'R2-B1-S3'),
91

('6027762947', 'Aspek Hukum Pidana Kejahatan Mayantara', 'Prof Widodo',


'Aswaja Pressindo', '15.5 x 23 cm / xvi+234', 'I, 1st', '2015', 'R1-B2-S1'),
('978-602-1090-47-3', 'intisari Ilmu Balaghah', 'Syaikh Harish Alaikum bin
Dimyathi bin Abdullah bin Abdul Manan al-Tarmasiy', 'Lentera Group', '16 x 24 /
xiv + 409', 'I, 1st', '2016', 'R3-B3-S1'),
('978-602-1090-52-7', 'Menjaga Umat', 'Dr.Mukodi. M.S.I.', 'Lentera Group', '16 x
24 / xxii + 322', 'I, 1st', '2015', 'R3-B3-S3'),
('978-602-1090-77-0', 'Kebijakan Pendidikan Dalam Pengembangan Institusi',
'Dr.Maryono, M.M', 'Lentera Group', '14,5 x 20,5 / vi + 226', 'I, 1st', '2016',
'R3-B3-S3'),
('978-602-1090-96-1', 'Bertemu Cucu Nabi Dan Wali', 'Muhsinin', 'Lentera
Group', '16 x 24 / xvi + 304', 'I, 1st', '2016', 'R1-B1-S1'),
('978-602-1090-98-5', 'Desain Pembelajaran Dalam Transformasi Pendidikan',
'Dr.Sutikno, MM', 'Lentera Group', '14,5 x 20,5 / xvi + 238', 'I, 1st', '2016',
'R1-B2-S1'),
('978-602-109049-7', 'Pendidikan Samin Surisentiko', 'Dr.Mukodi. M.S.I , Afid
Burhanuddin. M.Pd.', 'Lentera Group', '14,5 x 21 / xiv + 121', 'I, 1st', '2015',
'R3-B3-S3'),
('978-602-51017-9-3', 'Kyai Tanpa Pesantren', 'Imam Sibawaih El-Hasany',
'Lentera Group', '14 x 20,5 / xvi + 304', 'I, 1st', '2019', 'R2-B3-S3'),
('978-602-5562-29-', 'Asas-Asas Hukum Agraria', 'M. Roesli', 'Intelegensia
Media', '15,5 x 23 / x + 124', '-', '2018', 'R1-B2-S1'),
('978-602-60400-0-8', 'Gadis Di Rinai Hujan', 'Selvia Deby, dkk', 'Lentera Group',
'13 x 19 / xviii + 270', 'I, 1st', '2016', 'R1-B3-S1'),
('978-602-60978-9-7', 'Kritik Teks Hadis', 'Dr.Salamah Noorhidayati.M.Ag',
'Lentera Group', '16 x 24 / xiv + 126', 'I, 1st', '2017', 'R1-B3-S3'),
('978-602-61507-8-3', 'Nilai Toleransi Dalam Dakwah Nabi Muhammad SAW;
Me', 'Jamal Ghofir, S.Sos.I., MA', 'Lentera Group', '14,5 x 20,5 / xxii + 194', 'I,
1st', '2017', 'R3-B1-S3'),
('978-602-6370-30-3', 'Kebijakan Pendidikan', 'Arif Rohman', 'Aswaja Pressindo',
'15.5 x 23 cm / xii+178 Ha', 'I, 1st', '2015', 'R1-B1-S3'),
92

('978-602-73152', 'Bahasa Indonesia Di Perguruan Tinggi', 'Ngalimun Syahroni',


'Aswaja Pressindo', '15.5 x 23 cm / viii+184', '-', '2015', 'R1-B2-S1'),
('978-602-7762-53-4', 'Ilmu Sosial & Budaya Dasar', 'DR M Rafiek', 'Aswaja
Pressindo', '15.5 x 23 cm / viii+136 H', 'I 1st', '2015', 'R2-B1-S3'),
('978-602-9864-30-4', 'Pedoman Penulisan Karya Ilmiah', 'Prof.Dr.Hj.Juairiah,
M.Pd , Ngalimun, M.Pd', 'Lentera Group', '14,5 x 20,5 / viii + 224', 'I, 1st', '2015',
'R3-B2-S3'),
('978-602-9969-26-9', 'Piagam Madinah', 'Jamal Ghofir, S.Sos.I., MA', 'Lentera
Group', '13 x 17,5 / xxxviii + 489', 'I, 1st', '2012', 'R3-B3-S2'),
('978-602-9969-53-5', 'Ilmu Pendidikan Islam', 'Ali Mufron , S.Pd.I.,M.Pd.I',
'Lentera Group', '14,5 x 20,5 / xiv + 214', 'I, 1st', '2015', 'R2-B3-S1'),
('978-602-9969-88-7', 'Islam Dan Pluralisme Agama', 'Dr. Ngainun Naim',
'Lentera Group', '16 x 24 / xiv + 253', 'I, 1st', '2015', 'R3-B3-S2'),
('978-623-01-0153-', 'Ensiklopedia Teknologi Komputer', 'Madcoms', 'Andi
Publisher', '20x25 cm² ⁄ viii+272', 'I, 1st', '2019', 'R2-B2-S1'),
('978-623-90249', 'Catatan Perempuan Revolusioner', 'Clara Zetkin', 'CV. Istana
Agency', '13 x 19 / viii +130', '-', '2019', 'R3-B2-S1'),
('978-979-29-6094-', 'Pemrograman Android Dengan Android Studio Ide', 'Seng
Hansun, Marcel Bonar Kristanda Dan Michael Wijaya Saputra', 'Andi Publisher',
'20x28 cm² ⁄ xxxiv+350', 'I, 1st', '2018', 'R1-B2-S1'),
('9786020486628', '7 in 1 Pemrograman Web Tingkat Lanjut', 'Rohi Abdulloh', '
Elex Media Komputindo', '14 x 21 / 336', 'I, 2nd', '2018', 'R3-B2-S3'),
('9786020486727', 'Otodidak MS Excel untuk Mengelola Data', 'Jubilee
Enterprise', ' Elex Media Komputindo', '21 x 14 / 204', 'I, 2nd', '2019', 'R3-B2-S3'),
('9786021286920', 'Menulis Karya Tulis Ilmiah Dengan Komputer', 'Wing Wahyu
Winarno', ' Upp Stim Ykpn', '19.0 x 24.5 / 306.0', 'I, 1st', '2019', 'R3-B1-S3'),
('9786230101441', 'Proses Manufaktur Plastik Dan Komposit - Edisi Rev', 'Indra
Mawardi, Hasrin Lubis', ' Andi Offset', '23.0 x 16.0 / 144.0', 'I, 2nd', '2019',
'R3-B1-S3'),
('9786230101984', 'Matlab Untuk Pembelajaran Dan Riset Sinyal Digital', 'R.h.
Sianipar', ' Andi Offset', '16.0 x 23.0 / 362.0', 'I, 1st', '2019', 'R3-B3-S1'),
93

('9786230102127', 'Komputer Grafis, Belajar Elemen Dasar Grafis Menja', 'Tonny


Hidayat', ' Andi Offset', '16.0 x 23.0 / 144.0', 'I, 2nd', '2019', 'R3-B1-S3'),
('9786230102912', 'Microsoft Excel 2019 Untuk Pemula', 'Madcoms', ' Andi
Offset', '16.0 x 23.0 / 292.0', 'I, 1st', '2019', 'R1-B1-S1'),
('9786237131168', 'Membangun Aplikasi Android Web Dan Web Service +Dv',
'Eko Budi Setiawan, S.Kom, M.T & Angga Try Ramdany, S.Kom', ' Informatika',
'16.0 x 24.0 / 262.0', 'I, 1st', '2020', 'R3-B3-S1'),
('9786237131236', 'Menguasai Pemrograman Berorientasi Objek +Cd', 'Ade
Rahmat Iskandar', ' Informatika', '16.0 x 24.0 / 462.0', 'I. 1st', '2020', 'R3-B3-S2'),
('9786237131243', 'Aplikasi Smart Report +Dvd', 'Nazruddin Safaat H', '
Informatika', '16.0 x 24.0 / 512.0', 'I, 1st', '2020', 'R3-B1-S3'),
('9786237131250', 'Social Media Dan Social Network', 'I Putu Agus Eka Pratama',
' Informatika', '16.0 x 24.0 / 440.0', 'I, 1st', '2020', 'R3-B3-S3'),
('9786237137344', 'Potensi Transfer Embrio Kerbau Di Indonesia', 'Tinda Afriani,
Dkk', ' Indomedia Pustaka', '17.0 x 24.0 /100.0', 'I, 1st', '2019', 'R2-B3-S3'),
('9786237137382', 'Mikrokontroler Dspic', 'RACHMAD SETIAWAN', '
Indomedia Pustaka', '17.0 x 24.0 / 348.0', 'I, 2nd', '2019', 'R1-B1-S1'),
('9789792972436', 'Dasar Pemrograman Robot Menggunakan Arduino+cd',
'Abdul Kadir', 'Andi Publisher', '19x23 cm² ⁄ xiv+370', 'I, 1st', '2019',
'R2-B2-S1'),
('979-9991-01-3', 'Dekonstruksi Hukum Progresif Ahli Waris Pengganti', 'Dr.H.
Ahmad Sukris S,S.Ag.MH', 'Aswaja Pressindo', '14.5 x 21 cm / xviii+314', 'I/2nd',
'2015', 'R2B2S2'),
('9932-4432-4433-2', 'Si Kancil Si Cerdik', 'Bandawi', 'Wahana Publisher', '20x25
/ viii+98', 'I, 1st', '2017', 'R2-B1-S3');

-- Struktur dari tabel `user`

CREATE TABLE `user` (


`username` char(50) NOT NULL,
`password` char(100) NOT NULL
94

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- Dumping data untuk tabel `user`

INSERT INTO `user` (`username`, `password`) VALUES


('zaky', 'e10adc3949ba59abbe56e057f20f883e'),
('admin', '21232f297a57a5a743894a0e4a801fc3'),
('ali', '21232f297a57a5a743894a0e4a801fc3');
-- Indexes for dumped tables
-- Indexes for table `katalog`
--
ALTER TABLE `katalog`
ADD PRIMARY KEY (`isbn`);

/*!40101 SET
CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET
CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET
COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
95

Lampiran 5 List Full Coding koneksi.php

<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbName = "compairing";

//create connection
$conn = mysqli_connect($servername,$username,$password,$dbName);

//Memasukan Data Katalog


function
inputDataKatalog($conn,$isbn,$judul,$pengarang,$penerbit,$ukuran_halaman,$e
disi_cetakan,$tahun_terbit,$letak_buku){
$sql = "INSERT INTO katalog values
('$isbn','$judul','$pengarang','$penerbit','$ukuran_halaman','$edisi_cetakan','$tahu
n_terbit','$letak_buku')";
$result = mysqli_query($conn,$sql);
}

//Memasukan Data User


function inputDataUser($conn,$username,$password){
$sql = "INSERT INTO katalog values ('$username','$password')";
$result = mysqli_query($conn,$sql);
}
?>
96

Lampiran 6 List Full Coding index.php

<?php
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
?>
<?php
$c = mysql_connect("localhost", "root", "");
$db = mysql_selectdb("compairing", $c);

if(!$db){
echo "Purcase DB! :p";
exit();
}

include_once("kmp.php");
$kata = '';
if(isset($_GET['kata']))
$kata = $_GET['kata'];
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 4);

?>

<!--Author: W3layouts
Author URL: http://w3layouts.com
97

License: Creative Commons Attribution 3.0 Unported


License URL: http://creativecommons.org/licenses/by/3.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Aplikasi Katalog Buku</title>
<!-- Custom Theme files -->
<link href="css/style.css" rel="stylesheet" type="text/css" media="all"/>
<link rel="stylesheet" type="text/css" href="assets/css/style.css">
<link rel="stylesheet" href="assets/bootstrap-4.0.0/css/bootstrap.min.css">
<link rel="stylesheet"
href="assets/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="assets/bootstrap-4.0.0/js/jquery.min.js"></script>
<script src="assets/bootstrap-4.0.0/js/bootstrap.min.js"></script>
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/ajax.js"></script>
<script src="assets/js/script.js"></script>
<!-- Custom Theme files -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Flat Search Box Responsive, Login form web
template, Sign up Web Templates, Flat Web Templates, Login signup Responsive
web template, Smartphone Compatible web template, free webdesigns for Nokia,
Samsung, LG, SonyErricsson, Motorola web design" />
<!--Google Fonts-->
<link
href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600it
alic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
98

<!--Google Fonts-->
</head>
<body>
<div class="topnav">
<br>
<a href="index.php" style="color: aliceblue;padding-left: 55px;">Algortima
Knuth-Mrotis-Pratt</a>
<a href="inbm.php" style="color: aliceblue;padding-left: 30px;">Algortima
Boyer-Moore</a>
<a href="cara_penggunaan.php" style="color: aliceblue;padding-right: 30px;
float: right;">Cara Penggunaan</a>
<hr style="color: #8EDB15;">
</div>

<!--search start here-->


<div class="search">
<?php
if($kata!=''){
echo "<h3 style='font-size: 22px;color: aliceblue;'> <span
style='background-color:#000000ad;'>Hasil Pengecakan Testing: ".$total_time."
detik</span></h3>";
echo "<h3 style='font-size: 22px;color: aliceblue;'> <span
style='background-color:#000000ad;'>Memory yang digunakan:
".memory_get_usage()." bytes \n </span></h3>";
echo " <a href='index.php'><button type='button'>Refresh
Testing</button></a>";
}
?>
<div class="s-bar">
<form method="get" action="">
<input type="text" name="kata" value="<?php echo $kata; ?>"
99

onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Cari';}">


<input type="submit" class="sbm" value="Cari"/>

<table class="table table-hover table-bordered" style="margin-top: 30px; ">


<thead>
<tr align="center" style="font-weight: bold; background-color:
#007361 !important; color: #fff !important;">
<th>JUDUL</th>
<th>ISBN</th>
<th>PENGARANG</th>
<th>PENERBIT</th>
<th>UKURAN/HALAMAN</th>
<th>EDISI/CETAKAN</th>
<th>TAHUN TERBIT</th>
<th>LETAK</th>
</tr>

<?php
$KMP = new KMP();

$art = mysql_query("SELECT * from katalog where isbn LIKE '%$kata%'


OR judul LIKE '%$kata%' OR pengarang LIKE '%$kata%' OR penerbit LIKE
'%$kata%' OR ukuran_halaman LIKE '%$kata%' OR edisi_cetakan LIKE
'%$kata%' OR tahun_terbit LIKE '%$kata%' OR letak_buku LIKE '%$kata%' ");
while($teks = mysql_fetch_array($art)){
if($kata!=''){
$hasil = $KMP->KMPSearch($kata,$teks['judul']);
echo "<div>";
// echo nl2br(str_replace($kata,"<font
color='white'>".$kata."</font>",$teks['judul'].$teks['isbn'].$teks['pengarang'].$tek
s['penerbit'].$teks['ukuran_halaman'].$teks['edisi_cetakan'].$teks['tahun_terbit'].$t
100

eks['letak_buku']));
// echo "<h3 style='text-align: left;color: #fafefd;font-size:
13px;'>"."</h3><hr/>";

echo nl2br(str_replace($kata,"<font
color='#f00;'><b><u>".$kata."</u></b></font>","<tr style='background-color:
#ffffffb3;'>"."<td>".$teks['judul']."</td>"."<td>".$teks['isbn']."</td>"."<td>".$tek
s['pengarang']."</td>"."<td>".$teks['penerbit']."</td>"."<td>".$teks['ukuran_hala
man']."</td>"."<td>".$teks['edisi_cetakan']."</td>"."<td>".$teks['tahun_terbit']."<
/td>"."<td>".$teks['letak_buku']."</td>"."</tr>"));

echo "</div>";

}
}

?>

</thead>
</table>
</form>
</div>

</div>
<!--search end here-->
<div class="copyright">
<p>Created By Zaky Ali Husaeni</a></p>
</div>
101

</body>
</html>
102

Lampiran 7 List Full Coding kmp.php

<?php
// Knuth-Morris-Pratt Algorithm
// Created March 31, 2010 - 07:10:33 WIB
// Modified (again) April 13, 2013 - 06:43:54 WIB
class KMP{
/* pencarian KMP
* input :
* $p = (string) pattern;
* $t = (string) teks;
* output :
* $hasil = (array int) posisi string pada teks
*/
function KMPSearch($p,$t){
$hasil = array();
// pattern dan text dijadikan array
$pattern = str_split($p);
$text = str_split($t);

// hitung tabel lompatan dengan preKMP()


$lompat = $this->preKMP($pattern);
//print_r($lompat);

// perhitungan KMP
$i = $j = 0;
$num=0;
while($j<count($text)){
if(isset($pattern[$i]) && isset($lompat[$i])){
while($i>-1 && $pattern[$i]!=$text[$j]){
// jika tidak cocok, maka lompat sesuai tabel lompatan
103

$i = $lompat[$i];
}
}else{
$i = 0;
}

$i++;
$j++;
if($i>=count($pattern)){
// jika cocok, tentukan posisi string yang cocok
// kemudian lompat ke string berikutnya
$hasil[$num++]=$j-count($pattern);
if(isset($lompat[$i])){
$i = $lompat[$i];
}
}
}
return $hasil;
}

/* menetukan tabel lompatan dengan preKMP


* input :
* $pattern = (string) pattern
* output :
* $lompat = (array int) untuk jumlah lompatan
*/
function preKMP($pattern){
$i = 0;
$j = $lompat[0] = -1;
while($i<count($pattern)){
while($j>-1 && $pattern[$i]!=$pattern[$j]){
104

$j = $lompat[$j];
}
$i++;
$j++;
if(isset($pattern[$i])&&isset($pattern[$j])){
if($pattern[$i]==$pattern[$j]){
$lompat[$i]=$lompat[$j];
}else{
$lompat[$i]=$j;
}
}
}
return $lompat;
}

/* replace string
* input :
* $str1 = (array string) string yang akan diganti dengan str2
* $str2 = (array string) string yang akan mengganti str1
* $text = (string) text yang akan dicari
* output :
* $t = teks yang sudah difilter
*/
function KMPReplace($str1,$str2,$text){
$num = 0;
$location = $this->KMPSearch($str1,$text);
$t = '';
$n = 0; $nn = 0;
foreach($location as $in){
$t .= substr($text,$n+$nn,$in-$n-$nn).$str2;
$nn = strlen($str1);
105

$n = $in;
}
$t .= substr($text,$n+$nn);
return $t;
}
}
?>
106

Lampiran 8 List Full Coding inbm.php

<?php
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
?>
<?php
$c = mysql_connect("localhost", "root", "");
$db = mysql_selectdb("compairing", $c);

if(!$db){
echo "Purcase DB! :p";
exit();
}

include_once("boyer.php");
$kata = '';
if(isset($_GET['kata']))
$kata = $_GET['kata'];
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 4);

?>

<!--Author: W3layouts
Author URL: http://w3layouts.com
107

License: Creative Commons Attribution 3.0 Unported


License URL: http://creativecommons.org/licenses/by/3.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Aplikasi Katalog Buku</title>
<!-- Custom Theme files -->
<link href="css/style.css" rel="stylesheet" type="text/css" media="all"/>
<link rel="stylesheet" type="text/css" href="assets/css/style.css">
<link rel="stylesheet" href="assets/bootstrap-4.0.0/css/bootstrap.min.css">
<link rel="stylesheet"
href="assets/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="assets/bootstrap-4.0.0/js/jquery.min.js"></script>
<script src="assets/bootstrap-4.0.0/js/bootstrap.min.js"></script>
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/ajax.js"></script>
<script src="assets/js/script.js"></script>
<!-- Custom Theme files -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Flat Search Box Responsive, Login form web
template, Sign up Web Templates, Flat Web Templates, Login signup Responsive
web template, Smartphone Compatible web template, free webdesigns for Nokia,
Samsung, LG, SonyErricsson, Motorola web design" />
<!--Google Fonts-->
<link
href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600it
alic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
108

<!--Google Fonts-->
</head>
<body>
<div class="topnav">
<br>
<a href="Index.php" style="color: aliceblue;padding-left: 55px;">Algortima
Knuth-Mrotis-Pratt</a>
<a href="inbm.php" style="color: aliceblue;padding-left: 30px;">Algortima
Boyer-Moore</a>
<a href="cara_penggunaan.php" style="color: aliceblue; padding-right: 30px;
float: right;">Cara Penggunaan</a>
<hr style="color: #8EDB15;">
</div>

<!--search start here-->


<div class="search">
<?php
if($kata!=''){
echo "<h3 style='font-size: 22px;color: aliceblue;'> <span
style='background-color:#000000ad;'>Hasil Pengecakan Testing: ".$total_time."
detik</span></h3>";
echo "<h3 style='font-size: 22px;color: aliceblue;'> <span
style='background-color:#000000ad;'>Memory yang digunakan:
".memory_get_usage()." bytes \n </span></h3>";
echo " <a href='index.php'><button type='button'>Refresh
Testing</button></a>";
}
?>
<div class="s-bar">
<form method="get" action="">
<input type="text" name="kata" value="<?php echo $kata; ?>"
109

onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Cari';}">


<input type="submit" class="sbm" value="Cari"/>

<table class="table table-hover table-bordered" style="margin-top: 30px; ">


<thead>
<tr align="center" style="font-weight: bold; background-color:
#007361; color: #fff;">
<th>JUDUL</th>
<th>ISBN</th>
<th>PENGARANG</th>
<th>PENERBIT</th>
<th>UKURAN/HALAMAN</th>
<th>EDISI/CETAKAN</th>
<th>TAHUN TERBIT</th>
<th>LETAK</th>
</tr>
<?php
$Boyer = new Boyer();

$art = mysql_query("SELECT * from katalog where isbn LIKE '%$kata%'


OR judul LIKE '%$kata%' OR pengarang LIKE '%$kata%' OR penerbit LIKE
'%$kata%' OR ukuran_halaman LIKE '%$kata%' OR edisi_cetakan LIKE
'%$kata%' OR tahun_terbit LIKE '%$kata%' OR letak_buku LIKE '%$kata%' ");
while($teks = mysql_fetch_array($art)){
if($kata!=''){
$hasil = $Boyer->BoyerMoore($kata,$teks['judul']);

echo "<div style='width:600px;'>";


echo nl2br(str_replace($kata,"<font
color='#f00;'><b><u>".$kata."</u></b></font>","<tr style='background-color:
110

#ffffffb3;'><td>".$teks['judul']."</td>"."<td>".$teks['isbn']."</td>"."<td>".$teks['
pengarang']."</td>"."<td>".$teks['penerbit']."</td>"."<td>".$teks['ukuran_halama
n']."</td>"."<td>".$teks['edisi_cetakan']."</td>"."<td>".$teks['tahun_terbit']."</td
>"."<td>".$teks['letak_buku']."</td>"."</tr>"));
echo "</div>";
}
}

?>
</thead>
</table>
</form>
</div>
</div>
<!--search end here-->
<div class="copyright">
<p>Created By Zaky Ali Husaeni</a></p>
</div>

</body>
</html>
111

Lampiran 9 List Full Coding cara_penggunaan.php

<!DOCTYPE HTML>
<html>
<head>
<title>Aplikasi Katalog Buku</title>
<!-- Custom Theme files -->
<link href="css/style.css" rel="stylesheet" type="text/css" media="all"/>
<link rel="stylesheet" type="text/css" href="assets/css/style.css">
<link rel="stylesheet" href="assets/bootstrap-4.0.0/css/bootstrap.min.css">
<link rel="stylesheet"
href="assets/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="assets/bootstrap-4.0.0/js/jquery.min.js"></script>
<script src="assets/bootstrap-4.0.0/js/bootstrap.min.js"></script>
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/ajax.js"></script>
<script src="assets/js/script.js"></script>
<!-- Custom Theme files -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Flat Search Box Responsive, Login form web
template, Sign up Web Templates, Flat Web Templates, Login signup Responsive
web template, Smartphone Compatible web template, free webdesigns for Nokia,
Samsung, LG, SonyErricsson, Motorola web design" />
<!--Google Fonts-->
<link
href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600it
alic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
<!--Google Fonts-->
112

</head>
<body>
<div class="topnav">
<br>
<a href="index.php" style="color: aliceblue;padding-left: 55px;">Algortima
Knuth-Mrotis-Pratt</a>
<a href="inbm.php" style="color: aliceblue;padding-left: 30px;">Algortima
Boyer-Moore</a>
<a href="cara_penggunaan.php" style="color: aliceblue;padding-right: 30px;
float: right;">Cara Penggunaan</a>
<hr style="color: #8EDB15;">
</div>

<div style="background-color: #ffffff8a; margin: 57px 400px 6px 400px;


padding: 25px;">
<h2 style="margin-bottom: 30px; text-align: center;">Cara Penggunaan</h2>
<ul>
<li><p>> Pilih jenis algoritma yang digunakan pada navbar</p></li>
<li><p>> Kemudian ketik kata kunci yang dicari pada kolom
pencarian</p></li>
<li><p>> Lalu tekan tombol Cari untuk menampilkan hasil
pencarian</p></li>
</ul>
</div>
<div class="copyright">
<p>Created By Zaky Ali Husaeni</a></p>
</div>
</body>
</html>
113

Lampiran 10 List Full Coding admin/index.php

<?php
session_start();
if($_SESSION['login']!=1){
header("location:login.php");
}

require_once '../koneksi.php';

if(isset($_GET['page'])){
$page=$_GET['page'];
}else{
$page="data_katalog.php";
}

?>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no">
<link rel="stylesheet" type="text/css" href="../assets/css/style.css">
<link rel="stylesheet" href="../assets/bootstrap-4.0.0/css/bootstrap.min.css">
<script src="../assets/bootstrap-4.0.0/js/jquery.min.js"></script>
<script src="../assets/bootstrap-4.0.0/js/bootstrap.min.js"></script>
<script src="../assets/js/jquery.min.js"></script>
<script src="../assets/js/ajax.js"></script>
114

<link rel="stylesheet"
href="../assets/font-awesome-4.7.0/css/font-awesome.min.css" />
<title>Admin</title>
</head>
<body style="background-color: #dddddd;">

<!-- INI ADALAH CONTAINER -->


<div class="container" style="background-color: #F5F5F5;">
<!-- INI ADALAH HEADER -->
<div>
<?php include "header.php"; ?>
</div>
<!-- INI ADALAH MENU NAVIGASI -->
<div>
<?php include "navbar.php"; ?>
</div>
<!-- INI ADALAH ISI PERHALAMAN -->
<div>
<?php include_once $page; ?>
</div>
<!-- INI ADALAH FOOTER -->
<div>
<?php include "footer.php"; ?>
</div>
</div>
</body>
</html>
115

Lampiran 11 List Full Coding login.php

<link rel="stylesheet" href="../assets/bootstrap-4.0.0/css/bootstrap.min.css">


<script src="../assets/bootstrap-4.0.0/js/jquery.min.js"></script>
<script src="../assets/bootstrap-4.0.0/js/bootstrap.min.js"></script>
<script src="../assets/js/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="../assets/css/style_login.css">
<link rel="stylesheet"
href="../assets/font-awesome-4.7.0/css/font-awesome.min.css" />
<!------ Include the above in your HEAD tag ---------->

<div class="container">
<div class="d-flex justify-content-center h-100">
<div class="card">
<div class="card-header">
<h3>Sign In</h3>
<div class="d-flex justify-content-end social_icon">
<span><i class="fa fa-facebook-square"
aria-hidden="true"></i></span>
<span><i class="fa fa-linkedin-square"
aria-hidden="true"></i></span>
<span><i class="fa fa-twitter-square"
aria-hidden="true"></i></span>
</div>
</div>
<div class="card-body">
<form action="proses_login.php" method="POST">
<div class="input-group form-group">
<div class="input-group-prepend">
<span class="input-group-text">&nbsp;<i class="fa fa-user"
aria-hidden="true"></i></span>
116

</div>
<input type="text" class="form-control" name="username"
placeholder="username">

</div>
<div class="input-group form-group">
<div class="input-group-prepend">
<span class="input-group-text">&nbsp;<i class="fa fa-key"
aria-hidden="true"></i></span>
</div>
<input type="password" class="form-control" name="password"
placeholder="password">
</div>
<div class="row align-items-center remember">
<input type="checkbox">Remember Me
</div>
<div class="form-group">
<input type="submit" value="Login" class="btn float-right
login_btn">
</div>
</form>
</div>
<div class="card-footer">
<div class="d-flex justify-content-center links">
Don't have an account?<a href="#">Sign Up</a>
</div>
<div class="d-flex justify-content-center">
<a href="#">Forgot your password?</a>
</div>
</div>
</div>
117

</div>
</div>
118

Lampiran 12 List Full Coding tambah_katalog.php

<br>
<form action="proses.php?aksi=tambah_katalog" method="POST">
<div class="form-group">
<label>Judul :</label>
<input class="form-control" type="text" name="judul" required>
</div>
<div class="form-group">
<label>ISBN :</label>
<input class="form-control" type="text" name="isbn" required>
</div>
<div class="form-group">
<label>Pengarang :</label>
<input class="form-control" type="text" name="pengarang" required>
</div>
<div class="form-group">
<label>Penerbit :</label><br>
<input class="form-control" type="text" name="penerbit" required>
</div>
<div class="form-group">
<label>Ukuran/Halaman :</label>
<input class="form-control" type="text" name="ukuran_halaman" required>
</div>
<div class="form-group">
<label>Edisi/Cetakan :</label>
<input class="form-control" type="text" name="edisi_cetakan" required>
</div>
<div class="form-group">
<label>Tahun Terbit :</label>
<input class="form-control" type="number" name="tahun_terbit" required>
119

</div>
<div class="form-group">
<label>Letak Buku :</label>
<input class="form-control" type="text" name="letak_buku" required>
</div>

<input class="btn btn-primary" type="submit" value="Submit">


<a class="btn btn-secondary"
href="index.php?page=data_katalog.php">Tutup</a>
</form>
120

Lampiran 13 List Full Coding ubah_katalog.php

<?php

require_once '../koneksi.php';
$isbn = $_GET['isbn'];
$sql = "SELECT * FROM katalog WHERE isbn='$isbn'";
$result = mysqli_query($conn,$sql);
while($row=mysqli_fetch_assoc($result)){
$judul = $row['judul'];
$pengarang = $row['pengarang'];
$penerbit = $row['penerbit'];
$ukuran_halaman = $row['ukuran_halaman'];
$edisi_cetakan = $row['edisi_cetakan'];
$tahun_terbit = $row['tahun_terbit'];
$letak_buku = $row['letak_buku'];
}

?>

<h2 class="text-center">Ubah Data Katalog</h2>


<hr>
<form action="proses_ubah_katalog.php" method="POST">
<div class="form-group">
<label for="isbn">ISBN : </label>
<select name="isbn" class="form-control">
<option selected><?=$isbn;?></option>
</select>
</div>
<div class="form-group">
<label for="judul">Judul : </label>
121

<input type="text" class="form-control" name="judul" value="<?=$judul;?>"


required>
</div>
<div class="form-group">
<label for="pengarang">Pengarang : </label>
<input type="text" class="form-control" name="pengarang"
value="<?=$pengarang;?>" required>
</div>
<div class="form-group">
<label for="penerbit">Penerbit : </label>
<input type="text" class="form-control" name="penerbit"
value="<?=$penerbit;?>" required>
</div>
<div class="form-group">
<label for="ukuran_halaman">Ukuran/Halaman : </label>
<input type="text" class="form-control" name="ukuran_halaman"
value="<?=$ukuran_halaman;?>" required>
</div>
<div class="form-group">
<label for="edisi_cetakan">Edisi/Cetakan : </label>
<input type="text" class="form-control" name="edisi_cetakan"
value="<?=$edisi_cetakan;?>" required>
</div>
<div class="form-group">
<label for="tahun_terbit">Tahun Terbit : </label>
<input type="text" class="form-control" name="tahun_terbit"
value="<?=$tahun_terbit;?>" required>
</div>
<div class="form-group">
<label for="letak_buku">Letak Buku : </label>
<input type="text" class="form-control" name="letak_buku"
122

value="<?=$letak_buku;?>" required>
</div>

<input type="submit" class="btn btn-primary" value="Simpan" name="submit">

<a class="btn btn-secondary" href="index.php?page=data_katalog.php"


role="button">Kembali</a>
</form>
<br>
123

Lampiran 14 List Full Coding proses_hapus_katalog.php

<?php

require_once '../koneksi.php';

$isbn= $_GET['isbn'];

$sql = "DELETE FROM katalog WHERE isbn='$isbn'";


$result = mysqli_query($conn,$sql);

if($result){
header("location:index.php?page=data_katalog.php");
}else{
echo "data gagal dohapus";
}

?>
124

Lampiran 15 List Full Coding proses_logout.php

<?php

session_start();
session_destroy(); //dihancurkan

header("location:login.php");

?>

Anda mungkin juga menyukai