Tutorial Codeigniter 3 : Penggunaan URL dan Routing di Codeigniter

Tutorial Codeigniter 3 : Penggunaan URL dan Routing di Codeigniter

Tutorial Codeigniter 3 : Penggunaan URL dan Routing di Codeigniter salam sejahtera buat teman-teman semua. Pada postingan sebelumnya mengenai install codeigniter, maka sebelum membuat sebuah aplikasi adakalanya kita mengetahui mengenai url dan routing di codeigniter. Routing codeigniter merupakan suatu hubungan satu ke satu antara string url dengan controller class atau method. Contoh pola atau format dari url di codeigniter seperti ini : example.com/nama_controller/method/id.
Untuk memahaminya, mari kita simak contoh praktek ini. Buka file di ci/application/controllers/Welcome.php maka scriptnya seperti dibawah ini.

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

class Welcome extends CI_Controller {

    /**
     * Index Page for this controller.
     *
     * Maps to the following URL
     *         http://example.com/index.php/welcome
     *    - or -
     *         http://example.com/index.php/welcome/index
     *    - or -
     * Since this controller is set as the default controller in
     * config/routes.php, it's displayed at http://example.com/
     *
     * So any other public methods not prefixed with an underscore will
     * map to /index.php/welcome/<method_name>
     * @see https://codeigniter.com/user_guide/general/urls.html
     */
    public function index()
    {
        $this->load->view('welcome_message');
    }
}

Script diatas masih default, yang artinya masih bawaan dari codeigniternya. Nah, kita buat sebuah fungsi yaitu contoh, berikut scriptnya.
    public function contoh()
    {
        echo "ini fungsi atau method contoh";
    }
Untuk menjalankan script diatas, anda dapat menggunakan urlnya seperti ini : localhost/ci/index.php/welcome/contoh. Maka hasilnya seperti gambar dibawah ini.
Nah, dari gambar diatas dapat anda perhatikan dan membedakan yang mana class dan yang mana method. Sekarang contoh selanjutnya untuk bagian parameternya atau idnya. Untuk itu, kita buat fungsi baru yaitu nama berikut scriptnya.
    public function nama($param)
    {
        echo "hai, nama saya ".$param;
    }
Dari contoh script diatas, kita memiliki 1 parameter atau value yaitu $param. $param memiliki value dari url yang kita akses atau jalankan. Sebagai contoh coba jalankan dengan url ini localhost/ci/index.php/welcome/nama/budi, maka hasilnya seperti gambar dibawah ini.
Nilai parameter ini dapat anda ubah kok, misalnya andi atau nama anda, maka hasilnya akan sama dengan gambar contoh diatas, hanya namanya saja yang berubah. Cukup mudah bukan.? Nah, sekarang bagaimana jika parameternya ada 2 atau lebih.? Caranya hampir sama kok dengan yang parameternya satu. Langsung praktek saja, kita buat fungsi baru dengan nama nama_lengkap dan berikut scriptnya.
    public function nama_lengkap($param1, $param2)
    {
        echo "hai, nama depan saya ".$param1." dan nama belakang saya ".$param2;
    }
Tidak jauh bedakan dengan contoh parameter 1.? Begitulah dengan parameter yang selanjutnya tinggal anda ubah-ubah saja value parameternya dari url seperti contoh-contoh diatas tadi.
Selain cara diatas, ada juga cara yang berbeda untuk menampilkan value parameter yaitu menggunakan URI Class.
Simak lengkap URI Class
Dengan cara ini akan lebih mudah dan aman untuk penggunaannya. Dari contoh parameter 1, anda dapat mengubah $param dengan $this->uri->segment(3). Kenapa angka 3 gan.?😏 Dikarenakan berikut cara untuk menghitungnya.
  1. Welcome (class atau controller).
  2. nama (fungsi atau method).
  3. budi (parameter).

Jadi, parameter memiliki nomor urutan yang ketiga. Ketika anda mengubah anga 3 menjadi 1 atau 2. Maka akan menampilkan Nama class atau fungsi sesuai dengan hitungan diatas.
Nah, bagaimana untuk yang parameter 2.? Sama saja sih dengan parameter yang 1. Tadi kita memiliki url untuk parameter 2 sepert ini kan localhost/ci/index.php/welcome/nama_lengkap/budi/syahputra/, maka hitungannya sepert ini.
  1. Welcome (class atau controller).
  2. nama_lengkap (fungsi atau method)
  3. budi (parameter 1).
  4. syahputra (parameter 2). 

Tinggal anda ubah saja $param1 menjadi $this->uri->segment(3) dan $param2 menjadi $this->uri->segment(4). Dapat anda lihat hasilnya sama saja.😃 Nah, terkadang kita juga menginginkan url yang lebih friendly lagi atau lebih singkat agar enak dilihat pengguna. Contohnya seperti ini misalnya kita punya url localhost/ci/index.php/welcome/nama/budi ingin diubah menjadi localhost/index.php/budi/. Terlihat sederhana bukan.? Untuk url seperti itu, ada file codeigniter yang harus kita edit. Coba buka file routes.php di ci/application/config/routes.php. Dapat anda lihat ada script berikut di file tersebut.
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
Tambahkan baris script ini ke dalam file tersebut.
 $route['([a-zA-Z]+)'] = 'welcome/nama/$1';
Saya menggunakan regex disini yang dalam arti parameter hanya berisikan string saja, tidak terdapat number atau tanda-tanda lainnya. Atau anda juga bisa menggunakan (:any), untuk infonya bisa anda lihat dibawah ini.


Previous
Next Post »

ConversionConversion EmoticonEmoticon

:)
:(
=(
^_^
:D
=D
=)D
|o|
@@,
;)
:-bd
:-d
:p
:ng
:lv