BAB 14 – Export Data & Dashboard: Membuat Aplikasi Interaktif di CodeIgniter

BAB 14 – Export Data & Dashboard: Membuat Aplikasi Interaktif di CodeIgniter

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

Tujuan Pembelajaran

Setelah menyelesaikan BAB 14, Anda akan mampu:

  1. Membuat dashboard interaktif
  2. Menampilkan data statistik dengan grafik
  3. Mengekspor data ke Excel
  4. Mengekspor data ke PDF
  5. Mengintegrasikan semua fitur di satu halaman

14.1 Export Data ke Excel

Langkah-langkah

  1. Install library PHPExcel atau PhpSpreadsheet (lebih modern).
  2. 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

  1. Memudahkan visualisasi data
  2. Mempercepat pengambilan keputusan
  3. Mempermudah reporting melalui Excel atau PDF
  4. 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.