Halo teman-teman programmer semua! Kalau kita bicara soal dunia PHP, rasanya nama Laravel itu sering kali disebutin. Framework yang satu ini memang terkenal banget karena kemudahan dan fitur-fiturnya yang bikin proses development jadi lebih cepet, apalagi framework ini termasuk salah satu framework yang lumayan gampang dipelajari karena berbasis PHP. Tapi, pernah nggak sih kalian ngerasa bingung pas pertama kali bikin dan buka folder projek Laravel? Isinya banyak banget folder, ada `app`, `resources`, `routes`, sampai `database`.
Mungkin bagi kalian yang terbiasa ngoding PHP Native (cara lama) di mana satu file `.php` isinya campur aduk dan bermacam-macam—mulai dari koneksi database, logika *if-else*, sampai kode HTML-nya yang digabungin dan numpuk jadi satu, struktur Laravel ini pasti bakal terasa ngebingungin.
Tapi tenang aja, wajar-wajar aja kalau ada yang bingung karena namanya juga proses belajar, kalau udah ngerti konsep dasarnya pasti bakal ngert kok. Di artikel kali ini, kita bakal bedah bareng-bareng soal MVC (Model-View-Controller). Ini adalah pola arsitektur yang digunakan di Laravel sebagai struktur utama. Kenapa sih kode harus dipisah-pisah? Kenapa nggak digabung aja biar praktis? Semua itu bakal kita bahas biar kalian paham dan mengerti apa itu MVC. Yuk, simak artikelnya!
MVC Bukan Cuman Sekadar Memisahkan File, Tapi Soal Tanggung Jawab
MVC itu adalah singkatan dari Model, View, dan Controller. Gampangnya, MVC adalah sebuah pola pikir untuk memisahkan kode-kode yang kita buat menjadi tiga bagian utama berdasarkan tugasnya masing-masing. Coba bayangin sebuah restoran profesional. Nggak mungkin kan koki yang masak di dapur, tapi dia juga yang lari-lari nyatet pesanan tamu, terus dia juga yang cuci piring di belakang? Kalau restorannya sepi sih oke aja, masih bisa dilakuin sendiri, tapi kalau lagi rame? Pasti bakal chaos dan berantakan.
Nah, kodingan kita juga sama. Kalau semua logika dan kode kita numpuk di satu file, itu namanya Spaghetti Code (ruwet kayak mie). MVC dibuat dengan tujuan agar kode yang kita buat jadi rapi dan tidak semerawut. Kita bakal bahas dulu masing-masing dari MCV itu apa:
1. Model
Model ini tugasnya spesifik banget adalah beurusan dengan database. Dia adalah representasi dari data yang kita punya. Di Laravel, Model ini biasanya terhubung langsung sama tabel di database kalian.
Jadi, kalau kalian mau nambah data user baru, ngambil daftar produk, atau ngapus postingan blog, itu tugasnya si Model. Dia nggak peduli tampilan website kalian, mau tombolnya warna merah atau biru, mau search bar nya lonjong, tugas dia cuma pastiin semua data yang keluar masuk dari database itu aman dan benar.
2. View
Sesuai namanya, View adalah apa yang dilihat langsung oleh pengguna atau user, yang biasanya disebut bagian antarmuka atau User Interface. Di Laravel, View ini biasanya berisi kode HTML dan CSS yang dibuat diatas template engine Laravel yang bernama Blade.
View ini polos, dia nggak tau caranya konek ke database, dia nggak tau gimana data-data dibuat dan dikelola. Tugas dia cuma menerima data yang udah siap dan mateng, lalu menampilkan kode-kode styling yang udah dibuat ke layar browser pengguna.
3. Controller
Nah, ini dia jembatannya. Controller adalah penghubung antara Model dan View. Dia yang mengatur semua data yang dikirim oleh Model lalu dia atur sedimikian rupa datanya sebelum dikirim ke View.
Logikanya kira-kira seperti ini: Saat user minta halaman "Daftar Produk", Controller bakal minta Model buat ngirim data yang diperluin. Setelah Model ngasih datanya, Controller bakal ngola data itu lalu dikirim lagi ke View. Baru deh View munculin datanya di browser.
Kenapa Laravel Pake Konsep MCV yang RIbet Ini?
Mungkin kalian mikir, "Ribet amat, mau nampilin 'Hello World' aja harus bikin 3 file berbeda?". Yaa... Kan tujuannya bukan cuman nampilin Hello World doang.
Jawabannya adalah untuk kepentingan jangka panjang. Kalau projek kalian masih kecil, bener mungkin MVC bakal terasa berlebihan. Tapi kalau projeknya udah besar atau kalian mutusin buat ngembangin projeknya, MVC itu struktur wajib biar kode kalian ga berantakan. Dengan MVC, kita bisa ngerasain keuntungan-keuntungan kayak gini:
- Kolaborasi Tim Enak: Teman yang jago frontend bisa fokus ngutak-ngatik file View tanpa takut ngerusak query database di Model. Begitu juga sebaliknya.
- Maintenance Gampang: Kalau ada error di tampilan, kita tau harus ngecek ke folder mana (View). Kalau datanya salah, kita juga bakal tau harus marahin siapa (Model atau Controller). Nggak perlu lagi harus scrolling ribuan baris kode cuma buat nyari satu titik koma yang hilang.
- Reusable: Kalau kalian mau bikin fitur yang mirip-mirip dengan fitur yang sudah kalian buat, ode logika di Controller atau Model bisa dipakai ulang tanpa harus nulis kode dari nol lagi.
Apakah MVC Cocok Buat Digunain Pemula?
Justru ini adalah waktu yang tepat! Meski aku bilang untuk projek-projek yang masih kecil konsep MVC ini agak sedikit berlebihan, ga ada salahnya kan belajar buat ngegunain dari sekarang? Kalau kalian belajar dari sekarang, nanti pas kalian udah mulai pindah ke Laravel, pasti udah terbiasa buat pake konsep MCV. Sekian dulu pembahasan kita untuk artikel kali ini. Sampai jumpa di lain waktu!
Daftar Referensi:
- [https://laravel.com/learn/getting-started-with-laravel/what-is-mvc]
- [https://buildwithangga.com/tips/pemanfaatan-konsep-mvc-pada-framework-laravel]
- [https://www.dicoding.com/blog/kenalan-dengan-laravel-framework-php-yang-keren-dan-serbaguna/]