Oct 3, 2012

Tutorial MVVM dengan Framework ZK


Sekapur Sirih tentang Framework ZK

Apa itu zk framework ?
ZK adalah sebuah library yang sangat bagus dan mudah untuk membuat aplikasi web berbasis java. ZK konsen terhadap user interface sehingga user ketika membangun aplikasi web sudah tidak lagi berususan dengan html, css dan javascript. Semua sudah ditangani oleh ZK. Kita bisa menggabungkan ZK dengan framework lain seperti spring, ejb, hibernate, jpa dan sebagainya.
Aku menggunakan zk mulai dari tahun 2010, waktu itu zk sudah mencapai versi 5. Ketinggalan memang, tetapi dengan aku menggunakan zk, sekarang proses pembuatan aplikasi menjadi cepat. Itu salah satu kelebihannya. Berikut ini kekuarangan dan kelebihan yang aku temukan. Ini berdasarkan temuanku sendiri.
 "Untuk Selengkapnya bisa di lihat di blog berikut "
http://ahsanfiles.wordpress.com/2010/11/18/sharing-kekurangan-dan-kelebihan-zk-framework/

Oke To the Point
MVVM

    Model View ViewModel (MVVM) adalah pola arsitektur yang digunakan dalam rekayasa perangkat lunak yang berasal dari Microsoft sebagai spesialisasi dari pola presentasi desain model yang diperkenalkan oleh Martin Fowler. Dengan didasarkan sebagian besar pada pola model-view-controller (MVC), MVVM ditargetkan pada platform pengembangan UI modern yang mendukung Event-driven programming (HTML5, Windows Presentation Foundation or WPF, ZK (framework), dan Silverlight).
Pola desain merupakan desain struktur utama yang membuat desain  object-oriented yang reusable (Gamma et al 1995). Pola desain berfokus pada permasalahan desain  objectoriented.

Model-View-Controller

Menurut Gamma et al (1995), Model-ViewController (MVC) digunakan untuk membangun antarmuka pengguna pada Smalltalk-80. Menurut Potel (1996), MVC adalah fundamental dari pola desain yang digunakan pada Smalltalk untuk mengimplementasikan objek graphical user interface (GUI), dan MVC digunakan lagi dan diadopsi ke dalam kelas pustaka GUI lainnya dan beberapa framework aplikasi. Model-View-Controller (MVC) adalah suatu rancangan aplikasi yang terbagi atas tiga bagian yaitu:  Model,  View, dan  Controller. MVC digunakan untuk memetakan input, proses, dan output ke dalam Antarmuka pengguna (Marston 2004 dalam Mamluati 2006). Hubungan di antara MVC dapat dilihat  pada gambar dibawah.
Elemen-elemen dari pola MVVM adalah:
•    Model
Model merupakan representasi dari proses bisnis di dalam aplikasi perangkat lunak. Lebih mudahnya, dapat juga disebutkan bahwa Model adalah bagian yang bertugas untuk mengolah data mentah menjadi data yang mengandung arti yang diinginkan oleh pengguna.
•    View
View mengatur antarmuka dari sistem mengatur  output  baik grafis maupun teks, merupakan hasil akhir yang dikirimkan ke pengguna aplikasi. Format HTML merupakan contoh  umum hasil akhir yang dikirimkan dalam aplikasi web.
•    Controller
Controller merepresentasikan permintaan yang datang dari pengguna berupa  input  dari keyboard  atau  mouse, memerintahkan  Model untuk memproses aksi berdasarkan  input, kemudian menampilkan hasil dari aksi tersebut ke View.

Model-View-ViewModel

        Model-View-ViewModel adalah variasi dari Model-View-Controller (MVC) yang dirancang sebagai  platform pengembangan antarmuka pengguna modern.
Menurut Horn (2010), pola  Model-ViewViewModel merupakan pola pengembangan terbaru turunan dari pola  Model-ViewController  (MVC). Pada MVC,  Controller berisi logika yang menangani  event dari antarmuka pengguna dan menangani penampilan data di  View. Pola desain MVVM memiliki kemampuan baru dalam  data-binding (pengikatan data) yang terdapat pada ViewModel.  Controller  pada pola desain MVVM diganti  ViewModel  yang tugasnya mengontrol penampilan dari View.

Model-View-Presenter

Model-View-Presenter (MVP) merupakan turunan  dari model pemrograman pada Smalltalk MVC  (Potel  et al 1996). Perbedaan dengan MVC ialah  Controller pada MVC diganti degan  Presenter. Presenter  pada MVP merupakan interpretasi kejadian dan pergerakan yang diinisiasi oleh pengguna dan menyediakan logika bisnis yang cocok dengan perintah untuk memanipulasi  Model. MVP  merupakan jenis pola desain antarmuka pengguna yang memasangkan  logika antarmuka pengguna.
Berdasarkan MSDN  Library (2009), varian dari MVP yaitu  Passive View dan  Supervising.
Controller.  Presenter pada  Passive View memperbaharui  View untuk memberi tahu perubahan kepada  Model. Interaksi dengan Model ditangani secara eksklusif oleh Presenter. View tidak mengetahui perubahan-perubahan di dalam Model.
View pada  Supervising Controller berinteraksi dengan  Model untuk melakukan pengikatan data sederhana yang dapat didefinisikan secara deklaratif, tanpa campur tangan  Presenter. Ilustrasi  Passive View dapat dilihat pada Gambar 2.




Gambar 2. Ilustrasi Passive View

Ilustrasi Supervising Controller dapat dilihat pada Gambar 3.

Gambar 3. Ilustrasi Supervising Controller

Menurut Rozzaq (2007), keuntungan dalam implementasi aplikasi menggunakan pola desain MVP adalah :
a.     Logika domain tidak tersebar di seluruh kode program antarmuka. Sehingga mengurangi duplikasi penulisan kode program dan lebih memudahkan dalam proses  debugging,  pemeliharaan, penambahan, dan penggunaan ulang kode.
b.     Antarmuka pengguna dapat diubah secara bebas dari  Model dalam kasus yang tidak merubah kebutuhan aplikasi yang mendasar.
c.     Pemisahan domain logika dengan dari kode program antarmuka pengguna sangat memudahkan pengujian unit (unit testing). Kekurangan MVP adalah adanya penambahan kode program yang terlibat dalam pemisahan antara Model, View,  dan  Presenter.
Namun, kekurangan ini bisa tertutupi dengan adanya manfaat yang muncul dari pemisahan kode program ini.

Untuk Tutorial MVVM bisa di download disini..