LAMPIRAN A (KODE PROGRAM) 1. data.php <?php include "koneksi.php"; $cari=trim($_get['cari']); // menangkap variable cari yang dikirim $arr=array(); $result=mysql_query("select id_buku,judul_buku,levenshtein('$cari', judul_buku) as lev FROM buku HAVING lev<=14 ORDER BY lev",$koneksi) or die(mysql_error()); // melakukan pengambilan dari database dengan nilai levenshtein kurang sama dengan 14 yang diurutkan berdasarkan nilai lev terkecil if(mysql_num_rows($result)>0){ //memuncullkan jika hasil lebih dari 0 while($data=mysql_fetch_row($result)){ $id=$data[0]; $data=$data[1]." (".$data[2].")"; $arr[]=array("id" => $id, "data" => $data); //memasukkan data ke erray } } mysql_close($koneksi); echo json_encode($arr); //decode array kedalam json untuk di tampilkan?> 2. Fungsi Levenshtein DELIMITER ;; CREATE FUNCTION levenshtein( s1 VARCHAR(255), s2 VARCHAR(255) ) RETURNS INT DETERMINISTIC BEGIN DECLARE s1_len, s2_len, i, j, c, c_temp, cost INT; DECLARE s1_char CHAR; DECLARE cv0, cv1 VARBINARY(256); SET s1_len = CHAR_LENGTH(s1), s2_len = CHAR_LENGTH(s2), cv1 = 0x00, j = 1, i = 1, c = 0; IF s1 = s2 THEN RETURN 0; ELSEIF s1_len = 0 THEN RETURN s2_len; ELSEIF s2_len = 0 THEN RETURN s1_len; ELSE WHILE j <= s2_len DO
53 SET cv1 = CONCAT(cv1, UNHEX(HEX(j))), j = j + 1; END WHILE; WHILE i <= s1_len DO SET s1_char = SUBSTRING(s1, i, 1), c = i, cv0 = UNHEX(HEX(i)), j = 1; WHILE j <= s2_len DO SET c = c + 1; IF s1_char = SUBSTRING(s2, j, 1) THEN SET cost = 0; ELSE SET cost = 1; END IF; SET c_temp = CONV(HEX(SUBSTRING(cv1, j, 1)), 16, 10) + cost; IF c > c_temp THEN SET c = c_temp; END IF; SET c_temp = CONV(HEX(SUBSTRING(cv1, j+1, 1)), 16, 10) + 1; IF c > c_temp THEN SET c = c_temp; END IF; SET cv0 = CONCAT(cv0, UNHEX(HEX(c))), j = j + 1; END WHILE; SET cv1 = cv0, i = i + 1; END WHILE; END IF; RETURN c; END;
LAMPIRAN B (RANCANGAN SISTEM) 1. Use Case Diagram Input Judul Buku Pilih Judul Buku Melihat Informasi buku User Tambah Edit Kelola Informasi Buku Login Hapus Melihat Daftar Buku di dalam use case diagram dapat digambarkan bahwa terdapat 2 orang aktor yang akan berperan, yaitu user dan admin. Untuk memperoleh informasi mengenai buku yang dicari maka aktor user harus memasukkan input berupa judul buku ke dalam search box. Selanjutnya jika pencarian yang dilakukan berhasil maka sistem akan menampilkan sebuah halaman yang berisi kumpulan dari buku-buku yang berkaitan dengan judul buku yang diinputkan, kemudian user harus mengklik salah satu dari judul buku yang ditampilkan untuk dapat melihat informasi buku secara lengkap. Selanjutnya untuk bagian admin yaitu terlebih dahulu melakukan login, dengan menginputkan username dan password, jika username dan password berhasil divalidasi, maka selanjutnya admin akan masuk ke halaman beranda. Untuk melakukan pengelolahan admin dapat melakukan penambahan, pengeditan dan penghapusan buku.
55 2. Data flow diagram (DFD) a. DFD level 0 Data flow diagram level 0 atau disebut juga dengan diagram konteks yang menggambarkan sistem yang akan dibuat. - Login - Melihat Daftar Buku User - Mencari Buku - Mengetik judul buku yang dicari Simulasi Algoritma Levenshtein Distance Untuk Fitur Autocomplete Pada Aplikasi Katalog Perpustakaan - Input Info Buku - Mengelola Info Buku - Informasi Buku - Pesan Login - Autocomplete - Informasi Buku Diagram konteks di atas terdiri dari dua entitas luar sebagai berikut : No. Entitas Luar Keterangan 1 User User dapat melakukan pencarian data buku dengan mengetikkan judul buku yang ingin dicari, selanjutnya user akan menerima keluaran berupa autocomplete dan informasi buku yang dicari 2 melakukan proses login ke dalam sistem untuk dapat mengelola informasi buku berupa menambah,mengedit dan menghapus informasi buku
56 b. DFD level 1 DFD level 1 akan menggambarkan modul-modul yang ada di dalam sistem yang akan dibuat. Judul Buku User 1.0 Input Buku yang dicari Autocomplete Klik Judul Buku Informasi Buku 2.0 Melihat Data Buku Hasil Pencocokan Judul buku Pencocokan Judul buku Username dan Password Informasi Buku Judul buku yang Dipilih 3.0 Login Username & Password Validasi Tabel Pesan Login 4.0 Melihat Daftar Buku Informasi buku Informasi buku Tambah/Edit/ Hapus Buku Informasi buku berubah 5.0 Mengelola Informasi buku Hasil pengelolahan Tabel Buku Pada DFD level 1 dapat dilihat modul-modul yang terdapat di dalam sistem, adapun modul ataupun bagian yang akan dilakukan oleh user yaitu input judul buku yang ingin dicari dan melihat data atau informasi buku. Sedangkan untuk modul atau bagian yang akan dilakukan oleh admin yaitu login, melihat daftar buku, input data buku dan mengelola data buku. c. DFD level 2 Pada gambar 3.4 akan ditampilkan DFD level 2 yang akan menggambarkan dekomposisi dari DFD level 1.
57 Data buku bertambah Judul Buku/Pengarang/Penerbit dst 5.1 Input/Tambah Data buku bertambah Menambahkan Data buku Informasi buku berubah Mengubah data 5.2 Edit Informasi buku berubah Mengubah data Tabel Buku Informasi buku sudah tidak ada Menghapus informasi buku 5.3 Hapus Informasi buku sudah tidak ada Menghapus informasi buku Pada DFD level 2 dapat dijelaskan penjabaran dari DFD level 1 bagian 5. Dimana pada bagian ini proses mengelola buku dapat dibagi menjadi 3 hal, yaitu menambah data buku, mengedit data buku dan menghapus data buku. Adapun proses mengelola data buku ini hanya dapat dilakukan oleh admin, setiap data buku yang telah diolah baik itu ditambah, diedit dan dihapus akan tersimpan perubahannya ke dalam tabel buku di database.