Tutorial ini akan memandu Anda dalam mengambil dan menampilkan data dari database MySQL menggunakan CodeIgniter.
Langkah 1: Pengaturan Database
Pastikan CodeIgniter Anda sudah terhubung ke database. Buka file database.php di application/config/ dan isi detail koneksi Anda.
'hostname' => 'localhost',
'username' => 'nama_pengguna',
'password' => 'kata_sandi',
'database' => 'nama_database',
'dbdriver' => 'mysqli',
Langkah 2: Membuat Model untuk Interaksi Database
Model bertanggung jawab untuk berinteraksi langsung dengan database. Buat file baru di application/models/ dengan nama Artikel_model.php.
Model ini akan berisi metode untuk mengambil data dari tabel.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Artikel_model extends CI_Model {
public function __construct() {
parent::__construct();
$this->load->database(); // Memuat library database
}
public function get_semua_artikel() {
// Metode ini akan mengambil semua data dari tabel 'artikel'
$query = $this->db->get('artikel');
return $query->result(); // Mengembalikan hasil dalam bentuk array of objects
}
public function get_artikel_by_id($id) {
// Metode ini akan mengambil satu artikel berdasarkan ID
$query = $this->db->get_where('artikel', array('id' => $id));
return $query->row(); // Mengembalikan satu baris data sebagai objek
}
}
Penjelasan Kode
$this->load->database();: Baris ini memuat library database CodeIgniter.$this->db->get('artikel');: Ini adalah metode CodeIgniter untuk membuat querySELECT * FROM artikel.$query->result();: Mengembalikan hasil query dalam bentuk array of objects. Cocok untuk mengambil banyak baris data.$this->db->get_where('artikel', array('id' => $id));: Ini adalah metode untuk membuat querySELECT * FROM artikel WHERE id = $id.$query->row();: Mengembalikan satu baris hasil query sebagai sebuah objek.
Langkah 3: Membuat Controller untuk Logika
Controller akan bertugas untuk memuat model, memanggil metodenya, dan mengirimkan data ke view. Buat file baru di application/controllers/ dengan nama Artikel.php.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Artikel extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('artikel_model'); // Memuat model yang telah kita buat
}
public function index() {
// Mengambil semua artikel dari model
$data['artikel'] = $this->artikel_model->get_semua_artikel();
// Memuat view dan mengirimkan data artikel
$this->load->view('daftar_artikel', $data);
}
public function detail($id) {
// Mengambil satu artikel berdasarkan ID dari model
$data['artikel'] = $this->artikel_model->get_artikel_by_id($id);
// Memuat view detail artikel
if ($data['artikel']) {
$this->load->view('detail_artikel', $data);
} else {
show_404(); // Tampilkan halaman 404 jika artikel tidak ditemukan
}
}
}
Penjelasan Kode
$this->load->model('artikel_model');: Baris ini memuatArtikel_modelsehingga kita bisa mengaksesnya melalui$this->artikel_model.$data['artikel'] = ...: Data yang diambil dari model disimpan dalam array$datadengan kunci'artikel'.$this->load->view('nama_view', $data);: Data di dalam$dataakan tersedia dinama_view.phpsebagai variabel.
Langkah 4: Membuat View untuk Menampilkan Data
Terakhir, buat dua file view di application/views/ untuk menampilkan data yang diterima dari controller.
1. daftar_artikel.php (untuk menampilkan daftar artikel)
<!DOCTYPE html>
<html>
<head>
<title>Daftar Artikel</title>
</head>
<body>
<h1>Daftar Artikel</h1>
<ul>
<?php foreach ($artikel as $a): ?>
<li>
<h3><?php echo $a->judul; ?></h3>
<p><?php echo substr($a->konten, 0, 100); ?>...</p>
<a href="<?php echo site_url('artikel/detail/' . $a->id); ?>">Baca Selengkapnya</a>
</li>
<?php endforeach; ?>
</ul>
</body>
</html>
2. detail_artikel.php (untuk menampilkan satu artikel)
<!DOCTYPE html>
<html>
<head>
<title><?php echo $artikel->judul; ?></title>
</head>
<body>
<h1><?php echo $artikel->judul; ?></h1>
<p><?php echo $artikel->konten; ?></p>
</body>
</html>
Selesai!
Sekarang, Anda bisa mengakses http://localhost/nama_proyek/index.php/artikel untuk melihat daftar artikel, dan http://localhost/nama_proyek/index.php/artikel/detail/1 (ganti 1 dengan ID artikel) untuk melihat detail artikel. Pastikan Anda telah membuat tabel artikel di database Anda dengan kolom id, judul, dan konten.