Membuat Script PHP untuk Rekap Data dari Data Mentah
September 5th, 2008 | by rosihanari |
Cetak Artikel Ini
Selamat berjumpa lagi para pengunjung setia Blog.RosihanAri.Net, satu lagi persembahan dari kami untuk Anda pecinta web programming. Pada artikel kali ini akan dibahas mengenai cara membuat script untuk menghasilkan rekap data, yang semula berasal dari data mentah MySQL. Script ini dibuat dengan PHP.
Sebagai studi kasus, kita akan mengambil data tentang mahasiswa. Adapun struktur tabel untuk menyimpan data mahasiswa ini adalah sebagai berikut:
1 2 3 4 5 | CREATE TABLE mahasiswa ( nim varchar(8), namaMhs varchar(20), PRIMARY KEY (nim) ) |
dan
1 2 3 4 5 | CREATE TABLE jurusan ( kodeJurusan varchar(3), namaJurusan varchar(10), PRIMARY KEY (kodeJurusan) ) |
Adapun sampel data untuk tabel mahasiswa adalah:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | insert into mahasiswa values ('M0197001', 'A'), ('M0197002', 'B'), ('M0197003', 'C'), ('M0197004', 'D'), ('M0198001', 'E'), ('M0198002', 'F'), ('M0199001', 'G'), ('M0199002', 'H'), ('M0199003', 'I'), ('M0297001', 'J'), ('M0297002', 'K'), ('M0297003', 'L'), ('M0298001', 'M'), ('M0298002', 'N'), ('M0298003', 'O'), ('M0298004', 'P'), ('M0298005', 'Q'), ('M0299001', 'R'), ('M0299002', 'S'), ('M0299003', 'T'), ('M0397001', 'U'), ('M0397002', 'V'), ('M0398001', 'W'), ('M0398002', 'X'), ('M0399001', 'Y'), ('M0399002', 'Z'); |
Dalam data di atas, terdapat 26 data mahasiswa yang terdiri dari beberapa tahun angkatan, yaitu Angkatan 97, 98 dan 99, yang tersebar di setiap jurusan. Jurusan apa saja yang ada? ini dia data untuk tabel Jurusan:
1 2 3 4 | insert into jurusan values ('M01', 'Matematika'), ('M02', 'Fisika'), ('M03', 'Kimia'); |
Nah.. rekap yang akan dibuat adalah menampilkan jumlah mahasiswa per angkatan dan per tahun angkatan, serta jumlah mahasiswa untuk per jurusan. Perhatikan output dari rekap berikut ini:

OK… bagaimana ide untuk membuat rekap di atas? Mudah kok, hanya butuh 2 langkah, yaitu:
- Langkah pertama adalah membuat judul kolom tabel untuk NO. dan NAMA JURUSAN, sedangkan kolom tahun angkatan kita buat dinamis yaitu dengan membaca data dari tabel mahasiswa. Untuk mengetahui tahun angkatan berapa saja dalam tabel mahasiswa, kita memanfaatkan query SQL. Tahun angkatan biasa terdapat dalam NIM mahasiswa, dalam contoh ini angkatan ditunjukkan pada digit 4 dan 5. Sehingga kita gunakan SUBSTRING dalam SQL nya. Setelah NO, NAMA JURUSAN, dan TAHUN ANGKATAN sudah dibuat, kolom yang terakhir adalah kolom JUMLAH.
- Langkah kedua kita mulai membuat baris dalam tabel. Adapun baris tabel menunjukkan nama masing-masing jurusan dan jumlah mahasiswa per angkatannya. Untuk membuat ini, kita membuat 2 buah looping. Looping yang pertama untuk menampilkan nama Jurusan. Nah… untuk setiap jurusan, kita hitung jumlah mahasiswa per angkatan. Untuk menghitung ini, kita gunakan looping yang kedua.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | <?php // koneksi ke mysql mysql_connect("localhost","root","root"); mysql_select_db("data"); ?> <h1>Rekap Data Mahasiswa</h1> <table border="1"> <!-- membuat nama kolom untuk No Urut dan Nama Jurusan --> <tr> <td>No</td> <td>Nama Jurusan</td> <?php // query untuk mencari tahun angkatan berapa saja // dari mahasiswa $query = "SELECT DISTINCT substring(nim, 4, 2) as angkatan FROM mahasiswa"; $hasil = mysql_query($query); while ($data = mysql_fetch_array($hasil)) { // menampilkan nama kolom untuk setiap angkatan yang ada echo "<td>Angkatan ".$data['angkatan']."</td>"; } ?> <!-- membuat nama kolom untuk Jumlah --> <td>Jumlah</td> </tr> <?php // nilai awal untuk no. urut $no = 1; // query untuk menampilkan nama masing-masing jurusan $query = "SELECT * FROM jurusan"; $hasil = mysql_query($query); // looping pertama untuk menampilkan nama jurusan while ($data = mysql_fetch_array($hasil)) { // kode jurusan diambil untuk query mencari jumlah // mahasiswa per angkatan $kodeJurusan = $data['kodeJurusan']; echo "<tr>"; // menampilkan no. urut dan nama jurusan echo "<td>".$no."</td><td>".$data['namaJurusan']."</td>"; // query untuk menampilkan angkatan berapa saja dalam // tabel mahasiswa $query2 = "SELECT DISTINCT substring(nim, 4, 2) as angkatan FROM mahasiswa"; $hasil2 = mysql_query($query2); // nilai awal untuk menjumlahkan mahasiswa per angkatan $jumMhsPerJurusan = 0; // looping kedua untuk menampilkan jumlah mhs per angkatan while ($data2 = mysql_fetch_array($hasil2)) { $angkatan = $data2['angkatan']; // query untuk mencari jumlah mhs per angkatan per jurusan $query3 = "SELECT count(*) as jumlah FROM mahasiswa WHERE substring(nim, 4, 2) = '$angkatan' AND substring(nim, 1, 3) = '$kodeJurusan'"; $hasil3 = mysql_query($query3); $data3 = mysql_fetch_array($hasil3); // menghitung total mahasiswa per jurusan // (gunakan increment) $jumMhsPerJurusan += $data3['jumlah']; // menampilkan jumlah mahasiswa per angkatan per jurusan echo "<td>".$data3['jumlah']."</td>"; } // menampilkan jumlah total mahasiswa per jurusan echo "<td>".$jumMhsPerJurusan."</td>"; echo "</tr>"; // increment untuk no. urut data $no++; } ?> </table> |
Ada pertanyaan dan masalah terkait dengan tutorial di atas? Silakan isi komentar di bawah ini.
Beberapa artikel terkait
- Membuat Script PHP Untuk Report atau Rekap Data (2)
- Penggunaan Function substring() di Query SQL
- Relasi Tabel dengan Substring di SQL
- Membuat Script PHP untuk Hapus Data dengan Multi Selection
- Script PHP untuk Menampilkan Data dalam Tabel dengan Warna Baris Selang-seling
- Script PHP untuk Mengedit Data Via Form
- Script PHP untuk Edit Data dengan Komponen RadioButton pada Form
- Ide Membuat Script Grafik PHP Untuk Menampilkan Indeks Prestasi Mahasiswa (Studi Kasus)
- Script PHP untuk Menghapus Data Via Panel di Tabel
- Membuat Auto Deletion (Hapus Otomatis) Data Dengan Script PHP
Share this article on:
Kata kunci: PHP -
Mau kaos (T-shirt) Wordpress keren? (
Rosihan Ari adalah seorang programmer, penulis buku, trainer, peneliti dan berusaha menjadi seorang blogger sejati dengan memberikan yang terbaik buat negeri ini. Berfokus pada computer programming serta computer aided learning for mathematics, ia ingin berbagi ilmu yang dimilikinya. 


Tutorial nya keren mas… simple tapi bagus…
btw, gw mau tanya soal substring dalam topik di atas, maksudnya apa yach???
Subtring dalam MySQL berguna untuk mengambil sebagian karakter dalam suatu string. Coba baca artikel di sini
terima kasih ya..
oh iya mas aku juga mo tanya nie, jika hasih recordnya dibalik gimna ya…
jadi no, nama_jurusan, angkatan disebelah kiri semua dan hasilnya berada disebelah kanannya gak dibawahnya,
terus juga bagaimana caranya membuat inputan id
untuk memcari data yang diinginkan sehingga hasilnya terdapat dalam table itu
to sarwanto: bisa mas, kalo itu cuman masalah menampilkan ke tabel saja. Berarti anda harus mengutak-atik tag untuk tabelnya.
Terimakasih mas infonya. Sangat membantu saya dalam belajar membangun situs saya http://www.ebooklangka.co.cc . Thnks.
Bagus2 sangat membantu saya.
Mas.. Tongin saya dung..
Saya ma nayak ni..
Gimana mencari Angkatan, Jurusan dari nim mis. DB nya seperti ini
Tabel MHS
NIM Nama
060501 Andi “06″ Angkatan 2006, “05″ Jur TI
050401 Budi “05″ Angt 2005, “04″ Jur SK
050301 Cinta “05″ Angk 2005, “03″ Jur SI
Tabel JUR.
KDJUR NAMAJUR
05 TI
04 SK
03 SI
Tolong ya mas…
Dan bagi yang mau ngebatuin saya tolong dikirim ke e-mail: anjarprotc@gmail.com
mas kalau bikin kalkulator online bisa gak mas?? saya masih belajar untuk itu…jangan lupa tukeran link ya mas….
Sangat bermanfaat, ikut ngunduh tutor nya ya mas…
Thanks to much….