MVC adalah metode membangun aplikasi dengan memisahkan komponen utama yakni manipulasi data, antarmuka pengguna, dan kontrol aplikasi. MVC memisahkan model, view, dan controller dimana model berisi logika bisnis dan basis data, view menangani penampilan, dan controller mengatur aliran dan proses bisnis. MVC memiliki keunggulan seperti penggunaan ulang komponen antarmuka, fleksibilitas pengembangan, dan pewarisan kelas.
2. Apa itu MVC?
• MVC (Model-View-Controller) adalah sebuah metode dalam
membuat aplikasi dengan memisahkan pengembangan aplikasi
berdasarkan komponen utama yang membangun sebuah aplikasi
seperti manipulasi data, antarmuka pengguna, dan bagian yang
menjadi kontrol utama aplikasi.
5. Jenis MVC Pada Website
• Server Side MVC
• Mixed Client Side and Server Side MVC
• Rich Internet Application MVC
6. Keunggulan MVC
• Penggunaan ulang komponen-komponen antarmuka (user interface
reusable component).
• Kemampuan untuk mengembangkan aplikasi dengan antarmuka
pengguna secara terpisah.
• Kemampuan untuk melakukan pewarisan (inheritance) dari berbagai
bagian yang berbeda pada suatu hierarki kelas.
• Kemampuan untuk mendefinisikan kelas-kelas pengaturan tampilan
(control style) yang menyediakan fitur-fitur umum secara terpisah
dengan fitur-fitur yang akan ditampilkan oleh aplikasi yang
dikembangkan.
Kalo OOP lebih menekankan bagaimana sebuah kode program ditulis sebagai sebuah objek yang memiliki atribut2 dan fungsinya, maka MVC ini cakupannya diatas itu, yakni mengatur arsitektur sebuah aplikasi. Umumnya aplikasi yang dibangun dengan konsep MVC adalah aplikasi yang cukup besar, karena salah satu keuntungan dari MVC itu adalah kemudahan maintenance, dan pengembangan aplikasi tersebut.
Model, Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.
View, View adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman web.
Controller, Controller merupakan bagian yang menjembatani model dan view. Controller berisi perintah-perintah yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.[2]
Server Side MVC, Server Side MVC biasa terjadi pada aplikasi web tradisional, yang tidak melibatkan client side seperti Javascript, Java applet, Flash, dan lain-lain. Server Side MVC menyerahkan keseluruhan proses bisnis pada server, aplikasi pada sisi pengguna hanya dapat menerima. MVC jenis ini kadang-kadang disebut juga dengan nama Thin Client.[2]
Mixed Client Side and Server Side MVC, Pada Mixed Client Side and Server Side MVC 1 client tidak menggunakan model sebagai jembatan untuk melakukan komunikasi pada server, dibandingkan dengan Server Side MVC, arsitektur ini memiliki tingkat kompleksitas yang lebih tinggi karena lebih banyak komponen yang terlibat. Untuk selanjutnya arsitektur ini disebut, dengan Mixed MVC 1. Pada Mixed Client Side and Server Side MVC 2, client menggunakan model sebagai jembatan untuk melakukankomunikasi pada server, dibandingkan dengan arsitektur MVC yang lain, arsitektur ini memiliki tingkat kompleksitas yang paling tinggi karena lebih banyak komponen yang terlibat, sehingga membutuhkan sumber daya yang lebih besar pula. Untuk selanjutnya arsitektur ini disebut dengan Mixed MVC 2.[2]
Rich Internet Application MVC, Application MVC Rich Internet Application (RIA) disebut juga dengan nama Fat Client, merupakan aplikasi web yang memiliki kemampuan dan fungsi hampir seperti aplikasi desktop. RIA pada sisi client, memiliki mesin untuk mengambil data yang berada pada server, sehingga pada client terdapat bagian MVC sendiri dan hanya membutuhkan bagian model pada sisi server.[2]
1. index.php berfungsi sebagai controller depan, mnginisialisasi basic resource yang dibutuhkah untuk menjalankan CI.
2. Router menganalisa HTTP request untuk menentukan apa yang harus dilakukan dengan HTTP request itu.
3. Jika file cache masih ada , maka akan dikirim langsung ke browser, tanpa melewati eksekusi normal sistem.
4. Keamanan, sebelum controller aplikasi di panggil, HTTP request dan data yang dikirim user, di filter untuk alasan keamanan.
5. Controller memanggil model, librari inti , plugin, helper, dan resource lainnya yang di butuhkan untuk memroses request tertentu.
View yang sudah diproses, dikirim ke browser sebagai hasil yang terlihat. Jika status caching ON, view akan disimpan di cache, jadi jika ada request yang sama, view itu bisa ditampilkan lagi.
Lavarel adalah kerangka pengembangan aplikasi web PHP gratis untuk pengembangan aplikasi web mengikuti model-view-controller (MVC) pola arsitektur yang diciptakan oleh Taylor Otwell.
Laravel memiliki banyak fitur yang membuat pengembangan aplikasi dengan cepat. Laravel memiliki engine template ringan sendiri yang disebut “Blade”, sintaks yang elegan yang memfasilitasi tugas Anda seperti authentication, sessions, queueing, caching and RESTful routing.
CodeIgniter adalah framework PHP ringan yang sudah lama, yaitu 10 tahun (awalnya dirilis pada tahun 2006).
CodeIgniter tidak secara ketat didasarkan pada pola pengembangan MVC. Menggunakan Class Controller adalah suatu keharusan, tapi Model dan View merupakan opsional,
Codeigniter mempunyai file download yang kecil hanya 2MB, itulah kenapa framework ini disebut sebagai kerangka PHP yang ramping, tetapi Anda masih memungkinkan untuk menambahkan plugin pihak ketiga jika Anda membutuhkan fungsionalitas yang lebih rumit.
Framework ini dapat memberikan dorongan untuk kinerja situs lebih cepat dari kerangka kerja PHP lainnya, karena secara ekstensif menggunakan teknik lazy loading. Yii 2 adalah murni object-oriented, dan hal ini didasarkan pada DRY (Don’t Repeat Yourself) coding konsep, sehingga menyediakan kode dasar yang cukup bersih dan logis.
Yii 2 terintegrasi dengan jQuery, dan dilengkapi dengan serangkaian fitur AJAX-enabled, dan mengimplementasikan mekanisme skining dan theming yang mudah digunakan, sehingga dapat menjadi pilihan yang cocok untuk seseorang yang berasal dari latar belakang frontend. Ini juga memiliki class class kode generator kuat yang disebut Gii yang memfasilitasi pemrograman berorientasi objek dan prototyping cepat, dan menyediakan antarmuka berbasis web yang memungkinkan Anda untuk secara interaktif menghasilkan kode yang Anda butuhkan.
Phalcon adalah Framework yang didirikan pada tahun 2012 berkinerja tinggi untuk aplikasi web PHP didasarkan pada pola model-view-controller (MVC). Tidak seperti kebanyakan kerangka PHP lainnya, Phalcon diimplementasikan sebagai perpanjangan yang ditulis dalam C. Hal ini dimaksudkan untuk meningkatkan kecepatan eksekusi dan mengurangi penggunaan sumber daya dengan tujuan agar dapat menangani lebih permintaan per detik daripada kerangka kerja yang sebanding yang ditulis dalam PHP. Salah satu kelemahan dari phalcon ini adalah bahwa akar / akses administratif diperlukan pada server untuk menginstal Phalcon dengan membangun biner kustom atau menggunakan satu precompiled.
Phalcon juga dikemas dengan banyak fitur keren seperti auto-loader universal, manajemen aset, keamanan, terjemahan, caching, dan banyak lainnya. Phalcon juga merupakan kerangka yang terdokumentasi dengan baik dan mudah digunakan.