Home » Codeigniter 4 » Tutorial Codeigniter 4 #7: CRUD Codeigniter 4

Tutorial Codeigniter 4 #7: CRUD Codeigniter 4

Published by Ade Kurniawan on

Crud dapat dikerjakan lebih cepat pada codeigniter 4. Hal ini dikarenakan crud codeigniter 4 memiliki metode baru dalam menampilkan data terutama penyederhanaan script pada model. Crud codeigniter Salah satunya adalah dengan menggunakan pendekatan yang lebih object oriented programming.

Sebagai contoh untuk memanggil model kita harus menggunakan perintah use untuk mengimport, dan kemudian dibuatkan object (instance) di controller dengan perintah new namamodel() untuk dapat mengakses atribut dan method yang terdapat pada model tersebut.

Untuk dapat memahami metode baru dalam menampilkan data tersebut pada tutorial ini di bahas crud codeigniter 4.

langkah – langkah untuk membuat crud codeigniter 4 sebagai berikut:

  1. Instalasi Codeigniter 4
  2. Menyiapkan database
  3. Membuat Read
  4. Membuat Create
  5. Membuat Update
  6. Membuat Delete

Langkah 1:

Instalasi Codeigniter

Untuk langkah instalasi ini sudah di bahas pada tutorial sebelumya dengan judul instalasi codeigniter 4. pada tutorial tersebut kita sudah menyiapkan project codeigniter 4 dengan nama projectci4.

Pada tutorial ini kita masih menggunakan projectci4

Langkah 2:

Menyiapkan database

Membuat database di phpmyadmin

Database adalah hal penting untuk bisa melakukan crud. Contoh tutorial crud project codeigniter 4 ini menggunakan database akademik:

Silahkan buat database akademik dan buatlah tabel mahasiswa sebagai berikut:

tabel akademik

Mengatur configurasi database

Mengatur database configuration dapat dilakukan di enviornment dan di file config App/config/Database.php

Untuk mengatur di environtment silahkan di rubah script database sesuai dengan nama database dan tabel yang telah di buat:

database.default.hostname = localhost
database.default.database = akademik
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi

Untuk mengatur di App/config/Database.php silahkan akses file database.php dan isikan nilai array untuk key array berikut:

public $default = [
‘hostname’ => ‘localhost’
‘database’ => ‘alademik’
‘username’ => ‘root’
‘password’ => ‘ ‘
];

Untuk config database di tahap ini lakukan salah 1 saja karna tujuannya sama yaitu untuk mengkoneksikan projectci4 kita dengan database.

Setelah memiliki project dan database

langkah 3:

Membuat Read

Read atau menampilkan data dari database menggunakan codeigniter 4 dilakukan dengan membuat file model, file view dan controller Read.

Silahkan buat file model codeigniter 4 Read menggunakan script berikut:

MahasiswaModel.php

<?php

namespace App\Models;
use CodeIgniter\Model;

class MahasiswaModel extends Model
{
    protected $table      = 'mahasiswa';
}

selanjutnay buat controller di app/Controllers

Mahasiswa.php

<?php

namespace App\Controllers;

use App\Models\MahasiswaModel;

class Mahasiswa extends BaseController
{
	protected $mahasiswamodel;
	public function __construct()
	{
		$this->mahasiswamodel = new MahasiswaModel();
	}

	public function index()
	{
		$mahasiswa = $this->mahasiswamodel->findAll();

		$data = [
			'title' 	=> 'Data Mahasiswa',
			'mahasiswa' => $mahasiswa
		];
		echo view('mahasiswa/data_mahasiswa', $data);
	}
}

membuat file view

disini kita gunakan template bootstrap sehingga kita harus memasukkan file bootstrap terlebih dahulu

buatlah folder baru pada views dengan nama template dan buat file template.php pada folder tersebut:

template.php

<?php $this->extend('template/template'); ?>
<?php $this->section('isi'); ?>
<div class="container">
    <div class="card mt-3">
        <div class="card-header">
            <b><?= $title ?></b>
        </div>
        <div class="card-body">
            <form action="<?php echo base_url('mahasiswa/simpan')?>" method="post">
                <div class="form-group row">
                    <label for="nama" class="col-sm-2 label">Nama</label>
                    <div class="col-sm-4">
                        <input type="text" name="nama" class="form-control">
                    </div>
                </div>
                <div class="form-group row">
                    <label for="nama" class="col-sm-2 label">Jenis Kelamin</label>
                    <div class="col-sm-4">
                        <input type="text" name="jenis_kelamin" class="form-control">
                    </div>
                </div>
                <div class="form-group row">
                    <label for="nama" class="col-sm-2 label">Alamat</label>
                    <div class="col-sm-5">
                        <input type="text" name="alamat" class="form-control">
                    </div>
                </div>
                <div class="form-group row">
                    <div class="col-sm-4">
                        <input type="submit" value="submit" class="btn btn-info">
                    </div>
                    </form>
                </div>            
        </div>
    </div>
</div>
<?php $this->endSection(); ?>

setelah memiliki file template selanjutnya kita buat file content pada Views/mahasiswa dengan nama data_mahasiswa.php

data_mahasiswa.php

<?php $this->extend('template/template'); ?>
<?php $this->section('isi'); ?>
<div class="container">
    <div class="card mt-3">
        <div class="card-header">
            <b><?= $title ?></b>
        </div>
        <div class="card-body">
            <a href="mahasiswa/tambah" class="btn btn-info">Tambah </a>
            <br><br>
            <table class="table table-bordered">
                <tr>
                    <th>No</th>
                    <th>Nama</th>
                    <th>Jenis Kelamin</th>
                    <th>Alamat</th>
                    <th>Aksi</th>
                </tr>
                <?php
                $no = 1;
                foreach ($mahasiswa as $key) : ?>
                    <tr>
                        <td><?php echo $no++; ?></td>
                        <td><?php echo $key['nama']; ?></td>
                        <td><?php echo $key['jenis_kelamin']; ?></td>
                        <td><?php echo $key['alamat']; ?></td>
                        <td>
                            <a href="/mahasiswa/edit/<?php echo $key['id']; ?>">Edit</a>
                            <a href="/mahasiswa/delete/<?php echo $key['id']; ?>">Hapus</a>
                        </td>
                    </tr>
                <?php endforeach; ?>
            </table>
        </div>
    </div>
</div>
<?php $this->endSection(); ?>

dengan tahap di atas kita telah selesai membuat Read;

Jalankan program dengan mengakes url:

//jika dijlankan melalui php spark

http://localhost:8080/mahasiswa

jika dijalankan melalui apache server

http://localhost/projectci4/public/mahasiswa

jika berhasil maka akan muncul sebagai berikut:

Read codeigniter 4

Langkah 4:

Membuat Create

Untuk membuat Create Silahkan Ubah Model MahasiswaModel menjadi seperti di bawah ini

MahasiswaModel.php

<?php

namespace App\Models;

use CodeIgniter\Model;

class MahasiswaModel extends Model
{
    protected $table      = 'mahasiswa';
    protected $allowedFields = ['nama', 'jenis_kelamin', 'alamat'];
}

dengan hanaya $allowdFields pada model kita sudah bisa menginputkan data ke database.

langkah selanjutnya yaitu dengan menambahkan script pada Controller sehingga menjadi seperti berikut

Mahasiswa.php

<?php

namespace App\Controllers;

use App\Models\MahasiswaModel;

class Mahasiswa extends BaseController
{
	protected $mahasiswamodel;
	public function __construct()
	{
		$this->mahasiswamodel = new MahasiswaModel();
	}

	public function index()
	{
		$mahasiswa = $this->mahasiswamodel->findAll();

		$data = [
			'title' 	=> 'Data Mahasiswa',
			'mahasiswa' => $mahasiswa
		];
		echo view('mahasiswa/data_mahasiswa', $data);
	}

	public function tambah()
	{

		$data = [
			'title' => 'Tambah Data Mahasiswa',
		];
		echo view('mahasiswa/data_tambah', $data);
	}

	public function simpan()
	{
		$this->mahasiswamodel->save([
			'nama' 			=> $this->request->getVar('nama'),
			'jenis_kelamin' => $this->request->getVar('jenis_kelamin'),
			'alamat' 		=> $this->request->getVar('alamat')
		]);

		return redirect()->to('/mahasiswa');
	}
}

Views.

data_tambah.php

<?php $this->extend('template/template'); ?>
<?php $this->section('isi'); ?>
<div class="container">
    <div class="card mt-3">
        <div class="card-header">
            <b><?= $title ?></b>
        </div>
        <div class="card-body">
            <form action="<?php echo base_url('mahasiswa/simpan')?>" method="post">
                <div class="form-group row">
                    <label for="nama" class="col-sm-2 label">Nama</label>
                    <div class="col-sm-4">
                        <input type="text" name="nama" class="form-control">
                    </div>
                </div>
                <div class="form-group row">
                    <label for="nama" class="col-sm-2 label">Jenis Kelamin</label>
                    <div class="col-sm-4">
                        <input type="text" name="jenis_kelamin" class="form-control">
                    </div>
                </div>
                <div class="form-group row">
                    <label for="nama" class="col-sm-2 label">Alamat</label>
                    <div class="col-sm-5">
                        <input type="text" name="alamat" class="form-control">
                    </div>
                </div>
                <div class="form-group row">
                    <div class="col-sm-4">
                        <input type="submit" value="submit" class="btn btn-info">
                    </div>
                    </form>
                </div>            
        </div>
    </div>
</div>
<?php $this->endSection(); ?>

Jalankan kembali program dengan mengakes url:

//jika dijlankan melalui php spark

http://localhost:8080/mahasiswa/tambah

jika dijalankan melalui apache server

http://localhost/projectci4/public/mahasiswa/tambah

jika berhasil maka akan muncul sebagai berikut:

create codeigniter 4

Langkah 5:

Membuat Update

Untuk membuat update codeigniter silahkan tambahkan script berikut pada model MahasiswaModel.php

<?php

namespace App\Models;

use CodeIgniter\Model;

class MahasiswaModel extends Model
{
    protected $table      = 'mahasiswa';
    protected $primaryKey = 'id';
    protected $allowedFields = ['nama', 'jenis_kelamin', 'alamat'];

    public function data_mhs($id_mhs)
    {
        return $this->find($id_mhs);
    }

    public function update_data($data, $id_mhs)
    {
        $query = $this->db->table($this->table)->update($data, array('id' => $id_mhs));
        return $query;
    }    
}

Pada Scirpt MahasiswaModel.php di atas untuk membuat update dengan menambahkan 2 function baru yaitu function data_mhs dan function update_data

Setelah menambahkan ke 2 function di atas pada model.

Silahkan buka lagi controller mahasiswa

dan ubah scriptnya sehinnga menjadi seperti berikut:

Mahasiswa.php

<?php

namespace App\Controllers;

use App\Models\MahasiswaModel;

class Mahasiswa extends BaseController
{
	protected $mahasiswamodel;
	public function __construct()
	{
		$this->mahasiswamodel = new MahasiswaModel();
	}

	public function index()
	{
	$mahasiswa = $this->mahasiswamodel->findAll();

		$data = [
			'title' 	=> 'Data Mahasiswa',
			'mahasiswa' => $mahasiswa
		];
		echo view('mahasiswa/data_mahasiswa', $data);
	}

	public function tambah()
	{

		$data = [
			'title' => 'Tambah Data Mahasiswa',
		];
		echo view('mahasiswa/data_tambah', $data);
	}

	public function simpan()
	{
		$this->mahasiswamodel->save([
			'nama' 			=> $this->request->getVar('nama'),
			'jenis_kelamin' => $this->request->getVar('jenis_kelamin'),
			'alamat' 		=> $this->request->getVar('alamat')
		]);

		return redirect()->to('/mahasiswa');
	}

	public function edit($id_mhs)
	{
		$mahasiswa = $this->mahasiswamodel->data_mhs($id_mhs);
		$data = [
			'title' 	=> 'Tambah Data Mahasiswa',
			'mahasiswa' => $mahasiswa
		];
		echo view('mahasiswa/data_edit', $data);
	}

	public function update()
	{
		$id_mhs = $this->request->getVar('id');
		$data = [
			'nama' 			=> $this->request->getVar('nama'),
			'jenis_kelamin' => $this->request->getVar('jenis_kelamin'),
			'alamat' 		=> $this->request->getVar('alamat')
		];
		
		$this->mahasiswamodel->update_data($data, $id_mhs);
		return redirect()->to('/mahasiswa');
	}	
}

Perubahan yang dilakukan terhadap controller mahasiswa di atas yaitu penambahan function edit dan simpan.

Setelah memodifikasi model dan controller selanjutnya untuk membuat update codeigniter 4 ini dibutuhkan view edit.

silahkan buat file view edit pada directory mahasiswa dan gunakan script berikut

view_edit.php

<?php $this->extend('template/template'); ?>
<?php $this->section('isi'); ?>
<div class="container">
    <div class="card mt-3">
        <div class="card-header">
            <b><?= $title ?></b>
        </div>
        <div class="card-body">
            <form action="<?php echo base_url('mahasiswa/update') ?>" method="post">
                <div class="form-group row">
                    <input type="hidden" name="id"  value="<?= $mahasiswa['id']; ?>">
                    <label for="nama" class="col-sm-2 label">Nama</label>
                    <div class="col-sm-4">
                        <input type="text" name="nama" class="form-control" value="<?= $mahasiswa['nama']; ?>">
                    </div>
                </div>
                <div class="form-group row">
                    <label for="nama" class="col-sm-2 label">Jenis Kelamin</label>
                    <div class="col-sm-4">
                        <input type="text" name="jenis_kelamin" class="form-control" value="<?= $mahasiswa['jenis_kelamin']; ?>">
                    </div>
                </div>
                <div class="form-group row">
                    <label for="nama" class="col-sm-2 label">Alamat</label>
                    <div class="col-sm-5">
                        <input type="text" name="alamat" class="form-control" value="<?= $mahasiswa['alamat']; ?>">
                    </div>
                </div>
                <div class="form-group row">
                    <div class="col-sm-4">
                        <input type="submit" value="submit" class="btn btn-info">
                    </div>
            </form>
        </div>
    </div>
</div>
</div>
<?php $this->endSection(); ?>

setelah membuat file di atas silahkan jalankan edit / update codeigniter 4 dengan mengakes url berikut

//jika dijlankan melalui php spark

http://localhost:8080/mahasiswa/edit

jika dijalankan melalui apache server:

http://localhost/projectci4/public/mahasiswa/edit

Setelah dijalankan maka akan muncul sebagai berikut:

edit codeigniter 4

langkah 6

Membuat Delete

Untuk membuat delete silahkan modifikasi kembali model dan controller seperti di bawah ini:

MahasiswaModel.php

<?php

namespace App\Models;

use CodeIgniter\Model;

class MahasiswaModel extends Model
{
    protected $table      = 'mahasiswa';
    protected $primaryKey = 'id';
    protected $allowedFields = ['nama', 'jenis_kelamin', 'alamat'];

    public function data_mhs($id_mhs)
    {
        return $this->find($id_mhs);
    }

    public function update_data($data, $id_mhs)
    {
        $query = $this->db->table($this->table)->update($data, array('id' => $id_mhs));
        return $query;
    }

    public function delete_data($id_mhs)
    {
        $query = $this->db->table($this->table)->delete(array('id' => $id_mhs));
        return $query;
    }
}

Perubbahan yang dilakukan pada MahasiswaModel.php di atas adalah penambahan function delete_data

Controller

Mahasiswa.php

<?php

namespace App\Controllers;

use App\Models\MahasiswaModel;

class Mahasiswa extends BaseController
{
	protected $mahasiswamodel;
	public function __construct()
	{
		$this->mahasiswamodel = new MahasiswaModel();
	}

	public function index()
	{
	$mahasiswa = $this->mahasiswamodel->findAll();

		$data = [
			'title' 	=> 'Data Mahasiswa',
			'mahasiswa' => $mahasiswa
		];
		echo view('mahasiswa/data_mahasiswa', $data);
	}

	public function tambah()
	{

		$data = [
			'title' => 'Tambah Data Mahasiswa',
		];
		echo view('mahasiswa/data_tambah', $data);
	}

	public function simpan()
	{
		$this->mahasiswamodel->save([
			'nama' 			=> $this->request->getVar('nama'),
			'jenis_kelamin' => $this->request->getVar('jenis_kelamin'),
			'alamat' 		=> $this->request->getVar('alamat')
		]);

		return redirect()->to('/mahasiswa');
	}

	public function edit($id_mhs)
	{
		$mahasiswa = $this->mahasiswamodel->data_mhs($id_mhs);
		$data = [
			'title' 	=> 'Tambah Data Mahasiswa',
			'mahasiswa' => $mahasiswa
		];
		echo view('mahasiswa/data_edit', $data);
	}

	public function update()
	{
		$id_mhs = $this->request->getVar('id');
		$data = [
			'nama' 			=> $this->request->getVar('nama'),
			'jenis_kelamin' => $this->request->getVar('jenis_kelamin'),
			'alamat' 		=> $this->request->getVar('alamat')
		];
		
		$this->mahasiswamodel->update_data($data, $id_mhs);
		return redirect()->to('/mahasiswa');
	}

	public function delete($id_mhs)
	{
		$this->mahasiswamodel->delete_data($id_mhs);
		return redirect()->to('/mahasiswa');
	}
}

perubahan yang dilakukan untuk membuat delete adalah dengan menambahkan function delete.

Untuk mencobakan delete ini silahkan di akses url http://localhost:8080/mahasiswa atau http://localhost/projectci4/public/mahasiswa

Demikian ulasan tentang crud codeigniter 4.


0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *