Anda di halaman 1dari 11

Aplikasi Perpustakaan

Copyright 2012 http://phpaplikasi.com

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.

Oleh : Jatmika, S.Kom

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

II. Desain Sistem


2.1 DFD Konteks
Berikut diagram konteks Aplikasi Perpustakaan
Anggota

Formulir anggota

Administrator

- entry buku, lemari, rak


- pengawas petugas
Kartu anggota

Aplikasi Perpustakaan

entry peminjaman -

- entry pengembalian

Petugas
Perpustakaan

2.2 Rancangan Database


Database merupakan kumpulan dari beberapa tabel yang dapat mengisi banyak data.
Database yang digunakan dalam aplikasi ini adalah dbperpustakaan.
Berikut disajikan struktur tabel aplikasi perpustakaan,
Nama Tabel
Tabel : anggota

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

2.3 Listing Program


Berikut akan di lampirkan listing program dari aplikasi perpustakaan. Penulis hanya
membahas listing program yang dianggap sangat penting dalam aplikasi ini.
a. File koneksi. Simpan di c:\xampp\htdocs\perpus\config\koneksi.php
<?php
$server = "localhost";
$username = "root";
$password = "";
$database = "dbperpustakaan";
// Koneksi dan memilih database di server
$conn=mysql_connect($server, $username, $password);
mysql_connect($server,$username,$password) or die("Koneksi gagal");
mysql_select_db($database) or die("Database tidak bisa dibuka");
?>

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>";
}
}
?>

File cek_login.php di eksekusi setelah file index.php. Terdapat beberapa penggalan if di


dalamnya:
1. if(($_POST[level]=='admin') OR ($_POST[level]=='petugas')){
Penggalan if ini untuk mengecek level login seorang user. Apabila level nya admin
atau petugas maka perintah yang ada di dalam if ini akan dijalankan.
2. elseif($_POST[level]=='anggota'){
Penggalan if ini untuk mengecek level login seorang user. Apabila level nya anggota
maka perintah yang ada di dalam if ini akan dijalankan.
Ada perintah session. Apakah maksud dari session tersebut?
Session adalah cara untuk menjaga suatu variabel tetap ada selama sesi kunjungan user.
Meskipun berpindah-pindah halaman, variabel session tetap ada dan bisa diakses sampai
session ditutup. PHP mempunyai session (catatan aktivitas) yang digunakan untuk menjaga /
memelihara informasi akses dari seorang pengakses / pemakai aplikasi web.

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]'>&#187; $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

$sql3=mysql_query("SELECT COUNT(isbn) as jlh FROM peminjaman WHERE isbn='$value'


AND status='pinjam'");
$dt=mysql_num_rows($sql3);
mysql_query("UPDATE buku SET exa=$d[exa]-$dt WHERE isbn='$value'");
header('location:media.php?module=peminjaman&act=view&nia='.$_POST[nia]);
}else{header('location:media.php?errbukutdkada');}
}
}
}

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

2.4 Sekilas Tampilan Aplikasi


Halaman login

Login user terdiri dari 3 bagian :


a. Administrator, username = 01A, password = 01A, level = admin. Memiliki hak penuh
yang terkait dengan fitur-fitur yang ada dalam aplikasi, dengan kata lain semua modul
bisa di akses oleh seorang administrator.
b. Petugas, username = 02A, password = 02A, level = petugas. Memiliki hak akses
untuk input data buku, lemari, proses peminjaman, pengembalian, dan pendaftaran
anggota.
c. Anggota, username = 201206010001, password = 123, level = anggota. Memiliki hak
akses untuk pencarian buku, ketika anggota ingin meminjam buku mereka bisa
mencari terlebih dahulu buku yang diinginkan dalam aplikasi dengan waktu yang
cepat.
Untuk versi demo silahkan coba-coba di alamat http://phpaplikasi.com/demoperpus

Demikian sekilas cerita dari penulis.


Untuk Full Source Code SMS ke 0852 623 66168.

11

Anda mungkin juga menyukai