Mengenal Lebih dalam Tentang Controller

12 Jul 2019 16:00 2762 Hits 1 Comments Approved by Plimbi
Sebuah Controller dapat di katakan sebagai  jantung dari sebuah aplikasi, karena controller menentukan bagaimana permintaan HTTP yang harus di tangani.
 
Codeigniter adalah salah satu framework berbasis MVC. Sebuah Controller dapat di katakan sebagai  jantung dari sebuah aplikasi, karena controller menentukan bagaimana permintaan HTTP yang harus di tangani.
 
Sebuah class controller adalah sebuah file yang terletak di dalam folder application/controller dan memiliki nama file yang sama dengan nama kelasnya dan di kaitkan dengan URL.
                                                                                                                                                 
Adapun komponen-komponen URL di atas adalah :
  • Konfigurasi Base URL, Bagian ini merupakan url paling awal untuk mengakses web atau aplikasi kita.
  • Segmen URI pertama yaitu class. Class tersebut merupakan nama kelas controller yang akan kita panggil. Apabila  pada segment ini tidak diisi maka akan di gantikan dengan default controller yang telah di setting di konfigurasi router.php 
  • Segmen URI kedua yaitu fungsi dari class controller tersebut yang telah kita panggil tadi. Apabila kedua segmen ini tidak di isi maka fungsi yang akan di jalankan adalah fungsi index dari kelas controller tersebut
  • Segmen URI ketiga biasanya berisi parameter dari fungsi. Jika fungsi dari controller yang di panggil memiliki parameter maka parameternya harus di masukkan sebagai segment URI sesuai urutan
Untuk contoh pertama, kita akan membuat sebuah  aplikasi belajarCI yang sederhana.Aplikasi tersebut akan di letakkan di folder belajar dari htdocs anda, sehingga anda dapat mengakses dalam web browser dengan membuka url
 
"http://localhost/belajarCI" .
 
Perhatikan URL berikut ini:
 
"http://localhost/belajarCI/index.php/latihan/"
 
Pada contoh di atas, Codeigniter akan berusaha  untuk menemukan sebuah controller dengan nama latihan pada file latihan.php, kemudian menampilkannya pada browser. Mari kita coba membuat sebuah controller sehingga dapat mengetahui apa yang terjadi.
 
Dengan menggunakan teks editor anda di sini saya menggunakan sublime text . Sekarang buatlah file bernama latihan.php di dalam folder application/controller. Setelah itu buatlah class Latihan yang merupakan turunan dari kelas CI_Controller.
 
                 
 
Setelah menulis source code di teks editor kalian coba buka browser kalian dengan menggunakan URL sebagai berikut:
 
"http://localhost/belajarCI/index.php/latihan"
 
 
                
Jika anda melakukannya dengan benar maka akan tampil tulisan seperti di atas. Eh iya sebelum menjalankan browser jangan lupa nyalakan apache kalian di web server nya masing-masing di sini saya pribadi menggunakan XAMPP sebagai web server nya.
 
Sekedar mengingatkan kembali, ketentuan penamaan class (baik di controller maupun library) harus di mulai dengan huruf kapital.
 
Contoh penulisan yang benar:
<?php
class Latihan extends CI_Controller{
}
Contoh penulisan yang kurang tepat :
<?php
class latihan extends CI_Controller{
}
Pada contoh di atas nama fungsi yang  di jalankan adalah index(). Fungsi  "index" akan selalu di jalankan secara default jika segmen kedua dari URI kosong. Cara lain untuk menampilkan "selamat datang" adalah dengan mengakses url berikut
"localhost/index.php/latihan/index"
Segmen kedua dari URI yang menentukan fungsi mana yang akan di  panggil dari controller. Sekarang coba kita buat fungsi baru ke controller:
 
 
Sekarang cobalah panggil URL berikut untuk melihat fungsi komentar
"http://localhost/belajarCI/index.php/latihan/komentar"
Maka hasilnya kurang lebih akan seperti ini :
Jika kita  ingin mengisi variabel parameter,  maka kita tinggal menambahkan URI lagi setelah latihan. Biasanya parameter ketiga atau lebih digunakan sebagai parameter (kecuali anda menambahkan folder di dalam folder controller). Sebagai contoh URI yang
disertai  parameter seperti ini:

"http://localhost/belajarCI/index.php/latihan/komentar/tutorCI/123"
 
fungsi post pada controller  dapat memiliki 2 parameter yang akan di lewatkan pada URI  segmen 3 dan 4 ("tutorialCI" dan "123"). Jadi dapat di simpulkan bahwa URI yang dipanggil dapat ditunjukan seperti ini:
"localhost/index.php/[controller]/[fungsi]/[parameter]/[parameter]/..
 
 
<!--?phpÃÃÃà>
class Latihan extends CI_Controller{
}
ÃÃà
Contoh penulisan yang kurang tepat :
<!--?phpÃÃÃà>
class latihan extends CI_Controller{
}
Pada contoh di atas nama fungsi yangÃÃà di jalankan adalah index(). FungsiÃÃà "index" akan selalu di jalankan secara default jikaÃÃàsegmen keduaÃÃàdari URI kosong . Cara lain untuk menampilkan "selamat datang" adalah dengan mengakses url berikutÃÃà
ÃÃà
"localhost/index.php/latihan/index"
ÃÃà
Segmen kedua dari URI yang menentukan fungsi mana yang akan diÃÃà panggil dari controller. Sekarang coba kita buat fungsi baru ke controller:
ÃÃà
ÃÃà
Sekarang cobalah panggil URL berikut untuk melihat fungsi komentar
ÃÃà
Maka hasilnya kurang lebihÃÃàakan seperti ini :
ÃÃà
ÃÃà
ÃÃà
Jika kitaÃÃà ingin mengisi variabel parameter,ÃÃàÃÃàmaka kita tinggal menambahkan URI lagi setelah latihan. Biasanya parameter ketiga atau lebih digunakan sebagai parameter (kecuali anda menambahkan folder di dalam folder controller). Sebagai contoh URI yangÃÃà
disertaiÃÃà parameter seperti ini:
ÃÃà
fungsi post pada controllerÃÃà dapat memiliki 2 parameter yang akan di lewatkan pada URIÃÃà segmen 3 dan 4 ("tutorialCI" dan "123"). Jadi dapat di simpulkan bahwa URI yang dipanggil dapat ditunjukan seperti ini:
ÃÃà
"localhost/index.php/[controller]/[fungsi]/[parameter]/[parameter]/..
<!--?php>
<!--?phpÃÃÃÃÃàÃÃÃÃÃà>
class Latihan extends CI_Controller {
}
ÃÃÃÃà
Berikut contoh yang kurang tepatÃÃÃÃà:
ÃÃÃÃà
ÃÃÃÃà<?phpÃÃÃÃà
class latihan extends CI_Controller{
}
ÃÃÃÃà
Pada contoh di atas namaÃÃÃÃà fungsi yang di panggil adalah index() . FungsiÃÃÃÃà "index" akan selaluÃÃÃÃà di jalankan secara default jika ÃÃÃÃàsegmen ke dua dari URI kosong.ÃÃÃÃàCara lain untuk menampilkan "selamat datang" adalah dengan mengakses URLÃÃÃÃà berikut :
ÃÃÃÃà
localhost/index.php/latihan/index/
ÃÃÃÃà
Segmen kedua dari URI yangÃÃÃÃà menentukan fungsi mana yang akan di jalankan oleh controller. Sekarang kita coba membuat fungsi baru di dalam controller.
ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃàÃÃÃÃà
ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃàÃÃÃÃà
ÃÃÃÃà
Sekarang cobalah panggil URL berikut untuk melihat hasilÃÃÃÃà dari fungsi komentar:
ÃÃÃÃà
"http://localhost/belajarCI/index.php/latihan/komentar"ÃÃÃÃàÃÃÃÃà
ÃÃÃÃà
Maka hasilnya adalah
Jika anda ingin mengisi parameter maka anda tinggal menambahkan sebuah URI lagi setelah Latihan. Biasanya parameter ketiga atauÃÃÃÃà lebih digunakan sebagaiÃÃÃÃà parameter (kecuali anda menambahkan folder di dalam folderÃÃÃÃà controller) . Sebagai contoh URI yang di sertai parameter seperti ini:
ÃÃÃÃà
"localhost/index.php/latihan/komentar/tutorCI/123"
ÃÃÃÃà
Fungsi post pada controller dapat memiliki 2 parameter yang akan di lewatkan pada URIÃÃÃÃà segmen 3ÃÃÃÃàdan 4ÃÃÃÃà ("tutorCI dan 123").ÃÃÃÃà Jadi lebih lengkapnya URI yang di panggil adalah seperti ini :
ÃÃÃÃà
localhost/index.php/[controller]/[fungsi]/[parameter]/[parameter] /..
ÃÃÃÃà

Mempercantik URL CodeigniterÃÃÃÃà

Jika kita memperhatikan url yang ada di dalam websiteÃÃÃÃà kompas.com,okezone.com maka kitaÃÃÃÃà akan menemukan url yang unik. Contohnya http://bejubel.com/jual/pakaian-pria, maka seakan-akan url tersebut bukanlah berasal dari srcript PHP biasa. Untuk membuat url seperti di atas kita bisa menggunakan settingan Codeigniter dengan menambah file .htaccess.

Adapun langkah-langkahnyaÃÃÃÃà sebagai berikut :

  1. ÃÃÃÃàMembuat file .htacces di folder ÃÃÃÃàaplikasi anda. Adapun isiÃÃÃÃà dariÃÃÃÃà file tersebut adalahÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]ÃÃÃÃà ÃÃÃÃà
    ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃà ÃÃÃÃàÃÃÃÃà
  2. Mengubah konfigurasi application/config/config.php. Dengan menghapus "index.php" pada $config['index_page'] = 'index.php'; menjadiÃÃÃÃà$config['index_page'] = '';ÃÃÃÃâ

ÃÃÃÃâDengan menyelesainkan 2 tahap tersebut anda sudah bisa menghilangkan index.phpÃÃÃÃà pada url aplikasi kalian misalnya urlÃÃÃÃàhttp://localhost/belajarCI/index.php/latihan/ÃÃÃÃà sudah dapat di akses hanya denganÃÃÃÃàhttp://localhost/belajarCI/latihan/.ÃÃÃÃà

ÃÃÃÃà

<!--?phpÃÃÃÃÃÃÃà>
defined('BASEPATH') OR exit('No direct script access allowed');
class Blog extends CI_Controller
{
function __construct()
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà{
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃàparent::__construct();
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà }
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃàfunction index()
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà{
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà echo "Hallo..saya adalah contoh codeigniter pertama";ÃÃÃÃÃÃà
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà }
}
ÃÃÃÃÃÃà
Setelah itu apa yang terjadi? Coba buka browser anda dengan menggunakan URL seperti ini:
ÃÃÃÃÃÃà
"http://localhost/index.php/blog"
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃàÃÃÃÃÃÃà
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà
ÃÃÃÃÃÃà
Jika anda mengikuti tutorial ini dengan benar maka akan tampil tulisan "Hello..saya adalah contoh codeigniter pertama". Sekedar mengingatkan, ketentuan penamaan class(baik controller maupun library) harus di mulai dengan huruf besar. Contoh :
<!--?php>
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃàclass Blog extends CI_Controller{ÃÃÃÃÃÃà
ÃÃÃÃÃÃà}
ÃÃÃÃÃÃà
berikut ini contoh penulisan yang kurang tepat:
<!--?php>
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃàclass blog extends CI_Controller{
}
Pada contoh di atas nama fungsi yang di panggil adalah index(). Fungsi "index" akan selalu di baca secara default jika segment kedua dari URIÃÃÃÃÃÃà kosong. Cara lain untuk menampilkan "Hello Codeigniter" adalah dengan mengakses url berikut :
localhost/index.php/blog/index.php/
ÃÃÃÃÃÃà
Segmen kedua dari URI yang menentukan fungsi mana yang akan di panggil dari controller. Mari kita coba menambahkan fungsi baru ke controllerÃÃÃÃÃÃà
ÃÃÃÃÃÃà
<!--?phpÃÃÃÃÃÃÃà>
defined('BASEPATH') OR exit('No direct script access allowed');
class Blog extends CI_Controller
{
function __construct()
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà{
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃàparent::__construct();
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà }
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃàfunction index()
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà{
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà echo "Hallo..saya adalah contoh codeigniter pertama";ÃÃÃÃÃÃà
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà }
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà function komentar()
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà {
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà echo "Ini adalah fungsi komentar";
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà }
}
ÃÃÃÃÃÃà
sekarang panggil URL berikut untuk melihat fungsiÃÃÃÃÃÃà komentar :
ÃÃÃÃÃÃà
localhost/index.php/blog/komentar/
ÃÃÃÃÃÃà
Maka hasilnya akan menampilkan pesan "ini adalah fungsi komentar".ÃÃÃÃÃÃàJika ingin mengisiÃÃÃÃÃÃà variabel $param maka anda tinggal menambahkan URI lagi setelah Blog. Biasanya parameter ketiga atau lebih di gunakan sebagai parameter(kecualiÃÃÃÃÃÃà anda menambahkan folder di dalam folder controller). Sebagai contoh URI yang di sertai parameter seperti ini :
ÃÃÃÃÃÃà
localhost/index.php/blog/komentar/tutorialCi/1812
ÃÃÃÃÃÃà
Fungsi post pada controller dapat memiliki 2 parameter yang akan dilewatkan pada URI segmen 3 dan 4 ("tutorialCI" dan "1812"). JadiÃÃÃÃÃÃà dapat di simpulkan bahwa URI yang di panggil dapat di tunjukkan seperti ini :
ÃÃÃÃÃÃà
localhost/index.php/[controller]/[fungsi]/[param]/[param]/...
ÃÃÃÃÃÃà

Mendefinisikan Default Controller

ÃÃÃÃÃÃàSeperti halnya Controller yang memiliki fungsi default yang di eksekusi, Codeigniter juga memiliki Controller default untuk di panggil atau di jalankan. Untuk menentukan default controller, buka folderÃÃÃÃÃÃàapplication/config/routes.php dan ubah variabel ini pada file routes.php
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà
ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃà$route['default_controller'] = 'Blog'ÃÃÃÃÃÃà ;
ÃÃÃÃÃÃà
Dimana Blog adalah nama kelas controller yang ingin di gunakan. Jika sekarang hanya memanggil file index.php utama, tanpa menentukan segmen URI apapun, maka secara default anda akan melihat pesan "Hallo.. saya adalah contoh codeigniter pertamaÃÃÃÃÃÃà".
-->
Tags

About The Author

Rafi johari 35
Ordinary

Rafi johari

Programmer yang baik menggunakan otaknya, tapi kerangka kerja yang baik menghemat waktu untuk berpikir
Plimbi adalah tempat menulis untuk semua orang.
Yuk kirim juga tulisanmu sekarang
Submit Artikel