Membuat Pivot Tabel Dinamis Di MySQL dengan Stored Procedure

Artikel ini merupakan artikel lanjutan dari artikel tentang pivot tabel di mysql yang diaplikasikan pada CodeIgniter, untuk jelasnya baca artikel Membuat MySQL Pivot Table Di Codeigniter, jika diperhatikan pada artikel tersebut tersebut terdapat kekurangan dimana pada artikel tersebut jumlah kolom yang akan di transpose dari row ke column jumlahnya tetap.

Untuk kembali memahami tentang pivot tabel, kembali penulis gambarkan kembali skema pivot table seperti tampak pada gambar dibawah ini.

Pada kasus ini akan dibahas pivot tabel dinamis dimana kolom header akan berubah-ubah dengan mengambil kolom header terbanyak, sebagai langkah awal penulis akan menggambarkan kasus proses pembayaran keuangan sekolah dimana output laporan yang diharapkan adalah seperti berikut :

dinamic_pivot_tabel_1

Pertanyaannya bagaimana bentuk tabel-nya jika diinginkan sebuah laporan seperti diatas dengan satu perintah query ??? mari kita bahas langkah-demi langkah

  1. kita bahas dengan terlebih dahulu membuat database, misal database nya diberi nama keuangan
  2. Kemudian buatlah tabel dengan nama tbl_siswa, dengan struktur ceperti berikut :dinamic_pivot_tabel_2
  3. Kemudian buat tabel kedua yaitu tbl_tagihan, dengan struktur seperti berikut
    dinamic_pivot_tabel_3
  4. Selanjutnya buat tebel ketiga untuk menyimpan siswa yang melakukan pembayaran, beri nama tabel dengan nama tbl_pembayaran dengan struktur sebagai berikut :
    dinamic_pivot_tabel_4
  5. Masukan data dumy pada tbl_siswa tampak pada gambar dibawah ini
    data_tbl_siswa
  6. Masukan data dumy pada tbl_tagihan seperti tampak pada gambar berikut
    data_tbl_tagihan
  7. Kemudian masukan data dumy pembayaran yang dilakukan oleh tiap siswa pada tbl_pembayaran
    data_tbl_pembayaran
  8. Untuk menyingkat script sql di stored procedure yang akan dibuat terlebih dahulu kita buat dulu view seperti berikut (gunakan phpmyadmin atau mysql client tool  lainnya)
  9. Kemudian coba jalankan view yang telah dibuat, maka hasilnya akan tampak sebagai berikut :
    >v_data_pembayaran
  10. Berdasarkan view diatas maka kita akan membuat laporan yang dimaksud seperti diawal paragrap dengan cara membuat pivot tabel atau dengan kata lain akan men-transpose kolom menjadi baris (ingat konsep transpose matrix dalam matematika), untuk hal itu kita harus membuat stored procedurenya, dengan cara membuat scrpt stored procedure (gunakan menu SQL pada phpmyadmin untuk membuatnya).
  11. Bagaimana menjalankannya, pada mysql client tool misal di phpmyadmin menu SQL ketik perintah CALL nama_procedure() … perhatikan gambar dibawah !
    runing-sp_rekap_bayaran
  12. Perhatikan pada hasil akhir diatas, dapat dilihat bahwa siswa yang belum bayar akan diisi denan null dan yang sudah bayar akan diisi dengan nomonal pembayaran pada kolom pemabayaran yang dimaksud, banyaknya kolom pembayaran akan ditentukan berdasarkan jenis pembiayaan yang telah dibayar oleh siswa yang paling rajin dalam hal membayar, sebagai simulasi silahkan tambah data pembayaran pada kolom tbl_pembayaran, kemudian jalankan kembali stored procedure nya.
  13. Pengembangan selanjutnya bagaimana penerapan di bahasa pemrogramannya ?? untuk hal ini akan dibahas bagaimana menerapkan stored procedure yang telah dibuat di PHP menggunakan CodeIgniter dan Native PHP
  14. Selamat Mencoba !

Post a Comment

Previous Post Next Post