Tutorial CodeIgniter Dasar Part II – CRUD chapter 2
Posted on 12. May, 2010 by Cheyuz in Code Igniter, PHP, Tutorial, _other
![]()
OK, malam ini kita lanjutkan tutorial kemarin… maaf kalo agak telat, soalnya koneksi Cheyuz lagi bermasalah dan bentrok ngerjain tugas kuliah juga.. hehe…
Pada tutorial kemarin, kita udah bisa menambahkan data ke dalam database… (Create) dan menampilkannya (semua data)…. Sekarang, kita akan membuat aksi lainnya, yaitu update/ubah dan delete/hapus pada setiap data di dalam sebuah table…
Kita lanjutkan tutorial kemarin (Tutorial CodeIgniter Dasar Part II – CRUD Chapter 1) yang waktu itu kita udah membuat table mahasiswa dan membuat fungsi untuk menambahkan datanya.. sekarang mari kita buat fungsi/aksi lainnya, yaitu update dan delete…
Kita review hasil kerjaan dari tutorial kemarin…
<h1>Data Mahasiswa</h1>
<table>
<thead>
<tr>
<th>No</th>
<th>NIM</th>
<th>Nama</th>
<th>Alamat</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php $i = 1 ?>
<?php foreach($mahasiswa as $m): ?>
<tr>
<td><?php echo $i++ ?></td>
<td><?php echo $m->nim ?></td>
<td><?php echo $m->nama ?></td>
<td><?php echo $m->alamat ?></td>
<td></td>
</tr>
<?php endforeach ?>
</tbody>
</table>Sebelumnya kita tambahkan 2 buah anchor (link) untuk membuat hyperlink menuju ke masing2 fungsi tersebut,.. yaitu anchor untuk edit dan delete.. (catatan: edit = update).
Buatlah dua buah anchor dengan bentuk kode seperti ini di kolom paling kanan tabel:
<?php echo anchor('data_mahasiswa/edit/'.$m->id, 'Ubah') . ' | ' . anchor('data_mahasiswa/delete/'.$m->id, 'Hapus'); ?>
jadi bentuknya seperti ini:
<h1>Data Mahasiswa</h1>
<table>
<thead>
<tr>
<th>No</th>
<th>NIM</th>
<th>Nama</th>
<th>Alamat</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php $i = 1 ?>
<?php foreach($mahasiswa as $m): ?>
<tr>
<td><?php echo $i++ ?></td>
<td><?php echo $m->nim ?></td>
<td><?php echo $m->nama ?></td>
<td><?php echo $m->alamat ?></td>
<td><?php echo anchor('data_mahasiswa/edit/'.$m->id, 'Ubah') . ' | ' . anchor('data_mahasiswa/delete/'.$m->id, 'Hapus'); ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>previewnya:
Data Mahasiswa
| No | NIM | Nama | Alamat | Aksi |
|---|---|---|---|---|
| 1 | 0700335 | Cecep Yusuf | Cipanas, Cianjur | edit | delete |
| 2 | 0800113 | Fitri Yuniar | Jakarta | edit | delete |
1. Menghapus Data
Kemudian setelah itu, kita buat sebuah function di dalam model mahasiswa_model.php di folder /system/application/models:
<?php ... function delete($id){ $this->db->delete('mahasiswa', array('id'=>$id)); } ... ?>
Kemudian, di controller data_mahasiswa.php di /system/application/controllers tambahkan function berikut:
... function delete($id){ $this->mahasiswa_model->delete($id); redirect('data_mahasiswa'); } ...
fungsi di atas memanggil fungsi dari objek Mahasiswa_model yaitu delete, yang akan menghapus data dari table mahasiswa yang id nya adalah parameter dari function tersebut ($id)… Kemudian setelah itu baru diredirect/dialihkan ke tampilan index dari controller data_mahasiswa.
2. Mengubah Data
Nah, untuk mengubah data.. kita harus tahu fungsi untuk mengubah database dari Active Record yang disediakan oleh CI.. yaitu $this->db->update($nama_table, $data)…
Sekarang, kita tambahkan function update() dan select($id) untuk menyeleksi SATU data yang akan dipilih berdasarkan id-nya… dibuat di model mahasiswa.php di /system/application/models,,,
... function update($id){ $this->db->where('id',$id)->update('mahasiswa', $_POST); } function select($id){ return $this->db->get_where('mahasiswa', array('id'=>$id))->row(); } ...
Di situ ada fungsi update(), yang equivalen dengan query update from mahasiswa where id=$id set $_POST. Dan fungsi select yang nantinya akan kita gunakan ketika nilai dari data akan dimasukkan ke dalam sebuah form (untuk diedit) sehingga kita menggunakan row() yang berfungsi meretrieve data menjadi objek, tetapi hanya SATU BARIS DATA... (segitunya sampe dipertebel hehe
)
Setelah kita membuat modelnya… kemudian kita tambahkan function edit() di Controller data_mahasiswa.php di /system/application/controller/:
... function edit($id){ $data['m'] = $this->mahasiswa_model->select($id); $this->load->view('edit_view',$data); } ...
Di situ kita buat sebuah fungsi edit di controller data_mahasiswa.php dengan parameter $id.. karena kita akan mengubah data pada setiap data yang ada dengan mengambil id-nya… dan dipanggillah fungsi update() dari model mahasiswa… Tetapi sebelumnya kita harus ngambil sebuah data mahasiswa tertentu berdasarkan $id yang ada untuk dimasukkan ke dalam form,, sehingga nantinya bisa diubah… makanya kita membuat fungsi select()
Ini adalah view yang harus ada di /system/application/views dengan nama file edit_view.php (yang udah kita masukkan ke dalam fungsi $this->load->view() di controller.
Ini adalah isi dari view-nya:
<h1>Ubah data</h1>
<form action="" method="post">
<table>
<tr>
<th>NIM</th>
<td><input name="nim" value="<?php echo $m->nim ?>" /></td>
</tr>
<tr>
<th>Nama</th>
<td><input name="nama" value="<?php echo $m->nama ?>" /></td>
</tr>
<tr>
<th>Alamat</th>
<td><textarea name="alamat"><?php echo $m->alamat ?></textarea></td>
</tr>
<tr>
<th></th>
<td><input type="submit" value="ubah" /></td>
</tr>
</table>
</form>Jadi, ketika view tersebut diload, maka form akan langsung terisi dengan data yang kita panggil dengan $id yang ada di URL… (yang merupakan parameter)
Kemudian, di controller kita tambahkan code berikut:
... function edit($id) { if($_POST==NULL) { $data['m'] = $this->mahasiswa_model->select($id); $this->load->view('edit_view',$data); }else { $this->mahasiswa_model->update($id); redirect('data_mahasiswa'); } } ...
Kita lihat, ada fungsi if else… buat apa tuh??
itu buat ngecek apakah data udah dikirim atau belum (NULL)? Nah, klo udah dikirim berarti bakal diupdate… kalo belum maka program akan mengambil data (select) dan dimasukkan ke dalam form…
Kemudian terdapat fungsi redirect (sama seperti add), ketika data sudah diubah, maka halaman langsung dialihkan ke dalam action yang ada di prameter redirect tersebut….
Nah, sejauh ini kita sudah membuat aplikasi CRUD lengkap… Create, Read, Update, dan Delete….
Silakan cek program yang kita bikin sejauh ini dengan mengetikkan alamat url : http://localhost/webku/data_mahasiswa
Mudah-mudahan ini bisa ngebantu kita dalam suatu kasus tertentu di mana misalnya tugas maupun kerjaan meminta kita dibuatkan programnya dengan menggunakan CI,,,
Nanti kita lanjut tutorialnya di Part 3, tentang LAYOUTING dan TEMPLATING di Code Igniter….
Coming Soon ya…
Kalo ada pertanyaan, silakan komentar di bawah ini, insya Allah dibalas





15 Comments
top bin tob
14. May, 2010
cakepppppsssssss surakeppppsss tutorial na
Cheyuz
14. May, 2010
hehe makasih gan
ermalia
17. May, 2010
makasih lagi tutorialnya….
mudah dimengerti….
jadi bisa cepet belajarnya…
Cheyuz
18. May, 2010
sama2 ermalia…
mamed
25. May, 2010
Kalo mau buat web dinamis yang jot gimana?
Cheyuz
25. May, 2010
maksudnya gimana?
agaluh
27. Jun, 2010
salam kenal,
keren tutor CInya nih, ada pertanyaan sedikit ya mas cheyuz di edit_view.php
di baris <input name="nim" value="id ?>” />
“id” seharusnya “nim” karena yg akan diretrive nilai dari “nim” kan??
Cheyuz
03. Jul, 2010
@agaluh: oh iya mas bener, udah saya perbaiki, makasi buat ralatnya
septian Maulana
16. Jul, 2010
Nice Gan
himawari
30. Jul, 2010
numpang tanya dunk, ,
kalo anchornya di jadiin bentuk tombol gimana ya caranya?
newbie nih…
thx b4
^.^
rahayu_nikmah
02. Aug, 2010
Luar binasa gan..
Cheyuz
05. Aug, 2010
@himawari: bikin style (class) di CSS yang menyerupai bentuk tombol.. misalnya class “button”… jadi nanti di anchor ditambahkan atribut ‘class’… kode ga bisa ditulis di sini..
Cheyuz
05. Aug, 2010
@rahayu_hikmah: thankz
virda
05. Aug, 2010
hmm…. blh minta ymnya tak ??
ada yg mo dtnyain niiyh
Cheyuz
18. Aug, 2010
@shizuka: jangankan YM, no HP pun dikasihh… hehe
Leave a reply