Tutorial Codeigniter 4 : Cara Membuat CRUD dengan Mudah

Cara Membuat CRUD Codeigniter

Jika anda ingin mempelajari bagaimana cara membuat operasi CRUD di aplikasi Codeigniter 4, maka anda sangat beruntung telah berkunjung di halaman artikel saya ini. Kenapa? Karena pada tutorial kali ini akan dibahas beberapa topik-topik simple mengenai :

- Mengaktifkan mode debugging (hal ini dapat memudahkan kita dalam men-trace letak kesalahan kode yang kita buat, lalu menampilkannya di browser)
- Menyiapkan database
- Membuat file model baru
- Membuat controller CRUD
- Membuat route
- Menampilkan data dari database
- Memasukkan data ke dalam database
- Edit, perbaharui dan hapus data

Hal pertama yang akan kita lakukan, tentu kita harus menginstal composer dan juga codeigniter 4. Pada Langkah ini, saya telah menuliskan di halaman terpisah, jadi silahkan di klik link ini: Cara Instal Codeigniter 4 melalui Composer.

Aktifkan mode debugging codeigniter

Langkah ini sangat penting untuk anda ketahui. Kenapa? Ketika saya pertama kali memperdalam kembali skill pemrograman mengenai Codeigniter 4 ini, saya kebingungan apabila aplikasi yang saya buat tidak berjalan dan tanpa memunculkan kode error. Saya menghabiskan beberapa saat hanya untuk mengetahui kesalahan pada code-code yang telah di susun. Setelah menghabiskan beberapa waktu berselancar di google, saya mengetahui bahwa saya dapat menampilkan dan mengaktifkan “pesan kesalahan” dan dapat menampilkan di layar browser dengan mengikuti prosedur di bawah ini.

Buka file app/Config/Boot/development.php, kemudian set display error dari angka 0 ke angka 1, ulangi proses yang sama di file app/Config/Boot/production.php.

ini_set('display_errors', '1');

Siapkan database

Buat database dengan nama my-apps, kemudian buat tabel dengan nama users yang mempunyai field-field yang dapat anda lihat pada gambar di bawah ini.


Pembuatan database dan tabel menurut saya pribadi lebih mudah dilakukan melalui aplikasi pihak ke tiga, dan dalam hal ini saya menggunakan HeidiSQL. Penggunaan aplikasi HeidiSQL telah saya bahas pada tutorial ini: Membuat database dan table dengan HeidiSQL.

Menghubungkan codeigniter dengan database

Pada codeigniter versi sebelumnya, saya mengkoneksikan aplikasi ke database dengan mengatur file bernama .env, namun berbeda pada codeigniter 4 ini. Untuk fungsi pengaturan database di letakkan pada file app\Config\Database.php dengan pengaturan sebagai berikut:

public $default = [
        'DSN'      => '',
        'hostname' => 'localhost',
        'username' => 'root',
        'password' => 'artmedia123',
        'database' => 'my-apps',
        'DBDriver' => 'MySQLi',
        'DBPrefix' => '',
        'pConnect' => false,
        'DBDebug'  => (ENVIRONMENT !== 'production'),
        'charset'  => 'utf8',
        'DBCollat' => 'utf8_general_ci',
        'swapPre'  => '',
        'encrypt'  => false,
        'compress' => false,
        'strictOn' => false,
        'failover' => [],
        'port'     => 3306,
    ];


Untuk password saya berikan nama artmedia123 karena mengikuti tutorial disini ,jadi silahkan sesuaikan password mysql yang telah anda instal. Apabila tidak ada password maka isian dikosongkan saja

Membuat file Model

Model digunakan untuk mendefinisikan skema nilai pada tabel. Buat file model dengan nama UserModel.php yang disimpan pada folder app/Models. Masukan kode berikut untuk membuat model user.

<?php
namespace App\Models;
use CodeIgniter\Model;
class UserModel extends Model
{
    protected $table = 'users';
    protected $primaryKey = 'id';
    
    protected $allowedFields = ['name', 'email'];
}


Class model menyediakan akses/koneksi ke database. Di file model ini juga kita dapat membuat sebuah query. Codeigniter menawarkan beberapa opsi konfigurasi untuk menangani nilai pada model, kita dapat melihat panduannya disini.

Membuat controller

Di bagian ini kita akan membuat file controller baru dengan nama UserCrud.php. pada controller ini akan menangani operasi CRUD seperti Create, Read, Update, Delete. File controller terdapat pada folder app\Controler. Berikut codenya.

<?php
namespace App\Controllers;
use App\Models\UserModel;
use CodeIgniter\Controller;
class UserCrud extends Controller
{
    // show users list
    public function index(){
    $userModel = new UserModel();
    $data['users'] = $userModel->orderBy('id', 'DESC')->findAll();
    return view('user_view', $data);
    }
    // add user form
    public function create(){
    return view('add_user');
    }
 
    // insert data
    public function store() {
    $userModel = new UserModel();
    $data = [
    'name' => $this->request->getVar('name'),
    'email'  => $this->request->getVar('email'),
    ];
    $userModel->insert($data);
    return $this->response->redirect(site_url('/users-list'));
    }
    // show single user
    public function singleUser($id = null){
    $userModel = new UserModel();
    $data['user_obj'] = $userModel->where('id', $id)->first();
    return view('edit_view', $data);
    }
    // update user data
    public function update(){
    $userModel = new UserModel();
    $id = $this->request->getVar('id');
    $data = [
    'name' => $this->request->getVar('name'),
    'email'  => $this->request->getVar('email'),
    ];
    $userModel->update($id, $data);
    return $this->response->redirect(site_url('/users-list'));
    }
 
    // delete user
    public function delete($id = null){
    $userModel = new UserModel();
    $data['user'] = $userModel->where('id', $id)->delete($id);
    return $this->response->redirect(site_url('/users-list'));
    }    
}

Membuat route

Selanjutnya, kita harus membuat route untuk menangani operasi CRUD. Untuk mengetahui lebih lanjut mengenai RESTfull route, anda dapat melihat dokumentasi resminya di sini.
Untuk mengaktifkan route pada aplikasi codeigniter, letakkan kode berikut di dalam file app\Config\Routes.php

// CRUD
$routes->get('users-list', 'UserCrud::index');
$routes->get('user-form', 'UserCrud::create');
$routes->post('submit-form', 'UserCrud::store');
$routes->get('edit-view/(:num)', 'UserCrud::singleUser/$1');
$routes->post('update', 'UserCrud::update');
$routes->get('delete/(:num)', 'UserCrud::delete/$1');

Memasukkan data

Sekarang, kita akan membuat syntax bagaimana memasukkan data ke dalam database MySQL melalui Codeigniter. Buat file add_user.php di dalam folder app\Views. Lalu masukkan kode berikut.

<!DOCTYPE html>
<html>
<head>
  <title>Codeigniter 4 Add User</title>
</head>
<body>
    <form method="post" id="add_create" name="add_create"
    action="<?= site_url('/submit-form') ?>">
      <div>
        <label>Name</label>
        <input type="text" name="name" required>
      </div>
      <div>
        <label>Email</label>
        <input type="email" name="email">
      </div>
      <div>
        <button type="submit">Insert Data</button>
      </div>
    </form>
</body>
</html>

 

Menampilkan dan menghapus data

Pada Langkah ini, kita akan mengambil data dari database MySQL dan menampilkan data di aplikasi Codeigniter. Secara bersamaan kita juga akan membuat script cara menghapus data user dari database. Buat file view dengan nama user_view.php di dalam folder app\View dengan isi script sebagai berikut:

<!doctype html>
<html lang="en">
  <head>
  <title>Codeigniter 4 CRUD App Example</title>
</head>
<body>
<div>
    <div>
        <a href="<?php echo site_url('/user-form') ?>">Add User</a>
    </div>
    <?php
     if(isset($_SESSION['msg'])){
        echo $_SESSION['msg'];
      }
     ?>
  <div>
     <table border='1' id="users-list">
       <thead>
          <tr>
             <th>User Id</th>
             <th>Name</th>
             <th>Email</th>
             <th>Action</th>
          </tr>
       </thead>
       <tbody>
          <?php if($users): ?>
          <?php foreach($users as $user): ?>
          <tr>
             <td><?php echo $user['id']; ?></td>
             <td><?php echo $user['name']; ?></td>
             <td><?php echo $user['email']; ?></td>
             <td>
  <a href="<?php echo base_url('edit-view/'.$user['id']);?>">Edit</a>
  <a href="<?php echo base_url('delete/'.$user['id']);?>">Delete</a>
              </td>
          </tr>
         <?php endforeach; ?>
         <?php endif; ?>
       </tbody>
     </table>
  </div>
</div>
</body>
</html>

Edit dan update data

Setelah kita membuat view untuk menampilkan data, Langkah selanjutnya kita akan membuat tampilan halaman untuk edit dan proses update data. Masih di folder app\View, buat file view dengan nama edit_view.php denga nisi script sebagai berikut:

<!DOCTYPE html>
<html>
<head>
  <title>Codeigniter 4 CRUD - Edit User</title>
</head>
<body>
  <div>
    <form method="post" id="update_user" name="update_user"
    action="<?= site_url('/update') ?>">
      <input type="hidden" name="id" id="id" value="<?php echo $user_obj['id']; ?>">
      <div>
        <label>Name</label>
        <input type="text" name="name" value="<?php echo $user_obj['name']; ?>">
      </div>
      <div>
        <label>Email</label>
        <input type="email" name="email" value="<?php echo $user_obj['email']; ?>">
      </div>
      <div>
        <button type="submit">Save Data</button>
      </div>
    </form>
  </div>
</body>
</html>


Langkah terakhir, silahkan jalankan perintah berikut pada command line untuk menjalankan aplikasi CRUD Codeingiter

php spark serve



Jalankan browser, dan masukkan url berikut pada alamat browser:

http://localhost:8080/index.php/user-list

Apabila berhasil dan tidak ada kendala pesan kesalahan, maka anda akan menemui tampilan seperti di bawah ini.



Dalam tutorial ini, saya Menyusun secara Langkah demi Langkah. Jika anda seorang pemula dalam pengembangan Codeigniter, maka tutorial ini dapat digunakan sebagai bahan Latihan anda.

Jika materi di tutorial ini dirasa kurang, anda dapat membeli buku Codeigniter saya. Silahkan klik link di bawah ini untuk mendapatkannya.

1. Membangun Aplikasi dengan Codeigniter dan Database SQL Server

2. Kolaborasi CodeIgniter dan Ajax dalam Perancangan CMS

3. Panduan Praktis dan Jitu Menguasai Framework Codeigniter 3 


Terimakasih