Instalasi

OK, kita mulai aja… kita di sini memakai XAMPP pertama-tama, extract file codeigniter.rar ke C:\xampp\htdocs, file bisa didownload di sini. Misalnya kita namakan nama folder root (nama situs) kita adalah webku.

Konfigurasi
Kemudian, hal yang pertama harus dilakukan adalah konfigurasi awal, yaitu base_url, base_url adalah nama root situs kita… caranya edit file /webku/system/application/config/config.php, ubah $config['base_url'] = “http://example.com/“ menjadi:
$config['base_url'] = "http://localhost/webku/";

kemudian hilangkan index.php di $config['index_page'] sehingga menjadi:
$config['index_page'] = "";

Langkah kedua adalah konfigurasi routes, yaitu controller default apakah yang ingin diload…? jadi di sini adalah konfigurasi untuk controller ‘home’, sehingga ketika kita mengetikkan url http://localhost/webku maka yang dipanggil adalah controller yang sudah dikonfigurasi di routes ini.. Cara konfigurasinya yaitu dengan mengedit file /webku/system/application/config/routes.php, dan di bagian $route['default_controller'] isi dengan ‘home’ sehingga seperti ini:
$route['default_controller'] = "home";

kita akan membuat supaya ketika kita menuju url http://localhost/webku maka controller yang akan dijalankan adalah controller home . Kemudian setelah itu adalah konfigurasi Databasenya… ada di file /webku/system/application/config/database.php, Di situ terlihat konfigurasi-konfigurasi seperti host, username, password, nama db, dsb.. silakan diisi seperti berikut:
$db['default']['hostname'] $db['default']['username'] $db['default']['password'] $db['default']['database'] $db['default']['dbdriver'] $db['default']['dbprefix'] $db['default']['pconnect'] $db['default']['db_debug'] $db['default']['cache_on'] $db['default']['cachedir'] $db['default']['char_set'] $db['default']['dbcollat'] = = = = = = = = = = = = "localhost"; "root"; ""; "blog"; //nama database "mysql"; ""; TRUE; TRUE; FALSE; ""; "utf8"; "utf8_general_ci";

Kemudian konfigurasi selanjutnya adalah konfigurasi untuk autoload, jadi ketika situs dibuka, library/helper/model/dsb apakah yang akan selalu diload.. file ada di /webku/system/application/config/autoload.php, tambahkan database di bagian $autoload['libraries'] menjadi seperti ini:
$autoload['libraries'] = array('database');

Kemudian yang terakhir adalah penambahan .htaccess supaya kita tidak perlu mengetikkan index.php di URL kita, cara untuk menghilangkan index.php (menggunakan .htaccess) ada di sini.

Contoh Aplikasi Database Sederhana
Buatlah sebuah database bernama blog, kemudian copy SQL berikut:
CREATE TABLE IF NOT EXISTS `buku_tamu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nama` varchar(100) NOT NULL, `email` varchar(20) NOT NULL, `situs` varchar(100) NOT NULL, `komentar` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

$data). `nama`. //meload view bernama home_view.co.php dengan data variable adalah $data $this->load->view('home_view'.id'. 'cheyuz@yahoo. 'http://www. `situs`. //memanggil function selectAll di model buku_tamu. 'Cecep Yusuf'. `email`.com'.php adalah: <?php class Home extends Controller{ function __construct() { parent::Controller(). 'http://www. } } ?>. Kita buat sebuah contoh di mana kita akan menampilkan isi dari database di atas. kemudian kita buat file home_view. } function index() { $data['title'] = 'Ini adalah aplikasi sederhana'. 'Ini adalah komentar kedua').cheyuz. 'Ini adalah komentar pertama').php yang berisi code sebagai berikut: <?php class Buku_tamu extends Model{ function selectAll() { return $this->db->get('buku_tamu')->result().INSERT INTO `buku_tamu` (`id`.com'. dimasukkan ke $data['buku_tamu'] $data['buku_tamu'] = $this->buku_tamu->selectAll(). } } ?> Di dalam folder /webku/system/application/controller/ bikin sebuah file bernama home. `komentar`) VALUES (1. 'deddy@mizwar.php untuk membuat class controller yang bernama Home… isi dari home. buatlah model terlebih dahulu di /webku/system/application/model/ dengan nama file buku_tamu.facebook.com'. $this->load->model('buku_tamu').. Nah. 'Deddy Mizwar'. Pertama-tama. (2.php di folder /webku/system/application/view/ dengan isi sebagai berikut: <h2><?php echo $title ?></h2> <table> <tr> <td>No</td> <td>Nama</td> <td>Email</td> <td>Situs</td> <td>Komentar</td> </tr> <?php $i = 0 ?> <?php foreach ($buku_tamu as $bt): ?> <tr> <td><?php echo $i++ ?></td> <td><?php echo $bt->nama ?></td> <td><?php echo $bt->email ?></td> <td><?php echo $bt->situs ?></td> <td><?php echo $bt->komentar ?></td> </tr> <?php endforeach ?> </table> Silakan dibuka di browser url berikut: http://localhost/webku Hasilnya adalah sebagai berikut: .

oleh karena itu silahkan baca tutorial dasar part I terlebih dahulu. 1.com Ini adalah komentar pertama Deddy Mizwar deddy@mizwar.id http://www.com Ini adalah komentar kedua Di tutorial yang kedua ini. kamu tinggal copy SQL berikut: CREATE TABLE IF NOT EXISTS `mahasiswa` ( `id` int(5) NOT NULL AUTO_INCREMENT. kenapa? karena konfigurasinya kita menggunakan konfigurasi di tutorial dasar part I. langkah pertama adalah membuat sebuah model…. bisa klik di sini Seperti pada tutorial dasar part I. Buatlah sebuah file mahasiswa_model. PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 . kenapa kita harus belajar membuat aplikasi CRUD? soalnya ini merupakan dasar kita untuk ke depannya. `nama` varchar(100) NOT NULL. nim. Jadi kita membuat tabel kosong bernama ‘mahasiswa’ dengan field seperti di atas… Diharapkan kamu yang mengikuti tutorial ini udah pernah mengikuti tutorial sebelumnya. kita akan bahas bagaimana cara membuat CRUD dengan menggunakan CI…. untuk membuat aplikasi yang kompleks. OK. menghapus (Delete). OK segitu saja. meliputi membuat database (Create). pertama-tama.co. ato disingkat menjadi CRUD.. membaca (Read). kita akan menambahkan function selectAll(). jadi code tadi setelah ditambahkan menjadi seperti berikut: <?php /** . webroot kita ini diasumsikan bernama “webku”.cheyuz. kita sudah membuat sebuah model untuk mahasiswa. `nim` varchar(20) NOT NULL. kita buat sebuah database bernama tutorial_ci. Menampilkan semua data OK.php di /system/application/models dengan isi adalah barisan kode seperti berikut: <?php /** * @author Cecep Yusuf */ class Mahasiswa_model extends Model { } ?> Sejauh ini. view untuk membuat interface. yang mana berfungsi untuk menyeleksi semua field di table mahasiswa (select * from mahasiswa). dan controller untuk mengolah model dan ngeload view.. alamat.. `alamat` text NOT NULL. Adapun di sini kita akan belajar membuat model untuk data yang akan diolah. isinya ada id. dan konfigurasinya diasumsikan sama. nama. yang nantinya mempunyai banyak fungsi untuk mengolah table ‘mahasiswa’… Di bawah ini.Ini adalah aplikasi sederhana No Nama 1 2 Cecep Yusuf Email Situs Komentar cheyuz@yahoo. dan buatlah sebuah table bernama mahasiswa (kenapa selalu ‘mahasiswa’? ga punya contoh lain ).cheyuz. sebenarnya kita hanya mengelola dan mengolah database.. mengubah (Update).com http://www..

buatlah sebuah controller bernama data_mahasiswa. maka kita load modelnya di bagian __construct() di dalam controller Data_mahasiswa. jadi sekarang kita buat sebuah controller yang berfungsi untuk memanipulasi objek mahasiswa_model… OK. Karena kita akan meload model mahasiswa_model setiap kali dibuat controller. helper. kita tinggal masukkan di function ini supaya tidak diketik ulang di setiap fungsi…. $this->load->model('mahasiswa_model').* @author Cecep Yusuf */ class Mahasiswa_model extends Model { function selectAll(){ return $this->db->get('mahasiswa')->result(). dan sebagainya. } } ?> Nah. model akan diolah oleh controller. $this->load->view('data_mahasiswa_view'. } function index(){ $data['mahasiswa'] = $this->mahasiswa_model->selectAll(). } } ?> Kemudian. kita buat function index() sebagai penampil semua data yang ada di table mahasiswa. $this->load->model('mahasiswa_model').php di /system/application/controllers dengan isi file sebagai berikut: <?php /** * @author Cecep Yusuf */ class Data_mahasiswa extends Controller { function __construct() { parent::Controller(). $data). Setelah itu. sejauh ini kita sudah bikin function selectAll() yang berfungsi untuk memilih semua field dari table mahasiswa. } } ?> 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. 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(). } } ?> . Jadi kode lengkapnya seperti berikut: <?php /** * @author Cecep Yusuf */ class Data_mahasiswa extends Controller { function __construct() { parent::Controller(). model.

keluar apa? table kan? dengan data KOSONG…. yaitu MENAMBAHKAN DATA… 2. OK. $this->load->helper('url').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. sekarang kita lanjut ke sesi yg kedua.php. coba buka alamat di browser: http://localhost/webku/data_mahasiswa. ?> anchor() adalah function helper yang udah tersedia di CI. Menambahkan data Kita akan membuat tampilan seperti berikut: Data Mahasiswa No NIM Nama Alamat Aksi 1 0700335 Cecep Yusuf Cipanas. function view() dalam objek ‘load’ adalah untuk meload view yang sudah kita buat di /system/application/views. sehingga nanti bisa diakses dari view. kita lihat ada script seperti ini: $data['mahasiswa'] = $this->mahasiswa_model->selectAll(). untuk menggantikan tag ‘a’ Buatlah sebuah anchor sebagai link ke function add() di Controller (fungsi ini belum dibuat). yang nantinya data tersebut bisa diakses di view.. Cianjur edit | delete | detail 2 0800113 Fitri Yuniar Jakarta edit | delete | detail Tambah data Silakan buat sebuah anchor() (a) di bawah table di dalam file data_mahasiswa_view.Di dalam function index() di atas. Jangan lupa sebelumnya load dulu url_helper di controller dengan cara menambahkan code berikut: <?php . OK.. . dengan mengeset variable hasil ekstrak dari variable $data.. ada script berikut: $this->load->view('data_mahasiswa_view').... array dan Kemudian kita lihat lagi. kita buat view-nya dengan nama file data_mahasiswa_view... kode tersebut berarti data hasil keluaran dari function selectAll() di model mahasiswa_model berupa disimpan di dalam array $data['mahasiswa']. caranya dengan menambahkan script berikut: .

.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> Perlu diketahui bahwa cara di atas belum menggunakan library ‘form’ bawaan dari CI. } .php. 'Tambah Data') ?> jadi kode lengkapnya di data_mahasiswa_view.. function insert($set){ $this->db->insert('mahasiswa'. function add(){ $this->load->view('add_view').. kita memakai cara manual dulu..<?php echo anchor('data_mahasiswa/add'.. 'Tambah Data') ?> Langkah selanjutnya adalah membuat function add() di controller data_mahasiswa..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'.php… Silakan buat view add_view.. yang akan menghasilkan sebuah variable array $_POST… Sebelumnya. tambahkan function ini: . $set). kita tambahkan function insert() di model mahasiswa_model. } . sebelum nanti kita bahas penggunaan helper di CI di tutorial selanjutnya… Method yang digunakan yaitu POST.php seperti berikut: . Di sana terdapat code untuk meload file view yang bernama add_view.

kamu berhasil membuat aplikasi CI untuk menambahkan data ke database dan menampilkannya….php kita ubah function add() menjadi seperti berikut: . 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. Kita jelasin. sekarang mari kita buat fungsi/aksi lainnya. yaitu function bawaan CI. redirect('data_mahasiswa/index'). function insert tersebut sudah ada di library database CI. tapi gpp.... 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> .. di sana ada function redirect().. sehingga ketika kita menambahkan data. yang berfungsi untuk me-redirect halaman (mengalihkan)....’ lagi… sekarang. hahaha. function add() { if($_POST==NULL) { $this->load->view('add_view'). maka akan dialihkan lagi ke index… Sejauh ini.. demi kalian Nanti di part III kita akan membuat untuk update dan delete nya…. maka program hanya meload view saja…. berarti kita sudah mengeset variable $_POST… jika belum (=NULL). }else { $this->mahasiswa_model->insert($_POST). selamat mencoba… SALAM WEB DEVELOPER! 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. jadi kita tidak usah membuat query ‘insert into…. di Controller data_mahasiswa. di sana ada fungsi If untuk mengecek apakah data dari $_POST sudah terSET atau belum… kalo kita udah mengklik submit... } } .

kita buat sebuah function di dalam model mahasiswa_model. di controller data_mahasiswa. Menghapus Data Kemudian setelah itu. (catatan: edit = update).. anchor('data_mahasiswa/delete/'..php di folder /system/application/models: <?php .$m->id. redirect('data_mahasiswa'). 'Hapus').. anchor('data_mahasiswa/delete/'.$m->id. array('id'=>$id)). .$m->id. ?> Kemudian. ?></td> </tr> <?php endforeach ?> </tbody> </table> previewnya: Data Mahasiswa No NIM Nama Alamat Aksi 1 0700335 Cecep Yusuf Cipanas. } .php di /system/application/controllers tambahkan function berikut: ... ' | ' . 'Hapus'). } .. function delete($id){ $this->mahasiswa_model->delete($id).$m->id.. yaitu anchor untuk edit dan delete.. 'Ubah') . Cianjur edit | delete 2 0800113 Fitri Yuniar Jakarta edit | delete Tambah data 1.. 'Ubah') ..</table> Sebelumnya kita tambahkan 2 buah anchor (link) untuk membuat hyperlink menuju ke masing2 fungsi tersebut. ' | ' . Buatlah dua buah anchor dengan bentuk kode seperti ini di kolom paling kanan tabel: <?php echo anchor('data_mahasiswa/edit/'. function delete($id){ $this->db->delete('mahasiswa'. ?> 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/'..

(segitunya sampe dipertebel hehe ) Setelah kita membuat modelnya… kemudian kita tambahkan function edit() di Controller data_mahasiswa..$id)->update('mahasiswa'. array('id'=>$id))->row().php di /system/application/models. 2.. untuk mengubah data. function edit($id){ $data['m'] = $this->mahasiswa_model->select($id)... $data)… Sekarang. 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> .. $this->load->view('edit_view'.$data).. sehingga nantinya bisa diubah… makanya kita membuat fungsi select() Ini adalah view yang harus ada di /system/application/views dengan nama file edit_view. 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. Di situ ada fungsi update()..fungsi di atas memanggil fungsi dari objek Mahasiswa_model yaitu delete.. kita tambahkan function update() dan select($id) untuk menyeleksi SATU data yang akan dipilih berdasarkan id-nya… dibuat di model mahasiswa.. yang equivalen dengan query update from mahasiswa where id=$id set $_POST..php dengan parameter $id. } function select($id){ return $this->db->get_where('mahasiswa'..php di /system/application/controller/: . $_POST). 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. kita harus tahu fungsi untuk mengubah database dari Active Record yang disediakan oleh CI. function update($id){ $this->db->where('id'.. tetapi hanya SATU BARIS DATA. Di situ kita buat sebuah fungsi edit di controller data_mahasiswa... } . Mengubah Data Nah. } . yaitu $this->db->update($nama_table. 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.. .php (yang udah kita masukkan ke dalam fungsi $this->load->view() di controller..

.$data). function edit($id) { if($_POST==NULL) { $data['m'] = $this->mahasiswa_model->select($id). Kita lihat. ketika data sudah diubah. sejauh ini kita sudah membuat aplikasi CRUD lengkap… Create. $this->load->view('edit_view'. di controller kita tambahkan code berikut: . 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 view tersebut diload. Read. Silakan cek program yang kita bikin sejauh ini dengan mengetikkan alamat url : http://localhost/webku/data_mahasiswa . maka halaman langsung dialihkan ke dalam action yang ada di prameter redirect tersebut…. ada fungsi if else… buat apa tuh?? itu buat ngecek apakah data udah dikirim atau belum (NULL)? Nah. Update. Nah. } } . dan Delete….. maka form akan langsung terisi dengan data yang kita panggil dengan $id yang ada di URL… (yang merupakan parameter) Kemudian.Jadi. redirect('data_mahasiswa'). }else { $this->mahasiswa_model->update($id)...