Membuat Aplikasi Cetak Tanda Pembayaran/ Kwitansi - Bagian 2

0 Comments


Pada tulisan sebelumnya, kita sudah membuat tampilan formulir isian dari aplikasi cetak kwitansi kita. Nah, pada tulisan kali ini kita akan membuat inti aplikasi tersebut, yaitu bagian yang membuat tampilan siap cetak.
Oke, saya tidak akan menuliskan coding PHP dari file konversi.php (lihat daftar file pada tulisan sebelumnya) karena pada beberapa posting yang lalu kita sudah membuat contoh koding konversi ini (dalam bahasa Java). Dan saya kira di PHP tidak akan jauh berbeda dengan di Java, karena pada dasarnya algoritma yang kita gunakan sama, yaitu algoritma rekursi untuk merubah angka menjadi bentuk terbilang. Tapi kalau anda ingin lihat kode lengkapnya seperti apa, di akhir serial tulisan ini saya akan melampirkan kode sumber aplikasi kwitansi ini dan bisa didownload oleh anda. Pada intinya, file konversi.php adalah Class PHP yang berisi method konversi dengan cara rekursi.

Membuat file pengaturan

Sampai di sini saya anggap anda sudah membuat file konversi.php pada folder lib. Lalu yang akan kita buat sekarang adalah file pengaturan.php yang berfungsi mengatur parameter-parameter inti dari aplikasi ini, misalnya nama perusahaan yang ditampilkan di blangko kwitansi, alamat, dan nomor telpon serta judul kwitansi pada bagian atas. Listing lengkap kode PHP-nya seperti berikut :

Class Pengaturan{ 
 function __construct(){ 
 $this->atur['namapt']="PT. MAJU TERUS GAK MAU MUNDUR"; 
 $this->atur['alamat']="Jl. Hayam Wuruk No. 56 \nJakarta Barat";//pastikan ada tanda \n untuk pemisah nama jalan dan nama Kota agar tampilan lebih baik 
 $this->atur['telpon']="021-6490034"; 
 $this->atur['judul']="TANDA BUKTI PEMBAYARAN"; 
 $this->atur['kota']="Jakarta"; 
} 
}

Membuat file yang meng-handle fungsi cetak ke kertas


Setelah itu, kita buat file cetak.php-nya. Include / require-kan semua file yang diperlukan yaitu pengaturan.php, serta fpdf/fpdf.php dan konversi.php di folder lib.

Buat 3 objek dari kelas dalam masing-masing file yang sudah kita require sebelumnya (lihat baris ke-8 sampai 10). Pada bagian objek fpdf, parameter 'L' maksudnya kita buat dalam posisi landscape, 'mm' adalah satuan ukuran yang digunakan yaitu milimeter, 'A5' adalah ukuran kertas kwitansinyayaitu setengah ukuran kuarto/A4.

Kemudian dari baris ke 4 sampai 7 kita buat variabel yang mengambil nilai dari kotak formulir isian dengan method GET. Selanjutnya pada baris 11 - 12 kita membuat kostumasi penamaan bulan agar sesuai penulisan dalam Bahasa Indonesia. Setelah semuanya selesai, waktunya untuk membuat inti dari file cetak.php. Yaitu fungsi yang menampilkan ke layar browser kita hasil akhir kwitansi yang sudah terformat dan siap dicetak ke kertas. Kodenya dimulai dari baris 17 sampai akhir

require_once("lib/konversi-angka.php"); 
require_once("lib/fpdf/fpdf.php"); 
require_once("pengaturan.php"); 
$nama=$_GET['nm']; 
$uang=$_GET['jml']; 
$untuk=$_GET['utk']; 
$petugas=$_GET['pet']; 
$konversi=new Konversi(); 
$pengaturan=new Pengaturan(); 
$pdf=new FPDF('L','mm','A5');/*L untuk tampilan Landscape, A5 adalah ukuran kertasnya*/
$arraybln=array('Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember'); 
$bln=$arraybln[date('n')-1]; 
$thn=date('Y');
$tgl=date('d'); 
/*membuat file PDF untuk dicetak*/ 
$pdf->setMargins(10,6,10); 
$pdf->AddPage(); 
$pdf->SetFont('Arial','B',13); 
$pdf->Cell(0,5,$pengaturan->atur['namapt'],0,1,'L'); 
$pdf->SetFont('Arial','',11); 
$pdf->MultiCell(0,5,$pengaturan->atur['alamat']." \n".$pengaturan->atur['telpon']); 
$pdf->SetLineWidth(0.8);
$pdf->Line(10,28,199,28);
$pdf->Ln(8); 
$pdf->SetFont('Arial','B',13);
$pdf->Cell(60,5,'',0,0,''); 
$pdf->Cell(0,5,$pengaturan->atur['judul'],0,1,'L'); 
$pdf->SetLineWidth(0.4); 
$pdf->Rect(60,30,80,13);/*ubah ukuran Kotak Judul -> Rect(sumbu x, sumbu y, lebar kotak,tinggi kotak)*/ 
$pdf->SetFont('Arial','',11);
$pdf->Ln(10); 
$pdf->Cell(45,5,'Telah Terima Dari :',0,0,'L'); 
$pdf->SetFont('Arial','',12);
$pdf->Cell(70,7,strtoupper($nama),0,1,'J'); 
$pdf->Line(50,56,150,56);
$pdf->Rect(50,61,115,10); 
$pdf->Rect(50,74,115,10);
$pdf->Ln(6); 
$pdf->Cell(40,20,'Uang Sejumlah :',0,0,'L'); 
$pdf->MultiCell(113,11,$konversi->Terbilang($uang)." RUPIAH",'J'); 
if(strlen($konversi->Terbilang($uang))>40)
$lnBreak=6;
else
$lnBreak=16;
$pdf->Ln($lnBreak); 
$pdf->Cell(45,5,'Untuk Pembayaran :',0,0,'L');
$pdf->Cell(70,7,strtoupper($untuk),0,1,'J'); 
$pdf->Line(50,97,150,97); 
$pdf->Ln(6); 
$pdf->Cell(116,5,'',0,0,'');
$pdf->SetFont('Arial','U',12); 
$pdf->Cell(0,5,$pengaturan->atur['kota'].', '.$tgl.' '.$bln.' '.$thn,0,1,'L'); 
$pdf->Ln(10); 
$pdf->SetFont('Arial','',14); 
$pdf->Cell(116,5,'Rp. '.number_format($uang,0,",",".").',-',0,1,'L'); 
$pdf->Rect(8,116,50,10); 
$pdf->SetFont('Arial','',12); 
$pdf->Cell(140-strlen($petugas),5,'',0,0,'L'); 
$pdf->SetFont('Arial','BU',14);
$pdf->Cell(30,5,'( '.strtoupper($petugas).' )',0,1,'L'); 
$pdf->Output();

Baik, kurang lebih seperti itu kodenya sehingga kita bisa mencetak kwitansi sesuai yang format yang kita inginkan.Pada dasarnya, koding tsb menampilkan output file PDF dengan cara mengambil parameter dari file pengaturan.php dan parameter dari url. Dengan mengetahui parameter url-nya, kita juga dapat mengakses / membuat output PDF Kwitansi dengan cara mengetikkan alamat ini di jendela browser : http://localhost/nama_direktori_utama/cetak.php?nm=Nama_Penerima&jml=Jumlah_Uang&utk=Peruntukan_Pembayaran&pet=Nama_Petugas.

Kira-kira tampilan yang diperoleh di Jendela browser anda adalah seperti berikut:
Tampilan aplikasi cetak kwitansi dengan php


Untuk meng-handle pemeriksaan pada kotak formulir yang saya tulis pada posting sebelumnya, saya mengguanakan Javascript. Kode lengkap Javascript-nya bisa anda dapatkan pada tulisan saya selanjutnya. Karena saya tidak menjelaskannya di sini, tetapi anda bisa mempelajari kode sumber lengkapnya setelah men-download di tulisan berikutnya. Semoga bermanfaat.
Catatan:
Pada daftar kode di atas, saya tidak menampilkan tag pembuaka dan penutup di php. Silakan anda tambahkan tag pembuka php < ?php pada bagian paling atas kode, dan tambahkan tag penutup php, ?> pada bagian akhir.
Update: Untuk mendownload kode sumber lengkap-nya bisa diambil di sini
Baca Juga : Aplikasi Cetak dan Arsip Kwitansi plus Nomor Kwitansi

Baca Tulisan Lainnya Juga :)