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:
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.
2 Komentar
Sourcecode yang ke 9 diupload ya min
BalasHapusPart 9 : https://www.plajarikode.com/2020/04/source-code-aplikasi-pembayaran-spp-9.html
Hapus