• Tidak ada hasil yang ditemukan

BAB V. ANALISIS HASIL IMPLEMENTASI

IV.1 Penjelasan Logika Pemrogaman pada Web

IV.1.3 Menu Admin (menu_admin.php)

Di halaman ini terdapat menu login untuk anggota dan beberapa menu untuk non anggota seperti menu profil perpusda kab. Buleleng, menu pendaftaran anggota , menu pencarian buku dan menu buku tamu. Setiap pengujung pepustakaan diwajibkan untuk melakukan pengisian data pada menu buku tamu.

IV.1.3 Menu Admin (menu_admin.php)

Halaman menu admin ini digunakan oleh administrator untuk melakukan pengelolaan hak akses terhadap halaman web oleh petugas perpustakaan serta melihat laporan peminjaman buku. Halaman ini hanya dapat diakses setelah mendapatkan validasi dari proses login pada halaman utama petugas(index.php).

Pada halaman menu admin terdapat terdapat link (tulisan berwarna biru) ke halaman web yang merupakan kewenangan dari seorang admin.. Penggalan file menu_admin.php berikut digunakan untuk menampilkan menu pada halaman admin.

<p><a href="menu_admin.php?tampil=tampil_petugas.php"> Pengelolaan Petugas </a> </p>

<p><a href="menu_admin.php?tampil=Laporan.php"> Laporan </a></p> <p><a href="log_out.php"> Log Out </a> </p>

<td width="578" align="left" valign="top">&nbsp;<?php if ($_REQUEST[tampil]){ include($_REQUEST[tampil]); } ?> </td>

Listing 4.3 menu_admin.php

Ketika admin memilih menu pengelolaan petugas maka halaman yang dituju adalah menu_admin.php dan variabel “tampil” bernilai tampil_petugas.php (halaman tampil_petugas.php akan muncul disebelah kanan menu). Begitu juga jika memilih menu Laporan maka halaman yang dituju adalah menu_admin.php dan variabel “tampil” akan bernilai Laporan.php . Pada pemilihan menu Log Out halaman yang dituju adalah halaman log_out.php. Penggalan perintah diatas juga digunakan untuk menampilkan menu pada beberapa halaman lain.

Gambar berikut adalah pemilihan menu Pengelolaan Petugas pada halaman menu_admin.php .

<?php

include "../koneksi.php";

$strsql="select * from petugas where status_aktif='1'"; $cek=mysql_query($strsql) or die(mysql_error()); while($sql=mysql_fetch_array($cek)) {

?> <tr>

<td>&nbsp;<? echo $sql['Id_petugas'];?></td> <td>&nbsp;<? echo $sql['Nama'];?></td> <td>&nbsp;<? echo $sql['Jabatan'];?></td> <td>&nbsp;<a

href="menu_admin.php?tampil=Frm_update_admin.php&amp;Id_petugas=<? echo $sql['Id_petugas'];?>"> Edit </a> &nbsp;&nbsp;<a href="menu_admin.php?tampil=cek_hapus_petugas.php&amp;Id_petugas=<? echo $sql['Id_petugas'];?>"> Hapus </a></td>

</tr> <? } ?><p>&nbsp; <a href="menu_admin.php?tampil=Frm_tambah_petugas.php"> Tambah Petugas </a> </p>

Listing 4.4 tampil_petugas.php

Script diatas adalah contoh query sql yang digunakan untuk mengambil data dari petugas yang aktif dan menampilkan data pada halaman web. Penjelasan dari script tersebut adalah :

1. Variabel $strsql dibuat untuk menyatakan query SQL yang befungsi untuk mengambil data dari table sesuai dengan kondisi tertentu .

2. Data akan ditampilkan sampai kondisi pada query tidak terpenuhi.

3. Pada link Edit dan Hapus masing – masing mambawa variabel Id_petugas yang nilainya dibutuhkan pada halaman selanjutnya.

Pada gambar 4.5 , ditampilkan data anggota sebelum dilakukan perubahan. Hal ini dimaksudkan untuk lebih meyakinkan sebelum melakukan pengubahan data.

if($HTTP_POST_VARS['pswd']){ $ubahpswd=md5($HTTP_POST_VARS[pswd]);

$strsql="update petugas set Id_petugas='$_REQUEST[no_id]',

Nama='$_REQUEST[username]', Password='$ubahpswd', Jabatan='$_REQUEST[jabatan]' where Id_petugas='$_REQUEST[hide]'";

} elseif ( empty($HTTP_POST_VARS['pswd'])){ $strsql="update petugas set

Id_petugas='$_REQUEST[no_id]', Nama='$_REQUEST[username]', Jabatan='$_REQUEST[jabatan]' where Id_petugas='$_REQUEST[hide]'"; }

include "../koneksi.php";

$query_admin=mysql_query($strsql) or die(mysql_error()); Gambar 4.5 Halaman Edit Petugas

header("location:menu_admin.php?tampil=tampil_petugas.php"); Listing 4.5 cek_update_petugas.php

Potongan script diatas adalah query untuk melakukan update data petugas. Terdapat perbedaan query dalam edit data petugas dimana inputan password yang kosong tidak dilakukan set terhadap password dan sebaliknya untuk inputan yang tidak kosong. Konfirmasi keberhasilan perubahan data ditunjukan pada ditampilkannya data petugas yang baru di halaman tampil_petugas,php Pola script diatas juga digunakan untuk beberapa kasus edit data.

Berikutnya adalah ptongan script pada halaman cek_hapus_petugas.php

include "../koneksi.php";

$strsql="upadate petugas set status_aktif=’0' where

Id_petugas='$_REQUEST[Id_petugas]'"; $query_admin=mysql_query($strsql) or die(mysql_error());

echo "<meta http-equiv='refresh'content='0;

url=index_admin.php?tampil=tampil_petugas.php'>"; Listing 4.6 cek_hapus_petuga.php

Dalam penghapusan data petugas tidak dilakukan perintah delete karena data petugas memiliki relasi dengan table yang lain sehingga cukup dengan perintah update dan status_aktif di set menjadi 0 yang menyatakan bahwa petugas tersebut sudah tidak aktif lagi. Konfirmasi keberhasilan penghapusan data adalah tidak ditampilkannya data petugas yang telah dihapus pada halaman tampil_petugas.php

// insert data petugas

include "../koneksi.php";

echo "$ubahpsswd";

$ubahpsswd=md5($HTTP_POST_VARS['password']); $strsql="insert into petugas

values('$HTTP_POST_VARS[No_id]','$HTTP_POST_VARS[username]','$ubahpsswd', '$HTTP_POST_VARS[status_login]')";

$cek=mysql_query($strsql) or die(mysql_error());

header("location:index_admin.php?tampil=tampil_petugas.php"); Listing 4.7 cek_tambah_petugas.php

Script diatas merupakan penggalan dari cek_tambah_petugas.php. Inputan password akan dienkripsi sebelum dimasukan ke dalam table petugas. Konfirmasi berhasilnya proses penambahan petugas adalah ditampilkannya data petugas baru pada halaman tampil_petugas.php

Gambar 4.6 Halaman Tambah Data Petugas

Pada drop down menu terdapat pilihan laporan berdasarkan periode yaitu laporan bulanan atau laporan tahunan. Contoh untuk pemilihan laporan bulanan adalah sebagai berikut :

Admin dapat menentukan sendiri laporan yang ingin di tampilkan berdasarkan periode per bulan dan jenisnya. Terdapat dua jenis laporan :

1. Peminjam adalah laporan jumlah peminjaman buku berdasarkan kategori peminjam yaitu pelajar, mahasiswa, dan umum.

2. Buku adalah laporan jumlah peminjaman buku berdasarkan kategori buku yang dipinjam.

Gambar 4.8 Halaman Laporan Bulanan

Berikut ini adalah potongan script yang dianggap penting pada halaman lap_bulan_peminjam.php (halaman untuk menampilkan laporan jumlah peminjaman per bulan bersadasarkan kategori peminjam).

// mencari selisih bulan

$awal=explode("-", $HTTP_GET_VARS[awal]); $tahun_1=$awal[0]; $bulan_1=$awal[1]; $akhir=explode("-",$HTTP_GET_VARS[akhir]); $bulan_2=$akhir[1]; $tahun_2=$akhir[0]; $a=$tahun_1.'-'.$bulan_1; $b=$tahun_2.'-'.($bulan_2-1); if($bulan_2==01){ $b=($tahun_2-1).'-12'; }

echo "<b><br>$a sampai dengan $b</b>"; $rentang_bulan=$bulan_2-$bulan_1; if($tahun_2>$tahun_1) { $rentang_tahun=($tahun_2-$tahun_1)*12; $rentang_bulan=$rentang_bulan+$rentang_tahun; } $x=$bulan_1;

for($i=$bulan_1 ; $i<=$bulan_1+$rentang_bulan ; $i++ ) { if($i % 12==1 && $i>12) {

$tahun_1+=1; $x=1; } $bulan[$i]=$tahun_1.'-'.$x.'-01'; $month[$i]=$x; $x+=1; } Listing 4.8 lap_bulan_peminjam.php

Dibagian atas script bisa kita lihat variabel awal yang digunakan untuk menampung inputan tanggal. Dari nilai variabel awal kemudian dipisah-pisah untuk mendapatkan nilai bulan dan tahun awal dari periode

laporan. Hal yang sama juga dilakukan untuk mendapatkan bulan dan tahun akhir dari periode laporan. Selanjutnya dilakukan perhitungan selisih bulan yang nantinya digunakan untuk variabel looping dalam pencarian data. Elemen array pada variabel bulan dan month diisi satu persatu dengan cara perulangan (loop).

// looping untuk pengambilan data

for($i=$bulan_1 ; $i<$bulan_1+$rentang_bulan ; $i++ ){

$blna=$bulan[$i+1];

$strsql="select anggota.Kategori_anggota

,count(detil_transaksi.No_transaksi) as Jumlah , month(transaksi.Tgl_transaksi) as bulan from anggota, transaksi, detil_transaksi where transaksi.No_anggota=anggota.No_anggota and transaksi.No_transaksi= detil_transaksi.No_transaksi and transaksi.Tgl_transaksi>='$bulan[$i]' and transaksi.Tgl_transaksi<'$blna' group by anggota.Kategori_anggota ";

$sql=mysql_query($strsql) or die(mysql_error()); $pelajar=0; $umum=0; $mahasiswa=0; $total=0; while($cek=mysql_fetch_array($sql)) { if($cek['Kategori_anggota']=="SD" or $cek['Kategori_anggota']=="SMP" or $cek['Kategori_anggota']=="SMA") { $pelajar=$pelajar+$cek[Jumlah]; }elseif($cek['Kategori_anggota']=="SWASTA"or $cek['Kategori_anggota']=="PNS" or $cek['Kategori_anggota']=="UMUM") { $umum=$umum+$cek[Jumlah]; } else { $mahasiswa=$cek[Jumlah]; } $total=$cek[Jumlah]; } Listing 4.9 lap_bulan_peminjam.php

Variabel blna diset bernilai bulan[$i+1] artinya vaiabel blna akan selalu bernilai bulan setelahnya. Script selanjutnya adalah query SQL

untuk mengambil data, salah satu syarat dalam query adalah tanggal transaksi berada diantara nilai vaiabel bulan[$i] dan blna. Jadi pengambilan data dilakukan perbulan sampai keluar dari kondisi perulangan. Hasil dari query akan diakumulasikan berdasarkan kategori anggota.

//konvert nama bulan

if($i==01) { $moon="Januari";

} elseif ($i==2) { $moon="Februari"; } elseif ($i==3) { $moon="Maret"; } elseif ($i==4) { $moon="April"; } elseif ($i==5) { $moon="Mei"; } elseif ($i==6) { $moon="Juni"; } elseif ($i==7) { $moon="Juli"; } elseif ($i==8) { $moon="Agustus"; } elseif ($i==9) { $moon="September"; } elseif ($i==10) { $moon="Oktober"; } elseif ($i==11) { $moon="November"; } elseif ($i==12) { $moon="Desember"; }

<tr>

<td><? echo $moon; ?>&nbsp;</td>

<td align="center"><? echo $pelajar;?>&nbsp;</td> <td align="center"><? echo $mahasiswa;?>&nbsp;</td> <td align="center"><? echo $umum;?>&nbsp;</td> <td align="center">&nbsp;<? echo $total?></td> </tr><?

Listing 4.10 lap_bulan_peminjam.php

Script bagian atas digunakan untuk mendapatkan nama bulan. Script bagain bagian bawah digunakan untuk menampilkan hasil query ke halaman web.

Pola yang hampir sama dilakukan untuk setiap penampilan laporan. Perbedaanya terletak pada query dalam pengambilan data dan periode dalam pengambilan data.

Berikut ini akan ditampilkan contoh halaman untuk menampilkan laporan bulanan berdasarkan buku yang dipinjam, laporan tahunan berdasarkan peminjam dan buku yang dipinjam.

<? session_start();

session_destroy(); ?>

<meta http-equiv="refresh" content="0;<?php echo "url=../operator/index.php" ?> Listing 4.11 logout.php

Sourcecode untuk log out pada halaman admin. Script yang sama juga digunakan pasa setiap halaman log out, hanya terdapat perbedaan pada link nya.

Dokumen terkait