Jika pada posting lalu (https://blogit.bimosaurus.com/2012/04/08/contoh-membuat-laporan-pdf-dengan-php/) telah terpaparkan tentang pembuatan laporan download PDF dengan menggunakan PHP, kali ini akan dibahas bagaimana menyusun reporting dengan PHP dalam format PDF yang susunan datanya diambil dari database MySQL. Tentu saja hal ini akan sangat berguna bagi para developer sistem informasi, karena pada umumnya sistem informasi harus memiliki proses reporting data. Proses pembuatan reporting PDF dengan menggunakan PHP ini dapat dilakukan dengan menggunakan FPDF seperti posting sebelumnya. Hanya saja prosesnya akan ditambah dengan proses pengambilan data dari database server MySQL. Proses ini tidak sulit, karena hanya menggabungkan pengambilan data, dan selanjutnya menampilkannya dalam bentuk PDF. Itu saja. Berikut contoh pengambilan data.
Katakan, kita memiliki tabel data pegawai dengan format seperti berikut:
nip | nama | honor | status_ambil |
---|---|---|---|
10001 | Susanto | Rp. 1000000 | Belum |
10002 | Susanti | Rp. 1000000 | Sudah |
10003 | Marwoto | Rp. 2000000 | Sudah |
10004 | Gunadi | Rp. 1500000 | Belum |
10005 | Nur Eko | Rp. 1000000 | Belum |
Dengan format data demikian, maka pengambilan data dari dalam tabel dapat dilakukan dengan sintaks MySQL demikian :
SELECT * FROM `pegawai`
Begitu pula, sintaks ini akan dijadikan Query yang akan dieksekusi oleh PHP. Perkiraan Commandnya adalah sebagai berikut:
$sql = "SELECT * FROM `pegawai`";
$query = mysql_query( $sql );
while( $result=mysql_fetch_array( $query ) ){
//tampilkan
}
//telah diedit, hasil koreksi dari mas boyan_13@yahoo.co.id... tx
Dengan melakukan kombinasi perintah dengan pembuatan reporting PDF, maka dapat dibuat script seperti berikut:
ob_start();
define('FPDF_FONTPATH','libs/fpdf/font/');
require('libs/fpdf/fpdf.php');
if( mysql_connect( "localhost","reporting","reporting" ) ){
mysql_select_db( "kepegawaian" );
}else{
echo "maaf, data gagal";
}
class PDF extends FPDF {
function Header() {
$this->Image('logo_print.jpg',2,1,2);
$this->SetFont('Arial','B',11);
$this->Cell(0,0.75,' TUKANG HRD ',0,0,'C');
$this->Ln();
$this->SetFont('Arial','B',14);
$this->Cell(0,0.75,'TOKO X',0,0,'C');
$this->Ln();
$this->SetFont('Arial','',9);
$this->Cell(0,0.5,'Jl. Soekarno Hatta KM 100 Antar Bermuntah Telp (01234)123456',0,0,'C');
$this->Ln();
$this->Ln();
$this->SetFont('Arial','',14);
$this->Line(1, 4, 21, 4);
$this->Ln();
$this->SetFont('Arial','B',11);
$this->Cell(0,0.75,'HRD',0,0,'C');
$this->Ln();
}
}
$pdf=new PDF('P','cm','Letter');
$pdf->Open();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetMargins(1.5,1,1.5);
$pdf->SetFont('Arial','B',12);
//membuat kop tabel
$x=$pdf->GetY();
$pdf->SetY($x+1);
$pdf->SetFont('Courier','B',10);
$pdf->Cell(5,0.5,'NIP',1,0,'L');
$pdf->Cell(5,0.5,'Nama',1,0,'L');
$pdf->Cell(5,0.5,'Honor',1,0,'L');
$pdf->Cell(5,0.5,'Status Ambil',1,0,'L');
//query dan arraying
$sql ="SELECT * FROM `pegawai`";
$query = mysql_query( $sql );
while( $result= mysql_fetch_array( $query )){
$nip = $result['nip'];
$nama = $result['nama'];
$honor = $result['honor'];
$status_ambil = $result['status_ambil'];
$pdf->SetFont('Courier','B',10);
$pdf->Cell(5,0.5,'$nip',1,0,'L');
$pdf->Cell(5,0.5,'$nama',1,0,'L');
$pdf->Cell(5,0.5,'$honor',1,0,'L');
$pdf->Cell(5,0.5,'$status_ambil',1,0,'L');
}
$pdf->Output();
Berikut kira-kira hasilnya akan seperti demikian : https://blogit.bimosaurus.com/demo/reporting.php
Semoga berguna