Konsep MVC

Web Development merupakan istilah yang sering digunakan dalam pengembangan sebuah sistem informasi dalam bentuk digital yang bisa diakses melalui suatu halaman HTTP. Web Development berkembang dengan pesat yang dapat dilihat dari perkembangan bahasa yang digunakan dalam pembuatannya.

Pada tahap awal pengembangan Web bertujuan menampilkan informasi yang bersifat statis menggunakan HTML saja. Sesuai dengan perkembangan dari permintaan, ada keinginan dari user yang membutuhkan informasi yang ditampilkan dinamis dan berubah-ubah. Ada proses input dan output terhadap sebuah informasi yang ditampilkan hingga Web Development membutuhkan Database sebagai tempat penyimpanan data yang bersifat dinamis. Pembuatan Web Statis ini melibatkan PHP sebagai penghubung antara client dengan server Database.

Pada tahap ini, pembuatan Web bersifat dinamis dengan menggunakan Database sangat terkenal. Hal ini dapat dilihat dengan pencampuran penggunaan antara HTML, CSS, dan PHP dalam satu sistem Web. PHP sendiri biasanya menjadi kode sisipan dalam HTML dan CSS berbentuk variabel yang memiliki isi berubah-ubah sesuai state di Database. PHP dapat membantu untuk mengembangkan aplikasi Web yang cukup kompleks, handal, dan cepat.

Dengan pencampuran HTML, CSS, dan PHP menjadikan pemrograman web menjadi lebih kompleks. Dengan konsep pemrograman tradisional dimana UI, Logic dan data aplikasi ditulis dalam bentuk satu file sehingga menjadi tidak dapat di mantain dengan baik, tidak dapat di test sehingga menjadi terlalu kompleks. Akibat terlalu kompleks, menjadikan adanya proses repeat untuk sebuah hal detail dalam pengerjaan dan memberikan effort yang besar pada Programmer. Hal ini terjadi ketika mereka memiliki Project yang sudah selesai dan selanjutnya memiliki Project lain yang hampir sama gambarannya dengan yang sebelumnya, namun mereka harus mengerjakan Project tersebut dimulai dari awal (from-scratch). Dimana effort yang diberikan sebenarnya bisa dikurangi. Dari hal tersebut muncul ide yang disebut dengan konsep MVC (Model-View-Controller)

Bagan Kerangka MVC

Konsep MVC memberikan pembedaan pada aspek logika aplikasi seperti input, bisnis, dan output. Menggunakan MVC telah diberikan pembeda untuk setiap logika. Terkait output terhadap user berupa user interface (UI) terdapat pada bagian View. Logika untuk input terdapat pada bagian Controller, sedangkan logika bisnis terdapat pada Model. Dengan memberikan pembagian tersebut maka akan dapat membantu dalam mengelola kompleksitas pada pembuatan aplikasi web sehingga programmer dapat fokus pada salah satu aspek dalam proses implementasi. Contohnya adalah programmer dapat fokus pada bagian View tanpa ada ketergantungan dengan logika flow bisnis yang diinginkan.

Komponen dari Konsep Kerangka MVC:

  • Models. Model merupakan bagian dari aplikasi yang merupakan implementasi dari domain data. Model berfungsi sebagai sebuah state untuk menampilkan, menerima, dan menyimpan data kedalam database. Model bisa juga merepresentasikan tabel yang ada pada Database dengan relasionalnya.
  • Views. View merupakan komponen yang menampilkan interface user. Biasanya UI berisi kerangka-kerangka tampilan yang telah digabungkan dengan data dari komponen Model.
  • Controllers. Controller adalah komponen yang menangani interaksi pengguna. Controller berisi logika pemrograman dari sisi backend dengan menggunakan Model sebagai data dan melakukan pemilihan view untuk dirender dan ditampilkan ke User.

Konsep MVC telah banyak diterapkan oleh ahli IT dalam mengembangkan aplikasi. Hal ini dilakukan untuk mempermudah pengembangan perangkat web maupun aplikasi dengan arsitektur MVC. Konsep berbanding jauh dengan pengembangan tradisional terkait dengan keuntungan dalam proses penggunaan kembali kode (reusable code), pengembangan simultan dan lainnya. MVC Framework sudah tersedia dalam pengembangan berbagai platform seperti PHP, .Net, Java. Banyak open source yang menggunakan MVC seperti Laravel, Yii, Code Igniter dan lainnya.