Cara Koneksi Database dan Konfigurasi Model pada CodeIgniter 4

Hai, Sobat Jagoan! Artikel ini membahas cara menghubungkan database dan mengkonfigurasi model pada CodeIgniter 4. Koneksi database merupakan bagian penting dalam pengembangan aplikasi karena memungkinkan data disimpan dan siakses dengan mudah. Sedangkan, komponen Model bisa kamu manfaatkan untuk merepresentasikan tabel di database dan menjalankan query tanpa harus menulis perintah SQL secara langsung.

Setelah mempelajari artikel ini, kamu akan memiliki database dan model yang siap digunakan untuk artikel selanjutnya yaitu membuat fitur CRUD sederhana sebagai lanjutan dari seri ini.

Apa itu Model?

Model adalah kode yang berfungsi untuk membuat permodelan data, meskipun kadang juga dipakai untuk permodelan logika bisnis. Model bisa mengakses data dari database dan sumber lainnya seperti API. Untuk membuat file Model berada di folder app/Models/.

File model in merupakan empat kamu menulis query untuk mengambil data dari database dan mengembalikan hasil query berupa data. Nilai yang dikermbalikan bisa berupa array maupun objek.

  • Nama file model harus menggunakan huruf kapital di awal dan bila terdiri dari 2 suku kata dipisahkan menggunakan _ (underscore).
  • Penulisan nama class model harus melakukan extends ke class CI_Model. Di mana nama class harus sesuai dengan nama file.

Contoh:

				
					<?php
    class Product extends CI_Model {
}

				
			
  • Method pada model diawali dengan huruf kecil dan jika terdiri dari 2 suku kata, boleh dipisah dengan _ (underscore).

Contoh:

				
					<?php

class Product_model extends CI_Model
{
	public function find()
  {
    
  }
  
  public function get_expired_product()
  {
    
  }
}

				
			

Query Builder adalah class yang berisi method untuk memuat query databasae. Contohnya:

  1. $this->db->insert() untuk menambahkan data ke tabel;
  2. $this->db->get() untuk mengambil data dari tabel, sama seperti query SELECT.
  3. $this->db->update() untuk update data di tabel;
  4. $this->db->delete() untuk menghapus data di tabel;
  5. $this->db->get_where() untuk mengambil data dengan WHERE;

 

Selengkapnya kamu bisa mengakses dokumentasi resminy di https://codeigniter.com/userguide3/database/query_builder.html

Catatan: Karena demo kali ini akan melibatkan database, disarankan kamu meletakkan file proyek CodeIgniter 4 di dalam folder server kamu. Misalnya kalau pakai XAMPP maka C:\xampp\htdocs\

Cara Melakukan Konfigurasi Model dan Koneksi Database

Berikut cara membuat koneksi database dan mengkonfigurasi dengan model. Sebagai informasi, tools database yang digunakan yaitu phpMyAdmin.

STEP 1: Membuat database baru dengan nama db_toko_barang.

2-buat-tabel

STEP 2: Setelah database dibuat, buat tabel barang dengan struktur tabel:

				
					USE db_toko_barang;
CREATE TABLE barang (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nama_barang VARCHAR(100) NOT NULL,
  harga INT NOT NULL,
  stok INT NOT NULL
);
INSERT INTO barang (nama_barang, harga, stok) VALUES
('Oli Mesin', 75000, 10),
('Aki Mobil', 550000, 5),
('Busi Motor', 30000, 20),
('Kampas Rem', 45000, 15),
('Ban Tubeless', 250000, 8);

				
			
2-buat-tabel

STEP 3: Selanjutnya buka app/Config/Database.php untuk mengatur konfigurasi database. Edit bagian berikut:

				
					    'DSN'      => '',
    'hostname' => 'localhost',
    'username' => 'db_user',
    'password' => 'db_password',
    ‘database’ => ‘db_toko_barang’,
    ‘DBDriver’ => ‘MySQLi’,
    ‘DBPrefix’ => ‘’,
    …
];

				
			
  • Pastikan hostname diisi dengan localhost karena akan menggunakan server database dari XAMPP atau localhost
  • Untuk username dan password sesuaikan dengan database pada database di server kamu. Jika kamu belum pernah mengatur password, kosongkan saja dengan ”
  • Bagian database isi dengan nama database yang sudah dibuat sebelumnya, misalnya db_toko_barang
  • DBDriver adalah jenis database driver yang digunakan oleh CodeIgniter 4. Karena kali ini menggunakan MySQL, maka nilainya adalah ‘MySQLi’.

STEP 4: Setelah menghubungkan database dengan sistem, selanjutnya uji koneksi database dengan membuat controller sederhana dan menggunakan query builder sederhana untuk mengambil (fetch) data dari tabel barang. Buat file controller baru bernama TesKoneksi.php di folder app/Controllers/ lalu isi file tersebut dengan kode berikut:

				
					<?php

namespace App\Controllers;

class TesKoneksi extends BaseController
{
    public function index()
    {
        // Uji koneksi database
        $db = \Config\Database::connect();
        $query = $db->query("SELECT * FROM barang");
        $result = $query->getResult();

        // Tampilkan hasil
        dd($result);
    }
}

				
			

STEP 5: Lalu, di dalam app/Routes.php tambahkan routing dengan kode berikut:

				
					$routes->get('/teskoneksi', 'TesKoneksi::index');
				
			

STEP 6: Akses controller tersebtu melalui browser http://localhost:8080/teskoneksi , apabila menampilkan daftar barang seperti di bawah, maka kamu berhasil menghubungkan dengan database. Pastikan kamu sudah menjalankan CodeIgniter di server ya, Sob.

3-tes-koneksi-database

Catatan: Pastikan juga di dalam flie .env sudah mengubah mode CI_ENVIRONMENT menjadi development buka production.

Berikutnya, yaitu akan membuat model dari database yang merepresentasikan tabel dalam database. Model ini akan digunakan sebagai penghubung antara controller dan database untuk menjalankan operasi seperti CRUD secara efisien.

STEP 1: Buat file BarangModel.php di dalam app/Models lalu isi filenya dengan baris kode berikut.

				
					<?php

namespace App\Models;

use CodeIgniter\Model;

class BarangModel extends Model
{
    protected $table = 'barang';
    protected $primaryKey = 'id';
    protected $allowedFields = ['nama_barang', 'harga', 'stok'];
}
				
			
  • $table berfungsi untuk mendefinisikan tabel secara eksplisit
  • $primaryKey berfungsi untuk mengidentifikasi kolom yang berperan sebagai kunci atau key
  • $allowedFields adalah kolom-kolom dalam tabel

STEP 2: Setelah membuat model tabel barang, kemudian memanggil model tersebut di dalam controller Barang.php di dalam app/Controllers/.

				
					<?php

namespace App\Controllers;

use App\Models\BarangModel;

class Barang extends BaseController
{
    public function index()
    {
        $model = new BarangModel();

        // Ambil semua data dari tabel barang
        $data['barang'] = $model->findAll();

        // Kirim data ke view barang/index
        return view('barang/index', $data);
    }
}
				
			

Sampai di sini, kamu sudah berhasil menghubungkan database dan membuat model yang mewakili tabel barang sebagai persiapan artikel selanjutnya yaitu membuat fitur CRUD (Create, Read, Update, Delete) sederhana bagian pertama yaitu Tutorial CRUD Menampilkan Data dengan CodeIgniter 4 

Tambahan

Selain melalui app/Config/Database.php untuk membuat koneksi dengan database, kamu bisa memanfaatkan file env untuk setting database supaya lebih fleksibel.

Kalau ingin menggunakan cara ini, rename dulu file env menjadi .env (menambahkan titik di depan) lalu ubah baigan di bawah ini sesuai dengan informasi database yang kamu gunakan.

				
					#--------------------------------------------------------------------
# DATABASE
#--------------------------------------------------------------------

# database.default.hostname = localhost
# database.default.database = ci4
# database.default.username = root
# database.default.password = root
# database.default.DBDriver = MySQLi
# database.default.DBPrefix =
# database.default.port = 3306

				
			

Kalau ada yang masih bikin bingung, jangan ragu hubungi Tim Support Jagoan Hosting ya, Sob!

Related Posts
Cara Install CodeIgniter di Softaculous cPanel

Hai, Sobat Jagoan! Softaculous adalah fitur auto-installer yang biasanya tersedia di cPanel dan digunakan untuk memasang berbagai aplikasi web secara Read more

Cara Install CodeIgniter dengan Composer di cPanel Hosting

Hai, Sobat Jagoan! Saat kamu mengembangkan proyek CodeIgniter, menggunakan Composer adalah langkah terbaik. Selain mendapatkan versi resmi terbaru, kamu juga Read more

Clone Proyek CodeIgniter dari Remote Repository ke Hosting

Halo, Sobat! Remote repository adalah tempat penyimpanan proyek kamu di server Git yang bisa diakses dari mana saja melalui internet. Read more

Memahami Konsep Dasar CodeIgniter 4

Hai, Sobat Jagoan! Sebelum nyemplung lebih jauh dengan CodeIgniter versi 4, kamu perlu mengenal dan memahami konsep dasar CodeIgniter 4 Read more