CodeIgniter 4 adalah framework PHP yang digunakan untuk membuat aplikasi web secara cepat, rapi, dan terstruktur. Framework ini cocok untuk membuat website company profile, aplikasi kasir, sistem informasi, REST API, dashboard admin, dan aplikasi berbasis database.
CodeIgniter 4 memakai konsep MVC atau Model View Controller. Konsep ini memisahkan logika aplikasi, tampilan halaman, dan pengelolaan data. Dengan konsep ini, kode program menjadi lebih mudah dibaca, diuji, dan dikembangkan.
Pada artikel ini, kita akan membahas pengertian CodeIgniter 4, kelebihannya, kebutuhan sistem, cara instalasi, struktur folder, route, controller, view, model, migration, database, dan contoh CRUD sederhana.
Apa Itu CodeIgniter 4?
CodeIgniter 4 adalah versi modern dari framework CodeIgniter. Versi ini membawa struktur kode yang lebih rapi, dukungan namespace, fitur keamanan yang lebih baik, dan cara kerja yang lebih sesuai dengan standar PHP modern.
CodeIgniter 4 tetap mempertahankan ciri utama CodeIgniter, yaitu ringan, sederhana, dan mudah dipelajari. Framework ini tidak memaksa developer memakai banyak konfigurasi yang rumit.
Bagi pemula, CodeIgniter 4 cocok digunakan untuk belajar framework PHP karena struktur dasarnya mudah dipahami. Bagi developer yang sudah berpengalaman, CodeIgniter 4 cocok digunakan untuk membuat aplikasi yang cepat dan efisien.
Kelebihan CodeIgniter 4
CodeIgniter 4 memiliki beberapa kelebihan yang membuatnya tetap banyak digunakan dalam pengembangan aplikasi web berbasis PHP.
- Ringan dan cepat dijalankan.
- Struktur folder lebih rapi.
- Mendukung konsep MVC.
- Mendukung Composer.
- Mendukung namespace PHP.
- Memiliki fitur routing yang mudah digunakan.
- Memiliki fitur model untuk mengelola database.
- Memiliki fitur migration untuk membuat struktur tabel.
- Memiliki fitur validation untuk memvalidasi input user.
- Memiliki perlindungan keamanan seperti CSRF dan escaping output.
Kebutuhan Sistem CodeIgniter 4
Sebelum menginstal CodeIgniter 4, pastikan komputer atau server sudah memenuhi kebutuhan sistem. Secara umum, CodeIgniter 4 membutuhkan PHP versi modern dan beberapa ekstensi penting.
Kebutuhan umum CodeIgniter 4:
- PHP versi 8.2 atau lebih baru untuk versi terbaru.
- Composer.
- Ekstensi PHP intl.
- Ekstensi PHP mbstring.
- Ekstensi PHP json.
- Ekstensi PHP mysqlnd jika menggunakan MySQL.
- Web server seperti Apache, Nginx, Laragon, XAMPP, atau server bawaan CodeIgniter.
Cara Instal CodeIgniter 4 Dengan Composer
Cara paling mudah menginstal CodeIgniter 4 adalah menggunakan Composer. Pastikan Composer sudah terpasang di komputer.
1. Cek Versi PHP
Jalankan perintah berikut untuk mengecek versi PHP:
php -v
Pastikan versi PHP sudah sesuai dengan kebutuhan CodeIgniter 4.
2. Cek Composer
Jalankan perintah berikut untuk mengecek Composer:
composer -V
Jika Composer belum terpasang, instal Composer terlebih dahulu.
3. Buat Project CodeIgniter 4
Jalankan perintah berikut untuk membuat project baru:
composer create-project codeigniter4/appstarter belajar-ci4
Masuk ke folder project:
cd belajar-ci4
Jalankan server bawaan CodeIgniter 4:
php spark serve
Buka browser, lalu akses alamat berikut:
http://localhost:8080
Jika halaman utama CodeIgniter tampil, berarti instalasi berhasil.
Struktur Folder CodeIgniter 4
Setelah instalasi selesai, CodeIgniter 4 akan membuat beberapa folder utama. Folder ini memiliki fungsi masing-masing.
- app: berisi kode utama aplikasi seperti controller, model, view, config, dan migration.
- public: berisi file index.php dan aset publik seperti CSS, JavaScript, dan gambar.
- system: berisi file inti framework CodeIgniter.
- writable: berisi cache, log, session, dan file yang dibuat aplikasi.
- tests: berisi file testing aplikasi.
- vendor: berisi library hasil instalasi Composer.
Folder yang paling sering digunakan saat membuat aplikasi adalah folder app. Di dalam folder ini, kita akan banyak bekerja dengan Controller, Model, View, Config, Database, dan Filters.
Mengatur Environment CodeIgniter 4
CodeIgniter 4 memakai file env untuk konfigurasi awal. Agar dapat digunakan, ubah nama file env menjadi .env.
cp env .env
Jika menggunakan Windows, bisa ubah nama file secara manual dari env menjadi .env.
Buka file .env, lalu cari bagian CI_ENVIRONMENT. Untuk proses belajar di komputer lokal, ubah menjadi development.
CI_ENVIRONMENT = development
Mode development membantu menampilkan pesan error dengan lebih jelas saat terjadi kesalahan.
Mengenal Route Pada CodeIgniter 4
Route digunakan untuk mengatur alamat URL dan menentukan controller atau function yang akan dijalankan. File route berada di app/Config/Routes.php.
Contoh route sederhana:
$routes->get('/', 'Home::index');
Kode tersebut berarti ketika user membuka halaman utama, CodeIgniter akan menjalankan method index pada controller Home.
Membuat Route Baru
Tambahkan route berikut di file app/Config/Routes.php:
$routes->get('/belajar', 'Belajar::index');
Route tersebut akan menjalankan controller Belajar dan method index saat user membuka URL /belajar.
Membuat Controller Di CodeIgniter 4
Controller digunakan untuk mengatur logic aplikasi. Controller menerima request dari user, memproses data, lalu mengirim hasil ke view.
Buat file baru dengan nama Belajar.php di folder app/Controllers.
<?php
namespace App\Controllers;
class Belajar extends BaseController
{
public function index()
{
return 'Belajar CodeIgniter 4';
}
}
Setelah itu buka alamat berikut di browser:
http://localhost:8080/belajar
Jika tampil teks Belajar CodeIgniter 4, berarti controller sudah berjalan.
Membuat View Di CodeIgniter 4
View digunakan untuk menampilkan halaman HTML. File view disimpan di folder app/Views.
Buat file baru dengan nama belajar.php di folder app/Views.
<!DOCTYPE html>
<html>
<head>
<title>Belajar CodeIgniter 4</title>
</head>
<body>
<h1>Belajar CodeIgniter 4</h1>
<p>Ini adalah halaman pertama saya menggunakan CodeIgniter 4.</p>
</body>
</html>
Ubah controller Belajar.php menjadi seperti berikut:
<?php
namespace App\Controllers;
class Belajar extends BaseController
{
public function index()
{
return view('belajar');
}
}
Buka kembali alamat /belajar. Sekarang CodeIgniter akan menampilkan halaman dari file view.
Mengirim Data Dari Controller Ke View
Controller dapat mengirim data ke view dalam bentuk array. Cara ini sering digunakan untuk menampilkan judul halaman, data user, data produk, atau data artikel.
Ubah controller Belajar.php menjadi seperti berikut:
<?php
namespace App\Controllers;
class Belajar extends BaseController
{
public function index()
{
$data = [
'judul' => 'Belajar CodeIgniter 4',
'materi' => 'Route, Controller, dan View'
];
return view('belajar', $data);
}
}
Ubah file app/Views/belajar.php menjadi seperti berikut:
<!DOCTYPE html>
<html>
<head>
<title><?= esc($judul) ?></title>
</head>
<body>
<h1><?= esc($judul) ?></h1>
<p>Materi: <?= esc($materi) ?></p>
</body>
</html>
Fungsi esc digunakan untuk membersihkan output agar lebih aman saat ditampilkan ke halaman.
Mengatur Database Di CodeIgniter 4
Untuk menggunakan database, kita perlu mengatur koneksi database di file .env.
Contoh konfigurasi database MySQL:
database.default.hostname = localhost database.default.database = belajar_ci4 database.default.username = root database.default.password = database.default.DBDriver = MySQLi database.default.DBPrefix = database.default.port = 3306
Buat database dengan nama belajar_ci4 di MySQL.
Membuat Migration Di CodeIgniter 4
Migration digunakan untuk membuat struktur tabel database melalui kode. Dengan migration, struktur database lebih mudah dikelola.
Jalankan perintah berikut untuk membuat migration:
php spark make:migration CreateBarangTable
Buka file migration yang dibuat di folder app/Database/Migrations. Isi file migration seperti berikut:
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
class CreateBarangTable extends Migration
{
public function up()
{
$this->forge->addField([
'id' => [
'type' => 'INT',
'constraint' => 11,
'unsigned' => true,
'auto_increment' => true,
],
'nama_barang' => [
'type' => 'VARCHAR',
'constraint' => 100,
],
'harga' => [
'type' => 'INT',
'constraint' => 11,
],
'stok' => [
'type' => 'INT',
'constraint' => 11,
],
'created_at' => [
'type' => 'DATETIME',
'null' => true,
],
'updated_at' => [
'type' => 'DATETIME',
'null' => true,
],
]);
$this->forge->addKey('id', true);
$this->forge->createTable('barang');
}
public function down()
{
$this->forge->dropTable('barang');
}
}
Jalankan migration:
php spark migrate
Jika berhasil, tabel barang akan dibuat di database.
Membuat Model Di CodeIgniter 4
Model digunakan untuk berinteraksi dengan database. Model membantu proses mengambil data, menyimpan data, mengubah data, dan menghapus data.
Buat file baru dengan nama BarangModel.php di folder app/Models.
<?php
namespace App\Models;
use CodeIgniter\Model;
class BarangModel extends Model
{
protected $table = 'barang';
protected $primaryKey = 'id';
protected $allowedFields = ['nama_barang', 'harga', 'stok'];
protected $useTimestamps = true;
}
Properti allowedFields digunakan untuk menentukan kolom yang boleh diisi melalui model.
Membuat Controller CRUD Barang
Setelah model dibuat, langkah berikutnya adalah membuat controller untuk mengatur proses CRUD. CRUD adalah Create, Read, Update, dan Delete.
Buat file baru dengan nama Barang.php di folder app/Controllers.
<?php
namespace App\Controllers;
use App\Models\BarangModel;
class Barang extends BaseController
{
protected $barangModel;
public function __construct()
{
$this->barangModel = new BarangModel();
}
public function index()
{
$data = [
'judul' => 'Data Barang',
'barang' => $this->barangModel->findAll()
];
return view('barang/index', $data);
}
public function create()
{
return view('barang/create', [
'judul' => 'Tambah Barang'
]);
}
public function store()
{
$this->barangModel->save([
'nama_barang' => $this->request->getPost('nama_barang'),
'harga' => $this->request->getPost('harga'),
'stok' => $this->request->getPost('stok')
]);
return redirect()->to('/barang');
}
public function edit($id)
{
$data = [
'judul' => 'Edit Barang',
'barang' => $this->barangModel->find($id)
];
return view('barang/edit', $data);
}
public function update($id)
{
$this->barangModel->update($id, [
'nama_barang' => $this->request->getPost('nama_barang'),
'harga' => $this->request->getPost('harga'),
'stok' => $this->request->getPost('stok')
]);
return redirect()->to('/barang');
}
public function delete($id)
{
$this->barangModel->delete($id);
return redirect()->to('/barang');
}
}
Membuat Route CRUD Barang
Tambahkan route berikut di file app/Config/Routes.php:
$routes->get('/barang', 'Barang::index');
$routes->get('/barang/create', 'Barang::create');
$routes->post('/barang/store', 'Barang::store');
$routes->get('/barang/edit/(:num)', 'Barang::edit/$1');
$routes->post('/barang/update/(:num)', 'Barang::update/$1');
$routes->get('/barang/delete/(:num)', 'Barang::delete/$1');
Route tersebut digunakan untuk menampilkan data, menambah data, menyimpan data, mengedit data, mengubah data, dan menghapus data barang.
Membuat View Daftar Barang
Buat folder baru dengan nama barang di dalam app/Views. Setelah itu buat file index.php di dalam folder app/Views/barang.
<!DOCTYPE html>
<html>
<head>
<title><?= esc($judul) ?></title>
</head>
<body>
<h1><?= esc($judul) ?></h1>
<p>
<a href="/barang/create">Tambah Barang</a>
</p>
<table border="1" cellpadding="8" cellspacing="0">
<tr>
<th>No</th>
<th>Nama Barang</th>
<th>Harga</th>
<th>Stok</th>
<th>Aksi</th>
</tr>
<?php $no = 1; ?>
<?php foreach ($barang as $row): ?>
<tr>
<td><?= $no++ ?></td>
<td><?= esc($row['nama_barang']) ?></td>
<td><?= esc($row['harga']) ?></td>
<td><?= esc($row['stok']) ?></td>
<td>
<a href="/barang/edit/<?= $row['id'] ?>">Edit</a> |
<a href="/barang/delete/<?= $row['id'] ?>" onclick="return confirm('Yakin hapus data?')">Hapus</a>
</td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
Membuat View Tambah Barang
Buat file create.php di folder app/Views/barang.
<!DOCTYPE html>
<html>
<head>
<title><?= esc($judul) ?></title>
</head>
<body>
<h1><?= esc($judul) ?></h1>
<form action="/barang/store" method="post">
<p>
<label>Nama Barang</label><br>
<input type="text" name="nama_barang" required>
</p>
<p>
<label>Harga</label><br>
<input type="number" name="harga" required>
</p>
<p>
<label>Stok</label><br>
<input type="number" name="stok" required>
</p>
<button type="submit">Simpan</button>
<a href="/barang">Kembali</a>
</form>
</body>
</html>
Membuat View Edit Barang
Buat file edit.php di folder app/Views/barang.
<!DOCTYPE html>
<html>
<head>
<title><?= esc($judul) ?></title>
</head>
<body>
<h1><?= esc($judul) ?></h1>
<form action="/barang/update/<?= $barang['id'] ?>" method="post">
<p>
<label>Nama Barang</label><br>
<input type="text" name="nama_barang" value="<?= esc($barang['nama_barang']) ?>" required>
</p>
<p>
<label>Harga</label><br>
<input type="number" name="harga" value="<?= esc($barang['harga']) ?>" required>
</p>
<p>
<label>Stok</label><br>
<input type="number" name="stok" value="<?= esc($barang['stok']) ?>" required>
</p>
<button type="submit">Update</button>
<a href="/barang">Kembali</a>
</form>
</body>
</html>
Menjalankan Aplikasi CRUD Barang
Jalankan server CodeIgniter 4:
php spark serve
Buka browser, lalu akses URL berikut:
http://localhost:8080/barang
Dari halaman tersebut, kita dapat menambah, melihat, mengubah, dan menghapus data barang.
Menambahkan Validasi Input
Validasi digunakan untuk memeriksa data sebelum disimpan ke database. Dengan validasi, aplikasi dapat menolak input kosong atau format data yang salah.
Contoh validasi sederhana pada method store:
public function store()
{
$rules = [
'nama_barang' => 'required|min_length[3]',
'harga' => 'required|numeric',
'stok' => 'required|numeric'
];
if (! $this->validate($rules)) {
return redirect()->back()->withInput();
}
$this->barangModel->save([
'nama_barang' => $this->request->getPost('nama_barang'),
'harga' => $this->request->getPost('harga'),
'stok' => $this->request->getPost('stok')
]);
return redirect()->to('/barang');
}
Pada contoh tersebut, nama barang wajib diisi dan minimal memiliki 3 karakter. Harga dan stok wajib diisi dengan angka.
Mengaktifkan CSRF Protection
CSRF protection digunakan untuk melindungi form dari request palsu. Fitur ini penting saat aplikasi memiliki form input data.
Untuk mengaktifkan CSRF, buka file app/Config/Filters.php dan pastikan filter csrf aktif sesuai kebutuhan aplikasi.
Setelah CSRF aktif, tambahkan csrf_field pada form.
<form action="/barang/store" method="post">
<?= csrf_field() ?>
<input type="text" name="nama_barang">
<button type="submit">Simpan</button>
</form>
Dengan cara ini, setiap form akan membawa token keamanan.
Perintah Spark Yang Sering Digunakan
CodeIgniter 4 memiliki command line tool bernama Spark. Tool ini digunakan untuk menjalankan server, membuat file, menjalankan migration, dan melihat daftar route.
| Perintah | Fungsi |
|---|---|
| php spark serve | Menjalankan server lokal CodeIgniter 4 |
| php spark routes | Melihat daftar route |
| php spark make:controller NamaController | Membuat controller baru |
| php spark make:model NamaModel | Membuat model baru |
| php spark make:migration NamaMigration | Membuat file migration |
| php spark migrate | Menjalankan migration |
| php spark cache:clear | Menghapus cache aplikasi |
Kesalahan Umum Saat Belajar CodeIgniter 4
Beberapa pemula sering mengalami error saat pertama kali belajar CodeIgniter 4. Berikut kesalahan yang sering terjadi.
1. Salah Menjalankan Folder Project
Pastikan perintah php spark serve dijalankan di dalam folder project CodeIgniter 4.
2. File .env Belum Dibuat
Jika file .env belum dibuat, konfigurasi database dan environment tidak akan terbaca dengan benar.
3. Database Belum Dibuat
Pastikan database sudah dibuat di MySQL sebelum menjalankan migration.
4. Route Tidak Sesuai
Pastikan nama controller dan nama method sesuai dengan route yang ditulis di app/Config/Routes.php.
5. Namespace Salah
CodeIgniter 4 menggunakan namespace. Pastikan namespace controller berada di App\Controllers dan namespace model berada di App\Models.
6. Allowed Fields Belum Diisi
Jika menggunakan model untuk menyimpan data, pastikan kolom yang akan disimpan sudah ditulis di properti allowedFields.
Tips Belajar CodeIgniter 4 Untuk Pemula
Agar lebih mudah memahami CodeIgniter 4, pelajari konsep dasarnya secara bertahap.
- Pelajari dasar PHP terlebih dahulu.
- Pahami konsep MVC.
- Mulai dari route, controller, dan view.
- Lanjutkan ke model dan database.
- Gunakan migration untuk membuat tabel.
- Biasakan memakai validation saat menyimpan data.
- Gunakan esc saat menampilkan data ke view.
- Pelajari CSRF protection untuk keamanan form.
Kapan Harus Menggunakan CodeIgniter 4?
CodeIgniter 4 cocok digunakan ketika kita ingin membuat aplikasi web PHP yang ringan, cepat, dan mudah dikembangkan. Framework ini juga cocok untuk project dengan kebutuhan CRUD, dashboard admin, sistem informasi kampus, sistem inventaris, sistem kasir, dan REST API sederhana.
Jika ingin framework yang tidak terlalu berat dan tidak terlalu banyak konfigurasi, CodeIgniter 4 dapat menjadi pilihan yang tepat.
Kesimpulan
CodeIgniter 4 adalah framework PHP modern yang ringan, cepat, dan mudah dipelajari. Framework ini mendukung konsep MVC, Composer, routing, controller, view, model, migration, validation, dan fitur keamanan seperti CSRF protection.
Untuk mulai belajar CodeIgniter 4, pahami instalasi, struktur folder, route, controller, view, model, dan database. Setelah dasar tersebut dikuasai, kita dapat membuat aplikasi CRUD sederhana dan mengembangkannya menjadi aplikasi yang lebih lengkap.
Dengan struktur yang rapi dan cara kerja yang sederhana, CodeIgniter 4 cocok digunakan untuk membuat aplikasi web berbasis PHP yang praktis dan mudah dirawat.

0 Komentar
Berkomentarlah dengan baik dan sopan