Aturan dan cara membuat controller pada php framework codeigniter

Kali ini kita akan membahas tentang struktur Controller pada codeigniter, karena dalam Codeigniter, controller merupakan file utama yang akan menghubungkan user dengan view, maka kita harus mengetahui bagaimana struktur dari controller tersebut. Aplikasi yang kita buat dapat dijalankan dengan hanya menggunakan Controller saja, Controller + View , atau Controller + View + Model, catatan pentingnya dalam hal ini adalah :
Aplikasi berbasis CodeIgniter tidak akan dapat berjalan tanpa controller

 

Dalam contoh kalo ini, kita akan membuat sebuah controller dengan nama home, sehingga nanti aplikasi akan diakses dengan alamat lokal :

http://localhost/folder_ci/index.php/home

 

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

class Home extends CI_Controller {

	public function index()
	{
		echo 'Index dari controller ';
	}
	
	function contact()
	{
		//memanggil design halaman contact pada view
		$this->load->view('contact');
	}
	
}

Aturan dalam membuat controller adalah sebagai berikut :

1. Pembuatan nama Controller

  • Pembuatan nama class Controller dituliskan dengan Huruf kapital pada awal nama, Contoh Home, Pages, Post dan lain-lain
  • Pembuatan nama class Controller tidak boleh menggunakan tanda spasi,tanda - dan tanda lain-lainnya kecuali underscore
  • Nama file controller harus sama dengan nama class Controller dan disimpan pada direktory Application/controllers/ , pada contoh diatas maka file kita simpan dengan nama home.php
  • Penamaan file sebaiknya menggunakan huruf kecil semua, contoh home.php bukan Home.php

2. Pembuatan function method

Aturan pembuatan nama function dalah sama dengan pembuatan nama Class controller, catatannya adalah tidak boleh ada nama function yang sama dalam satu class Controller. Dalam satu class controller juga harus ada nama function index yang akan bertindak sebagai routing default dari controller tersebut, supaya ketika user mengakses controller tanpa menyebutkan method, maka akan langsung diarahkan pada function index


Untuk menguji Controller diatas, cobalah juga membuat script contact.php, kemudian simpan pada direktory Application/views/contact.php .

<style type="text/css">
	label.lb{
		display:block;
		line-height:20px;
		margin:0 0 10px 0;
	}
	h1.header{
		font:bold 20px Tahoma,Verdana;
		display:block;
		margin:0 0 20px 0;
		padding:0 0 10px 0;
		border-bottom:#cecece 1px solid;
	}
</style>
<h1 class="header">Kontak Pembaca</h1>
<form method="post" name="frm" action="">
<label class="lb">Nama</label>
<input type="text" name="nama" size="50" />
<label class="lb">Email</label>
<input type="text" name="email" size="50" />
<label class="lb">Telp</label>
<input type="text" name="telp" size="30" />
<label class="lb">Kodepos</label>
<input type="text" name="kdpos" size="10" maxlength="6" />
<label class="lb">Pesan</label>
<textarea name="" cols="50" rows="10"></textarea>
<br />
<input type="submit" name="kirim" value="Kirim">
<input type="reset" name="reset" value="Reset">

</form>

Setelah mengikuti langkah-langkah diatas, cobalah mengakses aplikasi kita pada alamat lokal seperti berikut :

http://localhost/folder_ci/index.php/home
http://localhost/folder_ci/index.php/home/contact

 

Selamat mencoba tutorial kami diatas, jika ada yang belum dimengerti, silahkan mengisi form komentar dengan cara klik tombol Tulis Komentar


Komentar pembaca

newbie CIsaya mau tanya itu ada tulisan echo 'Index dari controller ' maksudnya apa yahposting pada :2013-12-04 20:50:17
AdminUntuk mengetahui seperti apa cobalah akses aplikasinya pada web server dikomputer anda kemudian buka alamat : http://localhost/folder_ci/index.php/home dan juga bula alamat : http://localhost/folder_ci/index.php/home/contactposting pada :2013-12-05 22:06:19
ahmad subarkahsaya punya file php 6 file di folder view apakah saya harus membuat file controller 6 juga mas?posting pada :2015-01-18 21:18:32
AdminJumlah controller tidak mengikuti jumlah view. Satu controller sudah bisa kita gunakan.untuk memanggil banyak viee. Yaiti dengan membuat function function dalam controller yang selanjutnya dalam function trrsebut kita dapat memanggil viewposting pada :2015-01-19 09:06:29
AdminJumlah controller tidak mengikuti jumlah view. Satu controller sudah bisa kita gunakan.untuk memanggil banyak viee. Yaiti dengan membuat function function dalam controller yang selanjutnya dalam function trrsebut kita dapat memanggil viewposting pada :2015-01-19 09:07:49
AdminJumlah controller tidak mengikuti jumlah view. Satu controller sudah bisa kita gunakan.untuk memanggil banyak viee. Yaiti dengan membuat function function dalam controller yang selanjutnya dalam function trrsebut kita dapat memanggil viewposting pada :2015-01-19 09:09:00
rezaKalau cuman http://localhost/folder_ci/index.php/home Cuman nampilin pesan yg di echo doang ya gan Pas saya tambahin /contact tampilan hanya kosong, kira kira apa yg salah ya dan kalau saya ingin panggil si contact tampa harus nambahin /contact bisa ga ya gan Terima kasihposting pada :2015-01-23 08:53:24
nana mardiananulis file di controllers misalnya controllers laporan data barang, gimana caranya supaya urlnya nanti bisa menjadi index.php/laporan-data-barangposting pada :2017-03-14 15:06:56
RDinapermisi numpang tanya, mengapa didalam controler yg saya buat tidak bisa menggunakan __construct untuk menghambat proses masuk ke admin page tanpa login apakah dalam membuat login controler nya harus dipisah dgn yg lainnya ? terimakasih...posting pada :2017-06-19 08:27:08
AdminHallo sdr Dina, pada dasarnya bisa dibuat login dan form login dalam 1 controller dengan catatan redirect ke form loginnya tidak ditaruh di construct, tapi di tempatkan pada bagian method atau function - function milik admin page. Untuk cara yg lebih mudahnya ya kita pake controller yang berbeda.posting pada :2017-06-19 09:35:06
ransaya mau bertanya apakah dalam sebuah aplikasi bagusnya/sebaiknya hanya memiliki satu controller atau banyak controller lebih bagus?posting pada :2018-01-18 19:35:30
Nur widiantoSaya sudah membuat suatu system informasi tapi setelah lama kelamaan di controller saya banyak function, pertanyaan saya apakah akan lebih baik jika menggunakan banyak controller sehingga memecah functionnyaposting pada :2019-06-19 08:12:30
nama sayabagaimana cara buat comentarnya gan, ajarin donk!...kan gitu, aseek...posting pada :2019-10-03 07:29:50