Mengenal
MVC (Model View Controller)
MVC merupakan sebuah pattern yang membagi layer
presentasi(interface) dari sebuah aplikasi menjadi beberapa bagian komponen
berbeda. Setiap bagian pada MVC memiliki fungsi yang berbeda antara satu bagian
dengan bagian lainnya. Bagian-bagian tersebut diantaranya adlaah model, view
dan controller. MVC pertama kali diperkenalkan oleh Trygve Reenskaug pada tahun
1979 pada saat dia sedang mengerjakan project untuk Smaltalk di Xerox. Pada itu
MVC ditargetkan untuk merancang sebuah aplikasi berbasis desktop. Tetapi
seiring dengan berkembangnya bidang lain seperti aplikasi berbasis web, konsep
MVC juga banyak digunakan pada bidang lain. Kebanyakan konsep dari MVC yang diterapkan pada bidang aplikasi
berbasis web diterapkan pada framework-framework aplikasi web. Konsep MVC
digunakan bertujuan agar bagian dari sebuah program dapat independen terhadap
bagian program lainnya. Agar pada pengembangan awal perangkat lunak dapat
dipecah-pecah ke beberapa developer pada waktu yang bersamaan, begitu juga
dengan ketika tahap pengembangan selanjutnya.
Bagian-bagian MVC:
- 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. Model merupakan data yang dibutuhkan oleh view dari aplikasi sehingga view dapat menampilkan konten yang diinginkan. Dapat juga sdisebut sebgagai tempat dimana aplikasi mereferensikan data sebagai sebuah objek. Sebuah model tidak mengetahui tentang bagian lainnya (view dan controller)
- viewers adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman web.
- Controller, yang merupakan bagian yang menjembatani model dan view. Controller berisi perintah-perintah yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.
Jenis-Jenis MVC
·
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.
·
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 dayayang
lebih besar pula. Untuk selanjutnya arsitektur ini disebut dengan Mixed MVC 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.
Tujuan MVC
v Pengembangan simultan
Karena
MVC memisahkan berbagai komponen aplikasi, pengembang dapat bekerja secara
paralel pada komponen yang berbeda tanpa mempengaruhi atau memblokir satu sama
lain. Misalnya, tim bisa membagi pengembang mereka di antara front-end dan
back-end. Pengembang back-end dapat merancang struktur data dan bagaimana
pengguna berinteraksi dengannya tanpa memerlukan antarmuka pengguna yang akan
selesai. Sebaliknya, pengembang front-end mampu merancang dan menguji tata
letak aplikasi sebelum struktur data tersedia.
v Penggunaan ulang kode
Dengan
menciptakan komponen yang independen satu sama lain, pengembang dapat
menggunakan kembali komponen dengan cepat dan mudah di aplikasi lain. Tampilan
yang sama (atau serupa) untuk satu aplikasi dapat dilakukan refactored untuk
aplikasi lain dengan data yang berbeda karena tampilan hanya menangani
bagaimana data ditampilkan kepada pengguna.
Keuntungan dan Kerugian pada MVC
Keuntungan
- Perkembangan simultan - Beberapa pengembang dapat bekerja secara simultan pada model, kontroler dan tampilan.
- Kohesi tinggi - MVC memungkinkan pengelompokan logis tindakan terkait pada pengontrol bersama. Pandangan untuk model tertentu juga dikelompokkan bersama.
- Kopling rendah - Sifat kerangka MVC adalah sedemikian rupa sehingga ada kopling rendah di antara model, tampilan atau pengendali
- Kemudahan modifikasi - Karena pemisahan tanggung jawab, pengembangan atau modifikasi masa depan lebih mudah
- Beberapa tampilan untuk model - Model dapat memiliki banyak tampilan
Kerugian
- Navigasi kode - Navigasi kerangka kerja bisa rumit karena memperkenalkan lapisan abstraksi baru dan mengharuskan pengguna untuk menyesuaikan diri dengan kriteria penguraian MVC.
- Konsistensi multi artefak - Menguraikan fitur menjadi tiga artefak menyebabkan hamburan. Dengan demikian, mengharuskan pengembang untuk menjaga konsistensi berbagai representasi sekaligus.
- Kurva belajar yang diucapkan - Pengetahuan tentang beberapa teknologi menjadi norma. Pengembang menggunakan MVC perlu terampil dalam beberapa teknologi.
Sumber:
https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
0 Comments