Beberapa waktu yang lalu saya pernah nulis artikel tentang cara buat script untuk rekap data
untuk kasus yang agak simple. Nah… kali ini saya akan mencoba menulis
kembali untuk masalah yang sama, namun dengan kasus yang agak sedikit
kompleks.
Perhatikan studi kasus berikut ini, misalkan kita punya data karyawan
yang tersimpan dalam 3 buah tabel yaitu ‘karyawan’, ‘golongan’ dan
‘bidang’ sebagaimana tampak pada gambar berikut ini
Tabel: Bidang
Tabel: Golongan
Tabel: Karyawan
Yang jadi permasalahan adalah, bagaimana cara kita membuat script PHP untuk menghasilkan output seperti di bawah ini?
OK sebelum kita mulai membuat scriptnya, terlebih dahulu kita harus
punya ide pembuatannya dulu. Apabila kita perhatikan bahwa setiap baris
data pada tabel output menunjukkan informasi mengenai jumlah total
pegawai, jumlah pegawai pada masing-masing golongan untuk setiap
bidangnya. Maka nanti idenya adalah, kita baca semua bidang yang ada
dahulu, kemudian untuk setiap bidangnya kita cari jumlah data
masing-masing item nya (total pegawai dan jumlah karyawan berdasarkan
golongan). Sambil mencari jumlah masing-masing item untuk setiap
bidang, jangan lupa kita jumlahkan jumlah masing-masing itemnya untuk
mencari total item di akhir tabel.
Berdasarkan ide tersebut, kita buat script PHP sbb:
01.
02.
/*
03.
perintah koneksi ke db ditulis di sini
04.
*/
05.
06.
// membuat awal dan header tabel
07.
echo
"";
08.
echo
"
"
;
09.
10.
// nilai awal untuk nomor urut data
11.
$no
= 1;
12.
13.
// nilai awal jumlah total karyawan
14.
$totalKaryawan
= 0;
15.
16.
// nilai awal jumlah karyawan gol 1
17.
$totalGol1
= 0;
18.
19.
// nilai awal jumlah karyawan gol 2
20.
$totalGol2
= 0;
21.
22.
// nilai awal jumlah karyawan gol 3
23.
$totalGol3
= 0;
24.
25.
// membaca semua data bidang
26.
$query
=
"SELECT * FROM bidang"
;
27.
$hasil
= mysql_query(
$query
);
28.
while
(
$data
= mysql_fetch_array(
$hasil
))
29.
{
30.
// baca kode bidang
31.
$kodeBidang
=
$data
[
'kd_bidang'
];
32.
33.
// baca nama bidang
34.
$namaBidang
=
$data
[
'nama_bidang'
];
35.
36.
// cari jumlah karyawan untuk setiap kode bidang
37.
$query2
=
"SELECT count(*) as jum FROM karyawan WHERE kd_bidang = '$kodeBidang'"
;
38.
$hasil2
= mysql_query(
$query2
);
39.
$data2
= mysql_fetch_array(
$hasil2
);
40.
$jumlah
=
$data2
[
'jum'
];
41.
42.
// menjumlahkan setiap jumlah karyawan setiap bidang
43.
// untuk menghitung total seluruh karyawan
44.
$totalKaryawan
+=
$jumlah
;
45.
46.
// cari jumlah karyawan untuk setiap kode bidang bergolongan 1
47.
$query2
=
"SELECT count(*) as jum1 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 1"
;
48.
$hasil2
= mysql_query(
$query2
);
49.
$data2
= mysql_fetch_array(
$hasil2
);
50.
$jumGol1
=
$data2
[
'jum1'
];
51.
52.
// menjumlahkan setiap jumlah karyawan gol 1 di setiap bidang
53.
// untuk menghitung total seluruh karyawan bergolongan 1
54.
$totalGol1
+=
$jumGol1
;
55.
56.
// cari jumlah karyawan untuk setiap kode bidang bergolongan 2
57.
$query2
=
"SELECT count(*) as jum2 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 2"
;
58.
$hasil2
= mysql_query(
$query2
);
59.
$data2
= mysql_fetch_array(
$hasil2
);
60.
$jumGol2
=
$data2
[
'jum2'
];
61.
62.
// menjumlahkan setiap jumlah karyawan gol 2 di setiap bidang
63.
// untuk menghitung total seluruh karyawan bergolongan 2
64.
$totalGol2
+=
$jumGol2
;
65.
66.
// cari jumlah karyawan untuk setiap kode bidang bergolongan 3
67.
$query2
=
"SELECT count(*) as jum3 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 3"
;
68.
$hasil2
= mysql_query(
$query2
);
69.
$data2
= mysql_fetch_array(
$hasil2
);
70.
$jumGol3
=
$data2
[
'jum3'
];
71.
72.
// menjumlahkan setiap jumlah karyawan gol 3 di setiap bidang
73.
// untuk menghitung total seluruh karyawan bergolongan 3
74.
$totalGol3
+=
$jumGol3
;
75.
76.
// tampilkan baris datanya untuk setiap bidang
77.
echo
"
"
;
78.
79.
// increment untuk nomor urut data
80.
$no
++;
81.
}
82.
83.
// membuat baris untuk total data
84.
echo
"
"
;
85.
86.
// membuat akhir dari tabel
87.
echo
"
No Bidang Jum
Karyawan Gol. Satu Gol.
Dua Gol. Tiga
".
$no
.
"
".
$namaBidang
.
"
".
$jumlah
.
"
".
$jumGol1
.
"
".
$jumGol2
.
"
".
$jumGol3
.
"
Jumlah ".
$totalKaryawan
.
"
".
$totalGol1
.
"
".
$totalGol2
.
"
".
$totalGol3
.
"
"
;
88.
89.
?>
What do u think? ternyata tidak sulit bukan membuat report
atau rekap data dengan PHP. Selamat mencoba ya. Oya, script di atas,
belum saya coba jalankan sendiri di browser melainkan menulis kodenya
langsung di WordPress, so.. kalo ada error mohon maklum. Tolong koreksi
script di atas ya, siapa tahu ada error atau bug nya
EmoticonEmoticon