Pernah nggak kamu bikin tabel data di aplikasi web, terus user komplain karena datanya nggak bisa di-search? Atau terpaksa scroll panjang banget karena semua 500 baris data muncul sekaligus tanpa pagination? Kalau iya, kamu butuh DataTables Laravel — plugin JavaScript yang bisa mengubah tabel HTML biasa jadi tabel interaktif super canggih hanya dengan beberapa baris kode.
Di artikel ke-43 dari Seri Belajar Laravel Lengkap ini, kita akan kupas tuntas apa itu DataTables, kenapa ini jadi senjata wajib para developer Laravel, dan bagaimana cara kerjanya sebelum kita praktik instalasi di artikel berikutnya. Yuk mulai!
Apa Itu DataTables dan Kenapa Laravel Cocok Banget?
Bayangkan kamu lagi di perpustakaan yang punya 10.000 buku. Kalau semua buku dijejer di satu rak tanpa label, tanpa urutan, dan kamu harus baca satu per satu untuk nemuin buku yang kamu cari — menyiksa banget kan? Nah, itulah yang terjadi saat kamu tampilkan ratusan atau ribuan data dalam tabel HTML biasa.
DataTables adalah plugin jQuery yang mengubah tabel HTML statis menjadi tabel interaktif dengan fitur pencarian, pengurutan, dan paginasi secara otomatis. Anggap saja DataTables itu seperti "search engine kecil" yang ada di dalam tabelmu sendiri.
"DataTables adalah plugin jQuery open-source yang menambahkan fitur interaktivitas canggih ke tabel HTML — mulai dari search, sort, filter, pagination, hingga Ajax loading data dari server."
๐ Sumber: datatables.net — digunakan di 5+ juta website worldwide
DataTables pertama kali dirilis tahun 2008 oleh Allan Jardine. Lebih dari 15 tahun kemudian, plugin ini masih aktif dikembangkan dan jadi salah satu jQuery plugin paling populer di dunia dengan 35.000+ bintang di GitHub.
Lalu kenapa DataTables Laravel jadi kombinasi yang powerful? Karena Laravel punya Eloquent ORM yang bisa mengambil data dari database dengan sangat efisien, dan DataTables bisa diintegrasikan untuk memproses data tersebut di sisi server (Server-Side Processing) — sehingga meski datamu ada jutaan baris, aplikasimu tetap ringan dan cepat!
Cara Kerja DataTables Laravel: Client-Side vs Server-Side
Sebelum mulai coding, kamu perlu paham dua mode pengoperasian DataTables Laravel yang punya perbedaan fundamental. Salah pilih mode, performa aplikasimu bisa jomplang!
Semua data dikirim ke browser sekaligus, lalu DataTables mengolahnya di sisi klien.
Browser hanya minta data yang diperlukan, server (Laravel) yang filter & paginate.
Pakai Client-Side jika data kamu di bawah 5.000 baris dan jarang berubah. Pakai Server-Side jika data bisa mencapai ribuan atau terus bertambah (misalnya tabel transaksi, log, atau data user skala besar). Untuk proyek skripsi atau tugas kuliah, Client-Side biasanya sudah cukup!
Dalam ekosistem Laravel, ada sebuah package populer bernama Yajra DataTables yang menjadi jembatan antara DataTables JavaScript dan Eloquent/Query Builder Laravel. Package ini yang akan kita pakai di artikel selanjutnya.
Fitur-Fitur Unggulan DataTables yang Wajib Kamu Tahu
Bukan cuma search dan sort, DataTables punya segudang fitur yang bikin tampilan data di aplikasi Laravel kamu makin keren. Mari kita bedah satu per satu dengan contoh kode dasarnya!
Cara termudah mengaktifkan DataTables adalah dengan memanggil method .DataTable() pada elemen tabel. Pastikan jQuery dan library DataTables sudah di-include lebih dulu.
Untuk data besar, DataTables akan mengirim request Ajax ke route Laravel. Di sinilah Yajra DataTables berperan memproses query dan mengembalikan respons JSON yang sesuai format.
Di sisi view, DataTables perlu diberi tahu URL Ajax dan definisi kolom yang akan ditampilkan agar bisa memanggil controller Laravel dengan benar.
Perhatikan penggunaan rawColumns(['aksi']) di controller. Ini wajib kamu tambahkan jika kolom berisi HTML (seperti tombol atau link). Tanpa ini, HTML akan di-escape dan tampil sebagai teks biasa!
Extensions DataTables Laravel yang Sering Dipakai
Kehebatan DataTables tidak berhenti di fitur dasarnya. Ada berbagai extension yang bisa kamu tambahkan untuk memperkaya fitur tabel di aplikasi datatables laravel kamu. Ini yang paling sering dipakai developer Indonesia:
Tambahkan tombol export ke Excel, PDF, CSV, dan Print langsung dari tabel. Cocok untuk laporan data.
Otomatis menyembunyikan kolom di layar kecil dan menampilkannya dalam toggle. Tabel tetap rapi di HP.
Panel filter faceted (seperti filter di Tokopedia) untuk setiap kolom. Filter multi-pilih yang intuitif.
Kunci kolom pertama (misalnya No. atau Nama) agar tetap terlihat saat scroll horizontal di tabel lebar.
Jangan lupa include file CSS dan JS untuk setiap extension yang kamu pakai. DataTables menggunakan sistem modular — extension yang tidak di-include tidak akan berfungsi, bahkan bisa menyebabkan error JavaScript yang membingungkan. Selalu cek dokumentasi resmi di datatables.net.
DataTables punya versi build khusus yang terintegrasi dengan Bootstrap 4 maupun Bootstrap 5. Gunakan versi dataTables.bootstrap5.min.css agar tampilan tombol, pagination, dan search field otomatis mengikuti style Bootstrap yang sudah ada di proyekmu — hasilnya jauh lebih konsisten dan profesional!
Alur data: MySQL → Eloquent/Query Builder → Yajra DataTables → JSON Response → DataTables JS
No comments:
Post a Comment