h1

BERKENALAN DENGAN ASP MVC (bagian I)

21 Juli 2009

OK, sekarang kembali ke Framework MVC. Kali ini penulis ingin mengajak Anda untuk bersama belajar mengenai Framework MVC yang dibundle Microsoft dalam produk ASP.NET MVC nya. Sebelum lebih jauh berbicara mengenai ASP.NET MVC, mari kita menyegarkan ingatan kita mengenai MVC.

MVC merupakan singkatan dari Model-View-Controller. Menurut penulis MVC ini dapat didefinisikan sebagai sebuah architectural pattern dan juga sebagai sebuah desain pattern, tergantung bagaimana cara mengimplementasikan. Web programming klasik sekalipun dapat mengimplementasikan desain pattern MVC ini. Tentu saja dengan segala modifikasi dan keterbatasannya. Hal ini tidak akan kita bahas di sini.

Dalam implementasinya MVC akan memisahkan aplikasi ke dalam beberapa layer atau bagian. Mirip dengan konsep n-tier.

  • VIEW : merupakan layer yang bertugas untuk menampilkan data. Pada umumnya berupa kode HTML atau XHTML.
  • CONTROLLER : merupakan layer yang bertugas mengatur semua interaksi dan proses dari pengguna dan dari MODEL.
  • MODEL : merupakan bagian yang merepresntasikan content, yang disimpan dalam database atau dalam bentuk XML.

Berikut gambaran diagramnya :

MVC pictures

MVC pictures

Keterangan  :

Interaksi pengguna dengan program digambarkan dengan arah panah besar yang menuju View. Kemudian View memanggil Controller. Selanjutnya Controller akan membuat atau memanipulasi Model. Model ini akan diberikan kepada View untuk ditampilkan kepada pengguna.

Tugas View adalah menangani tampilan program dan interaksi antara pengguna dengan program. Controller melakukan koordinasi antara View dan Model. Sedangkan Model adalah bagian yang bekerja di belakang layar untuk memenuhi permintaan pengguna  dalam sebuah interaksi.

Tujuan dari pembagian program ke dalam tiga bagian besar ini adalah untuk memisahkan fokus perhatian, tanggung jawab, dan logic ke dalam bagian masing-masing. View hanya fokus kepada tampilan dan menangani interaksi dengan pengguna. Model hanya fokus kepada manipulasi objek-objek non-visual dan proses logika bisnis. Namun demikian hal ini tentu saja menghasilkan dependensi diantara ketiga layer tersebut. View bergantung kepada Model, tetapi Model tidak bergantung kepada View. Controller dan View saling bergantung satu sama lain. View memerlukan Controller untuk ‘meneruskan’ input dari pengguna ke Model, sedangkan Controller memerlukan View untuk meng-update tampilan setelah Model selesai dengan tugasnya. Controller bergantung kepada Model karena perlu memanggil Model dan memberikannya kepada View. Sebaliknya Model tidak bergantung kepada Controller.  Lebih jelas Anda dapat membaca di ebook Mengenal ASP MVC karangan Agus Suhanto.

ASP.NET MVC sendiri merupakan sebuah architectural pattern karena menyediakan sebuah framework yang memaksa pengguna untuk mengimplementasikan pendekatan MVC dalam pengembangan web application. Namun terkadang pendekatan MVC ini sering dicampur adukan dengan pendekatan MVP (Model View Presenter). MVP sendiri lebih merupakan sebuah desain pattern yang dapat diterapkan pada ASP.NET WebForm. Perbedaan antara MVC dan MVP adalah pada tugas Presenter pada MVP yang menggantikan Controller pada MVC. Presenter pada MVP menghandle komunikasi antara Model dan View. Jadi tidak ada hubungan dependensi antara View dan Model karena telah dijembatani oleh Presenter. Berikut contoh diagramnya implementasinya.

Gambar Diagram Implementasi MVC

Gambar Diagram Implementasi MVC

Gambar Diagram Implementasi MVP

Gambar Diagram Implementasi MVP

Semoga bisa memberi gambaran yang lebih jelas.

Iklan

One comment

  1. bos bisa bantu gw tentang MVC pake html-php-sql gag??

    gw bingung banget soalnya emang ga tw dasarnya bos…

    email k gw ja bos,thx….



Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: