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 :
1
2
3
4
5
6
|
$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
1
|
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.
1
|
$config['encryption_key'] =
'iBo5B9'<-- diisi terserah;
|
database.php
1
2
3
4
5
6
7
|
$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 :
1
2
3
4
5
6
7
|
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?
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
??
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<?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')).
EmoticonEmoticon