Entah mengapa banyak yang menanyakan melalui email tentang bagaimana membuat operasi CRUD pada Codeigniter.. padahal kan saya penulis buku tentang CakePHP?.. tapi tak apa deh.. saya ingin memberikan tutorial mengenai cara pembuatan operasi CRUD pada Codeigniter.. agar lebih mudah dimengerti, saya akan memberikan step by step.. pada pembahasan ini saya akan dimulai dari yang pertama, yaitu Menambah Data
Sebelumnya siapkan databasenya terlebih dahulu, misalnya nama databasenya adalah latihanci
pada database tersebut memiliki sebuah tabel bernama tabel komentar, dengan spesifikasi field sebagai berikut :
---------------------------------------------------------------
Field | Type | Length | PrimaryKey | Autoincreament
---------------------------------------------------------------
id | INT | 11 | * | *
nama | Varchar | 50
url | varchar | 100
pesan | TEXT
Langkah pertama :
buka file autoload.php yang terdapat dalam folder system/application/config. kemudian lakukan konfigurasi load helper dan library berikut :
$autoload[‘libraries’] = array(‘able’, ‘database’);’
$autoload[‘helper’] = array(‘url’, ‘html’, ‘form’);
Penjelasan Kode:
- pada konfigurasi tersebut kita load database yang berfungsi untuk me-load database dari model yang akan kita buat secara otomatis. lalu pada helper, kita lakukan load otomatis pada url (untuk redirect), html (agar bisa menggunakan penanganan kode html), dan form (sama seperti html).
Langkah kedua:
Buka file database.php yang terdapat dalam folder system/application/config, berguna untuk melakukan konfigurasi agar terkoneksi dengan database. lakukan konfigurasi pada skrip berikut :
$db[‘default’][‘hostname’] = “localhost”; // Server lokal
$db[‘default’][‘username’] = “root”; // Username MySQL
$db[‘default’][‘password’] = “”; // Password MySQL
$db[‘default’][‘database’] = “latihanci”; // Nama database yang digunakan
$db[‘default’][‘dbdriver’] = “mysql”; // kita menggunakan MySQL sebagai database
Langkah ketiga : (Membuat file Model)
buat file model dengan nama mkomentar.php dan simpan dalam folder system/application/models. isi skripnya seperti berikut :
1. <?php
2. class Mkomentar extends Model {
3.
4. function tambah() {
5. $nama = $this->input->post(‘nama’);
6. $url = $this->input->post(‘url’);
7. $pesan = $this->input->post(‘pesan’);
8. $data = array(
9. ‘nama’ => $nama,
10. ‘url’ => $url,
11. ‘pesan’ => $pesan
12. );
13. $this->db->insert(‘komentar’, $data);
14. }
15. }
16. ?>
Penjelasan Kode :
- pada baris ke-2, merupakan deklarasi untuk menciptakan class model bernama mkomentar.
- pada baris ke 4, skrip untuk menciptakan function tambah guna proses tambah data.
- pada baris ke 5 s/d 7, tahu kan?.. kalo di PHP classic mah dapat disamakan seperti kode :
$nama = $_POST[‘nama’];
$url = $_POST[‘url’];
$pesan = $_POST[‘pesan’];
- pada baris 8 s/d 12, untuk menjadikan inputan tersebut kedalam bentuk array.
- pada baris ke-13, proses penyimpanan kedalam tabel komentar
Langkah keempat : (Membuat File Controller)
Buat file controller dengan nama ckomentar.php dan simpan dalam folder system/application/controllers. adapun isi skripnya seperti berikut :
1. <?php
2. Class Ckomentar extends Controller {
3.
4. function tambahdata() {
5.
6. if ($this->input->post(‘submit’)) {
7. $this->load->model(‘mkomentar’);
8. $this->mkomentar->tambah();
9. redirect(’ckomentar/index’);
10. }
11.
12. $this->load->view(‘tambahkomentar’);
13. }
14. }
15. ?>
Penjelasan Kode :
- pada baris ke-2, skrip deklarasi untuk menciptakan class controller bernama ckomentar.
- pada baris ke-4, skrip untuk menciptakan function tambahdata.
- pada baris ke-6, jika diklik tombol submit dari form, maka akan dilakukan proses selanjutnya.
- pada baris ke-7, skrip untuk me-load model mkomentar.php
- pada baris ke-8, proses pemanggilan function tambah pada class model mkomentar, disinilah proses penyimpanan tersebut dilakukan.
- pada baris ke-9, skrip untuk mengarahkan (redirect) kepada posisi ckomentar.
- pada baris ke-12, skrip untuk melakukan load file view form tambah data.
Langkah kelima : (Membuat File View)
karena pada skrip diatas me-load file view bernama tambahkomentar, maka kita buat file view bernama tambahdata.php dan simpan dalam folder system/application/views. adapun skripnya seperti berikut :
<h3>Tambah Data</h3>
<?php echo form_open('ckomentar/tambahdata'); ?>
<table>
<tbody>
<tr>
<td>Nama</td>
<td>:</td>
<td><?php echo form_input('nama'); ?></td>
</tr>
<tr>
<td>Url</td>
<td>:</td>
<td><?php echo form_input('url'); ?></td>
</tr>
<tr>
<td>Pesan</td>
<td>:</td>
<td><?php echo form_textarea('pesan'); ?></td>
</tr>
<tr>
<td><?php echo form_submit('submit', 'Submit', 'id="submit"'); ?></td>
</tr>
</tbody>
</table>
<br />
<?php echo form_close(); ?>
Nah selesai sudah pembuatan proses tambah data. untuk mencobanya bisa klik di http://localhost/namafoldercodeigniterAnda/index.php/ckomentar/tambahdata
Source Code lengkapnya dapat Anda download http://www.ziddu.com/download/17869835/OperasiLengkapCRUDCodeigniter.zip.html
Semoga tutorial yang singkat ini dapat memberikan manfaat sebesar-besarnya bagi siapa saja yang membacanya..
hawa
sip... sama dg yg di buku ya
Agus Saputra
hawa @ iya.. sama kok.. :)
abo
mau nanya,
kan klo pake html->link itu buat ngebuat link biasanya kita klik dulu kan,
kl mau load otomatis ke salah satu fungsi dalam controller gmn ?,
soalnya script load otomatis itu bakalan disimpen di default.ctp..
mohon pencerahannya
Agus Saputra
abo @ untuk mengakses file controller dari file default.ctp, maka Anda harus membuat file app_controller.php yang bisa Anda simpan pada folder app...
bisa klik di http://book.cakephp.org/1.3/view/957/The-App-Contro ller ..
fauzi
untuk proses upload file gimana mas jika digabung dengan beberapa inputan data, saya masih belum mengerti langkah2nya soalnya dibuku mas agus gak dibahas untuk upload file cuman ditulis listing inputanya aja sementara model dan controller nya gak dibahas..
Agus Saputra
fauzi @ di buku saya ada kok, upload file Codeigniter, ada di-Ebbok dalam CD terlampir..
jose
gan untuk membuat capca di ci 2.1 gmn ya? saya coba blog yg ada dari buku agan saya coba pke di ci 2.1 kok tidak mau masuk?
Agus Saputra
jose @ pada buku adalah versi 1.7.2. tentu sudah ada pengembangan pada versi 2.x, sehingga pada versi 2.x Captcha tidak butuh Plugin lagi, tapi sudah integrated dengan helper..
bisa klik di http://tukangbolos.com/2011/09/22/membuat-captcha-d engan-codeigniter/
syarifkhan
Tutorial yg menarik, karena saya baru belajar CI, saya coba ngikutin tutorial ini dan copas codenya, ternyata gak bisa jalan, pas saya teliti lagi code di controllernya
$this->load->view('tamb ahkomentar');
seharusnya
$this->load ->view('tambahdata');
karna file pada view bernama tambahdata.php
selain itu pada line 2 tertulis:
Class Ckomentar extends Controller {
seharusnya
Class Ckomentar extends CI_Controller {
CMIIW
Agus Saputra
syarifkhan @ memang tutorial yang ditulis masih menggunakan CI versi 1.7.2. sehingga penamaannya extends nya adalah Controller, berbeda dengan versi 2.x yang sudah menggunakan CI_Controller..
uki
ane lg belajar CI nih,, ane pake yg vers terbaru,, ane dah ngikutin tutorial dan di controller jg dah diganti dgn CI_Controller sesuai petunjuk syarifkhan,, tapi kok tetep ga jadi yaa,,
Fatal error: Call to undefined function post() in C:\AppServ\www\ci\application\controllers\ckomentar .php on line 4
skrip padahal sama dah copy paste ma ngetik sendiri sama aja hasilnya kayak gitu,, fatal error (-_-)
mohon bantuan solusinya,,
mahfud
mas agus saya mw tanya saya belajar CI tentang login menggunakan session
tp saya menemukan eror
seprti ini "In order to use the Session class you are required to set an encryption key in your config file."
solusinya gmn ya mas
mohon bantuanya
Atep
Pada Codeigniter bagaimana menambahkan url sesuai dengan judul artikel, contohnya judul: Trik Kolaborasi Codeigniter & JQuery pada urlnya menjadi: trik-kolaborasi-codeigniter-&-JQuery, jadi bukan hanya nomor id-nya saja yang terbaca.
Agus Saputra
atep @ bisa langsung tembak saja ...
Contoh: id."-".$judul...
Atep
Saya membuat fungsi tanggal.php, jika pada codeigniter dimana saya harus menyimpan fungsi tersebut dan bagaimana memanggilnya? Apakah memanggilnya di view atau di controller?
bejo
maaf,, saya koreksi dikit, untuk file Controller (ckomentar)kode baris ini:
$this->load->view('tambahkomentar& #039;);
diubah'tambahdata'
$this->load->view(& #039;tambahdata');
makasih.