Tutorial Belajar Laravel, Pengertian MVC (Model - View - Controller)
Sebelum masuk ke praktik pemakaian Laravel, saya ingin mengulas ide dasar yang digunakan oleh Laravel (dan banyak frame-work PHP lain), yaitu arsitektur MVC. Materi kali ini masih mengenai teori, tetapi penting supaya bisa pahami "code apa yang kita catat ke Laravel?".
Pengertian MVC
MVC ialah sebuah arsitektur perancangan code program. Maksudnya untuk merusak code program khusus jadi 3 elemen terpisah dengan pekerjaan yang detil. Ke-3 elemen itu ialah:
Pengaksesan database, dikatakan sebagai Mode.
Penampilan desain (pemakai interface), dikatakan sebagai View.
Jalur nalar program, dikatakan sebagai Controller.
Gabungan Model-View-Controller inilah yang disingkat sebagai MVC.
Ide awal dari pentingnya ide MVC ialah supaya program yang dibikin dapat gampang diatur dan diperkembangkan, khususnya untuk program besar.
Sebagai contoh, seorang situs designer dapat konsentrasi membuat sisi View saja, yaitu penampilan desain web yang terbagi dalam code HTML dan CSS plus sedikit JavaScript. Code program untuk berbicara dengan database dapat diatasi oleh programmer yang khusus sisi Mode. Dan programmer lain atur jalur nalar program pada bagian Controller.
Dengan pembelahan semacam ini, kerja team jadi gampang diatur. Disamping itu dengan implementasi ide MVC yang bagus, tiap sisi tidak sama-sama tergantung sama lain. Bila ada peralihan atau modifikasi, cukup ubah pada bagian yang dibutuhkan saja, tidak harus mengubah ulangi semua program.
Dibalik keunggulan ini, masalah khusus dari ide MVC ialah cukup sulit untuk dimengerti (khususnya untuk pemula), dan file code program jadi banyak karena tiap sisi dari M-V-C harus dicatat dalam file terpisah. Tetapi keuntungan yang didapatkan sesuai dengan "usaha" untuk pelajari MVC itu, karena code program kita jadi lebih elastisitas dan gampang diatur.
Diagram Alur MVC
Ini ialah contoh jalur yang terjadi dalam sebuah program yang mengaplikasikan ide MVC. Kita pergi dari pemakai yang buka sebuah situs browser (pojok kanan bawah).
Dalam panah 1, tiap hubungan yang sudah dilakukan pemakai akan diatasi oleh controller. Misalkan saat pemakai menulis alamat situs www.duniailkom.com, karena itu sebuah controller di server duniailkom akan tangkap "request" itu. Atau saat pemakai usai isi form registrasi dan men-klik tombol submit, file controller akan terima sebuah proses.
Controller pada intinya berisi nalar program. Andaikan perlu ambil data dari database, karena itu controller akan panggil Mode (panah nomor 2). Mode berikut yang bertanggungjawab terhubung database lalu kembalikan hasilnya kembali lagi ke controller.
Sesudah data dari mode diterima kembali, controller selanjutnya melanjutkan data itu ke View (panah 3). Data ini selanjutnya diolah sebagai code HTML dan CSS dalam view. Berikut yang disaksikan oleh pemakai dalam situs browser (panah 4).
Bila pemakai men-klik halaman lain, karenanya akan diolah kembali oleh controller, yaitu kembali lagi ke cara 1, begitu selanjutnya jalur kerja dari arsitektur MVC.
Dalam praktik arsitektur MVC di Laravel, nanti ada elemen namanya Route, yang berperan untuk sesuaikan alamat URL, dan "sembunyikan" nama file URL. Route ini akan ada di panah 1, yaitu pas saat sebelum request dari pemakai sampai ke controller.
Beberapa istilah yang kita ulas di sini memang membuat kebingungan karena praktiknya tidak ada. Ini semua akan semakin terang saat telah masuk ke praktik di Laravel. Yang terpenting dimengerti sekarang ini apa ada, di Laravel kelak akan ada elemen Route, Controller, Mode dan View yang sama-sama bekerja bersama. Nanti tiap elemen ini akan berada di file PHP semasing.