Apa itu MVC?ΒΆ

Bayangkan kalau anda diminta untuk mengembangkan sebuah aplikasi web, sederhana, yang hanya memiliki beberapa lembar spesifikasi kebutuhan. Karena sangat suka mengembangkan web, anda dengan bersemangat langsung menuju kantor dengan spesifikasi kebutuhan di tangan, untuk secepat mungkin mengerjakan aplikasi web tersebut. Pintu ditutup, tanda “Do Not Distrub” dipasang. Tab Facebook dan Twitter ditutup. Dan anda mulai bekerja. Coding dan coding dan *coding*.

Dua minggu kemudian, aplikasi web yang diminta sudah selesai dikembangkan. Dengan penuh senyuman anda mempresentasikan web yang telah dikembangkan ke klien. Selesai presentasi, klien meminta beberapa perubahan. Bentuk font-nya kurang bagus. Biru di warna latarnya coba digelapkan sedikit. Elemen navigasi terlalu naik. Tolong ditambahkan data pengunjung halaman. Dan masih banyak perubahan lainnya. Anda lalu kembali bekerja untuk memperbaiki aplikasi, dan kemudian melakukan presentasi lagi. Hal ini terjadi berulang kali, sampai akhirnya di akhir proyek, kode aplikasi web anda sudah tidak dapat dikenali.

Kenapa kode tidak lagi dapat dikenali? Ada banyak faktor. Misalnya, kode untuk menampilkan HTML tercampur dengan kode query basis data karena tambahan fitur yang diminta oleh klien pada tengah malam. Waktu itu, anda terlalu mengantuk untuk berpikir jernih dan akhirnya kode tercampur dan sulit diubah lagi karena perubahan di satu tempat akan merusak kode di tempat lain. Mungkin ada kode penanganan kesalahan yang bercampur dengan kode penulisan tampilan, karena anda terburu-buru mengubahnya begitu selesai rapat. Intinya adalah, kode menjadi buruk dan sulit dikembangkan. Kenapa? Karena semua bagian kode sudah tercampur aduk seperti spaghetti.

Untuk menghindari kode agar tidak menjadi spaghetti, maka kita harus menerapkan prinsip Pembagian Fokus (Separation of Concern). Secara singkat, SoC atau Separation of Concern merupakan teknik di mana kita membagi-bagikan kode ke dalam beberapa bagian. Masing-masing bagian kode ini kemudian memiliki tanggung jawabnya masing-masing. Bisa saja ada bagian kode yang khusus menangani basis data. Ada bagian kode yang menangani tampilan. Ada bagian kode yang menghubungkan tampilan dengan basis data.

MVC, atau Model View Controller, merupakan salah satu implementasi prinsip SoC untuk aplikasi yang kita kembangkan. Dalam MVC, kita membagikan bentuk aplikasi dalam tiga bagian utama, yaitu:

  1. Model, yaitu bagian kode aplikasi yang berhubungan dengan basis data.
  2. View, yaitu bagian kode yang berhubungan dengan tampilan ke pengguna.
  3. Controller, yaitu bagian kode yang menghubungkan antara Model dan View.

Note

Sebagai prinsip yang memberikan solusi untuk permasalahan umum, MVC juga merupakan design pattern. Meskipun memberikan prinsip dasar yang sama, implementasi MVC biasanya akan berbeda-beda, tergantung siapa yang mengimplementasikannya.

Secara kasar, berikut adalah arsitektur aplikasi web kita jika dikembangkan dengan menggunakan pola MVC:

Arsitektur MVC

Arsitektur Sederhana MVC

Alur kerja aplikasi web kita ketika user mengunjungi salah satu halaman yaitu:

  1. Browser berhubungan dengan server untuk akses halaman.
  2. Request (permintaan) browser ditangani oleh bagian Controller dari kode kita.
  3. Controller akan melakukan pemanggilan ke Model untuk mendapatkan data yang relevan, dan kemudian mempersiapkan data tersebut untuk ditampilkan.
  4. Controller memberikan data yang diperlukan kepada view.
  5. View menampilkan data dan berbagai elemen antarmuka tambahan yang diperlukan.

Meskipun memerlukan banyak langkah hanya untuk menampilkan satu halaman web, kita dapat langsung melihat keuntungan tambahan dari penggunaan MVC, yaitu bagaimana setiap bagian memiliki tanggung jawab masing-masing. Ingin mengubah query yang digunakan agar menjadi lebih cepat? Langsung saja edit kode pada bagian Model. Designer juga dapat bekerja pada bagian view jika ingin mengubah tampilan, tanpa perlu takut merusak keseluruhan kode. Pastinya hal seperti ini akan mempercepat dan mempermudah pengembangan web kita!

Tertarik untuk melihat bagaimana membuat framework MVC sederhana? Mari kita segera coba!

Bagikan Tulisan
comments powered by Disqus
Kembali ke bertzzie.com