MVC atau Model-View-Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk (Wikipedia), MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi kontrol aplikasi. Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu aplikasi yaitu :
Model, biasanya berhubungan langsung dengan database untuk memanipulasi data (insert, update, delete, search), menangani validasi dari bagian controller, namun tidak dapat berhubungan langsung dengan bagian view.
View, merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model.
Controller, merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi.
Singkat kata Model untuk mengatur alur database, View untuk menampilkan web, sedangkan Controller untuk mengatur alur kerja antara Model dan View. Jadi misalnya Anda ingin membuat akun facebook atau e-mail. Pertama Anda akan melihat tampilan sign-up / register itulah View, kemudian Anda menuliskan form pengisian seperti username, password, dll dan Anda klik sign-up / register maka di sini View memanggil Controller dan Controller memanggil Model, sedangkan Model mengecek apakah Anda sudah sesuai dengan kriteria pendaftaran seperti sudah mengisi username, password dan lain sebagainya. Kemudian Model menggembalikan (callback) ke Controller dan Controller mengembalikan ke View, dan kita akan melihat berhasil atau tidak kita sign-up/register. Lebih jelas berikut:
atau
Model, biasanya berhubungan langsung dengan database untuk memanipulasi data (insert, update, delete, search), menangani validasi dari bagian controller, namun tidak dapat berhubungan langsung dengan bagian view.
View, merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model.
Controller, merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi.
Singkat kata Model untuk mengatur alur database, View untuk menampilkan web, sedangkan Controller untuk mengatur alur kerja antara Model dan View. Jadi misalnya Anda ingin membuat akun facebook atau e-mail. Pertama Anda akan melihat tampilan sign-up / register itulah View, kemudian Anda menuliskan form pengisian seperti username, password, dll dan Anda klik sign-up / register maka di sini View memanggil Controller dan Controller memanggil Model, sedangkan Model mengecek apakah Anda sudah sesuai dengan kriteria pendaftaran seperti sudah mengisi username, password dan lain sebagainya. Kemudian Model menggembalikan (callback) ke Controller dan Controller mengembalikan ke View, dan kita akan melihat berhasil atau tidak kita sign-up/register. Lebih jelas berikut:
atau
Struktur laravel
Berikut adalah beberapa struktur dari laravel :
- App berisi kumpulan logika dan alur sistem yang akan dibuat.
- Bootstrap direktori ini berisi beberapa file kerangka framework laravel termasuk autoload yang befungsi untuk mengoptimasi kinerja sistem yang dihasilkan.
- Config mencakup seluruh konfigurasi framework mulai dari database, app, mail, dan lain sebagainya.
- Database sebagai folder penampung file migrations dan seeds yang berhubungan langsung ke pengolahan data dalam database.
- Public sebagai folder yang akan diakses oleh public/users nantinya. Folder ini juga berisi file-file assets (css/js/images/dll)
- Resource folder ini berisi semua resource untuk bagian frontend.
- Routes Folder ini digunakan untuk menentukan format url yang digunakan untuk mengakses halaman yang dibuat
- Storage berisi compiled blade templates, session, cache, logs dan file lainnya yang di-generate otomatis oleh framework.
- Tests berisi semua test yang kita buat untuk aplikasi.
- Vendor berisi seluruh library-library yang digunakan dalam framework laravel maupun yang diinstall melalui composer.
Contoh MVC di Laravel
Mari kita buat contoh sederhana dari implementasi MVC di Laravel.1. Buat file cobamvc di laravel seperti langkah-langkah yang sudah dibahas sebelumnya.
2. Ketik pada commend prompt seperti gambar dibawah ini.
3. Buat model dengan cara php artisan make:model view model view saya beri nama view.
4. Kemudian buat controller dengan cara php artisan make:controller iniController disini iniController adalah nama controllernya.
5. Setelah itu buka folder cobamvc yang tadi kita buat di editor text.
6. Kemudian buka file view yang berada di app/Provoders. Buat kode seperti gambar dibawah ini:
7. Kemudian buka file iniController.php yang tersimpan pada folder app/Http/Controller/iniController.php. Silahkan buat kode seperti gambar di bawah ini:
Pada controller iniController.php terdapat satu fungsi yaitu function output();. Pada fungsi tersebut didefinisikan beberapa variabel untuk ditampilkan pada blade view. Pada baris ke-25 variabel tersebut di return ke views dengan nama file lihat.blade.php.
8. Buat view dengan nama lihat,blade.php yang disimpan pada folder resources/views/lihat.blade.php. Silahkan buat kode html seperti dibawah ini:
9. Untuk dapat ditampilkan lewat browser, kita update di file routes/web.php dengan menambahkan rounting sebagai berikut:
10. Terakhir silahkan akses dibrowser dengan url http://localhost/cobamvc/public/ dan akan menampilkan seperti gambar dibawah ini:
11. Selesai.
Terimakasih.
Sumber :