Codeigniter

Tutorial CodeIgniter Dasar Part II – CRUD chapter 1

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 :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…

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

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’

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:

...
    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.. :D
tapi gpp, demi kalian :)

Nanti di part III kita akan membuat untuk update dan delete nya….
selamat mencoba…

SALAM WEB DEVELOPER!

 

Sumber : http://harian.cheyuz.com/_other/tutorial-codeigniter-dasar-part-ii-crud-chapter-1

About Suendri

Owner dan Founder Go Software Media sebelumnya bernama PHPBeGO Foundation

Discussion

No comments yet.

Tinggalkan Komentar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow Go Software Media Blog on WordPress.com

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 63 other followers

Archives

%d bloggers like this: