Source Code Aplikasi Peminjaman Barang Berbasis Web dengan PHP dan MySQL Part 7 - Membuat halaman operator

aplikasi inventory barang - form peminjaman

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:

Aplikasi peminjaman barang part 7

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:

Desain form peminjaman barang

Nah.. Pada tahap ini kita belum bisa menyimpan data barang yang akan dipinjam, kita akan membuatnya diartikel selanjutnya.

Sampai jumpa dan terimakasih.


Posting Komentar

1 Komentar

  1. min tanya kenapa ketika tombol proses ditekan mengarahkan ke data-barang, sedangkan data-barang kosong.. mohon bantuannya.. terimakasih

    BalasHapus