Tutorial ini akan menjelaskan cara menggunakan fitur URI Segment pada CodeIgniter untuk mengambil data dari URL, menjadikannya sangat berguna untuk membuat URL yang bersih dan ramah SEO (Search Engine Optimization).
Apa itu URI Segment?
URI (Uniform Resource Identifier) Segment adalah bagian-bagian dari URL yang dipisahkan oleh tanda garis miring (/). CodeIgniter secara otomatis memecah URL menjadi segmen-segmen ini, yang dapat kita akses dengan mudah di dalam controller atau model.
Sebagai contoh, perhatikan URL berikut:
http://localhost/nama_proyek/index.php/blog/artikel/judul-artikel-anda
Dalam URL di atas, CodeIgniter memecahnya menjadi segmen-segmen berikut:
blogartikeljudul-artikel-anda
Menggunakan URI Segment
CodeIgniter menyediakan helper uri untuk mempermudah pengambilan segmen-segmen tersebut. Anda perlu memuat helper ini di controller Anda.
Langkah 1: Membuat Controller
Buat sebuah controller di application/controllers/ dengan nama Blog.php.
Di dalam controller ini, kita akan membuat sebuah metode (fungsi) untuk mengambil segmen-segmen dari URL.
application/controllers/Blog.php:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Blog extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->helper('uri');
}
public function artikel($judul_artikel = NULL) {
// Mengambil segmen ketiga dari URL
$judul_dari_uri = $this->uri->segment(3);
if ($judul_dari_uri) {
echo "Anda sedang melihat artikel: " . $judul_dari_uri;
} else {
echo "Anda berada di halaman utama blog.";
}
}
public function info() {
echo "<h1>Informasi Semua Segmen URI</h1>";
echo "<p>Total Segmen: " . $this->uri->total_segments() . "</p>";
echo "<pre>";
print_r($this->uri->segment_array());
echo "</pre>";
}
}
Penjelasan Kode
$this->load->helper('uri');: Baris ini memuat helperuriyang sangat penting.$this->uri->segment(3);: Fungsi ini akan mengambil segmen ketiga dari URL. Jika URL adalahhttp://.../blog/artikel/contoh-judul, maka segmen ketiganya adalahcontoh-judul.$this->uri->total_segments();: Fungsi ini mengembalikan jumlah total segmen dalam URL.$this->uri->segment_array();: Fungsi ini mengembalikan semua segmen dalam bentuk array. Ini sangat berguna jika Anda ingin mengolah semua segmen sekaligus.
Langkah 2: Mencoba di Browser
Untuk melihat hasilnya, coba akses URL berikut di browser Anda:
- Untuk metode
artikel:http://localhost/nama_proyek/index.php/blog/artikel/belajar-uri-segmenthttp://localhost/nama_proyek/index.php/blog/artikel/(dengan URL ini, variabel$judul_dari_uriakan kosong)
- Untuk metode
info:http://localhost/nama_proyek/index.php/blog/info/data/tambahan/di-sini
Alternatif: Menggunakan Parameter Fungsi
Sebagai alternatif yang lebih modern dan sering digunakan, Anda bisa langsung menerima segmen URI sebagai parameter pada fungsi controller Anda.
Perhatikan kembali metode artikel:
public function artikel($judul_artikel = NULL) {
if ($judul_artikel) {
echo "Anda sedang melihat artikel: " . $judul_artikel;
} else {
echo "Anda berada di halaman utama blog.";
}
}
Dalam pendekatan ini, CodeIgniter akan secara otomatis memasukkan segmen URI setelah nama metode (artikel) ke dalam variabel $judul_artikel. Ini membuat kode menjadi lebih ringkas dan mudah dibaca.
Selesai!
Menguasai URI Segment adalah kunci untuk membangun aplikasi yang bersih dan terstruktur di CodeIgniter, terutama untuk membuat URL yang deskriptif seperti untuk halaman produk atau artikel.