Setelah memahami Model, Controller, dan View, kini saatnya aplikasi kita terhubung ke database. Tanpa database, aplikasi hanya bisa menampilkan data statis. Dengan database MySQL, aplikasi bisa menyimpan, menampilkan, mengubah, dan menghapus data secara dinamis.
Pada BAB ini, kita akan membahas:
- Membuat database MySQL
- Konfigurasi database di CodeIgniter
- Query Builder dasar
- Operasi CRUD: Insert, Select, Update, Delete
- Menampilkan data dari database
Contents
Tujuan Pembelajaran
Setelah menyelesaikan BAB 7, Anda akan mampu:
- Membuat database MySQL untuk aplikasi
- Menghubungkan CodeIgniter ke database
- Menggunakan Query Builder untuk operasi database
- Menampilkan data dari database di view
7.1 Membuat Database MySQL
Langkah-langkah di XAMPP / Laragon
- Buka phpMyAdmin:
http://localhost/phpmyadmin
- Klik Databases → masukkan nama database, misal:
db_ci - Pilih Collation:
utf8_general_ci→ Klik Create
Contoh Tabel Users
CREATE TABLE users (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL
);
📌 Catatan:
- Selalu buat primary key
- Gunakan tipe data sesuai kebutuhan
7.2 Konfigurasi Database di CodeIgniter
7.2.1 CI 3
Buka:
application/config/database.php
Ubah konfigurasi:
$db['default'] = array(
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'db_ci',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE
);
7.2.2 CI 4
Buka:
app/Config/Database.php
Atau gunakan .env:
database.default.hostname = localhost
database.default.database = db_ci
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
📌 Tips:
- Pastikan username & password sesuai MySQL
- Gunakan
.envdi CI 4 agar lebih aman
7.3 Query Builder Dasar
Query Builder adalah cara menulis query lebih mudah, aman, dan terstruktur.
7.3.1 CI 3
$this->db->get('users'); // SELECT * FROM users
$this->db->insert('users', $data); // INSERT
$this->db->update('users', $data, array('id' => $id)); // UPDATE
$this->db->delete('users', array('id' => $id)); // DELETE
7.3.2 CI 4
$userModel = new \App\Models\UserModel();
$userModel->findAll(); // SELECT * FROM users
$userModel->insert($data); // INSERT
$userModel->update($id, $data); // UPDATE
$userModel->delete($id); // DELETE
📌 Catatan:
- Query Builder otomatis mencegah SQL Injection
- Lebih mudah dipahami daripada query manual
7.4 Insert, Select, Update, Delete (CRUD Dasar)
7.4.1 Insert Data
CI 3
$data = ['nama' => 'Andi', 'email' => 'andi@gmail.com'];
$this->db->insert('users', $data);
CI 4
$data = ['nama' => 'Andi', 'email' => 'andi@gmail.com'];
$userModel->insert($data);
7.4.2 Select Data
CI 3
$query = $this->db->get('users');
$data['users'] = $query->result();
CI 4
$data['users'] = $userModel->findAll();
7.4.3 Update Data
CI 3
$data = ['nama' => 'Budi'];
$this->db->update('users', $data, ['id' => 1]);
CI 4
$data = ['nama' => 'Budi'];
$userModel->update(1, $data);
7.4.4 Delete Data
CI 3
$this->db->delete('users', ['id' => 1]);
CI 4
$userModel->delete(1);
7.5 Menampilkan Data dari Database
Langkah-langkah
- Controller → memanggil model
- Model → mengambil data
- View → menampilkan data
Contoh CI 3
Controller:
class User extends CI_Controller {
public function index() {
$this->load->model('User_model');
$data['users'] = $this->User_model->get_all_users();
$this->load->view('user_view', $data);
}
}
View user_view.php:
<h2>Daftar User</h2>
<ul>
<?php foreach($users as $u): ?>
<li><?= $u->nama ?> - <?= $u->email ?></li>
<?php endforeach; ?>
</ul>
Contoh CI 4
Controller:
namespace App\Controllers;
use App\Models\UserModel;
class User extends BaseController {
public function index() {
$userModel = new UserModel();
$data['users'] = $userModel->findAll();
return view('user_view', $data);
}
}
View sama seperti di CI 3.
📌 Tips:
- Gunakan loop
foreachuntuk menampilkan banyak data - Selalu periksa apakah data ada sebelum menampilkan
Penutup
Dengan menghubungkan aplikasi ke database:
- Aplikasi menjadi dinamis dan interaktif
- CRUD dasar bisa dilakukan dengan mudah
- Memahami Query Builder akan menghemat waktu dan mencegah error
Pada BAB selanjutnya, kita akan membahas CRUD Lengkap dengan form input, validasi, dan menampilkan data di tabel, sehingga aplikasi Anda siap digunakan secara nyata.