BAB 7 – Database & Konfigurasi: Menghubungkan Aplikasi CodeIgniter ke MySQL

BAB 7 – Database & Konfigurasi: Menghubungkan Aplikasi CodeIgniter ke MySQL

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

Tujuan Pembelajaran

Setelah menyelesaikan BAB 7, Anda akan mampu:

  1. Membuat database MySQL untuk aplikasi
  2. Menghubungkan CodeIgniter ke database
  3. Menggunakan Query Builder untuk operasi database
  4. Menampilkan data dari database di view

7.1 Membuat Database MySQL

Langkah-langkah di XAMPP / Laragon

  1. Buka phpMyAdmin:
http://localhost/phpmyadmin
  1. Klik Databases → masukkan nama database, misal: db_ci
  2. 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 .env di 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

  1. Controller → memanggil model
  2. Model → mengambil data
  3. 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 foreach untuk 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.