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 :P ), 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…
Quote:
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. |
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 Code:
<?php
class Mahasiswa_model extends Model {
}
?>
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 Code:
<?php
class Mahasiswa_model extends Model {
function selectAll(){
return $this->db->get('mahasiswa')->result();
}
}
?>
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 Code:
<?php
class Data_mahasiswa extends Controller {
function __construct() {
parent::Controller();
}
}
?>
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 Code:
<?php
class Data_mahasiswa extends Controller {
function __construct() {
parent::Controller();
$this->load->model('mahasiswa_model');
}
}
?>
PHP Code:
<?php
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);
}
}
?>
$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:
PHP Code:
<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>
OK, sekarang kita lanjut ke sesi yg kedua.. yaitu MENAMBAHKAN DATA…
2. Menambahkan data
Silakan buat sebuah anchor() (a) di bawah table di dalam file data_mahasiswa_view.php..
anchor() adalah function helper yang udah tersedia di CI, untuk menggantikan tag ‘a’
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:
PHP Code:
<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') ?>
PHP Code:
...
function add(){
$this->load->view('add_view');
}
...
Silakan buat view add_view.php di folder /system/application/views dengan isi sebagai berikut:
PHP Code:
<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:
PHP Code:
...
function insert($set){
$this->db->insert('mahasiswa', $set);
}
...
sekarang, di Controller data_mahasiswa.php kita ubah function add() menjadi seperti berikut:
PHP Code:
...
function add() {
if($_POST==NULL) {
$this->load->view('add_view');
}else {
$this->mahasiswa_model->insert($_POST);
redirect('data_mahasiswa/index');
}
}
...
Sejauh ini, kamu berhasil membuat aplikasi CI untuk menambahkan data ke database dan menampilkannya….
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…