Tutorial CodeIgniter Dasar Part II – CRUD chapter 1
Posted on 10. May, 2010 by Cheyuz in Code Igniter, Tutorial, _other
![]()
Di tutorial yang kedua ini, kita akan bahas bagaimana cara membuat CRUD dengan menggunakan CI…. kenapa kita harus belajar membuat aplikasi CRUD? soalnya ini merupakan dasar kita untuk ke depannya.. untuk membuat aplikasi yang kompleks, sebenarnya kita hanya mengelola dan mengolah database, meliputi membuat database (Create), membaca (Read), mengubah (Update), menghapus (Delete), ato disingkat menjadi CRUD.
Adapun di sini kita akan belajar membuat model untuk data yang akan diolah, view untuk membuat interface, dan controller untuk mengolah model dan ngeload view..
OK, pertama-tama, kita buat sebuah database bernama tutorial_ci, dan buatlah sebuah table bernama mahasiswa (kenapa selalu ‘mahasiswa’? ga punya contoh lain
), isinya ada id, nim, nama, alamat.. OK segitu saja.. kamu tinggal copy SQL berikut:
CREATE TABLE IF NOT EXISTS `mahasiswa` ( `id` int(5) NOT NULL AUTO_INCREMENT, `nim` varchar(20) NOT NULL, `nama` varchar(100) NOT NULL, `alamat` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Jadi kita membuat tabel kosong bernama ‘mahasiswa’ dengan field seperti di atas…
1. Menampilkan semua data
OK, langkah pertama adalah membuat sebuah model….
Buatlah sebuah file mahasiswa_model.php di /system/application/models dengan isi adalah barisan kode seperti berikut:
<?php /** * @author Cecep Yusuf */ class Mahasiswa_model extends Model { } ?>
Sejauh ini, kita sudah membuat sebuah model untuk mahasiswa, yang nantinya mempunyai banyak fungsi untuk mengolah table ‘mahasiswa’…
Di bawah ini, kita akan menambahkan function selectAll(), yang mana berfungsi untuk menyeleksi semua field di table mahasiswa (select * from mahasiswa), jadi code tadi setelah ditambahkan menjadi seperti berikut:
<?php /** * @author Cecep Yusuf */ class Mahasiswa_model extends Model { function selectAll(){ return $this->db->get('mahasiswa')->result(); } } ?>
Nah, sejauh ini kita sudah bikin function selectAll() yang berfungsi untuk memilih semua field dari table mahasiswa.
Setelah itu, model akan diolah oleh controller, jadi sekarang kita buat sebuah controller yang berfungsi untuk memanipulasi objek mahasiswa_model…
OK, buatlah sebuah controller bernama data_mahasiswa.php di /system/application/controllers dengan isi file sebagai berikut:
<?php /** * @author Cecep Yusuf */ class Data_mahasiswa extends Controller { function __construct() { parent::Controller(); } } ?>
function __construct() adalah sebagai konstruktor… berbagai perintah yang ada di dalam fungsi ini akan selalu dipanggil di saat objek Data_mahasiswa dibuat… jadi berbagai fungsi untuk meload library, model, helper, dan sebagainya, kita tinggal masukkan di function ini supaya tidak diketik ulang di setiap fungsi….
Karena kita akan meload model mahasiswa_model setiap kali dibuat controller, maka kita load modelnya di bagian __construct() di dalam controller Data_mahasiswa. Jadi kode lengkapnya seperti berikut:
<?php /** * @author Cecep Yusuf */ class Data_mahasiswa extends Controller { function __construct() { parent::Controller(); $this->load->model('mahasiswa_model'); } } ?>
Kemudian, kita buat function index() sebagai penampil semua data yang ada di table mahasiswa, jadi URLnya akan berbentuk http://localhost/webku/data_mahasiswa/index ATAU http://localhost/webku/data_mahasiswa (Index tidak perlu dituliskan)
<?php /** * @author Cecep Yusuf */ class Data_mahasiswa extends Controller { function __construct() { parent::Controller(); $this->load->model('mahasiswa_model'); } function index(){ $data['mahasiswa'] = $this->mahasiswa_model->selectAll(); $this->load->view('data_mahasiswa_view', $data); } } ?>
Di dalam function index() di atas, kita lihat ada script seperti ini:
$data['mahasiswa'] = $this->mahasiswa_model->selectAll();
kode tersebut berarti data hasil keluaran dari function selectAll() di model mahasiswa_model berupa array dan disimpan di dalam array $data['mahasiswa'], yang nantinya data tersebut bisa diakses di view..
Kemudian kita lihat lagi, ada script berikut:
$this->load->view('data_mahasiswa_view');
function view() dalam objek ‘load’ adalah untuk meload view yang sudah kita buat di /system/application/views, dengan mengeset variable hasil ekstrak dari variable $data, sehingga nanti bisa diakses dari view..
OK, kita buat view-nya dengan nama file data_mahasiswa_view.php di /system/application/views dengan isi sebagai berikut 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></td>
</tr>
<?php endforeach ?>
</tbody>
</table>Sekarang, coba buka alamat di browser: http://localhost/webku/data_mahasiswa, keluar apa? table kan? dengan data KOSONG….
OK, sekarang kita lanjut ke sesi yg kedua.. yaitu MENAMBAHKAN DATA…
2. Menambahkan data
Kita akan membuat tampilan seperti berikut:
Data Mahasiswa
| No | NIM | Nama | Alamat | Aksi |
|---|---|---|---|---|
| 1 | 0700335 | Cecep Yusuf | Cipanas, Cianjur | edit | delete | detail |
| 2 | 0800113 | Fitri Yuniar | Jakarta | edit | delete | detail |
Silakan buat sebuah anchor() (a) di bawah table di dalam file data_mahasiswa_view.php..
Jangan lupa sebelumnya load dulu url_helper di controller dengan cara menambahkan code berikut:
<?php ... $this->load->helper('url'); ... ?>
Buatlah sebuah anchor sebagai link ke function add() di Controller (fungsi ini belum dibuat), caranya dengan menambahkan script berikut:
<?php echo anchor('data_mahasiswa/add', 'Tambah Data') ?>
jadi kode lengkapnya di data_mahasiswa_view.php adalah sebagai berikut:
<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>
<?php echo anchor('data_mahasiswa/add', 'Tambah Data') ?>Langkah selanjutnya adalah membuat function add() di controller data_mahasiswa.php, tambahkan function ini:
... function add(){ $this->load->view('add_view'); } ...
Di sana terdapat code untuk meload file view yang bernama add_view.php…
Silakan buat view add_view.php di folder /system/application/views dengan isi sebagai berikut:
<h1>Tambah data</h1> <form action="" method="post"> <table> <tr> <th>NIM</th> <td><input name="nim" /></td> </tr> <tr> <th>Nama</th> <td><input name="nama" /></td> </tr> <tr> <th>Alamat</th> <td><textarea name="alamat"></textarea></td> </tr> <tr> <th></th> <td><input type="submit" value="tambah" /></td> </tr> </table> </form>
Method yang digunakan yaitu POST, yang akan menghasilkan sebuah variable array $_POST…
Sebelumnya, kita tambahkan function insert() di model mahasiswa_model.php seperti berikut:
... function insert($set){ $this->db->insert('mahasiswa', $set); } ...
function insert tersebut sudah ada di library database CI, jadi kita tidak usah membuat query ‘insert into….’ lagi…
sekarang, di Controller data_mahasiswa.php kita ubah function add() menjadi seperti berikut:
... function add() { if($_POST==NULL) { $this->load->view('add_view'); }else { $this->mahasiswa_model->insert($_POST); redirect('data_mahasiswa/index'); } } ...
Kita jelasin, di sana ada fungsi If untuk mengecek apakah data dari $_POST sudah terSET atau belum… kalo kita udah mengklik submit, berarti kita sudah mengeset variable $_POST… jika belum (=NULL), maka program hanya meload view saja….
di sana ada function redirect(), yaitu function bawaan CI, yang berfungsi untuk me-redirect halaman (mengalihkan), sehingga ketika kita menambahkan data, maka akan dialihkan lagi ke index…
Sejauh ini, kamu berhasil membuat aplikasi CI untuk menambahkan data ke database dan menampilkannya….
silakan ketik url berikut untuk melihat hasilnya: http://localhost/webku/data_mahasiswa
Sementara segini aja dulu ya…
Cheyuz-nya cape 2 jam ngetik trus nih,,, hahaha.. ![]()
tapi gpp, demi kalian
Nanti di part III kita akan membuat untuk update dan delete nya….
selamat mencoba…
SALAM WEB DEVELOPER!





25 Comments
tebo
10. May, 2010
mantab gan tutornya
heuehuehu
Cheyuz
10. May, 2010
hehehe thankz gan
faer
12. May, 2010
mksh tutorialnya….ditunggu tutorial berikutnya…
Cheyuz
12. May, 2010
sip, sama2 hehe
Nubitol
14. May, 2010
Atulah disani CI, disana CI. Bosen! kenapa sih Toys Framework gitu bisa begitu populer. PHP aja udah acak-acakan dan bener-bener bahasa pemrograman maianan buat anak kecil, ditambah lagi Toys Framework semacam Code Igniter yang acak-acakan yang tak lebih dari memisah logic dan viewer dan akhirnya pada view nya juga ada logic nya… Halah..
Cheyuz
17. May, 2010
kenapa sering ngebahas CI trus? soalnya tugas pemrograman internet kami materinya Code Igniter… jadi saya bikin tutorial ‘toys framework’ CI supaya anak2 ilkom 07 bisa mengerti CI dan menguasai materi dalam promnet… terima kasih…
newbie CI
18. May, 2010
Mas Cheyuz salam kenal…
saya mo tanya…
kalo kita mo ambil data dari table lalu data hasil query tersebut saya mo masukan ke table lain?
bagaimana itu mas…
contoh :
Calon Staff
ID Nama HOBI
1 aaaa baca
2 bbbbb nulis
Staff
Nama HOBI
xxxx tidur
yyyyy main
jika ‘xxxx’ ingin diganti dengan ‘aaaa’ dan data dari HOBI dari aaa masuk ke TABEL STAFF
terima kasih…
Cheyuz
20. May, 2010
tinggal diselect aja dulu, trus dimasukkin ke table..
$set = $this->db->get(‘calon_staff’)->result_array();
foreach($set as $s){
unset($s['id']);
$this->db->insert(‘nama_hobby’, $s);
}
lebih jelas YM aja..
bukmacherzy promocje
01. Jun, 2010
Hello dude, can i post articles to your website ? Let me know if you are interested
Cheyuz
12. Jun, 2010
boleh, tapi jangan lupa untuk mencantumkan sumbernya…
fitra
18. Jun, 2010
gan klo pass di run error seperti ini :
An Error Was Encountered
Unable to locate the model you have specified: mahasiswa_model
itu apa nya yah sorry newbie nich
thank’s
Cheyuz
18. Jun, 2010
harusnya bisa gan… paling yg salahnya itu ada yg salah di class mahasiswa_model, udah dicek sama ato ngga?
fitra
21. Jun, 2010
sorry gan nanya lagi nich syntax
$this->load->helper(‘url’);
itu naronya di mana gan di data_mahasiswa.php atau di data_mahasiswa_view.php
sy taro di data_mahasiswa_view.php error gan
seperti ini errornya : Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\xampp\htdocs\webku\system\application\controllers\data_mahasiswa.php on line 29
fitra
21. Jun, 2010
sorry gan di atas ada slh ketik :
sy taro di data_mahasiswa.php error gan
error : Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\xampp\htdocs\webku\system\application\controllers\data_mahasiswa.php on line 29
fitra
21. Jun, 2010
Sorry gan dah bisa , thank’s yah
nice tuto gan
joe182
22. Jul, 2010
Saya mengalami masalah sama dengan fitra, naruh $this->load->helper(‘url’);
dimana mas?
terima kasih
arif
27. Jul, 2010
Mau nambahin aja:
class Mahasiswa_model extends Model {
function __construct() {
parent::Model();
$this->load->database();
}
function selectAll(){
return $this->db->get(‘mahasiswa’)->result();
}
}
nice tutorial.. well
Cheyuz
27. Jul, 2010
@arif: ga usah diload lagi gan… kan udah diload di autoload.php
heuheu
Cheyuz
27. Jul, 2010
@joe182: di Controller, sebelum statement dijalankan…
lina
28. Jul, 2010
html di view bisa dibikin lebih simple ga mas. ato ada library tambahan ga biar lebih simple. misalnya kayak di Yii tinggal load CHtml::beginForm(), CHtml::buttonSubmit(”)….. dll…
thanks.
Cheyuz
28. Jul, 2010
@lina: ada mba… pake helper bawaan CI… tapi masih jelek… masih prosedural… paling klo saya biasanya bikin library sendiri buat form…
lina
28. Jul, 2010
pake form_open(), form_input, form_submit.. dll ya?

aku lagi memulai belajar framework ni.
belajar Yii dah tobat (berat) trus ganti CI lebih mudah dipahami
oiya kalo
if ($this->input->post(’submit’))…..
bisa diganti pake isset ga ya mas? seperti apa jadinya..
Tutorial CodeIgniter Dasar Part II – CRUD chapter 2 | Harian Cheyuz
01. Sep, 2010
[...] 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.. [...]
Tutorial CodeIgniter Dasar Part III - Page Template | Harian Cheyuz
01. Sep, 2010
[...] Tutorial CodeIgniter Dasar Part II – CRUD chapter 1 [...]
Multiple Input Form dengan Menggunakan Codeigniter | Harian Cheyuz
01. Sep, 2010
[...] sebuah controller data_mahasiswa.php (atau Anda bisa melanjutkan tutorial dari Tutorial Dasar Part I untuk membuat controller data_mahasiswa.php dan [...]
Leave a reply