PWEB 14 Fitur Membuat PDF

Nama : Afel Allaric Absor
NRP   : 5025231140
Kelas : Pemrograman Web (E)


                                           Pertemuan 14 Menambahkan Fitur Membuat PDF

Yang berubah dari tugas sebelumnya adalah :

- list-siswa.php :

<?php
require 'config.php';

$sql = "SELECT * FROM calon_siswa";
$result = mysqli_query($conn, $sql);
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>List Siswa</title>
</head>

<body>
    <h1>Daftar Siswa</h1>
    <a href="form-daftar.php">[+] Tambah Siswa Baru</a>
    <a href="edit-siswa.php">[+] Edit Data Siswa</a>
    <a href="export-all-pdf.php">[+] Ekspor Semua PDF</a> <!-- Tombol Ekspor Semua -->
   
    <table border="1">
        <thead>
            <tr>
                <th>ID</th>
                <th>Nama</th>
                <th>Alamat</th>
                <th>Jenis Kelamin</th>
                <th>Agama</th>
                <th>Sekolah Asal</th>
                <th>Photo</th>
                <th>Upload Photo</th>
                <th>Ekspor</th>
                <th>Hapus</th>
                <th>Edit</th>
            </tr>
        </thead>
        <tbody>
            <?php while ($row = mysqli_fetch_assoc($result)): ?>
                <tr>
                    <td><?= $row['id'] ?></td>
                    <td><?= htmlspecialchars($row['nama']) ?></td>
                    <td><?= htmlspecialchars($row['alamat']) ?></td>
                    <td><?= $row['jenis_kelamin'] ?></td>
                    <td><?= htmlspecialchars($row['agama']) ?></td>
                    <td><?= htmlspecialchars($row['sekolah_asal']) ?></td>
                    <td>
                        <?php if ($row['photo']): ?>
                            <img src="<?= $row['photo'] ?>" alt="Photo" width="100">
                        <?php else: ?>
                            Belum ada foto
                        <?php endif; ?>
                    </td>
                    <td>
                        <form action="upload-photo.php" method="POST" enctype="multipart/form-data">
                            <input type="file" name="photo" required>
                            <input type="hidden" name="id" value="<?= $row['id'] ?>">
                            <button type="submit" name="upload">Upload</button>
                        </form>
                    </td>
                    <td>
                        <a href="export-row-pdf.php?id=<?= $row['id'] ?>">Ekspor PDF</a>
                    </td>
                    <td>
                        <a href="hapus.php?id=<?= $row['id'] ?>" onclick="return confirm('Apakah Anda yakin ingin menghapus data ini?');">Hapus</a>
                    </td>
                    <td>
                        <a href="edit-siswa.php?id=<?= $row['id'] ?>">Edit</a>
                    </td>
                </tr>
            <?php endwhile; ?>
        </tbody>
    </table>
</body>

</html>

Menambahkan "<a href="export-all-pdf.php">[+] Ekspor Semua PDF</a>" untuk tombol export pdf semua data dan "<td> <a href="export-row-pdf.php?id=<?= $row['id'] ?>">Ekspor PDF</a> </td>" untuk tombol export masing-masing row (setiap data 1 siswa).

Kode diatas untuk menampilkan data yang ada di database.


- export-all-pdf.php :

<?php
require 'config.php';
require_once 'tcpdf/tcpdf.php';

// Ambil semua data siswa
$sql = "SELECT * FROM calon_siswa";
$result = mysqli_query($conn, $sql);

// Inisialisasi PDF
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);

// Judul PDF
$pdf->Cell(0, 10, 'Daftar Siswa', 0, 1, 'C');
$pdf->Ln(5);

// Header tabel
$header = ['ID', 'Nama', 'Alamat', 'Jenis Kelamin', 'Agama', 'Sekolah Asal'];
foreach ($header as $col) {
    $pdf->Cell(30, 10, $col, 1);
}
$pdf->Ln();

// Isi tabel
while ($row = mysqli_fetch_assoc($result)) {
    $pdf->Cell(30, 10, $row['id'], 1);
    $pdf->Cell(30, 10, $row['nama'], 1);
    $pdf->Cell(30, 10, $row['alamat'], 1);
    $pdf->Cell(30, 10, $row['jenis_kelamin'], 1);
    $pdf->Cell(30, 10, $row['agama'], 1);
    $pdf->Cell(30, 10, $row['sekolah_asal'], 1);
    $pdf->Ln();
}

// Output PDF
$pdf->Output('daftar_siswa.pdf', 'D');
?>

Kode diatas adalah logika yang digunakan pada saat melakukan export pada semua data yang ada di database (yang dijadikan pdf hanya tabelnya saja, tanpa foto).


- export-row-pdf.php :

<?php
require 'config.php';
require_once 'tcpdf/tcpdf.php';

if (isset($_GET['id'])) {
    $id = $_GET['id'];

    // Ambil data siswa berdasarkan ID
    $sql = "SELECT * FROM calon_siswa WHERE id = $id";
    $result = mysqli_query($conn, $sql);
    $row = mysqli_fetch_assoc($result);

    // Inisialisasi PDF
    $pdf = new TCPDF();
    $pdf->AddPage();
    $pdf->SetFont('helvetica', '', 12);

    // Judul
    $pdf->Cell(0, 10, 'Detail Siswa', 0, 1, 'C');
    $pdf->Ln(5);

    // Isi Data
    $pdf->Cell(50, 10, 'ID:', 0);
    $pdf->Cell(0, 10, $row['id'], 0, 1);
    $pdf->Cell(50, 10, 'Nama:', 0);
    $pdf->Cell(0, 10, $row['nama'], 0, 1);
    $pdf->Cell(50, 10, 'Alamat:', 0);
    $pdf->Cell(0, 10, $row['alamat'], 0, 1);
    $pdf->Cell(50, 10, 'Jenis Kelamin:', 0);
    $pdf->Cell(0, 10, $row['jenis_kelamin'], 0, 1);
    $pdf->Cell(50, 10, 'Agama:', 0);
    $pdf->Cell(0, 10, $row['agama'], 0, 1);
    $pdf->Cell(50, 10, 'Sekolah Asal:', 0);
    $pdf->Cell(0, 10, $row['sekolah_asal'], 0, 1);

    // Tampilkan Foto jika ada
    if ($row['photo']) {
        $pdf->Ln(10);
        $pdf->Image($row['photo'], '', '', 40, 40);
    }

    // Output PDF
    $pdf->Output('detail_siswa.pdf', 'D');
} else {
    echo "ID tidak ditemukan!";
}
?>

Kode diatas adalah logika untuk melakukan export untuk setiap rownya (1 data siswa) beserta fotonya.

- Hasil kode saat dijalankan :



- Link repo github berisi source code : https://github.com/afelallaric/Pweb-Export-PDF.git

Komentar

Postingan populer dari blog ini

PWEB 15 Desain Final Project

Tugas 8 Pemrograman Web (E) Membuat Form Register & Login Menggunakan Bootstrap

Tugas PBO 14 GUI & Panel Login