CRUD adalah singkatan dari Create Read Update Delete , yang sering digunakan pada aplikasi-aplikasi pengolahan data yang kebanyakan mengguanakan fungsi CRUD didalamnya . Fungsi ini digunakan untuk menambahkan data, menghapus data, serta mengupdate data.
Dalam artikel ini saya mencoba memberikan sebuah contoh penerapan crud sederhana di dalam codeigniter, sebelumnya mari kita bahas dulu apa saja yang diperlu dikonfigurasi di framework codeigniter ini : (perlu diketahui konfigurasinya terdapat pada folder config)
Ceritanya saya akan membuat aplikasi sederhana tentang pengolahan data absen (namanya juga cerita saya, jadi terserah saya aahahahahaa -agak sedikit pemaksaan-)
autoload.php
file ini berisi tentang resource (library, helper, plugins, model, fungsi ) yang akan langsung di load secara otomatis ketika aplikasi akan dijalankan.
Misalnya :
$autoload['libraries']=array('database','form_validation','table'); $autoload['helper']=array('form','url'); $autoload['plugin']=array(); $autoload['config']=array(); $autoload['language']=array(); $autoload['model']=array();
config.php,
konfigurasi dasar pada aplikasi yang akan dibuat. Konfigurasi pertama yang dilakukan adalah menentukan base_url() dari aplikasi anda
$config['base_url']="http://example.com/" <-- diisi sesuai dengan aplikasi;
Keuntungan menggunakan cara ini adalah anda tidak perlu menulis ulang secara lengkap url jika diperlukan, misalnya untuk menentukan action pada form. Cukup dengan menggunakan fungsi base_url(). Apalagi jika anda harus mengalihkan aplikasi anda pada server lain, maka anda cukup mengganti base_url anda.Hal kedua adalah mengatur konfigurasi encrytion key untuk menjalankan session.
$config['encryption_key'] = 'iBo5B9'<-- diisi terserah;
database.php
$db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = ""; $db['default']['database'] = "crud" ; <-- diisi sesuai dengan database yang sudah dibuat
Ok, tidak perlu kebanyakan basa basi ,mari kita lanjut ke langkah-langkahnya
Pertama-tama kita buat dulu tabel ‘tabel_person’ pada database untuk menyimpan data tersebut. Dengan perintah sql seperti dibawah ini :
Create table ‘tabel_person’( ‘id’ int(4) not null auto increment primary key, ‘nama’ varchar(100), ‘tgl_lahir’ date);
Tabel di dalam database sudah dibuat , dan sekarang lanjut ke penulisan kode karena codeigniter itu bersifat MVC (model view controller), penulisan kode apa duluan yang dilakukan ya ??? bingung ??? jangan bingung kita lakukan bagian view terlebih dahulu
View(personInput.php)
saya membuat view dengan nama personInput.php dan disimpan dalam direktori view. Isi dari personInput.php sebagai berikut:
<form action="PersonController/input"> <table border="0"> <tr> <td>Nama</td> <td>:</td> <td><input name="nama" type="text"></td> </tr> <tr> <td>Tanggal Lahir</td> <td>:</td> <td> <select name="tanggal"> <?php for($tgl=1;$tgl<=30;$tgl++):?> <option value="<?php echo $tgl?>"><?php echo $tgl;?></option> <?php endfor;?> </select> <select name="bulan"> <?php for($bln=1;$bln<=12;$bln++):?> <option value="<?php echo $bln?>"><?php echo $bln;?></option> <?php endfor;?> </select> <select name="thn"> <?php for($thn=1970;$thn<=2015;$thn++):?> <option value="<?php echo $thn?>"><?php echo $thn;?></option> <?php endfor;?> </select> </td> </tr> <tr><td rowspan="3"><input type="submit" name="submit" value="simpan"></td></tr> </table> </form>
View ini sangat sederhana, sangat dasar dan mudah dipahami.
Penjelasan :
- <?php for($tgl=1;$tgl<=31;$tgl++):?> pada baris 13 merupakan perulangan yang nantinya akan ditampilkan sebagai tanggal dengan patokan 1 bulan = 31 hari.
- <?php for($bln=1;$bln<=12;$bln++):?> pada baris 18 merupakan perulangan yang akan ditampilkan sebagai bulan dengan patokan 1 tahun=12 bulan.
- <?php for($thn=1970;$thn<=2015;$thn++):?> pada baris 23 merupakan perulangan yang akan ditampilkan sebagai tahun dengan patokan dari tahun 1970-sampai 2015.
- Tiga point diatas, nantinya akan include ke dalam 1 field dalam tabel person
Setelah view, kita mau nulis kode apa lagi ???
kita akan melakukan penulisan kode di bagian model(perlu diketahui model ini tempaa semua fungsi-fungsi mengenai manipulasi database seperti insert, update, delete, select , join dan lain-lain) .. mari kita lihat bagaimana penulisan kode-nya
model (personModel.php)
<? class PersonModel extends CI_Model{ function insert(){ $this->db->set('nama',$this->input->post('nama')); $this->db->set('tgl_lahir',$this->input->post('tahun').'-'.$this->input->post('bulan').'-'.$this->input->post('tanggal')); return $this->db->insert('tabel_person'); } } ?>
Penjelasan:
- class personModel extends CI_Model, pada baris ke-1 maksudnya membuat class model dengan nama personModel.
- Pada baris ke-3 sampai baris ke-7 merupakan fungsi insert data/ penambahan data
- $this->db->set('nama',$this->input->post('nama')), pada baris ke- 4 merupakan fungsi untuk menge-set field nama dalam tabel_person dengan inputan dari view personInput.php dengan fungsi $this->input->post('nama')).
Controller
Controller itu seperti apa sih ?? bentar lagi dijelaskan kok (sabar...sabar...sabar) pada intinya controller digunakan untuk menyatukan data yang dikirimkan dari view dan model , boleh dibilang sebagai pemrosesan data dari view dan model
Gimana penulisan kodenya ??
<?php class PersonController extends CI_Controller{ public function __construct() { parent::__construct(); $this->load->model('PersonModel'); } function index(){ $this->load->view('personInput'); } function input(){ if($this->input->post('submit')): $this->PersonModel->insert(); endif; $this->load->view('personInput'); } } ?>
Penjelasan:
- class PersonController extends CI_Controller, maksudnya membuat class dengan nama PersonController, dengan catatan nama class harus diawali dengan huruf kapital.
- Pada baris ke-7 sampai ke-9 merupakan fungsi default controller yang nanti jika ditampilkan fungsi ini yang akan ditampilkan.
- Pada baris ke-10 sampai ke-15 merupakan fungsi input data dengan mengambil data dari model ($this->PersonModel->insert() ) dan juga view ($this->load->view('personInput')).