Cara membuat CRUD dengan CodeIgniter

Ditulis Oleh:

Hallo Sahabat Programmer, kembali lagi saya membahas kali ini mengenai cara membuat CRUD dengan CodeIgniter. Mungkin beberapa dari kalian belum mengetahui apa itu CRUD ? iya CRUD merupakan singkatan dari Create, Read, Update dan Delete. Crud merupakan aplikasi dasar untuk manipulasi data pada database. CRUD wajib ada untuk setiap aplikasi web karena tanpa sistem CRUD tentu saja kita tidak dapat mengelolah data lewat aplikasi kita.

Pada tutorial kali ini saya akan membagikan kepada teman-teman semua bagaimana membuat CRUD menggunakan CodeIgniter dan bootstrap. Iya saya menggunakan bootstrap agar tampilannya lebih bagus.

Bila kalian belum pernah menggunakan bootstrap saya sarankan kalian membaca dulu ya postingan saya yang terkait dengan bootstrap

Sebenarnya tanpa menggunakan bootstrap pun tetap dapat digunakan, hanya saja tampilannya tidak ada style nya. Namun pembahasan kita akan berfokus pada cara membuat CRUD dengan codeigniter, Bootstrap hanya sebagai pelengkap saja.

Mari simak langah-langkah untk membuat CRUD dibawah ini:

Konfigurasi Dasar

Pada tahap pertama pastikan kalian telah meng konfigurasi codeigniter kalian untuk beberapa settingan dasar seperti library,helper dan database. Kalo kalian belum konfigurasi baca pada artikel konfigurasi dasar codeigniter. Bila kalian sudah bisa dilanjutkan ke tahap selanjutnya.

Membuat Database

Tahap pertama kita buat dulu databasenya, saya membuat database akademik

create database akademik;

setelah itu gunakan database akademik yang baru kita buat

use akademik;

Sekarang kita buat sebuah tabel pada database akademik. Tabel yang saya buat adalah tabel mahasiswa

create table mahasiswa (
    nik char(10) not null primary key,
    nama varchar(50) not null,
    jk char(1),
    tanggal_lhr date,
    jurusan varchar(30),
    umur int
    );

Untuk tutorial codeigniter kali ini cukup satu tabel saja ya. Nantinya kalian bisa kembangkan sesuai keinginan kalian.

Membuat fungsi tambah data (CREATE)

Untuk tahap ini kita membuat fungsi create terlebih dahulu, dengan fungsi ini kita bisa meinginput data kedatabase lewat aplikasi codeigniter kita.

Controller

Buat sebuah controller dengan nama Mahasiswa.php Huruf depannya huruf besar ya guys!, kemudian kita buat fungsi tambah dalam kontroller tersebut.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Mahasiswa extends CI_Controller {
	
function tambah()
    {
        $this->load->view('v_tambah_mahasiswa'); 
    }
}
?>

Fungsi tambah meload view v_tambah_mahasiswa oleh sebab itu kita perlu buat view tersebut buat dengan nama v_tambah_mahasiswa.php pada bagian view.

View

Selanjutnya kita buat sebuah view untuk tambah data mahasiswa. Seperti yang sudah saya bilang diawal saya menggunakan bootstrap 4 untuk tampilannya ya guys

<!DOCTYPE html>
<html>
<head>
    <!-- Load file CSS Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">

    <!-- Load file library jQuery -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <!-- Load file library Popper JS -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>

    <!-- Load file library JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
    <h2>Tambah mahasiswa</h2>
    <form action="<?php echo base_url()?>mahasiswa/simpan_mahasiswa" method="post">
        <div class="form-group">
            <label>NIK:</label>
            <input type="text" name="nik" class="form-control" placeholder="NIK" />
        </div>
        <div class="form-group">
            <label>Nama:</label>
            <input type="text" name="nama" class="form-control" placeholder="Nama" />
        </div>
        <div class="form-group">
            <label>Jenis Kelamin:</label>

            <div class="form-check">

                <label class="form-check-label">
                    <input type="radio" class="form-check-input" name="jk" value="1">Laki-laki
                </label>
            </div>
            <div class="form-check">
                <label class="form-check-label">
                    <input type="radio" class="form-check-input" name="jk" value="2">Perempuan
                </label>
            </div>
        </div>
        <div class="form-group">
            <label>Tanggal Lahir:</label>
            <input type="date" name="tanggal_lhr" class="form-control"  />
        </div>
        <div class="form-group">
            <label>Umur:</label>
            <input type="number" name="umur" class="form-control" placeholder="Umur" />
        </div>
        <div class="form-group">
            <label>Pilih Jurusan:</label>
            <select class="form-control" name="jurusan">
                <option value="TI">Teknik Informatika</option>
                <option value="SI">Sistem Informasi</option>
                <option value="TK">Teknik Komputer</option>
                <option value="MI">Manajemen Informatika</option>
                <option value="KA">Komputerisasi Akuntansi</option>
            </select>
        </div>

        <button type="submit" class="btn btn-primary">Tambah</button>

    </form>
</div>
</body>
</html>

Hasil formnya seperti ini

Tampilan form untuk tambah data sudah dibuat sekarang kita buat fungsi pada controller untuk menerima nilai (value) dari form tambah mahasiswa diatas.

Buat function simpan_mahasiswa pada controller Mahasiswa

Buat fungsi simpan_mahasiswa() pada controller Mahasiswa

    function simpan_mahasiswa()
    {
        $data = array(
            'nik'=>$this->input->post('nik'),
            'nama'=>$this->input->post('nama'),
            'tanggal_lhr'=>$this->input->post('tanggal_lhr'),
            'jurusan'=>$this->input->post('jurusan'),
            'umur'=>$this->input->post('umur')
        );
        $this->db->insert('mahasiswa',$data);
        redirect('mahasiswa/index');
    }

Sekarang coba jalankan dibrowser, Apabila berhasil data yang kita input pada form tambah mahasiswa akan masuk kedalam database pada tabel mahasiswa. Seperti pada gambar dibawah ini

Membuat Fungsi untuk menampilkan data (READ)

Selanjutnya kita buat fungsi untuk menampilkan data dari database kedalam aplikasi codeigiter.

Buat Model Mahasiswa dan function TampilMahasiswa

Pertama kita buat sebuah model terlebih dahulu. Buat sebuah model dengan nama Model_mahasiswa.php isi filenya adalah seperti dibawah ini

<?php
Class Model_mahasiswa extends CI_Model
{
  function TampilMahasiswa() 
    {
        $this->db->order_by('nik', 'ASC');
        return $this->db->from('mahasiswa')
          ->get()
          ->result();
    }  
}
?>

Selanjutnya saya buat fungsi baru pada controller Mahasiswa, fungsi yang saya buat adalah fungsi __construct dan fungsi index.

Fungsi __construct berguna untuk kita meload data-data yang diperlukan misalnya model, library, helper dan lainnya. Fungsi __construct akan dieksekusi terlebih dahulu daripada fungsi lain

Selanjutnya saya buat fungsi index fungsi ini sebagai fungsi utama pada controller Mahasiswa. Didalam fungsi ini kita mengambil data dari database yang telah kita buat pada bagian model sebelumnya.

Buat Function __construct dan index pada controller Mahasiswa

  function __construct()
    {
        parent::__construct();
        $this->load->model('model_mahasiswa');

    }

  function index()
   {
	$data['hasil']=$this->model_mahasiswa->TampilMahasiswa();
        $this->load->view('v_mahasiswa',$data);
   }

Fungsi index adalah fungsi utama pada controller mahasiswa. Fungsi ini mengambil data dari model mahasiswa dengan fungsi TampilMahasiswa kemudian diparsing ke view v_mahasiswa.

Membuat View v_mahasiswa

Selanjutnya kita akan membuat view untuk menampilkan data mahasiswa

<!DOCTYPE html>
<html>
<head>
    <!-- Load file CSS Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">

    <!-- Load file library jQuery -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <!-- Load file library Popper JS -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>

    <!-- Load file library JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<?php

?>
<table class="table table-bordered">
    <thead>
  <tr>
      <th> No</th> <th>NIK</th> <th>Nama</th> <th>Jenis Kelamin</th> <th>Tanggal lahir</th><th>Jurusan</th> <th>Usia</th>
  </tr>
    </thead>
    <tbody>
    <?php
    $no=1;
    foreach ($hasil as $item)
    {
        ?>
    <tr>
        <td><?php echo $no;?></td>
        <td><?php echo $item->nik;?></td>
        <td><?php echo $item->nama;?></td>
        <td><?php echo $item->jk;?></td>
        <td><?php echo $item->tanggal_lhr;?></td>
        <td><?php echo $item->jurusan;?></td>
        <td><?php echo $item->umur;?></td>
    </tr>
    <?php
            $no++;
    }
        ?>
    </tbody>
</table>
</body>
</html>

Simpan file dengan nama v_mahasiswa.php didalam folder view. Kemudian coba jalankan controller mahasiswa, hasilnya akan seperti pada gambar dibawah

Dari gambar diatas fungsi untuk tombol update dan hapus belum dapat digunakan. Mari simak pembahasan selanjutnya untuk melanjutkan update data.

Membuat fungsi update data

Dengan membuat fungsi update data. Kita bisa langsung melalui aplikasi di codeigniter untuk update data.

Langkah pertama

Edit sintak button update pada v_mahasiswa.php dari yang sebelumnya

<a href="#" class="btn btn-warning" role="button">Update</a>

ganti menjadi

 <a href="<?php echo base_url()?>mahasiswa/update/<?php echo $item->nik; ?>" class="btn btn-warning" role="button">Update</a>

Mohon diperhatikan karena disini saya menggunakan studi kasus pada mahasiswa, maka saya menggunakan nik sebagai id mahasiswa (bersifat unik) kalian bisa menggunakan sesuai kasus kalian dengan mengacu menggunakan primary key pada tabel tersebut.

Tambahkan function GetNik() pada bagian Model

function GetNIK() berfungsi untuk menampilkan data mahasiswa berdasarkan value nik yang diterima diparameter fungsi tersebut.

Ketika tombol update di klik, maka akan dikirim nim mahasiswa tersebut, lalu kemudian di terima di funcion GetNik() ini.

    function GetNik($nik = '')
    {
      return $this->db->get_where('mahasiswa', array('nik' => $nik))->row();
    }

Membuat function update dan simpan_update pada controller Mahasiswa

Selanjutnya untuk membuat fungsi update dengan codeigniter. Kita tambahkan dua fungsi berikut ini pada controller mahasiswa

    function update($nik)
    {
        $data['ambil']=$this->model_mahasiswa->GetNik($nik);
        $this->load->view('v_update_mahasiswa',$data);
    }
    function simpan_update()
    {
        $data = array(
            'nik'=>$this->input->post('nik'),
            'nama'=>$this->input->post('nama'),
            'jk'=>$this->input->post('jk'),
            'tanggal_lhr'=>$this->input->post('tanggal_lhr'),
            'jurusan'=>$this->input->post('jurusan'),
            'umur'=>$this->input->post('umur')
        );
        $this->db->update('mahasiswa',$data);
        redirect('mahasiswa');
    }

Pada function update mengambil nilai (value) dari function GetNik pada model mahasiswa lalu kemudian datanya diparsing ke view v_update_mahasiswa. Sedangkan untuk function simpan_update adalah function yang menerima hasil updatean dari form update mahasiswa.

Memuat View v_update_mahasiswa

Buat sebuah file view baru dengan nama v_update_mahasiswa.php simpan file pada bagian view

<!DOCTYPE html>
<html>
<head>
    <!-- Load file CSS Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">

    <!-- Load file library jQuery -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <!-- Load file library Popper JS -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>

    <!-- Load file library JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
    <h2>Update mahasiswa</h2>
    <form action="<?php echo base_url()?>mahasiswa/simpan_update" method="post">
        <div class="form-group">
            <label>NIK:</label>
            <input type="text" name="nik" class="form-control" value="<?php echo $ambil->nik; ?>" placeholder="NIK" />
        </div>
        <div class="form-group">
            <label>Nama:</label>
            <input type="text" name="nama" class="form-control" value="<?php echo $ambil->nama; ?>" placeholder="Nama" />
        </div>
        <div class="form-group">
            <label>Jenis Kelamin:</label>

            <div class="form-check">
                <?php
                if ($ambil->jk==1){
                    $laki_laki="checked";
                    $perempuan="";
                }else {
                    $perempuan="checked";
                    $laki_laki="";
                }

                ?>

                <label class="form-check-label">
                    <input type="radio" class="form-check-input" <?php echo $laki_laki; ?> name="jk" value="1">Laki-laki
                </label>
            </div>
            <div class="form-check">
                <label class="form-check-label">
                    <input type="radio" class="form-check-input" <?php echo $perempuan; ?> name="jk" value="2">Perempuan
                </label>
            </div>
        </div>
        <div class="form-group">
            <label>Tanggal Lahir:</label>
            <input type="date" name="tanggal_lhr" value="<?php echo $ambil->tanggal_lhr;?>" class="form-control"  />
        </div>
        <div class="form-group">
            <label>Umur:</label>
            <input type="number" name="umur" class="form-control" value="<?php echo $ambil->umur; ?>" placeholder="Umur" />
        </div>
        <div class="form-group">
            <?php
                $ti="selected";
                $si="";
                $tk="";
                $mi="";
                $ka="";
            if ($ambil->jurusan=='TI'){
                $ti="selected";
            }else if ($ambil->jurusan=='SI'){
                $si="selected";
            }else if ($ambil->jurusan=='TK'){
                $tk="selected";
            }else if ($ambil->jurusan=='MI'){
                $mi="selected";
            }else if ($ambil->jurusan=='KA'){
                $ka="selected";
            }
            ?>

            <label>Pilih Jurusan:</label>
            <select class="form-control" name="jurusan">
                <option <?php echo $ti; ?> value="TI">Teknik Informatika</option>
                <option <?php echo $si; ?> value="SI">Sistem Informasi</option>
                <option <?php echo $tk; ?> value="TK">Teknik Komputer</option>
                <option <?php echo $mi; ?> value="MI">Manajemen Informatika</option>
                <option <?php echo $ka; ?> value="KA">Komputerisasi Akuntansi</option>
            </select>
        </div>

        <button type="submit" class="btn btn-primary">Tambah</button>

    </form>
</div>
</body>
</html>

Coba jalankan controller mahasiswa kemudian, dicoba untuk update salah satu data jika berhasil maka data akan terupdate.

Membuat fungsi hapus (delete)

Tutorial CodeIgniter untuk membuat CRUD yang terakhir adalah membuat fungsi hapus. Ikuti langkah-langkah berikut:

Pada file view v_mahasiswa edit bagian button hapus dari yang sebelumnya

 <a href="#" class="btn btn-danger" role="button">Delete</a>

ganti menjadi

 <a href="<?php echo base_url()?>mahasiswa/hapus/<?php echo $item->nik; ?>" class="btn btn-danger" role="button">Delete</a>

Membuat function hapus pada controller

Kita buat sebuah function baru dengan nama hapus() pada controller mahasiswa

function hapus($nik)
    {
        $this->model_mahasiswa->HapusMahasiswa($nik);
        redirect('mahasiswa');
    }

Membuat function HapusMahasiswa pada model

Selanjutnya buat sebuah function didalam model mahasiswa dengan nama HapusMahasiswa()

  function HapusMahasiswa($nik)
    {
        $this->db->delete('mahasiswa',array('nik' => $nik));
    }

Sekarang coba jalankan hasilnya bila berhasil maka ketika tombol hapus diklik data didalam database akan terhapus berdasarkan nik mahasiswa yang dihapus.

Selesai sudah tutoril codeigniter kali ini mengenai cara membuat crud dengan codeigniter. Semoga dapat membantu teman-teman semua yang sedang belajar codeigniter. Sampai jumpa pada postingan selanjutnya.

Setiawan Dimas

Interested on Programming, especially on Website Developping.
Have a bachelor degree from STIMIK Akakom Yogyakarta, majoring in Technical Information.
Focus on Content Writer Programming Website and Internet Marketing
Setiawan Dimas