Minggu, 08 September 2013

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

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...
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, . 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. Oya.. dalam contoh script ini akan ditampilkan NIS dan Nama Siswa yang belum bayar SPP pada bulan Pebruari 2008.

01.<?php
02. 
03.mysql_connect("dbhost", "dbuser", "dbpass");
04.mysql_select_db("dbname");
05. 
06.$query = "SELECT nis, namasiswa FROM siswa WHERE nis NOT IN (SELECT nis FROM bayarspp WHERE byrbln = 2 AND byrthn = '2008')";
07.$hasil = mysql_query($query);
08.while ($data = mysql_fetch_array($hasil))
09.{
10.$nis = $data['nis'];
11.$namasiswa = $data['namasiswa'];
12. 
13.echo $nis." ".$namasiswa."<br />";
14.}
15. 
16.?>
Perhatikan script di atas! Dalam script di atas kita gunakan query SQL
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:

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

01.<?php
02. 
03.mysql_connect("dbhost", "dbuser", "dbpass");
04.mysql_select_db("dbname");
05. 
06.$query = "SELECT nis, namasiswa FROM siswa WHERE nis NOT IN (SELECT nis FROM bayarspp WHERE byrbln = 2 AND byrthn = '2008')";
07.$hasil = mysql_query($query);
08.while ($data = mysql_fetch_array($hasil))
09.{
10.$nis = $data['nis'];
11.$namasiswa = $data['namasiswa'];
12. 
13.$query2 = "SELECT tglbyr, byrbln, byrthn FROM bayarspp WHERE nis = '$nis' ORDER BY tglbyr DESC LIMIT 0, 1";
14.$hasil2 = mysql_query($query2);
15.$data2  = mysql_fetch_array($hasil2);    
16. 
17.echo $nis." ".$namasiswa." ".$data2['tglbyr']." ".$data2['byrbln']." ".$data2['byrthn']."<br />";
18.}
19. 
20.?>
OK.. selesai deh.. eh tapi kok amburadul ya tampilannya? ya… gunakan tabel saja untuk mengatur tampilannya supaya cuantiiq… :-)

01.<?php
02. 
03.mysql_connect("dbhost", "dbuser", "dbpass");
04.mysql_select_db("dbname");
05. 
06.$query = "SELECT nis, namasiswa FROM siswa WHERE nis NOT IN (SELECT nis FROM bayarspp WHERE byrbln = 2 AND byrthn = '2008')";
07.$hasil = mysql_query($query);
08. 
09.echo "<h3>Daftar siswa yang belum bayar SPP bulan Pebruari Th 2008</h3>";
10. 
11.echo "<table border='1'>";
12.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>";
13. 
14.while ($data = mysql_fetch_array($hasil))
15.{
16.$nis = $data['nis'];
17.$namasiswa = $data['namasiswa'];
18. 
19.$query2 = "SELECT tglbyr, byrbln, byrthn FROM bayarspp WHERE nis = '$nis' ORDER BY tglbyr DESC LIMIT 0, 1";
20.$hasil2 = mysql_query($query2);
21.$data2  = mysql_fetch_array($hasil2);
22. 
23.echo "<tr><td>".$nis."</td><td>".$namasiswa."</td><td>".$data2['tglbyr']."</td><td>".$data2['byrbln']."</td><td>".$data2['byrthn']."</td></tr>";  
24. 
25.}
26.echo "</table>";
27. 
28.?>
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:

01.INSERT INTO `bayarspp` VALUES ('10001', '2008-01-10', 1, '2008');
02.INSERT INTO `bayarspp` VALUES ('10002', '2008-01-12', 1, '2008');
03.INSERT INTO `bayarspp` VALUES ('10003', '2008-01-10', 1, '2008');
04.INSERT INTO `bayarspp` VALUES ('10001', '2008-02-09', 2, '2008');
05.INSERT INTO `bayarspp` VALUES ('10003', '2008-02-13', 2, '2008');
06.INSERT INTO `bayarspp` VALUES ('10004', '2008-01-11', 1, '2008');
07.INSERT INTO `bayarspp` VALUES ('10004', '2007-12-20', 12, '2007');
08.INSERT INTO `bayarspp` VALUES ('10005', '2007-12-20', 12, '2007');
09.INSERT INTO `bayarspp` VALUES ('10005', '2008-01-10', 1, '2008');
10.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’.

Tidak ada komentar :

Posting Komentar