Anda di halaman 1dari 4

Arsitektur MVC

Model-View-Controller (MVC) adalah sebuah metode untuk membuat sebuah aplikasi


dengan memisahkan data (Model) dari tampilan (View) cara bagaimana memprosesnya
(Controller). Dalam implementasinya kebanyakan framework dalam aplikasi website
adalah berbasis arsitektur MVC. MVC memisahkan pengembangan aplikasi berdasarkan
komponen utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka
pengguna dan bagian yang menjadi kontrol dalam sebuah aplikasi web. Pola
pengembangan aplikasi dengan MVC hanya dapat diterapkan pada bahasa pemrograman
yang berbasis objek (OOP), karena MVC sendiri merupakan objek dengan fungsi yang
berbeda.
Model-View-Controller pertama kali dipublikasikan oleh peneliti XEROX PARAC yang bekerja
dalam pembuatan bahasa pemrograman Smalltalk sekitar tahun 1970-1980.
Arsitektur Model-View-Controller adalah sebuah pola yang terbukti membangun proyek
secara lebih efektif. Hal itu dilakukan dengan memilah komponen antara Model, View dan
Controller pada bagian – bagian dalam proyek.
Aplikasi apapun, bagian dalam kode yang sering mengalami perubahan adalah bagian
user interface. User interface adalah bagian yang paling terlihat oleh user dan bagaimana
ia berinteraksi dengan aplikasi, membuatnya menjadi titik fokus pengubahan berdasar
kemudahan penggunaan.
Business-logic yang rumit pada user-interface membuat pengubahan pada user interface
menjadi lebih kompleks dan mudah terjadi kesalahan. Perubahan pada satu bagian
memiliki potensi keterkaitan dengan keseluruhan aplikasi.
Pola MVC menyediakan sebuah solusi terhadap permasalahan tersebut dengan membagi
aplikasi menjadi bagian – bagian tersendiri, Model, View dan Controller, memisahkan antar
bagian tersebut dan membuat tata interaksi diantaranya.

1.Model merupakan sesuatu yang merepresentasikan data, misalnya tabel database yang


diolah (simpan, ubah, hapus) oleh Controller untuk ditampilkan (View). Model ini mengatur
respon terhadap permintaan, serta memberi hak akses untuk memanipulasi
data. Framework berbasis MVC menekankan pada pentingnya desain database yang valid,
menggunakan Model ini memungkinkan developer melakukan query antar database bila
diperintahkan oleh Controller (logic). Beberapa kelebihan menggunakan Model, yaitu
dalam proses maintenance aplikasi yang lebih menguntungkan karena detail dari data dan
operasinya dapat ditempatkan pada area yang ditentukan oleh Model. Keuntungan lainnya
komponen Model dapat digunakan kembali oleh aplikasi lain yang memiliki kegunaan /
fungsi yang hampir sama, karena telah dipisahkan secara total antara data
dengan interface-nya.
2.View merupakan informasi yang ditampilkan ke user sebagai
media interface (menggunakan HTML, CSS, javasript), jadi tidak berisi proses bisnis yang
berhubungan dengan data pada database.
Komponen grafis menyediakan representasi proses internal aplikasi dan menuntun alur
interaksi user terhadap aplikasi yang ada. Contoh View adalah template dari tampilan
aplikasi atau pada website yang kita lihat, sehingga tidak ada layer lain yang berinteraksi
dengan user kecuali pada layer View ini. Keuntungan View antara lain, memudahkan
desaigner sehingga bisa berkonsentrasi penuh pada desain tanpa harus memperhatikan
hal – hal detail lainnya. Dan juga, memungkinkan ketersediaan multiple interface  (Swing,
Web, Console) dalam aplikasi namun mengeksekusi komponen Model sesuai fungsionalitas
yang diharapkan.
3.Controller akan melakukan segala aktifitas proses bisnis dan aktifitas control lainnya
seperti mengolah data dari Model, menyimpannya dalam variabel – variabel (manipulasi
data) lalu menampilkannya pada View, benar atau tidaknya hasil olahan data akan sangat
tergantung dari logika kerja aplikasi yang tersusun pada bagian Controller ini,
sehingga Controller bisa disebut sebagai bagian yang paling signifikan dari aplikasi
berbasis MVC. Dalam Controller ini menyediakan detail alur program dan bertanggung
jawab menampung events dari user melalui View dan mengupdate
komponen Model menggunakan data yang dimasukkan user.

Arsitektur MVC secara sederhana dirancang dan diadaptasi dalam penggunaan Web – Application.
Arsitektur yang dihasilkan disebut dengan Model 2 Architecture. Umumnya aplikasi Model 2
Architecture memiliki: Servlet Controller yang menyediakan akses tunggal terhadap keseluruhan
aplikasi. Controller ini bertanggungjawab menyediakan manajemen terpusat terhadap alur aplikasi,
penanganan security dan user management. Controller Servlet umumnya menggunakan konfigurasi
XML untuk menentukan alur aplikasi dan pemrosesan perintah. Hal itu membuat helper components
(berfungsi sebagai Command objects) terasosiasikan dengan user actions dan dibuat/dipanggil untuk
menangani actions yang terjadi, memanggil komponen Model sebagaimana diperlukan untuk
memisahkan antara Controller servlet dari Model.

Jenis MVC pada website :


1.Server Side MVC, biasa terjadi pada aplikasi web tradisional, yang tidak melibatkan
client side seperti Javascript, Jva 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 melakukan komunikasi 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.
3.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.

Contoh Framework MVC pada PHP :


•CakePHP yang bersifat open source ini juga mengadopsi konsep arsitektur
MVC(Model View Controller) dan ORM(Object Relational Mapping), yang mendukung
JavaScript, AJAX, RSS, Email dan XML yang sudah terintegrasi dalam core library-nya.
Aplikasi ini bisa dijalankan di PHP4 maupun PHP5, serta mendukung berbagai database
populer seperti MySQL, SQLite, PostSQL, Oracle, MS SQL, dan DB 2. Dengan menggunakan
modul tambahan seperti Security, Session, Access Control List (memungkinkan pengaturan
user dan hak aksesnya dalam aplikasi yang kita kembangkan dengan sarana yang lebih
mudah dipahami), Authentication memungkinkan kita membangun aplikasi dengan cepat
dan mudah, serta Scaffolding (fitur yang barangkali jarang dijumpai pada framework lain,
fitur ini bisa mengenerate semua yang dibutuhkan untuk membuat aplikasi (create, read,
update, delete) secara lengkap). Kekurangannya adalah pada bagian dokumentasi,
dokumentasi yang disediakan kurang begitu bagus namun sudah lengkap. Struktur kerja
MVC pada CakePHP yaitu, user melakukan request yang ditangani
oleh Controller, Controller memiliki banyak metode untuk menangani request
tersebut. Controller mengambil data pada database melalui Model, Model tersebut
memberikan data yang relevan ke dalam Controller. Controller akan mengolah data dan
memberikannya pada View (tampilan yang dipilih). View ini yang akan dilihat oleh
browsernya.
•Zend Framework merupakan pustaka berbasis PHP5 yang menggunakan arsitektur
pemrograman Model–View–Controller (MVC). Zend Framework dikembangkan oleh
perorangan dari developer yang berpengalaman dalam menangani aspek – aspek dari OOP
yang lebih kompleks, lebih fleksibel untuk masalah hierarki direktori, lebih mudah
digunakan dan dikembangkan karena tidak harus dipelajari semua untuk memakai
sebagian saja. Fokus dari Zend Framework adalah untuk membangun aplikasi web 2.0 dan
untuk memudahkan dalam mengakses API dari berbagai vendor seperti Google, Yahoo!,
Flickr dan Amazon. Modul yang digunakan sangat spesifik untuk web 2.0 saja, seperti
AJAX, Syndication, Web Services dan Search.
•Symfony Project merupakan framework yang ditujukan untuk PHP5, serta
menganut Model MVC. Dukungan AJAX juga tersedia, dokumentasi cukup baik serta
kompatibel terhadap berbagai sistem database. Kekurangan dari Symfony adalah proses
instalasi dan konfigurasi yang cukup rumit.
•Canvas (web framework) merupakan web aplikasi framework yang bersifat open source,
dapat dijalankan pada PHP 5, dapat mendukung konsep ORM, serta
menganut Model View Controller. Menggunakan MySQL sebagai default database
relasionalnya dan Smarty sebagai default template sistemnya, tapi tetap memungkinkan
untuk menggunakan database dan template sistem yang lainnya.
•CodeIgniter juga mendukung PHP4 dan PHP5, mengadopsi arsitektur MVC namun tidak
mendukung konsep ORM. Modul siap pakai yang disediakan seperti Session Management,
Email Sending, Image Manipulation Library, File Uploading, XML-RPC, Calendaring. Berbeda
dengan CakePHP, CodeIgniter ini tersedia dokumentasi yang sangat banyak dan
terorganisir dengan baik.
•Prado merupakan framework yang berbasis komponen dan Event-Driven, dengan konsep
yang mirip seperti pemrograman di ASP.Net dan Delphi yang mendukung pemakaian
database populer. Komponen di Prado merupakan gabungan dari file spesifikasi dalam
format XML, template HTML dan PHP class. Kekurangan dari Prado sendiri, hanya
mendukung PHP 5 saja.

Sumber :
https://chachataki.wordpress.com/2011/05/05/arsitektur-mvc/

Anda mungkin juga menyukai