Tutorial Codeigniter Part 24 – Membuat Laporan PDF dengan DOMPDF di Codeigniter
Selamat datang di warung belajar, dalam tutorial ini kita akan melanjutkan pembahasan dari seri tutorial Codeigniter, pada tutorial ini kita akan belajar membuat laporan PDF dengan menggunakan DOMPDF di Codeigniter 3.
DOMPDF adalah library yang dapat digunakan untuk membuat laporan PDF, nah Codeigniter 3 bisa menggunakan library DOMPDF, kita akan bahas dalam tutorial ini.
Untuk membuat laporan PDF menggunakan Dompdf di Codeigniter, langkah – langkahnya adalah sebagai berikut :
Persiapkan Project Codeigniter
Untuk Langkah awal silahkan install Codeigniter dulu di komputer anda, untuk tutorial cara instalasi Codeigniter, bisa dilihat ditutorial kita sebelumnya : Cara Menginstall Codeigniter
pada contoh ini untuk project codeigniter, saya beri nama foldernya adalah belajarcodeigniter
Setting Autoload Composer
Kita akan menginstall Dompdf dengan menggunakan Composer, karena itu kita perlu mengaktifkan autoload untuk composer.
Silahkan buka file dengan nama application/config/config.php, kemudian isi bagian autoload composer menjadi seperti dibawah ini :
1 |
$config['composer_autoload'] = "vendor/autoload.php"; |
Install Dompdf dengan Composer
Pastikan anda sudah menginstall Composer, untuk instalasi Composer bisa download disini : Klik Disini
Berikutnya buka Command Prompt / Terminal, dan akses folder project belajarcodeigniter, lalu tuliskan perintah seperti berikut ini :
1 |
composer require dompdf/dompdf |
Tunggu proses download dompdf melalui composer.
Membuat Library untuk kebutuhan DomPDF
Berikutnya kita akan membuat library sendiri untuk kebutuhan dompdf, agar dompdf dapat cepat digunakan saat dibutuhkan.
Silahkan buat file dengan nama pdf.php didalam folder application/libraries
untuk isi codenya seperti berikut ini :
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); /** * CodeIgniter DomPDF Library * * Generate PDF's from HTML in CodeIgniter * * @packge CodeIgniter * @subpackage Libraries * @category Libraries * @author Ardianta Pargo * @license MIT License * @link https://github.com/ardianta/codeigniter-dompdf */ use Dompdf\Dompdf; class Pdf extends Dompdf{ /** * PDF filename * @var String */ public $filename; public function __construct(){ parent::__construct(); $this->filename = "laporan.pdf"; } /** * Get an instance of CodeIgniter * * @access protected * @return void */ protected function ci() { return get_instance(); } /** * Load a CodeIgniter view into domPDF * * @access public * @param string $view The view to load * @param array $data The view data * @return void */ public function load_view($view, $data = array()){ $html = $this->ci()->load->view($view, $data, TRUE); $this->load_html($html); // Render the PDF $this->render(); // Output the generated PDF to Browser $this->stream($this->filename, array("Attachment" => false)); } } |
Kode diatas kita membuat class PDF dengan extends di class Dompdf.
Persiapkan database
Dalam contoh ini kita akan belajar untuk menampilkan data dari database, dan ditampilkan dalam bentuk PDF, sehingga kita perlu mempersiapkan database terlebih dahulu.
Dalam contoh ini kita buat database dengan nama db_siswa, dan kita juga membuat tabel siswa didalamnya dengan kolom sebagai berikut :
- kd_siswa (Primary Key, Int, Auto Increment)
- nama (Varchar 255)
- kelas (Varchar 5)
- jenis_kelamin (Enum (‘PRIA’,’WANITA’))
- alamat (Varchar 255)
Berikutnya kita akan isi tabel dengan data sebagai berikut :
- Data 1
kd_siswa(1), nama (Budi Hermawan), kelas (3MM1), jenis_kelamin(PRIA), alamat (Wonocolo, Surabaya)
- Data 2
kd_siswa(2), nama (Cika Larasati), kelas (3MM1), jenis_kelamin(WANITA), alamat (Sedati, Sidoarjo)
disini kita tidak membahas detail teknis bagaimana membuat database dan tabel didalamnya ya.. anda bisa gunakan Query SQL berikut ini untuk dapat membuat database disertai tabelnya :
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
-- phpMyAdmin SQL Dump -- version 5.0.2 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Generation Time: Jun 11, 2020 at 01:01 PM -- Server version: 10.4.11-MariaDB -- PHP Version: 7.4.5 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `db_siswa` -- CREATE DATABASE IF NOT EXISTS `db_siswa` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE `db_siswa`; -- -------------------------------------------------------- -- -- Table structure for table `siswa` -- CREATE TABLE `siswa` ( `kd_siswa` int(11) NOT NULL, `nama` varchar(255) NOT NULL, `kelas` varchar(5) NOT NULL, `jenis_kelamin` enum('PRIA','WANITA') NOT NULL, `alamat` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Dumping data for table `siswa` -- INSERT INTO `siswa` (`kd_siswa`, `nama`, `kelas`, `jenis_kelamin`, `alamat`) VALUES (1, 'Budi Hermawan', '3MM1', 'PRIA', 'Wonocolo, Surabaya'), (2, 'Cika Larasati', '3MM1', 'WANITA', 'Sedati, Sidoarjo'); -- -- Indexes for dumped tables -- -- -- Indexes for table `siswa` -- ALTER TABLE `siswa` ADD PRIMARY KEY (`kd_siswa`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `siswa` -- ALTER TABLE `siswa` MODIFY `kd_siswa` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; |
Setting Database di Codeigniter
Berikutnya kita akan setting codeigniter agar dapat mengakses database, silahkan buka file application/config/autoload.php, lalu ubah code dibawah ini :
1 |
$autoload['libraries'] = array(); |
Menjadi
1 |
$autoload['libraries'] = array('database'); |
Berikutnya silahkan buka file application/config/database.php
lalu konfigurasi settingan database, sebagai contoh seperti berikut ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'db_siswa', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE ); |
dalam contoh diatas saya hanya lakukan konfigurasi pada :
- hostname : localhost
- username : root
- password : saya kosongi
- database : db_siswa
Membuat Model
Karena nanti kita melakukan komunikasi dengan database sehingga kita perlu membuat model, silahkan buat model dengan nama Siswa_model.php didalam folder application/models untuk codenya adalah sebagai berikut :
1 2 3 4 5 6 7 8 9 10 |
<?php Class Siswa_model extends CI_Model{ function getData() { $data_siswa = $this->db->get('siswa'); return $data_siswa->result(); } } ?> |
Keterangan :
Kita buat class dengan nama Siswa_model dengan extends class CI_Model.
lalu didalamnya kita buat method getData, didalamnya ada perintah untuk get data ditabel siswa (Line 6) dan kita return hasil data tersebut (Line 7)
Membuat Controller
Berikutnya kita akan membuat controller dimana didalamnya kita akan buat method yang nantinya akan kita akses di browser untuk menampilkan laporan PDF, dengan menggunakan Library DomPDF
buat controller dengan nama Siswa.php didalam folder application/controllers/Siswa.php, dengan code seperti berikut ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Siswa extends CI_Controller { public function index() { $this->load->model('siswa_model'); $data['siswa'] = $this->siswa_model->getData(); $this->load->library('pdf'); $this->pdf->setPaper('A4', 'potrait'); $this->pdf->filename = "laporan-data-siswa.pdf"; $this->pdf->load_view('laporan_siswa', $data); } } |
Keterangan :
- Kita buat class dengan nama Siswa yang extends di class CI_Controller
- didalamnya kita buat method index (Line 6)
- Kita load model siswa_model (Line 8)
- kita mengakses method getData didalam model siswa_model, untuk mendapatkan data siswa, dan hasilnya kita simpan pada array $data di elemen siswa (Line 9)
- kita load library pdf, dimana library ini merupakan library yang sudah extends dari library dompdf (Line 10)
- kita set kertasnya menggunakan ukuran A4, dengan mode potrait (Line 11)
- kita set nama file pdf dengan nama “laporan-data-siswa.pdf” (Line 12)
- kita set view untuk membuat report file PDF, untuk nama file view laporan_siswa, dan passing variabel $data untuk digunakan di view laporan_siswa (Line 13)
Membuat file View
Berikutnya kita buat file view, dengan nama laporan_siswa, file view berada application/views
untuk isi codenya adalah sebagai berikut :
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 |
<h2><center>Data Siswa</center></h2> <hr/> <table border="1" width="100%" style="text-align:center;"> <tr> <th>No</th> <th>Nama</th> <th>Kelas</th> <th>Jenis Kelamin</th> <th>Alamat</th> </tr> <?php $no = 1; foreach($siswa as $row) { ?> <tr> <td><?php echo $no++; ?></td> <td><?php echo $row->nama; ?></td> <td><?php echo $row->kelas; ?></td> <td><?php echo $row->jenis_kelamin; ?></td> <td><?php echo $row->alamat; ?></td> </tr> <?php } ?> </table> |
Keterangan :
- untuk membuat tampilan report dalam bentuk PDF, kita cukup menuliskan perintah HTML, disertai PHP untuk menampilkan data, dimana akan otomatis akan dikonversi menjadi bentuk PDF.
- kita ingin menampilkan laporan PDF dalam bentuk tabel, maka kita bisa menggunakan perintah HTML untuk membuat tabel seperti yang kita tuliskan di line 3 – 26
- Line 14 kita menggunakan perintah foreach untuk extract variabel $siswa, dimana setiap data siswa akan diwakili dengan variabel $row.
- Line 17 kita menampilkan nomor dengan variabel $no
- Line 18 kita menampilkan isi kolom nama
- Line 19 kita menampilkan isi kolom kelas
- Line 29 kita menampilkan isi kolom jenis_kelamin
- Line 30 kita menampilkan isi kolom alamat
Melakukan testing menampilkan laporan PDF
Berikutnya kita akan coba mengakses method di controller siswa untuk menampilkan laporan PDF, dengan alamat : localhost/belajarcodeigniter/index.php/siswa
maka tampilannya adalah sebagai berikut ini :
maka akan ditampilkan laporan berupa file PDF, dimana bentuk laporan ini adalah tabel HTML yang dikonversi menjadi bentuk PDF.
Untuk teman teman yang ingin download source code hasil : Download Source Code
Baik sekian dulu tutorial kali ini, kita sudah belajar untuk membuat report PDF dengan DomPDF dengan Codeigniter 3, jika ada yang ingin didiskusikan silahkan di kolom komentar
ANDA INGIN SERIUS BELAJAR FRAMEWORK CODEIGNITER ?
Seperti yang anda ketahui bahwa saat ini skill di bidang pemrograman sangatlah dibutuhkan, salah satunya adalah pemograman PHP.
Untuk anda yang ingin serius belajar pemrograman PHP, Khususnya menggunakan Framework PHP Codeigniter, Warung Belajar Memiliki Beberapa Paket Tutorial yang bisa membantu anda dalam belajar menggunakan Framework PHP Codeigniter, dari mulai step – step dasar hingga mampu membuat aplikasi berbasis web dengan menggunakan Framework PHP Codeigniter.
Paket Tutorial ini berisi video tutorial belajar pemrograman berbahasa indonesia, cocok sekali untuk anda yang sedang belajar Framework PHP Codeigniter, bahkan untuk orang awam sekalipun.
Paket Tutorial ini juga dilengkapi dengan study kasus yang akan mempermudah pemahaman anda dalam belajar pemrograman, Mari berinvestasi untuk menambah skill dalam menguasai Framework PHP Codeigniter
-
Tutorial Singkat Langsung Jago Framework Codeigniter
Rp98,000 Add to cart -
Tutorial Seminggu Jago Framework Codeigniter Dan Bootstrap
Rp90,000 Add to cart -
Tutorial Membangun Sistem Informasi Akademik Sekolah Dengan Codeigniter Dan Ajax
Rp145,000 Add to cart -
Tutorial Membangun Toko Online Responsive Dengan Codeigniter Dan Bootstrap
Rp135,000 Add to cart -
Tutorial Membangun Sistem Informasi Rumah Sakit Dengan Codeigniter MySQL Dan Ajax
Rp145,000 Add to cart -
Kursus Online – Pemrograman Web dan Android – Membuat Aplikasi Kasir
Rp300,000 Add to cart
Terima kasih, gan. Sangat bermanfaat.
Saya sedang bingung cara membuat PDF untuk mencetak dokumen SKP, ternyata tutorial dari blog ini mudah dipahami.
gagal
clas dompdf tidak dikenali katanya
Pastikan untuk dompdf sudah terinstall kak, kalau gak gitu coba samakan dengan source code yang kita sediakan, linknya ada diakhir tutorial