Source Code Aplikasi Pembayaran SPP Berbasis Web dengan PHP dan MySQL #8 - Menampilkan Tabel Pembayaran

Banner aplikasi pembayaran spp berbasis web dengan php dan mysql

Aplikasi Pembayaran SPP - Hai, berjumpa kembali dalam blog sederhana ini, masih dalam pembuatan Aplikasi Pembayaran SPP Berbasis Web dengan PHP dan MySQL.

Kita sudah mendekati ke tahap transaksi pembayaran, pada artikel sebelumnya kita sudah membuat CRUD Data Petugas yang nantinya digunakan untuk proses login sebagai petugas. Dan pada artikel ini kita akan menampilkan tabel pembayaran.

Baiklah, langsung saja kita buat folder baru pada root direktory aplikasi-pembayaran-spp dengan nama petugas, sehinggan akan tampak seperti berikut:

  • aplikasi-pembayaran-spp
    • config
    • includes
    • petugas (folder baru)
    • index.php
    • Proses.php

Pertama, buka file index.php lalu ubah baris koder berikut:
echo "Pergi ke halaman Petugas";

Kode diatas hanya akan menampilkan tulisan "Pergi ke halaman Petugas" apabila kita berhasil masuk sebagai petugas, maka dari itu ubah kode diatas menjadi:

header('Location: petugas');
   $_SESSION['id'] = $data['id_petugas'];
   $_SESSION['level'] = $data['level'];

Kode diatas akan mengarahkan kita ke folder petugas dan akan otomatis mencari file index.php yang ada dalam folder petugas. Jika dijalankan masih terdapat error karena kita belum buat file index.php tersebut.

Didalam folder petugas inilah kita akan membuat folder dan beberapa file baru untuk membuat halaman transaksi dan proses menampilkan tabel pembayaran. Berikut folder dan file yang perlu dibuat:

  • petugas
    • includes (folder baru)
      • transaksi.php
    • header.php
    • index.php
    • Petugas.php
    • footer.php

index.php

Navigasi untuk setiap menu yang diklik.
<?php
require_once 'header.php';

if(isset($_GET['p'])) {
 if($_GET['p'] == 'transaksi') {
  require_once 'includes/transaksi.php';
 }elseif($_GET['p'] == 'logout') {
  header('Location: ../');
  session_destroy();
 }
}

header.php

Hanya ada 2 menu untuk halaman Petugas, yaitu Transaksi dan Logout.
<?php
session_start();
require_once 'Petugas.php';

$petugas = new Petugas;

// jika session id belum diset, maka kembalikan ke halaman login
if(!isset($_SESSION['id'])) {
 header('Location: ../');
}
?>

<!DOCTYPE html>
<html>
<head>
 <title>Halaman Petugas</title>
 <style type="text/css">
  li {
   margin-right: 10px;
  }
 </style>
</head>
<body>
 <div>
  <ul style="display:flex; list-style:none;">
   <li><b>Aplikasi Pembayaran SPP</b></li>
   <li><a href="?p=transaksi">Transaksi</a></li>
   <li><a href="?p=logout">Logout</a></li>
  </ul>
 </div>



Petugas.php

Didalamnya terdapat class dan beberapa method yang diperlukan.
<?php
require_once '../config/Koneksi.php';

class Petugas extends Koneksi {
 public function getDataSiswaByNIS($nis) {
  $stmt = mysqli_query($this->konek, "SELECT * FROM tb_siswa WHERE nis = '$nis'");

  return $stmt;
 }

 public function getPembayaranByNISN($nisn) {
  $stmt = mysqli_query($this->konek, "SELECT p.bulan_dibayar, s.tahun, s.nominal, p.tgl_bayar, p.keterangan, pt.nama_petugas FROM tb_pembayaran AS p INNER JOIN tb_spp AS s ON p.id_spp = s.id_spp LEFT JOIN tb_petugas AS pt ON p.id_petugas = pt.id_petugas WHERE p.nisn = 124124 ORDER BY p.id_pembayaran ASC");

  return $stmt;
 }
}

  • method getDataSiswaByNIS() digunakan untuk mengambil data siswa berdasarkan nis yang dikirimkan
  • method getPembayaranByNISN() digunakan untuk mengambil data dari beberapa tabel sekaligus dengan menggunakan fungsi join (inner join dan left join).

Sekarang coba lakukan pencarian lagi, jika berhasil data dari tb_siswa akan muncul sesuai dengan nis yang dimasukan.

footer.php

Jika kalian menggunakan Bootstrap atau sejenisnya, kalian bisa letakan javascriptnya difile ini.
</body>
</html>

transaksi.php

Ini adalah file penting yang ada dalam folder includes untuk tampilan halaman Transaksi.
<h2>Transaksi Pembayaran</h2>

<form method="post" action="">
 <label>Masukan NIS</label>
 <input type="text" name="nis">
 <button type="submit" name="submit">Cari</button>
</form><br/>

<?php
if(isset($_POST['nis']) && $_POST['nis'] != '') {
 $rows = $petugas->getDataSiswaByNIS($_POST['nis']);

 if ($rows->num_rows > 0) {
  foreach ($rows as $row) :
   ?>

   <table>
    <tr>
     <td>NIS</td>
     <td>:</td>
     <td><?= $row['nis']; ?></td>
    </tr>
    <tr>
     <td>Nama Siswa</td>
     <td>:</td>
     <td><?= $row['nama_lengkap']; ?></td>
    </tr>
    <tr>
     <td>Kelas</td>
     <td>:</td>
     <td><?= $row['kelas']; ?></td>
    </tr>
   </table><br/>

   <?php
  endforeach;
  ?>

  <table border="1">
   <tr>
    <th>No.</th>
    <th>Bulan</th>
    <th>Tahun</th>
    <th>Nominal</th>
    <th>Tgl. Bayar</th>
    <th>Keterangan</th>
    <th>Petugas</th>
    <th>Aksi</th>
   </tr>

   <?php
   $no = 1;
   $dt_pembayaran = $petugas->getPembayaranByNISN($row['nisn']);

   while ($dt = mysqli_fetch_assoc($dt_pembayaran)) :
    ?>

    <tr>
     <td><?= $no++; ?></td>
     <td><?= $dt['bulan_dibayar']; ?></td>
     <td><?= $dt['tahun']; ?></td>
     <td><?= $dt['nominal']; ?></td>
     <td><?= $dt['tgl_bayar']; ?></td>
     <td><?= $dt['keterangan']; ?></td>
     <td><?= $dt['nama_petugas']; ?></td>
     <td>

      <?php
      if($dt['keterangan'] == 'Lunas') {
       echo '<a href="#"><button>Batal</button></a> | <a href="#"><button>Cetak</button></a>';
      } else {
       echo '<a href="#"><button>Bayar</button></a>';
      }
      ?>

     </td>
    </tr>

    <?php
   endwhile;
  } else {
   echo "NIS tidak terdaftar";
  }
 }
 ?>

</table>


Silahkan lakukan pencarian berdasarkan nis dan apabila berhasil akan memunculkan sebuah tabel yang didalamnya ada tombol yang belum berfungsi (kita simpan untuk part selanjutnya).

Dan apabila ada error coba perbaiki sendiri sebelum bertanya ke teman, guru atau bahkan forum.

Bisa kalian tonton videonya disini, terimakasih sudah mampir dan sampai jumpa pada part selanjutnya.

Posting Komentar

2 Komentar

  1. Sourcecode yang ke 9 diupload ya min

    BalasHapus
    Balasan
    1. Part 9 : https://www.plajarikode.com/2020/04/source-code-aplikasi-pembayaran-spp-9.html

      Hapus