Step by step membangun aplikasi CRUD pertama dengan Codeigniter4. Sejak kemunculannya sampai sekarang ini di tahun 2020, Codeigniter sendiri memberikan 3 pilihan versi, yaitu: Codeigniter 2, Codeigniter 3, dan Codeigniter 4 (sekarang).

Codeigniter versi 2 merupakan versi legacy dari Codeigniter, Codeigniter versi 3 merupakan versi terbaru dari Codeigniter, sedangkan Codeigniter 4 merupakan versi masa depan Codeigniter.

Tahap Pertama
Dengan rencana yang sederhana, untuk memulai membangun aplikasi pada Codeigniter4 pertama-tama yang perlu di lakukan adalah Anda menginstallnya pada directory web server.

Buka jendela Terminal/ Command Prompt dan jalankan perintah composer berikut.

composer create-project codeigniter4/appstarter jogjatech-codeigniter4
install codeigniter4

Perintah diatas akan menciptakan folder project pada web server dengan nama “jogjatech-codeigniter4”. Kemudian jalankan perintah berikut

php spark serve

Dan buka jendela web browser Anda lalu akses url localhost:8080, atau akses secara langsung project Anda, disini saya akan mengakses langsung project saya melalui url localhost:8080/jogjatech-codeigniter4/public

Jika berjalan dengan baik, maka anda akan disapa oleh halaman welcome codeigniter4, seperti berikut

project codeigniter4 berhasil install web server

Database Setup
Codeigniter4 menyediakan dua (2) cara untuk melakukan konfigurasi database. Membuatnya terkoneksi dengan database pada Codeigniter4 bisa dilakukan dengan cara yaitu, dengan melakukan pengaturan file Database.php yang terdapat pada folder “app/Config”. Dan juga dapat dilakukan dengan mengaturnya pada file env yang terdapat pada root project.

Membuat Koneksi Database Codeigniter4 Melalui file Database.php
Buka file Database.php yang terdapat pada folder “app/Config”, kemudian lakukan konfigurasi pada baris kode seperti berikut:

public $default = [
    'DSN'      => '',
    'hostname' => 'localhost',
    'username' => 'root', //username database
    'password' => '', //password database kosongkan jika tidak ada
    'database' => 'nama_database', //nama database project anda
    'DBDriver' => 'MySQLi',
    'DBPrefix' => '',
    'pConnect' => false,
    'DBDebug'  => (ENVIRONMENT !== 'production'),
    'cacheOn'  => false,
    'cacheDir' => '',
    'charset'  => 'utf8',
    'DBCollat' => 'utf8_general_ci',
    'swapPre'  => '',
    'encrypt'  => false,
    'compress' => false,
    'strictOn' => false,
    'failover' => [],
    'port'     => 3306,
];

Membuat Koneksi Database Codeigniter4 pada file env yang terdapat pada root project.
Selain cara pertama diatas, untuk mengkoneksikan project Codeigniter4 dengan database dapat dilakukan dengan melakukan pengaturan pada file env.

Temukan file env pada root project, kemudian rename (ganti nama) menjadi .env dan buka file tersebut, kemudian temuka kode seperti berikut:

#--------------------------------------------------------------------
# DATABASE
#--------------------------------------------------------------------

# database.default.hostname = localhost
# database.default.database = ci4
# database.default.username = root
# database.default.password = root
# database.default.DBDriver = MySQLi

Kemudian lakukan konfigurasi database sesuai kebutuhan, misalkan seperti berikut:

database.default.hostname = localhost
database.default.database = nama_database //nama database project
database.default.username = root //username database
database.default.password = root //password database kosongkan jika tidak ada
database.default.DBDriver = MySQLi

Menyiapkan Tabel Pada Database
Guna menjalankan kebutuhan CRUD pada aplikasi, maka dibutuhkan sebuah tabel database yang nantinya berguna untuk menyimpan data yang akan kita olah pada operasi CRUD.

Buatlah sebuah tabel, semisal seperti pada contoh berikut

CREATE TABLE IF NOT EXISTS `pegawai` (
  `id` int(1) NOT NULL AUTO_INCREMENT,
  `nama_lengkap` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `pekerjaan` varchar(150) NOT NULL,
  `alamat` varchar(250) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;

Menggunakan Faker Pada Codeigniter4
Faker adalah library open-source yang dibuat oleh Francois Zaninotto, yang berguna untuk membuat data palsu, atau data acak, atau data random untuk kepentingan ujicoba atau testing aplikasi. Faker mampu meng-generate ratusan bahkan ribuan data palsu untuk kegunaan data testing.

Install Faker pada Project Codeigniter4
Untuk melakukan uji coba aplikasi dengan data palsu, kita bisa memanfaatkan Faker untuk meng-generate data. Jalankan perintah berikut untuk instalasinya

composer require fzaninotto/faker

Membuat Data Palsu Dengan Faker dan Databse Seeder Pada Codeigniter4
Buatlah satu file seeder misalkan disini saya beri nama file “PegawaiSeeder.php” pada folder “app\Database\Seeds\PegawaiSeeder.php” kemudian panggilah library Faker dan ketikkan seperti kode berikut.

<?php namespace App\Database\Seeds;
use Faker\Factory as Faker;
class PegawaiSeeder extends \CodeIgniter\Database\Seeder
{
        public function run()
        {
            $faker = Faker::create('id_ID');

			for($i=1; $i <= 10; $i++){
				$this->db->table('pegawai')->insert([
					'nama_lengkap' => $faker->name,
					'email' => $faker->email,
					'pekerjaan' => $faker->jobTitle,
					'alamat'    => $faker->address
				]);
			}

        }
}

Kemudian buka jendela Terminal/ Command Prompt, dan masih aktif pada folder project codeigniter4 Anda, kemudian jalankan perintah seeder seperti berikut

php spark db:seed PegawaiSeeder

Jika berjalan dengan baik, maka Faker akan meng-genarate data fake atau data palsu ke dalam tabel pegawai database sebanyak perulangan yang kita ketikkan, seperti berikut hasilnya.

Membuat Controller Codeigniter4
Tahap selanjutnya adalah buatkan controller baru pada project Codeigniter4, disini saya beri nama “Data.php” dan simpan pada folder “app\Controllers\Data.php”.

Membuat CRUD Pada Codeigniter4
CRUD merupakan singkatan dari fungsi Create Read Update dan Delete, dengan Codeigniter4 ini kita akan membahas satu persatu langkah demi langkah membuat CRUD pada Codeigniter4.

Menampilkan Data Pada Codeigniter4 (Read)
Setelah sebelumnya kita berhasil menginputkan data palsu menggunakan library Faker, maka saatnya menampilkan data tersebut ke view codeigniter4.

Untuk menampilkan data disini saya akan melibatkan model nya codeigniter, oke buatkan sebuah file model, misalkan disini saya beri nama “DataModel.php” dan simpanlah pada folder “app\Models\DataModel.php”, lalu ketikkan kode berikut.

<?php namespace App\Models;

use CodeIgniter\Model;

class DataModel extends Model
{
    protected $table = 'pegawai';
	
	public function getAll($id = false)
	{
		if ($id === false)
		{
			return $this->findAll();
		}else{
			return $this->getWhere(['id' => $id]);
		}
		
	}
}

Buka controller “Data.php” pada folder “app\Controllers\Data.php”, lalu ketikkan kode berikut pada method index().

<?php namespace App\Controllers;
use App\Models\DataModel;
class Data extends BaseController
{
	public function index()
	{
		$model	= new DataModel();
		$data	= array();
        $data['pegawai'] = $model->getAll();
		return view('data/index',$data);
	}
}

Kemudian buatlah sebuah file view, misalkan disini saya beri nama “index.php” pada folder “app\Views\data\index.php”, lalu buatlah sebuah tabel data seperti berikut.

<!-- CONTENT -->

<section>

	<h1>Data Pegawai</h1>
	<table border="1">
        <thead>
            <tr>
                <th>No.</th>
                <th>Nama Pegawai</th>
                <th>Email</th>
                <th>Pekerjaan</th>
                <th>Alamat</th>
                <th>Aksi</th>
            </tr>
        </thead>
        <tbody>
        <?php 
		$no=1;
		foreach($pegawai as $row):?>
            <tr>
                <td><?php echo$no++;?></td>
                <td><?php echo $row['nama_lengkap'];?></td>
                <td><?php echo $row['email'];?></td>
                <td><?php echo $row['pekerjaan'];?></td>
                <td><?php echo $row['alamat'];?></td>
                <td>
					<a href="<?php echo base_url();?>/public/data/edit/<?php echo $row['id'];?>">Edit</a>
					<a href="<?php echo base_url();?>/public/data/hapus/<?php echo $row['id'];?>">Hapus</a>
				</td>
            </tr>
        <?php endforeach;?>
        </tbody>
    </table>

</section>

Bukalah web browser dan akses url project Anda seperti localhost:8080/jogjatech-codeigniter4/public/data, jika berjalan dengan baik maka akan tampil halaman seperti contoh berikut.

membangun aplikasi pertama codeigniter4
menampilkan data

Menginputkan Data Dengan Codeigniter4 (Create)
Untuk menginputkan data maka kita butuh sebuah file view sebut saja namanya “create.php” yang mana didalamnya berisi tag html pembentuk form, simpanlah pada folder “app\Views\data\create.php”.

<!-- CONTENT -->

<section>

	<h1>Tambah Data Pegawai</h1>
	<form action="<?php echo base_url();?>/public/data/simpan" method="post">
		<table border="1">
			<tr>
				<td>Nama</td>
				<td><input type="text" name="nama_lengkap"></td>
			</tr>
			<tr>
				<td>Email</td>
				<td><input type="text" name="email"></td>
			</tr>
			<tr>
				<td>Pekerjaan</td>
				<td><input type="text" name="pekerjaan"></td>
			</tr>
			<tr>
				<td>Alamat</td>
				<td><textarea name="alamat"></textarea></td>
			</tr>
			<tr>
				<td colspan="2"><button type="submit">Simpan</button></td>
			</tr>
		
		</table>
	</form>

</section>

Kemudian, buka controller “Data.php” dan buatkan satu method create(), seperti tampak berikut

public function create()
	{
		return view('data/create');
	}

Method diatas kita gunakan untuk menampilkan form html, selanjutnya buatkan satu buah method lagi dengan nama simpan(), lalu ketikkan kode seperti berikut.

public function simpan()	
	{
		$model	= new DataModel();
		if (! $this->validate([
			'nama_lengkap' => 'required|min_length[3]|max_length[255]',
			'email'  => 'required'
		])){
			return redirect()->to(''.base_url().'/public/data');
		}else{			
			$model->simpanData([
				'nama_lengkap' => $this->request->getPost('nama_lengkap'),
				'email'  => $this->request->getPost('email'),
				'pekerjaan'  => $this->request->getPost('pekerjaan'),
				'alamat'  => $this->request->getPost('alamat')
			]);
			return redirect()->to(''.base_url().'/public/data');
		}
	}

Kemudian kita buatkan fungsi pada model, yang akan kita gunakan untuk menyimpan data, seperti berikut.

public function simpanData($data)
	{
		$query = $this->db->table($this->table)->insert($data);
        return $query;
	}

Mengupdate Data Dengan Codeigniter4 (Update)
Untuk melakukan update data di codeigniter, maka yang perlu kita persiapkan adalah membuatkan form untuk manampung data yang kita panggil dari database. Buat satu file view dengan nama “edit.php” pada folder “app\Views\data\edit.php”. Lalu ketikkan kode berikut sehingga membentuk sebuah form.

<!-- CONTENT -->

<section>

	<h1>Edit Data Pegawai</h1>
	<form action="<?php echo base_url();?>/public/data/update" method="post">
		<table border="1">
			<tr>
				<td>Nama</td>
				<td><input type="text" name="nama_lengkap" value="<?php echo $pegawai->nama_lengkap;?>"></td>
			</tr>
			<tr>
				<td>Email</td>
				<td><input type="text" name="email" value="<?php echo $pegawai->email;?>"></td>
			</tr>
			<tr>
				<td>Pekerjaan</td>
				<td><input type="text" name="pekerjaan" value="<?php echo $pegawai->pekerjaan;?>"></td>
			</tr>
			<tr>
				<td>Alamat</td>
				<td><textarea name="alamat"><?php echo $pegawai->alamat;?></textarea></td>
			</tr>
			<tr>
				<input type="hidden" name="id" value="<?php echo $pegawai->id;?>">
				<td colspan="2"><button type="submit">Simpan</button></td>
			</tr>
		
		</table>
	</form>

</section>

Buka file model “DataModel.php” pada folder “app\Models\DataModel.php”, lalu ketikkan kode berikut

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

Dan buka file controller “Data.php” pada folder “app\Controllers\Data.php”. Lalu tambahkan satu method dengan nama edit(), lalu ketikkan kode seperti berikut.

public function edit($id)
	{
		$model	= new DataModel();
		$data['pegawai'] = $model->getAll($id)->getRow();
		return view('data/edit',$data);
	}

Tambahkan satu buah method lagi yang akan kita gunakan untuk mengupdate data ke database, seperti berikut.

public function update()
	{
		$model	= new DataModel();
		$id = $this->request->getPost('id');
        $data = array(
            'nama_lengkap' => $this->request->getPost('nama_lengkap'),
			'email'  => $this->request->getPost('email'),
			'pekerjaan'  => $this->request->getPost('pekerjaan'),
			'alamat'  => $this->request->getPost('alamat')
        );
        $model->updateData($data, $id);
        return redirect()->to(''.base_url().'/public/data');
	}

Menghapus Data Dengan Codeigniter4 (Delete)
Untuk menghapus data kita hanya perlu menambahkan fungsi hapus pada model, seperti berikut.

public function hapusData($id)
	{
		$this->db->table($this->table)->where('id', $id)->delete();
	}

Lalu buka file controller dan buatkan satu buah method hapus() seperti berikut.

public function hapus($id)
	{
		$model	= new DataModel();
		$model->hapusData($id);
		return redirect()->to(''.base_url().'/public/data');
	}

Nah, teman-teman sampai disini kita telah berhasil secara step by step membangun aplikasi CRUD pertama dengan Codeigniter4, dimana dalam aplikasi ini kita melewati tahap instalasi project, hingga melakukan pengolahan data dengan database.

Semoga tutorial ini dapat memberi manfaat, terimakasih..

Selesai..