Setelah menguasai CRUD, pagination, dan template, langkah berikutnya adalah membuat dashboard interaktif dan fitur export data.
Fitur ini penting untuk aplikasi bisnis, akademik, atau manajemen, karena memungkinkan:
- Menampilkan statistik secara visual
- Mengunduh data dalam format Excel atau PDF
- Memudahkan admin mengambil keputusan cepat
Pada BAB ini, kita akan membahas:
- Export data ke Excel / PDF
- Membuat dashboard sederhana
- Integrasi grafik (chart)
- Menampilkan data dan statistik di satu halaman
Contents
Tujuan Pembelajaran
Setelah menyelesaikan BAB 14, Anda akan mampu:
- Membuat dashboard interaktif
- Menampilkan data statistik dengan grafik
- Mengekspor data ke Excel
- Mengekspor data ke PDF
- Mengintegrasikan semua fitur di satu halaman
14.1 Export Data ke Excel
Langkah-langkah
- Install library PHPExcel atau PhpSpreadsheet (lebih modern).
- Controller membuat file Excel dari data database.
Contoh CI 3 / CI 4
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class Export extends CI_Controller {
public function excel() {
$this->load->model('Mahasiswa_model');
$data = $this->Mahasiswa_model->get_all();
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'No');
$sheet->setCellValue('B1', 'Nama');
$sheet->setCellValue('C1', 'NIM');
$sheet->setCellValue('D1', 'Jurusan');
$no = 1;
$row = 2;
foreach($data as $m){
$sheet->setCellValue('A'.$row, $no++);
$sheet->setCellValue('B'.$row, $m->nama);
$sheet->setCellValue('C'.$row, $m->nim);
$sheet->setCellValue('D'.$row, $m->jurusan);
$row++;
}
$writer = new Xlsx($spreadsheet);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="data_mahasiswa.xlsx"');
$writer->save('php://output');
}
}
📌 Tips:
- PhpSpreadsheet mendukung format XLSX, CSV, dan PDF
- Pastikan library sudah di-install via Composer
14.2 Export Data ke PDF
Untuk export PDF, gunakan library TCPDF atau DomPDF.
Contoh CI 3 / CI 4
$this->load->library('pdf'); // library custom atau DomPDF
$html = '<h2>Daftar Mahasiswa</h2><table border="1"><tr><th>No</th><th>Nama</th></tr>';
$no = 1;
foreach($data as $m){
$html .= '<tr><td>'.$no++.'</td><td>'.$m->nama.'</td></tr>';
}
$html .= '</table>';
$this->pdf->loadHtml($html);
$this->pdf->render();
$this->pdf->stream("data_mahasiswa.pdf");
📌 Tips:
- PDF cocok untuk laporan resmi
- Bisa menambahkan logo, header, dan footer
14.3 Membuat Dashboard Sederhana
Dashboard biasanya menampilkan:
- Jumlah total data
- Grafik statistik (misalnya jumlah mahasiswa per jurusan)
- Ringkasan aktivitas terbaru
Contoh Controller
class Dashboard extends CI_Controller {
public function index() {
$this->load->model('Mahasiswa_model');
$data['total_mahasiswa'] = $this->Mahasiswa_model->count_all();
$data['jurusan_chart'] = $this->Mahasiswa_model->get_jurusan_chart();
$this->load->view('dashboard', $data);
}
}
View (dashboard.php)
<h2>Dashboard</h2>
<p>Total Mahasiswa: <?= $total_mahasiswa ?></p>
<canvas id="jurusanChart"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
var ctx = document.getElementById('jurusanChart').getContext('2d');
var chart = new Chart(ctx, {
type: 'bar',
data: {
labels: <?= json_encode(array_keys($jurusan_chart)) ?>,
datasets: [{
label: 'Jumlah Mahasiswa',
data: <?= json_encode(array_values($jurusan_chart)) ?>,
backgroundColor: 'rgba(54, 162, 235, 0.7)'
}]
},
options: {}
});
</script>
📌 Tips:
- Chart.js mudah diintegrasikan dengan data dari database
- Bisa diganti tipe chart: pie, line, doughnut, dsb
14.4 Integrasi Export & Dashboard
Dashboard bisa menyediakan tombol export:
<a href="<?= base_url('export/excel') ?>" class="btn btn-success">Export Excel</a>
<a href="<?= base_url('export/pdf') ?>" class="btn btn-danger">Export PDF</a>
- Pengguna dapat melihat statistik dan langsung mengunduh data
- Mempermudah manajemen data untuk admin
14.5 Keuntungan Dashboard & Export
- Memudahkan visualisasi data
- Mempercepat pengambilan keputusan
- Mempermudah reporting melalui Excel atau PDF
- Membuat aplikasi lebih profesional
Penutup
Dengan BAB 14 ini, aplikasi CodeIgniter Anda sudah siap digunakan secara profesional:
- Data bisa dieksport ke Excel / PDF
- Dashboard menampilkan statistik dan grafik
- Semua fitur CRUD, validasi, upload, pagination, dan template sudah terintegrasi
Langkah berikutnya adalah mengembangkan fitur lanjutan, misalnya:
- Autentikasi berbasis role (admin/user)
- Upload multi-file dengan preview
- Notifikasi realtime atau dashboard interaktif
Dengan panduan ini, Anda sudah memiliki framework aplikasi lengkap menggunakan CodeIgniter dari awal hingga fitur lanjutan siap pakai.