DataTables CodeIgniter dengan pemrosesan sisi server (server-side processing) sangat efisien untuk menampilkan ribuan baris data. Berbeda dari DataTables biasa yang memuat semua data sekaligus, versi server-side memproses pencarian, pengurutan, dan pagination di server, sehingga tetap ringan meski datanya sangat banyak.
Menyiapkan DataTables di View
<table id="tabel"><thead><tr><th>Nama</th><th>Harga</th></tr></thead></table>
<script>
$('#tabel').DataTable({
processing: true,
serverSide: true,
ajax: '<?= base_url("produk/data") ?>'
});
</script>
Membuat Controller Server-side
Controller menerima parameter dari DataTables (draw, start, length, search) lalu mengembalikan data dalam format yang diharapkan:
<?php
public function data() {
$draw = $this->input->post('draw');
$start = $this->input->post('start');
$length = $this->input->post('length');
$cari = $this->input->post('search')['value'];
if ($cari) {
$this->db->like('nama', $cari);
}
$data = $this->db->limit($length, $start)->get('produk')->result();
echo json_encode(array(
'draw' => $draw,
'recordsTotal' => $this->db->count_all('produk'),
'recordsFiltered' => $this->db->count_all('produk'),
'data' => $data
));
}
?>
Memahami Parameternya
DataTables mengirim start dan length untuk pagination, serta search untuk pencarian. Server merespons dengan jumlah total data dan data untuk halaman saat ini saja.
Kesimpulan
Dengan DataTables CodeIgniter server-side, aplikasi tetap ringan dan responsif meski menampilkan data dalam jumlah sangat besar. Semua pekerjaan berat dilakukan di server, bukan di browser pengguna.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi CodeIgniter.

