Sunday, June 21, 2009

Mengenerate Laporan dari database mysql Menggunakan fpdf dan PHP

Dalam aplikasi berbasis web ataupun desktop yang berhubungan dengan databse pasti kita diminta untuk membuat modul laporan.terdapat banyak format yang dapat kita pilih dalam pembuatan laporan aplikasi berbasis web,bisa dengan html (dan css), CSV, excel dll. tapi pada tutorial kali ini kita akan memanfaatkan sebuah library php(fpdf) untuk membuat laporan tersebut. yang nantinya format laporannya berbentuk PDF(potable document format).dan adapun langkah-langkahnya download FPDF disini kemudian buat direktori baru di derektori root(htdocs) dengan nama COBA_FPDF. Karena saya menggunakan XAMPP maka direktori htdocs ada di C:\xampp\htdocs .setelah itu Extract FPDF-nya di derektori COBA_FPDF.

Selanjutnya kita akan memmbuat databasenya, sebagai contoh kita akan membuat database mahasiswa. kalo pada artikle-artikle sebelumnya adalam pembuatan databsenya kita menggunakan sql editor seperti MySQL-Front atau phpMyadmin, maka pada tutoy kali ini kita akan mencoba membuat databasenya menggunajkan CMD(Command Prompt).tapi sebelum kita menuliskan perintah2 sql di Command Prompt, pastikan dulu bahwa sql dan aphace-nya sudah ranning.dan karena saya menggunakan XAMPP, jadi untuk mengetahi aapakan sql-nya sudah ranning atau belum gunakan XAMPP Control Panel.jelasnya seperti gambar di bawah ini :
















Kemudian tuliskan perintah di bawah ini di Command Prompt, untuk masuk ke direktori mysql :

cd \xampp\mysql\bin (enter) dan untuk masuk ke mysql gunakan perintah ini mysql -u root –p (enter)

maka kita akan dimitai untuk memasukkan password,masukkan password mysqlnya jika ada.dan jika mysqlnya tidak ada passwordnya langsung saja tekan enter.dan kalau anda berhasil masuk, maka akan

ada pesan seperti ini Welcome to the MySQL monitor” . dan untuk membuat databasenya gunakan perintah sql di bawah ini :

CREATE DATABASE mahasiswa;

USE mahasiswa;

CREATE TABLE `data_mahasiswa`(

`nim` varchar(12) NOT NULL,

`nama` varchar(100) collate latin1_general_ci NOT NULL,

`alamat` varchar(100) collate latin1_general_ci NOT NULL,

PRIMARY KEY (`nim`)

);

INSERT INTO `data_mahasiswa` (`nim`, `nama`, `alamat`) VALUES

('0612502526', 'faiz fadli','jl ulujamixxxxxx'),

('0614500569', 'Fitri Meiyanti','jl prnyelxxxxxx tomangxxxxxx');

Gunakan perintah ” SELECT * FROM data_mahasiswa; ” untuk menampilkan data yang sudah di masukkan ke database.

Database sudah dibuat, selanjutnya kita buat satu file dengan nama index.php dan save di direktori COBA_FPDF.kopi paste codedi bawah ini ke index.php :

1

2 $host ="localhost";

3 $user="root";

4 $password="";

5 $database="mahasiswa";

6 mysql_connect($host,$user,$password) or die("Koneksi server gagal");

7 mysql_select_db($database);

8

9 //Queri untuk Menampilkan data

10 $query ="SELECT * FROM data_mahasiswa";

11 $db_query = mysql_query($query) or die("Query gagal");

12 //Variabel untuk iterasi

13 $i = 0;

14 //Mengambil nilai dari query database

15 while($data=mysql_fetch_row($db_query))

16 {

17 $cell[$i][0] = $data[0];

18 $cell[$i][1] = $data[1];

19 $cell[$i][2] = $data[2];

20 $i++;

21 }

22 require('fpdf.php');

23

24 class PDF extends FPDF

25 {

26 //Fungsi Untuk Membuat Header

27 function Header()

28 {

29 //Pilih font Arial bold 15

30 $this->SetFont('Arial','B',15);

31 //Geser ke kanan

32 $this->Cell(80);

33 //Judul dalam bingkai

34 $this->Cell(30,10,'Title',1,0,'C');

35 //Ganti baris

36 $this->Ln(1);

37 }

38

39 //Fungsi Untuk Membuat Footer

40 function Footer()

41 {

42 //Position at 1.5 cm from bottom

43 $this->SetY(-15);

44 //Arial italic 8

45 $this->SetFont('Arial','I',8);

46 //Page number

47 $this->Cell(0,10,'Halaman ke : '.$this->PageNo(),0,0,'C');

48 }

49 }

50

51 $pdf = new PDF('P','cm','A4');

52 $pdf->Open();

53 $pdf->AddPage();

54 $pdf->SetFont("Arial","B",12);

55 $pdf->Cell(16,1,'Laporan Data Mahasiswa','LRTB',0,'C');

56 $pdf->Ln();

57 $pdf->Cell(1,1,'No','LRTB',0,'C');

58 $pdf->Cell(3,1,'NIM','LRTB',0,'C');

59 $pdf->Cell(6,1,'NAMA','LRTB',0,'C');

60 $pdf->Cell(6,1,'ALAMAt','LRTB',0,'C');

61 $pdf->Ln();

62

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

64 for($j=0;$j<$i;$j++)

65 {

66 //menampilkan data dari hasil query database

67 $pdf->Cell(1,1,$j+1,'LBTR',0,'C');

68 $pdf->Cell(3,1,$cell[$j][0],'LBTR',0,'C');

69 $pdf->Cell(6,1,$cell[$j][1],'LBTR',0,'C');

70 $pdf->Cell(6,1,$cell[$j][2],'LBTR',0,'C');

71 $pdf->Ln();

72 }

73 //menampilkan output berupa halaman PDF

74 $pdf->Output();

75 ?>

Penjelasan Dari Code di Atas

Ø function Footer()Metode ini digunakan untuk menampilkan footer. Metode ini dipanggil secara otomatis oleh AddPage()

Ø function Header()Metode ini digunakan untuk menampilkan header. Metode ini dipanggil secara otomatis oleh AddPage() dan tidak disarankan untuk dipanggil langsung dalam aplikasi. Implementasi metode ini dalam FPDF adalah kosong, jadi Anda harus membuat sub class dan menimpanya untuk mendapatkan hasil sesuai keinginan.

Ø AddPage();Menambahkan halaman baru ke dalam dokumen. Jika halaman sudah ada, maka metode Footer() dipanggil terlebih dahulu untuk menampilkan footer. Kemudian halaman ditambahkan, posisi sekarang diset ke kiri atas sesuai margin kiri dan margin atas, dan Header() dipanggil untuk menampilkan header.

Ø SetFont('Arial','I',8);

SetFont('font family(arial,tahoma,dll)','font style(B,I,U)',Ukuran Font);

Mengeset font yang digunakan untuk menampilkan teks. Anda harus memanggil metode ini minimal sekali sebelum menampilkan teks atau dokumen yang dibuat dianggap tidak valid.

style

B = Bold
I = italic
U = underline

Family

Courier
Helvetica atau Arial
Times
Symbol(simbol) dan lain-lain.

Ø Ln(1); Ln([float h]) Ganti baris. Nilai absis menjadi sama dengan margin kiri dan ordinat berubah dan ditambah dengan nilai yang diberikan sebagai parameter.

Ø Cell(1,1,'No','LRTB',0,'C');

Cell(float w [, float h [, string txt [, mixed border [, int ln [, string align [, boolean fill [, mixed link]]]]]]])

Membuat sel (area berbentuk kotak) dengan pilihan garis pembatas (border), warna latar (background) dan teks. Pojok kiri atas sel menunjukkan posisi sekarang. Teks dapat diatur perataannya. Setelah metode ini dipanggil, posisi sekarang berpindah ke kanan atau ke baris berikutnya. Anda juga bisa memberikan/memasukkan link ke dalam teks.
Jika perpindahan halaman otomatis aktif dan sel melewati batas, maka perpindahan halaman akan dilakukan terlebih dahulu sebelum menampilkan sel
.)

Parameter

w = Lebar sel. Jika nilainya 0, sel akan melebar ke margin kanan.

h = Tinggi sel. Nilai default: 0.

txt = Teks yang akan ditampilkan. Nilai default: teks kosong.

border = Menunjukkan apakah pembatas sel (bingkai) akan ditampilkan atau tidak.

Nilainya adalah:

· 0 : tidak menampilkan pembatas

· 1 : menampilkan pembatas

atau string dengan karakter berikut (urutan bebas):

· L : kiri

· T : atas

· R : kanan

· B : bawah

Nilai default: 0.

Ø PageNo() Mengembalikan nomor halaman sekarang.

Untuk Melihat hasil dari kode di atas tuliskan : localhost/COBA_FPDF/ di browser kesayangan anda dan ini hasilnya :




















Download Source code-nya disini

5 comments:

ical said...

mas klw mau nampilin file dot pdf hasil uploadtan gmn?
klw yg di atas kan menampilkan data ke bentuk pdf..

F2VM CODER said...

hmm...
mungkin gini x ya....

<a href='namafile.pdf'>tampilkan</a>

coba aja.....

agustri said...

saya coba ya gan.

Anonymous said...

saya udah coba fpdfnya.. kalo itu kan seumpama datanya panjang ga bisa otomatis ke bawah sendiri, tapi malah nabrak data di kolom berikutnya ...
Gimana caranya agar bisa otomatis..

Minta pencerahannya..

F2VM CODER said...

coba deh baca yang ini :)

http://achmatim.net/2012/02/08/membuat-auto-wrap-content-pada-tabel-dengan-fpdf-dan-php/

Toggle

About Me

My Photo
ganteng,pinter,dewasa,mandiri,suka mencoba hal-hal Baru,suka tantangan.