Crud generator adalah sebuah alat atau perangkat lunak yang digunakan untuk menghasilkan kode otomatis yang berhubungan dengan operasi CRUD (Create, Read, Update, Delete) dalam pengembangan perangkat lunak. Berikut ini beberapa manfaat penggunaan crud generator:
1. Efisiensi pengembangan: Crud generator dapat menghemat waktu dan usaha dalam pengembangan perangkat lunak. Dengan menghasilkan kode otomatis untuk operasi CRUD, Anda tidak perlu menulis kode yang sama berulang-ulang secara manual. Hal ini memungkinkan Anda untuk fokus pada logika bisnis inti dan mempercepat proses pengembangan.
2. Konsistensi kode: Crud generator membantu memastikan konsistensi dalam kode yang dihasilkan. Setiap operasi CRUD akan mengikuti pola yang sama, mengikuti praktik terbaik dan standar yang ditetapkan oleh generator. Ini membantu meminimalkan kesalahan manusia dan memastikan bahwa kode memenuhi pedoman pengembangan yang ditetapkan.
3. Pengurangan kesalahan: Dengan menghindari penulisan manual yang berulang, crud generator membantu mengurangi kemungkinan kesalahan manusia dalam mengimplementasikan operasi CRUD. Kode yang dihasilkan telah diuji secara luas dan dianggap lebih andal dibandingkan dengan kode yang ditulis manual.
4. Scalability: Crud generator memungkinkan pengembangan yang mudah dalam hal skala. Ketika perlu menambahkan entitas baru atau mengubah struktur data, generator dapat secara otomatis memperbarui kode yang diperlukan tanpa memerlukan penulisan manual yang memakan waktu.
5. Standarisasi: Crud generator dapat membantu dalam menerapkan praktik terbaik dan standar pengembangan di seluruh tim. Dengan menggunakan generator yang sama, setiap anggota tim akan menghasilkan kode yang konsisten dan mengikuti pola yang ditetapkan.
Meskipun crud generator memiliki banyak manfaat, penting untuk diingat bahwa itu bukan solusi yang sempurna untuk setiap kasus pengembangan. Terkadang, situasi yang kompleks atau kebutuhan yang unik memerlukan penulisan manual yang lebih fleksibel dan penuh kontrol.
Setelah anda mengatahui manfaat dari CRUD generator, sekarang bagaimana anda mengimplementasikannya, mari kita bahas satu persatu pada fitur CRUD generator yang ada di source code ini :
1. Tampilan
kami berusaha memaksimalkan tampilan agar mudah di pahami dan mudah di digunakan agar pengguna dapat menyesuaikan kebutuhannya untuk mengatur basis data dari sisi backend

2. Output Dari Generate CRUD
Kami juga memaksimal tampilan hasil dari Generate CRUD agar pengguna dapat mudah mengatur dan kostumisasi kode di dalamnya jika sewaktu waktu kebutuhan tidak sesuai dengan kebutuhan yang ada
3. Fungsi Fungsi
kami juga berusaha menyesuaikan fungsi fungsi kebutuhan sebelum menyesuaikan hasil dari CRUD generator yaitu
| Fungsi |
Deskripsi |
| Set Name Path |
fungsi ini untuk mengatur lokasi output, ini juga bisa anda atur pada satu module dan bersarang |
| Input Controller |
fungsi ini untuk mengatur URL sekaligus aturan tampilan dan data |
| Input Model |
fungsi ini untuk mengatur basis data anda |
| Input Views |
fungsi ini untuk menghasilkan tampilan |
| ON/OFF Row |
fungsi ini untuk mengatur apakan row/column yang tertera akan digunakan/ditampilkan atau tidak |
| Field |
fungsi ini untuk mengatur label bawaan dari aslinya sehingga nanti field tersebut dapat di ubah penamaannya |
| Show On Permission |
fungsi ini untuk mengatur kolom apakah dapat ditampilkan atau tidak pada izin yang di atur sebelumnya |
| Type |
fungsi ini untuk mengatur input yang di hasilkan antara data untuk DB dan input untuk pengguna sehingga
tipe tipe tersebut dapat me-normalisasi penambahan data ke DB
- Session User
- Number
- Email
- Date
- Datetime
- Time
- Timeago
- Timestamp to Datetime
- Timestamp to Timeago
- Text
- DLL...
|
| Validation |
fungsi ini untuk melakukan validasi dari type input yang di hasilkan karena validasi ini mengikuti bawaan dari codeigniter
- Required
- Mataches
- Numeric
- Integer
- Decimal
- Valid URL
- Valid Email
- Alpha Numeric
- Alpha
- Alpha Dash
- DLL
|
| Check |
fungsi ini untuk mem-validasi input secara langsung jika di temukan data input memilki nilai sama
maka pemprosesan akan dibatalkan |
3. More Settings
Fungsi ini adalah untuk mengatur beberapa aksi untuk output CRUD yang di hasilkan

| Fungsi |
Deskripsi |
| Permission Button Create |
fungsi untuk menghilangkan dan manghandle halaman form create sesuai dengan izin yang di atur |
| Permission Button Read |
fungsi untuk menghilangkan dan manghandle halaman form read sesuai dengan izin yang di atur |
| Permission Button Edit |
fungsi untuk menghilangkan dan manghandle halaman form edit sesuai dengan izin yang di atur |
| Permission Button Delete |
fungsi untuk menghilangkan dan manghandle hapus daa sesuai dengan izin yang di atur |
| Permission Button Trash |
fungsi untuk menghilangkan dan manghandle halaman sampah data sesuai dengan izin yang di atur |
| Permission Button Appearance |
fungsi untuk menghilangkan dan manghandle pengaturan tampilan sesuai dengan izin yang di atur |
| Bulk Checkbox |
fungsi untuk menghilangkan dan manghandle checkbox berdarsarkan kolom pada table sesuai dengan izin yang di atur |
| Column Action |
fungsi untuk menghilangkan dan manghandle kolom action pada table sesuai dengan izin yang di atur |
| Load Datab By Users |
fungsi untuk load data pada table berdasarkan pengguna login |
| Load Data By Admin |
fungsi untuk load data berdasarkan admin |
4. Add Row Relation
Add row relation ini untuk bertujuan untuk menambahkan colum data turunan dengan table data anda dalam database contohnya seperti penggunaan relasi (one many one), (many to one) yang di mana kolom terpilih membutuhkan relasi dengan table master dan table master relasi dengan table lainnya seperti contoh ERD dibawah ini :

Seperti ERD di atas bawha table users_groups adalah table master yang berelasi dengan 2 table tersebut, maka dengan fitur addrow ini pengguna dapat mengaturnya dengan UI yang di sesuaikan, mari kita bahas..

Seperti yang terlihat gambar di atas bahwasannya yang membedakan adalah column relation dan tombol clone row selebihnya sudah di bahas di nomor 3
| Fungsi |
Deskripsi |
| Colum Relation |
ini untuk mengaitkan relasi table saat ini dengan table master |
| Button Clone Row |
fungsi ini untuk menambahkan column baru dan meng-copy column sebelumnya |
Setelah menggunakan ini, nantinya output yang di hasilkan tidak jauh beda tampilannya dengan yang di bahas pada no 2
5. Pengaturan CRUD Generator
Kami juga menambahkan dan menerapkan beberapa pengaturan sebelum melakukan generate

| Fungsi |
Deskripsi |
| Set Upload Path |
fungsi ini untuk mengatur bawaan jalur upload file |
| Set Extension |
fungsi ini untuk menambahkan atau menghapus validasi extension untuk file upload ini berlaku untuk pemilihan tipe file upload |
| Set Layout Form |
fungsi ini untuk mengatur tampilan pada form antara center atau full width |
| Set Quick Action |
fungsi ini untuk mengatur tampilan pada form apakah di tampilkan dalam satu halaman atau tidak |
| Set Table Serverside |
fungsi ini untuk mengolah data dengan melakukan sisi perminataan lewat server (AJAX) sehingga data yang di load akan terasa ringan jika data sudah melebihi puluhan juta |
| Set Database |
fungsi ini untuk melakukan penambahan colum [created_at] [updated_at] [deleted_at] [is_deleted] secara otomatis jika table database anda belum dibuat, tujuannya untuk mengetahui perubahan data terbaru dan penghapusan data sampah dan permanen |
6. Pengelola CRUD
Pengelola CRUD ini adalah daftar rekaman yang telah dihasilkan dari generate sehingga pengguna dapat merubah, menghapus dan menonaktifkan dengan mudah

Setelah pembahasan diatas mari kita lanjut bagaimana langkah cara penggunaan pertama
Pertama Membuat database dan table
Anda dapat membuat table dan database menggunakan software HeidiSQL atau sejenisnya, disini juga anda harus tentukan atribut pada table yang anda buat berserta tipe data agar output nantinya bisa sinkron dengan crud generator.
| Tipe Data Database |
Tipe Data CRUD Generator |
| varchar |
Berlaku dengan semua type karena data yang di hasilkan berupa string yang dapat di konversi menjadi array |
Intinya adalah anda dapat dengan bebas mengatur tipe data table database anda sehingga generator ini akan mengkonversi data tersebut menjadi string dan dapat di konversi menjadi array dan pastikan ketika membuat table, table harus memilki atribut primary key.
Bagaimana menambahkan filter berdasarkan kolom
Sebagai tambahan table anda dapat menambahkan filter pada masing masing kolom contoh tampilan filter by column pada gambar di bawah ini :
Anda dapat menambahkan kode di bawah ini pada views *_table.blade.php di antara line 36
'filterbycolumn' : [
{
'label' : 'Select Date', // label
'target' : '#filterbydate', // element div #id
'column' : '1', // no column
},
{
'label' : 'Select Username',
'target' : '#filterbyusername',
'column' : '2',
}
],
Tambahkan juga potongan kode HTML
<div id="filter" class="row mb-4">
<div class="col-md-3">
<label class="form-label">Filter by Date</label>
<div id="filterbydate"></div>
</div>
<div class="col-md-3">
<label class="form-label">Filter by Username</label>
<div id="filterbyusername"></div>
</div>
</div>
Filter by column ini hanya optional saja karena sudah ada fitur pencarian yang telah di modifikasi agar pencarian lebih akurat berdasarkan kata kunci.
Jika ada penulisan dan pemahaman yang berbeda mohon untuk dikoreksi pada kolom komentar, terima kasih