Source Code Aplikasi Pembayaran SPP Berbasis Web dengan PHP dan MySQL #7 - CRUD Data Petugas

Aplikasi Pembayaran SPP #7 - CRUD Data Petugas

Aplikasi Pembayaran SPP - Hai, berjumpa lagi, masih dalam pembuatan Aplikasi Pembayaran SPP Berbasis Web dengan PHP dan MySQL.

Kita sudah hampir menyelesaikan semua fitur pada halaman Admin, dan pada artikel kali ini kita akan mempelajari CRUD untuk Data Petugas.

Yang nantinya kita akan login sebagai petugas dan melakukan transaksi pembayaran spp. Selengkapnya mungkin pada artikel berikutnya. :)

File baru pada folder admin:
- data-petugas.php
- tambah-petugas.php
- ubah-petugas.php

Beberapa method tambahan didalam class Admin:
- getAllDataPetugas()
- tambahDataPetugas()
- ubahDataPetugas()
- hapusDataPetugas()

Pertama, tambahkan beberapa baris kode berikut pada file index.php yang ada dalam folder admin untuk navigasi ke halaman petugas dan juga untuk proses logout.

index.php

<?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') {
  require_once 'ubah-siswa.php';
 } elseif($_GET['p'] == 'hapus-siswa') {
  if($admin->hapusDataSiswa($_GET['nisn']))
  {
   $admin->hapusDataPembayaran($_GET['nisn']);
   header('Location: ?p=siswa');
   $_SESSION['pesan'] = "Data Siswa berhasil dihapus";
  }
  else
  {
   header('Location: ?p=siswa');
   $_SESSION['pesan'] = "Data Siswa gagal dihapus";
  }
 // baris kode untuk navigasi petugas
 } elseif($_GET['p'] == 'petugas') {
  require_once 'data-petugas.php';
 } elseif($_GET['p'] == 'tambah-petugas') {
  require_once 'tambah-petugas.php';
 } elseif($_GET['p'] == 'ubah-petugas') {
  require_once 'ubah-petugas.php';
 } elseif($_GET['p'] == 'hapus-petugas') {
  if($admin->hapusDataPetugas($_GET['id'])) // digunakan untuk hapus data petugas
  {
   header('Location: ?p=petugas');
   $_SESSION['pesan'] = "Data Petugas berhasil dihapus";
  }
  else
  {
   header('Location: ?p=petugas');
   $_SESSION['pesan'] = "Data Petugas gagal dihapus";
  }
 } 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";
  }
 } elseif($_GET['p'] = 'logout') {
  header('Location: ../../index.php');
  session_destroy();
 }
} 

require_once 'footer.php'; 
?>

Admin.php

Berikut adalah beberapa method tambahan untuk proses CRUD Data Petugas:
public function getAllDataPetugas() {
  $stmt = mysqli_query($this->konek, "SELECT * FROM tb_petugas");

  return $stmt;
 }

 public function tambahDataPetugas($nama, $username, $password, $level) {
  $stmt = mysqli_query($this->konek, "INSERT INTO tb_petugas VALUES ('', '$username', '$password', '$nama', '$level')");

  if($stmt) {
   return true;
  } else {
   return false;
  }
 }

 public function ubahDataPetugas($nama, $username, $password, $level, $id) {
  $stmt = mysqli_query($this->konek, "UPDATE tb_petugas SET nama_petugas = '$nama', username = '$username', password = '$password', level = '$level' WHERE id_petugas = '$id'");

  if($stmt) {
   return true;
  } else {
   return false;
  }
 }

 public function hapusDataPetugas($id) {
  $stmt = mysqli_query($this->konek, "DELETE FROM tb_petugas WHERE id_petugas = '$id'");

  if($stmt) {
   return true;
  } else {
   return false;
  }
 }

Selengkapnya untuk class Admin
<?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 getAllDataPetugas() {
  $stmt = mysqli_query($this->konek, "SELECT * FROM tb_petugas");

  return $stmt;
 }

 public function tambahDataPetugas($nama, $username, $password, $level) {
  $stmt = mysqli_query($this->konek, "INSERT INTO tb_petugas VALUES ('', '$username', '$password', '$nama', '$level')");

  if($stmt) {
   return true;
  } else {
   return false;
  }
 }

 public function ubahDataPetugas($nama, $username, $password, $level, $id) {
  $stmt = mysqli_query($this->konek, "UPDATE tb_petugas SET nama_petugas = '$nama', username = '$username', password = '$password', level = '$level' WHERE id_petugas = '$id'");

  if($stmt) {
   return true;
  } else {
   return false;
  }
 }

 public function hapusDataPetugas($id) {
  $stmt = mysqli_query($this->konek, "DELETE FROM tb_petugas WHERE id_petugas = '$id'");

  if($stmt) {
   return true;
  } else {
   return false;
  }
 }

 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;
  }
 }
}

data-petugas.php

<h2>Data Petugas</h2>
<a href="?p=tambah-petugas">Tambah Data</a>
<br><br>

<?php
if(isset($_SESSION['pesan'])) {
 echo $_SESSION['pesan'];
 unset($_SESSION['pesan']);
 echo '<br/>';
}
?>

<table border="1">
 <tr>
  <th>No.</th>
  <th>Nama Petugas</th>
  <th>Username</th>
  <th>Password</th>
  <th>Level</th>
  <th>Aksi</th>
 </tr>

 <?php 
 $no = 1;
 $rows = $admin->getAllDataPetugas();

 foreach ($rows as $row) :
 ?>

 <tr>
  <td><?= $no++; ?></td>
  <td><?= $row['nama_petugas']; ?></td>
  <td><?= $row['username']; ?></td>
  <td><?= $row['password']; ?></td>
  <td><?= $row['level']; ?></td>
  <td><a href="?p=ubah-petugas&id=<?= $row['id_petugas']; ?>">Ubah</a> | <a href="?p=hapus-petugas&id=<?= $row['id_petugas']; ?>">Hapus</a></td>
 </tr>

 <?php
 endforeach;
 ?>

</table>

tambah-petugas.php

<?php
if(isset($_POST['submit'])) {
 $nama = $_POST['nama'];
 $uname = $_POST['username'];
 $pass = sha1($_POST['password']);
 $level = $_POST['level'];

 if($admin->tambahDataPetugas($nama, $uname, $pass, $level)) {
  $_SESSION['pesan'] = "Tambah data petugas berhasil";
  header('Location: ?p=petugas')
 } else {
  $_SESSION['pesan'] = "Tambah data petugas gagal";
 }
}
?>

<h2>Form Tambah Petugas</h2>

<form method="POST">
 <label>Nama Lengkap</label><br/>
 <input type="text" name="nama" required><br/>
 <label>Username</label><br/>
 <input type="text" name="username" required><br/>
 <label>Password</label><br/>
 <input type="password" name="password" required><br/>
 <label>Level</label><br/>
 <select name="level">
  <option value="Admin">Admin</option>
  <option value="Petugas">Petugas</option>
 </select> 
 <button type="submit" name="submit">Simpan</button>
</form>

ubah-petugas.php

<?php
if(isset($_POST['submit'])) {
 $nama = $_POST['nama'];
 $uname = $_POST['username'];
 $pass = sha1($_POST['password']);
 $level = $_POST['level'];
 $id = $_GET['id'];

 if($admin->ubahDataPetugas($nama, $uname, $pass, $level, $id)) {
  $_SESSION['pesan'] = "Ubah data petugas berhasil";
  header('Location: ?p=petugas');
 } else {
  $_SESSION['pesan'] = "Ubah data petugas gagal";
  header('Location: ?p=petugas');
 }
}

$data = $admin->getDataPetugas($_GET['id']);

foreach ($data as $row) :
?>

<h2>Ubah Data Petugas</h2>
<form method="POST">
 <label>Nama Lengkap</label><br/>
 <input type="text" name="nama" required value="<?= $row['nama_petugas']; ?>"><br/>
 <label>Username</label><br/>
 <input type="text" name="username" required value="<?= $row['username']; ?>"><br/>
 <label>Password</label><br/>
 <input type="password" name="password" required value="<?= $row['password']; ?>"><br/>
 <label>Level</label><br/>
 <select name="level">
  <option value="Admin">Admin</option>
  <option value="Petugas">Petugas</option>
 </select> 
 <button type="submit" name="submit">Ubah</button>
</form>

<?php
endforeach;
?>

Cukup panjang untuk artikel kali ini, dengan ini kita sudah membuat semua fitur pada halaman Admin gengs. Untuk selanjutnya kita akan login sebagai petugas dan menampilkan tabel pembayaran.

Sampai disini untuk artikel kali ini, kalian bisa saksikan videonya disini dan terimakasih.

Posting Komentar

3 Komentar

  1. bang ada error pas mau nambahin petugas gmn bang

    BalasHapus
  2. Parse error: syntax error, unexpected '}' in C:\xamppv\htdocs\Ccoba\includes\admin\tambah-petugas.php on line 11


    padahal sintax nya udah sama bang udah di copi kang dari

    BalasHapus
    Balasan
    1. Komentar ini telah dihapus oleh pengarang.

      Hapus