Perpustakaan
Perpustakaan
Aplikasi Perpustakaan
Lisensi Dokumen:
Copyright 2012 http://phpaplikasi.com
Seluruh dokumen di phpaplikasi.com dapat digunakan, dimodifikasi dan disebarkan
secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus
atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap
dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin
terlebih dahulu dari phpaplikasi.com.
I. Pendahuluan
Perpustakaan adalah tempat orang mencari, meminjam, dan membaca buku. Banyak sekali
koleksi buku yang bisa ditemukan di perpustakaan. Misalnya saja perpustakaan di sebuah
kampus atau pun sekolah. Bahkan seiring dengan minat baca yang tinggi perpustakaan juga
bisa dijumpai di tempat-tempat ibadah.
Buku merupakan sumber ilmu. Ilmu adalah jendela dunia. Dengannya manusia dapat
memenuhi kebutuhan hidupnya. Dimulai dari sejak dini seorang manusia sudah diharuskan
untuk mengenal lingkungan sekitarnya, beranjak besar masuk ke sekolah TK, SD, SMP
,SMA, dan sampai ke perguruan tinggi semuanya tak bisa terlepas dari buku.
Di dunia akademik buku menjadi salah satu keperluan pokok. Mengingat tingginya keperluan
akan buku ini maka dibuatlah sebuah perpustakaan agar para akademisi bisa mendapatkan
buku yang mereka inginkan dengan mudah. Dahulu, buku di data secara manual di sebuah
buku besar dicatat dari no isbn, jumlah halaman, pengarang, penerbit, tahun terbit, jenis buku,
dan kode tempat menyimpan buku. Wah memang dibutuhkan kesabaran yang ekstra loh.
Betapa tidak? Pustakawan juga harus mencatat kode lemari sesuai dengan kategori buku,
belum lagi jika jumlah buku hingga ribuan dan jumlah lemari ratusan. Seiring dengan
kemajuan zaman dan teknologi kegiatan ini sudah ditinggalkan. Mulailah pendataan buku
dicatat dan disimpan dengan sistem komputerisasi. Singkat cerita penulis mencoba
mengembang sebuah sistem perpustakaan yang nantinya disebut dengan APLIKASI
PERPUSTAKAAN. Mau tau selengkapnya kita tunggu setelah jedah iklan berikut
ini. (minum the dulu mas bro)
Aplikasi Perpustakaan
Copyright 2012 http://phpaplikasi.com
Formulir anggota
Administrator
Aplikasi Perpustakaan
entry peminjaman -
- entry pengembalian
Petugas
Perpustakaan
Tabel : jabatan
Aplikasi Perpustakaan
Copyright 2012 http://phpaplikasi.com
Tabel : buku
Tabel : karyawan
Tabel : kategori
Tabel : lemari
Tabel : modul
Aplikasi Perpustakaan
Copyright 2012 http://phpaplikasi.com
Tabel: peminjaman
Tabel: user
Aplikasi Perpustakaan
Copyright 2012 http://phpaplikasi.com
Relasi Tabel
Aplikasi Perpustakaan
Copyright 2012 http://phpaplikasi.com
File koneksi.php adalah otak dari aplikasi dimana Script ini berisikan koneksi antara
server dengan database. localhost sebagai server dan dbperpustakaan sebagai database
nya.
b. File cek login.
<?php
include "config/koneksi.php";
$pass=md5($_POST[password]);
if(($_POST[level]=='admin') OR ($_POST[level]=='petugas')){
$login=mysql_query("SELECT user.*,karyawan.nama FROM user inner join karyawan
on user.username=karyawan.nik WHERE user.username='$_POST[username]'
user.password='$pass'");
AND
$ketemu=mysql_num_rows($login);
$r=mysql_fetch_array($login);
// Apabila username dan password ditemukan
if ($ketemu > 0){
session_start();
session_register("username");
session_register("password");
session_register("nama");
session_register("level");
$_SESSION[username] = $r[username];
$_SESSION[password] = $r[password];
$_SESSION[level]= $r[level];
$_SESSION[nama]= $r[nama];
header('location:media.php?module=home');
}else{
echo "<link href=config/adminstyle.css rel=stylesheet type=text/css>";
echo "<center>Login gagal! username & password tidak benar<br>";
echo "<a href=index.php><b>ULANGI LAGI</b></a></center>";
}
}
Aplikasi Perpustakaan
Copyright 2012 http://phpaplikasi.com
elseif($_POST[level]=='anggota'){
$login=mysql_query("SELECT user.*,anggota.nama FROM user inner join anggota
on user.username=anggota.nia WHERE user.username='$_POST[username]'
user.password='$pass'");
AND
$ketemu=mysql_num_rows($login);
$r=mysql_fetch_array($login);
// Apabila username dan password ditemukan
if ($ketemu > 0){
session_start();
session_register("username");
session_register("password");
session_register("nama");
session_register("level");
$_SESSION[username] = $r[username];
$_SESSION[password] = $r[password];
$_SESSION[level]= $r[level];
$_SESSION[nama]= $r[nama];
header('location:media.php?module=home');
}else{
echo "<link href=config/adminstyle.css rel=stylesheet type=text/css>";
echo "<center>Login gagal! username & password tidak benar<br>";
echo "<a href=index.php><b>ULANGI LAGI</b></a></center>";
}
}
?>
Aplikasi Perpustakaan
Copyright 2012 http://phpaplikasi.com
c. File menu
Menu.php berisi tentang pembagian link dari masing-masing user. User terbagi 3
yaitu : admin, petugas, dan anggota
<?php
include "config/koneksi.php";
if ($_SESSION[level]=='admin'){
$sql=mysql_query("select * from modul where aktif='Y' order by urutan");
}
elseif ($_SESSION[level]=='petugas'){
$sql=mysql_query("select * from modul where status='petugas' or status='anggota' order by
urutan");
}
else{
$sql=mysql_query("select * from modul where status='anggota' order by urutan");
}
while ($data=mysql_fetch_array($sql)){
echo "<li><a href='$data[link]'>» $data[nama_modul]</a></li>";
}
?>
Bisa dilihat dari script di atas bahwa semua menu tersimpan dalam tabel modul. (select * from
modul ).
d. File aksi
Script ini berisi tentang semua aksi dari insert, update, hingga perhitungan denda bagi
yang telat mengembalikan buku.
1
2
3
4
5
6
7
8
9
10
11
12
13
//input peminjaman
elseif ($module=='peminjaman' AND $act=='input'){
$tgl=date('Y-m-d');
$sql2=mysql_query("SELECT * FROM peminjaman WHERE nia='$_POST[nia]' AND status='pinjam'");
if(mysql_num_rows($sql2)>=5){
header('location:media.php?errmaxpinjam');
}else{
foreach($_POST['text1'] as $key => $value){
$sql=mysql_query("SELECT * FROM buku WHERE isbn='$value'");
$d=mysql_fetch_array($sql);
if (mysql_num_rows($sql)>0){
mysql_query("INSERT INTO peminjaman(isbn,
tgl_pinjam,
nia,
status,
user_log,
view)
VALUES('$value',
'$tgl',
'$_POST[nia]',
'pinjam',
'$_SESSION[username]',
'1')");
Aplikasi Perpustakaan
Copyright 2012 http://phpaplikasi.com
25
26
27
28
29
30
31
32
33
34
11
Perhatikan baris ke 29. Jumlah stok buku langsung berkurang otomatis jika ada
anggota yang meminjam buku dengan isbn tertentu (UPDATE buku SET exa=$d[exa]-$dt).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//Pengembalian Buku
elseif ($module=='pengembalian' AND $act=='kembalikan'){
$sqlbalik = mysql_query("SELECT * FROM peminjaman WHERE id_peminjaman='$_GET[id]'");
$dbalik = mysql_fetch_array($sqlbalik);
$tgl_pinjam = $dbalik['tgl_pinjam'];
$tgl_kembali = date('Y-m-d');
$JumHari = dateDiff("-", $tgl_kembali, $tgl_pinjam);
$jumhari1 = $JumHari + 1;
if($jumhari1>20){
$hr=$jumhari1-20;
$denda=$hr*500;
}else{
$denda=0;
}
mysql_query("UPDATE peminjaman SET tgl_kembali = '$tgl_kembali',
status = 'ada',
jlh_hari = '$jumhari1',
denda = '$denda',
view = '0'
WHERE id_peminjaman = '$_GET[id]'");
$sql4=mysql_query("SELECT COUNT(isbn) as jlh FROM peminjaman WHERE isbn='$_GET[isbn]'
AND status='ada'");
$dt4=mysql_num_rows($sql4);
$b=mysql_query("SELECT * FROM buku WHERE isbn='$_GET[isbn]'");
$bt=mysql_fetch_array($b);
mysql_query("UPDATE buku SET exa=$bt[exa]+$dt4 WHERE isbn='$_GET[isbn]'");
header('location:media.php?module=pengembalian&act=view&nia='.$_GET[nia].'&id='.$_GET[i
d]);
}
Perhatikan baris ke 29. Jumlah stok buku langsung bertambah otomatis jika ada
anggota yang mengembalikan buku dengan isbn tertentu (UPDATE buku SET exa=$d[exa]-$dt4).
Aplikasi Perpustakaan
Copyright 2012 http://phpaplikasi.com
Untuk perhitungan denda bisa dilihat pada baris ke 10 s/d 15. Peminjaman buku maksimal
hingga 20 hari. Jika pengembalian buku lebih dari 20 hari maka akan dikenakan denda
perhari rp.500,Jumlah hari peminjaman buku dihitung dengan menggunakan fungsi dateDiff lihat baris ke 8.
script pada baris ke 8 ini mengambil fungsi dari script berikut, dalam file aksi.php script ini
terletak di urutan paling atas.
function dateDiff($dformat, $endDate, $beginDate){
$date_parts1=explode($dformat, $beginDate);
$date_parts2=explode($dformat, $endDate);
$start_date=gregoriantojd($date_parts1[1],$date_parts1[2], $date_parts1[0]);
$end_date=gregoriantojd($date_parts2[1],$date_parts2[2], $date_parts2[0]);
return $end_date- $start_date;
}
e. File mod_anggota
File mod_anggota.php berisi script untuk menambah, menghapus, dan edit data
anggota. Pendaftaran anggota baru yang dilakukan oleh petugas. Perlu diketahui
bahwa seorang anggota harus mempunyai id atau di dalam aplikasi dsebut dengan nia
(nomor induk anggota). Fungsi dari nia ini adalah agar anggota dapat login ke aplikasi
perpustakaan untuk pencarian buku lebih cepat.
Nia akan tercreat secara otomatis sesuai dengan tanggal saat petugas menginput data
anggota baru. Penomoran nia dibuat dengan urutan tahun bulan tanggal no.urut.
sebagai contoh 201206010001. Nia ini dibuat pada tahun 2012, bulan 06, tanggal 01,
dengan nomor urut 0001.
Berikut adalah cuplikan dari script untuk membuat nomor nia secara otomatis.
case "tambahanggota":
echo "<h2>Tambah Anggota</h2>
<form method=POST action='./aksi.php?module=anggota&act=input'>";
$today=date(Ymd);
//cari nia terakhir
$q="SELECT MAX(nia) as last FROM anggota WHERE nia LIKE '$today%'";
$hsl=mysql_query($q);
$dt=mysql_fetch_array($hsl);
$lastnia=$dt['last'];
//baca nomor urut nia
$lastnourut=substr($lastnia,8,4);
$nextnourut=$lastnourut+1;
//membuat no nia berikutnya
$nextnia = $today.sprintf('%04s',$nextnourut);
10
Aplikasi Perpustakaan
Copyright 2012 http://phpaplikasi.com
11