Konfigurasi Berkas Sistem CodeIgniter 3 (Fokus Baris yang Diubah)
Berkas konfigurasi bawaan CodeIgniter 3 memiliki ratusan baris komentar petunjuk. Agar siswa tidak bingung atau merasa kepanjangan, halaman ini hanya menampilkan baris-baris spesifik yang wajib diubah beserta nomor baris dan penjelasan fungsi logisnya.
1. Mengatur Alamat Web, URL Bersih & Kunci Sesi: config.php
Buka di Sublime Text 3: application/config/config.php
config.php, tekan Ctrl + F untuk mencari kata kunci berikut, lalu ubah nilainya persis seperti kotak kode di bawah.
Cari baris $config['base_url'] = '';. Ganti baris tersebut dengan logika dinamis ini agar aplikasi otomatis mendeteksi alamat localhost maupun port komputer tanpa perlu diubah manual jika dipindah ke laptop lain:
// Ganti baris $config['base_url'] = ''; menjadi 3 baris di bawah ini:
$root = "http://" . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost');
$root .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);
$config['base_url'] = $root;
Penjelasan: $_SERVER['HTTP_HOST'] membaca nama domain/IP lokal, dan basename(...) memastikan jalur sub-folder (/perpustakaan/) terbaca otomatis.
Cari baris $config['index_page'] = 'index.php';. Kosongkan nilai string di dalamnya:
// Ubah 'index.php' menjadi string kosong agar URL bersih:
$config['index_page'] = '';
Penjelasan: Menghilangkan keharusan mengetik index.php/login sehingga URL menjadi singkat dan rapi: localhost/perpustakaan/login.
Cari baris $config['encryption_key'] = '';. Isi dengan string acak pengaman:
// Kunci enkripsi wajib untuk menjaga integritas session login:
$config['encryption_key'] = 'sipas_ukk_perpustakaan_key_2026_sekolah_digital';
2. Menghubungkan CodeIgniter ke MySQL: database.php
Buka di Sublime Text 3: application/config/database.php
Scroll ke bagian bawah (sekitar baris 75–90), temukan array $db['default']. Cukup ubah 4 baris konfigurasi berikut:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost', // Server database lokal
'username' => 'root', // Username bawaan XAMPP adalah root
'password' => '', // Password bawaan XAMPP dikosongkan
'database' => 'db_perpustakaan', // Sesuaikan jika Anda memakai prefix nama sendiri (contoh: db_perpustakaan_andi)
'dbdriver' => 'mysqli', // Driver PHP MySQLi
...
);
Nilai pada
'database' => '...' harus sama persis dengan nama database yang Anda buat di phpMyAdmin pada Modul 01.
• Jika saat Modul 01 Anda membuat
db_perpustakaan, tulis: 'database' => 'db_perpustakaan'.
• Jika saat Modul 01 Anda menambahkan prefix nama sendiri (misal:
db_perpustakaan_andi), maka tulis persis: 'database' => 'db_perpustakaan_andi'.
3. Memuat Library & Helper Otomatis: autoload.php
Buka di Sublime Text 3: application/config/autoload.php
Tanpa autoload, Anda harus memanggil $this->load->library('database') di setiap controller. Dengan autoload, modul yang sering dipakai langsung aktif otomatis:
Cari $autoload['libraries'] = array();, isi dengan:
// Memuat koneksi database, session login, dan validator form di semua controller:
$autoload['libraries'] = array('database', 'session', 'form_validation');
Cari $autoload['helper'] = array();, isi dengan:
// Memuat fungsi base_url(), form_open(), dan auth helper buatan kita:
$autoload['helper'] = array('url', 'form', 'text', 'auth');
4. Pemetaan Alamat URL Web: routes.php
Buka di Sublime Text 3: application/config/routes.php
- Buka berkas application/config/routes.php di Sublime Text 3.
- Scroll ke bagian paling bawah berkas (sekitar baris 52–54).
- Temukan 3 baris bawaan CodeIgniter 3:
$route['default_controller'] = 'welcome';$route['404_override'] = '';$route['translate_uri_dashes'] = FALSE; - Ubah
'welcome'menjadi'auth/login', dan ubah$route['404_override']menjadi'errors/page_missing'. - Tepat di bawah baris 54 (setelah
$route['translate_uri_dashes'] = FALSE;), tekan Enter untuk membuat baris kosong baru, lalu tambahkan seluruh blok rute berikut:
// =========================================================================
// 1. TIGA BARIS DEFAULT ASLI BAWAAN (UBAH NILAINYA):
// =========================================================================
$route['default_controller'] = 'auth/login'; // Arahkan halaman utama ke login
$route['404_override'] = 'errors/page_missing'; // Halaman 404 khusus jika URL salah
$route['translate_uri_dashes'] = FALSE;
// =========================================================================
// 2. TAMBAHKAN BARIS-BARIS BARU BERIKUT PERSIS DI BAWAHNYA:
// =========================================================================
// --- A. Rute Autentikasi Pengguna ---
$route['login'] = 'auth/login'; // URL: localhost/perpustakaan/login
$route['register'] = 'auth/register'; // URL: localhost/perpustakaan/register
$route['logout'] = 'auth/logout'; // URL: localhost/perpustakaan/logout
// --- B. Rute Modul Administrator (/admin/...) ---
$route['admin/dashboard'] = 'admin/dashboard/index';
$route['admin/buku'] = 'admin/buku/index';
$route['admin/buku/tambah'] = 'admin/buku/tambah';
$route['admin/buku/edit/(:num)'] = 'admin/buku/edit/$1';
$route['admin/buku/detail/(:num)'] = 'admin/buku/detail/$1';
$route['admin/buku/hapus/(:num)'] = 'admin/buku/hapus/$1';
$route['admin/anggota'] = 'admin/anggota/index';
$route['admin/anggota/tambah'] = 'admin/anggota/tambah';
$route['admin/anggota/edit/(:num)'] = 'admin/anggota/edit/$1';
$route['admin/anggota/detail/(:num)'] = 'admin/anggota/detail/$1';
$route['admin/anggota/hapus/(:num)'] = 'admin/anggota/hapus/$1';
$route['admin/transaksi'] = 'admin/transaksi/index';
$route['admin/transaksi/detail/(:num)'] = 'admin/transaksi/detail/$1';
$route['admin/transaksi/proses_kembali/(:num)'] = 'admin/transaksi/proses_kembali/$1';
// --- C. Rute Modul Anggota Siswa (/user/...) ---
$route['user/dashboard'] = 'user/dashboard/index';
$route['user/buku'] = 'user/buku/index';
$route['user/buku/detail/(:num)'] = 'user/buku/detail/$1';
$route['user/buku/pinjam/(:num)'] = 'user/buku/pinjam/$1';
$route['user/peminjaman'] = 'user/peminjaman/index';
$route['user/peminjaman/kembalikan/(:num)'] = 'user/peminjaman/kembalikan/$1';
$route['user/riwayat'] = 'user/peminjaman/riwayat';
$route['user/profil'] = 'user/profil/index';
💡 Makna Kode (:num): Merepresentasikan parameter angka dinamis (ID data buku atau ID transaksi) yang dikirimkan via URL dan diterima oleh fungsi PHP sebagai variabel $1.
5. Berkas Rewrite Web Server: .htaccess
Buat berkas baru di folder root: C:\xampp\htdocs\perpustakaan\.htaccess
Di Sublime Text 3, pilih File → New File, lalu simpan (Ctrl + S) dengan nama persis .htaccess (diawali tanda titik) di dalam folder utama perpustakaan/:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Penjelasan: Modul rewrite Apache ini bertugas mengalihkan seluruh permintaan URL browser langsung ke index.php di belakang layar secara transparan tanpa perlu terlihat di address bar.