CodeIgniter 3# Contoh Aplikasi Manipulasi Database CI versi 1.7.x (insert,update,delete)

CodeIgniter 3# Contoh Aplikasi Manipulasi Database CI versi 1.7.x (insert,update,delete)

UPDATE : Jika Anda menggunakan CodeIgniter versi 2.x maka silahkan buka postingan Contoh Manipulasi Database di CI 2.1.1

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 1.7.x . 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:

[sql]

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 ;

[/sql]

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]

<?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’);
}
}
?>

[/php]

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]

<?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’);
}
}
}
?>

[/php]

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

[html]

<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>&nbsp; </p>

[/html]

pegawai_add.php

[html]

<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>&nbsp;</td>
<td><input name=”Tambah” type=”submit” id=”Tambah” value=”Submit” /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><a href=”<?=base_url()?>index.php/pegawai/”>Ke halaman depan >> </a></td>
</tr>
</table>
</form>

[/html]

pegawai_edit.php

[html]

<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>&nbsp;</td>
<td><input name=”Submit” type=”submit” id=”Tambah” value=”Edit” /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><a href=”<?=base_url()?>index.php/pegawai/”>Ke halaman depan >> </a></td>
</tr>
</table>
</form>

[/html]

pegawai_delete_confirm.php

[html]

<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();

?>

[/html]

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:

insert,update

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

About the author

gieart administrator

67 Comments so far

gojegPosted on12:47 am - Jul 26, 2009

Pertamaxx..
Lanjut gan..
Gik, iklanmu pop=up metu terus.. Golek pluguns WP sing nggo mateni pop-up.

adminPosted on7:28 am - Jul 26, 2009

Iyo e, padahal wingi sedino wis gak ono, saiki kumat meneh….

akhrikasPosted on6:49 am - Dec 1, 2009

mas gie,
1. di route.php $route[‘default_controller’] = “pegawai”;
2. di config.php $config[‘base_url’] = “http://localhost/kontak/”;
3. ada error di <a href="
Fatal error: Call to undefined function base_url() in C:xampphtdocskontaksystemapplicationviewspegawai_home.php on line 2

mohon pencerahannya, terima kasih mas gie

adminPosted on1:33 pm - Dec 10, 2009

Coba buka pada file autoload.php, pada baris $autoload[‘helper’] = array() , ubah menjadi $autoload[‘helper’] = array(‘url’,’form’,’text’,’date’);. Error yang Akhrikas temukan kemungkin disebabkan karena helper URL belum diload. Semoga membantu…

pinkmanPosted on6:47 am - Feb 7, 2011

error Fatal error: Call to a member function flashdata() on a non-object in C:xampphtdocsCIPegawaisystemapplicationviewspegawai_home.php on line 5

bisa dibantu?

trim

    adminPosted on6:58 am - Feb 7, 2011

    Spertinya library session blum di load mas… coba buka file di system/application/config/autoload.php, cari baris yang ada $autoload[‘libraries’] kemudian tambahkan ‘session’ dalam array-nya. Misalny seperti berikut ini:
    $autoload[‘libraries’] = array(‘database’, ‘session’, ‘form_validation’)

    Thanks… semoga membantu… 🙂

ozanPosted on9:00 pm - Apr 27, 2011

Gimana kalok multipel delet mengunakan cekbox gan.

    adminPosted on4:14 am - Apr 29, 2011

    utk multiple checkbox kita tinggal memberi nama checkbox tesb sbg variable array yang menampung id id yang akan di hapus. Misal di view kita tambahkan chekbox sperti ini :
    [php]
    <input type="checkbox" name="records[]" value=/>
    [/php]

    kemudian pada bagian controller kita loop sebanyak data yang ada (record yng dicek) utk dihapus:
    [php]
    $records = $this->input->post(‘records’);
    foreach ($records as $id => $key){
    // loop utk penghapusan sebanyak data yng di cek
    $this->MPegawai->delete($id)
    }
    [/php]

    Saya kira sperti itu bisa mas.. semoga bisa membantu…:-)

marataPosted on2:58 am - Apr 29, 2011

mas saya masih baru belajar nnih,ada yg error bunyinya seperti ini :Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in C:xampphtdocslat1ci_projectsystemapplicationcontrollerspegawai.php on line 8, itu knapa y

oyibPosted on1:12 am - May 5, 2011

mas numpang tanya, bisa gak ngajar private tntng CI?

oyocksPosted on3:50 pm - May 5, 2011

gan tolong bantuannya gimana nampilan edit, update delete pada browser, masih pendatang baru gan

aonePosted on2:31 am - May 14, 2011

gimana kalo databasenya sudah ada relasi gan?

AndrePosted on6:05 am - Jun 16, 2011

saya dapat error mesaage kaya gini terus Mas :
A PHP Error was encountered

Severity: Notice

Message: Undefined property: MPegawai::$db

Filename: models/Mpegawai.php

Line Number: 22

Fatal error: Call to a member function order_by() on a non-object in D:xampphtdocstrysystemapplicationmodelsMpegawai.php on line 22

adminPosted on10:50 am - Jun 16, 2011

Kemungkinan library databaseny belum di load itu mas, coba buka file autoload.php di folder config, trus bagian $config[‘libraries’] ditambahkan ‘database’ di dalam arraynya jadi => array(‘database’). 🙂

    WansPosted on5:35 am - Sep 17, 2011

    Fatal error: Class ‘Controller’ not found in C:xampphtdocskantorapplicationcontrollerspegawai.php on line 2

    autoload dan config nya smua udah ditambahin.. mhon petunjuknya…

      adminPosted on6:11 am - Sep 17, 2011

      Masnya pake CI versi berapa?? tutorial ini masih pake yang 1.7, klo yang versi > 2.0, pas extends Controller berubah jadi extends CI_Controller, begitu jg dengan model, Model => CI_Model. Trims

        WansPosted on8:14 am - Sep 17, 2011

        klo gt, mlah jadi kyak gni:
        Fatal error: Call to undefined method CI_Controller::Controller() in C:xampphtdocskantorapplicationcontrollerspegawai.php on line 4

        pake CI 2.0.3, xampp 1.7.4, editor CodeLobster

WansPosted on9:20 am - Sep 17, 2011

sudah saya kirimkan,, silakan di cek

fatchurPosted on2:20 am - Oct 3, 2011

Fatal error: Call to undefined method CI_Controller::ci_controller() in C:Program FilesxampphtdocsCodeIgniterapplicationcontrollerspegawai.php on line 4

neniPosted on3:28 pm - Dec 23, 2011

ko saya cobain error yaahh??.. jadi waktu buka form edit, d textfieldnya malah ada “” bukan isi nya.. itu gara gara apa yaa??.. mohon bantuannya 🙂

shidik saragihPosted on4:40 pm - Jan 13, 2012

suwun mas 😀
akhirnya bisa juga 🙂

rhmaNdaPosted on4:37 am - Jun 19, 2012

maaf, setelah saya ikuti source code di atas saya mengalami

“A Database Error Occurred”
Unable to connect to your database server using the provided settings.
Filename: C:xampphtdocsvmisystemdatabaseDB_driver.php
Line Number: 124

Kira-kira koneksi database saya salah dimananya ya..? Terima Kasih

AlfredPosted on8:54 am - Jun 21, 2012

Mas kalau errornya seperti ini knpa ya? ada apa dengan function getAllEmployee() ??

Fatal error: Call to a member function getAllEmployee() on a non-object inC:xampphtdocsvmiapplicationcontrollersjtemployee.php on line 12
saya gunakan nama employee sbg ganti ‘pegawai’.  Terima kasih.

AnonymousPosted on5:27 am - Jun 25, 2012

kalo error nya kaya gini gimana mas?
Fatal error: Class 'Controller' not found in C:xampphtdocsMeitaCIapplicationcontrollerspegawai.php on line 2.

AnonymousPosted on2:31 am - Jul 28, 2012

mas tolong dong kalau msalah saya begini bagaimana mengatasinya Fatal error: Call to a member function num_rows() on a non-object in C:xampphtdocsskripsisysakademiklibrariesSession.php on line 209.

benyPosted on10:48 am - Jan 24, 2013

Mas, Solusi error ini gmna??

Fatal error: Call to a member function getAllPegawai() on a
non-object in C:xampphtdocsCIapplicationcontrollerspegawai.php
on line 10

    gieartPosted on10:57 am - Jan 24, 2013

    dari error messageny menunjukan klo tidak dikenal fungsi getAllPegawai(), coba dicek di model Pegawai.. mungkin saja blum dibuat fungsi getAllPegawai() 😀

CAh AlììmPosted on2:12 pm - Apr 18, 2013

atal error: Class 'Controller' not found in C:xampphtdocslatihanapplicationcontrollerspegawai.php on line 2…. kok bisa jadi gini mas.

Rizwandi SalehPosted on2:55 am - Apr 27, 2013

semua sudah di COPY paste tapi setelah dijalankan hasilnya :
Fatal error: Class 'Controller' not found in I:xampphtdocscontohapplicationcontrollerspegawai.php on line 3.

ErmawanPosted on9:59 pm - Jun 17, 2013

mas, bikin supaya “flashdata” nya hilang setelah beberapa detik gitu gimana ya mas?

Mohon infonya

Terimakasih

http://officialitoru.blogspot.com/

Faishaal NaafishPosted on5:59 am - Sep 5, 2013

SWT
Fatal error: Call to undefined method CI_Controller::Controller() in D:xampphtdocsFaishalapplicationcontrollerspegawai.php on line 6.

Christian NuelPosted on12:50 pm - Oct 19, 2013

gan , klo buat tuttor di check versi CI nya. No offense gan , di check CI versi berapa. Terus di debug dulu , error atau ngga. soalnya kebanyakan error nya di tanda baca. klo error fungsi ga masalah , tapi klo nulis object di luar class kan aneh gan . Of course getAllEmployee() nya ga di kenali orang ga ada di dalam class. better be quick check baik tanda baca sama bagaimana kerjanya

Thanks ,

Nur ElahPosted on1:49 am - Jun 29, 2015

terima kasih mas share nya, setelah saya coba cara seperti itu mas

$id_mhs = $this->input->post(“id_mhs”);
foreach($id_mhs as $id=>$key){
echo $id;
}

hasilnya error sbb:

A PHP Error was encountered

Severity: Warning

Message: Invalid argument supplied for foreach()

Filename: controllers/mst_mahasiswa.php

Line Number: 37

kira2 kenapa ya mas?
Terima kasih sebelumnya,

    gieartPosted on4:36 pm - Jul 9, 2015

    itu variabel $id_mhs isinya single data atau array mbak? klo single data yang memang jadi error gitu klo di loop foreach. Klo pake foreach harusnya $id_mhs adalah array data id mahasiswa (id mahasiswanya lebih dari 1). Thanks

Leave a Reply