Belajar CodeIgniter - Instalasi & Konfigurasi
Episode 3 of 27

Belajar CodeIgniter - Instalasi & Konfigurasi

Menginstall CodeIgniter 4 dengan Composer, memahami struktur app/Config/ dan file .env, membuat hello world pertama, serta mengatur environment development dan production agar aplikasi berjalan konsisten sejak awal.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 2 kita memahami arsitektur MVC dan struktur folder, sekarang saatnya hal yang paling ditunggu: menginstall CodeIgniter 4 dan membuat hello world pertama. Ini adalah episode hands-on pertama kalian, dan mulai sekarang setiap konsep akan selalu diikuti kode nyata.

Mengapa instalasi perlu dibahas tersendiri? Karena sebagian besar error di awal belajar CodeIgniter justru berasal dari konfigurasi yang salah — baseURL yang tidak diisi, environment yang keliru, atau .env yang belum disalin. Jika fondasi konfigurasi ini benar, episode 4-26 akan berjalan mulus.

Instalasi dengan Composer

CodeIgniter 4 diinstall lewat template resmi codeigniter4/appstarter. Buka terminal, pindah ke folder tempat project berada, lalu jalankan:

Buat project CodeIgniter 4
composer create-project codeigniter4/appstarter ci4-app
cd ci4-app
php spark serve

composer create-project mengunduh template, menjalankan autoload Composer, dan menghasilkan struktur yang kita bahas di episode 2. php spark serve menjalankan development server PHP built-in di http://localhost:8080. Buka browser — kalian akan melihat halaman selamat datang CodeIgniter.

Tip

Port 8080 bertabrakan dengan aplikasi lain? Jalankan php spark serve --port 8081 untuk memakai port lain, lalu sesuaikan app.baseURL di .env agar link yang dihasilkan framework sesuai.

Konfigurasi Dasar: app/Config/

Semua konfigurasi inti ada di folder app/Config/. File yang paling sering diutak-atik:

FileFungsi
Config/App.phpKonfigurasi umum: baseURL, timezone, index page
Config/Database.phpKredensial & driver database (dibahas episode 6)
Config/Routes.phpRoute aplikasi (dibahas episode 4)
Config/Filters.phpMiddleware CSRF, honeypot, toolbar (episode 19)

Buka app/Config/App.php — kalian akan melihat property class seperti public string $baseURL = ''; dan public string $indexPage = 'index.php';. Saat project baru dibuat, baseURL masih kosong dan beberapa hal tidak bekerja optimal sampai diisi.

File .env: Pengaturan Environment

File .env adalah pusat kontrol environment kalian. Template-nya bernama env di root project. Salin dan sesuaikan:

Buat .env dari template
cp env .env

Sekarang isi bagian teratas dengan environment dan baseURL:

.env (development)
#--------------------------------------------------------------------
# ENVIRONMENT
#--------------------------------------------------------------------
CI_ENVIRONMENT = development
 
#--------------------------------------------------------------------
# APP
#--------------------------------------------------------------------
app.baseURL = 'http://localhost:8080/'
app.forceGlobalSecureRequests = false

CI_ENVIRONMENT = development menyalakan Debug Toolbar dan menampilkan error detail — wajib saat development. app.baseURL dipakai framework untuk membangun URL (link, redirect, assets). Catatan penting: nilai di .env menimpa config class — jadi kalian bisa mengubah config di App.php atau lewat .env, dan .env selalu menang.

Mengapa .env, Bukan Edit Config Langsung?

Karena .env tidak pernah di-commit ke git (sudah ada di .gitignore). Kredensial database, kunci enkripsi, dan setting environment bisa berbeda antar mesin — developer, staging, produksi — tanpa harus mengubah source code. Ini praktik yang kita perkuat di episode 16 saat deploy.

Hello World Pertama

CodeIgniter sudah menyediakan controller default. Tapi mari buat sendiri agar kalian paham alurnya. Buat file app/Controllers/Hello.php:

app/Controllers/Hello.php
<?php
 
namespace App\Controllers;
 
class Hello extends BaseController
{
    public function index(): string
    {
        $data = [
            'title'   => 'Halo dari CodeIgniter',
            'message' => 'Environment saya: ' . ENVIRONMENT,
        ];
 
        return view('hello', $data);
    }
}

BaseController (dibahas detail di episode 4) menyediakan property seperti $this->request, $this->response, dan $this->helpers. Method index() adalah method default yang dipanggil saat URL tidak menyebutkan method. Nilai ENVIRONMENT adalah konstanta yang diisi dari CI_ENVIRONMENT.

Buat view-nya di app/Views/hello.php:

app/Views/hello.php
<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title><?= esc($title) ?></title>
</head>
<body>
    <h1><?= esc($title) ?></h1>
    <p><?= esc($message) ?></p>
</body>
</html>

<?= ... ?> adalah shortcut untuk <?php echo ... ?>, dan esc() memastikan output aman dari XSS (dibahas di episode 8). Sekarang buka http://localhost:8080/hello — server development menangani routing otomatis (auto routing): segmen pertama URL → controller, segmen kedua → method.

Warning

Jika halaman selamat datang tetap muncul di /hello, atau URL berisi index.php, cek dua hal: app.baseURL di .env harus berakhiran /, dan app.indexPage di App.php harus '' (kosong) di development agar URL bersih.

Environment Development vs Production

Cara tercepat membedakan environment adalah nilai CI_ENVIRONMENT:

AspekDevelopmentProduction
Error displayDetail + stack traceSembunyikan (log saja)
Debug ToolbarAktifNonaktif
CacheTTL pendek / offAktif penuh
PerformanceTerbarat (cache warm)Dioptimalkan

Kita akan membahas produksi menyeluruh di episode 16. Untuk sekarang, ingat aturan emasnya: development menampilkan error, production mencatat error ke log — jangan sampai tertukar.

Verifikasi Instalasi

Sebelum lanjut, pastikan semuanya berfungsi:

Verifikasi project CodeIgniter
php spark --version
php spark routes | head -10

php spark --version menampilkan versi CI4 (seharusnya 4.7.x), dan php spark routes menampilkan daftar route yang terdaftar — termasuk route /hello yang baru kita buat. Keduanya menandakan framework terinstall dan terautoload dengan benar.

Penutup

Inti yang harus dibawa pulang:

  • Install CI4 dengan composer create-project codeigniter4/appstarter, jalankan dengan php spark serve.
  • Konfigurasi inti di app/Config/; nilai .env menimpa config class.
  • CI_ENVIRONMENT dan app.baseURL adalah dua setting yang paling sering menjadi sumber error.
  • Hello world pertama: controller di app/Controllers/, view di app/Views/, akses via /hello.
  • Development menampilkan error, production menyimpan ke log.

Di episode 4 selanjutnya kita akan membahas routing dan controllers secara mendalam — route pattern dan placeholders, grouping, method routing, BaseController, serta cara mereturn view dan JSON. Pastikan project ci4-app kalian berjalan, karena kita akan banyak memakainya!

Belajar CodeIgniter - Instalasi & Konfigurasi | Belajar CodeIgniter