Bismillah.

Konsep arsitektur MVC atau Model-View-Controller, kemungkinan besar adalah istilah yang paling sering disebutkan dalam dunia web-programming beberapa tahun terakhir ini (Pablo Pastor, 2010)[1]. Orang-orang yang bersinggungan secara langsung atau pun tidak langsung dengan dunia pembangunan aplikasi berbasis web pasti pernah mendengar istilah MVC, dikarenakan kepopuleran dan urgensitas-nya.

Hari ini, kita akan membahas konsep dasar arsitektur MVC, apa itu MVC, dan bagaimana cara ia bekerja.

Apa itu MVC?

MVC adalah konsep arsitektur dalam pembangunan aplikasi berbasis web yang membagi aplikasi web menjadi 3 bagian besar. Yang mana setiap bagian memiliki tugas-tugas serta tanggung jawab masing-masing. Tiga bagian tersebut adalah: model, view dan controller.

  • Model: Bertugas untuk mengatur, menyiapkan, memanipulasi dan mengorganisasikan data (dari database) sesuai dengan instruksi dari controller.
  • View: Bertugas untuk menyajikan informasi (yang mudah dimengerti) kepada user sesuai dengan instruksi dari controller.
  • Controller: Bertugas untuk mengatur apa yang harus dilakukan model, dan view mana yang harus ditampilkan berdasarkan permintaan dari user. Namun, terkadang permintaan dari user tidak selalu memerlukan aksi dari model. Misalnya seperti menampilkan halaman form untuk registrasi user.

konsep-mvc.png

Contoh Kasus

Ketika anda memasuki perpustakaan kemungkinan anda diminta untuk mengisi buku tamu. Kebetulan buku tamu di perpustakaan yang anda kunjungi menggunakan aplikasi web. Jadi di sana sudah terdapat satu komputer, di mana setiap pengunjung perpustakaan harus melewati dan mengisi datanya melalui komputer tersebut.

  1. Ketika anda melihat layar komputer, di sana ditampilkan form untuk mengisi data diri pengunjung. Kita bisa simpulkan bahwa di sini, browser (sebagai client) meminta aksi kepada server (yang ditangani oleh controller) untuk menampilkan halaman form input data. Lalu controller memutuskan dan mengerti bahwasanya ia hanya perlu menampilkan view. Maka controller memanggil dan mengembalikan view (atau halaman) yang diminta.
  2. Anda kemudian mengisi data. Lalu menekan tombol submit. Di sini browser (sebagai client) mengirimkan data anda kepada server. Data itu ditangkap oleh controller dan controller tahu apa yang harus dia lakukan. Yaitu memanggil model dan memberi data tersebut untuk kemudian disimpan (oleh model) ke dalam database. Setelah proses penyimpanan selesai, controller memanggil dan mengembalikan view kepada user sebagai informasi bahwa data telah masuk.
  3. Jika ada pengunjung baru, maka kembali ke step 1.

Framework yang Menggunakan Konsep MVC

Untuk framework PHP, ada cukup banyak dan hampir semuanya menggunakan konsep MVC:

  • Laravel
  • Symfony
  • CakePHP
  • Zend
  • Codeigniter (versi 3 kebawah sudah tidak recommended untuk dipelajari)
  • dll

Untuk framework Python di antaranya:

  • Django
  • Turbogears2
  • Watson-Framework
  • dll

Untuk framework Nodejs di antaranya:

  • Express
  • Adonis
  • Sails.js
  • Total.js
  • Mean.js
  • Mojito
  • dll

Dari tulisan ini telah jelaslah mengenai konsep dasar MVC. Dengan memiliki pemahaman terhadap konsep ini, kita tidak akan menemukan kesulitan yang berarti ketika mempelajari framework baru. Karena framework-framework tersebut bekerja dengan arsitektur yang kita sudah nyaman dengannya.

Silakan beri komentar jika ada yang perlu didiskusikan.

Catatan Kaki

[1] Pablo Pastor, "MVC for Noobs", https://code.tutsplus.com/tutorials/mvc-for-noobs--net-10488, diakses pada tanggal 27 Oktober 2017