Sebelum saya jelasin, kamu pernah mendengar konsep arsitektur MVC? Atau apakah kamu tahu MVC itu merupakan singkatan dari kata apa? Nah, di kesempatan kali ini, saya mau membahas sedikit mengenai si MVC ini. Oh iya, konsep ini digunakan oleh Framework Laravel loh! Konsep ini seringkali digunakan oleh developer Laravel untuk membangun website.
Pengertian MVC
MVC adalah sebuah kerangka kerja yang terdiri dari Model, View dan Controller. Sesuai dari kepanjangan MVC yaitu Model, View dan Controller, setiap bagian tersebut memiliki perannya masing-masing. Dimulai dari Model, peran yang dimiliki oleh Model adalah sebagai jembatan antara Database dengan Controller. Sehingga ketika Controller ingin mengakses data yang ada pada database, bisa lewat Model. Bukan cuma itu oang, Model juga biasanya dipakai untuk mengatur relasi antar database seperti HasOne
, HasMany
, dan lainnya. Juga digunakan untuk mengatur apa saja yang bisa dimasukkan secara manual oleh user yang biasanya disebut Mass-assignment. Apa itu Mass-assignment? Pada Model, terdapat $fillabel
dan juga $guarded
. Kedua variable tersebut disebut Mass-assignment atau penugasan masal. Maksudnya gimana? Penugasan masal ini bisa kamu artikan sebagai melakukan proses secara sekaligus. Ketika kita menggunakan sistem Mass-assignment, ini akan mempermudah proses menjadi lebih singkat. Pada bagian Model ini, Mass-assignment terdapat pada $fillable dan $guarded
. Seperti nama variable tersebut, $fillable
yang berarti bisa diisi bisa diartikan bahwa kolom pada database yang bisa diisi oleh user sekaligus ada pada $fillable
ini. Mass-assignment ini berupa array yang mana di dalamnya kamu masukkan nama dari kolom database. Beda lagi dengan $guarded
. Variabel satu ini merupakan kebalikan dari $fillable
yang berarti si $guarded
ini tidak boleh diisi oleh user. Biasanya yang ada pada variabel ini berupa primary key seperti id
.
Setelah membahas Model, kita lanjut dengan Controller. Seperti namanya, Controller ini berfungsi untuk mengontrol alur data dari Model menuju View dan sebaliknya. Pada Controller ini, biasanya kita memberikan proteksi dengan mengatur jenis data yang bisa dikirim user, kemudian apa saja yang bisa diisi oleh user, dan sebagainya. Intinya, Controller ini merupakan tempat untuk mengatur suatu logika dari program kamu.
Lanjut dengan View. Seperti namanya, View ini berisikan code untuk mengatur suatu tampilan dari si website tersebut. Setiap fungsi yang dibuat melalui Controller akan ditampilkan melalui View ini sehingga user menjadi lebih nyaman ketika sedang melakukan aktifitas di website.
Manfaat menggunakan MVC
- Pemisahan Logika yang Terorganisir Salah satu keunggulan ketika menggunakan MVC adalah logika yang terpisah dengan rapi. Ketika kamu punya kode yang semuanya campur aduk jadi satu pasti pusing. Dengan MVC, kamu bisa memisahkan urusan database, tampilan, dan logika penghubung menjadi tiga bagian yang terpisah. Jadi, saat kamu ingin mengubah tampilan website, kamu tidak perlu takut merusak logika bisnis yang ada di belakang layar. Maka kode kamu jadi lebih bersih, lebih mudah dibaca, dan lebih gampang di maintain. Selain itu, untuk tim developer yang menhadapi proyek besar, ini akan sangat membantu karena setiap orang bisa fokus di bagian yang berbeda tanpa saling mengganggu.
- Lebih Reusable. Dengan MVC, kamu bisa bikin komponen yang bisa dipakai ulang di berbagai tempat. Misalnya, sebuah form atau tampilan data yang bisa dipakai di beberapa halaman. Kalau ada perubahan, tinggal update di satu tempat, dan semua halaman yang pakai komponen itu akan otomatis ikut berubah.
- Pengembangan Jadi Lebih Terstruktur Dengan MVC, pengembangan website jadi lebih terstruktur. Sehingga kamu nggak perlu lagi pusing mikirin alur pengerjaan yang berantakan. Setiap bagian punya tugas masing-masing. Jadinya, kamu bisa fokus di satu hal tanpa khawatir harus bongkar bagian lain.
Jadi, MVC ini akan sangat membantu kamu dalam proses pengembangan website. Kamu bisa membangun website dengan nyaman, terstruktur, cepat, dan tentunya rapi. Selamat mencoba!
Referensi :
– https://sulhi.id/konsep-mvc-model-view-controller-pada-laravel/
– https://crocodic.com/mvc-dalam-pengembangan-aplikasi-web/
– https://dev.to/zubairmohsin33/understanding-mass-assignment-in-laravel-eloquent-orm-331g