Silahkan Melihat Tutorial di website kami dengan nyaman ENJOY YOUR LIFE ☕

PHP :: Cara Membuat Laporan PDF dengan Codeigniter dan Html2Pdf


CodeigniterLaporan PDF. Pasti kebanyakan beberapa website bisnis atau e-commerce ada fitur untuk mencetak laporan-laporan untuk mengevaluasi kinerja perusahaan kersebut. Saat ini sudah banya pada pengembang pemograman website yang membuat plugin untuk membuat / mencetak laporan pdf seperti Html2Pdf, Mpdf, Fpdf, dan masih banyak lagi. Tapi pada catatan kali ini, saya menggunakan Html2Pdf sebagai plugin untuk membuat / mencetak laporan pdfnya. Langsung saja ikuti step-step berikut ini :
STEP 1 – INSTALASI
Pada tahap ini, kita akan menyiapkan hal-hal yang diperlukan.
  1. Download framework Codeigniternya : Download. Pada catatan ini, saya menggunakan Codeigniter 2.2
  2. Download plugin Html2Pdfnya : Download. Pada catatan ini, saya menggunakan Html2Pdf v4.03. Sebelumnya saya saranin pakai versi yang 4.03 saja, karena banyak laporan ke saya html2pdf versi terbaru cara installnya harus pake composer. Mohon maaf sebelumnya saya belum bisa update tutorial ini karena ada kesibukan lain, nanti kalau ada waktu saya akan update tutorial ini agar bisa jalan menggunakan versi terbaru.
  3. Buat sebuah folder baru dengan nama latihan_pdf pada xampp/htdocs/
  4. Copy dan Ekstrak file Codeigniter yang Anda download, lalu simpan di dalam folder latihan_pdf yang tadi Anda buat (xampp/htdocs/latihan_pdf/).
  5. Buat sebuah folder baru dengan nama assets pada folder latihan_pdf(xampp/htdocs/latihan_pdf/)
  6. Copy dan Ekstrak file Html2Pdf yang Anda download, lalu simpan di dalam folder assets yang tadi Anda buat (xampp/htdocs/latihan_pdf/assets/).
STEP 2 – BUAT DATABASE
Buat database dengan nama latihan, lalu buat sebuah tabel siswa dengan struktur tabel seperti berikut ini :
Struktur Tabel Siswa
1
2
3
4
5
6
7
8
CREATE TABLE IF NOT EXISTS `siswa` (
  `nis` varchar(11) NOT NULL,
  `nama` varchar(50) NOT NULL,
  `jenis_kelamin` varchar(10) NOT NULL,
  `telp` varchar(15) NOT NULL,
  `alamat` text NOT NULL,
  PRIMARY KEY (`nis`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Lalu insert beberapa data ke dalam tabel siswa tersebut. Datanya terserah Anda.
STEP 3 – KONFIGURASI
Karena dibuat dengan Codeigniter, pertama kita harus melakukan konfigurasi terlebih dahulu pada framework codeigniternya.
  1. Buka folder latihan_pdf/application/config/
  2. Buka file config.php
    Cari kode berikut ini :
    1
    $config['base_url'] = '';
    Ubah jadi seperti ini :
    1
    $config['base_url'] = 'http://localhost/latihan_pdf';
    Kode diatas digunakan untuk menset baseurlnya.
    Lalu simpan file tersebut.
  3. Buka file autoload.php
    Cari kode berikut ini :
    1
    2
    $autoload['libraries'] = array();
    $autoload['helper'] = array();
    Ubah jadi seperti ini :
    1
    2
    $autoload['libraries'] = array('database');
    $autoload['helper'] = array('file','url');
    Kode diatas digunakan untuk memuat (menload) class database, file, dan url.
    Lalu simpan file tersebut.
  4. Buka file routes.php
    Cari kode berikut ini :
    1
    $route['default_controller'] = "welcome";
    Ubah jadi seperti ini :
    1
    $route['default_controller'] = "main";
    Kode diatas digunakan untuk menset controller mana yang akan diload pertama kali. Secara default, Codeigniter telah menset default controller yaitu welcome. Disini kita set default controller menjadi main.
    Lalu simpan file tersebut.
  5. Buka file database.php
    Cari kode berikut ini :
    1
    2
    3
    4
    $db['default']['hostname'] = 'localhost'; // Nama host
    $db['default']['username'] = ''; // Username
    $db['default']['password'] = ''; // Password
    $db['default']['database'] = ''; // Nama database
    Ubah jadi seperti ini :
    1
    2
    3
    4
    $db['default']['hostname'] = 'localhost';
    $db['default']['username'] = 'root';
    $db['default']['password'] = ''; // Jika menggunakan password isi
    $db['default']['database'] = 'latihan'; // isi dengan latihan, karena sebelumnya kita buat database latihan
    Kode diatas digunakan untuk koneksi ke database.
    Lalu simpan file tersebut.
STEP 4 – BUAT MODEL
Sekarang kita akan membuat modelnya. berisi sebuah fungsi untuk menampilkan semua data siswa pada tabel siswa. Berikut kodenya :
1
2
3
4
5
6
7
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class Siswa_Model extends CI_Model {
    public function view(){
        return $this->db->get('siswa')->result();
    }
}
Lalu simpan pada folder latihan_pdf/application/models/ dengan namasiswa_model.php.
Penjelasan:
Pada kode diatas, kita membuat sebuah fungsi view(). dimana didalamnya terdapat kode :
1
return $this->db->get('siswa')->result();
Kode ini : $this->db->get(‘siswa’)->result(); berfungsi untuk menampilkan semua data pada tabel siswa. Struktur dasar penulisannya seperti ini : $this->db->get(‘nama_tabel’)->result();. Lalu pada kode diatas juga ada kode return, kode tersebut digunakan untuk mengeluarkan hasil dari sebuah fungsi. Pada kasus diatas, hasil yang dikeluarkan oleh return yaitu data-data siswa.
STEP 5 – BUAT CONTROLLER
Pada tahap ini, kita akan membuat controllernya. Berikut ini kodenya :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class Main extends CI_Controller {
     
    public function __construct(){
        parent::__construct();
         
        $this->load->model('siswa_model');
    }
     
    public function index(){
        $data['siswa'] = $this->siswa_model->view();
        $this->load->view('preview', $data);
    }
     
    public function cetak(){
        ob_start();
        $data['siswa'] = $this->siswa_model->view();
        $this->load->view('print', $data);
        $html = ob_get_contents();
        ob_end_clean();
         
        require_once('./assets/html2pdf/html2pdf.class.php');
        $pdf = new HTML2PDF('P','A4','en');
        $pdf->WriteHTML($html);
        $pdf->Output('Data Siswa.pdf', 'D');
    }
}
Lalu simpan pada folder latihan_pdf/application/controllers/ dengan nama main.php.
Penjelasan:
Pada controller ini, kita membuat 3 fungsi. fungsi pertama yaitu public function __construct(), fungsi ini berfungsi untuk menjalankan suatu aksi ketika controller main diload. Didalm fungsi ini, terdapat kode $this->load->model(‘siswa_model’);, kode tersebut berfungsi untuk memuat (meload) model siswa (yang pada step sebelumnya kita buat) agar kita bisa mengakses fungsi-fungsi yang ada didalam model tersebut.
Fungsi yang kedua yaitu public function index(). Dalam fungsi ini ada kode $data[‘siswa’] = $this->siswa_model->view();, kode tersebut digunakan untuk mengambil hasil query sql dari fungsi view() yang ada pada model siswa (siswa_model.php) lalu memasukannya ke dalam array data dengan index siswa ($data[‘siswa’]). Pada fungsi index() ini juga, terdapat kode $this->load->view(‘preview’, $data);. Kode tersebut berfungsi untuk memuat (meload) file preview.php (file ini akan kita buat pada step selanjutnya) dan mengirimkan array data ($data) tadi ke file tersebut.
Funsi yang ketiga yaitu public function cetak(). Dalam fungsi ini terdapat  kode berikut ini :
1
2
3
4
5
ob_start(); // Mulai
$data['siswa'] = $this->siswa_model->view(); // Ambil hasil query sql dari model siswa
$this->load->view('print', $data); // Load file print.php dan kirim $data['siswa'] ke file tersebut
$html = ob_get_contents(); // Masukan semua kode yang ada di print.php ke dalam $html
ob_end_clean(); // Selesai
Kode diatas berfungsi untuk mengambil hasil dari fungsi view() pada model siswa (siswa_model.php) kemudian mengirimkannya ke file print.php (file ini akan kita buat pada step terakhir). Lalu file print.php tadi dimuat (diload) dan dimasukan kedalam variabel $html. Pada fungsi cetak() juga ada kode berikut ini :
1
2
3
4
require_once('./assets/html2pdf/html2pdf.class.php'); // Load plugin html2pdfnya
$pdf = new HTML2PDF('P','A4','en'); // Settingan PDFnya
$pdf->WriteHTML($html); // Masukan kode htmlnya
$pdf->Output('Data Siswa.pdf', 'D'); // Cetak PDFnya
Kode diatas digunakan untuk mengkonversi kode html menjadi pdf. Dimulai dari kode require_once(‘./assets/html2pdf/html2pdf.class.php’);, kode ini berfungsi untuk memuat (meload) plugin html2pdfnya. Lalu kode $pdf = new HTML2PDF(‘P’,’A4′,’en’);, kode ini berfungsi memanggil fungsi __construct pada plugin html2pdf. Berikut ini adalah fungsi __construct yang kita panggil pada plugin html2pdfnya :
1
2
3
4
5
6
7
8
9
10
11
12
/**
 * Constructeur
 *
 * @param   string      $sens - orientasinya : landscape atau portrait
 * @param   string      $format - format kertasnya : A4, A5, dan lain-lain
 * @param   string      $langue - Bahasanya : en, fr, dan lain-lain
 * @param   boolean     $unicode - TRUE means clustering the input text IS unicode (default = true)
 * @param   String      $encoding - charset encoding; Default is UTF-8
 * @param   array       $marges - margins by default, in order (left, top, right, bottom)
 * @return  null
 */
public function __construct($sens = 'P', $format = 'A4', $langue='en', $unicode=true, $encoding='UTF-8', $marges = array(5, 5, 5, 8))
Lalu kode $pdf->WriteHTML($html);, kode ini berfungsi untuk menentukan apa yang ingin ditampilkan pada pdfnya. Struktur dasar penulisannya yaitu $pdf->WriteHTML(‘kode_htmlnya’);. Pada kasus ini, kita memasukan kode htmlnya kedalam variabel $html. Yang terakhir kode $pdf->Output(‘Data Siswa.pdf’, ‘D’);, kode tersebut berfungsi untuk menentukan nama file pdf yang kita buat. dan juga untuk menentukan mode apa yang ingin dilakukan ketika kode tersebut dipanggil. Contohnya disitu ada kode …,’D’);, Huruf D disitu berarti ketika kode dipanggil, maka lakukan proses download pada file pdfnya. sebenarnya ada banyak mode yang bisa kita lakukan, seperti tampilkan pdfnya dibrowser ketika kode itu dipanggil dan lain-lain (untuk lebih detailnya, langsung saja lihat dokumentasinya : Output a PDF File).
STEP 6 – BUAT FILE PREVIEW
Kali ini kita akan coba buat file previewnya seperti gambar dibawah ini :
Preview Berikut ini kodenya :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<html>
<head>
    <title>Cetak PDF</title>
</head>
<body>
<h1 style="text-align: center;">Data Siswa</h1>
<a href="<?php echo base_url("index.php/main/cetak"); ?>">Cetak Data</a><br><br>
<table border="1" width="100%">
<tr>
    <th>No</th>
    <th>NIS</th>
    <th>Nama</th>
    <th>Jenis Kelamin</th>
    <th>Telepon</th>
    <th>Alamat</th>
</tr>
<?php
if( ! empty($siswa)){
    $no = 1;
    foreach($siswa as $data){
        echo "<tr>";
        echo "<td>".$no."</td>";
        echo "<td>".$data->nis."</td>";
        echo "<td>".$data->nama."</td>";
        echo "<td>".$data->jenis_kelamin."</td>";
        echo "<td>".$data->telp."</td>";
        echo "<td>".$data->alamat."</td>";
        echo "</tr>";
        $no++;
    }
}
?>
</table>
</body>
</html>
Lalu simpan pada folder latihan_pdf/application/views/ dengan nama preview.php
Pada kode diatas terdapat kode foreach($siswa as $data){, kode tersebut akan manmpilkan satu oer satu data siswa sampai data siswa yang terakhir.
STEP 7 – BUAT FILE PRINT
File print ini sama saja dengan file preview.php, hanya bedanya kita ganti link Cetak PDF dengan tanggal pencetakan. Copy and Paste saja kode preview.php, lalu cari kode berikut ini :
1
<a href="<?php echo base_url("index.php/main/cetak"); ?>">Cetak Data</a><br><br>
ganti kode tersebut jadi seperti ini :
1
<?php echo "Tanggal : ".date('d-m-Y'); ?><br><br>
Lalu simpan pada folder latihan_pdf/application/views/ dengan nama print.php.
Sekian untuk catatan kali ini, semoga bisa bermanfaat dan membantu. Jika ada yang kurang dimengerti, jangan sungkan untuk bertanya. Terimakasih.




2 comments:

PHP :: Cara Membuat Laporan PDF dengan Codeigniter dan Html2Pdf