Hai geng, kembali lagi diblog sederhana ini, masih dalam pembuatan Aplikasi Pembayaran SPP Berbasis Web dengan PHP dan MySQL.
Pada artikel ini kita akan menyelesaikan proses CRUD Data Siswa yang pada artikel sebelumnya kita sudah berhasil menampilkan dan menambah data siswa sekaligus data pembayaran.
Pada proses ubah data siswa kita tidak akan merubah data NISN karena kita sudah set jadi Primary Key. Dan untuk proses hapus data siswa juga akan sekaligus menghapus data pembayran berdasarkan nisn yang akan dihapus.
File yang akan dibuat:
- ubah-siswa.php
Method tambahan dalam class Admin:
- getDataSiswaByNisn()
- ubahDataSiswa()
- hapusDataSiswa()
- hapusDataPembayaran()
index.php
Pertama, tambahkan kondisi untuk ubah dan hapus data siswa pada file index.php yang ada pada folder Admin.
<?php
require_once 'header.php';
if(isset($_GET['p'])) {
if($_GET['p'] == 'siswa') {
require_once 'data-siswa.php';
} elseif($_GET['p'] == 'tambah-siswa') {
require_once 'tambah-siswa.php';
} elseif($_GET['p'] == 'ubah-siswa') { // kondisi baru
require_once 'ubah-siswa.php';
} elseif($_GET['p'] == 'hapus-siswa') { // kondisi baru
// ini untuk proses hapus data siswa
if($admin->hapusDataSiswa($_GET['nisn']))
{
$admin->hapusDataPembayaran($_GET['nisn']); // proses hapus data pembayaran
header('Location: ?p=siswa');
$_SESSION['pesan'] = "Data Siswa berhasil dihapus";
}
else
{
header('Location: ?p=spp');
$_SESSION['pesan'] = "Data SPP gagal dihapus";
}
} elseif($_GET['p'] == 'petugas') {
require_once 'data-petugas.php'; // belum dibuat juga
} elseif($_GET['p'] == 'spp') {
require_once 'data-spp.php';
} elseif($_GET['p'] == 'tambah-spp') {
require_once 'tambah-spp.php';
} elseif($_GET['p'] == 'ubah-spp') {
require_once 'ubah-spp.php';
} elseif($_GET['p'] == 'hapus-spp') {
if($admin->hapusDataSPP($_GET['id']))
{
header('Location: ?p=spp');
$_SESSION['pesan'] = "Data SPP berhasil dihapus";
}
else
{
header('Location: ?p=spp');
$_SESSION['pesan'] = "Data SPP gagal dihapus";
}
} else {
echo '<script>alert("Halaman tidak ada!")</script>';
}
}
require_once 'footer.php';
?>
Method tambahan
public function getDataSiswaByNisn($nisn) {
$stmt = mysqli_query($this->konek, "SELECT * FROM tb_siswa WHERE nisn = '$nisn'");
return $stmt;
}
public function ubahDataSiswa($nis, $nama, $kelas, $tahun, $nisn) {
$stmt = mysqli_query($this->konek, "UPDATE tb_siswa SET nis = '$nis', nama_lengkap = '$nama', kelas = '$kelas', id_spp = '$tahun' WHERE nisn = '$nisn'");
if($stmt) {
return true;
} else {
return false;
}
}
public function hapusDataSiswa($nisn) {
$stmt = mysqli_query($this->konek, "DELETE FROM tb_siswa WHERE nisn = '$nisn'");
if($stmt) {
return true;
} else {
return false;
}
}
public function hapusDataPembayaran($nisn) {
$stmt = mysqli_query($this->konek, "DELETE FROM tb_pembayaran WHERE nisn = '$nisn'");
if($stmt) {
return true;
} else {
return false;
}
}
Penjelasan:
- getDataSiswaByNisn() - untuk mengambil data berdasarkan nisn yang diambil dari url
- ubahDataSiswa() - untuk merubah data pada tb_siswa berdasarkan nisn yang dikirimkan
- hapusDataSiswa() - menghapus data siswa berdasarkan nisn yang diambil dari url
- hapusDataPembayaran() - ketika proses hapus data siswa berjalan maka proses hapus data pembayaranpun berjalan sehingga menghapus data dari tb_pembayaran
Admin.php
Kode lengkapnya akan seperti berikut:
<?php
require_once '../../config/Koneksi.php';
class Admin extends Koneksi {
public function getDataPetugas($id) {
$stmt = mysqli_query($this->konek, "SELECT * FROM tb_petugas WHERE id_petugas = '" . $id . "'");
return $stmt;
}
public function getDataSPP() {
$stmt = mysqli_query($this->konek, "SELECT * FROM tb_spp ORDER BY tahun ASC");
return $stmt;
}
public function tambahDataSPP($tahun, $nominal) {
$stmt = mysqli_query($this->konek, "INSERT INTO tb_spp VALUES ('', '" . $tahun . "', '" . $nominal . "')");
if($stmt) {
return true;
} else {
return false;
}
}
public function getDataSPPbyId($id) {
$stmt = mysqli_query($this->konek, "SELECT * FROM tb_spp WHERE id_spp = '".$id."'");
return $stmt;
}
public function ubahDataSPP($tahun, $nominal, $id) {
$stmt = mysqli_query($this->konek, "UPDATE tb_spp SET tahun = '".$tahun."', nominal = '".$nominal."' WHERE id_spp = ".$id);
if($stmt) {
return true;
} else {
return false;
}
}
public function hapusDataSPP($id) {
$stmt = mysqli_query($this->konek, "DELETE FROM tb_spp WHERE id_spp = ".$id);
if($stmt) {
return true;
} else {
return false;
}
}
public function getDataSiswa() {
$stmt = mysqli_query($this->konek, "SELECT * FROM tb_siswa INNER JOIN tb_spp ON tb_siswa.id_spp = tb_spp.id_spp ORDER BY NISN ASC");
return $stmt;
}
public function cekDataSiswa($nisn, $nis) {
$stmt = mysqli_query($this->konek, "SELECT * FROM tb_siswa WHERE nisn = '$nisn' OR nis = '$nis'");
if($stmt) {
return true;
} else {
return false;
}
}
public function tambahDataSiswa($nisn, $nis, $nama, $kelas, $tahun) {
$stmt = mysqli_query($this->konek, "INSERT INTO tb_siswa VALUES ('$nisn', '$nis', '$nama', '$kelas', '$tahun')");
if ($stmt) {
return true;
} else {
return false;
}
}
public function getDataSiswaByNisn($nisn) {
$stmt = mysqli_query($this->konek, "SELECT * FROM tb_siswa WHERE nisn = '$nisn'");
return $stmt;
}
public function ubahDataSiswa($nis, $nama, $kelas, $tahun, $nisn) {
$stmt = mysqli_query($this->konek, "UPDATE tb_siswa SET nis = '$nis', nama_lengkap = '$nama', kelas = '$kelas', id_spp = '$tahun' WHERE nisn = '$nisn'");
if($stmt) {
return true;
} else {
return false;
}
}
public function hapusDataSiswa($nisn) {
$stmt = mysqli_query($this->konek, "DELETE FROM tb_siswa WHERE nisn = '$nisn'");
if($stmt) {
return true;
} else {
return false;
}
}
public function tambahDataPembayaran($nisn, $bulan, $id_spp) {
$stmt = mysqli_query($this->konek, "INSERT INTO tb_pembayaran (nisn, bulan_dibayar, id_spp) VALUES ('$nisn', '$bulan', '$id_spp')");
if ($stmt) {
return true;
} else {
return false;
}
}
public function hapusDataPembayaran($nisn) {
$stmt = mysqli_query($this->konek, "DELETE FROM tb_pembayaran WHERE nisn = '$nisn'");
if($stmt) {
return true;
} else {
return false;
}
}
}
ubah-siswa.php
<?php
if(isset($_POST['submit'])) {
if($admin->ubahDataSiswa($_POST['nis'], $_POST['nama'], $_POST['kelas'], $_POST['id_spp'], $_POST['nisn']))
{
header('Location: ?p=siswa');
$_SESSION['pesan'] = "Data Siswa berhasil diubah";
}
else
{
header('Location: ?p=siswa');
$_SESSION['pesan'] = "Data Siswa gagal diubah";
}
}
if(isset($_GET['nisn'])) {
$dt_siswa = $admin->getDataSiswaByNisn($_GET['nisn']);
foreach ($dt_siswa as $row) :
?>
<h2>Ubah Data Siswa</h2>
<form method="post">
<input type="hidden" name="nisn" id="nisn" required value="<?= $row['nisn']; ?>"><br>
<label for="nis">NIS</label><br>
<input type="text" name="nis" id="nis" required value="<?= $row['nis']; ?>"><br>
<label for="nama">Nama Lengkap</label><br>
<input type="text" name="nama" id="nama" required value="<?= $row['nama_lengkap']; ?>"><br>
<label for="kelas">Kelas</label><br>
<select name="kelas" id="kelas">
<option value="X">X</option>
<option value="XI">XI</option>
<option value="XII">XII</option>
</select><br>
<label for="tahun">Tahun</label><br>
<select name="id_spp" id="tahun">
<?php
$dt_spp = $admin->getDataSPP();
foreach ($dt_spp as $row) :
?>
<option value="<?= $row['id_spp']; ?>"><?= $row['tahun']; ?></option>;
<?php
endforeach;
?>
</select>
<br>
<button type="submit" name="submit">Simpan</button>
</form>
<?php
endforeach;
}
?>
Yosh, kita sudah menyelesaikan CRUD Data Siswa, selanjutnya kita akan melakukan CRUD Data Petugas dan dilanjut dengan transaksi pembayaran (ini yang ditunggu-tunggu).
Sampai disini untuk artikel kali ini, sampai jumpa dan terimakasih.
4 Komentar
misi gan,,boleh mintak file databasenya ngak gan,,?sudah di coba input data user dari phpmyadmin pas mau login "Username atau password tidak valid" gan
BalasHapusSilahkan mas, bisa diunduh di https://github.com/PlajariKode/db-spp/archive/master.zip
Hapusditunggu tutorialnya lagi mas hehe..
BalasHapusSiap bang...
Hapus