Source Code Aplikasi Pembayaran SPP Berbasis Web dengan PHP dan MySQL #5 - Tambah Data Siswa Sekaligus Data Pembayaran

Aplikasi Pembayaran SPP Berbasis Web dengan PHP dan MySQL Part 5

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

Beberapa hari tertunda karena kesibukan lain mohon dimaklumi gengs, kalo tidak salah pada part sebelumnya kita sudah menyelesaikan proses CRUD Data SPP kan ya!.

Pada part ini kita akan melakukan proses tambah Data Siswa sekaligus Data Pembayaran, jadi ketika kita menambahkan Data Siswa secara bersamaan akan menbambahkan Data Pembayaran juga.

Okeh, langsung saja berikut yang akan kita pelajari pada artikel ini:



1 tabel tambahan pada database spp:
- tb_pembayaran

File tambahan dalam folder Admin:
- data-siswa.php
- tambah-siswa.php

Beberapa method pada file Admin.php:
- getDataSiswa()
- cekDataSiswa()
- tambahDataSiswa()
- tambahDataPembayaran()

Pertama kita buat tabel baru pada database spp karena kita akan membutuhkannya pada saat penambahan siswa. Kita akan membuat 2 proses sekaligus yaitu penambahan data siswa sekaligus data pembayaran.

tb_pembayaran

Aplikasi Pembayaran SPP Berbasis Web dengan PHP dan MySQL Part 5

Klik pada database spp lalu pilih menu SQL dan pastekan kode berikut:
CREATE TABLE `spp`.`tb_pembayaran` ( 
`id_pembayaran` INT NOT NULL AUTO_INCREMENT ,
`nisn` INT NOT NULL , `tgl_bayar` DATE NOT NULL ,
`bulan_dibayar` VARCHAR(15) NOT NULL , `id_spp` INT NOT NULL ,
`keterangan` VARCHAR(5) NOT NULL ,
`id_petugas` INT NOT NULL ,
PRIMARY KEY (`id_pembayaran`)
);

data-siswa.php

<h2>Data Siswa</h2>
<a href="?p=tambah-siswa">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>NISN</th>
  <th>NIS</th>
  <th>Nama Lengkap</th>
  <th>Kelas</th>
  <th>Tahun</th>
  <th>Aksi</th>
 </tr>
  
  <!-- tampilkan data siswa -->
  <?php
  $no = 1;
  $siswa = $admin->getDataSiswa();
  while($dt_siswa = mysqli_fetch_assoc($siswa)) {
  ?>

   <tr>
    <td><?= $no++; ?></td>
    <td><?= $dt_siswa['nisn']; ?></td>
    <td><?= $dt_siswa['nis']; ?></td>
    <td><?= $dt_siswa['nama_lengkap']; ?></td>
    <td><?= $dt_siswa['kelas']; ?></td>
    <td><?= $dt_siswa['tahun']; ?></td>
    <td><a href="?p=ubah-siswa&nisn=<?= $dt_siswa['nisn']; ?>">Ubah</a>|<a href="?p=hapus-siswa&nisn=<?= $dt_siswa['nisn']; ?>" onclick="return confirm('Yakin hapus data ini?')">Hapus</a></td>
   </tr>

  <?php
  }
  ?>

</table>

tambah-siswa.php

<?php
if (isset($_POST['submit'])) {
 $nisn = $_POST['nisn'];
 $nis = $_POST['nis'];
 $nama = $_POST['nama'];
 $kelas = $_POST['kelas'];
 $id_spp = $_POST['id_spp'];
 
 $cek = $admin->cekDataSiswa($nisn, $nis);

 if($cek->num_rows > 0)
 {
  header('Location: ?p=siswa');
  $_SESSION['pesan'] = "NISN atau NIS sudah terdaftar";
 }
 else
 {
  if($admin->tambahDataSiswa($nisn, $nis, $nama, $kelas, $id_spp))
  {
   $bulan[] = ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'];

   for ($i=0; $i < 12; $i++) { 
    $admin->tambahDataPembayaran($nisn, $bulan[0][$i], $id_spp);
   }
   header('Location: ?p=siswa');
   $_SESSION['pesan'] = "Data Siswa berhasil ditambah";
  }
  else
  {
   header('Location: ?p=siswa');
   $_SESSION['pesan'] = "Data Siswa gagal ditambah";
  }
 }
}
?>

<h2>Tambah Data SPP</h2>
<form method="post">
 <label for="nisn">NISN</label><br>
 <input type="text" name="nisn" id="nisn" required><br>
 <label for="nis">NIS</label><br>
 <input type="text" name="nis" id="nis" required><br>
 <label for="nama">Nama Lengkap</label><br>
 <input type="text" name="nama" id="nama" required><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>

Kode berikut digunakan untuk melakukan perulangan pada saat menyimpan data ke tb_pembayaran tapi dengan nama bulan berbeda yang diambil dari variabel $bulan
$bulan[] = ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'];

   for ($i=0; $i < 12; $i++) { 
    $admin->tambahDataPembayaran($nisn, $bulan[0][$i], $id_spp);
   }
   header('Location: ?p=siswa');
   $_SESSION['pesan'] = "Data Siswa berhasil ditambah";



Beberapa method tambahan

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

Penjelasan method diatas:

  • getDataSiswa() - mengambil data dari tb_siswa dan tb_spp yang kemudian diurutkan berdasarkan nilai terkecil ke terbesar
  • cekDataSiswa() - ketika proses penambahan data siswa method ini akan digunakan untuk mengecek apakah nisn atau nis sudah ada ataukah belum
  • tambahDataSiswa() - menyimpan data ke tb_siswa
  • tambahDataPembayaran() - menyimpan data ke tb_pembayaran

Admin.php

Sehingga kode keseluruhan untuk Admin.php adalah sebagai 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 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;
  }
 }
}

Kalian bisa tonton video untuk part 5 ini disini. Terimakasih dan sampai jumpa pada artikel selanjutnya.





Posting Komentar

0 Komentar