Bagaimana Cara Membuat Laporan PDF dari MySQL dengan PHP

Bagaimana Cara Membuat Laporan PDF dari MySQL dengan PHP
Bagaimana Cara Membuat Laporan PDF dari MySQL dengan PHP

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.

Comments

No comments yet. Why don’t you start the discussion?

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *