Tutorial CodeIgniter : Membuat Permalink Sederhana Pada Artikel di CodeIgniter

Acara KKN tadi siang terasa agak berbeda dibanding hari-hari sebelumnya, walaupun sama-sama membosankan juga. Diawali dengan hadir lebih awal dari jadwal yang sudah disepakati, karena pak dosen pembimbing akan memberikan sedikit pencerahan dan motivasi untuk jiwa-jiwa yang sedang Galau #eeaaa. Dilanjutkan dengan memberikan pelatihan komputer kepada pegawai di kecamatan dan lumayan susah mengajarkan pegawai yang rata-rata sudah berkepala 3 itu. Dan sialnya, saya malah kebagian untuk mengajarkan pegawai yang kurang gesit (baca : LOLA). Syukurnya waktu berlalu dengan cepat, pelatihan yang berjalan alon-alon tersebut akhirnya selesai juga. Mampir ke pak Giras untuk mengisi perut dan saya dipanggil ke ruang server untuk membantu “Sunan Jogo Server”. Lumayanlah, ada tempat untuk numpang donlod SDK Android yang dari tadi malam gagal terus saya donlod dengan koneksi modem cap keong.

Lagi enak-enaknya donlod SDK, tiba-tiba ada yang ngChat via YM dan bertanya cara untuk membuat sebuah permalink di CodeIgniter. “Apaan tuh permalink…???”. Setau saya, permalink adalah sebuah link yang mudah dibaca dan biasanya diambil dari judul artikel yang terdapat pada link tersebut. Permalink banyak digunakan untuk meningkatkan kualitas SEO sebuah website di mesin pencari, otomatis link url terlihat lebih cantik (secantik ayu ting-ting). Nah, pada postingan kali ini saya akan membahas cara membuat permalink di CodeIgniter, cekidot gan.

1. Agar bisa digunakan berulang-ulang dan tanpa membuat kode yang sam lagi, saya buatkan file helper yang berfungsi untuk menangani permalink ini. Simpan dengan nama permalink_helper.php di folder application/helpers.

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('set_permalink'))
{
	function set_permalink($id,$content)
	{
		$karakter = array ('{','}',')','(','|','`','~','!','@','%','$','^','&','*','=','?','+','-','/','\\',',','.','#',':',';','\'','"','[',']');
		$hapus_karakter_aneh = strtolower(str_replace($karakter,"",$content));
		$tambah_strip = strtolower(str_replace(' ', '-', $hapus_karakter_aneh));
		$link_akhir = $id.'-'.$tambah_strip;
		return $link_akhir;
	}
}

2. Selanjutnya kita buat sebuah controller yang memuat dua buah function, dan jangan lupa di bagian __construct() panggil file helper yang telah kita buat tadi.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Permalink extends CI_Controller {

	function __construct()
	{
		parent::__construct();
		$this->load->model('permalink_model');
		$this->load->helper('permalink_helper');
	}

	function index()
	{
		$data["artikel"] = $this->permalink_model->semua_artikel();
		$this->load->view('permalink/home',$data);
	}

	function detail()
	{
		$kode='';
		if ($this->uri->segment(3) === FALSE)
		{
    			$kode='';
		}
		else
		{
    			$kode = $this->uri->segment(3);
		}
		$p_kode = explode("-",$kode);
		$data["artikel"] = $this->permalink_model->detail_artikel($p_kode[0]);
		$this->load->view('permalink/detail',$data);
	}
}

3. Jangan lupa untuk membuat sebuah model untuk memanggil query-query database, sama dengan file controller, cukup hanya 2 buah functions.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

Class permalink_model extends CI_Model {

	function __construct()
	{
		parent::__construct();
	}
	function semua_artikel()
	{
		$q = $this->db->query("select * from tbl_content");
		return $q;
	}
	function detail_artikel($id)
	{
		$q = $this->db->query("select * from tbl_content where id_content='$id'");
		return $q;
	}
}

4. Dan yang terakhir ialah membuat 2 buah file view, home.php dan detail.php.

home.php

<!DOCTYPE html>
<html lang="en">
<head>
<title>Contoh Permalink Artikel pada CodeIgniter</title>
</head>
<body>
<?php
foreach($artikel->result_array() as $a)
{
	$link = set_permalink($a['id_content'],$a['judul_content']);
	echo '<a href="'.base_url().'permalink/detail/'.$link.'"><h1>'.$a['judul_content'].'</h1></a>';
	echo '<code>'.strip_tags(substr($a['content'],0,400)).'</code>';
}
?>
</body>
</html>

detail.php

<!DOCTYPE html>
<html lang="en">
<head>
<title>Contoh Permalink Artikel pada CodeIgniter</title>
</head>
<body>
<?php
foreach($artikel->result_array() as $a)
{
	echo '<h1>'.$a['judul_content'].'</h1>';
	echo '<code>'.nl2br($a['content']).'</code>';
}
?>
</body>
</html>

Agar lebih SEO friendly, index.php saya hilangkan dengan menggunakan file .htaccess. Sebenarnya permalink yang saya paparkan kali ini gabungan dari kode content dengan judul content, dimana judul content sudah saya berikan proses replace untuk menghilangkan karakter-karakter aneh dengan fungsi milik php (str_replace()). OK deh, semoga sedikit tips ini bisa bermanfaat untuk rekan-rekan yang kebetulan ingin menambahkan permalink pada website yang sedang dibuat.

Happy Blogging and Keep Coding

Cheerrrssโ€ฆ.!!!!

Download Aplikasi

16 comments

  1. didy.sinchan Reply

    [SHARE]kalo pake helper yang url_title() kan dah ada mas? jadi gak usah pusing pake gituan??

  2. taufik Reply

    Fatal error: Call to a member function query() on a non-object in D:\xampp\htdocs\link\application\models\permalink_model.php on line 11

    Kesalahnya apa mas

  3. fariz Reply

    gan gimana yah cara menghilangkan id nya maksudnya disable id nya gimana yah mohon bantunya

    sebelumnya thx ๐Ÿ˜€