Dear reader,
Okey, Klo Gie sebelumnya posting tentang MVC di CodeIgniter, nah…, kali ini Gie posting contoh operasi manipulasi database (insert,update,delete) dengan CodeIgniter. Gie pikir ini merupakan hal mendasar yang harus kita kuasai sebelum kita membuat aplikasi yang rumit bin kompleks. He3x….,
Ok, langsung saja bikin database di phpmyadmin, beri nama sesuai dengan konfigurasi database.php yang telah temen2 lakukan. Klo database Gie bernama ciprojectdb. Kemudian buat 1 tabel dalam database tersebut dengan skema seperti berikut:
CREATE TABLE `pegawai` ( `id` int(11) NOT NULL auto_increment, `nip` varchar(20) NOT NULL, `nama` varchar(30) NOT NULL, `pekerjaan` varchar(30) NOT NULL, `alamat` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Setelah table terbuat maka langkah berikutnya adalah membuat model, dari table tersebut. Caranya adalah buat file dengan nama misal: mpegawai.php kemudian simpan pada folder ci-project/system/application/models. Dalam file ini kita akan membuat sebuah kelas dengan nama MPegawai yang mana di dalam kelas tersebut akan kita buat fungsi-fungsi yang kita butuhkan untuk memanipulasi database pada table pegawai yang telah kita buat di atas. Perlu diketahui penamaan kelas harus sama dengan nama file dan huruf pertama harus huruf kapital. Untuk huruf berikutnya, klo Gie biasane setiap awal kata Gie pake huruf kapital. Kelihatan lebih jelas maslahnya. Nah, untuk kode program pada kelas MPegawai lengkapnya seperti berikut:
Mpegawai.php
<?php
class MPegawai extends Model{
// fungsi konstruktor
function MPegawai(){
parent::Model();
}
//fungsi untuk mendapatkan data pegawai berdasarkan id
function getPegawai($id){
$data = array();
$this->db->where('id',$id);
$this->db->limit(1);
$Q = $this->db->get('pegawai');
if($Q->num_rows() > 0){
$data = $Q->row_array();
}
$Q->free_result();
return $data;
}
// fungsi untuk mendapatkan semua data pegawai
function getAllPegawai(){
$data = array();
$this->db->order_by('nama','asc');
$Q = $this->db->get('pegawai');
if ($Q->num_rows() > 0){
foreach ($Q->result_array() as $row){
$data[] = $row;
}
}
$Q->free_result();
return $data;
}
// fungsi untuk menambahkan data pegawai ke dalam tabel hari form isian
function addPegawai(){
$data = array(
'nip' => $this->input->post('nip'),
'nama' => $this->input->post('nama'),
'pekerjaan' => $this->input->post('pekerjaan'),
'alamat' => $this->input->post('alamat')
);
$this->db->insert('pegawai',$data);
}
// fungsi untuk mengedit data pegawai berdasarkan id pegawai
function editPegawai(){
$data = array(
'nip' => $this->input->post('nip'),
'nama' => $this->input->post('nama'),
'pekerjaan' => $this->input->post('pekerjaan'),
'alamat' => $this->input->post('alamat')
);
$this->db->where('id',$this->input->post('id'));
$this->db->update('pegawai',$data);
}
// fungsi untuk menghapus data pegwai berdasarkan id pegawai
function deletePegawai($id){
$this->db->where('id',$id);
$this->db->delete('pegawai');
}
}
?>
Selanjutnya kita akan membuat Controller dengan nama Pegawai dan di simpan dalam file pegawai.php pada folder ci-project/system/application/controllers. Kode programnya adalah sebagai berikut:
pegawai.php
<?php
class Pegawai extends Controller{
function Pegawai(){
parent::Controller();
$this->load->model('MPegawai');
}
function index(){
$data['title'] = "Halaman Data Pegawai";
$data['pegawai'] = $this->MPegawai->getAllPegawai();
$this->load->vars($data);
$this->load->view('pegawai_home');
}
function add(){
if ($this->input->post('nip')){
$this->MPegawai->addPegawai();
$this->session->set_flashdata('message','Data Pegawai berhasil ditambahkan !');
redirect('pegawai','refresh');
} else {
$data['title'] = "Menambah Data Pegawai";
$this->load->vars($data);
$this->load->view('pegawai_add');
$this->session->set_flashdata('message','Data Pegawai gagal ditambahkan !');
}
}
function edit($id=0){
if ($this->input->post('nip')){
$this->MPegawai->editPegawai();
$this->session->set_flashdata('message','Data Pegawai telah diedit !');
redirect('pegawai','refresh');
}else{
//$id = $this->uri->segment(4);
$data['title'] = "Edit Data Pegawai";
$data['pegawai'] = $this->MPegawai->getPegawai($id);
$this->load->vars($data);
$this->load->view('pegawai_edit');
}
}
function delete($id){
//$id = $this->uri->segment(4);
$data['title'] = "Hapus Data Pegawai";
$data['pegawai'] = $this->MPegawai->getPegawai($id);
$this->load->vars($data);
$this->load->view('pegawai_delete_confirm');
}
function delete_confirm(){
$id = $this->input->post('id');
$confirm = $this->input->post('confirm');
if ($confirm=="Hapus"){
$this->MPegawai->deletePegawai($id);
$this->session->set_flashdata('message','Data Pegawai telah dihapus!');
redirect('pegawai/index','refresh');
}else{
redirect('pegawai/index','refresh');
}
}
}
?>
Setelah model dan controller telah kita buat, maka kita akan membuat view sesuai kebutuhan kita, yaitu untuk halaman utama pegawai kita buat pegawai_home.php, halaman edit kita buat pegawai_edit.php , halaman tambah data kita buat pegawai_add.php, dan halaman delete kita buat pegawai_delete_confirm.php. Keempat file tersebut disimpan dalam folder ci-project/system/application/views. Dan berikut ini adalah kode program dari masing-masing file:
pegawai_home.php
<h1><?php echo $title;?></h1>
<p><a href="<?=base_url()?>index.php/pegawai/add">Tambah Pegawai</a></p>
<?php
if ($this->session->flashdata('message')){
echo "<p><i>".$this->session->flashdata('message')."</i></p>";
}
?>
<table width="450" border="1">
<tr>
<td width="27">NIP</td>
<td width="99">Nama</td>
<td width="101">Pekerjaan</td>
<td width="91">Alamat</td>
<td width="98">Aksi</td>
</tr>
<?php
if (count($pegawai)){
foreach ($pegawai as $key => $list){
?>
<tr>
<td><?=$list['nip'];?></td>
<td><?=$list['nama'];?></td>
<td><?=$list['pekerjaan'];?></td>
<td><?=$list['alamat'];?></td>
<td><a href="<?=base_url()?>index.php/pegawai/edit/<?=$list['id'];?>">Edit</a> | <a href="<?=base_url()?>index.php/pegawai/delete/<?=$list['id'];?>">Hapus </a></td>
</tr>
<?php
}
}
?>
<tr>
<td colspan="4">Total Pegawai </td>
<td><?=count($pegawai);?></td>
</tr>
</table>
<p> </p>
pegawai_add.php
<h1><?php echo $title;?></h1>
<form id="form1" name="form1" method="post" action="<?=base_url()?>index.php/pegawai/add">
<table width="400" border="1">
<tr>
<td colspan="2"><div align="center"><strong>Tambah Data Pegawai </strong></div></td>
</tr>
<tr>
<td colspan="2">
<?php
if ($this->session->flashdata('message')){
echo "<i>".$this->session->flashdata('message')."</i>";
}
?>
</td>
</tr>
<tr>
<td>NIP</td>
<td><input name="nip" type="text" id="nip" /></td>
</tr>
<tr>
<td>Nama</td>
<td><input name="nama" type="text" id="nama" /></td>
</tr>
<tr>
<td>Pekerjaan</td>
<td><input name="pekerjaan" type="text" id="pekerjaan" /></td>
</tr>
<tr>
<td>Alamat</td>
<td><input name="alamat" type="text" id="alamat" /></td>
</tr>
<tr>
<td> </td>
<td><input name="Tambah" type="submit" id="Tambah" value="Submit" /></td>
</tr>
<tr>
<td> </td>
<td><a href="<?=base_url()?>index.php/pegawai/">Ke halaman depan >> </a></td>
</tr>
</table>
</form>
pegawai_edit.php
<h1><?php echo $title;?></h1>
<form id="form1" name="form1" method="post" action="<?=base_url()?>index.php/pegawai/edit">
<table width="400" border="1">
<tr>
<td colspan="2"><div align="center"><strong>Edit Data Pegawai </strong></div></td>
</tr>
<tr>
<td colspan="2">
<?php
if ($this->session->flashdata('message')){
echo "<i>".$this->session->flashdata('message')."</i>";
}
?>
</td>
</tr>
<tr>
<td>NIP</td>
<td><input name="nip" type="text" id="nip" value="<?=$pegawai['nip'];?>"/></td>
</tr>
<tr>
<td>Nama</td>
<td><input name="nama" type="text" id="nama" value="<?=$pegawai['nama'];?>" /></td>
</tr>
<tr>
<td>Pekerjaan</td>
<td><input name="pekerjaan" type="text" id="pekerjaan" value="<?=$pegawai['pekerjaan'];?>" /></td>
</tr>
<tr>
<td>Alamat</td>
<td><input name="alamat" type="text" id="alamat" value="<?=$pegawai['alamat'];?>" /></td>
</tr>
<tr>
<input type="hidden" value="<?=$pegawai['id']?>" name="id" />
<td> </td>
<td><input name="Submit" type="submit" id="Tambah" value="Edit" /></td>
</tr>
<tr>
<td> </td>
<td><a href="<?=base_url()?>index.php/pegawai/">Ke halaman depan >> </a></td>
</tr>
</table>
</form>
pegawai_delete_confirm.php
<h1><?php echo $title;?></h1>
<?php
echo form_open('pegawai/delete_confirm');
echo "<p><label for='ptitle'>Nama : $pegawai[nama] </label><br/><br>";
echo form_hidden('id',$pegawai['id']);
echo form_submit('confirm','Hapus');
echo form_submit('confirm','Batal');
echo form_close();
?>
Nah, sekarang saatnya untuk melihat hasilnya. Caranya : buka browser kemudian ketikkan http://localhost/ci-project/index.php/pegawai/. Jika tidak ada kesalahan maka akan tampil seperti berikut:

Okey, latihan manipulasi database kita kali ini cukup, jika ada kesulitan / kesalahan silahkan bertanya dengan mengisi komentar di bawah. Dan akhirnya sampai jumpa di postingan berikutnya…bye2