GROCERY CRUD adalah library open source yang digunakan untuk melakukan generate fitur CRUD (Create Read Update Delete) secara otomatis pada aplikasi berbasis web yang dibuat menggunakan framework codeigniter atau sering juga disebut dengam sebutan codeigniter CRUD Generator, karena hanya cukup dengan 5 baris script saja anda sudah mempunyai fitur CRUD yang powerfull. tentunya ini akan sangat bermanfaat jika anda sedang mengerjakan sebuah proyek yang memiliki banyak tabel master, dari pada membuat CRUD nya satu persatu lebih pakai pakai GROCERY CRUD saja untuk menghemat waktu pengerjaan proyek.
Integrasi Grocery CRUD Dengan Codeigniter
Untuk bisa menggunakan library ini tentunya kita harus melakukan integrasi GROCERY CRUD dengan proyek kita terlebih dahulu, silahkan ikuti intruksi berikut :
Download library GROCERY CRUD pada situs resminya grocerycrud.com.
extrack grocery-crud-1.5.7.zip kedalam project codeigniter.
Konfigurasi Dasar Codeigniter
untuk codeigniter yang baru di install/ fresh install maka ada beberapa konfigurasi sederhana yang harus anda dilakukan, salah satunya adalah setting base url nya, settingan ini bisa anda temukan pada application/config/config.php dan cari settingan berikut :
$config['base_url']='';
diganti menjadi :
$config['base_url'] = 'http://localhost/ci3/';
selanjutnya pengaturan koneksi database yang bisa anda temukan pada application/config/database.php
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'example',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
setelah itu kita perlu melakukan load otomatis untuk library dan helper yang akan sering kita gunakan, anda bisa melakukan konfigurasi ini pada file application/config/autoload.php :
$autoload['libraries'] = array('grocery_CRUD','database');
$autoload['helper'] = array('url');
sampai pada tahap ini anda sudah selesai melakukan konfigurasi codeigniter dan GROCERY CRUD.
Membuat Database Dan Tabel
GROCERY CRUD menyediakan database bawaan yang bisa kita gunakan untuk praktek, anda bisa menemukan file examples_database.sql.zip didalam source code GROCERY CRUD yang sudah anda download tadi, silahkan extrack file tersebut lalu butalah sebuah database baru dengan nama example dan lakukan import database melalui PhpMyadmin.
Cara Menggunakan GROCERY CRUD
salah satu kelebihan grocery crud yang powerfull adalah hanya dengan satu function dalam sebuah controller sudah bisa menghandle sebuah proses CRUD untuk sebuah tabel, misalnya anda punya sebuah function employees dalam controller Data maka anda sudah mempunyai fitur CRUD untuk tabel employees, dan jika anda ingin tambahkan fitur CRUD lain maka anda bisa membuat function baru pada controller yang sama sehingga lebih hemat file dan coding yang ditulis, sekarang silahkan buat sebuah file baru dengan nama Data.php pada folder controller dan tulis script berikut :
<?php
Class Data extends CI_Controller {
function __construct() {
parent::__construct();
}
function index() {
}
public function employees() {
// instance object
$crud = new grocery_CRUD();
// pilih tabel yang akan digunakan
$crud->set_table('employees');
// simpan hasilnya kedalam variabel output
$output = $crud->render();
// tampilkan di view
//$this->_example_output($output);
$this->load->view('template.php', $output);
}
}
langkah selanjutnya kita akan membuat sebuah view untuk menampilkan hasil generate dari GROCERY CRUD, sebenarnya library ini sudah menyediakan sebuah view dengan nama example.php tapi terkadang kita punya template sendiri yang sudah kita buat sedemikian rupa untuk di integrasikan dengan proyek yang sedang kita kerjakan, oleh karena itu silahkan buat sebuah file baru dengan nama template.php pada folder view dan tulislah script berikut :
<!DOCTYPE html>
<html>
<head>
<title>GROCERY GRUD - Belajarphp.net</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
foreach ($css_files as $file): ?>
<link type="text/css" rel="stylesheet" href=" echo $file; ?>" />
endforeach; ?>
foreach ($js_files as $file): ?>
endforeach; ?>
</head>
<body>
<div style='height:20px;'></div>
<div>
echo $output; ?>
</div>
</body>
</html>
setelah itu jangan lupa melakukan save untuk menyimpan perubahan lalu untuk melihat hasilnya silahkan buka web browser dan akses url http://localhost/ci3/index.php/data/employees
Menampilkan Custom Field
jika pada script di atas kita menampilkan semua data dalam tabel employees maka kali ini kita akan belajar cara menampilkan beberapa kolom saja, GROCERY CRUD sudah menyediakan fungsicolumns yang digunakan untuk menampilkan custom Field pada sebuah tabel, sebagai contoh misalnya kita hanya ingin menampilkan field firstName, lastName dan email dari tabel employees maka script nya menjadi seperti ini :
public function employees() {
// instance object
$crud = new grocery_CRUD();
// pilih tabel yang akan digunakan
$crud->set_table('employees');
// custom field yang ingin ditampilkan
$crud->columns('lastName','firstName','email');
// simpan hasilnya kedalam variabel output
$output = $crud->render();
// tampilkan di view
$this->load->view('template.php', $output);
}
silahkan save dan refresh web browser untuk melihat perubahan, sekarang hasilnya menjadi seperti ini
Menggunakan Validation
jika anda sudah terbiasa menggunakan library validation maka pada GROCERY CRUD juga anda bisa melakukan hal yang sama untuk melakukan validasi data sebelum diproses, sebagai contoh misalnya kita ingin membuat validasi inputan email yang dimasukan oleh users harus berformat email maka kita bisa menggunagakan fungsi set_rule seperti dibawah ini
public function employees() {
// instance object
$crud = new grocery_CRUD();
// pilih tabel yang akan digunakan
$crud->set_table('employees');
// custom field yang ingin ditampilkan
$crud->columns('firstName','lastName','email');
// set validation rule
$crud->set_rules('email','email','valid_email');
$crud->set_rules('firstName','firstName','required');
// simpan hasilnya kedalam variabel output
$output = $crud->render();
// tampilkan di view
$this->load->view('template.php', $output);
}
jangan lupa lakukan save dan selanjutnya buka form untuk add data baru, silahkan kosongkan kolom firstName dan berikan format email yang salah pada kolom email kemudian klik save maka akan muncul warning seperti dibawah ini
untuk referensi validation rule yang bisa anda gunakan silahkan mengacu pada dokumentasi validation rule codeigniter 3.
Menampilkan Data Dari tabel Yang Berelasi
mungkin ini adalah salah satu bagian yang paling anda tunggu yaitu bagaimana cara nya menampilkan data dari tabel yang berelasi, jika anda mempelajari struktur database bawaan GROCERY CRUD GENERATOR maka anda akan menemukan tabel employees dan offices, kedua tabel ini berelasi dengan officeCode sebagai PK pada tabel offices dan menjadi FK pada tabel employees seperti gambar dibawah ini
lalu anda ingin menampilka field city sebagai pengganti pengganti field officeCode yang ada pada tabel employees sehingga scriptnya menjadi seperti ini
public function employees() {
// instance object
$crud = new grocery_CRUD();
// pilih tabel yang akan digunakan
$crud->set_table('employees');
// memberikan alias untuk kolom officeCode menjadi Office City
$crud->display_as('officeCode', 'Office City');
$crud->set_subject('Employee');
// mengambil data city dari tabel offices berdasarkan relasi dari tabel officeCode
$crud->set_relation('officeCode', 'offices', 'city');
// simpan hasilnya kedalam variabel output
$output = $crud->render();
// tampilkan di view
$this->load->view('template.php', $output);
}
silahkan save dan lakukan refresh pada web browser anda untuk melihat perubahan
sekarang field office City sudah muncul, itu tandanya kita sudah berhasil.
Upload File/ Upload Field
kasus selanjutnya adalah bagaimana caranya untuk membuat field yang akan kita gunakan sebagai interface untuk mengupload file ke server. dalam hal ini GROCERY CRUD Generator sudah menyediakan function set_field_upload dengan format seperti dibawah ini:
$crud->set_field_upload('NamaField','lokasiTujuan');
sehingga jika kita implementasikan secara menyeluruh makan script CRUD nya menjadi seperti ini
public function employees() {
// instance object
$crud = new grocery_CRUD();
// pilih tabel yang akan digunakan
$crud->set_table('employees');
// memberikan alias untuk kolom officeCode menjadi Office City
$crud->display_as('officeCode', 'Office City');
$crud->set_subject('Employee');
// mengambil data city dari tabel offices berdasarkan relasi dari tabel officeCode
$crud->set_relation('officeCode', 'offices', 'city');
// menjadikan field file_url sebagai elemet upload pada form input data
$crud->set_field_upload('file_url','assets/uploads/files');
// simpan hasilnya kedalam variabel output
$output = $crud->render();
// tampilkan di view
$this->load->view('template.php', $output);
}
silahkan save dan refresh untuk melihat perubahan nya, seperti yang anda lihat sekarang anda bisa langsung mengdownload file yang sudah anda upload melalui halaman baca data seperti dibawah ini
proses upload file menggunakan teknik ajax
anda juga bisa melakukan drop file dan arahkan ke dalam form untuk melakukan proses upload
Menambahkan Button Action Pada Halaman Utama
secara default library GROCERY CRUD hanya menampilkan button untuk untuk melihat detail data, button edit dan button delete, lalu jika anda ingin menambahkan custom button maka anda bisa menggunakan function add_action seperti dibawah ini
$crud->add_action('More', '', 'demo/action_more','ui-icon-plus');
sehingga jika kita implementasikan jadi seperti ini
public function employees() {
// instance object
$crud = new grocery_CRUD();
// ganti themes
$crud->set_theme('datatables');
// pilih tabel yang akan digunakan
$crud->set_table('employees');
// memberikan custom button
$crud->add_action('More', '', 'demo/action_more', 'ui-icon-plus');
// simpan hasilnya kedalam variabel output
$output = $crud->render();
// tampilkan di view
$this->load->view('template.php', $output);
}
jika anda lihat pada script line 5 maka anda akan menemukan fungsi set_theme, sesuai dengan nama nya bahwa fungsi ini digunakan untuk mengganti tema yang digunakan, GROCERY CRUD menyediakan 2 jenis theme yang bisa anda gunakan yaitu datatables dan flexigrid.
Kesimpulan
dengan adanya library ini mempermudah pekerjaan developer dalam mengerjakan fitur CRUD dalam proyek yang sedang dikerjakan, performance nya pun terbilang cukup bagus karena sudah mengimplementasikan teknik ajax dalam memproses data.
Tidak ada komentar:
Posting Komentar
Bebas bicara