Home > PHP > Membuat Script PHP Untuk Report atau Rekap Data

Membuat Script PHP Untuk Report atau Rekap Data

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
Script Rekap Data PHP

Tabel: Golongan
Script Report Data PHP

Tabel: Karyawan
Script Rekap Data PHP

Yang jadi permasalahan adalah, bagaimana cara kita membuat script PHP untuk menghasilkan output seperti di bawah ini?

Script Rekap Data PHP

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:

<?php
/* 
perintah koneksi ke db ditulis di sini
*/
 
// membuat awal dan header tabel
echo "<table>";
echo "<tr><th>No</th><th>Bidang</th><th>Jum Karyawan</th><th>Gol. Satu</th><th>Gol. Dua</th><th>Gol. Tiga</th></tr>";   
 
// nilai awal untuk nomor urut data
$no = 1;
 
// nilai awal jumlah total karyawan
$totalKaryawan = 0;
 
// nilai awal jumlah karyawan gol 1
$totalGol1 = 0;
 
// nilai awal jumlah karyawan gol 2
$totalGol2 = 0;
 
// nilai awal jumlah karyawan gol 3
$totalGol3 = 0;
 
// membaca semua data bidang
$query = "SELECT * FROM bidang";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
  // baca kode bidang
  $kodeBidang = $data['kd_bidang'];
 
  // baca nama bidang
  $namaBidang = $data['nama_bidang'];
 
  // cari jumlah karyawan untuk setiap kode bidang
  $query2 = "SELECT count(*) as jum FROM karyawan WHERE kd_bidang = '$kodeBidang'";
  $hasil2 = mysql_query($query2);
  $data2 = mysql_fetch_array($hasil2);
  $jumlah = $data2['jum'];
 
  // menjumlahkan setiap jumlah karyawan setiap bidang
  // untuk menghitung total seluruh karyawan
  $totalKaryawan += $jumlah;
 
  // cari jumlah karyawan untuk setiap kode bidang bergolongan 1
  $query2 = "SELECT count(*) as jum1 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 1";
  $hasil2 = mysql_query($query2);
  $data2 = mysql_fetch_array($hasil2);
  $jumGol1 = $data2['jum1'];
 
  // menjumlahkan setiap jumlah karyawan gol 1 di setiap bidang
  // untuk menghitung total seluruh karyawan bergolongan 1
  $totalGol1 += $jumGol1;
 
  // cari jumlah karyawan untuk setiap kode bidang bergolongan 2
  $query2 = "SELECT count(*) as jum2 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 2";
  $hasil2 = mysql_query($query2);
  $data2 = mysql_fetch_array($hasil2);
  $jumGol2 = $data2['jum2'];
 
  // menjumlahkan setiap jumlah karyawan gol 2 di setiap bidang
  // untuk menghitung total seluruh karyawan bergolongan 2
  $totalGol2 += $jumGol2;
 
  // cari jumlah karyawan untuk setiap kode bidang bergolongan 3
  $query2 = "SELECT count(*) as jum3 FROM karyawan WHERE kd_bidang = '$kodeBidang' AND kd_gol = 3";
  $hasil2 = mysql_query($query2);
  $data2 = mysql_fetch_array($hasil2);
  $jumGol3 = $data2['jum3'];
 
  // menjumlahkan setiap jumlah karyawan gol 3 di setiap bidang
  // untuk menghitung total seluruh karyawan bergolongan 3
  $totalGol3 += $jumGol3;
 
  // tampilkan baris datanya untuk setiap bidang
  echo "<tr><td>".$no."</td><td>".$namaBidang."</td><td>".$jumlah."</td><td>".$jumGol1."</td><td>".$jumGol2."</td><td>".$jumGol3."</td></tr>";
 
  // increment untuk nomor urut data
  $no++;
}
 
// membuat baris untuk total data
echo "<tr><td colspan='2'>Jumlah</td><td>".$totalKaryawan."</td><td>".$totalGol1."</td><td>".$totalGol2."</td><td>".$totalGol3."</td></tr>";
 
// membuat akhir dari tabel
echo "</table>";
 
?>

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 :-)

source : blog.rosihanari.net

Categories: PHP
  1. enos
    February 1, 2011 at 10:12 pm

    mas boleh gak sy dibuatkan contoh sederhana tentang cara membuat stok barang ?? bagaimana bentuk databasenya dan phpnya ??

    • February 2, 2011 at 9:02 pm

      @enos : sesuaikan saja dengan database punya anda, sintax php tinggal ubah di bagian database saja

  2. kurniyawan
    April 20, 2011 at 6:47 pm

    mas seumpama kalao mw cari rekap banyaknya data di satu tabel gmn yah??misal saya punya tabel sekolahan terus saya mau buat rekap banyaknya sekolahan yang ada di tabel sekolah tersebut gmn??tolong pencerahannya.

    • April 21, 2011 at 12:29 pm

      @kurniyawan : Coba anda perhatikan pada baris berikut…Mungkin ini yg anda maksud
      // membuat baris untuk total data
      echo “
      Jumlah “.$totalKaryawan.” “.$totalGol1

  3. alex
    April 27, 2011 at 9:32 am

    Salam kenal sebelumny, terimakasih banyak untuk artikelny sangat bermanfaat.
    Saya da problem untuk mengolah report Stok akhir per toko, bs tlong master2 bantu saya, berikut listny:

    Menu Report, terdiri dari: tgl.awal s/d tgl.akhir , lokasi berupa selected, lalu SUBMIT.nanti akan tampil spt :
    No.Artikel, Qty jual, Hpp, Sales, NetSales, Qty Akhir, sama nti da grandtotal disetiap akhir laporan.

    saya minta tlong scriptny php dan mysql.

    sebelumnya saya ucapkan bnyak terima kasih.

  4. rama
    July 9, 2011 at 7:59 pm

    mas gimana ya cara buat report perperiode (perhari, perminggu & perbulan)?

  5. myrna
    July 14, 2011 at 3:37 pm

    mas klo mau di export ke excel dari tabel hasil seperti gambar di atas. bagaimana yah?

  6. fitri
    July 25, 2011 at 6:27 pm

    ass.. mas..
    infonya sangat membantu..
    sudah saya coba dan hasil nya berhasil.
    tapi mas kalo hitung total biaya, seperti menghitung harga total bgaimana ya mas??
    sudah saya coba tapi hasil nya tidak keluar..
    terimakasih sebelumnya

  7. myrna
    November 7, 2011 at 2:24 pm

    iya bisa mas pake phpmyadmin. tetapi saya menggunakan sql server mas. apakah bs membantu agar hasil output di tabel dapat di export ke excel.

  8. aagant201083
    March 25, 2012 at 1:31 pm

    cari script laporan perperiode gmn?

  9. alie
    July 20, 2012 at 9:45 am

    Mas gmna caranya klo kita mau menampilkan report dibeda bulan:
    Misal:
    1. Satu karyawan dengan nik ‘0001’ input transaksi dengan memilih kode nilai ’01’ dengan idkriteria =’xxx’ pada bulan juni.
    2. Klo karyawan sudah memilih 3 kali dengan kode nilai dan idkriterianya(kriteria) yg sama mendapatkan point=1 meskipun bulannya beda..
    3. Sebenernya sudah berhasil, tp yg jd kendala bgini klo dibulan ‘06’ karyawan baru memilih kode nilai 2 kali dan dibulan ‘07’ 1 kali harusnya dpt point kn??tp ga muncul pointnya pd bulan ‘07’, yang bisa muncul cuma niknya sama,kode nilai dan idkriterianya sama hanya pd bulannya ja yang sama.

    minta bantuannya ya??terima kasih

    • August 1, 2012 at 1:49 pm

      @fitri : prinsipnya sama saja dengan mencari Total Jumlah karyawan

      @myrna: maaf, saya belum begitu familiar dengan sql server, saya biasa menggunakan phpmyadmin

      @aagant2010: script laporan perperiode gmn maksudnya???

      @alie : memilih 3 kali dengan kode nilai dan idkriterianya(kriteria) yg sama mendapatkan point=1 –> dengan memasukkan kondisi di SQL nya tanpa harus mengikut sertakan bulan(waktu)…. pada point 3, anda bilang sudah berhasil, coba di share script SQL nya, mungkin saya bisa lebih paham untuk mencari kesalahannya..

  10. April 10, 2013 at 11:20 am

    Hi would you mind letting me know which hosting company you’re using? I’ve loaded your blog in 3 different web browsers and I
    must say this blog loads a lot quicker then most. Can you recommend a good internet hosting
    provider at a reasonable price? Thanks a lot,
    I appreciate it!

    • April 10, 2013 at 6:18 pm

      thank’s for coming. this blog is same as wordpress hosting

  11. June 6, 2013 at 11:44 am

    mas ..mau nanya..

    cara membuat rekap penjualan berdasarka kode barang gimana ya…terimakasih..

  12. June 6, 2013 at 7:40 pm

    mas…saya mau nanya…

    kalau membuat rekap penjualan barang gimanaya…terimakasih

  13. June 1, 2014 at 11:28 pm

    kalau dibuat pdf gmn mas?

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: