Cara Membuat Laporan PDF Plus Filter Tanggal dengan PHP dan MySQL

img-responsif
Pada saat membuat sebuah laporan, sering kali kita diharuskan untuk memfilter data yang akan di tampilkan pada laporan tersebut. Sebagai contoh pada data transaksi penjualanan, biasanya kita akan diminta untuk membuat laporan per hari, per bulan dan per tahun. Itulah kenapa kita memerlukan fitur untuk memfilter data-data transaksi tadi agar bisa di tampilkan per hari / per bulan / per tahun sesuai dengan kebutuhan si pengguna.
Dalam tutorial / catatan ini kita akan bahas cara membuat laporan pdf dengan ditambah filter data Per Hari, Per Bulan dan Per tahun. Mari simak langkah-langkah dan penjelasannya berikut ini.

DEMOSebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.

STEP 1 – PERSIAPAN
Kita akan mempersiapkan terlebih dahulu hal-hal yang diperlukan.
  1. Download Plugin HTML2PDF nya, klik link berikut ini : Download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  2. Download plugin jQuery, klik link berikut : Download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  3. Download plugin jQuery-ui, klik link berikut : Download. jQuery-ui ini nantinya kita perlukan untuk datepicker.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  4. Buat sebuah folder baru dengan nama latihan_pdf, lalu simpan di xampp/htdocs/
  5. Buat sebuah folder dengan nama plugin, lalu simpan di xampp/htdocs/latihan_pdf.
  6. Buat sebuah folder dengan nama js, lalu simpan di xampp/htdocs/latihan_pdf.
  7. Ekstrak dan Copy plugin HTML2PDF yang sudah didownload ke dalam folder xampp/htdocs/latihan_pdf/plugin/.
  8. Copy and paste file jquery.min.js yang telah di download tadi ke dalam folder xampp/htdocs/latihan_pdf/js/.
  9. Ekstrak dan Copy plugin jQuery-ui yang sudah didownload ke dalam folder xampp/htdocs/latihan_pdf/plugin/.

LANGKAH 2 - DATABASE
Buat sebuah database dengan nama mynotescode, lalu buat tabel transaksi dengan struktur tabel seperti gambar berikut ini :
Struktur Tabel - Cara Membuat Laporan PDF plus Filter Tanggal dengan PHP dan MySQL
  1. CREATE TABLE `transaksi` (
  2. `id` int ( 11 ) BUKAN NULL ,
  3. `kode` varchar(10) NOT NULL,
  4. `barang` varchar(100) NOT NULL,
  5. `jumlah` int(11) NOT NULL,
  6. `total_harga` double NOT NULL,
  7. `tgl` datetime NOT NULL,
  8. PRIMARY KEY ( `id` )
  9. ) ENGINE = InnoDB DEFAULT CHARSET = latin1;

LANGKAH 3 - KONDISI DATABASE
Pada tahap ini, kita akan membuat sebuah file php yang berfungsi untuk koneksi ke database MySQL. Buat sebuah file dengan nama koneksi.php lalu simpan di folder xampp/htdocs/latihan_pdf/. Berikut ini isi dari file tersebut :
  1. <? php
  2. $host = "localhost"; // Nama hostnya
  3. $ user = "root" ; // Nama pengguna
  4. $pass = ""; // Password (Isi jika menggunakan password)
  5. $ connect = mysqli_connect ( $ host , $ user , $ pass , "mynotescode" ) ; // Koneksi ke MySQL
  6. ?>

STEP 4 – TAMPILAN AWALSelanjutnya kita akan membuat halaman / tampilan awal website kita. Buat sebuah file php dengan nama index.php dan simpan di folder xampp/htdocs/latihan_pdf. Berikut ini kodenya :
View - Cara Membuat Laporan PDF plus Filter Tanggal dengan PHP dan MySQL
  1. <? php
  2. // Load file koneksi.php
  3. include "koneksi.php";
  4. ?>
  5. < html >
  6. < head >
  7. <title>Data Transaksi</title>
  8. < link rel = "stylesheet" href = "plugin / jquery-ui / jquery-ui.min.css" / > < ! - - Muat file css jquery - ui - - >
  9. < script src = "js / jquery.min.js" > < / script > < ! - - Muat file jquery - - >
  10. < / head >
  11. < tubuh >
  12. < h2 > Transaksi Data < / h2 > < jam >
  13. < for m method = "get" action = "" >
  14. <label>Filter Berdasarkan</label><br>
  15. <select name="filter" id="filter">
  16. <option value="">Pilih</option>
  17. <option value="1">Per Tanggal</option>
  18. <option value="2">Per Bulan</option>
  19. <option value="3">Per Tahun</option>
  20. </select>
  21. <br /><br />
  22. <div id="form-tanggal">
  23. <label>Tanggal</label><br>
  24. <input type="text" name="tanggal" class="input-tanggal" />
  25. <br /><br />
  26. </div>
  27. <div id="form-bulan">
  28. <label>Bulan</label><br>
  29. <select name="bulan">
  30. <option value="">Pilih</option>
  31. <option value="1">Januari</option>
  32. <option value="2">Februari</option>
  33. <option value="3">Maret</option>
  34. <option value="4">April</option>
  35. <option value="5">Mei</option>
  36. <option value="6">Juni</option>
  37. <option value="7">Juli</option>
  38. <option value="8">Agustus</option>
  39. <option value="9">September</option>
  40. <option value="10">Oktober</option>
  41. <option value="11">November</option>
  42. <option value="12">Desember</option>
  43. </select>
  44. <br /><br />
  45. </div>
  46. <div id="form-tahun">
  47. <label>Tahun</label><br>
  48. <select name="tahun">
  49. <option value="">Pilih</option>
  50. <?php
  51. $query = "SELECT YEAR(tgl) AS tahun FROM transaksi GROUP BY YEAR(tgl)"; // Tampilkan tahun sesuai di tabel transaksi
  52. $sql = mysqli_query($connect, $query); // Eksekusi/Jalankan query dari variabel $query
  53. while($data = mysqli_fetch_array($sql)){ // Ambil semua data dari hasil eksekusi $sql
  54. echo '<option value="'.$data['tahun'].'">'.$data['tahun'].'</option>';
  55. }
  56. ?>
  57. </select>
  58. < Br / > < br / >
  59. < / div >
  60. < tombol ketik = "kirim" > Tampilkan < / tombol >
  61. < A href = "index.php" > Atur Filter < / a >
  62. < / untuk m >
  63. < jam / >
  64. <? php
  65. if(isset($_GET['filter']) && ! empty($_GET['filter'])){ // Cek apakah user telah memilih filter dan klik tombol tampilkan
  66. $filter = $_GET['filter']; // Ambil data filder yang dipilih user
  67. if($filter == '1'){ // Jika filter nya 1 (per tanggal)
  68. $tgl = date('d-m-y', strtotime($_GET['tanggal']));
  69. echo '<b>Data Transaksi Tanggal '.$tgl.'</b><br /><br />';
  70. gema '<a href="print.php?filter=1&tanggal=' $_GET ['tanggal']'">.. Cetak PDF </a> <br /> <br />' ;
  71. $query = "SELECT * FROM transaksi WHERE DATE(tgl)='".$_GET['tanggal']."'"; // Tampilkan data transaksi sesuai tanggal yang diinput oleh user pada filter
  72. }else if($filter == '2'){ // Jika filter nya 2 (per bulan)
  73. $nama_bulan = array('', 'Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember');
  74. echo '<b>Data Transaksi Bulan '.$nama_bulan[$_GET['bulan']].' '.$_GET['tahun'].'</b><br /><br />';
  75. gema '<a href="print.php?filter=2&bulan='. $_GET ['bulan'].'&tahun='. $_GET ['tahun'].'"> Cetak PDF </a> <br / > <br /> ' ;
  76. $query = "SELECT * FROM transaksi WHERE MONTH(tgl)='".$_GET['bulan']."' AND YEAR(tgl)='".$_GET['tahun']."'"; // Tampilkan data transaksi sesuai bulan dan tahun yang diinput oleh user pada filter
  77. }else{ // Jika filter nya 3 (per tahun)
  78. echo '<b>Data Transaksi Tahun '.$_GET['tahun'].'</b><br /><br />';
  79. gema '<a href="print.php?filter=3&tahun=' $_GET ['tahun']'">.. Cetak PDF </a> <br /> <br />' ;
  80. $query = "SELECT * FROM transaksi WHERE YEAR(tgl)='".$_GET['tahun']."'"; // Tampilkan data transaksi sesuai tahun yang diinput oleh user pada filter
  81. }
  82. }else{ // Jika user tidak mengklik tombol tampilkan
  83. echo '<b>Semua Data Transaksi</b><br /><br />';
  84. echo '<a href="print.php"> Cetak PDF </a> <br /> <br />' ;
  85. $query = "SELECT * FROM transaksi ORDER BY tgl"; // Tampilkan semua data transaksi diurutkan berdasarkan tanggal
  86. }
  87. ?>
  88. < table border = "1" cellpadding = "8" >
  89. < tr >
  90. < th > Tanggal < / th >
  91. <th>Kode Transaksi</th>
  92. < th > Barang < / th >
  93. < th > Jumlah < / th >
  94. < th > Total Harga < / th >
  95. < / tr >
  96. <? php
  97. $sql = mysqli_query($connect, $query); // Eksekusi/Jalankan query dari variabel $query
  98. $row = mysqli_num_rows($sql); // Ambil jumlah data dari hasil eksekusi $sql
  99. if($row > 0){ // Jika jumlah data lebih dari 0 (Berarti jika data ada)
  100. while($data = mysqli_fetch_array($sql)){ // Ambil semua data dari hasil eksekusi $sql
  101. $tgl = date('d-m-Y', strtotime($data['tgl'])); // Ubah format tanggal jadi dd-mm-yyyy
  102. gema "<tr>" ;
  103. gema "<td>" . $ tgl . "</td>" ;
  104. gema "<td>" . $ data [ 'kode' ] . "</td>" ;
  105. gema "<td>" . $ data [ 'barang' ] . "</td>" ;
  106. gema "<td>" . $ data [ 'jumlah' ] . "</td>" ;
  107. gema "<td>" . $ data [ 'total_harga' ] . "</td>" ;
  108. gema "</tr>" ;
  109. }
  110. }else{ // Jika data tidak ada
  111. echo "<tr> <td colspan = '5'> Data tidak ada </td> </tr>" ;
  112. }
  113. ?>
  114. < / table >
  115. < script >
  116. $(document).ready(function(){ // Ketika halaman selesai di load
  117. $('.input-tanggal').datepicker({
  118. dateFormat: 'yy-mm-dd' // Set format tanggalnya jadi yyyy-mm-dd
  119. });
  120. $('#form-tanggal, #form-bulan, #form-tahun').hide(); // Sebagai default kita sembunyikan form filter tanggal, bulan & tahunnya
  121. $('#filter').change(function(){ // Ketika user memilih filter
  122. if($(this).val() == '1'){ // Jika filter nya 1 (per tanggal)
  123. $('#form-bulan, #form-tahun').hide(); // Sembunyikan form bulan dan tahun
  124. $('#form-tanggal').show(); // Tampilkan form tanggal
  125. }else if($(this).val() == '2'){ // Jika filter nya 2 (per bulan)
  126. $('#form-tanggal').hide(); // Sembunyikan form tanggal
  127. $('#form-bulan, #form-tahun').show(); // Tampilkan form bulan dan tahun
  128. }else{ // Jika filternya 3 (per tahun)
  129. $('#form-tanggal, #form-bulan').hide(); // Sembunyikan form tanggal dan bulan
  130. $('#form-tahun').show(); // Tampilkan form tahun
  131. }
  132. $('#form-tanggal input, #form-bulan select, #form-tahun select').val(''); // Clear data pada textbox tanggal, combobox bulan & tahun
  133. })
  134. })
  135. < / skrip >
  136. < script src = "plugin / jquery-ui / jquery-ui.min.js" > < / script > < ! - - Muat plugin file js jquery - ui - - >
  137. < / body >
  138. < / html >

Pada halaman ini, kita membuat sebuah form untuk filter data transaksinya. Dimana isi dari combo box filter adalah Per Tanggal, Per Bulan dan Per Tahun. Khusus untuk combo box Tahun, kita isi sesuai dengan data transaksi yang ada didatbase. Jadi nanti pilihan tahunnya menyesuaikan dengan data transaksi di database ada pada tahun berapa saja.
$tgl = date(‘d-m-y‘, strtotime($_GET[‘tanggal’]));
Kode ini untuk mengubah format tanggal menjadi dd-mm-yyyy. Disini terdapat 2 fungsi yakni date() dan strtotime(). Fungsi date berfungsi untuk menentukan format waktu yang kita ingin kan, isi dari parameter 1 adalah format yang kita inginkan, disini kita isi dengan d-m-y. Lebih lengkapnya soal isi dari parameter 1 di fungsi date() bisa anda lihat disini : Dokumentasi Fungsi Date(). Untuk strtotime() adalah sebuah kode yang berguna untuk mengubah string menjadi time. Karna paramater 2 dari fungsi date() adalah waktu yang akan diubah formatnya (dalam bentuk time). Sehingga disini kita akan mengubah data tanggal dari form filter yang formatnya yyyy-mm-dd dan tipenya string menjadi tipe time agar bisa di ubah formatnya dengan fungsi date().
$nama_bulan = array(”, ‘Januari’,’Februari’,…..
Kode ini akan kita gunakan untuk mengubah data bulan dari form filter manjadi nama bulan itu sendiri dalam bahasa indonesia. Bisa di lihat pada form filter untuk combo box bulan, disitu ada tag option dimana isinya adalah angka dimulai dari 1 untuk januari, 2 untuk februari, dan seterusnya. Nah angka dari value tadi akan kita ubah menjadi nama bulan sesuai dengan value nya dan kita panggil pada variabel $nama_bulan[value_bulannya]. Untuk informasi, index array dimulai dari 0, sehingga bisa kita lihat pada variabel $nama_bulan isi array pertama sengaja saya kosongkan karna index 0 tidak kita pakai soalnya bulan januari dimulai dari 1.
$sql = mysqli_query($connect, $query);
Untuk mengeksekusi / menjalankan query sql. struktur dasar penulisannya adalah sebagai berikut :
  1. mysqli_query ( $ connect , $ query ) ;
  2. /*
  3. Keterangan :
  4. - $connect : diisi dengan koneksi ke mysql. hasil dari mysqli_connect
  5. - $query : diisi dengan Query SQL yang diinginkan
  6. */
mysqli_num_rows($sql);
Untuk mengambil jumlah data dari hasil eksekusi suatu query sql. Struktur dasar penulisannya adalah sebagai berikut :
  1. mysqli_num_rows ( $ sql ) ;
  2. /*
  3. Keterangan :
  4. - $sql : diisi dengan hasil eksekusi query sql(mysql_query())
  5. */
mysqli_fetch_array($sql);
Untuk mengambil data dari hasil eksekusi suatu query sql. Struktur dasar penulisannya adalah sebagai berikut :
  1. mysqli_fetch_array ( $ sql ) ;
  2. /*
  3. Keterangan :
  4. - $sql : diisi dengan hasil eksekusi query sql(mysql_query())
  5. */
Kode diatas saya simpan didalam looping while berfungsi untuk melakukan proses perulangan sampai data terkahir dengan tujuan agar kita bisa menampilkan datanya satu per satu.
  1. gema "<td>" . $ data [ 'kode' ] . "</td>" ;
  2. gema "<td>" . $ data [ 'barang' ] . "</td>" ;
  3. gema "<td>" . $ data [ 'jumlah' ] . "</td>" ;
  4. gema "<td>" . $ data [ 'total_harga' ] . "</td>" ;
Pada kode diatas terdapat variabel $data digunakan untuk mengambil isi dari field-field yang ada pada tabel transaksi di database latihan. Pada kode diatas juga ada kode yang berada di dalam tanda [‘…..’], kode tersebut harus sama dengan nama field yang ada pada tabel transaksi.

STEP 5 – PROSES CETAK (PRINT)Sesuai judul dari step 5 ini, kita akan masuk ke inti dari catatan ini yakni membuat proses cetak ke file pdf. Pertama-tama buat dulu sebuah file baru dan beri nama print.php, lalu simpan file tersebut di folder xampp/htdocs/latihan_pdf/. Berikut ini isi / skrip dari file tersebut :
  1. <? php ob_start ( ) ; ?>
  2. < html >
  3. < head >
  4. < title > Cetak PDF < / title >
  5. < style >
  6. meja {
  7. border - collapse: collapse;
  8. table - layout: fixed; width: 630px;
  9. }
  10. table td {
  11. kata - bungkus: istirahat - kata;
  12. lebar: 20 %;
  13. }
  14. < / style >
  15. < / head >
  16. < tubuh >
  17. <? php
  18. // Load file koneksi.php
  19. include "koneksi.php";
  20. if(isset($_GET['filter']) && ! empty($_GET['filter'])){ // Cek apakah user telah memilih filter
  21. $filter = $_GET['filter']; // Ambil data filder yang dipilih user
  22. if($filter == '1'){ // Jika filter nya 1 (per tanggal)
  23. $tgl = date('d-m-y', strtotime($_GET['tanggal']));
  24. echo '<b>Data Transaksi Tanggal '.$tgl.'</b><br /><br />';
  25. $query = "SELECT * FROM transaksi WHERE DATE(tgl)='".$_GET['tanggal']."'"; // Tampilkan data transaksi sesuai tanggal yang diinput oleh user pada filter
  26. }else if($filter == '2'){ // Jika filter nya 2 (per bulan)
  27. $nama_bulan = array('', 'Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember');
  28. echo '<b>Data Transaksi Bulan '.$nama_bulan[$_GET['bulan']].' '.$_GET['tahun'].'</b><br /><br />';
  29. $query = "SELECT * FROM transaksi WHERE MONTH(tgl)='".$_GET['bulan']."' AND YEAR(tgl)='".$_GET['tahun']."'"; // Tampilkan data transaksi sesuai bulan dan tahun yang diinput oleh user pada filter
  30. }else{ // Jika filter nya 3 (per tahun)
  31. echo '<b>Data Transaksi Tahun '.$_GET['tahun'].'</b><br /><br />';
  32. $query = "SELECT * FROM transaksi WHERE YEAR(tgl)='".$_GET['tahun']."'"; // Tampilkan data transaksi sesuai tahun yang diinput oleh user pada filter
  33. }
  34. }else{ // Jika user tidak memilih filter
  35. echo '<b>Semua Data Transaksi</b><br /><br />';
  36. $query = "SELECT * FROM transaksi ORDER BY tgl"; // Tampilkan semua data transaksi diurutkan berdasarkan tanggal
  37. }
  38. ?>
  39. < table border = "1" cellpadding = "8" >
  40. < tr >
  41. < th > Tanggal < / th >
  42. <th>Kode Transaksi</th>
  43. < th > Barang < / th >
  44. < th > Jumlah < / th >
  45. < th > Total Harga < / th >
  46. < / tr >
  47. <? php
  48. $sql = mysqli_query($connect, $query); // Eksekusi/Jalankan query dari variabel $query
  49. $row = mysqli_num_rows($sql); // Ambil jumlah data dari hasil eksekusi $sql
  50. if($row > 0){ // Jika jumlah data lebih dari 0 (Berarti jika data ada)
  51. while($data = mysqli_fetch_array($sql)){ // Ambil semua data dari hasil eksekusi $sql
  52. $tgl = date('d-m-Y', strtotime($data['tgl'])); // Ubah format tanggal jadi dd-mm-yyyy
  53. gema "<tr>" ;
  54. gema "<td>" . $ tgl . "</td>" ;
  55. gema "<td>" . $ data [ 'kode' ] . "</td>" ;
  56. gema "<td>" . $ data [ 'barang' ] . "</td>" ;
  57. gema "<td>" . $ data [ 'jumlah' ] . "</td>" ;
  58. gema "<td>" . $ data [ 'total_harga' ] . "</td>" ;
  59. gema "</tr>" ;
  60. }
  61. }else{ // Jika data tidak ada
  62. echo "<tr> <td colspan = '5'> Data tidak ada </td> </tr>" ;
  63. }
  64. ?>
  65. < / table >
  66. < / body >
  67. < / html >
  68. <? php
  69. $ html = ob_get_contents ( ) ;
  70. ob_end_clean ( ) ;
  71. require_once ( 'plugin / html2pdf / html2pdf.class.php' ) ;
  72. $ pdf = HTML2PDF baru ( 'P' , 'A4' , 'and' ) ;
  73. $ pdf - > WriteHTML ( $ html ) ;
  74. $pdf->Output('Data Transaksi.pdf', 'D');
  75. ?>

Sebenarnya skrip diatas hampir sama dengan isi dari file index.php. Hanya saja pada print.php tidak ada link cetak pdf nya dan juga pada skrip diatas terdapat skrip berikut ini :
<? php  ob_start ();  ?>
//… ..
// skrip html
//… ..
<? Php
$ html = ob_get_contents ();
ob_end_clean ();
Pada skrip print.php, Skrip yang berfungsi untuk menampilkan data transaksi pada tabel diapit oleh skrip yang saya beri tanda merah. Skrip tersebut berfungsi untuk mengambil tampilan tabel data transaksi dan memasukkannya ke dalam variabel $html. Variabel $html ini akan digunakan sebagai output yang kita inginkan pada file pdfnya. Lihat skrip berikut ini :
require_once ('plugin / html2pdf / html2pdf.class.php');
$ pdf = HTML2PDF baru ('P', 'A4 ′,' en ');
$ pdf-> WriteHTML ( $ html );
$ pdf-> Output ('Data Transaksi.pdf', 'D');
Skrip diatas digunakan untuk mengkonversi skrip html menjadi pdf. Dimulai dari skrip require_once(‘./assets/html2pdf/html2pdf.class.php’);, skrip ini berfungsi untuk memuat (meload) plugin html2pdfnya. Lalu skrip $pdf = new HTML2PDF(‘P’,’A4′,’en’);, skrip ini berfungsi memanggil fungsi __construct pada plugin html2pdf. Berikut ini adalah fungsi __construct yang kita panggil pada plugin html2pdfnya :
  1. /**
  2. * Pembangun
  3. *
  4. * @param string $sens - orientasinya : landscape atau portrait
  5. * @param string $format - format kertasnya : A4, A5, dan lain-lain
  6. * @param string $langue - Bahasanya : en, fr, dan lain-lain
  7. * @param boolean $ unicode - TRUE berarti mengelompokkan teks input IS unicode (default = true)
  8. * @param String $ encoding - pengkodean charset; Standarnya adalah UTF-8
  9. * @param array $ marges - margin secara default, secara berurutan (kiri, atas, kanan, bawah)
  10. * @ mengembalikan null
  11. */
  12. fungsi publik __construct ( $ meaning = 'P' , $ format = 'A4' , $ language = 'en' , $ unicode = true , $ encoding = 'UTF-8' , $ margin = array ( 5 , 5 , 5 , 8 ) )
Lalu skrip $pdf->WriteHTML($html);, skrip ini berfungsi untuk menentukan apa yang ingin ditampilkan pada pdfnya. Struktur dasar penulisannya yaitu $pdf->WriteHTML(‘kode_htmlnya’);. Pada kasus ini, kita memasukan kode htmlnya kedalam variabel $html. Yang terakhir skrip $pdf->Output(‘Data Transaksi.pdf’, ‘D’);, kode tersebut berfungsi untuk menentukan nama file pdf yang kita buat. dan juga untuk menentukan mode apa yang ingin dilakukan ketika skrip tersebut dipanggil. Contohnya disitu ada skrip …,’D’);, Huruf D disitu berarti ketika skrip dipanggil, maka lakukan proses download pada file pdfnya. sebenarnya ada banyak mode yang bisa kita lakukan, seperti tampilkan pdfnya dibrowser ketika skrip itu dipanggil dan lain-lain (untuk lebih detailnya, klik disini).

Mungkin sekian untuk catatan kali ini. Semoga bisa bermanfaat. Jika ada yang kurang dipahami, langsung tanyakan pada form komentar dibawah ini. Jangan lupa LIKE dan SHARE nya, Terimakasih banyak.
Selamat Pengodean ^ _ ^

SOURCE CODEUntuk mengunduh source code nya, klik salah satu link dibawah ini
– Download versi MySQLi : Link download yang sesuai tutorial ini yakni menggunakan fungsi MySQLi untuk query ke databasenya


Komentar

Postingan populer dari blog ini

Login, Session, dan Logout

Cara Membuat File Setup / Installer Aplikasi Sendiri dengan Inno Setup Compiler