Laporan dalam bentuk PDF sering dibutuhkan dalam aplikasi web, terutama untuk kebutuhan administrasi, cetak struk, atau rekap data. PHP menyediakan berbagai pustaka untuk membantu membuat file PDF, salah satu yang paling populer adalah Fpdf. Artikel ini akan membantu kamu untuk membuat laporan PDF secara dinamis dari data yang tersimpan di MySQL.
1. Instalasi FPDF
Unduh Fpdf dari situs resminya: http://www.fpdf.org
Setelah selesai diunduh, ekstrak folder fpdf
ke dalam direktori project kamu. Misalnya:
pdf-report/
├── fpdf/
│ └── fpdf.php
├── config/
│ └── database.php
├── generate-pdf.php
2. Koneksi ke Database
Buat file database.php
di folder config/
:
<?php
class Database {
private $host = "localhost";
private $db_name = "laporan_db";
private $username = "root";
private $password = "";
public $conn;
public function connect() {
$this->conn = null;
try {
$this->conn = new PDO(
"mysql:host=" . $this->host . ";dbname=" . $this->db_name,
$this->username,
$this->password
);
$this->conn->exec("set names utf8");
} catch(PDOException $e) {
die("Koneksi gagal: " . $e->getMessage());
}
return $this->conn;
}
}
?>
3. Siapkan Tabel dan Data
Gunakan MySQL untuk membuat tabel data:
CREATE DATABASE laporan_db;
USE laporan_db;
CREATE TABLE karyawan (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100),
jabatan VARCHAR(100),
gaji INT
);
INSERT INTO karyawan (nama, jabatan, gaji) VALUES
('Dewi', 'Admin', 4000000),
('Rudi', 'Manager', 8000000),
('Sinta', 'Staff', 3500000);
4. Membuat File generate-pdf.php
File ini akan mengambil data dari database dan menghasilkan PDF.
<?php
require('fpdf/fpdf.php');
require('config/database.php');
$db = new Database();
$conn = $db->connect();
$query = "SELECT * FROM karyawan";
$stmt = $conn->prepare($query);
$stmt->execute();
class PDF extends FPDF {
function Header() {
$this->SetFont('Arial', 'B', 14);
$this->Cell(0, 10, 'Laporan Data Karyawan', 0, 1, 'C');
$this->Ln(5);
$this->SetFont('Arial', 'B', 12);
$this->Cell(10, 10, 'No', 1);
$this->Cell(60, 10, 'Nama', 1);
$this->Cell(60, 10, 'Jabatan', 1);
$this->Cell(40, 10, 'Gaji', 1);
$this->Ln();
}
function Footer() {
$this->SetY(-15);
$this->SetFont('Arial', 'I', 10);
$this->Cell(0, 10, 'Halaman ' . $this->PageNo(), 0, 0, 'C');
}
}
$pdf = new PDF();
$pdf->AddPage();
$pdf->SetFont('Arial', '', 12);
$no = 1;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$pdf->Cell(10, 10, $no++, 1);
$pdf->Cell(60, 10, $row['nama'], 1);
$pdf->Cell(60, 10, $row['jabatan'], 1);
$pdf->Cell(40, 10, number_format($row['gaji']), 1);
$pdf->Ln();
}
$pdf->Output();
?>
5. Jalankan dan Lihat Hasilnya
Akses file generate-pdf.php
melalui browser:
http://localhost/pdf-report/generate-pdf.php
Kesimpulan
Membuat laporan PDF dari MySQL dengan PHP sangat praktis menggunakan pustaka Fpdf. Kamu hanya perlu menyiapkan database, mengatur layout PDF, dan menampilkan data secara dinamis. Dengan pendekatan ini, laporan bisa dihasilkan secara cepat dan rapi sesuai kebutuhan aplikasi.