Cara Membuat Website dengan CodeIgniter 4: Panduan Lengkap 2026

Mengapa Memilih CodeIgniter 4 untuk Membuat Website?
Cara membuat website dengan CodeIgniter adalah salah satu topik yang paling banyak dicari oleh developer PHP di Indonesia. CodeIgniter 4 (CI4) adalah framework PHP yang ringan, cepat, dan mudah dipelajari - menjadikannya pilihan ideal baik untuk pemula yang baru belajar framework maupun developer berpengalaman yang butuh prototyping cepat.
Dibandingkan framework PHP lain seperti Laravel, CodeIgniter 4 memiliki kurva pembelajaran yang lebih landai, kebutuhan sumber daya server yang lebih rendah, serta dokumentasi yang sangat lengkap. Versi 4 membawa arsitektur yang sepenuhnya ditulis ulang dari CI3, dengan dukungan namespace, PSR compliance, dan fitur modern PHP 7.4+.
Pada panduan ini, Anda akan belajar cara membuat website dengan CodeIgniter 4 dari awal: mulai dari instalasi, memahami struktur MVC, membuat routing, controller, model, hingga menampilkan data dari database ke halaman view.
Prasyarat Sebelum Mulai
Sebelum mengikuti tutorial ini, pastikan Anda sudah menyiapkan:

- PHP 7.4 atau lebih baru - CI4 membutuhkan minimal PHP 7.4, direkomendasikan PHP 8.1+
- Composer - Package manager PHP untuk instalasi dan dependency management
- MySQL / MariaDB - Database server untuk menyimpan data aplikasi
- Web Server - Apache (XAMPP/Laragon) atau built-in server PHP untuk development
- Text Editor - VS Code dengan ekstensi PHP Intelephense sangat direkomendasikan
Untuk kemudahan, gunakan Laragon (Windows) atau XAMPP yang sudah menyertakan PHP, MySQL, dan Apache dalam satu paket.
Langkah 1: Instalasi CodeIgniter 4
Ada dua cara menginstal CodeIgniter 4: via Composer (direkomendasikan) atau manual download.
Cara 1: Instalasi via Composer (Direkomendasikan)
Buka terminal atau command prompt, lalu jalankan perintah berikut:
composer create-project codeigniter4/appstarter nama-proyek-anda
Ganti nama-proyek-anda dengan nama folder proyek Anda, misalnya website-ci4.
composer create-project codeigniter4/appstarter website-ci4
cd website-ci4
Cara 2: Download Manual
Kunjungi https://codeigniter.com, unduh versi terbaru CI4, ekstrak ke folder
htdocs (XAMPP) atau www (Laragon), lalu rename foldernya.
Menjalankan Development Server
Setelah instalasi selesai, jalankan built-in PHP server dengan perintah:
php spark serve
Buka browser dan akses http://localhost:8080. Jika muncul halaman selamat datang CodeIgniter 4,
instalasi berhasil!
Langkah 2: Memahami Struktur Folder CodeIgniter 4
Setelah instalasi, Anda akan menemukan struktur folder seperti berikut:
website-ci4/
├── app/ ← Kode aplikasi Anda (Controller, Model, View)
│ ├── Config/ ← File konfigurasi (database, routes, dll)
│ ├── Controllers/ ← Logic aplikasi
│ ├── Models/ ← Interaksi dengan database
│ ├── Views/ ← Template HTML
│ ├── Filters/ ← Middleware/filter request
│ └── Libraries/ ← Library kustom
├── public/ ← Document root (index.php, CSS, JS, gambar)
├── system/ ← Core framework CI4 (jangan diubah)
├── writable/ ← Cache, logs, session
├── .env ← Konfigurasi environment
└── spark ← CLI CodeIgniter
Prinsip terpenting: semua kode Anda berada di folder app/. Folder public/
adalah satu-satunya folder yang harus diekspos ke web server.
Langkah 3: Konfigurasi File .env
File .env di root proyek menyimpan konfigurasi environment. Salin file env
menjadi .env (hapus titik di awal jika ada), lalu edit bagian-bagian penting:
# Ganti 'production' menjadi 'development' untuk mode development
CI_ENVIRONMENT = development
# Konfigurasi database
database.default.hostname = localhost
database.default.database = nama_database_anda
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
database.default.DBPrefix =
database.default.port = 3306
Dengan CI_ENVIRONMENT = development, CodeIgniter akan menampilkan pesan error detail yang
memudahkan debugging. Pastikan mengubahnya ke production saat deploy ke server.
Langkah 4: Membuat Database dan Tabel
Buat database baru di MySQL. Buka phpMyAdmin atau gunakan MySQL CLI:
CREATE DATABASE website_ci4;
USE website_ci4;
CREATE TABLE artikel (
id INT AUTO_INCREMENT PRIMARY KEY,
judul VARCHAR(200) NOT NULL,
konten TEXT NOT NULL,
slug VARCHAR(200) NOT NULL UNIQUE,
tanggal TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Tambahkan beberapa data contoh:
INSERT INTO artikel (judul, konten, slug) VALUES
('Artikel Pertama', 'Ini adalah konten artikel pertama saya.', 'artikel-pertama'),
('Belajar CodeIgniter 4', 'CodeIgniter 4 adalah framework PHP yang hebat.', 'belajar-codeigniter-4');
Langkah 5: Membuat Model
Model di CodeIgniter 4 digunakan untuk berinteraksi dengan database. Buat file baru
app/Models/ArtikelModel.php:
<?php
namespace AppModels;
use CodeIgniterModel;
class ArtikelModel extends Model
{
protected $table = 'artikel';
protected $primaryKey = 'id';
protected $returnType = 'array';
protected $allowedFields = ['judul', 'konten', 'slug'];
// Method untuk mendapatkan semua artikel
public function getAllArtikel()
{
return $this->orderBy('tanggal', 'DESC')->findAll();
}
// Method untuk mendapatkan artikel berdasarkan slug
public function getArtikelBySlug(string $slug)
{
return $this->where('slug', $slug)->first();
}
}

Langkah 6: Membuat Controller
Controller menangani request dari user dan menghubungkan Model dengan View.
Buat file app/Controllers/Artikel.php:
<?php
namespace AppControllers;
use AppModelsArtikelModel;
class Artikel extends BaseController
{
protected $model;
public function __construct()
{
$this->model = new ArtikelModel();
}
// Menampilkan daftar semua artikel
public function index()
{
$data = [
'title' => 'Daftar Artikel',
'artikels' => $this->model->getAllArtikel(),
];
return view('artikel/index', $data);
}
// Menampilkan detail satu artikel
public function detail(string $slug)
{
$artikel = $this->model->getArtikelBySlug($slug);
if (!$artikel) {
throw new CodeIgniterExceptionsPageNotFoundException('Artikel tidak ditemukan.');
}
$data = [
'title' => $artikel['judul'],
'artikel' => $artikel,
];
return view('artikel/detail', $data);
}
}
Langkah 7: Membuat View
View adalah template HTML yang menampilkan data ke user. Buat folder app/Views/artikel/
dan buat dua file view.
File: app/Views/layouts/main.php (Layout Utama)
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?= esc($title) ?> - Website CI4</title>
<style>
body { font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px; }
nav { background: #333; padding: 10px; margin-bottom: 20px; }
nav a { color: white; text-decoration: none; margin-right: 15px; }
.card { border: 1px solid #ddd; padding: 15px; margin-bottom: 15px; border-radius: 4px; }
</style>
</head>
<body>
<nav>
<a href="/">Home</a>
<a href="/artikel">Artikel</a>
</nav>
<main>
<?= $this->renderSection('content') ?>
</main>
</body>
</html>
File: app/Views/artikel/index.php (Daftar Artikel)
<?= $this->extend('layouts/main') ?>
<?= $this->section('content') ?>
<h1><?= esc($title) ?></h1>
<?php if (empty($artikels)): ?>
<p>Belum ada artikel.</p>
<?php else: ?>
<?php foreach ($artikels as $a): ?>
<div class="card">
<h2><a href="/artikel/<?= esc($a['slug']) ?>"><?= esc($a['judul']) ?></a></h2>
<p><?= esc(substr($a['konten'], 0, 150)) ?>...</p>
<small><?= $a['tanggal'] ?></small>
</div>
<?php endforeach ?>
<?php endif ?>
<?= $this->endSection() ?>
Langkah 8: Konfigurasi Routing
Buka file app/Config/Routes.php dan tambahkan routing untuk controller Artikel:
// Routes untuk artikel
$routes->get('/artikel', 'Artikel::index');
$routes->get('/artikel/(:segment)', 'Artikel::detail/$1');
CodeIgniter 4 menggunakan pattern (:segment) untuk menangkap satu segmen URL.
Parameter ini diteruskan ke method controller sebagai argumen pertama.
Langkah 9: Fitur CRUD Lengkap - Tambah, Edit, Hapus Artikel
Untuk aplikasi website yang lengkap, Anda perlu mengimplementasikan operasi CRUD (Create, Read, Update, Delete).
Tambahkan method berikut ke controller Artikel.php:
// Menampilkan form tambah artikel
public function tambah()
{
return view('artikel/form', ['title' => 'Tambah Artikel', 'artikel' => null]);
}
// Menyimpan artikel baru
public function simpan()
{
$rules = [
'judul' => 'required|min_length[5]|max_length[200]',
'konten' => 'required|min_length[20]',
];
if (!$this->validate($rules)) {
return view('artikel/form', [
'title' => 'Tambah Artikel',
'artikel' => null,
'validation' => $this->validator,
]);
}
$judul = $this->request->getPost('judul');
$slug = url_title($judul, '-', true); // auto-generate slug
$this->model->insert([
'judul' => $judul,
'konten' => $this->request->getPost('konten'),
'slug' => $slug,
]);
return redirect()->to('/artikel')->with('success', 'Artikel berhasil ditambahkan!');
}
// Menghapus artikel
public function hapus(int $id)
{
$this->model->delete($id);
return redirect()->to('/artikel')->with('success', 'Artikel berhasil dihapus.');
}
Langkah 10: Deploy ke Hosting
Setelah website CodeIgniter 4 selesai dikembangkan secara lokal, saatnya deploy ke hosting. Berikut langkah-langkah untuk upload ke shared hosting dengan cPanel:
-
Siapkan file untuk production - Ubah
CI_ENVIRONMENT = productiondi file.env, hapus folder.gitdan file development yang tidak diperlukan. -
Upload via File Manager atau FTP - Upload semua file ke
public_html, kecuali folderpublic/yang isinya dipindah langsung kepublic_html/. -
Pindahkan isi folder public/ - File
index.phpdan.htaccessdari folderpublic/harus berada langsung dipublic_html/. -
Edit index.php - Sesuaikan path ke folder
appdansystemagar menunjuk ke lokasi yang tepat di server. - Buat database di cPanel - Gunakan MySQL Databases di cPanel, buat database baru, buat user, berikan privileges, lalu import file SQL Anda.
- Update konfigurasi .env - Sesuaikan hostname, nama database, username, dan password MySQL di server.
Pastikan hosting yang Anda gunakan mendukung PHP 7.4 atau lebih baru. Untuk pengalaman terbaik,
gunakan hosting yang mendukung PHP 8.1+ dengan ekstensi intl, mbstring, dan json yang aktif.
Tips dan Best Practices CodeIgniter 4
- Selalu escape output - Gunakan fungsi
esc()di view untuk mencegah XSS. - Manfaatkan Query Builder - CI4 punya Query Builder yang aman dari SQL injection secara default.
- Gunakan Migrations - Kelola perubahan skema database dengan fitur migrations CI4 (
php spark make:migration). - Aktifkan CSRF Protection - Aktifkan di
app/Config/Security.phpuntuk form-form di website Anda. - Gunakan Spark CLI -
php spark make:controller,php spark make:modeluntuk generate boilerplate cepat. - Manfaatkan Shield - Library autentikasi resmi CI4 untuk fitur login, register, dan role management.
FAQ: Pertanyaan Umum tentang Cara Membuat Website dengan CodeIgniter
- Apa perbedaan CodeIgniter 3 dan CodeIgniter 4?
- CodeIgniter 4 ditulis ulang dari nol dengan arsitektur modern. CI4 mendukung namespace PSR-4, PHP 7.4+, memiliki sistem routing yang lebih powerful, built-in CLI (Spark), filter/middleware, dan struktur folder yang lebih terorganisir. CI3 sudah tidak mendapat update fitur baru dan sebaiknya tidak digunakan untuk proyek baru.
- Apakah CodeIgniter 4 cocok untuk pemula?
- Ya, CodeIgniter 4 adalah salah satu framework PHP yang paling ramah untuk pemula. Dokumentasinya sangat lengkap dan mudah dipahami. Dibandingkan Laravel yang lebih kompleks, CI4 memiliki kurva belajar yang lebih landai sambil tetap mengajarkan konsep MVC yang benar.
- Berapa versi PHP minimum untuk CodeIgniter 4?
- CodeIgniter 4 membutuhkan minimal PHP 7.4. Namun sangat direkomendasikan menggunakan PHP 8.1 atau lebih baru untuk performa terbaik dan kompatibilitas dengan fitur-fitur modern CI4 terbaru.
- Apakah CodeIgniter 4 bisa digunakan untuk membuat REST API?
- Ya, CodeIgniter 4 sangat cocok untuk membangun REST API. CI4 memiliki dukungan bawaan untuk response JSON, format negotiation, dan RESTful routing. Anda bisa membuat API yang lengkap hanya dengan CodeIgniter 4 tanpa library tambahan.
- Bagaimana cara deploy website CodeIgniter 4 ke shared hosting?
-
Untuk deploy CI4 ke shared hosting: (1) Upload semua file ke server, (2) Pindahkan isi folder
public/kepublic_html/, (3) Editindex.phpuntuk menyesuaikan path, (4) Buat database MySQL di cPanel dan import data, (5) Update file.envdengan kredensial database server, (6) SetCI_ENVIRONMENT = production. - Apakah perlu mempelajari PHP native dulu sebelum belajar CodeIgniter 4?
- Sangat direkomendasikan. Memahami dasar PHP seperti variabel, array, fungsi, class, dan konsep OOP akan membuat proses belajar CodeIgniter 4 jauh lebih mudah dan cepat. Minimal kuasai PHP dasar selama 2–4 minggu sebelum mulai belajar framework.
- Hosting apa yang cocok untuk website CodeIgniter 4?
-
Gunakan shared hosting yang mendukung PHP 8.1+, MySQL, dan membolehkan modifikasi
.htaccess. Pastikan hosting Anda mengaktifkan ekstensi PHP yang dibutuhkan CI4:intl,mbstring,json, danmysqlnd. Hosting Indonesia dengan cPanel umumnya sudah memenuhi semua syarat ini.
Kesimpulan
Cara membuat website dengan CodeIgniter 4 sebenarnya tidak serumit yang dibayangkan. Dengan mengikuti panduan di atas, Anda sudah bisa membangun website berbasis MVC yang fungsional lengkap dengan operasi database, routing bersih, dan tampilan yang rapi.
CodeIgniter 4 adalah pilihan yang tepat jika Anda ingin belajar framework PHP dengan cepat tanpa melewati kurva belajar yang terlalu curam. Setelah menguasai CI4, Anda akan lebih mudah bermigrasi ke framework PHP lain seperti Laravel karena konsep dasarnya serupa.
Langkah selanjutnya setelah website selesai dibuat adalah men-deploy-nya ke hosting agar bisa diakses publik. Pilih hosting yang mendukung PHP 8.1+ dan MySQL untuk memastikan website CodeIgniter 4 Anda berjalan optimal.
Artikel Terkait
Cara Membuat Website Dinamis dengan PHP: Panduan Pemula Lengkap
Panduan lengkap cara membuat website dinamis dengan PHP dari nol. Pelajari dasar-dasar PHP, koneksi database MySQL, form handling, session, hingga deploy website PHP ke hosting dengan langkah mudah.
Baca Selengkapnya →Cara Membuat Database MySQL di cPanel: Panduan Lengkap untuk Pemula
Panduan lengkap cara membuat database MySQL di cPanel dari nol. Pelajari cara membuat database, user MySQL, mengatur privileges, menggunakan phpMyAdmin, import & export database dengan mudah.
Baca Selengkapnya →Review 10 Web Hosting Terbaik Indonesia 2026: Perbandingan Lengkap
Review web hosting terbaik Indonesia 2026: perbandingan 10 layanan web hosting indonesia terbaik berdasarkan kecepatan, uptime, harga, dan kualitas support.
Baca Selengkapnya →Cara Upload Website ke Hosting: 4 Metode Lengkap (FTP, cPanel, Git)
Panduan lengkap cara upload website ke hosting dengan 4 metode: cPanel File Manager, FTP FileZilla, Git deployment, dan SSH. Cocok untuk pemula hingga developer profesional. Dilengkapi troubleshooting dan tips praktis.
Baca Selengkapnya →Butuh Hosting untuk Website Anda?
Dapatkan hosting cepat, aman, dan terpercaya dengan harga terjangkau. Gratis domain, SSL, dan support 24/7.
Jangan Ketinggalan Promo!
Subscribe newsletter kami dan dapatkan diskon hingga 50% untuk pembelian pertama kamu.
Gratis, tanpa spam. Bisa unsubscribe kapan saja.