codeigniter

13
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'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = ""; $db['default']['database'] = "blog"; //nama database $db['default']['dbdriver'] = "mysql"; $db['default']['dbprefix'] = ""; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ""; $db['default']['char_set'] = "utf8"; $db['default']['dbcollat'] = "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');

Upload: yoga-firmansyah

Post on 26-Jun-2015

335 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: codeigniter

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'] = "localhost";$db['default']['username'] = "root";$db['default']['password'] = "";$db['default']['database'] = "blog"; //nama database$db['default']['dbdriver'] = "mysql";$db['default']['dbprefix'] = "";$db['default']['pconnect'] = TRUE;$db['default']['db_debug'] = TRUE;$db['default']['cache_on'] = FALSE;$db['default']['cachedir'] = "";$db['default']['char_set'] = "utf8";$db['default']['dbcollat'] = "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 ;

Page 2: codeigniter

 INSERT INTO `buku_tamu` (`id`, `nama`, `email`, `situs`, `komentar`) VALUES(1, 'Cecep Yusuf', '[email protected]', 'http://www.cheyuz.com', 'Ini adalah komentar pertama'),(2, 'Deddy Mizwar', '[email protected]', 'http://www.facebook.com', 'Ini adalah komentar kedua');

Kita buat sebuah contoh di mana kita akan menampilkan isi dari database di atas..

Pertama-tama, buatlah model terlebih dahulu di /webku/system/application/model/ dengan nama file buku_tamu.php yang berisi code sebagai berikut:

<?phpclass Buku_tamu extends Model{ function selectAll() { return $this->db->get('buku_tamu')->result(); }}?>

Di dalam folder /webku/system/application/controller/ bikin sebuah file bernama home.php untuk membuat class controller yang bernama Home… isi dari home.php adalah:

<?phpclass Home extends Controller{ function __construct() { parent::Controller(); $this->load->model('buku_tamu'); } function index() { $data['title'] = 'Ini adalah aplikasi sederhana';  //memanggil function selectAll di model buku_tamu, dimasukkan ke $data['buku_tamu'] $data['buku_tamu'] = $this->buku_tamu->selectAll();   //meload view bernama home_view.php dengan data variable adalah $data $this->load->view('home_view', $data); }}?>;

Nah, kemudian kita buat file home_view.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:

Page 3: codeigniter

Ini adalah aplikasi sederhana

No Nama Email Situs Komentar

1 Cecep Yusuf [email protected] http://www.cheyuz.com Ini adalah komentar pertama

2 Deddy Mizwar [email protected] http://www.cheyuz.com Ini adalah komentar kedua

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…

Diharapkan kamu yang mengikuti tutorial ini udah pernah mengikuti tutorial sebelumnya.. kenapa? karena konfigurasinya kita menggunakan konfigurasi di tutorial dasar part I, bisa klik di sini Seperti pada tutorial dasar part I, webroot kita ini diasumsikan bernama “webku”, dan konfigurasinya diasumsikan sama, oleh karena itu silahkan baca tutorial dasar part I terlebih dahulu.

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/**

Page 4: codeigniter

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

Page 5: codeigniter

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 MahasiswaNo NIM Nama Alamat Aksi

1 0700335 Cecep Yusuf Cipanas, 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.php..Jangan lupa sebelumnya load dulu url_helper di controller dengan cara menambahkan code berikut:

<?php ... $this->load->helper('url');...?>

anchor() adalah function helper yang udah tersedia di CI, untuk menggantikan tag ‘a’

Page 6: codeigniter

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>

Perlu diketahui bahwa cara di atas belum menggunakan library ‘form’ bawaan dari CI.. kita memakai cara manual dulu, sebelum nanti kita bahas penggunaan helper di CI di tutorial selanjutnya…

Method yang digunakan yaitu POST, yang akan menghasilkan sebuah variable array $_POST…

Sebelumnya, kita tambahkan function insert() di model mahasiswa_model.php seperti berikut:

Page 7: codeigniter

... 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!

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>

Page 8: codeigniter

<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 MahasiswaNo NIM Nama Alamat Aksi

1 0700335 Cecep Yusuf Cipanas, Cianjur edit | delete

2 0800113 Fitri Yuniar Jakarta edit | delete

Tambah data

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){

Page 9: codeigniter

$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>

Page 10: codeigniter

</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