Mengenal MVC (Model View Controller)

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:
  1. 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)
  2. viewers adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman web.
  3. 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 JavascriptJava appletFlash, 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


Post a Comment

0 Comments