• Tutorial CodeIgniter Dasar Part II – CRUD chapter 2

    Level: Baby

    Karena banyak komentar dari temen2 tentang tutorial ini ada error, maka saya update postingan ini dengan menambahkan sedikit catatan ini. Perlu diperhatikan bahwa ini adalah tutorial CI untuk versi 1.7.x, bukan CI versi 2.x.. karena banyak perbedaan yang ada pada CI sekarang, maka mungkin nanti saya akan buat tutorial CI untuk versi 2.x.. Salah satu perbedaannya yaitu folder ‘applications’ yang ada di luar folder ‘system’ (CI 2.0), sedangkan CI versi 1.7.x masih di dalam folder system.. Jadi ketika mengalami error, silakan download versi 1.7.x (misal: 1.7.2/1.7.3).

    Oh iya, sekarang saya sudah buat situs tutorial pemrograman berbahasa Indonesia lengkap. Saya akan selalu mengupdate tutorial-tutorial saya di situs tersebut. Penasaran? jika kamu ingin semakin jago coding, kamu harus kunjungi situs Jagocoding.com :)

    OK, malam ini kita lanjutkan tutorial kemarin… maaf kalo agak telat, soalnya koneksi Cheyuz lagi bermasalah dan bentrok ngerjain tugas kuliah juga.. hehe…

    Pada tutorial kemarin, kita udah bisa menambahkan data ke dalam database… (Create) dan menampilkannya (semua data)…. Sekarang, kita akan membuat aksi lainnya, yaitu update/ubah dan delete/hapus pada setiap data di dalam sebuah table…

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

    No 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){
            $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 :P )

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

    Mudah-mudahan ini bisa ngebantu kita dalam suatu kasus tertentu di mana misalnya tugas maupun kerjaan meminta kita dibuatkan programnya dengan menggunakan CI,,,

    Nanti kita lanjut tutorialnya di Part 3, tentang LAYOUTING dan TEMPLATING di Code Igniter….
    Coming Soon ya…

    Kalo ada pertanyaan, silakan komentar di bawah ini, insya Allah dibalas :)

    This entry was posted on Wednesday, May 12th, 2010 at 23:03 and is filed under Code Igniter, PHP, Tutorial, _other. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
  • 59 Comments

    Take a look at some of the responses we have had to this article.

    1. Jun 19th

      @kaz: sip kaz.. hehe maaf telat bales :P

    2. nubitol
      Jun 22nd

      gan, koq kalo kita edit / tambah / hapus urlnya jadi balik ada index.php nya yah?
      cara ngilanginnya gimana?

    3. Jun 23rd

      @nubitol: itu coba di confignya hilangkan “index.php” di $config['index_page'] = “index.php”;, jadi nantinya begini: $config['index_page'] = “”;

    4. Jul 17th

      deleteny gbsa nii ??

    5. Aug 9th

      Wah wah, mantap gan.. kalo bisa sekalian posting, CRUD CI + Jquerynya… kalo ga pake jquery si gada masalah, pake CI jd pusing pusing nih master..

    6. Aug 26th

      Wah wah, mantap gan.. kalo bisa sekalian posting, CRUD CI + Jquerynya… kalo ga pake jquery si gada masalah, pake CI jd pusing pusing nih master..

      @Ahmad: ok thanks gan, hehe.. sarannya bagus, nanti saya buat dengan jquerynya hehe.. saya kebanyakan ‘nanti2′ tapi ga dibuat2 :P

    7. Alfa
      Oct 5th

      fungsi select() yang di update itu yg mana yah? kok gak ada?

    8. nabillabaslam
      Dec 16th

      trimskiii share ilmu nya, manstap gan buat newbie (Y)

    9. iyuai
      Apr 19th

      ka’ mu nyanya gimana yagh cara.ny menampilkan data berdasarkan “id” dari user yang login saja..???
      bissa nggak pas saya login ky gini:
      username : iyu
      password : 12345

      ==============================
      kemudian setelah di “submit” bakalan muncul ky’ gi :
      ==============================
      Selamat datang iyu

      berikut data anda :
      Nama : iyu
      Alamat: Jl.qwerty no666
      No.HP : 08123456789

      mohon bantuannya

  • Leave a Reply

    Let us know what you thought.

  • Name(required):

    Email(required):

    Website:

    Message:

    Spam Protection by WP-SpamFree