Anda di halaman 1dari 101

MODUL

WEB
Membuat Aplikasi Perpustakaan

Muharir, M.Kom
Fakultas Teknologi Informasi UNISKA

1
Daftar Isi
Membuat Web Dengan Bahasa PHP ..................................................................................................... 4
Apa itu PHP ?....................................................................................................................................... 4
Variabel PHP........................................................................................................................................ 5
Conditional Statement ........................................................................................................................ 5
IF Statement .................................................................................................................................... 5
Switch Statement ............................................................................................................................ 6
Perulangan .......................................................................................................................................... 7
while loops ...................................................................................................................................... 7
Do ... While Loops ........................................................................................................................... 7
For Loops ......................................................................................................................................... 8
Foreach ........................................................................................................................................... 8
Function .............................................................................................................................................. 9
Cookie ............................................................................................................................................... 10
Session .............................................................................................................................................. 11
Sesi 1 : Menyiapkan Database, Login Form dan Templating .............................................................. 13
Struktur table .................................................................................................................................... 13
Membuat Koneksi Database ............................................................................................................. 14
Membuat Login Aplikasi.................................................................................................................... 15
Membuat Login Form ....................................................................................................................... 16
Memasang Template Admin LTE ...................................................................................................... 22
Sesi 2 : Membuat CRUD User ............................................................................................................... 41
Membuat Form Input User, Image Upload, dan Detail User ............................................................ 41
Menambahkan List User dan Pagination Data.................................................................................. 49
Mengedit User .................................................................................................................................. 53
Hapus User ........................................................................................................................................ 58
Sesi 3 : Membuat Validasi, Report Anggota dan CRUD. ..................................................................... 60
Membuat Tambah Anggota .............................................................................................................. 61
Membuat Detail Anggota.................................................................................................................. 66
Membuat Edit Anggota ..................................................................................................................... 68
Membuat Halaman List Anggota ...................................................................................................... 73
Membuat Hapus Anggota ................................................................................................................. 75
Membuat Laporan Anggota .............................................................................................................. 76

2
Sesi 4 : CRUD Buku dan Print Mode Lanscape..................................................................................... 77
Membuat Tambah Buku ................................................................................................................... 77
Membuat Halaman Detail Buku ........................................................................................................ 83
Membuat Edit Buku .......................................................................................................................... 86
Membuat Halaman List Buku ............................................................................................................ 91
Membuat Hapus Buku ...................................................................................................................... 94
Membuat Laporan Buku Lanscape ................................................................................................... 94
Membuat Pencarian Buku ................................................................................................................ 96
Memperbaiki tampilan profile foto pada aplikasi ................................................................................ 99
DAFTAR PUSTAKA............................................................................................................................... 101

3
Membuat Web Dengan Bahasa PHP
Pada modul ini kita akan membuat aplikasi Siperpus yang dibuat dengan menggunakan bahasa
pemrograman PHP dan Mysqli Extension. Pada awal materi saya mengingatkan anda kembali
mengenai fungsi php, pembuatan variabel, percabangan, perulangan, session dan cookie yang wajib
anda pahami. Ingat “menulis kode berbeda dengan menulis essay” saat menulis kode anda dituntut
memahami maksudnya dan juga fungsinya. Koding tidak perlu di hafal yang paling penting adalah
dipahami maksud, konsep, dan tujuannya.

Adapun tools yang digunakan adalah :

1. Chrome atau Mozilla Developer Edition sebagai browser


2. Visual Studio Code, sebagai text editor
3. Xampp dengan php (5.4 atau yang lebih tinggi)
4. AdminLTE

Apa itu PHP ?


 Merupakan singkatan dari Hypertext Preprocessor
 Merupakan bahasa server side yang banyak digunakan karena bebas didownload dan
digunakan.
 Script PHP dieksekusi pada sisi server oleh karena itu disebut dengan (Server Side), berbeda
dengan Javascript CSS dan HTML yang dieksekusi dibagian client melalui web browser.

File PHP berisi text, HTML, CSS, Javascript, dan Kode PHP. Kode PHP dieksekusi di bagian server dan
dikembalikan ke browser sebagai text HTML. File PHP berekstensi .php .

Contoh sytax php dasar :

Belajar1.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Belajar PHP</title>
</head>
<body>
<h1>Selamat Belajar PHP Ya</h1>
<?php
echo "<p>Hello World, I'am PHP</P>";
?>
</body>
</html>

Jika dijalankan pada browser maka akan menghasilkan tampilan seperti berikut

4
Variabel PHP
Variabel adalah tempat untuk menyimpan informasi pada program. Cara penulisan variabel pada
php adalah sebagai berikut :

<?php
$txt = "Hello world!";
$x = 5;
$y = 10.5;
?>

Untuk menampilkan menggunakan echo di ikuti dengan nama variabel.


<?php
echo $txt."<br>";
echo $x."<br>";
echo $y."<br>";
?>
Jika dijalankan pada browser akan menampilkan seperti dibawah ini.

Conditional Statement
IF Statement
Digunakan untuk mengatur kapan sebuah kode program akan dijalankan. Contoh :

belajarkondisi.php
<?php
$hari = "Rabu";

if ($hari == "Kamis") {
echo "Ini hari kamis";
}else{
echo "Ini Hari Rabu";
}
?>
Jika dijalankan maka akan menampilkan “ini hari rabu”. Karena kondisi hari kamis tidak terpenuhi
maka baris “Ini hari kamis” tidak dijalankan. Dan akan mengeksekusi kode pada blok else.

Anda juga bisa menggunakan Operator Kondisional seperti berikut :

5
<?php
$hari = "Rabu";
$cekhari = ($hari == "Kamis") ? "Ini hari Kamis" : "Ini Hari Rabu";
echo $cekhari;
?>
Hasil dari eksekusi programnya sama saja,.

Jika kondisi yang di cek lebih dari 2 maka anda bisa menggunakan elseif :

belajarkondisi2.php
<?php
$hari = "Rabu";

if ($hari == "Kamis") {
echo "Ini hari kamis";
}elseif($hari == "jumat") {
echo "Ini Hari Jumat";
}else{
echo "Ini Hari rabu";
}
?>

Switch Statement
Struktur logika switch adalah sebuah struktur percabangan yang akan memeriksa satu variabel, lalu
menjalankan perintah sesuai dengan kondisi. Bentuk umumnya adalah.
switch (variable) {
case 'value':
# code...
break;

default:
# code...
break;
}
Contoh :

Belajarswitch.php
<?php
$hari = 'rabu';

switch ($hari) {
case 'rabu':
echo "Ini hari rabu";
break;
case 'kamis':
echo "Ini hari kamis";

6
break;
default:
echo "Hari Tidak Ketemu";
break;
}
?>
Jika dijalankan maka akan menampilkan tulisan “Ini Hari Rabu”.

Perulangan
Perulangan adalah metode yang digunakan pada hampir setiap bahasa pemrograman untuk
mengulang sebuah proses atau menampilkan hasil yang sama sebanyak n pada program. Kita tidak
perlu menambahkan baris kode yang sama cukup dengan menggunakan perulangan.

while loops
Bentuk umum dari while adalah :
while (kondisi benar) {
kode yang akan dijalankan;
}
Contoh :

belajarwhile.php
<?php
$x = 1;

while($x <= 5) {
echo "Nomor sekarang adalah : $x <br>";
$x++;
}
?>
Karena nilai x benar kurang dari sama dengan 5, maka kode blok program selanjutnya akan
dijalankan.

Do ... While Loops


Do...while akan mengeksekusi blok satu kali, kemudian akan mengecek kondisinya. Dan akan
mengulanginya jika kondisinya benar.
do {
code to be executed;
} while (condition is true);

Contoh :

7
belajardowhile.php
<?php
$x = 1;

do {
echo "Nomor Sekarang adalah : $x <br>";
$x++;
} while ($x <= 5);
?>
Jika dijalankan maka akan menghasilkan perulangan dari 1 sampai dengan 5.

Sekarang coba anda ubah nilai pada variabel x menjadi 7 apakah yang akan terjadi ?
Ya benar “Nomor Sekarang adalah : 7” inilah yang membedakan antara while dan do...while, pada do...while
penyataan di eksekusi terlebih dahulu sebelum di cek. Sehingga mengakibatkan do..while mengeksekusi paling
tidak 1 kali bahkan jika kondisinya salah saat pertama kali.

For Loops
Bentuk umum dari perulangan for adalah seperti berikut :
for (start; condition; increment) {
code to be executed;
}
Contoh pada program :

Belajarfor.php
<?php
$x = 5;

for ($i=1; $i <= $x; $i++) {


echo "Nomor Sekarang adalah : $i <br>";
}
?>

Foreach
Struktur perulangan foreach adalah perulangan khusus yang digunakan untuk menangani data array.
Contoh :

Perulangan dengan for

For Foreach
<?php <?php

8
$nama = array("Muharir", "Yogi", $nama = array("Muharir", "Yogi",
"Ali","Eka","Hatimi"); "Ali","Eka","Hatimi");

for ($i=0; $i < 5 ; $i++) foreach ($nama as $name)


{ {
echo "$nama[$i] <br>"; echo "$name <br>";
} }
?> ?>

Jika Dijalankan maka akan menghasilkan output yang sama.

Function
Selain fungsi bawaan PHP, kita bisa membuat fungsi sendiri.

- Fungsi adalah blok pernyataan yang bisa digunakan berulang kali dalam sebuah program.
- Sebuah fungsi tidak akan langsung dijalankan saat sebauh halaman di load.
- Sebuah fungsi akan dieksekusi jika fungsi tersebut dipanggil.

Bentuk umum dari sebuah fungsi adalah seperti berikut :


<?php

function functionName() {
code to be executed;
}
?>
Contoh :

belajarfunction.php
<?php
function manusia($nama, $umur)
{
echo "Hallo ".$nama." umur kamu adalah ".$umur." tahun";
}
//panggil functionnya
manusia("Muharir",23);
?>
Jika dijalankan pada browser akan tampil seperti berikut :

Fungsi dengan mengembalikan nilai

belajarfunction2.php

9
<?php

function jumlah($x, $y)


{
$hasil = $x + $y;
return $hasil;
}

$hitung = jumlah(5,7);
echo "hasil penjumlahannya adalah : ".$hitung;
?>
Jika dijalankan :

Cookie
Cookie dan session adalah data atau informasi yang diciptakan oleh suatu website untuk disimpan di
web browser. Ketika user sedang menjelajahi web tersebut. Yang paling umum kita jumpai adalah
cookie digunakan untuk menyimpan username dan passowrd login agar pengguna tidak selalu harus
mengisikannya pada saat membuka page (halaman web). Biasanya web menyediakan checkbox
“remember me” atau “Ingat saya selalu” yangterdapat pada bagian box login. Mari kita coba
praktikan :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>belajar Cookie</title>
</head>
<body>
<?php
if (isset($_COOKIE["nama"])) {
echo "Isi dari cookie 'nama' adalah : ".$_COOKIE['nama'];
}else{
setcookie("nama", "Muharir");
echo "Cookie berhasil dibuat, please refresh browser";
}
?>
</body>
</html>

Jika dijalankan pada browser :

Jika kita refresh browser :

10
Dan jika anda menggunakan browser chrome bisa ke Setting -> Advance Setting -> Privasi ->
Content Setting akan terlihat Cookie yg kita simpan dengan nama = nama.

Session
Session adalah salah saty fasilitas yang ada pada php untuk menyimpan data sementara ke dalam
variabel (session variable) sehingga data tadi dapat diakses oleh client selama variabel session tidak
dikosongkan atau dihilangkan. Yang membedakan dengan cookie adalah cookie disimpan pada web
browser sedangkan session disimpan di sisi server (web server).

Contoh :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>belajar Cookie</title>
</head>
<body>
<?php
session_start();
$_SESSION["nama"] = "Muharir";
$_SESSION["alamat"] = "Sungai tabuk";

echo "Variabel sudah disimpan pada server <br>";

if (!isset($_SESSION['nama']) && ($_SESSION['alamat'])) {


echo "Gagal Menyimpan session";

11
}else{
echo "<h1>".$_SESSION["nama"]. "<br>".$_SESSION["alamat"];
}
?>
</body>
</html>

Untuk menghapusnya kita bisa menggunakan session_destroy().

12
Sesi 1 : Menyiapkan Database, Login Form dan Templating

Struktur table
1. table user (tb_user)
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(50) NOT NULL,
`email` varchar(70) NOT NULL,
`foto` varchar(100) DEFAULT NULL,
`level` int(2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

2. Table anggota (tb_anggota)


DROP TABLE IF EXISTS `tb_anggota`;
CREATE TABLE `tb_anggota` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL,
`npm` int(8) NOT NULL,
`nama` varchar(100) NOT NULL,
`tempat_lahir` varchar(50) NOT NULL,
`tgl_lahir` date NOT NULL,
`jk` enum('L','P') NOT NULL,
`prodi` varchar(50) NOT NULL,
`tgl_dibuat` date DEFAULT NULL,
`tgl_diubah` date DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
CONSTRAINT `tb_anggota_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES
`tb_user` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

3. Table buku (tb_buku)


DROP TABLE IF EXISTS `tb_buku`;
CREATE TABLE `tb_buku` (
`id` int(5) NOT NULL,
`judul` varchar(200) NOT NULL,
`pengarang` varchar(100) NOT NULL,
`penerbit` varchar(150) NOT NULL,
`thn_terbit` varchar(4) NOT NULL,
`isbn` varchar(25) NOT NULL,
`jumlah_buku` int(3) NOT NULL,
`lokasi` enum('rak1','rak2','rak3') NOT NULL,
`tgl_input` datetime NOT NULL,
`cover` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

13
4. Table transaksi (tb_transaksi)
DROP TABLE IF EXISTS `tbl_transaksi`;
CREATE TABLE `tbl_transaksi` (
`id` int(5) NOT NULL,
`anggota_id` int(11) DEFAULT NULL,
`buku_id` int(11) DEFAULT NULL,
`tgl_pinjam` varchar(15) NOT NULL,
`tgl_kembali` varchar(15) NOT NULL,
`status` varchar(10) NOT NULL,
`ket` varchar(250) NOT NULL,
PRIMARY KEY (`id`),
KEY `anggota_id` (`anggota_id`),
KEY `buku_id` (`buku_id`),
CONSTRAINT `tbl_transaksi_ibfk_2` FOREIGN KEY (`anggota_id`) REFERENCES
`tb_anggota` (`id`) ON UPDATE CASCADE,
CONSTRAINT `tbl_transaksi_ibfk_3` FOREIGN KEY (`buku_id`) REFERENCES
`tb_buku` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Sistem ini kita buat seminimal mungkin, kedepan anda bisa mengembangkannya sesuai
kebutuhan. Sistem ini merangkum semua pelajaran yang sudah kita pelajari di bab
sebelumnya.
Jika dilihat relasi antar table maka seperti berikut :

Membuat Koneksi Database


Buat project baru, dengan nama folder perpusku. Buat folder db didalamnya sehingga
directorynya menjadi seperti berikut :
-perpusku
--db
Lalu buat file didalam folder db dengan nama koneksi.php dengan isi seperti berikut :

14
koneksi.php
<?php

$db_host = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "perpusku";

$link = mysqli_connect($db_host, $db_user, $db_password, $db_name);

if (!$link) {
die("Gagal Terkoneksi".mysqli_connect_errno()." - ".
mysqli_connect_error());
exit();
}
?>
Pada coding diatas kita membuat 4 variabel $db_host, $db_user, $db_password, $db_name
yang masing-masing variabel menyimpan nilai yang kita perlukan untuk menghubungkan
aplikasi kita dengan database.
Variabel $link meyimpan hasil dari metode mysqli_connect yang digunakan untuk membuka
koneksi ke mysql server. Setelah itu variabel $link di cek menggunakan percabangan IF
Negasi. Masih ingatkan negasi atau ingkaran  . Jika kondisinya tidak true (false) maka akan
menampilkan error “Gagal Terkoneksi dan menampilkan errornya dengan perintah
mysqli_connect_errorno() dan mysqli_connect_error().

mysqli_connect() mempunyai nilai kembalian boolean (true dan false) jika berhasil
konek maka akan bernilai true jika gagal akan bernilai false.
mysqli_connect_errorno() dan mysqli_connect_error adalah 2 fungsi yang
digunakan untuk menampilkan error jika koneksi gagal. Perbedaannya adalah jika
errorno menampilkan 4 digit angka kode error mysql sedangkan mysqli_
connect_error menampilkan pesan errornya. Gitu 

Membuat Login Aplikasi


Buat file baru dengan nama cek_login.php dan simpan pada folder db.
cek_login.php
<?php
include 'koneksi.php';
if (isset($_POST['log'])) {
$user = mysqli_real_escape_string($link, $_POST['username']);
$pass = mysqli_real_escape_string($link, $_POST['password']);
$pass = md5($pass);

15
$query = mysqli_query($link, "SELECT * FROM tb_user WHERE
username='$user' AND password='$pass'");
$data = mysqli_fetch_array($query);
$username = $data['username'];
$password = $data['password'];
$level = $data['level'];

if ($user==$username && $pass ==$password) {


session_start();
$_SESSION['nama'] =$username;
$_SESSION['level'] =$level;
if ($level == 1) {
echo "<script>alert('Anda berhasil login. Sebagai :
Admin');</script>";
echo "<meta http-equiv='refresh' content='0;
url=../admin/home.php'>";
}else{
echo "<script>alert('Anda berhasil Log In. Sebagai :
Anggota');</script>";
echo "<meta http-equiv='refresh' content='0;
url=../anggota/home.php'>";
}
}else{
echo "<script>alert('Username dan Password Tidak
Ditemukan');</script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}
}
?>

Membuat Login Form


Buat folder baru dengan nama assets dan copykan semua folder (css, js, fonts) pada folder
Admin LTE ke folder assets yang ada pada folder project. Sehingga akan menghasilkan
struktur folder seperti berikut. Oh ya sebagian saya juga menambahkan asset pendukung dan
semuanya saya rasa ada pada folder Admin LTE -> Plugins. Jika anda tidak menemukannya
anda bisa mengambilnya pada project yang dapat anda download pada repository github
saya. Berikut ini adalah struktur folder project yang kita buat.

16
Buka Admin LTE dan cari Pages -> Example -> login.html
Buat file baru pada folder perpusku dan simpan dengan nama login.php dan copykan semua
kode yang ada pada login.html ke login.php. Edit file login.php dan buang beberapa
komponen yang tidak penting seperti social media link dan sesuaikan css, javascript, dan icon,
sehingga akan mengasilkan kode seperti berikut.
url browser localhost/perpusku/login.php

17
login.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>PERPUS | Log in</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.6 -->
<link rel="stylesheet" href="assets/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/font-awesome.min.css">
<link rel="stylesheet" href="assets/css/AdminLTE.min.css">

</head>
<body class="hold-transition login-page">
<div class="login-box">
<div class="login-logo">
<a href="#"><b>PERPUS</b>UNISKA</a>
</div>
<!-- /.login-logo -->
<div class="login-box-body">
<p class="login-box-msg">Sign in to start your session</p>

<form action="db/cek_koneksi.php" method="POST">


<div class="form-group has-feedback">
<input type="text" class="form-control" name="username" placeholder="Username" required>
<span class="glyphicon fa fa-user-o form-control-feedback" aria-hidden="true"></span>
</div>
<div class="form-group has-feedback">

18
<input type="password" class="form-control" name="password" placeholder="Password" required>
<span class="glyphicon fa fa-key form-control-feedback" aria-hidden="true">
</div>
<div class="row">
<div class="col-xs-8">
</div>
<!-- /.col -->
<div class="col-xs-4">
<button type="submit" name="log" class="btn btn-primary btn-block btn-flat">Login</button>
</div>
<!-- /.col -->
</div>
</form>

</div>
<!-- /.login-box-body -->
</div>
<!-- /.login-box -->

<!-- jQuery 2.2.3 -->


<script src="assets/js/jquery-2.2.3.min.js"></script>
<!-- Bootstrap 3.3.6 -->
<script src="assets/js/bootstrap.min.js"></script>

</body>
</html>

19
Perhatikan pada form tag <form action="db/cek_koneksi.php" method="POST"> terlihat bahwa properti action di isi dengan
file cek_koneksi.php yang sudah kita buat sebelumnya, intinya semua data yang kita inputkan pada username dan password akan di kirimkan
cek_koneksi.php lalu ditangkap inputannya dengan $_POST[‘nama inputan’] dan di cek seperti yang sudah saya tuliskan sebelumnya.
Sekarang anda bisa mencoba untuk login, tapi sebelumnya isikan recordnya di tb_user terlebih dahulu.

20
Saya memasukkan username : admin dan password : admin dengan enkripsi md5 pada
password.
Jika tampil alert “Anda Berhasil Login. Sebagai Admin”, bararti anda telah berhasil. Yeay 

Jika anda klik oke. Maka akan muncul halaman Not Found.

Upsss kenapa bisa demikian ? Jika anda perhatikan si Mr. PHP sedang mencari file dengan
nama home.php yg berada pada folder admin/home.php wajar bukan jika Si Mr. PHP bingung
karena tidak menemukan folder dan file tersebut, karena kita memang belum membuatnya.
Hehe ...
Yuk kita buat dulu home.php dan simpan di folder admin.
home.php
<h1>Halo bro, you are so great !!!</h1>
Coba anda login kembali. Apa yang terjadi ?
Yups akan benar sudah tidak muncul Not Found dan berganti dengan :

21
Memasang Template Admin LTE
Kelihatannya desain yang kita buat kurang menarik, mari kita ambil halaman home.php dari file index.html yg ada pada Admin LTE. Dan Copy
semua isinya ke halaman home.php yg ada pada folder admin. Edit dan sesuaikan dengan CSS,JS, Icon Image dan yang lain seperti berikut :

22
home.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Perpustakaan | UNISKA</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.6 -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css">
<!-- font awesome -->
<link rel="stylesheet" href="../assets/css/font-awesome.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="../assets/css/AdminLTE.min.css">
<!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link rel="stylesheet" href="../assets/css/_all-skins.min.css">
<!-- Date Picker -->
<link rel="stylesheet" href="../assets/css/datepicker3.css">

</head>
<body class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">

<header class="main-header">
<!-- Logo -->
<a href="#" class="logo">
<!-- mini logo for sidebar mini 50x50 pixels -->
<span class="logo-mini"><b>P</b>U</span>

23
<!-- logo for regular state and mobile devices -->
<span class="logo-lg"><b>PERPUS</b> UNISKA</span>
</a>
<!-- Header Navbar: style can be found in header.less -->
<nav class="navbar navbar-static-top">
<!-- Sidebar toggle button-->
<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
<span class="sr-only">Toggle navigation</span>
</a>

<div class="navbar-custom-menu">
<ul class="nav navbar-nav">

<!-- User Account: style can be found in dropdown.less -->


<li class="dropdown user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<img src="dist/img/user2-160x160.jpg" class="user-image" alt="User Image">
<span class="hidden-xs">Alexander Pierce</span>
</a>
<ul class="dropdown-menu">
<!-- User image -->
<li class="user-header">
<img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">

<p>
Muharir - Web Developer
<small>Member since Nov. 2014</small>
</p>
</li>
<!-- Menu Footer-->
<li class="user-footer">
<div class="pull-left">

24
<a href="#" class="btn btn-default btn-flat">Profile</a>
</div>
<div class="pull-right">
<a href="#" class="btn btn-default btn-flat">Sign out</a>
</div>
</li>
</ul>
</li>
<!-- Control Sidebar Toggle Button -->
<li>
<a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
</li>
</ul>
</div>
</nav>
</header>
<!-- Left side column. contains the logo and sidebar -->
<aside class="main-sidebar">
<!-- sidebar: style can be found in sidebar.less -->
<section class="sidebar">

<!-- sidebar menu: : style can be found in sidebar.less -->


<ul class="sidebar-menu">
<li class="header">MAIN NAVIGATION</li>
<li class="active treeview">
<a href="#">
<i class="fa fa-dashboard"></i> <span>Master Data</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>

25
<ul class="treeview-menu">
<li class="active"><a href="index.html"><i class="fa fa-circle-o"></i> Data Anggota</a></li>
<li><a href="index2.html"><i class="fa fa-circle-o"></i> Data Buku</a></li>
<li><a href="index2.html"><i class="fa fa-circle-o"></i> Data Admin</a></li>
</ul>
</li>
<li>
<a href="pages/widgets.html">
<i class="fa fa-files-o"></i> <span>Transaksi</span>
<span class="pull-right-container">
<small class="label pull-right bg-green">new</small>
</span>
</a>
</li>
<li class="treeview">
<a href="#">
<i class="fa fa-pie-chart"></i>
<span>Laporan</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li><a href="pages/charts/chartjs.html"><i class="fa fa-circle-o"></i> Laporan Transaksi</a></li>
<li><a href="pages/charts/morris.html"><i class="fa fa-circle-o"></i> Laporan Anggota</a></li>
<li><a href="pages/charts/flot.html"><i class="fa fa-circle-o"></i> Laporan Data Buku</a></li>
<li><a href="pages/charts/inline.html"><i class="fa fa-circle-o"></i> Laporan Peminjaman</a></li>
<li><a href="pages/charts/inline.html"><i class="fa fa-circle-o"></i> Laporan Pengembalian</a></li>
</ul>
</li>
</ul>
</section>

26
<!-- /.sidebar -->
</aside>

<!-- Content Wrapper. Contains page content -->


<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
Dashboard
<small>Control panel</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
<li class="active">Dashboard</li>
</ol>
</section>

<!-- Main content -->


<section class="content">
<!-- Small boxes (Stat box) -->
<div class="row">
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-aqua">
<div class="inner">
<h3>150</h3>

<p>Buku</p>
</div>
<div class="icon">
<i class="ion ion-bag"></i>

27
</div>
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-green">
<div class="inner">
<h3>53<sup style="font-size: 20px">%</sup></h3>

<p>Transaksi</p>
</div>
<div class="icon">
<i class="ion ion-stats-bars"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-yellow">
<div class="inner">
<h3>44</h3>

<p>Anggota</p>
</div>
<div class="icon">
<i class="ion ion-person-add"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>

28
</div>
</div>
<!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-red">
<div class="inner">
<h3>65</h3>

<p>Unique Visitors</p>
</div>
<div class="icon">
<i class="ion ion-pie-graph"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->
</div>
<!-- </div>
<!-- /.row -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b><a href="https://muharir.com">By : Muharir</a></b>
</div>

29
<strong>Copyright &copy;<a href="http://almsaeedstudio.com">FTI UNISKA @2017</a>.</strong> Built With <i
class="fa fa-heart" aria-hidden="true" style="color: red"></i> and <i class="fa fa-coffee" aria-hidden="true"
style="color: #7B3F00">Hot Chocolate</i>
</footer>
</div>
<!-- ./wrapper -->

<!-- jQuery 2.2.3 -->


<script src="../assets/js/jquery-2.2.3.min.js"></script>
<!-- Bootstrap 3.3.6 -->
<script src="../assets/js/bootstrap.min.js"></script>
<!-- datepicker -->
<script src="../assets/js/bootstrap-datepicker.js"></script>
<!-- Slimscroll -->
<script src="../assets/js/jquery.slimscroll.min.js"></script>
<!-- FastClick -->
<script src="../assets/js/fastclick.min.js"></script>
<!-- AdminLTE App -->
<script src="../assets/js/app.min.js"></script>
</body>
</html>

30
Jika anda telah selesai mengeditnya seperti gambar diatas, maka sebenarnya kita sudah selesai. Tapi alangkah lebih praktisnya kita memisahkan halaman
menjadi beberapa bagian seperti : top_menu.php, sidebar.php, footer.php, dan dashboard.php Apakah mengharuskan untuk dipisahkan ? Tidak. Tujuan
memisahkan menjadi beberapa file adalah agar kita fokus mengedit bagian-bagian tertentu yang diperlukan. Misal anda hanya ingin mengedit pada bagian
footer, maka tidak perlu membuka kode yang banyak tadi hanya untuk mencari bagian footer sehingga kode menjadi lebih mudah di maintain. Gitu 
Pada kode sebelumnya saya sudah menandai kode dengan cetak tebal dan font berukuran lebih besar daripada yang lain yaitu (14). Nah dengan adanya
tanda tandi saya harap anda tidak bingung memisahkannya.

Buat file baru dengan nama topmenu_template.php


topmenu_template.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Perpustakaan | UNISKA</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.6 -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css">
<!-- font awesome -->
<link rel="stylesheet" href="../assets/css/font-awesome.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="../assets/css/AdminLTE.min.css">
<!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link rel="stylesheet" href="../assets/css/_all-skins.min.css">
<!-- Date Picker -->
<link rel="stylesheet" href="../assets/css/datepicker3.css">

</head>

31
<body class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">

<header class="main-header">
<!-- Logo -->
<a href="#" class="logo">
<!-- mini logo for sidebar mini 50x50 pixels -->
<span class="logo-mini"><b>P</b>U</span>
<!-- logo for regular state and mobile devices -->
<span class="logo-lg"><b>PERPUS</b> UNISKA</span>
</a>
<!-- Header Navbar: style can be found in header.less -->
<nav class="navbar navbar-static-top">
<!-- Sidebar toggle button-->
<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
<span class="sr-only">Toggle navigation</span>
</a>

<div class="navbar-custom-menu">
<ul class="nav navbar-nav">

<!-- User Account: style can be found in dropdown.less -->


<li class="dropdown user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<img src="dist/img/user2-160x160.jpg" class="user-image" alt="User Image">
<span class="hidden-xs">Alexander Pierce</span>
</a>
<ul class="dropdown-menu">
<!-- User image -->
<li class="user-header">
<img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">

32
<p>
Muharir - Web Developer
<small>Member since Nov. 2014</small>
</p>
</li>
<!-- Menu Footer-->
<li class="user-footer">
<div class="pull-left">
<a href="#" class="btn btn-default btn-flat">Profile</a>
</div>
<div class="pull-right">
<a href="#" class="btn btn-default btn-flat">Sign out</a>
</div>
</li>
</ul>
</li>
<!-- Control Sidebar Toggle Button -->
<li>
<a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
</li>
</ul>
</div>
</nav>
</header>

Buat File baru lagi dengan sidebar_template.php


sidebar_template.php
<!-- Left side column. contains the logo and sidebar -->
<aside class="main-sidebar">
<!-- sidebar: style can be found in sidebar.less -->
<section class="sidebar">

33
<!-- sidebar menu: : style can be found in sidebar.less -->
<ul class="sidebar-menu">
<li class="header">MAIN NAVIGATION</li>
<li class="active treeview">
<a href="#">
<i class="fa fa-dashboard"></i> <span>Master Data</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li class="active"><a href="index.html"><i class="fa fa-circle-o"></i> Data Anggota</a></li>
<li><a href="index2.html"><i class="fa fa-circle-o"></i> Data Buku</a></li>
<li><a href="index2.html"><i class="fa fa-circle-o"></i> Data Admin</a></li>
</ul>
</li>
<li>
<a href="pages/widgets.html">
<i class="fa fa-files-o"></i> <span>Transaksi</span>
<span class="pull-right-container">
<small class="label pull-right bg-green">new</small>
</span>
</a>
</li>
<li class="treeview">
<a href="#">
<i class="fa fa-pie-chart"></i>
<span>Laporan</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>

34
</a>
<ul class="treeview-menu">
<li><a href="pages/charts/chartjs.html"><i class="fa fa-circle-o"></i> Laporan Transaksi</a></li>
<li><a href="pages/charts/morris.html"><i class="fa fa-circle-o"></i> Laporan Anggota</a></li>
<li><a href="pages/charts/flot.html"><i class="fa fa-circle-o"></i> Laporan Data Buku</a></li>
<li><a href="pages/charts/inline.html"><i class="fa fa-circle-o"></i> Laporan Peminjaman</a></li>
<li><a href="pages/charts/inline.html"><i class="fa fa-circle-o"></i> Laporan Pengembalian</a></li>
</ul>
</li>
</ul>
</section>
<!-- /.sidebar -->
</aside>

Buat File baru untuk dashboard dan simpan pada folder admin.
dasboard.php
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
Dashboard
<small>Control panel</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
<li class="active">Dashboard</li>
</ol>
</section>

<!-- Main content -->


<section class="content">

35
<!-- Small boxes (Stat box) -->
<div class="row">
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-aqua">
<div class="inner">
<h3>150</h3>

<p>Buku</p>
</div>
<div class="icon">
<i class="ion ion-bag"></i>
</div>
<a href="?page=buku" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-green">
<div class="inner">
<h3>53<sup style="font-size: 20px">%</sup></h3>

<p>Transaksi</p>
</div>
<div class="icon">
<i class="ion ion-stats-bars"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->

36
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-yellow">
<div class="inner">
<h3>44</h3>

<p>Anggota</p>
</div>
<div class="icon">
<i class="ion ion-person-add"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-red">
<div class="inner">
<h3>65</h3>

<p>Unique Visitors</p>
</div>
<div class="icon">
<i class="ion ion-pie-graph"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->
</div>
<!-- </div>

37
<!-- /.row -->
</section>
<!-- /.content -->
</div>

Buat File baru untuk footer.


footer_template.php
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b><a href="https://muharir.com">By : Muharir</a></b>
</div>
<strong>Copyright &copy;<a href="http://almsaeedstudio.com">FTI UNISKA @2017</a>.</strong> Built With <i
class="fa fa-heart" aria-hidden="true" style="color: red"></i> and <i class="fa fa-coffee" aria-hidden="true"
style="color: #7B3F00">Hot Chocolate</i>
</footer>
</div>
<!-- ./wrapper -->

<!-- jQuery 2.2.3 -->


<script src="../assets/js/jquery-2.2.3.min.js"></script>
<!-- Bootstrap 3.3.6 -->
<script src="../assets/js/bootstrap.min.js"></script>
<!-- datepicker -->
<script src="../assets/js/bootstrap-datepicker.js"></script>
<!-- Slimscroll -->
<script src="../assets/js/jquery.slimscroll.min.js"></script>
<!-- FastClick -->
<script src="../assets/js/fastclick.min.js"></script>
<!-- AdminLTE App -->
<script src="../assets/js/app.min.js"></script>

38
</body>
</html>
Untuk home.php perubahan filenya menjadi seperti berikut,
home.php
<?php
include '../topmenu_template.php';
include '../sidebar_template.php';
include '../db/koneksi.php';

?>
<?php
error_reporting(0);
// membuat route
switch($_GET['page'])
{
default:
include "dashboard.php";
break;

}
?>

<!-- Disini untuk footer_template.php -->


<?php include '../footer_template.php'; ?>

Baik simpan semua filenya dan jalankan lagi apakah tampilan homenya tetap sama ? Jika iya maka bisa dipastikan anda berhasil memisahkan
kesemua filenya. Sip
Buka localhost/perpusku/admin/home.php

39
Perhatikan pada home.php terlihat bahwa home.php menginclude semua file yang kita butuhkan seperti koneksi dan halaman sidebar, footer menu dan
yang lain, lalu pada bagian tengah terdapat percabangan menggunakan switch.

switch($_GET['page'])
{
default:
include "dashboard.php";
break;

}
Pada percabangan switch kita mengambil variabel page yang dikirim melalui url. Sedangkan error error_reporting(0); adalah sebuah metode
yang ada pada php untuk menyembunyikan error.

40
Sesi 2 : Membuat CRUD User
Membuat Form Input User, Image Upload, dan Detail User
Apa itu CRUD ? CRUD merupakan kependekan dari Create, Read, Update, Delete . Pada
Sistem Informasi pada umumnya tidak bisa lepas dari proses tersebut, dari melihat data,
mengedit menyimpan dan menghapus, pada form ini kita juga menggunakan validasi bawaan
dari html5. Mari kita mulai dari menyimpan data. Buat file baru dengan nama
tambah_user.php.
tambah_user.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{
?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>
Admin <small>Tambah User</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Tambah User</li>
</ol>
</section>

<section class="content">
<div class="row">

<?php $status = isset($_GET['status']) ? $_GET['status'] : ""; ?>

<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Tambah Data User</h3>
</div>

<form action="?page=simpan_user" method="POST"


enctype="multipart/form-data">
<div class="box-body">
<?php
if ($status){
?>

41
<div class="alert alert-danger alert-dismissible">
<button class="close" type="button" data-dismiss="alert" aria-
hidden="true">&times;</button>
<h4><i class="icon fa fa-close">Gagal!</i></h4>

<?php echo $status; ?>


</div>
<?php
}
?>
<div class="col-md-10">
<label> Username </label>
<input type="text" class="form-control" placeholder="username"
name="username" required>
</div>
</div>

<div class="box-body">
<div class="col-md-10">
<label> Password </label>
<input type="password" class="form-control"
placeholder="password" name="password" required>
</div>
</div>

<div class="box-body">
<div class="col-md-10">
<label> Email</label>
<input type="email" class="form-control" placeholder="email"
name="email" required>
</div>
</div>

<div class="box-body">
<div class="col-md-10">
<label> Foto </label>
<input type="file" class="form-control" name="foto">
</div>
</div>

<div class="box-body">
<div class="col-md-10">
<label> Level </label>
<select name="level" class="form-control">
<option value=1>Admin</option>

42
<option value=2>User</option>
</select>
</div>
</div>

<div class="box-body">
<div class="box-footer">
<input type="submit" class="btn btn-primary" value="Simpan"
name="simpan">
</div>
</div>
</form>

</div>
</div>
</div>
</section>
</div>

<?php
}
?>

Nah untuk mencobanya silahkan anda tambahkan script dibawah ini pada home.php tambahkan
yang dicetak tebal saja,

home.php

<?php
error_reporting(0);
// membuat route
switch($_GET['page'])
{

default:
include "dashboard.php";
break;

case "tambah_user";
include "tambah_user.php";
break;

case "simpan_user";
include "simpan_user.php";
break;

}
?>

43
Setelah ditambahkan buka url berikut untuk melihat hasilnya

http://localhost/perpusku/admin/?page=tambah_user

Jika benar maka akan terbuka form seperti berikut

Form isian diatas belum berfungsi karena kita belum membuat file simpan_user.php yang berfungsi
untuk memproses inputan yang telah diisikan, buat file baru dengan nama simpan_user.php

simpan_user.php

<?php
include '../db/koneksi.php';

$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$foto = $_POST['foto'];
$level = $_POST['level'];
$pass = md5($password);

if ($_POST['simpan']) {
$extensi_diperbolehkan = array('png','jpg','jpeg');
$nama = $_FILES['foto']['name'];
$x = explode('.', $nama);
$extensi = strtolower(end($x));
$ukuran = $_FILES['foto']['size'];
$file_tmp = $_FILES['foto']['tmp_name'];

if(in_array($extensi, $extensi_diperbolehkan) === true){

44
if ($ukuran < 5000000000) {
move_uploaded_file($file_tmp, '../assets/image/'.$nama);
$query = mysqli_query($link, "INSERT INTO tb_user(username, password,
email, foto, level)
VALUES('$username','$pass','$email','$nama','$level')");

if (!$query) {
$isi = "Gagal Menambahkan Data dengan kesalahan =
".mysqli_errno($link). " - ".mysqli_error($link);
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=tambah_user.php?status=$isi'>";
}else{
$query = mysqli_query($link, "SELECT id FROM tb_user WHERE
username='$username'");
$data = mysqli_fetch_array($query);
$id = $data[0];
echo "<script> alert('Data Berhasil Ditambahkan') </script>";
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=detail_user&id=$id'>";
}
}else{
$isi = "FIle terlalu besar = ".mysqli_errno($link). " -
".mysqli_error($link);
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=tambah_user.php&status=$isi'>";
}
}else{
$isi = "Extensi File Tidak Diperbolehkan = ".mysqli_errno($link). " -
".mysqli_error($link);
die(mysqli_error($link));
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=tambah_user&status=$isi'>";
}
}

?>

Sebelum anda mencoba mengisikan data, buatlah folder image dan simpan pada folder assets, kelak
folder inilah yang akan menampung semua gambar yang akan kita upload.

45
Nah sekarang silahkan anda coba untuk menambahkan usernya. Jika berhasil maka akan muncul
notifikasi Data Berhasil Ditambahkan.

Dan lihat pada url, seharusnya diredirect ke halaman detail user dengan id user tersebut
localhost/perpusku/admin/home.php?page=detail_user&id=2 nah karena kita belum mempunyai
halaman tersebut, maka halaman home lah yang akan muncul (default) ini bisa terjadi karena kode
switch pada home.php

Mari kita buat halaman user_detail.php nya.

detail_user.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{
?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>
Admin <small>Detail User</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Detail User</li>
</ol>
</section>

<section class="content">
<div class="row">
<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Detail User User</h3>
</div>

<table class="table table-bordered">

46
<?php
$id = isset($_GET['id']) ? $_GET['id'] : "";
$query = mysqli_query($link, "SELECT*FROM tb_user WHERE
id='$id'");
$data = mysqli_fetch_array($query);
?>

<tbody>
<tr>
<th width="30%">ID</th>
<td>: <?php echo $data[0]; ?></td>
</tr>
<tr>
<th width="30%">Username</th>
<td>: <?php echo $data[1]; ?></td>
</tr>
<tr>
<th width="30%">Password</th>
<td>: <?php echo $data['password']; ?></td>
</tr>
<tr>
<th width="30%">Email</th>
<td>: <?php echo $data['email']; ?></td>
</tr>
<tr>
<th width="30%">Foto</th>
<td>
<?php
$cek = $data['foto'];
if (isset($data['foto'])) {
echo ": <img src='../assets/image/$cek', alt=''
width='200' height='250'>";
} else {
echo ": tidak ada data";
}
?>

</td>
</tr>
<tr>
<th width="30%">Level</th>
<td>: <?php echo $data[5]; ?></td>
</tr>
<tr>
<td></td>
<?php $id = $data['id']; ?>
<td colspan="2"><a href='?page=edit_user&id=<?php echo $id;
?>' class="btn btn-info">Edit User</a></td>

47
</tr>
</tbody>
</table>

</div>
</div>
</div>
</section>

</div>
<?php
}
?>

Dan tambahkan code berikut pada home.php

home.php

switch($_GET['page'])
{

default:
include "dashboard.php";
break;

case "tambah_user";
include "tambah_user.php";
break;

case "simpan_user";
include "simpan_user.php";
break;

case "detail_user";
include "detail_user.php";
break;

Coba isikan lagi datanya dan lihat apakah sudah diredirect ke halaman detail_user ?

Kalau berhasil maka akan muncul halaman seperti berikut :

48
Lihat pada isian level disana terlihat levelnya 1 berarti user tersebut adalah berlevel admin, nah jika
anda merasa tampilan level kurang baik, mari kita edit sedikit pada detail user untuk kolom level
menjadi seperti berikut :

detail_user.php

<tr>
<th width="30%">Level</th>
<td>: <?php
if ($data['level'] == 1) {
echo "Admin";
}elseif ($data['level'] == 2) {
echo "Pengguna";
}else{
echo "";
}
?>

</td>
</tr>

Dan refresh pada halaman detail User, maka level akan berubah menjadi Admin atau pengguna
sesuai dengan yang kita buat pada percabangan If.

Pada password kita menggunakan enkripsi md5 untuk keamanan passwordnya.

Menambahkan List User dan Pagination Data


Nah saatnya kali ini kita akan memperbaiki menu yang ada di sidebar website kita, coba anda klik-
klik menunya tentu anda hanya akan menemukan halaman notfound bukan.

49
Mari kita perbaiki menu Data Admin terlebih dahulu, ubah Data Admin Menjadi Data User.

Sidebar_template.php

<li><a href="?page=list_user"><i class="fa fa-circle-o"></i> Data


User</a></li>

Tambahkan juga pada home.php koding berikut

case "list_user";
include "list_user.php";
break;

Berikutnya buat file baru dan simpan pada folder admin dengan nama list_user.php

list_user.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{
?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>
Admin <small>Daftar User</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Daftar User</li>
</ol>
</section>

<section class="content">

50
<div class="row">
<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Daftar User</h3>
</div>

<a href="?page=tambah_user" class="btn btn-primary">Tambah User</a>

<table class="table table-bordered">


<?php
$halaman = 5;
$page = isset($_GET["halaman"]) ? (int)$_GET["halaman"] : 1;
$mulai = ($page>1) ? ($page * $halaman) - $halaman : 0;
$result = mysqli_query($link, "SELECT*FROM tb_user");

$total = mysqli_num_rows($result);
$pages = ceil($total/$halaman);
$query = mysqli_query($link, "SELECT*FROM tb_user LIMIT $mulai,
$halaman") or die(mysqli_error);

?>
<thead>
<tr>
<th>ID</th>
<th>Username</th>
<th>Password</th>
<th>Email</th>
<th>Foto</th>
<th>Level</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
while ($user=mysqli_fetch_array($query)) {
?>
<tr>
<td><?php echo $user[0]; ?></td>
<td><a href="?page=detail_user&id=<?php echo $user[0];
?>"><?php echo $user[1]; ?></a></td>
<td><?php echo $user[2]; ?></td>
<td><?php echo $user[3]; ?></td>
<td><?php echo $user[4]; ?></td>
<td>
<?php
if ($user[5] == 1) {
echo "Admin";

51
}elseif ($user[5] == 2) {
echo "Pengguna";
}
?>

</td>
<td>
<a href="?page=edit_user&id=<?php echo $user[0]; ?>"><i
class="fa fa-edit"></i></a> || <a
href="?page=hapus_user&id=<?php echo $user[0]; ?>"
onclick="return confirm('Anda yakin ingin menghapus
Anggota <?php echo $user[1]; ?> ?')"><i class="fa fa-
trash"></i></a>
</td>
</tr>
<?php
}
?>
</tbody>

</table>
<div class="box-footer clearfix">
<ul class="pagination pagination-sm no-margin pull-right">
<li><a href="#">Halaman</a></li>
<?php for($i=1; $i<=$pages; $i++) { ?>
<li><a href="?page=list_user&halaman=<?php echo $i; ?>"><?php
echo $i; ?></a></li>
<?php } ?>
</ul>
</div>
</div>

</div>
</div>
</div>
</section>

</div>
<?php
}
?>
Jika dijalankan akan menghasilkan halaman seperti berikut :

52
Bagaimana cantik bukan ?

Mengedit User
Untuk mengedit user pastikan anda mendapatkan id sebagai key yang akan kita gunakan untuk
menghapus data pada query sql. Buat file denga nama edit_user.php

edit_user.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{

include '../db/koneksi.php';

$id = isset($_GET['id']) ? $_GET['id'] : "";


$query = mysqli_query($link, "SELECT*FROM tb_user WHERE id='$id'");
$data = mysqli_fetch_array($query);

?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>
Admin <small>Edit User</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Edit User</li>
</ol>
</section>

53
<section class="content">
<div class="row">

<?php $status = isset($_GET['status']) ? $_GET['status'] : ""; ?>

<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Edit Data User</h3>
</div>

<form action="?page=update_user" method="POST"


enctype="multipart/form-data">
<div class="box-body">
<?php
if ($status){
?>

<div class="alert alert-danger alert-dismissible">


<button class="close" type="button" data-dismiss="alert" aria-
hidden="true">&times;</button>
<h4><i class="icon fa fa-close">Gagal!</i></h4>

<?php echo $status; ?>


</div>
<?php
}
?>
<input type="text" name="id" value="<?php echo $data['id'] ?>"
hidden>
<div class="col-md-10">
<label> Username </label>
<input type="text" class="form-control" placeholder="username"
name="username" required value="<?php echo $data['username']
?>">
</div>
</div>

<div class="box-body">
<div class="col-md-10">
<label> Password </label>
<input type="password" class="form-control"
placeholder="password" name="password" required value="">
</div>
</div>

<div class="box-body">

54
<div class="col-md-10">
<label> Email</label>
<input type="email" class="form-control" placeholder="email"
name="email" required value="<?php echo $data['email'] ?>">
</div>
</div>

<div class="box-body">
<div class="col-md-10">
<label> Foto </label><br>
<img src="../assets/image/<?php echo $data['foto'] ?>"
width="190" height="170"><br>
<input type="file" name="foto">
</div>
</div>

<div class="box-body">
<div class="col-md-10">
<label> Level </label>
<select name="level" class="form-control">
<option value="">Pilih Level</option>
<option value=1 <?php if($data['level'] == 1){echo "selected";
} ?>>Admin</option>
<option value=2 <?php if ($data['level'] == 2){echo
"selected"; }?>>Pengguna</option>
</select>
</div>
</div>

<div class="box-body">
<div class="box-footer">
<input type="submit" class="btn btn-primary" value="Update"
name="update">
<a href="javascript:history.back()" class="btn btn-
danger">Kembali</a>
</div>
</div>
</form>

</div>
</div>
</div>
</section>
</div>

<?php
}
?>

55
Sama seperti form input sebelumnya form diatas belum berfungsi karena kita belum membuat file
yang akan menangani inputan diatas. Buat file baru dengan nama update_user.php

update_user.php

<?php
include '../db/koneksi.php';

$id = $_POST['id'];
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$foto = $_FILES['foto']['name'];
$level = $_POST['level'];
$pass = md5($password);

$query_gmbr = mysqli_query($link, "SELECT foto FROM tb_user WHERE id='$id'");


$gambarlama = mysqli_fetch_array($query_gmbr); // query untuk mengecek gambar
lawas

if ($_POST['update']) {
if($foto)
{
$extensi_diperbolehkan = array('png','jpg','jpeg');
$nama = $_FILES['foto']['name'];
$x = explode('.', $nama);
$extensi = strtolower(end($x));
$ukuran = $_FILES['foto']['size'];
$file_tmp = $_FILES['foto']['tmp_name'];

if(in_array($extensi, $extensi_diperbolehkan) === true){


if ($ukuran < 5000000000) {
move_uploaded_file($file_tmp, '../assets/image/'.$nama);
$target = $gambarlama['foto'];
if(file_exists('../assets/image/'.$target)){ //mengecek apakah
file terdahulu ada ?
unlink('../assets/image/'.$target); // jika ada maka
hapus filenya
gantikan dengan
yang baru
}
$query = mysqli_query($link,
"UPDATE tb_user SET username = '$username', password =
'$pass', email = '$email', foto = '$nama', level =
'$level' WHERE id = '$id'");

if (!$query) {
$isi = "Gagal Menambahkan Data dengan kesalahan =
".mysqli_errno($link). " - ".mysqli_error($link);

56
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=tambah_user.php?status=$isi'>";
}else{
$query = mysqli_query($link, "SELECT id FROM tb_user WHERE
username='$username'");
$data = mysqli_fetch_array($query);
$id = $data[0];
echo "<script> alert('Data Berhasil Diupdate') </script>";
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=detail_user&id=$id'>";
}
}else{
$isi = "File terlalu besar = ".mysqli_errno($link). " -
".mysqli_error($link);
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=edit_user&status=$isi'>";
}
}else{
}

$isi = "Extensi File Tidak Diperbolehkan = ".mysqli_errno($link). " -


".mysqli_error($link);
die(mysqli_error($link));
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=tambah_user&status=$isi'>";
}else{
$query = mysqli_query($link,
"UPDATE tb_user SET username = '$username', password = '$pass',
email = '$email', level = '$level' WHERE id = '$id'");
if (!$query) {
$isi = "Gagal Menambahkan Data dengan kesalahan =
".mysqli_errno($link). " - ".mysqli_error($link);
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=tambah_user.php?status=$isi'>";
}else{
echo "<script> alert('Data Berhasil DiUpdate') </script>";
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=detail_user&id=$id'>";
}
}
}

?>

Cobalah untuk mengedit salah satu data yang tersedia pada database. Apakah sudah berhasil ?
Pastikan jika data dihapus file yang ada juga harus ikut terhapus.

57
Hapus User
Untuk menghapus user tambahkan file baru dengan nama hapus_user.php

hapus_user.php

<?php
include '../db/koneksi.php';

$id= $_GET['id'];
$query_gmbr = mysqli_query($link, "SELECT foto FROM tb_user WHERE
id='$id'");
$gambarlama = mysqli_fetch_array($query_gmbr); //

$target = $gambarlama['foto'];
if(file_exists('../assets/image/'.$target)){ //mengecek apakah file
terdahulu ada ?
unlink('../assets/image/'.$target); // jika ada maka hapus filenya
gantikan dengan yang baru
}
$query = mysqli_query($link, "DELETE FROM tb_user WHERE id='$id'");
if ($query) {
echo "<script>alert('Data berhasil dihapus')</script>";
echo "<meta http-equiv='refresh' content='0; url=?page=list_user'>";
} else {
echo "Data anda gagal dihapus. Ulangi sekali lagi";
echo "<meta http-equiv='refresh' content='0; url=?page=list_user'>";
}

?>

Jangan lupada menambahkan pada home.php kode berikut

home.php

case "hapus_user";
include "hapus_user.php";
break;

Jadi keseluruhan kode pada home.php adalah seperti berikut :

home.php

<?php
error_reporting(0);
// membuat route
switch($_GET['page'])
{

default:
include "dashboard.php";

58
break;

case "tambah_user";
include "tambah_user.php";
break;

case "simpan_user";
include "simpan_user.php";
break;

case "detail_user";
include "detail_user.php";
break;

case "list_user";
include "list_user.php";
break;

case "hapus_user";
include "hapus_user.php";
break;

case "edit_user";
include "edit_user.php";
break;

case "update_user";
include "update_user.php";
break;
}
?>

59
Sesi 3 : Membuat Validasi, Report Anggota dan CRUD.
Validasi yang akan kita tambahkan adalah library validasi yang di buat oleh pihak ke 3. Untuk
selanjutnya saya menyebut library ini dengan nama Validator. Validator ini dapat di akses di
https://1000hz.github.io/bootstrap-validator

Download validatornya dan pasang pada aplikasi kita dengan cara :

Extrak hasil download tadi -> dist -> dan copy validator.min.js yang ada di folder dist ke folder js
pada project kita (perpusku -> assets -> js).

Jangan lupa tambahkan juga di footer_template.php javascriptnya dengan menambahkan baris kode
seperti ini :

<!-- jQuery 2.2.3 -->


<script src="../assets/js/jquery-2.2.3.min.js"></script>
<script src="../assets/js/validator.min.js"></script>
<!-- Bootstrap 3.3.6 -->
<script src="../assets/js/bootstrap.min.js"></script>
<!-- datepicker -->
<script src="../assets/js/bootstrap-datepicker.js"></script>
<!-- Slimscroll -->
<script src="../assets/js/jquery.slimscroll.min.js"></script>
<!-- FastClick -->
<script src="../assets/js/fastclick.min.js"></script>
<!-- AdminLTE App -->
<script src="../assets/js/app.min.js"></script>
</body>
Dan saatnya kita membuat crud anggotanya, buat file dengan nama tambah_anggota.php dan
simpan di folder admin.

Sebelum itu mari kita siapkan halamannya pada home.php

home.php

// untuk anggota
case "tambah_anggota";
include "tambah_anggota.php";
break;

60
case "simpan_anggota";
include "simpan_anggota.php";
break;

case "detail_anggota";
include "detail_anggota.php";
break;

case "list_anggota";
include "list_anggota.php";
break;

case "hapus_anggota";
include "hapus_anggota.php";
break;

case "edit_anggota";
include "edit_anggota.php";
break;

case "update_anggota";
include "update_anggota.php";
break;

case "print_anggota";
include "print_anggota.php";
break;

Membuat Tambah Anggota


tambah_anggota.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{

include '../db/koneksi.php';

$query = mysqli_query($link, "SELECT id, username FROM tb_user");


// $data = mysqli_fetch_array($query);
?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>

61
Admin <small>Tambah Anggota</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Tambah Anggota</li>
</ol>
</section>

<section class="content">
<div class="row">

<?php $status = isset($_GET['status']) ? $_GET['status'] : ""; ?>

<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Tambah Data Anggota</h3>
</div>

<form data-toggle="validator" action="?page=simpan_anggota"


method="POST">
<div class="box-body">
<?php
if ($status){
?>

<div class="alert alert-danger alert-dismissible">


<button class="close" type="button" data-dismiss="alert" aria-
hidden="true">&times;</button>
<h4><i class="icon fa fa-close">Gagal!</i></h4>

<?php echo $status; ?>


</div>
<?php
}
?>

<div class="form-group">
<div class="col-md-10">
<label> NPM </label>
<input type="text" class="form-control" data-minlength ="8"
placeholder="npm" name="npm" data-error="Tidak Boleh Kurang
dari 8" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">

62
<div class="col-md-10">
<label> Nama </label>
<input type="text" class="form-control" placeholder="Nama Anda"
name="nama" data-error="wajib di isi" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Tempat Lahir </label>
<input type="text" class="form-control" placeholder="Tempat
Lahir" name="tempat_lahir" data-error="wajib di isi" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Tanggal Lahir </label>
<input type="date" class="form-control" placeholder="Tanggal
Lahir" name="tgl_lahir" data-error="wajib di isi" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Jenis Kelamin </label>
<select name="jk" class="form-control">
<option>-----Pilih Gender---------</option>
<option value="L">Laki-Laki</option>
<option value="P">Perempuan</option>
</select>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Prodi </label>
<select name="prodi" class="form-control">
<option>-----Pilih Prodi---------</option>
<option value="Teknik Informatika">Teknik Informatika</option>
<option value="Sistem Informasi">Sistem Informasi</option>
<option value="Managemen Informasi">Managemen
Informasi</option>
<option value="Kesehatan Masyarakat">Kesehatan
Masyarakat</option>

63
<option value="Kimia">Kimia</option>
</select>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> User Id </label>
<select name="user_id" required name="level" class="form-
control">
<option>-----Pilih User Login---------</option>
<?php
while ($data= mysqli_fetch_array($query)) {
echo "<option value=$data[id]>
$data[username]</option>";
}
?>
</select>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<div class="box-footer">
<input type="submit" class="btn btn-primary" value="Simpan"
name="simpan">
</div>
</div>
</div>
</form>

</div>
</div>
</div>
</section>
</div>

<?php
}
?>

Jadi untuk membuat si validator bekerja kita harus menambahkan data-toogle pada form

<form data-toggle="validator" action="?page=simpan_anggota" method="POST">

Dan untuk memanggilnya kita harus menambahkan data-error dan blok untuk menampung
errornya.

64
<input type="text" class="form-control" placeholder="Nama Anda" name="nama"
data-error="wajib di isi" required>
<div class="help-block with-errors"></div>

Baik selesai sudah kita membuat validasinya

Berikutnya kita akan membuat simpan datanya, buat file baru dengan nama simpan_anggota.php

simpan_anggota.php

<?php
include '../db/koneksi.php';

$user_id = $_POST['user_id'];
$npm = $_POST['npm'];
$nama = $_POST['nama'];
$tmp_lahir= $_POST['tempat_lahir'];
$tgl_lahir= $_POST['tgl_lahir'];
$jk = $_POST['jk'];
$prodi = $_POST['prodi'];
$tgl_dibuat = date('Y-m-d');

if ($_POST['simpan']) {
$query = mysqli_query($link, "INSERT INTO tb_anggota(user_id, npm, nama,
tempat_lahir, tgl_lahir, jk, prodi, tgl_dibuat)
VALUES('$user_id','$npm','$nama','$tmp_lahir','$tgl_lahir','$jk', '$prodi',
'$tgl_dibuat')");

if (!$query) {
$isi = "Gagal Menambahkan Data dengan kesalahan = ".mysqli_errno($link).
" - ".mysqli_error($link);
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=tambah_anggota?status=$isi'>";
}else{
$queryku = mysqli_query($link, "SELECT*FROM tb_anggota WHERE npm=$npm");
$data = mysqli_fetch_array($queryku);
$id = $data[0];
echo "<script> alert('Data berhasil ditambahkan ') </script>";
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=detail_anggota&id=$id'>";
}

65
}

?>

Membuat Detail Anggota


Kita lihat bahwa jika kita berhasil menyimpan, maka akan diarahkan ke detail anggota, tapi kita
belum membuatnya, mari kita buat file baru dengan nama detail_anggota.php

detail_anggota.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{
?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>
Admin <small>Detail Anggota</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Detail Anggota</li>
</ol>
</section>

<section class="content">
<div class="row">
<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Detail Anggota</h3>
</div>

<table class="table table-bordered">


<?php
$id = isset($_GET['id']) ? $_GET['id'] : "";
$query = mysqli_query($link, "SELECT*FROM tb_anggota WHERE
id='$id'");
$data = mysqli_fetch_array($query);
?>

<tbody>

66
<tr>
<th width="30%">ID Login</th>
<td>: <?php echo $data['user_id']; ?></td>
</tr>
<tr>
<th width="30%">Nama</th>
<td>: <?php echo $data['nama']; ?></td>
</tr>
<tr>
<th width="30%">NPM</th>
<td>: <?php echo $data['npm']; ?></td>
</tr>
<tr>
<th width="30%">Tempat, Tanggal Lahir</th>
<td>: <?php
$tgl_lahir = $data['tgl_lahir'];
echo $data['tempat_lahir'].', '.date('d F Y',
strtotime($tgl_lahir)); ?>
</td>
</tr>
<tr>
<th width="30%">Jenis Kelamin</th>
<td>: <?php
if ($data['jk'] == 'L') {
echo "Laki-Laki";
}elseif ($data['jk'] == 'P') {
echo "Perempuan";
}else{
echo "";
}
?>
</td>
</tr>
<tr>
<th width="30%">Prodi</th>
<td>: <?php echo $data['prodi']; ?></td>
</tr>
<tr>
<th width="30%">Tanggal Dibuat</th>
<td>: <?php echo date('d F Y',
strtotime($data['tgl_dibuat'])); ?></td>
</tr>
<tr>
<th width="30%">Tanggal Diubah</th>
<td>: <?php
$tgl_diubah = $data['tgl_diubah'];
if ($tgl_diubah) {
echo date('d F Y', strtotime($tgl_diubah));

67
}else{
echo "Belum Pernah Diubah";
}
?>

</td>
</tr>
<tr>
<td></td>
<?php $id = $data['id']; ?>
<td colspan="2"><a href='?page=edit_anggota&id=<?php echo $id;
?>' class="btn btn-info">Edit User</a></td>
</tr>
</tbody>
</table>

</div>
</div>
</div>
</section>

</div>
<?php
}
?>

Membuat Edit Anggota


edit_anggota.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{

include '../db/koneksi.php';

$id = isset($_GET['id']) ? $_GET['id'] : "";


$query = mysqli_query($link, "SELECT*FROM tb_anggota WHERE id='$id'");
$data = mysqli_fetch_array($query);
$idUser = $data['user_id'];
$queryUser = mysqli_query($link, "SELECT*FROM tb_user WHERE
id='$idUser'");

?>

68
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>
Admin <small>Edit Anggota</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Edit Anggota</li>
</ol>
</section>

<section class="content">
<div class="row">

<?php $status = isset($_GET['status']) ? $_GET['status'] : ""; ?>

<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Edit Data Anggota</h3>
</div>

<form data-toggle="validator" action="?page=update_anggota"


method="POST">
<div class="box-body">
<?php
if ($status){
?>

<div class="alert alert-danger alert-dismissible">


<button class="close" type="button" data-dismiss="alert" aria-
hidden="true">&times;</button>
<h4><i class="icon fa fa-close">Gagal!</i></h4>

<?php echo $status; ?>


</div>
<?php
}
?>

<input type="text" name="id" value="<?php echo $data['id'] ?>"


hidden>
<div class="form-group">
<div class="col-md-10">
<label> NPM </label>

69
<input type="text" class="form-control" data-minlength ="8"
value="<?php echo $data['npm'] ?>" placeholder="npm"
name="npm" data-error="Tidak Boleh Kurang dari 8" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Nama </label>
<input type="text" class="form-control" value="<?php echo
$data['nama'] ?>" placeholder="Nama Anda" name="nama" data-
error="wajib di isi" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Tempat Lahir </label>
<input type="text" class="form-control" placeholder="Tempat
Lahir" value="<?php echo $data['tempat_lahir'] ?>"
name="tempat_lahir" data-error="wajib di isi" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Tanggal Lahir </label>
<input type="date" value="<?php echo $data['tgl_lahir'] ?>"
class="form-control" placeholder="Tanggal Lahir"
name="tgl_lahir" data-error="wajib di isi" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Jenis Kelamin </label>
<select name="jk" class="form-control">
<option>-----Pilih Gender---------</option>
<option value="L" <?php if($data['jk'] == 'L'){echo
"selected"; } ?>>Laki-Laki</option>
<option value="P" <?php if ($data['jk'] == 'P'){echo
"selected"; }?>>Perempuan</option>
</select>
</div>

70
</div>

<div class="form-group">
<div class="col-md-10">
<label> Prodi </label>
<select name="prodi" class="form-control">
<option>-----Pilih Prodi---------</option>
<option value="Teknik Informatika" <?php if($data['prodi'] ==
'Teknik Informatika'){echo "selected"; } ?>>Teknik
Informatika</option>
<option value="Sistem Informasi" <?php if($data['prodi'] ==
'Sistem Informasi'){echo "selected"; } ?>>Sistem
Informasi</option>
<option value="Managemen Informasi" <?php if($data['prodi'] ==
'Managemen Informasi'){echo "selected"; } ?>>Managemen
Informasi</option>
<option value="Kesehatan Masyarakat" <?php if($data['prodi']
== 'Kesehatan Masyarakat'){echo "selected"; } ?>>Kesehatan
Masyarakat</option>
<option value="Kimia" <?php if($data['prodi'] == 'Kimia'){echo
"selected"; } ?>>Kimia</option>
</select>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> User Id </label>
<select name="user_id" required class="form-control">
<option>-----Pilih User Login---------</option>
<?php
while ($dataUser= mysqli_fetch_array($queryUser)) {
echo "<option value=$dataUser[id] >
$dataUser[username]</option>";
}
?>
</select>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<div class="box-footer">
<input type="submit" class="btn btn-primary" value="Ubah"
name="ubah">
<a href="?page=list_anggota" class="btn btn-danger">Kembali</a>
</div>
</div>

71
</div>
</form>

</div>
</div>
</div>
</section>
</div>

<?php
}
?>

update_anggota.php

<?php
include '../db/koneksi.php';

$id = $_POST['id'];
$user_id = $_POST['user_id'];
$npm = $_POST['npm'];
$nama = $_POST['nama'];
$tmp_lahir= $_POST['tempat_lahir'];
$tgl_lahir= $_POST['tgl_lahir'];
$jk = $_POST['jk'];
$prodi = $_POST['prodi'];
$tgl_diubah = date('Y-m-d');

if ($_POST['ubah']) {
$query = mysqli_query($link, "UPDATE tb_anggota SET npm='$npm',
nama='$nama', tempat_lahir='$tmp_lahir', tgl_lahir='$tgl_lahir', jk='$jk',
prodi='$prodi', tgl_diubah='$tgl_diubah', user_id='$user_id' WHERE id='$id'");

if (!$query) {
$isi = "Gagal Menambahkan Data dengan kesalahan = ".mysqli_errno($link).
" - ".mysqli_error($link);
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=tambah_anggota?status=$isi'>";
}else{
$queryku = mysqli_query($link, "SELECT*FROM tb_anggota WHERE npm=$npm");
$data = mysqli_fetch_array($queryku);
$id = $data[0];
echo "<script> alert('Data berhasil ditambahkan ') </script>";
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=detail_anggota&id=$id'>";
}
}
?>

72
Membuat Halaman List Anggota
list_anggota.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{
?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>
Admin <small>Daftar Anggota</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Daftar Anggota</li>
</ol>
</section>

<section class="content">
<div class="row">
<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Daftar Anggota</h3>
</div>

<a href="?page=tambah_anggota" class="btn btn-primary">Tambah


Anggota</a>
<a target="blank" href="print_anggota.php" class="btn btn-danger"><i
class="fa fa-print" aria-hidden="true"></i>Print</a>

<table class="table table-bordered">


<?php
$halaman = 5;
$page = isset($_GET["halaman"]) ? (int)$_GET["halaman"] : 1;
$mulai = ($page>1) ? ($page * $halaman) - $halaman : 0;
$result = mysqli_query($link, "SELECT*FROM tb_anggota");

$total = mysqli_num_rows($result);
$pages = ceil($total/$halaman);
$query = mysqli_query($link, "SELECT*FROM tb_anggota LIMIT $mulai,
$halaman") or die(mysqli_error);

73
?>
<thead>
<tr>
<th>ID</th>
<th>NPM</th>
<th>Nama</th>
<th>TTL</th>
<th>Jenis Kelamin</th>
<th>Prodi</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$i = 1;
while ($anggota=mysqli_fetch_array($query)) {
?>
<tr>
<td><?php echo $i; ?></td>
<td><a href="?page=detail_anggota&id=<?php echo
$anggota['id']; ?>"><?php echo $anggota['npm']; ?></a></td>
<td><?php echo $anggota['nama']; ?></td>
<td><?php echo $anggota['tempat_lahir'].", ". date('d F Y',
strtotime($anggota['tgl_lahir'])); ?></td>
<td>
<?php
if ($anggota['jk'] == 'L') {
echo "Laki-Laki";
}elseif ($anggota['jk'] == 'P') {
echo "Perempuan";
}
?>
</td>

<td><?php echo $anggota['prodi']; ?></td>

<td>
<a href="?page=edit_anggota&id=<?php echo $anggota[0];
?>"><i class="fa fa-edit"></i></a> || <a
href="?page=hapus_anggota&id=<?php echo $anggota[0];
?>" onclick="return confirm('Anda yakin ingin
menghapus Anggota <?php echo $anggota['nama']; ?>
?')"><i class="fa fa-trash"></i></a>
</td>
</tr>
<?php
$i++;

74
}
?>
</tbody>

</table>
<div class="box-footer clearfix">
<ul class="pagination pagination-sm no-margin pull-right">
<li><a href="#">Halaman</a></li>
<?php for($i=1; $i<=$pages; $i++) { ?>
<li><a href="?page=list_anggota&halaman=<?php echo $i;
?>"><?php echo $i; ?></a></li>
<?php } ?>
</ul>
</div>
</div>

</div>
</div>
</div>
</section>

</div>
<?php
}
?>

Kali ini ada yang berbeda dari list_anggota dari list sebelumnya yaitu penambahan tombol print.

Membuat Hapus Anggota


hapus_anggota.php

<?php
include '../db/koneksi.php';

$id= $_GET['id'];
$query = mysqli_query($link, "DELETE FROM tb_anggota WHERE id='$id'");
if ($query) {

75
echo "<script>alert('Data berhasil dihapus')</script>";
echo "<meta http-equiv='refresh' content='0; url=?page=list_anggota'>";
} else {
echo "Data anda gagal dihapus. Ulangi sekali lagi";
echo "<meta http-equiv='refresh' content='0; url=?page=list_anggota'>";
}

?>

Membuat Laporan Anggota


Untuk membuat Laporan kita akan menggunakan library FPDF untuk menggenerate pdf.

Langkah pertama download librarynya di halaman berikut :

Buat folder baru pada project dengan nama lib. Kembali pada library fpdf.

Pilih folder font, fpdf.php, fpdf.css dan copy ke 3 nya ke project -> paste pada folder lib.

Buat file baru dengan nama print_anggota.php dan simpan pada folder admin.

print_anggota.php

<?php
// memanggil library FPDF
require '../lib/fpdf.php';
include '../db/koneksi.php';

// intance object dan memberikan pengaturan halaman PDF


$pdf = new FPDF('P','mm','A4');
// membuat halaman baru
$pdf->AddPage();
// setting jenis font yang akan digunakan
$pdf->SetFont('Arial','B',16);
// mencetak string
$pdf->Image('../assets/image/logo.png',30,5, 25,25);
$pdf->Cell(190,7,'UNIVERSITAS ISLAM KALIMANTAN',0,1,'C');
$pdf->SetFont('Arial','B',12);
$pdf->Cell(190,7,'LAPORAN DATA ANGGOTA',0,1,'C');
$pdf->Line(10,32,200,32);

76
// Memberikan space kebawah agar tidak terlalu rapat
$pdf->Cell(10,10,'',0,1);

$pdf->SetFont('Arial','B',10);
$pdf->Cell(10,6, 'NO', 1,0);
$pdf->Cell(20,6,'NPM',1,0);
$pdf->Cell(55,6,'NAMA MAHASISWA',1,0);
$pdf->Cell(55,6,'TTL',1,0);
$pdf->Cell(10,6,'JK',1,0);
$pdf->Cell(40,6,'PRODI',1,1);

$pdf->SetFont('Arial','',10);

$anggota = mysqli_query($link, "SELECT * FROM tb_anggota");


$no=1;
while ($row = mysqli_fetch_array($anggota)){
$pdf->Cell(10,6, $no.'.', 1,0);
$pdf->Cell(20,6,$row['npm'],1,0);
$pdf->Cell(55,6,$row['nama'],1,0);
$pdf->Cell(55,6,$row['tempat_lahir'].", ". date('d F Y',
strtotime($row['tgl_lahir'])),1,0);
$pdf->Cell(10,6,$row['jk'],1,0);
$pdf->Cell(40,6,$row['prodi'],1,1);
$no++;
}

$pdf->Output();
?>

Hasil jika dirunning.

Sesi 4 : CRUD Buku dan Print Mode Lanscape


Membuat Tambah Buku
Buat file baru dengan nama tambah_buku.php

77
tambah_buku.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{

include '../db/koneksi.php';

?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>
Admin <small>Tambah Buku</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Tambah Buku</li>
</ol>
</section>

<section class="content">
<div class="row">

<?php $status = isset($_GET['status']) ? $_GET['status'] : ""; ?>

<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Tambah Data Buku</h3>
</div>

<form data-toggle="validator" action="simpan_buku.php" method="POST"


enctype="multipart/form-data">
<div class="box-body">
<?php
if ($status){
?>

<div class="alert alert-danger alert-dismissible">


<button class="close" type="button" data-dismiss="alert" aria-
hidden="true">&times;</button>
<h4><i class="icon fa fa-close">Gagal!</i></h4>

<?php echo $status; ?>

78
</div>
<?php
}
?>

<div class="form-group">
<div class="col-md-10">
<label> Judul </label>
<input type="text" class="form-control" data-minlength ="8"
placeholder="Judul Buku" name="judul" data-error="Judul Tidak
Boleh Kosong" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Pengarang </label>
<input type="text" class="form-control" placeholder="Nama
Pengarang" name="pengarang" data-error="wajib di isi"
required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Penerbit </label>
<input type="text" class="form-control" placeholder="Penerbit"
name="penerbit" data-error="wajib di isi" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Tahun Terbit </label>
<select required name="tahun" class="form-control">
<option selected="selected">Tahun</option>
<?php
for($i=date('Y'); $i>=date('Y')-32; $i-=1){
echo "<option value='$i'>$i</option>";
}
?>
</select>
<div class="help-block with-errors"></div>
</div>
</div>

79
<div class="form-group">
<div class="col-md-10">
<label> Cover </label>
<input type="file" class="form-control" placeholder="Cover Buku"
name="cover" data-error="wajib di isi" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> ISBN </label>
<input type="text" class="form-control" name="isbn" required>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Jumlah Buku </label>
<input type="text" class="form-control" name="jumlah" required>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Lokasi </label>
<select required name="lokasi" class="form-control">
<option>-------Pilih Lokasi---------</option>
<option value="rak1">Rak 1</option>
<option value="rak2">Rak 2</option>
<option value="rak3">Rak 3</option>
</select>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<div class="box-footer">
<input type="submit" class="btn btn-primary" value="Simpan"
name="simpan">
</div>
</div>
</div>
</form>

</div>
</div>

80
</div>
</section>
</div>

<?php
}
?>

Tambahkan route halaman untuk buku dengan cara menambahkan sintak berikut, pada home.php

home.php

// untuk Buku
case "tambah_buku";
include "tambah_buku.php";
break;

case "simpan_buku";
include "simpan_buku.php";
break;

case "detail_buku";
include "detail_buku.php";
break;

case "list_buku";
include "list_buku.php";
break;

case "hapus_buku";
include "hapus_buku.php";
break;

case "edit_buku";
include "edit_buku.php";
break;

case "update_buku";
include "update_buku.php";
break;

case "cari_buku";
include "cari_buku.php";
break;

jangan lupa tambahkan juga file simpan_buku.php sebagai handler yang digunakan menyimpan data
ke database.

simpan_buku.php

81
<?php
include '../db/koneksi.php';

$judul = $_POST['judul'];
$pengarang = $_POST['pengarang'];
$penerbit = $_POST['penerbit'];
$tahun = $_POST['tahun'];
$isbn = $_POST['isbn'];
$jumlah = $_POST['jumlah'];
$lokasi = $_POST['lokasi'];
$tgl_input = date('Y-m-d');
$cover = $_POST['cover'];

if ($_POST['simpan']) {
$extensi_diperbolehkan = array('png','jpg','jpeg');
$nama = $_FILES['cover']['name'];
$x = explode('.', $nama);
$extensi = strtolower(end($x));
$ukuran = $_FILES['cover']['size'];
$file_tmp = $_FILES['cover']['tmp_name'];

if(in_array($extensi, $extensi_diperbolehkan) === true){


if ($ukuran < 5000000000) {
move_uploaded_file($file_tmp, '../assets/image/cover/'.$nama);
$query = mysqli_query($link, "INSERT INTO
tb_buku(judul,pengarang,penerbit,thn_terbit,isbn,jumlah_buku,lokasi,tgl_
input,cover)VALUES('$judul','$pengarang','$penerbit','$tahun','$isbn','$
jumlah', '$lokasi', '$tgl_input', '$nama')");

if (!$query) {

$isi = "Gagal Menambahkan Data dengan kesalahan =


".mysqli_errno($link). " - ".mysqli_error($link);
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=tambah_buku?status=$isi'>";
}else{
$query = mysqli_query($link, "SELECT id FROM tb_buku WHERE
isbn='$isbn'");
$data = mysqli_fetch_array($query);
$id = $data[0];
echo "<script> alert('Data Berhasil Ditambahkan') </script>";
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=detail_buku&id=$id'>";
}
}else{
$isi = "File terlalu besar = ".mysqli_errno($link). " -
".mysqli_error($link);

82
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=tambah_buku&status=$isi'>";
}
}else{
$isi = "Extensi File Tidak Diperbolehkan = ".mysqli_errno($link). " -
".mysqli_error($link);
die(mysqli_error($link));
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=tambah_buku&status=$isi'>";
}
}

?>
Cobalah untuk menambahkan data pada halaman data buku.

Jika berhasil kita akan lanjutkan ke detail data buku.

Membuat Halaman Detail Buku


detail_buku.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{
?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">

83
<h1>
Admin <small>Detail Buku</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Detail Buku</li>
</ol>
</section>

<section class="content">
<div class="row">
<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Detail Buku</h3>
</div>

<table class="table table-bordered">


<?php
$id = isset($_GET['id']) ? $_GET['id'] : "";
$query = mysqli_query($link, "SELECT*FROM tb_buku WHERE
id='$id'");
$data = mysqli_fetch_array($query);
?>

<tbody>
<tr>
<th width="30%">ID</th>
<td>: <?php echo $data['judul']; ?></td>
</tr>
<tr>
<th width="30%">Pengarang</th>
<td>: <?php echo $data['pengarang']; ?></td>
</tr>
<tr>
<th width="30%">Penerbit</th>
<td>: <?php echo $data['penerbit']; ?></td>
</tr>
<tr>
<th width="30%">ISBN</th>
<td>: <?php echo $data['isbn']; ?></td>
</tr>
<tr>
<th width="30%">Cover</th>
<td>
<?php
$cek = $data['cover'];
if (isset($data['cover'])) {

84
echo ": <img src='../assets/image/cover/$cek', alt=''
width='200' height='250'>";
} else {
echo ": tidak ada data";
}
?>

</td>
</tr>
<tr>
<th width="30%">Tahun Terbit</th>
<td>: <?php echo $data['thn_terbit']?>
</td>
</tr>
<tr>
<th width="30%">Jumlah Buku</th>
<td>: <?php echo $data['jumlah_buku']?>
</td>
</tr>
<tr>
<th width="30%">Lokasi Buku</th>
<td>: <?php echo $data['lokasi']?>
</td>
</tr>
<tr>
<th width="30%">Tanggal Input</th>
<td>: <?php echo date('d-m-Y', strtotime($data['tgl_input']));
?></td>
</tr>
<tr>
<?php $id = $data['id']; ?>
<td></td>
<td colspan="2">
<a href='?page=edit_buku&id=<?php echo $id; ?>' class="btn
btn-info">Edit Buku</a> &nbsp;
<a href='?page=list_buku' class="btn btn-warning">Daftar
Buku</a>
</td>

</tr>
</tbody>
</table>

</div>
</div>
</div>
</section>

85
</div>
<?php
}
?>

Membuat Edit Buku


edit_buku.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{

include '../db/koneksi.php';

$id = isset($_GET['id']) ? $_GET['id'] : "";


$query = mysqli_query($link, "SELECT*FROM tb_buku WHERE id='$id'");
$data = mysqli_fetch_array($query);

?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>
Admin <small>Edit Buku</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Edit Buku</li>
</ol>
</section>

<section class="content">
<div class="row">

<?php $status = isset($_GET['status']) ? $_GET['status'] : ""; ?>

<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Edit Data Buku</h3>
</div>

86
<form data-toggle="validator" action="?page=update_buku" method="POST"
enctype="multipart/form-data">
<div class="box-body">
<?php
if ($status){
?>

<div class="alert alert-danger alert-dismissible">


<button class="close" type="button" data-dismiss="alert" aria-
hidden="true">&times;</button>
<h4><i class="icon fa fa-close">Gagal!</i></h4>

<?php echo $status; ?>


</div>
<?php
}
?>
<input type="text" name="id" value="<?php echo $data['id'] ?>"
hidden>
<div class="form-group">
<div class="col-md-10">
<label> Judul </label>
<input type="text" class="form-control" data-minlength ="8"
placeholder="Judul Buku" value="<?php echo $data['judul'] ?>"
name="judul" data-error="Judul Tidak Boleh Kosong" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Pengarang </label>
<input type="text" class="form-control" placeholder="Nama
Pengarang" value="<?php echo $data['pengarang'] ?>"
name="pengarang" data-error="wajib di isi" required>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Penerbit </label>
<input type="text" class="form-control" placeholder="Penerbit"
name="penerbit" value="<?php echo $data['penerbit'] ?>" data-
error="wajib di isi" required>
<div class="help-block with-errors"></div>
</div>
</div>

87
<div class="form-group">
<div class="col-md-10">
<label> Tahun Terbit </label>
<select required name="tahun" class="form-control">
<option>Tahun</option>
<?php
for($i=date('Y'); $i>=date('Y')-32; $i-=1){
echo "<option value='$i'>$i</option>";
}
?>
</select>
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Cover </label> <br>
<img src="../assets/image/cover/<?php echo $data['cover'] ?>"
width="190" height="170">
<br>
<input type="file" name="cover">
<div class="help-block with-errors"></div>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> ISBN</label>
<input value="<?php echo $data['isbn'] ?>" type="text"
class="form-control" name="isbn" required>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Jumlah Buku </label>
<input type="text" value="<?php echo $data['jumlah_buku'] ?>"
class="form-control" name="jumlah" required>
</div>
</div>

<div class="form-group">
<div class="col-md-10">
<label> Lokasi </label>
<select required name="lokasi" class="form-control">
<option>-----Pilih Lokasi---------</option>

88
<option value='rak1' <?php if($data['lokasi'] == 'rak1'){echo
"selected"; } ?>>Rak1</option>
<option value='rak2' <?php if($data['lokasi'] == 'rak2'){echo
"selected"; } ?>>Rak2</option>
<option value='rak3' <?php if($data['lokasi'] == 'rak3'){echo
"selected"; } ?>>Rak3</option>
</select>
</div>
</div>
</div>

<div class="box-body">
<div class="box-footer">
<input type="submit" class="btn btn-primary" value="Update"
name="update">
<a href="javascript:history.back()" class="btn btn-
danger">Kembali</a>
</div>
</div>
</form>

</div>
</div>
</div>
</section>
</div>

<?php
}
?>

update_buku.php

<?php
include '../db/koneksi.php';

$id = $_POST['id'];
$judul = $_POST['judul'];
$pengarang = $_POST['pengarang'];
$penerbit = $_POST['penerbit'];
$tahun = $_POST['tahun'];
$isbn = $_POST['isbn'];
$jumlah = $_POST['jumlah'];
$lokasi = $_POST['lokasi'];
$cover = $_POST['cover'];

$query_gmbr = mysqli_query($link, "SELECT cover FROM tb_buku WHERE id='$id'");

89
$gambarlama = mysqli_fetch_array($query_gmbr); // query untuk mengecek gambar
lawas

if ($_POST['update']) {
if($cover)
{
$extensi_diperbolehkan = array('png','jpg','jpeg');
$nama = $_FILES['cover']['name'];
$x = explode('.', $nama);
$extensi = strtolower(end($x));
$ukuran = $_FILES['cover']['size'];
$file_tmp = $_FILES['cover']['tmp_name'];

if(in_array($extensi, $extensi_diperbolehkan) === true){


$query = mysqli_query($link, "SELECT id FROM tb_buku WHERE
isbn='$isbn'");
$data = mysqli_fetch_array($query);
$id = $data[0];

if ($ukuran < 5000000000) {


move_uploaded_file($file_tmp, '../assets/image/cover/'.$nama);
$target = $gambarlama['cover'];
if(file_exists('../assets/image/cover/'.$target)){ //mengecek
apakah file terdahulu ada ?
unlink('../assets/image/cover/'.$target); // jika ada
maka hapus filenya gantikan dengan yang baru
}
$query = mysqli_query($link,
"UPDATE tb_buku SET judul = '$judul', pengarang =
'$pengarang',
penerbit = '$penerbit', thn_terbit = '$tahun', isbn =
'$isbn', jumlah_buku = '$jumlah', lokasi = '$lokasi',
cover = '$nama' WHERE id = '$id'");

if (!$query) {
$isi = "Gagal Menambahkan Data dengan kesalahan =
".mysqli_errno($link). " - ".mysqli_error($link);
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=edit_buku.php?status=$isi&id=$id''
>";
}else{
echo "<script> alert('Data Berhasil Diupdate') </script>";
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=detail_buku&id=$id'>";
}
}else{
$isi = "File terlalu besar = ".mysqli_errno($link). " -
".mysqli_error($link);

90
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=edit_buku&status=$isi&id=$id'>";
}
}else{
}

$isi = "Extensi File Tidak Diperbolehkan = ".mysqli_errno($link). " -


".mysqli_error($link);
die(mysqli_error($link));
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=edit_buku&status=$isi&id=$id'>";
}else{
$query = mysqli_query($link,
"UPDATE tb_buku SET judul = '$judul', pengarang = '$pengarang',
penerbit = '$penerbit', thn_terbit = '$tahun', isbn =
'$isbn', jumlah_buku = '$jumlah', lokasi = '$lokasi' WHERE
id = '$id'");
if (!$query) {
$isi = "Gagal Mengedit Data dengan kesalahan =
".mysqli_errno($link). " - ".mysqli_error($link);
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=edit_buku.php?status=$isi&id=$id'>";
}else{
echo "<script> alert('Data Berhasil Diupdate') </script>";
echo "<meta http-equiv='refresh' content='0;
url=home.php?page=detail_buku&id=$id'>";
}
}
}

?>

Membuat Halaman List Buku


list_buku.php

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{
?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>

91
Admin <small>Daftar Buku</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Daftar Buku</li>
</ol>
</section>

<section class="content">
<div class="row">
<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Daftar Buku</h3> <br>

<a href="?page=tambah_buku" class="btn btn-primary">Tambah


Buku</a>
<a target="blank" href="print_buku.php" class="btn btn-danger"><i
class="fa fa-print" aria-hidden="true"></i> Print</a>
<div class="box-tools">
<form action="?page=cari_buku" method="POST">
<div class="input-group input-group-sm" style="width: 150px;">
<input type="text" name="cari" class="form-control pull-right"
placeholder="Cari...">

<div class="input-group-btn">
<button type="submit" class="btn btn-default"><i class="fa
fa-search"></i></button>
</div>
</div>
</form>
</div>

<table class="table table-bordered">


<?php
$halaman = 5;
$page = isset($_GET["halaman"]) ? (int)$_GET["halaman"] : 1;
$mulai = ($page>1) ? ($page * $halaman) - $halaman : 0;
$result = mysqli_query($link, "SELECT*FROM tb_buku");

$total = mysqli_num_rows($result);
$pages = ceil($total/$halaman);
$query = mysqli_query($link, "SELECT*FROM tb_buku LIMIT $mulai,
$halaman") or die(mysqli_error);

?>
<thead>
<tr>

92
<th>ID</th>
<th>Judul</th>
<th>Pengarang</th>
<th>Penerbit Tahun</th>
<th>Cover</th>
<th>Jumlah</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$m = 1;
while ($buku=mysqli_fetch_array($query)) {
$a = $buku['cover'];
?>
<tr>
<td><?php echo $m; ?></td>
<td><a href="?page=detail_buku&id=<?php echo $buku[0];
?>"><?php echo $buku[1]; ?></a></td>
<td><?php echo $buku[2]; ?></td>
<td><?php echo $buku[3]; ?></td>
<td><?php echo '<img src="../assets/image/cover/'.$a.'"
alt="" width=40 height=40>'; ?></td>
<td><?php echo $buku['jumlah_buku']; ?></td>
<td>
<a href="?page=edit_buku&id=<?php echo $buku[0]; ?>"><i
class="fa fa-edit"></i></a> || <a
href="?page=hapus_buku&id=<?php echo $buku[0]; ?>"
onclick="return confirm('Anda yakin ingin menghapus Buku
<?php echo $buku[1]; ?> ?')"><i class="fa fa-
trash"></i></a>
</td>
</tr>
<?php
$m++;
}
?>
</tbody>

</table>
<div class="box-footer clearfix">
<ul class="pagination pagination-sm no-margin pull-right">
<li><a href="#">Halaman</a></li>
<?php for($i=1; $i<=$pages; $i++) { ?>
<li><a href="?page=list_buku&halaman=<?php echo $i; ?>"><?php
echo $i; ?></a></li>
<?php } ?>
</ul>

93
</div>
</div>

</div>
</div>
</div>
</section>

</div>
<?php
}
?>

Membuat Hapus Buku


hapus_buku.php

<?php
include '../db/koneksi.php';

$id= $_GET['id'];
$query_gmbr = mysqli_query($link, "SELECT cover FROM tb_buku WHERE
id='$id'");
$gambarlama = mysqli_fetch_array($query_gmbr); //

$target = $gambarlama['cover'];
if(file_exists('../assets/image/cover/'.$target)){ //mengecek apakah file
terdahulu ada ?
unlink('../assets/image/cover/'.$target); // jika ada maka hapus filenya
gantikan dengan yang baru
}
$query = mysqli_query($link, "DELETE FROM tb_buku WHERE id='$id'");
if ($query) {
echo "<script>alert('Data berhasil dihapus')</script>";
echo "<meta http-equiv='refresh' content='0; url=?page=list_buku'>";
} else {
echo "Data anda gagal dihapus. Ulangi sekali lagi";
echo "<meta http-equiv='refresh' content='0; url=?page=list_buku'>";
}

?>

Membuat Laporan Buku Lanscape


print_buku.php

<?php
// memanggil library FPDF

94
require '../lib/fpdf.php';
include '../db/koneksi.php';

// intance object dan memberikan pengaturan halaman PDF


$pdf = new FPDF('L','mm','A4');
// membuat halaman baru
$pdf->AddPage();
// setting jenis font yang akan digunakan
$pdf->SetFont('Arial','B',16);
// mencetak string
$pdf->Image('../assets/image/logo.png',75,5, 25,25);
$pdf->Cell(290,7,'UNIVERSITAS ISLAM KALIMANTAN',0,1,'C');
$pdf->SetFont('Arial','B',12);
$pdf->Cell(290,7,'LAPORAN DATA BUKU',0,1,'C');
$pdf->Line(10,32,285,32);

// Memberikan space kebawah agar tidak terlalu rapat


$pdf->Cell(10,10,'',0,1);

$pdf->SetFont('Arial','B',10);
$pdf->Cell(10,6, 'NO', 1,0);
$pdf->Cell(108,6,'JUDUL',1,0,'C');
$pdf->Cell(50,6,'PENGARANG',1,0,'C');
$pdf->Cell(30,6,'ISBN',1,0, 'C');
$pdf->Cell(50,6,'PENERBIT/TAHUN',1,0, 'C');
$pdf->Cell(18,6,'LOKASI',1,0, 'C');
$pdf->Cell(10,6,'JML',1,1);

$pdf->SetFont('Arial','',10);

$anggota = mysqli_query($link, "SELECT * FROM tb_buku");


$no=1;
while ($row = mysqli_fetch_array($anggota)){
$pdf->Cell(10,6, $no.'.', 1,0);
$pdf->Cell(108,6,$row['judul'],1,0);
$pdf->Cell(50,6,$row['pengarang'],1,0);
$pdf->Cell(30,6,$row['isbn'],1,0);
$pdf->Cell(50,6,$row['penerbit'].', '.$row['thn_terbit'],1,0);
$pdf->Cell(18,6,$row['lokasi'],1,0);
$pdf->Cell(10,6,$row['jumlah_buku'],1,1);
$no++;
}

$pdf->Output();
?>

Hasil jika dirunning.

95
Membuat Pencarian Buku
cari_buku.php

Cari buku mirip seperti list_buku.php jadi copy paste saja kodenya dan simpan dengan nama
cari_buku.php lalu modifikasi seperti kode dibawah ini.

<?php
session_start();
if(!isset($_SESSION['nama'])){
echo "<script> alert('Silahkan login terlebih dahulu'); </script>";
echo "<meta http-equiv='refresh' content='0; url=../login.php'>";
}else{

$cari = $_POST['cari'];
?>
<!-- ini untuk konten -->
<div class="content-wrapper">

<section class="content-header">
<h1>
Admin <small>Daftar Buku</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-book"></i>Dashboard</a></li>
<li class="active">Daftar Buku</li>
</ol>
</section>

<section class="content">
<div class="row">
<div class="col-md-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Daftar Buku</h3> <br>

<a href="?page=tambah_buku" class="btn btn-primary">Tambah


Buku</a>

96
<a target="blank" href="print_buku.php" class="btn btn-danger"><i
class="fa fa-print" aria-hidden="true"></i> Print</a>
<div class="box-tools">
<form action="?page=cari_buku" method="POST">
<div class="input-group input-group-sm" style="width: 150px;">
<input type="text" name="cari" class="form-control pull-right"
placeholder="Cari...">

<div class="input-group-btn">
<button type="submit" class="btn btn-default"><i class="fa
fa-search"></i></button>
</div>
</div>
</form>
</div>

<table class="table table-bordered">


<?php
$halaman = 5;
$page = isset($_GET["halaman"]) ? (int)$_GET["halaman"] : 1;
$mulai = ($page>1) ? ($page * $halaman) - $halaman : 0;
$result = mysqli_query($link, "SELECT*FROM tb_buku WHERE judul
like '%$cari%' OR pengarang like '%$cari%' ");

$total = mysqli_num_rows($result);
$pages = ceil($total/$halaman);
$query = mysqli_query($link, "SELECT*FROM tb_buku WHERE judul like
'%$cari%' OR pengarang like '%$cari%' LIMIT $mulai, $halaman") or
die(mysqli_error);

?>
<thead>
<tr>
<th>ID</th>
<th>Judul</th>
<th>Pengarang</th>
<th>Penerbit Tahun</th>
<th>Cover</th>
<th>Jumlah</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$m = 1;
while ($buku=mysqli_fetch_array($query)) {
$a = $buku['cover'];
?>

97
<tr>
<td><?php echo $m; ?></td>
<td><a href="?page=detail_buku&id=<?php echo $buku[0];
?>"><?php echo $buku[1]; ?></a></td>
<td><?php echo $buku[2]; ?></td>
<td><?php echo $buku[3]; ?></td>
<td><?php echo '<img src="../assets/image/cover/'.$a.'"
alt="" width=40 height=40>'; ?></td>
<td><?php echo $buku['jumlah_buku']; ?></td>
<td>
<a href="?page=edit_buku&id=<?php echo $buku[0]; ?>"><i
class="fa fa-edit"></i></a> || <a
href="?page=hapus_buku&id=<?php echo $buku[0]; ?>"
onclick="return confirm('Anda yakin ingin menghapus
Buku <?php echo $buku[1]; ?> ?')"><i class="fa fa-
trash"></i></a>
</td>
</tr>
<?php
$m++;
}
?>
</tbody>

</table>
<div class="box-footer clearfix">
<ul class="pagination pagination-sm no-margin pull-right">
<li><a href="#">Halaman</a></li>
<?php for($i=1; $i<=$pages; $i++) { ?>
<li><a href="?page=list_buku&halaman=<?php echo $i; ?>"><?php
echo $i; ?></a></li>
<?php } ?>
</ul>
</div>
</div>

</div>
</div>
</div>
</section>

</div>
<?php
}
?>

98
Memperbaiki tampilan profile foto pada aplikasi

Kita akan memperbaiki tampilan profile pada ujung kanan atas seperti berikut dengan memperbaiki
file topmenu_template.php

topmenu_template.php

<li class="dropdown user user-menu">


<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<img src="../assets/image/<?php echo $gambar ?>" class="user-
image" alt="User Image">
<span class="hidden-xs"><?php echo $data['username']; ?></span>
</a>
<ul class="dropdown-menu">
<!-- User image -->
<li class="user-header">
<img src="../assets/image/<?php echo $gambar ?>" class="img-
circle" alt="User Image">

<p>
<?php echo $data['username']?> - Web Developer
<small>Member since Nov. 2017</small>
</p>
</li>
<!-- Menu Footer-->
<li class="user-footer">
<div class="pull-left">
<a href="#" class="btn btn-default btn-flat">Profile</a>
</div>
<div class="pull-right">

99
<a href="#" class="btn btn-default btn-flat">Sign out</a>
</div>
</li>
</ul>
</li>
<!-- Control Sidebar Toggle Button -->

10
0
DAFTAR PUSTAKA

https://www.w3schools.com/php/

https://www.tutorialspoint.com/php/

http://php.net/manual/en/getting-started.php

http://www.codingcage.com/search/label/PHP

http://www.duniailkom.com/tutorial-belajar-php-dan-index-artikel-php/

10
1

Anda mungkin juga menyukai