Pemrograman PHP

Cara Membuat Laporan Sederhana PDF dengan PHP dan MySQL

cara membuat laporan pdf dengan php dan mysql

Sebawa.com – Di postingan pertama saya akan membahas mengenai cara membuat laporan PDF dengan PHP dan MySQL. Kamu bisa mengikuti langkah-langkah dibawah ini :

cara membuat laporan pdf dengan php dan mysql

LANGKAH 1 – PERSIAPAN

Sebelum ngoding dibagian intinya, terlebih dahulu kita persiapkan hal-hal yang diperlukan dalam membuat laporan PDF ini.

  1. Download Plugin HTML2PDF nya terlebih dahulu, kamu bisa klik berikut ini : Download.
  2. Selanjutnya kamu membuat sebuah folder baru dengan nama latihan1_pdf atau terserah kamu mau memberikan nama apapun, dan simpan di xampp/htdocs.
  3. Diawal tadi kamu sudah mendownload plugin HTML2PDF sekarang tinggal ekstrak dan copy kedalam folder xampp/htdocs/latihan1_pdf/



LANGKAH 2 – MEMBUAT DATABASE

Buat sebuah database dengan nama terserah anda(disini saya memberikan nama : latihan1), lalu buat tabel siswa dengan struktur tabel seperti gambar berikut ini :


CREATE TABLE IF NOT EXISTS `siswa` (
`nis` varchar(11) NOT NULL,
`nama` varchar(50) NOT NULL,
`jenis_kelamin` varchar(10) NOT NULL,
`telp` varchar(15) NOT NULL,
`alamat` text NOT NULL,
PRIMARY KEY (`nis`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

LANGKAH 3 – KONEKSI DATABASE

Di langkah ketiga ini, kita akan membuat sebuah file php yang memiliki fungsi untuk menghubungkan ke database MySQL. Kamu bisa membuat file dengan nama koneksi.php lalu simpan di folder xampp/htdocs/latihan1_pdf/. berikut source code dari file koneksi.php tersebut :


<?php
$host = "localhost"; // Nama hostnya
$user = "root"; // Username
$pass = ""; // Password (Isi jika menggunakan password)
$connect = mysqli_connect($host, $user, $pass, "mynotescode"); // Koneksi ke MySQL
?>

LANGKAH 4 – TAMPILAN AWAL WEBSITE

Langkah ke empat ini kita akan membuat sebuah halaman awal dari website sederhana kita ini. Buat sebuah file php lagi dengan nama index.php dan simpan di folder xampp/htdocs/latihan1_pdf. detail kodenya sebagai berikut :


<html>
<head>
<title>Data Siswa</title>
</head>
<body>
<h1>Data Siswa</h1><hr>

<a href="print.php">Cetak Data</a><br><br>

<table border="1" cellpadding="8">
<tr>
<th>NIS</th>
<th>Nama</th>
<th>Jenis Kelamin</th>
<th>Telepon</th>
<th>Alamat</th>
</tr>

<?php
// Load file koneksi.php
include "koneksi.php";

$query = "SELECT * FROM siswa"; // Tampilkan semua data gambar
$sql = mysqli_query($connect, $query); // Eksekusi/Jalankan query dari variabel $query
$row = mysqli_num_rows($sql); // Ambil jumlah data dari hasil eksekusi $sql

if($row > 0){ // Jika jumlah data lebih dari 0 (Berarti jika data ada)
while($data = mysqli_fetch_array($sql)){ // Ambil semua data dari hasil eksekusi $sql
echo "<tr>";
echo "<td>".$data['nis']."</td>";
echo "<td>".$data['nama']."</td>";
echo "<td>".$data['jenis_kelamin']."</td>";
echo "<td>".$data['telp']."</td>";
echo "<td>".$data['alamat']."</td>";
echo "</tr>";
}
}else{ // Jika data tidak ada
echo "<tr><td colspan='4'>Data tidak ada</td></tr>";
}
?>
</table>
</body>
</html>

Sedikit penjelasan dari deretan kode program diatas supaya lebih paham :

$sql = mysqli_query($connect, $query);
Kode program ini Untuk mengeksekusi / menjalankan query sql. struktur dasar penulisannya adalah sebagai berikut :

mysqli_query($connect, $query);

/*

Keterangan :

– $connect : diisi dengan koneksi ke mysql. hasil dari mysqli_connect

– $query : diisi dengan Query SQL yang diinginkan

*/

mysqli_num_rows($sql);
kode ini Untuk mengambil jumlah data dari hasil eksekusi suatu query sql. Struktur dasar penulisannya adalah sebagai berikut :

mysqli_num_rows($sql);

/*

Keterangan :

– $sql : diisi dengan hasil eksekusi query sql(mysql_query())

*/

mysqli_fetch_array($sql);
Kode program ini Untuk mengambil sebuah data dari hasil yang telah di eksekusi suatu query sql. Struktur dasar penulisannya adalah sebagai berikut :

mysqli_fetch_array($sql);

/*

Keterangan :

– $sql : diisi dengan hasil eksekusi query sql(mysql_query())

*/

Kode diatas tersebut sudah saya simpan kedalam sebuah looping while yang berfungsi untuk melakukan proses perulangan sampai ke data terakhir dengan memiliki tujuan agar kita bisa menampilkan datanya satu persatu.


echo "<tr>";
echo "<td>".$data['nis']."</td>";
echo "<td>".$data['nama']."</td>";
echo "<td>".$data['jenis_kelamin']."</td>";
echo "<td>".$data['telp']."</td>";
echo "<td>".$data['alamat']."</td>";
echo "</tr>";

Coba perhatikan baik-baik kode diatas yang terdapat variabel $data yang digunakan untuk mengambil isi dari field-field yang ada di tabel siswa pada database latihan. Diatas coba jika kamu perhatikan ada kode yang berada didalam tanda  [‘…..’], kode tersebut harus sama dengan nama field yang ada pada tabel siswa.

LANGKAH 5 – PROSES CETAK (PRINT)

Sesuai dengan tema ditulisan ini, langkah kelima ini merupakan sebuah inti dari catatan ini yaitu membuat proses cetak ke file pdf. Pertama-tama buat terlebih dahulu sebuah file baru dan berikan sebuah nama print.php, selanjutnya simpan file tersebut di folder xampp/htdocs/latihan1_pdf. dibwah ini ada detail source codenya :


<?php ob_start(); ?>
<html>
<head>
<title>Cetak PDF</title>

<style>
table {border-collapse:collapse; table-layout:fixed;width: 630px;}
table td {word-wrap:break-word;width: 20%;}
</style>
</head>
<body>

<h1 style="text-align: center;">Data Siswa</h1>
<table border="1" width="100%">
<tr>
<th>NIS</th>
<th>Nama</th>
<th>Jenis Kelamin</th>
<th>Telepon</th>
<th>Alamat</th>
</tr>
<?php
// Load file koneksi.php
include "koneksi.php";

$query = "SELECT * FROM siswa"; // Tampilkan semua data gambar
$sql = mysqli_query($connect, $query); // Eksekusi/Jalankan query dari variabel $query
$row = mysqli_num_rows($sql); // Ambil jumlah data dari hasil eksekusi $sql

if($row > 0){ // Jika jumlah data lebih dari 0 (Berarti jika data ada)
while($data = mysqli_fetch_array($sql)){ // Ambil semua data dari hasil eksekusi $sql
echo "<tr>";
echo "<td>".$data['nis']."</td>";
echo "<td>".$data['nama']."</td>";
echo "<td>".$data['jenis_kelamin']."</td>";
echo "<td>".$data['telp']."</td>";
echo "<td>".$data['alamat']."</td>";
echo "</tr>";
}
}else{ // Jika data tidak ada
echo "<tr><td colspan='4'>Data tidak ada</td></tr>";
}
?>
</table>

</body>
</html>
<?php
$html = ob_get_contents();
ob_end_clean();

require_once('html2pdf/html2pdf.class.php');
$pdf = new HTML2PDF('P','A4','en');
$pdf->WriteHTML($html);
$pdf->Output('Data Siswa.pdf', 'D');
?>

Sebenarnya source code diatas hampir sama dengan file yang pernah kita buat sebelumnya yaitu file index.php. hanya saja didalam source code tersebut terdapat source code berikut ini :


<?php ob_start(); ?>
// …..
// skrip html
// …..
<?php
$html = ob_get_contents();
ob_end_clean();

pada source code print.php, yang memiliki fungsi untuk menampilkan data siswa pada tabel itu diapit oleh source code yang saya berikan tanda merah. Source code tersebut berfungsi untuk pengampilan tampilan tabel data siswa dan memasukannya kedalam sebuah variabel $html. Variabel $html ini akan dipergunakan sebagai output yang kita inginkan pada sebuah file pdfnya. detail skripnya sebagai berikut :


require_once(‘html2pdf/html2pdf.class.php’);
$pdf = new HTML2PDF(‘P’,’A4′,’en’);
$pdf->WriteHTML($html);
$pdf->Output(‘Data Siswa.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 :


/**
* Constructeur
*
* @param string $sens - orientasinya : landscape atau portrait
* @param string $format - format kertasnya : A4, A5, dan lain-lain
* @param string $langue - Bahasanya : en, fr, dan lain-lain
* @param boolean $unicode - TRUE means clustering the input text IS unicode (default = true)
* @param String $encoding - charset encoding; Default is UTF-8
* @param array $marges - margins by default, in order (left, top, right, bottom)
* @return null
*/
public function __construct($sens = 'P', $format = 'A4', $langue='en', $unicode=true, $encoding='UTF-8', $marges = 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 Siswa.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.



Article written by Eriga S Al-Mansur

Sebuah media belajar teknologi dan komputer yang sederhana dan dapat memberikan konten yang mudah dipahami dalam mempelajari teknologi dan komputer. "Selalu berbaktilah kepada orang tua mu".

This Post Has 4 Comments

  1. Adam Gamat Nugraha Reply

    Min ada tutorial untuk cegah SqL Injection atau cara terhindar dari deface bypass admin gak.? Mohon Pencerahannya

    • Eriga S Al-Mansur Reply

      Iya nanti secepatnya kita bikin tutorialnya, terus aja pantengin update dari sebawa.com kalo perlu subscribe,

  2. Adam Gamat Nugraha Reply

    thanks gan,, udah dipublish tutorialnya.. sangatbermanfaat banget Cara Mencegah Serangan Sql Injection.. 😀

    • Eriga S Al-Mansur Reply

      ok, jangan lupa share ya dan pantau terus update dari kami

Tinggalkan Balasan

This is a demo store for testing purposes — no orders shall be fulfilled. Dismiss

%d blogger menyukai ini: