Cara membuat laporan di php

Membuat Report PDF dengan PHP dan MySQL - Kembali lagi Sobat Programmer kali ini kita akan membahas cara membuat report yang bisa di download dalam bentuk file pdf melalui aplikasi php dan database mysql.

Laporan merupakan fitur penting dan wajib dalam sebuah aplikasi web (terutama yang berhubungan dengan data). Fitur ini biasanya memiliki dua format utama yaitu excel dan pdf, namun ada juga yang menggunakan format csv

Pada postingan kali ini saya akan khusus membahas cara membuat laporan pdf dengan php dan mysql. untuk format excel dan atau csv akan saya bahas di artikel lain

Jadi untuk membuat laporan pdf kita akan menggunakan plugin fpdf. Plugin ini sangat populer di kalangan pemrogram web. Karena alasan penggunaan yang mudah (dari sisi pemrograman) dan dokumentasi yang lengkap tersedia di situs resminya

Dengan menggunakan plugin fpdf kita dapat mengatur posisi, ukuran kertas dan cell, jenis font dan ukuran sesuai dengan yang ingin kita gunakan. Cukup ikuti langkah-langkah berikut

Unduh Plugin FPDF

Langkah pertama adalah mengunduh plugin fpdf di situs web resmi. Unduh fpdf.dll

Cara membuat laporan di php

Hingga artikel ini diterbitkan, versi terbaru telah tersedia dan dapat diunduh di situs fpdf. org adalah versi v1. 81 yang dirilis pada 20 Desember 2015. Silakan klik tautan 'ZIP' untuk mengunduhnya

Selanjutnya buat folder project baru (optional) pada folder htdocs, disini saya beri nama folder tersebut dengan nama report-pdf. Anda tidak perlu membuat folder ini jika Anda sudah memiliki folder project di htdocs

Baca juga. Pencarian Data di database dengan PHP

Setelah membuat foder di htdocs, kemudian extract file hasil download tersebut ke dalam folder project kita. Saya buat folder baru dengan nama plugin lalu saya buat folder fpdf lagi di folder itu. Untuk lebih jelasnya lihat gambar berikut

Cara membuat laporan di php

Konfigurasi Basis Data

Buat database dengan nama 'akademik'

create database akademik;

Buat tabel dengan nama siswa

create table mahasiswa (
    nik char(10) not null primary key,
    nama varchar(50) not null,
    jk char(1),
    tanggal_lhr date,
    jurusan char(2),
    umur int
    );
_

Selanjutnya, kita masukkan beberapa data sampel ke dalam tabel siswa

INSERT INTO mahasiswa
VALUES ('135410156','Ahmad Riko','1','1995-02-23','TI',22),
('135610157','Dahlan Iskan','1','1998-03-26','SI',20),
('135410189','Wawan Setiawan','1','1993-02-13','TI',23),
('135310156','Safitri Ayu','2','1995-09-01','TK',22),
('135310150','Rian Hidayat','1','1997-08-05','TK',20),
('135510920','Dani Hermawan','1','1996-05-05','SI',23),
('135518322','Nita Daniyatun','2','1994-09-05','TI',23),
('135518900','Mili Wilian','2','1995-10-08','SI',22),
('135510190','Marshel Saraun','1','1993-10-23','MI',23),
('135510191','Nacha Saraun','2','1995-01-13','MI',20),
('135558944','Bayu Mandalika','1','1997-01-15','SI',19),
('158984545','Juan Burnama','1','1993-01-20','SI',24),
('158549583','Candra Sidauruk','1','1994-10-22','TK',23),
('136349343','Kory Ubi','2','1992-10-29','MI',25),
('147343998','Chika Lestari','2','1996-11-12','MI',21);

Baca juga. Buat database mysql dengan phpmyadmin

Buat Laporan PDF Sederhana

Pada tahap ini kita membuat file PHP disini saya menggunakan nama index. php Anda dapat menggunakan nama sesuai dengan proyek Anda

<?php

require('plugin/fpdf/fpdf.php');
$pdf = new FPDF('P', 'mm','Letter');

$pdf->AddPage();

$pdf->SetFont('Times','B',16);
$pdf->Cell(0,7,'CONTOH DAFTAR MAHASISWA',0,1,'C');

$pdf->Cell(10,7,'',0,1);

$pdf->SetFont('Times','B',10);

$pdf->Cell(8,6,'No',1,0,'C');
$pdf->Cell(20,6,'NIK',1,0,'C');
$pdf->Cell(50,6,'Nama',1,0,'C');
$pdf->Cell(30,6,'Jenis Kelamin',1,0,'C');
$pdf->Cell(30,6,'Tanggal Lahir',1,0,'C');
$pdf->Cell(30,6,'Jurusan',1,0,'C');
$pdf->Cell(20,6,'Umur',1,1,'C');

$pdf->SetFont('Times','',10);

//Membuat Koneksi ke database akademik
$host="localhost";
$user="root";
$password="";
$db="akademik";

$kon = mysqli_connect($host,$user,$password,$db);

$no=1;
$jk='';
//Query untuk mengambil data mahasiswa pada tabel mahasiswa
$hasil = mysqli_query($kon, "select * from mahasiswa order by nik asc");
while ($data = mysqli_fetch_array($hasil)){
    if ($data['jk']==1){
        $jk='Lali-laki';
    }else{
        $jk='Perempuan';
    }
    $pdf->Cell(8,6,$no,1,0);
    $pdf->Cell(20,6,$data['nik'],1,0);
    $pdf->Cell(50,6,$data['nama'],1,0);
    $pdf->Cell(30,6,$jk,1,0);
    $pdf->Cell(30,6,$data['tanggal_lhr'],1,0);
    $pdf->Cell(30,6,$data['jurusan'],1,0);
    $pdf->Cell(20,6,$data['umur'],1,1);
    $no++;
}

$pdf->Output();
?>

Penjelasan

Saya menjelaskan sedikit tentang program di atas

require('plugin/fpdf/fpdf.php');
_

Sintaks di atas berfungsi untuk memanggil/memasukkan plugin fpdf. php ditemukan di folder plugin/fpdf

$pdf = new FPDF('P', 'mm','Letter');

Sintaks di atas untuk inisialisasi objek fpdf dengan parameter

  • 'P' adalah pengaturan orientasi halaman yang berarti menggunakan halaman dalam posisi potret (tegak), sedangkan jika Anda ingin menggunakan posisi landspace maka Anda perlu menggunakan nilai 'L' ingat disini huruf case sensitive pastikan Anda menggunakan huruf kapital semua
  • maka ada nilai 'mm' sebagai satuan yang digunakan untuk mengatur panjang halaman. ada beberapa satuan lain yang bisa digunakan, misalnya 'pt' (titik), 'cm' (sentimeter) dan 'in' untuk inci
  • Terakhir ada nilai 'Letter' yang merupakan ukuran format halaman yang digunakan, ada beberapa format ukuran lain yang bisa digunakan misalnya A3, A4, A5 dan Legal
$pdf->AddPage();
_

Fungsi sintaks di atas untuk menambahkan halaman baru ke dokumen

$pdf->SetFont('Times','B',16);

Sintaks di atas digunakan untuk mengatur huruf yang digunakan. Pada contoh saya menggunakan jenis huruf Times new roman. ada beberapa huruf lain yang bisa digunakan misalnya 'Arial' dan 'Courier'

Pada nilai parameter kedua 'B' Menunjukkan gaya font Bold Anda dapat menggunakan 'I' untuk italic dan 'U' untuk garis bawah

Yang terakhir '16' adalah ukuran font yang digunakan, ukuran yang digunakan adalah titik

$pdf->Cell(0,7,'CONTOH DAFTAR MAHASISWA',0,1,'C');
_

Sintaks di atas berfungsi untuk membuat sel (berbentuk kotak) dengan penjelasan sebagai berikut

  • 0 adalah nilai lebar yang digunakan. dengan nilai 0 berarti kita tidak mengatur lebar sel
  • Nilai 7 menunjukkan ketinggian sel
  • "CONTOH PENDAFTARAN SISWA" adalah kalimat yang akan dicetak di sel
  • 0 adalah nilai untuk pembuatan sel batas. menggunakan 0 berarti perbatasan tidak digunakan. Sedangkan jika ingin menggunakan border, masukkan nilai 1
  • 1 Menunjuk kemana posisi akan berpindah setelah pembuatan sel selesai 1 menunjuk ke posisi bergerak di awal baris berikutnya. Jika Anda tidak ingin memindahkan garis, gunakan nilai 0
  • 'C' adalah tipe untuk menyelaraskan teks dalam sel. 'C' digunakan untuk flat tengah. Sedangkan 'L' digunakan untuk flat left dan 'R' untuk flat right
$pdf->Cell(8,6,'No',1,0,'C');
$pdf->Cell(20,6,'NIK',1,0,'C');
$pdf->Cell(50,6,'Nama',1,0,'C');
$pdf->Cell(30,6,'Jenis Kelamin',1,0,'C');
$pdf->Cell(30,6,'Tanggal Lahir',1,0,'C');
$pdf->Cell(30,6,'Jurusan',1,0,'C');
$pdf->Cell(20,6,'Umur',1,1,'C');
_

Sintaks di atas berfungsi untuk membuat kolom header tabel siswa. Semua kolom tinggi di set yang sama semuanya 6. Sedangkan lebarnya berbeda (karena panjang karakter tiap kolom nilainya berbeda). Angka 1 diatas menandakan saya menggunakan border sedangkan angka selanjutnya yaitu 0 menandakan tidak ada pemindahan posisi. Transfer posisi dilakukan di akhir sel lihat sintaks ini $pdf->Cell(20,6,'Age',1,1,'C');

Mohon perhatikan setting CELL untuk nilai perpindahan posisi cell, karena jika salah dalam menentukan nilai akan membuat cell terlihat tidak sesuai (berantakan)
create table mahasiswa (
    nik char(10) not null primary key,
    nama varchar(50) not null,
    jk char(1),
    tanggal_lhr date,
    jurusan char(2),
    umur int
    );
_0

Sintaks di atas berfungsi untuk mencetak nilai yang diambil dari database untuk setiap bidang. untuk lebar dan tinggi serta penggunaan border mengikuti sel yang kita buat sebelumnya untuk header tabel

create table mahasiswa (
    nik char(10) not null primary key,
    nama varchar(50) not null,
    jk char(1),
    tanggal_lhr date,
    jurusan char(2),
    umur int
    );
_1

Sintaks diatas adalah sintaks yang berfungsi untuk menampilkan dokumen PDF yang kita buat dapat ditampilkan di browser

Penjelasan pada sintaks lainnya saya anggap sama dengan penjelasan di atas. Anda dapat belajar berdasarkan apa yang telah saya jelaskan di atas

Artikel Lainnya. Membuat Paginasi di PHP

Saya sangat menyarankan Anda untuk membaca panduan penggunaan plugin fpdf melalui dokumentasi yang telah diterjemahkan ke dalam bahasa Indonesia. Anda bisa langsung mendownloadnya langsung di website resmi fpdf. org

Cara membuat laporan di php

Jika Anda menjalankan program di atas dan mengikuti langkah-langkah yang saya tunjukkan di atas, hasilnya akan seperti yang ditunjukkan pada gambar di bawah ini

Cara membuat laporan di php

Itulah cara belajar PHP kali ini tentang membuat laporan PDF dengan PHP dan MySQL menggunakan plugin FPDF. Semoga bermanfaat bagi Anda. Terima kasih