Tutorial PHP Part 51 – Cara Membuat Report PDF dengan PHP Menggunakan DOMPDF
Selamat datang di warungbelajar, melanjutkan pembahasan dari seri tutorial PHP, di Part 51 kita akan belajar untuk membuat report PDF dengan PHP menggunakan DOMPDF.
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 xampp, untuk tutorial instalasi xampp bisa lihat di tutorial kami sebelumnya : https://www.warungbelajar.com/cara-menginstall-xampp.html
- Text editor bisa menggunakan 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
Import Database Siswa
Baik kita mulai untuk membuat reportnya, tapi sebelum itu kita akan mempersiapkan terlebih dahulu untuk database yang berisi data siswa.
Langkah awal kita akan mempersiapkan databasenya terlebih dahulu, disini kita persiapkan perintah SQL yang berisi perintah untuk membuat database dan tabel yang berisi data siswa, baik perintah nya seperti berikut ini, anda bisa import ke dalam MySQL, menggunakan phpmyadmin atau SQL Editor lainnya :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
-- phpMyAdmin SQL Dump -- version 4.8.4 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Waktu pembuatan: 23 Jun 2019 pada 16.33 -- Versi server: 10.1.37-MariaDB -- Versi PHP: 7.3.0 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `db_siswa` -- CREATE DATABASE IF NOT EXISTS `db_siswa` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `db_siswa`; -- -------------------------------------------------------- -- -- Struktur dari tabel `tb_siswa` -- CREATE TABLE `tb_siswa` ( `id_siswa` int(11) NOT NULL, `nama` varchar(255) NOT NULL, `kelas` varchar(100) NOT NULL, `alamat` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data untuk tabel `tb_siswa` -- INSERT INTO `tb_siswa` (`id_siswa`, `nama`, `kelas`, `alamat`) VALUES (1, 'Budi Susanto', '1MM3', 'Sedati Gede'), (2, 'Dita Anggraini', '1MM2', 'Rungkut'), (3, 'Riska Nur Aini', '3MM1', 'Wonocolo'); -- -- Indexes for dumped tables -- -- -- Indeks untuk tabel `tb_siswa` -- ALTER TABLE `tb_siswa` ADD PRIMARY KEY (`id_siswa`); -- -- AUTO_INCREMENT untuk tabel yang dibuang -- -- -- AUTO_INCREMENT untuk tabel `tb_siswa` -- ALTER TABLE `tb_siswa` MODIFY `id_siswa` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; |
Baik saya asumsikan teman – teman sudah jalankan perintah SQL diatas, sehingga memiliki database dengan db_siswa, yang berisi tabel tb_siswa, kurang lebih tampilannya seperti ini ketika di tampilkan di phpmyadmin :
terdapat 3 data siswa didalam table tb_siswa, baik berikutnya kita akan memulai membuat file php yang nantinya digunakan untuk membuat report PDF dengan php dan dompdf.
Membuat Project
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 reportpdf, dan silahkan buat beberapa file sebagai berikut :
- koneksi.php
- report.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 :
1 2 3 4 5 6 7 |
<?php $host = "localhost"; $user = "root"; $password = ""; $database = "db_siswa"; $koneksi = mysqli_connect($host, $user, $password, $database); ?> |
Keterangan :
- Perintah diatas digunakan untuk koneksi ke database db_siswa 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 “db_siswa” 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 report.php
Silahkan buka file report.php menggunakan text edit, lalu isikan code seperti berikut ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php include('koneksi.php'); require_once("dompdf/autoload.inc.php"); use Dompdf\Dompdf; $dompdf = new Dompdf(); $query = mysqli_query($koneksi,"select * from tb_siswa"); $html = '<center><h3>Daftar Nama Siswa</h3></center><hr/><br/>'; $html .= '<table border="1" width="100%"> <tr> <th>No</th> <th>Nama</th> <th>Kelas</th> <th>Alamat</th> </tr>'; $no = 1; while($row = mysqli_fetch_array($query)) { $html .= "<tr> <td>".$no."</td> <td>".$row['nama']."</td> <td>".$row['kelas']."</td> <td>".$row['alamat']."</td> </tr>"; $no++; } $html .= "</html>"; $dompdf->loadHtml($html); // Setting ukuran dan orientasi kertas $dompdf->setPaper('A4', 'potrait'); // Rendering dari HTML Ke PDF $dompdf->render(); // Melakukan output file Pdf $dompdf->stream('laporan_siswa.pdf'); ?> |
Penjelasan Skrip :
1 |
include('koneksi.php'); |
Baris 2 kita menginclude file koneksi.php untuk dapat terkoneksi dengan database db_siswa
1 |
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
1 |
use Dompdf\Dompdf; |
Baris 4 kita menggunakan namespace Dompdf
1 |
$dompdf = new Dompdf(); |
Baris 5 kita membuat object dompdf dengan class Dompdf
1 |
$query = mysqli_query($koneksi,"select * from tb_siswa"); |
Baris 6 kita menuliskan perintah query untuk mendapatkan data di tabel tb_siswa dan hasilnya disimpan kedalam variabel $query
1 2 3 4 5 6 7 8 |
$html = '<center><h3>Daftar Nama Siswa</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
1 |
$no = 1; |
Baris 15 kita membuat variabel $no untuk memberi nomor urut disetiap data di tabel tb_siswa yang akan ditampilkan
1 2 3 4 5 6 7 8 9 10 |
while($row = mysqli_fetch_array($query)) { $html .= "<tr> <td>".$no."</td> <td>".$row['nama']."</td> <td>".$row['kelas']."</td> <td>".$row['alamat']."</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
1 |
$html .= "</html>"; |
Baris 26 kita memberikan tutup html, dengan menambahkan string di variabel $html
1 |
$dompdf->loadHtml($html); |
Baris 27 kita melakukan konversi dari code html yang ada di variabel $html, menjadi bentuk PDF
1 |
$dompdf->setPaper('A4', 'potrait'); |
Baris 29 kita melakukan setting ukuran kertas, dan orientasi kertas (potrait, landscape) tersebut hasil report PDF nantinya
1 |
$dompdf->render(); |
Baris 31 melakukan rendering dari report PDF
1 |
$dompdf->stream('laporan_siswa.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/reportpdf/report.php
Maka otomatis akan mendownload file report pdf, dengan tampilan yang kurang seperti berikut ini :
Bagaimana mudah bukan membuat report PDF dengan menggunakan Library DOMPDF.
Untuk download hasil source code belajar kita, teman – teman bisa download disini
jika teman – teman ada yang ingin didiskusikan silahkan di kolom komentar, baik sekian dulu tutorial kali ini, kita sudah membahas bagaimana Cara Membuat Report PDF dengan PHP Menggunakan DOMPDF, sampai jumpa di seri tutorial PHP selanjutnya.
ANDA INGIN SERIUS BELAJAR PEMROGRAMAN PHP
Anda serius ingin menguasai Pemrograman PHP ? Warung Belajar Memiliki Beberapa Paket Tutorial yang bisa membantu anda dalam belajar Pemrograman PHP.
Paket Tutorial kita berisi video tutorial belajar pemrograman berbahasa indonesia, cocok untuk anda yang sedang belajar pemrograman PHP, bahkan untuk orang awam sekalipun.
Paket Tutorial ini juga dilengkapi dengan study kasus yang akan mempermudah pemahaman anda dalam belajar pemrograman, Mari berinvestasi untuk menambah skill anda dalam pemrograman PHP
-
Tutorial Seminggu Menguasai PHP Dan MySQL
Rp80,000 Add to cart -
Tutorial HTML White Box – Panduan Belajar HTML Lengkap
Rp70,000 Add to cart -
Tutorial Web Programming Black Box – Tutorial Belajar HTML, CSS, Bootstrap 4, PHP OOP, dan MySQL – Study Kasus Membuat Aplikasi Sistem Management Stok Barang
Rp120,000 Add to cart -
Tutorial Membuat Aplikasi Dengan Codeigniter, Javascript Dan Ajax Jquery
Rp95,000 Add to cart -
Tutorial Membangun Layanan SMS Gateway Berbasis Client Server
Rp145,000 Add to cart -
Tutorial Membuat Aplikasi Dinamis Dengan HTML CSS Boostrap PHP Dan MySQL
Rp120,000 Add to cart -
TUTORIAL MEMBANGUN APLIKASI BERBASIS WEB DENGAN PHP MYSQL DAN BOOTSTRAP
Rp95,000 Add to cart -
Tutorial Tips Dan Trik Aplikatif Master PHP
Rp85,000 Add to cart
Kalo pengen modifikasi huruf atau nempelkan logo perusahaan pake apa ya gan syntaknya? Apa mengacu ke syntak html biasa ya? Biar kesannya reportnya ga kaku2 banget tampilannya
Bisa langsung menggunakan tag html biasa kak
Ilmunya sangat membantu.
Terima kasih ya.
Apakah pdfnya bisa di download?? Atau di view via internet
Bisa kak, coba ke dokumentasi resmi dompdf aja, kalau view pdfnya biasanaya saya pakai extention di browsernya tapi perlu setting juga diperintahnya, cek aja dokumentasi resminya kak
makasih atas ilmu nya kk
ya sama sama kak