Hallo rekan semua. Apa kabar? J. Tulisan ini saya buat khusus bagi kalian yang ingin berkenalan dengan Framework dengan konsep Model-View-Controller (yang kemudian akan saya tulis MVC). Barangkali sudah banyak dari kalian yang sudah kaffah di bagian ini. Tapi sekali lagi, saya hanya berusaha membagikan pemahaman saya mengenai konsep MVC pada rekan-rekan yang mungkin masih samar-samar gimana gitu sama MVC ini.
Sejarah Konsep MVC
Dari beberapa referensi yang baca, MVC ini muncul sejak era 70-an lho, atas pemikiran Prof. Trygve Reenskaug yang berkebangsaan Norwegia. Konsep dasar dari MVC ini adalah pemisahan antara logika dan tampilan. Menggunakan pola ini diharapkan dapat mengefisiensikan pembangunan sebuah aplikasi. Awalnya, konsep MVC dirancang untuk bahasa pemrograman Smalltalk. Namun, seiring berkembangnya zaman MVC luas digunakan dalam dunia framework, baik web-based maupun desktop-based. Sebagai tambahan pengetahuan, beberapa web-based application yang frameworknya menggunakan konsep MVC diantaranya PHP, ASP, Ruby, dan masih banyak lagi deh. (sumber: buku CodeIgniter karya Antonius Nugraha Widhi Pratama).
MVC pada CodeIgniter
Berikut gambaran singkat penerapan MVC dalam CodeIgniter yang saya pahami sebagai berikut.
Model
Memiliki tanggung jawab untuk melakukan pengelolaan data dalam database. Biasanya berisi perintah untuk mengambil, mengubah, menghapus, dan menambahkan data.
View
Merupakan wadah/tempat untuk meletakkan apa-apa yang nantinya akan tampil pada halaman web. Ya, bisa dibilang tampilan antarmukanya disimpan pada bagian ini. Disini biasanya berisi syair bahasa pemrograman berbasis klien (client side scripting). Meskipun bisa juga berisi bahasa PHP di dalamnya.
Controller
Memiliki tanggung jawab mengatur hubungan baik antara model, view, dan sumber daya lain yang tersedia.
Sumber: http://share.psu.ac.th/file/thawat.v/mvc-rails.png
Nah, penerapan yang telah disebutkan di atas tidak menuntut aturan yang ketat (maksud lo?!). Artinya, aplikasi berbasis CI boleh tidak menggunakan model misalnya. Logika model bisa saja diletakkan dalam sebuah controller. View pun boleh tidak digunakan. Tampilan dapat diletakkan pada model ataupun controller. Ini dapat menjadi salah satu kelebihan dan juga kekurangan tergantung pada penilaian Anda. CMIIWJ
“..Adakah sama orang-orang yang mengetahui dengan orang-orang yang tidak mengetahui?..”
(QS. Az-Zumar[39]: 8)
“Knowing is not enough, we must apply. Willing is not enough, we must do.“
— Johann Wolfgang von Goethe
Semoga Bermanfaat!
Learn to Share. Share to Learn.
J
Terus tujuan implementasinya ??