Source Code Aplikasi Pembayaran SPP Berbasis Web dengan PHP dan MySQL #6 - Ubah dan Hapus Data Siswa

Aplikasi Pembayaran SPP Part 6

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.

Posting Komentar

4 Komentar

  1. 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

    BalasHapus
    Balasan
    1. Silahkan mas, bisa diunduh di https://github.com/PlajariKode/db-spp/archive/master.zip

      Hapus