Laporan
adalah salah satu fitur yang selalu ada dalam sebuah aplikasi berbasis web,
jadi skill untuk bisa menyajikan laporan adalah hal wajib yang dikuasai oleh
developer, biasanya format laporan yang sering digunakan adalah dalam format
PDF, Excel atau Ms Word. dalam tutorial ini anda akan belajar membuat laporan
PDF Dengan bahasa pemograman PHP Dan Database MySQL.
1.
Library FPDF Untuk Membuat Laporan PDF
Salah
satu library yang paling banyak digunakan oleh web developer adalah FPDF, library ini punya banyak fitur
seperti bisa membuat posisi text dan gambar berdasarkan koordinat, mengganti
font yang akan digunakan, menambahkan garis dan masih banyak lagi.
sekarang
kita akan belajar cara membuat laporan PDF dengan PHP menggunakan library FPDF
ini, silahkan download library nya pada situs resmi FPDF (http://www.fpdf.org). kemudian
silahkan buat sebuah folder baru dengan nama phpfpdf pada
C:\xampp\htdocs\phpfpdf dan extract file fpdf181.zip ke folder tersebut.
Membuat
Script Laporan PDF Dengan PHP Dan MySQL
sekarang
kita akan membuat sebuah file baru dengan nama index.php, file ini nanti yang
bertugas menampilkan laporan pdf pada browser, setelah membuat file index.php
lalu tulislah script berikut :
<?php
//
memanggil library FPDF
require('fpdf.php');
//
intance object dan memberikan pengaturan halaman PDF
$pdf
= new FPDF('P','mm','A4');
//
membuat halaman baru
$pdf->AddPage();
//
setting jenis font yang akan digunakan
$pdf->SetFont('Arial','B',16);
//
mencetak string
$pdf->Cell(40,10,'Belajar
Membuat Laporan PDF Dengan FPDF');
$pdf->Output();
?>
kemudian
silahkan save file index.php tadi dan sekarang silahkan
akses http://localhost/phpfpdf/ menggunakan web browser anda,
Membuat
Laporan PDF Aplikasi Berita Dengan PHP MySQL
Sekarang
kita akan membuat laporan PDF Dengan PHP Dan Data nya dari database MySQL,
pertama silahkan buat sebuah database baru dengan nama tutorial dan buatlah
sebuah tabel dengan struktur sebagai berikut :
Langkah
selanjutnya silahkan insert beberapa data yang akan ditampilkan nantinya, kemudian
silahkan buat sebuah file baru dengan nama koneksi.php untuk menyimpan
konfigurasi koneksi ke database MySQL, silahkan tulis script berikut :
<?php
$host = "localhost";
$user = "root";
$password = "";
$database = "profnews";
$connect = mysqli_connect($host, $user, $password,
$database);
?>
lalu
silahkan save untuk menyimpan perubahan, kemudian silahkan modifikasi script Laporan_PDF.php
menjadi seperti dibawah ini :
<?php
// memanggil library FPDF
require('fpdf16/fpdf.php');
// intance object dan
memberikan pengaturan halaman PDF
$pdf = new
FPDF('l','mm','legal');
// membuat halaman baru
$pdf->AddPage();
// setting jenis font yang akan
digunakan
$pdf->SetFont('Arial','B',16);
// mencetak string
$pdf->Cell(190,7,'STMIK
Profesional Makassar',0,1,'C');
$pdf->SetFont('Arial','B',12);
$pdf->Cell(190,7,'DAFTAR
BERITA TERBARU',0,1,'C');
// Memberikan space kebawah
agar tidak terlalu rapat
$pdf->Cell(10,7,'',0,1);
$pdf->SetFont('Arial','B',10);
$pdf->Cell(50,6,'JUDUL',1,0);
$pdf->Cell(120,6,'HEADLINE',1,0);
$pdf->Cell(90,6,'ISI',1,0);
$pdf->Cell(80,6,'PENGIRIM',1,1);
$pdf->SetFont('Arial','',10);
include 'koneksi.php';
$berita =
mysqli_query($koneksi, "select * from berita");
while ($row =
mysqli_fetch_array($berita)){
$pdf->Cell(50,6,$row['judul'],1,0);
$pdf->Cell(120,6,$row['headline'],1,0);
$pdf->Cell(90,6,$row['isi'],1,0);
$pdf->Cell(80,6,$row['pengirim'],1,1);
}
$pdf->Output();
?>
Jangan
lupa melakukan save untuk menyimpan perubahan, kemudian silahkan akses
lagi http://localhost/aplikasi_berita/laporan_pdf.php.
Begitulah
cara membuat laporan dalam bentuk PDF dengan bahasa pemograman PHP, sebenarnya
masih banyak fitur lain yang bisa anda coba seperti menampilkan gambar, garis
dan lainya yang bisa anda pelajari melalui halaman dokumentasi library FPDF.
2.
Library DOMPDF Untuk Membuat Laporan PDF
Dompdf
adalah salah satu library yang digunakan untuk membuat report berupa PDF dengan
menggunakan PHP, sebenarnya banyak sekali library lain yang dapat digunakan
untuk membuat report PDF, tetapi menurut kita library DOMPDF ini lebih mudah
digunakan, serta lebih flexible dalam pembuatan reportnya.
Cara
kerja DOMPDF ini adalah mengkonversi dari skrip HTML, menjadi bentuk PDF. Nah
dalam tutorial ini kita akan membuat sebuah database dengan nama db_siswa,
dimana didalamnya terdapat tabel tb_siswa yang didalamnya terdapat beberapa data
siswa, berikutnya data tersebut akan kita export menjadi bentuk PDF menggunakan
library DOMPDF.
Persiapan
Untuk
persiapan tools yang kita gunakan antara lain :
Xampp
/ Wampp sebagai aplikasi yang menyediakan web server dan database server
didalamnya, atau teman – teman bisa menggunakan tools lain, dalam contoh ini
kita gunakan xamp.
Text
editor bisa menggunakan notepad++, visual studio code, sublime atau text editor
yang lain.
Library
dompdf, bisa didownload di sini :
https://github.com/dompdf/dompdf/releases/download/v0.8.3/dompdf_0-8-3.zip
saat
tutorial ini dibuat, dompdf berada di versi 0.8.3, versi ini sudah mensupport
PHP 7.3
Membuat
Project Laporan_Berita
Langkah
berikutnya kita akan mulai untuk membuat file PHPnya, dalam contoh ini kita
menggunakan xampp, sehingga folder projectnya kita letakkan di C:/xampp/htdocs,
contohnya didalam folder htdocs kita buat folder dengan nama aplikasi_berita
dan silahkan buat beberapa file sebagai berikut :
Ø koneksi.php (kalau
belum ada)
Ø Laporan_berita.php
serta
extract file dompdf_0-8-3.zip hasil download library dompdf sebelumnya
sehingga
tampilannya kurang lebih seperti ini :
Membuat File
koneksi.php
Silahkan
buka file koneksi.php menggunakan text editor, lalu isikan code seperti berikut
ini :
<?php
$host = "localhost";
$user = "root";
$password = "";
$database = "profnews";
$koneksi = mysqli_connect($host, $user, $password,
$database);
?>
Keterangan
:
Ø Perintah diatas
digunakan untuk koneksi ke database profnews yang sebelumnya
telah kita buat.
Ø $host dengan nilai
“localhost” yang merupakan alamat server databasenya
Ø $user dengan nilai
“root” yang merupakan user dari databasenya
Ø $password dengan
nilai “” yang merupakan password untuk mengakses database, nilainya kosong
karena default dari xampp untuk password user root adalah kosong
Ø $database dengan
nilai “profnews” yang merupakan nama dari database yang
sebelumnya telah kita buat
Ø Baris 6 adalah
perintah untuk melakukan koneksi ke database, dan hasilnya disimpan di variabel
$koneksi.
Membuat
File Laporan_berita.php
Silahkan
buka file report.php menggunakan text edit, lalu isikan code seperti berikut
ini :
<?php
include('koneksi.php');
require_once("dompdf/autoload.inc.php");
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$query =
mysqli_query($koneksi,"select * from berita");
$html =
'<center><h3>Daftar berita
terbaru</h3></center><hr/><br/>';
$html .= '<table
border="1" width="100%">
<tr>
<th>No</th>
<th>judul</th>
<th>headline</th>
<th>Isi</th>
<th>Pengirim</th>
<th>Tanggal</th>
</tr>';
$no = 1;
while($row =
mysqli_fetch_array($query))
{
$html .= "<tr>
<td>".$no."</td>
<td>".$row['judul']."</td>
<td>".$row['headline']."</td>
<td>".$row['isi']."</td>
<td>".$row['pengirim']."</td>
<td>".$row['tanggal']."</td>
</tr>";
$no++;
}
$html .=
"</html>";
$dompdf->loadHtml($html);
// Setting ukuran dan orientasi
kertas
$dompdf->setPaper('A4',
'landscape');
// Rendering dari HTML Ke PDF
$dompdf->render();
// Melakukan output file Pdf
$dompdf->stream('laporan_berita.pdf');
?>
Penjelasan Skrip :
include('koneksi.php');
Baris
2 kita menginclude file koneksi.php untuk dapat terkoneksi dengan database profnews
require_once("dompdf/autoload.inc.php");
Baris
3 kita menginclude file autoload.inc.php yang berada di folder dompdf,
perbedaan fungsi include dan include_once sudah dibahas di tutorial kita
sebelumnya : mengenal fungsi
include dan required di PHP
use Dompdf\Dompdf;
Baris
4 kita menggunakan namespace Dompdf
$dompdf = new Dompdf();
Baris
5 kita membuat object dompdf dengan class Dompdf
$query =
mysqli_query($koneksi,"select * from berita");
Baris
6 kita menuliskan perintah query untuk mendapatkan data di tabel tb_siswa dan
hasilnya disimpan kedalam variabel $query
$html =
'<center><h3>Daftar berita terbaru</h3></center><hr/><br/>';
$html .= '<table
border="1" width="100%">
<tr>
<th>No</th>
<th>Nama</th>
<th>Kelas</th>
<th>Alamat</th>
</tr>';
Baris
7 – 14 kita membuat variabel dengan nama $html, didalam di variabel ini berisi
kode HTML yang digunakan untuk membuat judul tabel serta header tabel, jadi
sederhananya kita harus membuat sebuah variabel yang berisi code HTML, dan code
ini akan diconvert menjadi bentuk PDF
Jika
anda bingung itu di variabel $html di baris 8 kok ada titik sebelumnya tanda
sama dengan, itu adalah concatination di PHP, untuk memperlajari lebih lanjut
bisa membaca tutorial kita sebelumnya : Mengenal Jenis
Operator di PHP
$no = 1;
Baris
15 kita membuat variabel $no untuk memberi nomor urut disetiap data di tabel
tb_siswa yang akan ditampilkan
while($row =
mysqli_fetch_array($query))
{
$html .= "<tr>
<td>".$no."</td>
<td>".$row['judul']."</td>
<td>".$row['headline']."</td>
<td>".$row['isi']."</td>
<td>".$row['pengirim']."</td>
<td>".$row['tanggal']."</td>
</tr>";
$no++;
}
Baris
16 – 25 kita extract data di variabel $query menggunakan perintah while, setiap
datanya akan disimpan di variabel $row, karena kita menggunakan perintah
mysqli_fetch_array, dan data tersebut akan digabung dengan string yang ada di
variabel $html
$html .=
"</html>";
Baris
26 kita memberikan tutup html, dengan menambahkan string di variabel $html
$dompdf->loadHtml($html);
Baris
27 kita melakukan konversi dari code html yang ada di variabel $html, menjadi
bentuk PDF
$dompdf->setPaper('A4',
'potrait');\
Baris
29 kita melakukan setting ukuran kertas, dan orientasi kertas (potrait,
landscape) tersebut hasil report PDF nantinya
$dompdf->render();
Baris
31 melakukan rendering dari report PDF
$dompdf->stream('laporan_berita.pdf');
Baris
33 melakukan output file PDF dengan nama laporan_siswa.pdf, anda dapat
mencustom dari nama reportnya.
Mencoba
Mengakses Report
Untuk
mencoba skrip tersebut, anda bisa mengakses melalui alamat :
http://localhost/aplikasi_berita/laporan_berita.php
Maka
browser secara otomatis akan meminta untuk mendownload file laporan_berita.pdf,
Pilih Open with
Firefox dan klik tombol OK, maka browser akan menampilkan hasilnya.
Selamat Belajar dan Semangat Mencoba !