Hai gengs, selamat datang kembali, untuk artikel kali ini kita akan melanjutkan membuat Aplikasi Peminjaman Barang Berbasis Web dengan PHP dan MySQL, untuk yang Aplikasi Pembayaran SPP disimpan dulu buat selanjutnya gengs.
Kita sudah selesai dalam pembuatan halaman Admin, dan sekarang kita akan membuat halaman Operator yang nantinya proses peminjaman dilakukan disini.
Okeh.. Langsung saja, berikut adalah file-file yang akan kita buat:
Pertama, buat folder operator seperti gambar diatas, lalu buat folder includes didalam folder operator tadi.
Kemudian kita buat file baru didalam folder operator dengan nama index.php
index.php
<?php
session_start();
require_once '../config/db.php';
if (!isset($_SESSION['id_user'])) {
header('Location: ../index.php');
}
require_once 'proses/proses-peminjaman.php';
// Mengelurkan seluruh data barang yang ada di Database
$sql = "SELECT * FROM barang";
$query = $conn->query($sql);
$data_barang = $query->fetch_all(MYSQLI_ASSOC);
// Nomor untuk increment baris tabel
$no = 1;
require_once 'includes/header.php';
require_once 'includes/peminjaman.php';
require_once 'includes/footer.php';
Jika dijalankan akan menampilkan beberapa pesan error karna kita belum membuat file-file yang akan dipanggil.
Sekarang kita buat file header.php dan footer.php dan simpan didalam folder includes, bisa dengan melakukan klik kanan pada folder includes kemudian pilih New File.
Sebenarnya kode untuk header.php tidak jauh beda dengan header.php pada folder admin, perbedaannya hanya terletak pada menunya saja.
Dan untuk footer.php itu sama persis dengan yang ada pada admin.
header.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Operator</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav navbar">
<b>Aplikasi Inventaris</b>
</li>
<li class="nav-item">
<a class="nav-link" href="../operator/data-barang.php">Barang</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../operator/index.php">Peminjaman</a>
</li>
<li class="nav-item">
<a class="nav-link btn btn-danger btn-sm text-white" href="logout.php">Keluar</a>
</li>
</ul>
</div>
</nav>
footer.php
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>
Ketika kita login sebagai operator maka akan langsung diarahkan ke halaman peminjaman.
peminjaman.php
<div class="container mt-5">
<div class="card">
<div class="card-header">
Petugas : <?= $_SESSION['nama'] ?>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="POST" class="mt-3" autocomplete="off">
<div class="form-group">
<label for="id_barang">Nama Barang</label>
<input list="barang" name="nama_barang" placeholder="Pilih barang" class="form-control" required>
<datalist id="barang">
<?php
foreach ($data_barang as $barang):
$daftar = $barang['nama_barang'].' - '.$barang['jenis'];
?>
<option value="<?= $daftar ?>">
<?php endforeach ?>
</select>
</div>
<div class="form-group">
<label for="jumlah_barang">Jumlah Pinjam</label>
<input type="number" name="jumlah_pinjam" placeholder="Jumlah Barang" min="1" max="1000" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary float-right">Input Transaksi</button>
<div class="clearfix"></div>
</form>
</div>
<div class="col-md-6">
<h3>Data Peminjaman</h3>
<?php
if (isset($_POST['nama_barang'], $_POST['jumlah_pinjam'])) {
$nama_barang = trim($_POST['nama_barang']);
$explode_nama_barang = explode("-", $nama_barang);
$nama_barang_exploded = $explode_nama_barang[0];
$jumlah_pinjam = $_POST['jumlah_pinjam'];
$id_user = $_SESSION['id_user'];
$barang = $conn->query("SELECT * FROM barang WHERE nama_barang='".$nama_barang_exploded."'");
$data_barang = $barang->fetch_array();
if(!isset($_SESSION['list_peminjaman'])) {
$_SESSION['list_peminjaman'] = [];
}
$pinjam = 1;
$index = -1;
$ls_pmj = unserialize(serialize($_SESSION['list_peminjaman']));
// jika barang sudah ada di daftar list maka akan diupdate
for ($i=0; $i<count($ls_pmj); $i++) {
if($ls_pmj[$i]['nama_barang'] == $nama_barang) {
$index = $i;
if($jumlah_pinjam <= $data_barang['jumlah']) {
$_SESSION['list_peminjaman'][$i]['jumlah_pinjam'] = $jumlah_pinjam;
} else {
echo '<div class="alert alert-danger" role="alert"><b>'.$nama_barang.'</b> hanya tersedia <b>'.$data_barang['jumlah'].'</b></div>';
}
break;
}
}
// jika list peminjaman kosong
if($index == -1) {
if($data_barang['jumlah'] < $jumlah_pinjam) {
echo '<div class="alert alert-danger" role="alert"><b>'.$nama_barang.'</b> hanya tersedia <b>'.$data_barang['jumlah'].'</b></div>';
} else {
$_SESSION['list_peminjaman'][] = [
'id_barang' => $data_barang['id_barang'],
'nama_barang' => $nama_barang,
'jumlah_pinjam' => $jumlah_pinjam
];
}
}
}
?>
<table class="table table-bordered">
<tr align="center">
<th>Nama barang</th>
<th>Jumlah pinjam</th>
<th>Aksi</th>
</tr>
<?php
if(isset($_SESSION['list_peminjaman'])) {
$list = unserialize(serialize($_SESSION['list_peminjaman']));
$index = 0;
for($i=0; $i<count($list); $i++) {
?>
<tr>
<td><?php echo $list[$i]['nama_barang']; ?></td>
<td align="center"><?php echo $list[$i]['jumlah_pinjam']; ?></td>
<td align="center">
<a href="?index=<?php echo $index; ?>" onclick="return confirm('Anda yakin?')">Hapus</a>
</td>
</tr>
<?php
$index++;
}
// hapus barang pada cart
if(isset($_GET['index'])) {
$list = unserialize(serialize($_SESSION['list_peminjaman']));
unset($list[$_GET['index']]);
$list = array_values($list);
$_SESSION['list_peminjaman'] = $list;
}
}
?>
</table>
<hr>
<form method="post" action="data-barang.php">
<input type="hidden" name="id_user" value="<?= $_SESSION['id_user']; ?>">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="tgl-pengembalian">Tgl. Pengembalian</label>
<input class="form-control" type="date" name="tgl-pengembalian" id="tgl-pengembalian" required>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="peminjam">Peminjam</label>
<input class="form-control" type="text" name="peminjam" id="peminjam" placeholder="Masukan Nama" required>
</div>
</div>
<div class="clearfix"></div>
</div>
<button type="submit" class="btn btn-success btn-block" name="submit">Proses</button>
</form>
</div>
</div>
</div>
</div>
</div>
<?php
if(isset($_GET["index"])){
header('Location: index.php');
}
jika ke empat file diatas sudah dibuat semua maka outputnya akan seperti berikut:
Nah.. Pada tahap ini kita belum bisa menyimpan data barang yang akan dipinjam, kita akan membuatnya diartikel selanjutnya.
Sampai jumpa dan terimakasih.
1 Komentar
min tanya kenapa ketika tombol proses ditekan mengarahkan ke data-barang, sedangkan data-barang kosong.. mohon bantuannya.. terimakasih
BalasHapus