SKRIPSI
Disusun oleh :
Zaky Ali Husaeni
311610044
Disusun oleh:
Zaky Ali Husaeni
311610044
Mengetahui,
Ketua Program Studi Teknik Informatika
i
LEMBAR PENGESAHAN
Disusun oleh:
Zaky Ali Husaeni
311610044
Mengetahui,
Ketua Program Studi Teknik Informatika
Sebagai mahasiswa Universitas Pelita Bangsa, yang bertanda tangan dibawah ini,
saya :
Nama : Zaky Ali Husaeni
NIM : 311610044
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,
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
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.
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
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.
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.
viii
DAFTAR ISI
LEMBAR PENGESAHAN..................................................................................... ii
ABSTRAK.............................................................................................................vii
ABSTRACT............................................................................................................viii
DAFTAR ISI...........................................................................................................ix
DAFTAR TABEL.................................................................................................xiii
DAFTAR LAMPIRAN........................................................................................xvii
BAB I PENDAHULUAN........................................................................................ 1
1.5 Tujuan....................................................................................................... 3
1.6 Manfaat..................................................................................................... 3
ix
2.2.2 Definisi Bangun............................................................................7
2.2.3 Aplikasi........................................................................................ 7
2.2.8 Katalog....................................................................................... 21
2.2.9 Website.......................................................................................21
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
x
3.2 Visi dan Misi Organisasi........................................................................ 34
3.2.1 Visi............................................................................................. 34
3.2.2 Misi.............................................................................................35
xi
BAB V KESIMPULAN DAN SARAN.................................................................81
5.1 Kesimpulan............................................................................................. 81
5.2 Saran....................................................................................................... 82
DAFTAR PUSTAKA............................................................................................ 83
xii
DAFTAR TABEL
Tabel 3 .7 User....................................................................................................... 49
xiii
DAFTAR GAMBAR
Gambar 2 .9 Good-suffix shift, hanya suffix dari u terjadi lagi di pattern x........... 16
xiv
Gambar 3 .9 Activity Diagram Cari Katalog Menggunakan Algoritma BM......... 45
xv
Gambar 4 .12 Interface Halaman Tambah Data Katalog Buku............................. 68
xvi
DAFTAR LAMPIRAN
xvii
BAB I
PENDAHULUAN
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
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
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
rata-rata durasi pencarian 82,1 detik. Untuk itu perlu adanya aplikasi pencarian
katalog buku online berbasis website sebagai fasilitas petugas dan pengunjung
algoritma string matching yang diterapakan pada search engine agar hasil
1
2
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
data-data yang diterapkan, untuk itu pada penelitian ini akan membandingkan
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.
perbandingan algoritma Knuth Morris Pratt dan Boyer Moore untuk pencarian
1.5 Tujuan
1.6 Manfaat
1. Bagi penulis :
perkuliahan.
2. Bagi TBM :
katalog buku.
3. Bagi Pembaca :
bersangkutan.
LANDASAN TEORI
berkaitan dengan Aplikasi Perbandingan Algoritma KMP dan Boyer Moore pada
Pencocokan String pada Aplikasi Kamus Bahas Nias adalah jurnal yang
disusun oleh Fince Tinus Waruwu dan Rila Mandala yang berasal dari
dan Boyer Moore dalam pencocokan string bahasa nias dan untuk
KMP dan Boyer Moore yang lebih cepat dalam waktu akses pencocokan
Alwin Fau, Mesran dan Guidio Leonardo Ginting. Tujuan penelitian ini
5
6
oleh Vici Indah Yana yang berasal dari Fakultas Ilmu Komputer dan
dengan hasil rata-rata running time KMP 132.1 ms dan Boyer Moore
134.6 ms.
Android yang disusun oleh Desy Rahayu Aradani yang berasal dari
Utara Medan pada tahun 2017. Tujuan penelitian ini adalah untuk
yang dialami organisasi atau perusahaan yang diperoleh dari pemilihan alternatif
sistem baru dan mengganti atau memperbaiki sistem yang sudah ada secara total.
sketsa atau pengaturan dari beberapa elemen yang terpisah kedalam suatu
2.2.3 Aplikasi
1. Aplikasi merupakan satu unit dari perangkat lunak yang dirancang untuk
bisnis/organisasi/lembaga.
Development Software yang artinya pengembangan media cetak dari buku catatan
ke dalam bentuk paket perangkat sistem aplikasi dan komponen yang didasarkan
pada spesifikasi desain lalu menciptakan sistem tersebut atau memperbaiki sistem
string, dikembangkan secara terpisah oleh Donald E. Knuth pada tahun 1967 dan
James H. Morris bersama Vaughan R. Pratt pada tahun 1966, namun keduanya
bekerja dengan cara melewatkan iterasi-iterasi yang tidak perlu karena dinilai
tidak akan menghasilkan kesesuaian antara pola/kata yang dicari dengan susunan
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
Dengan metode seperti itu, performa tidak dijamin optimal. Jika string tidak
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
karakter pada setiap posisi trial sebelum menolak hasil dan memajukan posisi trial
Perhitungan penggeseran pada algoritma ini adalah sebagai berikut, bila terjadi
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
harus memuat next[j] yang merupakan posisi karakter pattern[j] setelah digeser,
sehingga kita bisa menggeser pattern sebesar j-next[j] relatif terhadap teks.
teks.
(mismatch).
dipertimbangkan.
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
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.
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
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
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
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
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
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
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
Algoritma ini hanya membutuhkan O(n) ruang dari memori internal jika teks
dibaca dari file eksternal. Semua besaran O tersebut tidak tergantung pada
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 dengan bertumpu pada konsep algoritma Boyer Moore,
kanan ke kiri yaitu men-scan karakter pattern dari kanan ke kiri dimulai dari
karakter paling kanan. Algoritma Boyer Moore menggunakan dua fungsi shift
berikutnya setelah terjadi ketidakcocokan antara karakter pattern dan karakter teks
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]=
karakter lain yang letaknya lebih kiri dari x[i] dan terletak di sebelah kiri
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
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
yaitu y [i+j] yang tidak cocok dengan karakter pada pattern. Konsep dari fungsi
yanglebih kiri dari x[i] maka pattern digeser ke kanan sejauh i-k. Kasus
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
yanglebih kanan dari x[i] maka pattern seharusnya digeser sejauh i-k
17
yang hasilnya negatif (pattern digeser kembali ke kiri). Maka bila kasus
yang diambil oleh fungsi good-suffix shift dan bad-character shift dimana langkah
inisialisasi.
ini, prosedur suffix dijalankan terlebih dulu pada pattern. Fungsi dari
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
pada pattern dari sebeuah segmen ke segmen lain yang sama yang
18
prosedur preBmBc dan preBmGs yaitu tabel BmBc dan BmGs. Berikut
Boyer Moore dengan pattern gcagagag yang akan dicari pada string
gcatcgcagagagtatacagtacg.
dan 8.
cagagag. Tidak ada segmen cagagag lain dengan karakter sebelah kiri
agagag. Tidak ada segmen agagag lain dengan karakter sebelah kiri
gagag. Tidak ada segmen gagag lain dengan karakter sebelah kiri
agag. Karena ada segmen agag posisi 2,3,4,5 dengan karakter sebelah
Karena tidak ada seamen gag lain dengan karakter sebelah kiri bukan
Karena ada segmen ag posisi 2,3 dengan karakter sebelah kiri bukan
Berikut ini adalah prosedur yang ada dalam algoritma Boyer Moore :
procedure preBmBc (
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
pasal 26 ayat (4), disebukan bahwa satuan pendidikan nonformal terdiri atas
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
sebagai berikut :
2.2.9 Website
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
halaman (hyperlink). Bersifat statis apabila isi informasi website tetap, jarang
server-side yang disisipkan pada HTML yang dijalankan di server, dan juga bisa
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).
1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak dapat
relatif mudah.
5. PHP adalah bahasa open source yang dapat digunakan diberbagai mesin
2.2.9.2 MYSQL
source. MySQL adalah pasangan serasi dari PHP. MySQL dapat digunakan untuk
MySQL untuk menambahkan, mengubah dan menghapus data yang berada dalam
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
2.2.9.4 Javascript
halaman web. Javascript dijalankan pada sisi klien yang akan memberikan
2.2.9.5 CSS
pengaturan pada komponen halaman web, inti dari dokumen ini adalah
memformat halaman web standar menjadi bentuk web yang memiliki kualitas
2.2.10 Flowchart
menunjukan alir atau arus (flow) didalam program atau prosedur sistem secara
logika.
jenis peralatannya
25
oleh komputer
yang berlubang
simbol lainnya.
process prosedur
Dokumen dokumen
26
berikut :
pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use
case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem
Berikut adalah simbol-simbol yang ada pada diagram use case menurut
Simbol Penjelasan
Use Case :
Aktor / Actor :
Generaliasai / Generalization :
Asosiasi /Association :
System :
system
Tempat seluruh aktivitas-aktivitas sistemyang sedang
berjalan.
Kebergantungan / Dependancy :
Include :
Ekstensi / Extend :
workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau
Simbol Penjelasan
Simbol Penjelasan
Aktor/Actor Orang, proses, atau sistem lain yang berinteraksi dengan
Pesan tipe create Menyatakan suatu objek membuat objek yang lain, arah
Pesan tipe return Menyatakan bahwa suatu objek yang telah menjalankan
menerima kembalian
Pesan tipe destroy Menyatakan suatu objek mengakhiri hidup objek yang
destroy()
lain, arah panah mengarah pada objek yang diakhiri,
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
Penjelasan
Asosiasi berarah/Directed Relasi antar kelas dengan makna kelas yang satu
association
digunakan oleh kelas yang lain, asosiasi biasanya
(whole-part)
Decision Suport System (DSS) yang digunakan untuk menentukan urutan prioritas
Semakin besar total nilai (TN) alternatif maka semakin tinggi urutan
prioritasnya.
Dimana :
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
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 :
Analisa permasalahan
Perancangan Sistem
Pembuatan Sistem
METODE PENILITIAN
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
Ketua
Ade Maulana Aji, S.Pd.
Sekretaris Bendahara
Ade Sugito Noval Hadi
3.2.1 Visi
34
35
3.2.2 Misi
penting.
Analisis sistem yang sedang berjalan pada sistem pencarian katalog buku di
mengetahui bagaimana cara kerja sistem tersebut dan juga masalah yang sedang
Mulai
Membuka Buku
Catatan Katalog Data Katalog
Mencari
Katalog
Buku
Mendapatkan
Informasi
Katalog
Buku
Selesai
Sistem pada aplikasi yang diusulkan berupa aplikasi online berbasis website
yang memiliki desain yang lebih mudah diakses dan memiliki search engine yang
informasi yang berkaitan dengan string yang dicari dengan mudah. Sistem
memori yang digunakan dalam proses pencarian, yang nantinya akan diolah
yang tepat.
Pengguna Sistem
Tampilan Mengecek
aplikasi katalog
Database
katalog
Masukkan
katalog
T Cocok?
Menampilkan Y
hasil pencarian
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
2. Aktor Admin
Aktor Admin yang melakukan pengelolaan data pada aplikasi dan hanya
dapat berinterakasi dengan use case login dan mengelola katalog buku.
buku
Aktor Pengunjung
Tujuan Untuk memilih algoritma KMP atau Boyer Moore yang akan di
Aktor Pengunjung
Aktor Pengunjung
Aktor Admin
login
Aktor Admin
login dengan username dan password yang sudah terdaftar, lalu sistem akan
mengecek apakah username dan password ada atau tidak, apabila ada maka
tombol kelola katalog buku, setelah itu Admin dapat mengelola katalog buku.
memilih tombol informasi cara penggunaan pada menu aplikasi, maka sistem
tahap awal yang dilakukan pada pengunjung adalah dengan membuka aplikasi
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.
Moore
Moore tahap awal yang dilakukan pada pengunjung adalah dengan membuka
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
sistem.
object beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi,
dan lain-lain. Berikut adalah class diagram yang dibutuhkan dalam perancangan
1. Tabel Katalog
Tabel 3.6 Katalog Buku
2. Tabel User
-
1 username Char 50
Dalam tahap ini dilakukan perancangan struktur menu dan layout dari setiap
a. Halaman Login
b. Dashboard Admin
data.
antara lain :
data
4. Button batal
53
lain :
54
aplikasi
data dan proses yang dibutuhkan pada sistem baru. Sistem yang digunakan harus
2. RAM: 6GB
4. Harddisk: 500 GB
1. Windows 10
2. Xampp
3. Sublime Text 3
4. Web Browser
58
59
dan css.
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
3. Pilih folder sebagai tempat XAMPP akan diinstal, di folder ini akan
menampung semua file aplikasi web kita, jadi pastikan untuk memilih
4. Proses Install sudah selesai! Pilih Kotak centang ‘Do you want to start
mentah, karena itu setiap tabel harus saling berhubungan agar akses data untuk
mendapatkan informasi yang tepat dan cepat dapat dilakukan dengan baik.
Tabel Katalog merupakan tabel yang berada pada database compairing yang
Tabel User merupakan tabel yang berada pada database compairing yang
interface pada tahap desain. Hasil dari implementasi antar muka yaitu :
Algoritma.
65
Algoritma.
Katalog Buku.
Buku.
menghitung dan membandingkan proses pencarian dari algoritma KMP dan Boyer
1. Menentukan alternatif
2. Menentukan Kriteria
dan cara kerjanya. Untuk kriterianya dapat dilihat pada tabel berikut :
Kriteria Keterangan
dibawah ini :
Pengaruh Range
Kriteria (0-1)
algoritma menyelesaikan
72
masalah.
melakukan pencarian.
Pada kriteria yang telah dibentuk harus diberikan nilai. Nilai tersebut
dapat dilihat pada tabel dibawah ini yang dimana nilai berdasarkan
(byte) Waktu(Second)
5. Menghitung Nilai
N N N N
Keterangan :
1. B : Bobot
3. BM : Boyer Moore
4. N : Nilai Kriteria
5. Total Nilai : Σ ��
= 380,81 + 0,07
= 380,88
= 376,78 + 0,05
= 376,83
= 380,81 + 0,08
= 380,89
= 376,78 + 0,05
= 376,83
75
= 380,83 + 0,07
= 380,9
= 376,8 + 0,06
= 376,86
= 380,83 + 0,08
= 380,91
= 376,8 + 0,05
= 376,85
= 380,81 + 0,08
= 380,89
= 376,78 + 0,06
= 376,84
76
= 1904,47
= 1884,21
Setelah diperoleh nilai akhir atau total nilai dari masing-masing alternatif,
Boyer Moore yang lebih baik dari pada algoritma Knuth Morris Pratt.
77
Pada diagram pie chart diatas merupakan hasil dari semua total
hasil diagram pie chart diatas maka algoritma Boyer Moore lebih cepat
Moore
memenuhi kriteria yang sesuai dengan tujuan perancangan lunak tersebut. Berikut
adalah hasil dari pengujian sistem dengan menggunakan pengujian Black-Box dan
White-Box.
79
Penggunaan
engine algoritma
engine algoritma
Boyer Moore
melakukan
pencarian pada
search engine
admin website
tambah katalog
buku dan
menyimpan serta
membatalkan data
inputan
dan menyimpan
serta membatalkan
perubahan
terhadap data
katalog buku
melakukan
pencarian pada
halaman
dashboard admin
BAB V
5.1 Kesimpulan
yang telah dilakukan pada algoritma KMP dan Boyer Moore dengan
dalam pencarian data algoritma Boyer Moore 51% dan KMP 49%, maka
KMP.
engine aplikasi untuk mendapatkan data-data yang akurat dan lebih cepat
81
82
5.2 Saran
dikemukakan beberapa saran yang sekiranya berguna dan dapat diterapkan pada
Berikut ini beberapa hal yang kiranya yang menjadi bahan pertimbangan untuk
DAFTAR PUSTAKA
[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.
[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.
Pustaka Utama.
[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.
Mengetahui,
Dosen Pembimbing I
Mengetahui,
Dosen Pembimbing II
/*!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`
--
--
-- Dumping data untuk tabel `katalog`
'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
/*!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
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbName = "compairing";
//create connection
$conn = mysqli_connect($servername,$username,$password,$dbName);
<?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
<!--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>
<?php
$KMP = new KMP();
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
<?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);
// 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;
}
$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
<?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
<!--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>
#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
<!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>
<?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;">
<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"> <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"> <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
<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>
<?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'];
}
?>
value="<?=$letak_buku;?>" required>
</div>
<?php
require_once '../koneksi.php';
$isbn= $_GET['isbn'];
if($result){
header("location:index.php?page=data_katalog.php");
}else{
echo "data gagal dohapus";
}
?>
124
<?php
session_start();
session_destroy(); //dihancurkan
header("location:login.php");
?>