About Me

Hai, saya Rosihan Ari Yuana. Saya sehari-hari adalah mengajar di Universitas Sebelas Maret.

Bidang riset saya tentang adaptive learning, computer aided learning, dan datascience

Selain itu, saya juga seorang penulis buku dan blogger.

More about me...

  • Home
  • /
  • PHP
  • /
  • Script PHP untuk Menampilkan Siswa Belum Bayar SPP (A Study Case)
PHP, SQL

Script PHP untuk Menampilkan Siswa Belum Bayar SPP (A Study Case)

Bila Anda merupakan pengunjung setia blog ini, maka Anda akan pernah mendapatkan artikel yang hampir sama beberapa waktu yang lalu. Namun perbedaan artikel berikut ini adalah bagaimana cara menampilkan data siswa yang belum membayar SPP pada bulan dan tahun tertentu. Selain mengetahui name by name siswanya, juga akan ditampilkan tanggal SPP terakhir yang dibayarkan siswa yang menunggak tadi. Untuk mencari solusi dari hal ini, kita akan coba gunakan script PHP. Oya.. artikel ini merupakan request dari mas Hendriko, salah satu member saya.

OK mas Hendriko dan pengunjung setia blog ini, untuk membuat script PHP seperti yang kita inginkan di atas, langkah pertama adalah kita cari idenya dahulu. Ini adalah keharusan sebelum memulai scripting. Bila kita tidak punya ide, maka… kita akan bingung sendiri. Gimana mau bisa buat script, kalo bingung gimana mau memulai scriptnya. So… guys… ‘ide’ adalah hal yang utama.

Lantas.. idenya bagaimana nih? OK… ide ini bisa diperoleh berdasarkan output yang kita inginkan. Output yang kita harapkan adalah menampilkan Nomor Induk Siswa (NIS) yang belum bayar SPP pada bulan dan tahun tertentu, namanya siapa, tanggal terakhir dia bayar SPP berapa, dan dia bayarkan SPP terakhir tersebut untuk bulan dan tahun berapa. OK.. itu outputnya.

Sekarang… idenya bagaimana untuk mendapatkan output di atas? OK… untuk mendapatkan NIS dan nama siswa yang belum membayar pada bulan dan tahun tertentu, kita bisa menggunakan perintah query SQL seperti halnya yang telah dijelaskan pada artikel sebelumnya. Trus.. untuk mendapatkan tanggal terakhir SPP dibayarkan dan informasi lainnya, gimana caranya? Ya… thats the point. Mmm.. enaknya kita buat script PHP nya dulu untuk menampilkan NIS dan Nama Siswa yang belum bayar dulu yah.. informasi yang lainnya nyusul,

OK.. ini dia script PHP untuk menampilkan NIS dan Nama Siswanya, dengan asumsi kita gunakan tabel yang sama seperti pada artikel sebelumnya. Oya.. dalam contoh script ini akan ditampilkan NIS dan Nama Siswa yang belum bayar SPP pada bulan Pebruari 2008.

<?php

mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

$query = "SELECT nis, namasiswa FROM siswa WHERE nis NOT IN (SELECT nis FROM bayarspp WHERE byrbln = 2 AND byrthn = '2008')";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
   $nis = $data['nis'];
   $namasiswa = $data['namasiswa'];
     
   echo $nis." ".$namasiswa."<br />";   
}

?>

Perhatikan script di atas! Dalam script di atas kita gunakan query SQL yang sama seperti yang digunakan pada artikel sebelumnya.

Next… bagaimana dengan informasi yang lainnya, seperti tanggal terakhir si siswa bayar SPP dan untuk bulan dan tahun berapa ia bayarkan. Nah.. untuk mencari informasi tersebut, kita gunakan query lagi memanfaatkan NIS yang kita telah peroleh dari query sebelumnya.

Query SQL untuk mencari tanggal terakhir seorang mahasiswa berNIS ‘X’ membayar SPP dan untuk bulan dan tanggal berapa ia bayarkan adalah dengan perintah sbb:

SELECT tglbyr, byrbln, byrthn FROM bayarspp WHERE nis = 'X' ORDER BY tglbyr DESC LIMIT 0, 1;

Nah.. NIS dalam klausa WHERE tersebut nantinya kita gantikan dengan NIS para siswa yang belum bayar SPP pada bulan Pebruari 2008 tersebut.

Oya… ide query SQL di atas adalah, kita sort semua data pembayaran yang telah dilakukan siswa berNIS ‘X’ berdasarkan tanggal bayar secara DESC. Untuk mendapatkan data pembayaran yang terakhir saja, maka kita gunakan LIMIT 0, 1. Selesai… 🙂

Next… kita gabungkan query di atas dengan script PHP sebelumnya. Bagaimana menggabungkannya? dan dimana letaknya dalam script? Ya.. letaknya di dalam WHILE(). Karena dalam WHILE lah kita menampilkan data NIS dan Nama Siswa yang belum bayar SPP secara satu persatu.

<?php

mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

$query = "SELECT nis, namasiswa FROM siswa WHERE nis NOT IN (SELECT nis FROM bayarspp WHERE byrbln = 2 AND byrthn = '2008')";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
   $nis = $data['nis'];
   $namasiswa = $data['namasiswa'];

   $query2 = "SELECT tglbyr, byrbln, byrthn FROM bayarspp WHERE nis = '$nis' ORDER BY tglbyr DESC LIMIT 0, 1";
   $hasil2 = mysql_query($query2);
   $data2  = mysql_fetch_array($hasil2);     

   echo $nis." ".$namasiswa." ".$data2['tglbyr']." ".$data2['byrbln']." ".$data2['byrthn']."<br />";   
}

?>

OK.. selesai deh.. eh tapi kok amburadul ya tampilannya? ya… gunakan tabel saja untuk mengatur tampilannya supaya cuantiiq… 🙂

<?php

mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

$query = "SELECT nis, namasiswa FROM siswa WHERE nis NOT IN (SELECT nis FROM bayarspp WHERE byrbln = 2 AND byrthn = '2008')";
$hasil = mysql_query($query);

echo "<h3>Daftar siswa yang belum bayar SPP bulan Pebruari Th 2008</h3>";

echo "<table border='1'>";
echo "<tr><td>NIS</td><td>Nama Siswa</td><td>Tanggal Bayar SPP Terakhir</td><td>Untuk Pembayaran Bulan</td><td>SPP Tahun</td></tr>";

while ($data = mysql_fetch_array($hasil))
{
   $nis = $data['nis'];
   $namasiswa = $data['namasiswa'];
   
   $query2 = "SELECT tglbyr, byrbln, byrthn FROM bayarspp WHERE nis = '$nis' ORDER BY tglbyr DESC LIMIT 0, 1";
   $hasil2 = mysql_query($query2);
   $data2  = mysql_fetch_array($hasil2);
   
   echo "<tr><td>".$nis."</td><td>".$namasiswa."</td><td>".$data2['tglbyr']."</td><td>".$data2['byrbln']."</td><td>".$data2['byrthn']."</td></tr>";   
  
}
echo "</table>";

?>

Nah.. Anda bisa lihat sendiri tampilannya sekarang bila script di atas ditampilkan ke browser.. betapa cantiqnya dia he 3x 🙂 Supaya outputnya bisa banyak dan rame, Anda bisa memperbanyak variasi datanya terlebih dahulu terutama di tabel ‘bayarspp’. Atau kalau tidak ingin repot, Anda bisa gunakan data berikut ini:

INSERT INTO `bayarspp` VALUES ('10001', '2008-01-10', 1, '2008');
INSERT INTO `bayarspp` VALUES ('10002', '2008-01-12', 1, '2008');
INSERT INTO `bayarspp` VALUES ('10003', '2008-01-10', 1, '2008');
INSERT INTO `bayarspp` VALUES ('10001', '2008-02-09', 2, '2008');
INSERT INTO `bayarspp` VALUES ('10003', '2008-02-13', 2, '2008');
INSERT INTO `bayarspp` VALUES ('10004', '2008-01-11', 1, '2008');
INSERT INTO `bayarspp` VALUES ('10004', '2007-12-20', 12, '2007');
INSERT INTO `bayarspp` VALUES ('10005', '2007-12-20', 12, '2007');
INSERT INTO `bayarspp` VALUES ('10005', '2008-01-10', 1, '2008');
INSERT INTO `bayarspp` VALUES ('10005', '2007-11-20', 11, '2007');

Nah selamat mencoba dan berkreasi sendiri dengan scripting ya..

Oya… pesan saya terakhir, sebelum Anda memulai scripting, coba cari idenya dulu karena itu adalah ‘keharusan’.

 

Bagikan artikel ini jika bermanfaat !

Saya seorang dosen dan peneliti di Universitas Sebelas Maret. Bidang penelitian saya tentang: adaptive learning, datascience, dan computer aided learning. Selain itu saya juga seorang blogger, serta penulis buku tentang pemrograman, dan matematika.

One Comment

Leave a Reply