Pernah nggak kamu bikin tabel data yang keren di Laravel, tapi pas ada yang nanya "di mana tombol edit-nya?" — kamu cuma bisa nyengir canggung? 😅 Kalau kamu lagi belajar cara menambahkan kolom aksi DataTables Laravel yang berisi tombol Edit dan Hapus, kamu ada di artikel yang tepat!
Di seri ke-47 dari 50 Artikel Belajar Laravel ini, kita bakal bedah tuntas bagaimana caranya menyisipkan tombol aksi yang fungsional ke dalam DataTables — bukan sekadar tombol pajangan, tapi yang beneran konek ke route, bisa navigasi ke halaman edit, dan bisa menghapus data dengan konfirmasi yang proper. Siap? Gas! 🚀
"Kolom Aksi" di DataTables adalah kolom khusus yang tidak berasal dari database, melainkan di-generate secara dinamis berisi tombol interaktif per baris data.
Dengan Yajra DataTables, kita menggunakan method addColumn() untuk menyisipkan kolom virtual ini — lengkap dengan link ke route yang membawa ID data tersebut.
🏗️ Memahami Konsep Kolom Aksi di DataTables Laravel
Bayangkan kamu punya daftar belanjaan di tabel. Setiap item punya nama, harga, dan stok — tapi kamu juga butuh tombol "coret" dan "edit" di setiap baris. Nah, tombol-tombol itulah yang dimaksud dengan kolom aksi.
Dalam konteks kolom aksi DataTables Laravel, konsepnya sama persis. Kita punya data dari database (nama, email, dll), dan di ujung tabel kita tambahkan kolom "Aksi" yang isinya tombol-tombol interaktif. Kolom ini tidak tersimpan di database — dia hanya eksis di tampilan saja.
Yang bikin menarik: dengan library Yajra DataTables, kita bisa mendefinisikan kolom ini langsung di controller menggunakan method addColumn() dengan Blade template sebagai isinya. Jadi konten tombol bisa kita tulis seperti HTML Blade biasa — termasuk menggunakan route() helper untuk link yang dinamis.
Pastikan kamu sudah menginstall package yajra/laravel-datatables-oracle dan menggunakan DataTables Ajax. Kolom aksi paling optimal diimplementasikan dalam mode Ajax, bukan mode HTML biasa.
📊 Perbandingan Pendekatan Kolom Aksi di DataTables:
🛠️ Langkah-Langkah Menambahkan Kolom Aksi DataTables Laravel
Oke, sekarang kita masuk ke bagian yang paling seru — implementasi nyata! Kita akan pakai contoh tabel Mahasiswa yang sudah ada dari artikel sebelumnya. Ikuti langkah-langkah berikut secara urutan ya, jangan di-skip!
Siapkan Route untuk Edit dan Hapus
Buka file routes/web.php dan pastikan route resource untuk mahasiswa sudah ada. Route resource secara otomatis menggenerate route edit, update, destroy, dll.
✅ Route resource sudah cukup — ini menggenerate mahasiswa.edit, mahasiswa.destroy, dll secara otomatis.
Tambahkan addColumn() di Controller
Di method DataTables kamu (biasanya di MahasiswaController.php), tambahkan addColumn('aksi') sebelum make(true). Inilah inti dari keseluruhan proses.
Jangan lupa method rawColumns(['aksi'])! Tanpa ini, DataTables akan meng-escape HTML kamu — tombol Edit dan Hapus akan muncul sebagai teks mentah <a href=...>, bukan tombol yang bisa diklik.
Daftarkan Kolom 'aksi' di Tampilan JavaScript
Di file Blade view kamu, pastikan kolom 'aksi' didaftarkan dalam konfigurasi DataTables JavaScript agar dia tahu kolom ini ada.
Tambahkan Header Kolom di Tabel HTML
Pastikan di bagian <thead> tabel HTML-mu ada kolom "Aksi":
Jumlah <th> di thead harus sama persis dengan jumlah kolom yang didefinisikan di columns pada JavaScript DataTables. Kalau jumlahnya beda, DataTables akan error atau kolomnya misaligned!
💎 Menambahkan Konfirmasi Hapus yang Elegan
Tombol hapus tanpa konfirmasi itu ibarat lift tanpa tombol tutup pintu — bahaya! 😬 Kita perlu pasang dialog konfirmasi agar user tidak sengaja menghapus data penting.
Ada dua pendekatan yang umum dipakai: native confirm() dari browser, atau library seperti SweetAlert2 untuk tampilan yang lebih premium. Mari kita implementasikan keduanya!
- Zero dependency
- Tampilannya "jadul"
- Tidak bisa dikustomisasi
- Cocok untuk proyek sederhana
- Tampilan modern & animasi keren
- Sangat bisa dikustomisasi
- UX jauh lebih baik
- Perlu CDN/npm tambahan
Konfirmasi Native (Cara Simpel)
Tambahkan fungsi JavaScript ini di bagian bawah view Blade kamu:
Konfirmasi SweetAlert2 (Cara Keren 🔥)
Untuk pendekatan yang lebih profesional dan meningkatkan UX, gunakan SweetAlert2. Pertama, include CDN-nya, lalu modifikasi event klik tombol hapus:
⚡ Jangan lupa ubah button hapus kamu dengan class btn-hapus dan type button (bukan submit) agar SweetAlert sempat muncul.
Menurut studi UX oleh Nielsen Norman Group, pengguna cenderung 35% lebih percaya diri menggunakan fitur hapus ketika ada dialog konfirmasi yang jelas. Ini artinya: dialog konfirmasi bukan sekedar "pengaman" — tapi juga meningkatkan trust pengguna terhadap aplikasimu!
🎨 Tips Styling Kolom Aksi DataTables yang Profesional
Tombol yang fungsional itu penting, tapi tombol yang kelihatan bagus itu lebih penting lagi kalau kamu ingin aplikasimu terlihat profesional. Berikut beberapa tips styling yang bisa langsung kamu terapkan:
Tambahkan min-width pada Kolom Aksi
Agar tombol tidak "gepeng" karena tabel terlalu kecil, set lebar minimum kolom aksi di konfigurasi DataTables JavaScript:
Untuk tampilan lebih modern, ganti class Bootstrap default dengan icon-only button yang punya tooltip. Contoh: <a title="Edit Data" class="btn btn-sm btn-warning rounded-circle"><i class="fas fa-edit"></i></a>. Butuh FontAwesome yang sudah terpasang di layout-mu!
🏷️ Tags:
No comments:
Post a Comment