MVC
Apa itu MVC?
Model View Controller atau yang dapat disingkat MVC adalah sebuah pola arsitektur dalam membuat sebuah aplikasi dengan cara memisahkan kode menjadi tiga bagian yang terdiri dari:
- Model
Bagian yang bertugas untuk menyiapkan, mengatur, memanipulasi, dan mengorganisasikan data yang ada di database.
- View
Bagian yang bertugas untuk menampilkan informasi dalam bentuk Graphical User Interface (GUI).
- Controller
Bagian yang bertugas untuk menghubungkan serta mengatur model dan view agar dapat saling terhubung.
Kenapa pakai MVC?
MVC (Model-View-Controller) memiliki beberapa manfaat penting dalam pengembangan aplikasi:
- Efisiensi Pengembangan: Memungkinkan pengembang bekerja secara paralel pada bagian-bagian yang berbeda dari aplikasi, mempercepat proses pengembangan.
- Penulisan Kode yang Rapi: Struktur tiga bagian memudahkan pengorganisasian kode, membuatnya lebih mudah dimengerti dan dikelola oleh pengembang lain.
- Testing yang Lebih Mudah: Memisahkan logika aplikasi ke dalam model, view, dan controller memungkinkan pengujian dilakukan secara terpisah untuk setiap bagian, memastikan kualitas aplikasi.
- Perbaikan Bug Lebih Cepat: Struktur terpisah memudahkan dalam menemukan dan memperbaiki bug, menghemat waktu dan upaya dalam proses debugging.
- Pemeliharaan yang Mudah: Struktur yang terorganisir membuat pemeliharaan aplikasi menjadi lebih mudah, memungkinkan modifikasi atau perbaikan dilakukan tanpa mengganggu bagian lain dari aplikasi.
Cara Kerja MVC
- User melakukan interaksi dengan View.
- View mengirimkan request ke Controller.
- Controller menerima request dari View dan memprosesnya.
- Controller mengirimkan request ke Model.
- Model menerima request dari Controller dan memprosesnya.
- Model mengirimkan response ke Controller.
- Controller menerima response dari Model dan mengirimkannya ke View.
- View menerima response dari Controller dan menampilkannya ke User.
Komponen pada Laravel yang Mengimplementasikan MVC
1. Routes
Router merupakan bagian yang mengurusi pemetaan/mapping antara url dengan kontroler. Fungsi tersebut dituliskan dalam file yang berada folder routes yang bernama web.php
Ada beberapa model penulisan pada route, satu di antaranya adalah sebagai berikut:
Route::method(‘link’, ‘namacontroller@methodcontroller’);
contoh:
Route::get(‘/about’,’PagesController@about’);
2. Controller
Kontroller berisi method-method yang berisi perintah yang harus dilakukan pada suatu method. Setelah Route menghubungkan ke controller dan method mana yang akan dituju, method suatu controller akan mengembalikan nilai atau tujuan url yang akan dituju. Pada laravel, direktori controller berada di app>Http>Controller
.
Untuk membuat controller di laravel ada beberapa cara, di antaranya:
- Kamu bisa langsung membuat file [namakontroller].php pada direktori kontrollernya langsung.
- Kamu bisa memanfaatkan fitur yang ada di Laravel, yaitu kamu bisa menuliskan perintah di terminal berikut:
php artisan make:controller [namacontroller]
Di bawah merupakan contoh dari skrip controller.
Skrip di atas menunjukkan bahwa controller PagesController memiliki dua method, yaitu home() dan about(). home() mengembalikan tampilan ‘Index’, artinya pada saat method tersebut dipanggil, web kamu akan menuju ke tampilan yang memiliki nama file index.blade.php (akan dibahas selanjutnya).
3. View
View merupakan file berisi kode yang akan menampilkan desain dari web kamu. Pada laravel, file view berada pada direktori resources>views. Format dari nama file view adalah [namaview].blade.php
.
Gambar di atas merupakan contoh skrip dari tampilan (view). Karena ekstensi file view adalah .php, maka skrip di file tersebut ditulis dalam bahasa pemrograman PHP. Laravel menyediakan beberapa-beberapa fungsi untuk mempermudah pengodingan view, satu di antaranya adalah blade templating.
4. Model
Model merupakan salah satu komponen MVC yang berhubungan langsung dengan database. Di database sendiri model dipresentasikan tabel-tabel yang nantinya diisi dengan data. Model berisi atribut yang nantinya atribut tersebut menjadi kolom pada tabel database.
Direktori model pada laravel terletak di app>Http. Pada contoh di samping, Aku punya tiga model yaitu Student dan User.
Pembuatan model di laravel dapat kamu lakukan dengan membuat migrationnya terlebih dahulu (akan dibahas pada blog lain). Setelah file migration dibuat, kita akan menuliskan tipe atribut dan nama atribut dari model yang mau kita buat.
Setelah itu kita dapat langsung menuliskan di terminal dengan perintah:
php artisan make:model [namamodel]
Pada skrip di atas, Aku punya model yang bernama Student. Model tersebut memiliki atribut nama, nim, email, dan jurusan yang dapat diisi. Atribut tersebut akan dijadikan header kolom pada tabel database yang nantinya data diisi sesuai kolom yang ada perbarisnya. Berikut adalah contoh dari tabel Student dari database yang aku punya:
Seperti yang kamu lihat, pada tabel tersebut memiliki beberapa kolom yang tidak kita buat dengan sengaja. Yaitu id, created_at, updated_at, dan deleted_at. Atribut tersebut dibuatkan oleh laravel ketika kita membuatnya dengan menulis di terminal.
Atribut id merupakan atribut primary key. Primary key adalah atribut yang menjadi pointer dari suatu baris. Dikarenakan menjadi pointer pada suatu baris, maka primary key memiliki suatu baris tidak boleh ada yang sama dengan primary key di baris lain.
Atribut updated_at, created_at, dan deleted_at adalah atribut yang akan diisi waktu diperbarui, dibuat, dan dihapus secara otomatis. Dengan atribut tersebut, kita akan mengetahui waktu data tersebut diolah.
Gambar di atas merupakan tampilan web yang menampilkan data students dari database ke tampilan web.