Cara Membuat CRUD Dengan Codeigniter (Tutorial Codeigniter Part 2)


Tutorial Codeigniter Lengkap Part 2 (Cara Membuat CRUD Dengan Codeigniter) – Membuat fungsi create, read, update, dan delete (CRUD) di codeigniter. Penerapan fungsi creat, read, update dan delete di codeigniter dibuat sedikit berbeda dan lebih mudah. Artikel ini sebagai tutorial lanjutan dari artikel Tutotial Codeigniter Lengkap part 1.

Bagi anda yang belum membaca pada tutorial codeigniter part 1, saya sarankan untuk meluangkan waktu sejenak untuk membaca artikel tersebut agar pada tutorial kali ini dapat lebih paham. Ok, saya akan menambahkan fitur create, read, update, dan delete pada web yang telah kita buat sebelumnya.


Kali ini saya akan membuat fitur create dan read terlebih dahulu. Untuk lebih jelasnya, saya akan membuat 2 halaman baru di folder view/section/. Pertama untuk menambah data dan yang kedua untuk memunculkan data.

Tutorial Codeigniter Lengkap Part 2 (Membuat CRUD Dengan Codeigniter)

Pembuatan Database

Kita mulai, pertama kita buat terlebih dahulu database untuk menampung data yang masuk. Saya membuat database dengan nama inponow dan nama tabelnya saya beri nama tabel-inponow yang didalamnya terdapat 4 baris. Kemudian setting id sebagai A_I (auto increment) dan set baris selanjutnya seperti contoh dibawah ini.
Anda dapat membuat sesuai dengan contoh yang saya berikan dan anda juga boleh menambahkan sesuai kebuatuhan kalian. Jika sudah selesai jangan lupa simpan konfigurasi tabel database anda.

Setting Tambahan Routing

Sebelum kita lanjut, kita akan menambahkan konfigurasi pada (application/config/routes.php). Pada file tersebut scroll kebawah lalu isikan seperti contoh dibawah ini.

$route['default_controller']   = 'C_inponow';
$route['404_override']         = '';
$route['translate_uri_dashes'] = FALSE;
// dibawah ini konfigurasi tambahannya
$route['(:any)']               = 'C_inponow/$1';
$route['(:any)/(:any)']        = 'C_inponow/$1/$2'; 

2 Konfigurasi tambahan pada routes.php diatas digunakan untuk mengatur pemanggilan fungsi yang ada didalam file controller (application/controllers/C_inponow.php). Jadi dalam CI sistem pemanggilan antara halaman 1 dengan halaman lainya dapat dipanggil melalui nama fungsi yang ada pada file controller kita.

Pembuatan Form Insert

Ok, kita akan lanjut untuk mebuat form insert. Pertama buat file di dalam folder view/section yang telah saya buat pada tutorial sebelumnya. Kemudian beri nama file dengan nama tambahdata.php dalam folder section.

Dalam file application/views/section/tambahdata.php tersebut akan saya buat 2 form input (nama dan no induk) dan 1 form select untuk memilih jurusan. Ingat kawan untuk tampilan halaman saya menggunakan bantuan framework bootstrap (lihat turorial sebelumnya). Dalam file tambahdata.php isikan seperti contoh dibawah ini :

<div class="container">

  <div class="row">

    <div class="col-md-3"></div>

    <div class="col-md-6">

      <div class="card mt-4">

        <div class="card-header"> <b>Add Form Employees </b> </div>

        <?php if (validation_errors() ) : ?>

           <div class="alert alert-danger" role="alert"><br>

             <?= validation_errors(); ?>

           </div>

        <?php endif; ?>

        <div class="card-body">

          <form class="" action="" method="post">

            <div class="form-group"> <label for="nama">Nama</label> <input type="text" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter Your Name" name="nama"> <small id="emailHelp"

                class="form-text text-muted">We'll never share your email with anyone else.</small> </div>

            <div class="form-group"> <label for="no_induk">No Induk</label> <input type="text" class="form-control" id="exampleInputPassword1" placeholder="f23xxx" name="no_induk"> </div>

            <div class="form-group"> <label for="seksi">Jurusan</label> <select class="form-control" id="seksi" name="seksi">

                <option>Teknik Mesin</option>

                <option>Teknik Komputer</option>

                <option>Akutansi</option>

                <option>Teknik Gambar Bangunan</option>

              </select> </div> <button type="submit" name="add" class="btn btn-primary"> Add Data</button>

          </form>

        </div>

      </div>

    </div>

  </div>

  <div class="col-md-3"></div>

</div>

Anda lihat pada script di atas terdapat script validation_errors() yang berfungsi untuk menampilkan peringatan ( alert-danger ) jika form tidak di isi secara lengkap. Hasilnya kira kira nanti akan seperti contoh gambar dibawah ini. Anda boleh berubah tampilanya sesuai dengan kebutuhan anda.

Pembuatan Form Data Siswa

Ok kita lanjut membuat form yang kedua. Form ini berfungsi untuk menampilkan data yang ada di database. Saya menggunakan perulangan foreach. Halaman yang akan admin buat admin beri nama (application/views/section/data.php).


Dalam file data.php admin membuat 3 bagian. Pertama bagian form input pencarian. Kedua bagian untuk menampilkan data dari database menggunakan tabel. Ketiga bagian button tambah data, yang nantinya pada bagian tersebut akan mengarah ke halaman (tambahdata.php). Source Codenya dapat anda lihat dibawah ini.

<div class="container">

  <div class="row">

    <div class="col-md-3"> </div>

    <div class="col-md-6">

      <h1 class="mb-4 mt-4">Data Siswa</h1>

    </div>

    <div class="col-md-3"></div>

  </div>

  <div class="row mt-4">

    <div class="col-md-3"></div>

    <div class="col-md-6">

      <form class="" action="" method="post">

        <div class="input-group"> <input type="text" name="keyword" class="form-control" placeholder="Cari data mahasiswa...">

          <div class="input-group-append"> <button type="submit" class="btn btn-primary" name="button">Cari</button> </div>

        </div>

      </form>

    </div>

    <div class="col-md-3"></div>

  </div>

  <div class="row mt-4">

    <div class="col-md-3"></div>

    <div class="col-md-6">

      <table class="table" style="text-align:center;">

        <tr>

          <th>Nama</th>

          <th>No induk</th>

          <th>Jurusan</th>

          <th>Aksi</th>

        </tr>

        <tr> <?php foreach ($siswa as $s) :?> <td><?= $s['nama']; ?></td>

          <td><?= $s['no_induk']; ?></td>

          <td><?= $s['jurusan']; ?></td>

          <td><a class="badge badge-danger" onclick="return confirm('yakin pak?')" href="">Hapus</a></td>

        </tr> <?php endforeach; ?>

      </table>

    </div>

    <div class="col-md-3"></div>

  </div>

  <div class="row mt-4 mb-4">

    <div class="col-md-3"></div>

    <div class="col-md-6"> <a href="<?= base_url('tambahdata/'); ?>" class="btn btn-primary">Add Data Employees</a> </div>

    <div class="col-md-3"></div>

  </div>

</div>

Membuat Fungsi Tambah Data dan Tampil Data Di File Controller

Sebelum kita membuat fungsi tambahdata kita buat terlebih dahulu fungsi __construct. Yang berguna agar bisa menjalankan/memanggil library dan model yang ada dalam web server tersebut. Tambahkan konfigurasi dibawah ini dia atas fungsi index yang telah kita buat sebelumnya :

public function __construct() {

parent::__construct();
$this->load->model('M_inponow');
$this->load->library('form_validation');

}

Dalam file application/controllers/C_inponow.php kita akan membuat sebuah fungsi dengan nama tambahdata dibawah fungsi index yang admin buat sebelumnya. Tambahkan konfigurasinya seperti contoh dibawah ini :

public function tambahdata() {

$data['judul'] ='Form Tambah Data Siswa';
$this->form_validation->set_rules('nama', 'Nama', 'required');
$this->form_validation->set_rules('no_induk', 'No Induk', 'required');

if ($this->form_validation->run() == FALSE ) {
    $this->load->view('template/header', $data); $this->load->view('section/tambahdata');
    $this->load->view('template/footer'); // code... } else { $this->M_inponow->tambahData(); $this->session->set_flashdata('flash', 'Ditambah'); redirect('tampildata'); }

}

Fungsi tambahdata diatas digunakan untuk menghubungkan halaman tambahdata.php dengan M_inponow(file model yang akan kta buat nanti) serta untuk memanggil halaman tambahdata.php ($this->load->view('section/tambahdata')).

Baca Juga : Tutorial Codeigniter part 1

Di dalam fungsi tambahdata tersebut juga saya tambahkan form validation. Form validation tersebut saya gunakan untuk wajib mengisi form inputan yang telah disediakan. Jadi jika form ada yang tidak terisi maka data tidak akan bisa masuk ke database.

Dalam fungsi tambah data tersebut juga ada konfigurasi ( $this->session->set_flashdata ). Jadi kita harus menambahkan library session kedalam web yang kita buat ini. cara menambahnya, kita pergi ke file application/config/autoload.php lalu cari konfigurasi : $autoload['libraries'] = array('');

Dalam konfigurasi tersebut isikan session dalam tanda petik array, ( $autoload['libraries'] = array('session'); ). Kenapa kita panggil library tersebut di autoload? Karena dengan memanggil library di file autoload.php maka setiap kali web yang kita buat dijalankan maka library session akan otomatis berjalan (autoload).

Lanjut lagi membuat fungsi controller untuk menampilkan data. Source codenya seperti contoh dibawah ini.

 public function tampildata() {

 $data['judul'] = 'Daftar Employees';
 $data['siswa'] = $this->M_inponow->getData();

 $this->load->view('template/header', $data);
 $this->load->view('section/data', $data);
 $this->load->view('template/footer');

 }

Bagian utama dari fungsi tampildata terdapat pada source code ( $data['siswa'] = $this->M_inponow->getData() ). Dimana getData merupakan nama fungsi model yang akan kita buat nanti untuk melakukan konfigurasi query.

Membuat Models

Buat file M_inponow.php pada folder model. Pada file application/models/M_inponow.php akan berisi query-query yang akan digunakan untuk menjalankan semua fungsi CRUD (create, read, update, dan delete).

Ok kita mulai untuk membuat fungsi baru pada model (M_inponow.php). Pada fungsi kali ini admin akan langsung membuat 2 fungsi. Pertama fungsi insert data untuk memasukan data ke tabel database. Kedua fungsi select/get untuk menampilkan data dari tabel database.  Source codenya dapat anda lihat dibawah ini.

<?php class M_inponow extends CI_model { 

 public function __construct() {
    parent::__construct();
    $this->load->database();
 }

public function tambahData() {

  $data = [
  "nama" => $this->input->post('nama', true),
  "no_induk" => $this->input->post('no_induk', true),
  "jurusan" => $this->input->post('seksi', true) ];

$this->db->insert('tabel-inponow', $data);

}  

public function getData() {
 return $this->db->get('tabel-inponow')->result_array();
}

} ?>

Di dalam file M_inponow.php tersebut terdapat function __construct() yang di dalamnya terdapat konfigurasi $this->load->database(); yang berguna untuk meload/memanggil database yang telah kita buat sebelumnnya.

Langkah Pengujian

Sebelum anda uji hasil codingan di atas, kita akan menambahkan sedikit code link di header.php dan index.php yang dulu pernah saya buat di tutorial sebelumya. Pada header.php terdapat 3 menu utama yaitu home, data dan about.

Pada tutorial pertama alamat link menu data hanya diberi link base_url, dan sekarang kita cukup tambahkan tampildata dalam kurung base url tersebut dengan tampildata. Nama tampil data saya ambil dari nama fungsi yang dibuat di controller. Kemudian di button kelola data yang ada di index.php isikan pula link href-nya tampildata sama seperti pada menu data.


<a class="nav-item nav-link" href="<?= base_url(‘tampildata’);?>">Data</a>

Buka browser anda dan coba jalankan web anda. Berikut saya berikan contoh jika halaman web yang anda buat sudah berhasil memasukan data ke database dan data yang ada di database bisa muncul di halaman web.

Tutorial Codeigniter Lengkap Part 2 (Membuat CRUD Dengan Codeigniter)
Sekian untuk artikel hari ini,  untuk tutorial selanjutnya yaitu delete dan update. Kurang lebihnya saya mohon maaf dan semoga dapat bermanfaat. Jika ada pertanyaan ketik saja di kolom komentar. Satu lagi anda dapat memiliki projek CI-INPONOW di sini. Sekian dan terima kasih.

Comments

Baca juga artikel menarik lainnya