0

0

0

share


0 Reaksi

0 Komentar

Belajar Codeigniter 3 : Controller dan View

Halo coders bertemu lagi di artikel Belajar Codeigniter 3, setelah melakukan Kenalan dan Instalasi Codeigniter 3, pada step Belajar Codeigniter 3 kali ini kita akan mulai mencoba menulis kode dalam Codeigniter 3.

[caption id="" align="aligncenter" width="257"]MVC Belajar Codeigniter 3 : Controller dan View[/caption]

Mungkin bagi Kamu yang sudah familiar dengan web framework sudah akrab dengan konsep arsitektur MVC (Model View Controller). Controller adalah barisan kode yang bertugas memproses request yang datang dari user melewati browser dan URL tertentu, dimana Controller mengambil data dan informasi melalui Model atau resource lainnya. Setelah itu Controller menampilkan hasil dari prosesnya ke dalam View sebagai response dari request.

Definisi yang didapat dari Dokumentasi Resmi Codeigniter sendiri perihal MVC sebagai berikut:

  • Model mewakili struktur data anda, secara umum Class Model yang anda miliki berisi function untuk melakukan CRUD (Create, Read, Update, dan Delete) Informasi dalam Database.
  • View adalah informasi yang di tampilkan kepada User, sebuah View secara normal adalah sebuah laman web, tetapi di Codeigniter, sebuah View bisa dibuat menjadi sebuah penggalan halaman web seperti header atau footer. Bahkan bisa berupa RSS Page, atau jenis "Page" lainnya.
  • Controller berguna sebagai perantara antara Model, View dan berbagai resources yang dibutuhkan untuk memproses HTTP Request dan mengenerate sebuah web page.
 

Hello World!

Sekarang kita akan coba membuat hal paling mendasar dalam pemrograman, yaitu Hello World!, walaupun paling dasar tapi akan menjadi fondasi yang baik dalam membiasakan diri dengan Codeigniter 3. Pertama - tama bukalah Text Editor yang Kamu gunakan dan buka Welcome.php yang terdapat dalam folder instalasi Codeigniter 3 Kamu dan di dalam folder Application/controller, dan di dalamnya sudah tertulis kode seperti berikut
<?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/
 * @see https://codeigniter.com/user_guide/general/urls.html
 */
public function index()
{
	$this-&gt;load-&gt;view('welcome_message');
}

}

Nah, Kita ubah menjadi seperti berikut

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

class Welcome extends CI_Controller {
	public function index()
	{
		echo "Hello World!";
	}
}

Source code yang terlampir diatas merupakan struktur umum sebuah Controller Sederhana dalam Codeigniter 3.

  • defined('BASEPATH') OR exit('No direct script access allowed');, merupakan sintaks PHP yang memastikan tidak ada akses script secara langsung, dan harus diakses melalui www.namaweb.com/controller.
  • class Welcome extends CI_Controller, merupakan pendeklarasian class yang bernama Welcome yang meng-ekstend class Inti Codeigniter. Peraturan dalam pembuatan class/controller dalam Codeigniter yaitu, nama class harus sama dengan nama file controller dan berawalan dengan huruf besar. (ex: welcome.php maka class nya adalah Class Welcome extends CI_Controller)
  • public function index(), merupakan pendeklarasian function dalam class. Sama seperti pembuatan php pada umumnya jika kita membuat index.php maka apabila kita membuka parent folder, akan langsung terhubung ke halaman index.php, begitu pula dengan public function indexjika kita mengakses suatu Controller yang memiliki function index. maka Controller yang dipilih akan langsung memproses function index.
Silahkan Kamu akses URL http://localhost/hello-ci/ akan tampil tampilan seperti berikut

Pada Codeigniter 3, welcome.php adalah default routes controller yang digunakan pada saat instalasi pertama kali, dan bisa diubah sesuai kebutuhan. Dari sisi mengaksesnya pun berbeda antara Controller yang sudah dibuat index dan Controller lainnya. Untuk membuka index controller kita tinggal membuka URL : http://localhost/hello-ci/ tetapi untuk membuka controller lainnya yaitu mengunakan URL : http://localhost/hello-ci/index.php/helloworld/, dan apabila function index sudah dibuat dalam class controller, maka browser akan langsung menampilkan function index dari controller tersebut terlebih dahulu.

Membuat Controller Sendiri

Setelah kalian memahami struktur Controller dalam membuat Hello World!, sekarang kita akan mencoba membuat Controller sendiri. ada beberapa peraturan penting dalam membuat sebuah Controller:
  • Berformat PHP
  • Nama file tidak mengandung karakter special seperti spasi, @, dan lain-lain kecuali underscore (_)
  • Nama file controller harus sama dengan class di dalam controller.
sekarang buat sebuah file dalam folder Controller dengan nama helloworld.php, dan bukalah menggunakan text editor pilihan Kamu dan masukkan kode berikut :
defined('BASEPATH') OR exit('No direct script access allowed');

class Helloworld extends CI_Controller {
public function index(){ echo "Index dari Controller Helloworld"; } public function fungsi(){ echo "Function fungsi dari Controller Helloworld"; } public function parameters($nama){ echo "Selamat datang ".$nama; } }

perhatikan baris class Helloworld extends CI_Controller Nama class di dalam controller harus sama persis dengan nama controller dengan huruf kapital di awal. Sekarang kita sudah bisa membuat tiga function di dalam sebuah controller.

Sebelum kita membuka sebuah Controller, kita harus mengatur controller mana yang akan dijadikan default, karena jika kalian membuka URL : http://localhost/hello-ci/ maka yang akan muncul adalah controller welcome, karena controller welcome masih menjadi default.

Buka routes.php yang terdapat dalam folder application/config/, scroll kebawah dan ubah kode berikut : $route['default_controller'] = 'welcome'; menjadi $route['default_controller'] = 'helloworld';

Sekarang helloworld.php sudah menjadi default controller. Mari kita coba mengakses satu persatu function yang ada dalam controller helloworld.php :

  1. Untuk membuka function index, akses URL http://localhost/hello-ci/
  2. Untuk membuka function fungsi, akses URL http://localhost/hello-ci/index.php/helloworld/fungsi
  3. Untuk membuka function parameters, akses URL http://localhost/hello-ci/index.php/helloworld/parameters/nama-anda
Tiap tiap fungsi tersebut memiliki cara membuka yang berbeda beda. Saya akan jelaskan berikut
  • Jika di dalam suatu controller terdapat function yang bernama index, maka apabila kita mengakses controller akan langsung memproses function tersebut. Jadi tidak diperlukan adanya index.php/helloworld/index
  • Untuk membuka function selain daripada function index, kita harus mencantumkan controller dan nama functionnya seperti http://localhost/hello-ci/index.php/controllernya/functionya.
  • Jika kita membuat function yang membutuhkan parameter kita bisa mengakses nya dengan menambahkan sedikit tambahan di akhir URL http://localhost/hello-ci/index.php/controllernya/functionnya/parameter1/parameter2/danseterusnya/

Menampilkan View Menggunakan Controller

Controller pada dasarnya tidak digunakan untuk menampilkan front-end, tetapi sebagai perantara front-end dengan  data dari database maupun static data. View yang akan disuguhkan kepada user yang membuka web app diproses dengan controller. Kita akan mencoba menampilkan sebuah View dengan Controller.

Pertama kita buat terlebih dahulu file hello_ci.php di dalam folder application/views dan masukan kode berikut kedalamnya :

<!DOCTYPE html>
<html>
<head>
 <title></title>
</head>
<body>
 <h1>Selamat Datang</h1>
 <p>Ini tampilan dari view hello_ci</p>
</body>
</html>

lalu di controller helloworld.php ubah kode yang ada di dalam function index menjadi :

public function index(){
    $this->load->view('hello_ci');
}

Lalu silahkan akses function index dengan mengakses URL : http://localhost/hello-ci/ dengan browser. Maka yang akan terlihat adalah tampilan View yang sudah Kamu buat. Kode $this->load->view('hello_ci'); memungkinkan Controller untuk me load sebuah View. Sekarang bagaimana kalo kita mau mengoper data ke dalam view? mari kita coba. Ubah tampilan yang ada di view hello_ci.php menjadi seperti berikut :

<!DOCTYPE html>
<html>
<head>
 <title></title>
</head>
<body>
 <h1>Selamat Datang</h1>
 <p>Ini tampilan dari view hello_ci</p>
 <?php echo $nama; ?>
 <?php echo $alamat; ?>
 <?php echo $kampus; ?>
</body>
</html>

$nama diambil dari Associative Array yang dibuat di dalam Controller, maka dari itu buatlah sebuah Associative Array dengan beberapa data serta tambahkan beberapa kode berikut di function index dalam controller helloworld

public function index(){
    $data = array(
        'nama' => "John Smith",
        'alamat' => "Cambridge, USA",
        'kampus' => "Harvard"
         );
    $this->load->view('hello_ci', $data);
}

Kode $this->load->view('hello_ci', $data); memungkinkan pengambilan data melewati Array atau Associative Array, dan pada akhrinya ditampilkan melewati Controller sebagai perantara.

Penutup

Dalam tutorial kali ini Kamu berhasil membuat controller mu sendiri dan bisa mengoper data secara static dari controller menuju view. Dari tutorial ini diharapkan Kamu sudah dapat mengerti tentang hubungan antara Controller dan View terlebih dahulu, sebelum kita menghubungkanya dengan Model.

Di Tutorial selanjutnya kita akan membahas hubungan antara Controller dengan Model sebagai penyedia data dari database.

 

Referensi: Codeigniter User Guide Wikipedia

0

0

0

share