Pendahuluan
Dalam konsep pemograman MVC controller adalah kelas PHP yang bertanggung jawab untuk memproses permintaan HTTP dari pengguna dan mengembalikan respons yang sesuai. Controller menyatukan logika aplikasi dan memastikan bahwa permintaan dari pengguna diarahkan dengan benar ke model yang sesuai atau ke tampilan yang tepat.
Pengembangan aplikasi web dengan yang menggunakan framework Laravel, konsep penggunaan dan pemanfaatan fungsi controller ini sangat penting. Sebuah fungsi dalam controller tidak hanya berfungsi untuk mengolah data dan mengembalikan view, tetapi juga dapat digunakan sebagai sumber data untuk fungsi lain, bahkan di controller yang berbeda. Ini memungkinkan kita untuk merancang aplikasi yang lebih modular, efisien, dan mudah di-maintain.
Untuk memahami tutorial ini pastikan anda sudah memasang laravel. Kita tidak akan membahas bagaimana cara memasang laravel. Jadi silahkan buka VcCode anda dan silahkan buak laravel yang sudah anda pasang tadi.
Buka terminal VcCode anda dan ketikkan perintah berikut:
php artisan make:controller BerandaController
Perintah diatas memberikan perintah untuk laravel agar membuatkan sebuah controller bernama BerandaController dan diletakkan pada folder Controller. Untuk melihatnya silahkan anda buka director App => http/Controllers. Di dalam folder Controllers terdapat file BerandaController.php yang telah kita buat tadi. Berikut isi dari scriptnya:
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class BerandaController extends Controller{//}
Jika anda membuat file secara manual anda dapat mengetikkan file diatas.
Sekarang kita buat function baru didalamanya untuk membuak view. Berikut Scriptnya:
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class BerandaController extends Controller{public function index(){echo "Selamat Belajar Controller";}}
Sekarang Masuk anda ke dalam folder Routers dan buka file web.php. Sempurnakan scriptnya seperti berikut:
<?phpuse Illuminate\Support\Facades\Route;use App\Http\Controllers\BerandaController; //perintah ini untuk menghubungkan ke ControllerRoute::get('/', [BerandaController::class, 'index']);
Selanjutnya jalankan program kita dengan cara mengetikkan perintah berikut di terminal:
php artisan serve
Sampai disini tentu kita sudah dapat menggunakan controller. Namun fungsi controller sendiri belum terpenuhi. Sebab controller seharusnya mengontrol view atau tampilan halaman web yang ada di dalam folder view. Jadi mari kita lanjut. Silahkan anda ketikkan perintah berikut di terminal:
php artisan make:view v_beranda
<!DOCTYPE html><html lang="en"><head><title>BARINTEK | Controller</title></head><body><h1>Belajar Laravel Controller</h1></body></html>
Selanjutnya rubah BerandaController.php seperti berikut:
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class BerandaController extends Controller{public function index(){return view('v_beranda');}}
Nah jalankan kembali projek anda. Apkah halaman beranda sudah dapat di akses?
Mengirim data dari Controller
Pada dasarnya data tidak terdapat di dalam halaman view jadi bagaimana kita dapat mengirim data ke view? Mari kita lanjutkan latihannya. Silahkan anda buka file BerandaController.php tadi dan buatlah script seperti berikut:
.....public function index(){$data = ['title' => 'Beranda','subTitle' => 'Halaman Beranda'];return view('v_beranda', $data);}......
Sedangkan pada script v_beranda.blade.php dapat kita tambah seperti berikut:
........
<body>
<h1>{{ $title }}</h1><h5>{{ $subTitle }}</h5></body>.........
Sekarang Jalankan Program. Apa data sudah ditambahkan??
Mengontrol View
jika kita sudah memahami tentang sistem kerja dari controller, lalu bagaimana caranya mengontrol view untuk mengirimkan data yang berbeda-beda tergantung jalur di dalam view? Mari kita lanjutkan. Pertama-tama buka terlebih dahulu file web.php dan tambahkan script berikut:
....Route::get('/', [BerandaController::class, 'index']);Route::get('/populer', [BerandaController::class, 'populer']);
Buka file BerandaController.php dan tambahkan function popuer.
....{public function index(){$data = ['title' => 'Beranda','subTitle' => 'Halaman Beranda'];return view('v_beranda', $data);}public function populer(){$data = ['title' => 'Beranda','subTitle' => 'Beranda/Populer'];return view('v_beranda', $data);}}
Sekarang ketikkan perintah berikut di URL anda:
http://127.0.0.1:8000/populer
Apakah halaman view sudah berubah sesuai dengan data yang telah di kirim dari controller? Jika ya, Selamat anda sudah berhasil memahami dan mempelajari sistim controller di Laravel.