ANALISA PERBANDINGAN EFISIENSI IMPLEMENTASI ARSITEKTUR SISTEM BERBASIS MVVM DAN CONVENTIONAL Baharudin Yusuf H 1), Kholid Fathoni, S.Kom 2) , Dwi Kurnia Basuki, S.Si, M.Kom 2) Mahasiswa Jurusan Teknik Informaika 1), Dosen Jurusan Teknik Informaika PENS-ITS 2) Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember (ITS) Kampus ITS Keputih Sukolilo Surabaya 60111 Telp: (+62)-31-5947280, fax (+62)-31-5946114 Email :
[email protected] Abstract – Sebuah pola arsitektur menjadi solusi untuk masalah pemrograman umum. Pola arsitektur yang akan diimplementasikan pada penelitian ini salah satunya adalah MVVM. MVVM merupakan suatu teknik pola arsitektur yang memisahkan antarmuka dan bisnis logic. Hal ini berbeda dengan Konvensional yang masih memasukkan logika bisnisnya di lapisan antarmuka. Di dalam MVVM ada 3 komponen utama yakni Model, View dan View Model. Index Terms – Konvensional, MVVM, Pola Arsitektur I. INTRODUCTION Pola arsitektur pemrograman merupakan desain struktur utama yang membuat desain object-oriented yang reusable (Gamma et al 1995). Pola arsitektur pemrograman berfokus pada permasalahan desain object-oriented. Saat ini telah banyak berkembang pola arsitektur pemrograman dalam pengembangan aplikasi. Pengembang menggunakan pola arsitektur pemrograman sesuai dengan permasalahan yang mereka hadapi dalam pengembangan aplikasi tersebut. Perlu adanya pemilihan pola arsitektur pemrograman yang cocok digunakan dalam mengembangkan sebuah aplikasi dengan mempertimbangkan kelebihan dan kekurangan pola arsitektur pemrograman tersebut. Pengembang juga memerlukan rujukan mengenai pola arsitektur pemrograman yang mereka pakai dalam pengembangan aplikasi. Selain itu pengembang memerlukan framework yang cocok untuk mengembangkan aplikasi mereka sehingga pengembang bisa memilih framework yang akan mereka gunakan. Pola arsitektur pemrograman untuk mengembangkan sebuah perangkat lunak sudah sangat banyak dan bermacam-macam. Untuk mengembangkan sebuah perangkat lunak pihak
pengembang dituntut untuk lebih selektif dalam memilih sebuah pengembangan pola arsitektur pemrograman yang digunakan untuk mengembangkan sebuah perangkat lunak. Pola arsitektur yang umum digunakan dalam pembangunan sebuah perangkat lunak adalah pola arsitektur pemrograman konvensional yang memasukkan logika bisnisnya pada desain antarmuka. Selain pola arsitektur pemrograman tersebut baru-baru ini Microsoft melaunching pola arsitektur pemrograman baru yang merujuk pada presentation model yakni MVVM (Model-ViewViewModel). Pola arsitektur pemrograman konvensional sudah sering digunakan oleh para pengembang perangkat lunak dengan kemudahannya. Hal ini dikarenakan pola arsitektur pemrograman MVVM tersebut masih asing, namun pada intinya pola arsitektur pemrograman MVVM ini membedakan antarmuka dan logika bisnisnya. Pada penelitian ini akan menganalisa perbandingan dari kedua sifat pola arsitektur pemrograman yang berbeda tersebut. II. METHODOLOGY Model View ViewModel (MVVM) adalah pola arsitektur yang digunakan dalam rekayasa perangkat lunak yang berasal dari Microsoft sebagai spesialisasi dari pola arsitektur Model Presentasi yang diperkenalkan oleh Martin Fowler. MVVM ditargetkan pada pengembangan platform user interface yang modern (Windows Presentation Foundation). Terdapat pengalaman para pengembang yang memiliki kebutuhan yang berbeda daripada pengembang yang menggunakan pola arsitektur konvensional (back end development). MVVM dirancang untuk menggunakan fungsi tertentu dalam WPF untuk lebih memudahkan pemisahan pembangunan View layer dari sisa pola dengan menghapus hampir semua code-behind pada View layer. Hal membutuhkan desainer
program untuk menggambar seperti Paint, maka sebenarnya sudah memiliki keahlian untuk membuat sebuah antar muka pengguna secara efektif. Pada pola arsitektur konvensional ini kode yang dikembangkan tidak bersifat modular sehingga harus tetap menulis kembali apabila mengembangkan aplikasi yang memiliki kesamaan. Dengan tidak bisanya code reuse ini lebih menyulitkan pengembang dalam hal pemeliharaan. Disamping itu pola arsitektur ini sangat cocok dengan model proses perangkat lunak berupa waterfall. Pengerjaan yang runtun dan sistematis adalah karakteristik pola arsitektur konvensional. Dengan demikian, proses pengembangan sebuah perangkat lunak tidak bisa dikerjakan secara bersamaan maupun secara acak.
Interaktif untuk fokus menulis View code, mereka dapat menggunakan WPF bahasa markup XAML dan membuat binding untuk ViewModel, yang ditulis dan dipelihara oleh pengembang aplikasi. Pemisahan dari beberapa bagian ini memungkinkan desainer interaktif untuk fokus pada kebutuhan UI daripada pemrograman atau logika bisnis yang memungkinkan dikembangkan oleh tim kerja. Sebelum memulai untuk mengimplementasikan pola arsitektur Model View View Model, kita akan menelaah bagaimana MVVM ini bekerja dan apa saja komponen-komponennya.Ada lima komponen penting dalam pola arsitektur MVVM. Komponen tersebut diantaranya Model, View, ViewModel, Commands dan Data Handler. Untuk lebih mempersingkat, selanjutnya commands disebut C dan DH untuk Data Handler. Hal ini juga untuk memahami bahwa definisi yang tepat untuk pola MVVM masih diperdebatkan dengan beberapa deskripsi dan posisi untuk cara yang terbaik mendefinisikan setiap komponen dari arsitektur. Ini menjamin deskripsi ini akan menyelaraskan dengan beberapa interpretasi. Pola selanjutnya merupakan arsitektur pemrograman yang digunakan dalam rekayasa perangkat lunak yang sangat simple yakni konvensional. Pada dasarnya arsitektur ini menggabungkan layer antarmuka dalam suatu aplikasi dengan layer logika bisnisnya. Biasanya arsitektur ini digunakan oleh bahasa pemrograman yang prosedural. Pada pemrograman procedural, program dibedakan antara bagian data dengan bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instrusi secara beruntun atau procedural. Paradigma pemrograman seperti ini dinamakan pemrograman procedural. Bahasa-bahasa tingkat tinggi seperti Visual Basic mendukung kegiatan pemrograman procedural, karena itu mereka dinamakan juga bahasa procedural. Arsitektur konvensional ini sangat cocok untuk pemula. Metode yang digunakan untuk membuat antar muka yang bersifat grafis Graphical User Interface (GUI). Daripada menulis berbaris-baris kode untuk menjelaskan pemunculan dan lokasi dari suatu elemen di dalam antar muka, dengan mudah dapat menambahkan object yang sebelumnya sudah dibangun ke dalam tempat dan posisi yang diinginkan di layar. Jika pernah menggunakan
III. DEVELOP 3.1 Perencanaan Sistem. Berikut adalah gambar untuk perencanaan sistem secara umum:
Gambar 3.1 Perencanaan
Bagian-bagian yang dijelaskan dalam perancangan system ini antara lain pembangunan dua buah perangkat lunak dengan menggunakan pola arsitektur konvensional dan pola arsitektur MVVM. Pembangunan yang dimaksudkan dalam hal ini adalah mulai dari perencanaan awal pembangunan sampai tahap rilis. Dijelaskan tentang aplikasi yang akan dikerjakan menggunakan dua pola arsitektur tersebut.
Perencanaan Perangkat Lunak • Pola Arsitektur Konvensional Pada dasarnya pola arsitektur konvensional ini adalah teknik dalam melakukan pemrograman secara non layer, artinya antarmuka dari aplikasi tersebut menjadi satu kesatuan dengan layer logika bisnisnya. Sehingga teknik ini dapat memudahkan pengembang yang masih tahap belajar. Gambar dibawah ini adalah gambaran arsitektur pola arsitektur konvensional. Untuk pengembangan selanjutnya akan menggunakan
2
arsitektur seperti gambar dibawah ini dengan menggunakan bahasa visual basic.
Berdasarkan gambar diatas View terdiri dari antarmuka dan logika antarmuka, ViewModel terdiri dari data binding sedangkan Model terdiri dari data. Untuk berinteraksi antara View dan ViewModel yakni melalui data binding, command. Sama seperti semua pola presentasi yang terpisah, kunci menggunakan MVVM yang efektif terletak pada pemahaman cara yang tepat mengaplikasikan kode pada kelas yang benar dan memahami kelas-kelas ini berinteraksi pada berbagai skenario. Bagian berikut menjelaskan tanggung jawab dan karakteristik dari masingmasing kelas dalam pola MVVM View adalah elemen visual seperti window, page, form, dan user control. View didefinisikan sebagai kontrol yang terkandung dalam visual layout dan style. ViewModel mendefinisikan command atau action yang direpresentasikan pada antarmuka dan pengguna dapat memanggilnya. Sebuah contoh ketika ViewModel menjalankan command submit yang memungkinkan pengguna mengirimkan data ke repositori data. View mewakili perintah tersebut dengan sebuah tombol sehingga pengguna dapat mengklik tombol untuk mengirim data. ViewModel disini merupakan kelas non visual dan bukan berasal dari kelas dasar WPF. Model dalam pola MVVM mengurusi logika bisnis dan data. Logika bisnis didefinisikan sebagai logika aplikasi yang berkaitan dengan pengambilan dan manajemen data aplikasi dan memastikan bahwa aturan bisnis yang memastikan konsistensi dan validitas data yang dikenakan. Untuk memaksimalkan penggunaan kembali jadi Model tidak mengandung logika aplikasi tertentu. Model ini merupakan kelas non visual yang mengengkapsulasi data aplikasi dan logika bisnis yang bertanggung jawab mengelola data aplikasi dan untuk memastikan konsistensi dan validitas. Kelas Model ini tidak secara langsung Mereference View atau ViewModel dan tidak memiliki ketergantungan saat diimplementasikan.
Gambar 3.2 Arsitektur Pola Konvensional Aplikasi Perpustakaan dan Beasiswa • Pola Arsitektur MVVM Dalam implementasinya, pola arsitektur MVVM ini merupakan pengembangan dari pola arsitektur presentasi model. Arsitektur ini pada dasarnya terdiri dari beberapa bagian yakni View yang merupakan user interface dari aplikasi, bagian ini menggunakan XAML (eXtensible Aplication Mark up Language). Bagian kedua yakni ViewModel, yang berisi data trasnsformator dari Model ke View dan juga binding data. Pada bagian ketiga yakni Model, Model merupakan proses bisnis di dalam aplikasi perangkat lunak. Lebih mudahnya, dapat juga disebutkan bahwa Model adalah bagian yang bertugas untuk mengolah data. Untuk ViewModel dan Model menggunakan bahasa C#. Hal tersebut seperti gambar dibawah ini
Pengembangan Perangkat Lunak • Pola Arsitektur Konvensional 1. Planning Planning ini merupakan tahapan awal dalam pengembangan perangkat lunak. Berikut merupakan rancangan sistem berupa sequence diagram dari pola arsitektur konvensional.
Gambar 3.3 Arsitektur Pola MVVM Aplikasi Perpustakaan dan Beasiswa
3
Gambar 3.4 Squence Diagram Pada Konvensional Arsitektur ini meliputi logika bisnis yang berada pada code behind dari form-form antarmukanya. Arsitektur seperti ini hanya berinteraksi dari Antarmuka dan logika bisnis dengan basis data.
melewati lima tahapan pembuatan, yakni View yang merupakan antarmuka yang langsung berinteraksi dengan user. View ini didefinisikan dalam bentuk XAML yang tidak memiliki logika bisnis di dalam code behind. View dapat membinding langsung data 2 arah. ViewModel pada dasarnya merupakan proses dan berhubungan langsung dengan Model. Sedangkan Model merupakan perwakilan data dan logika bisnis sehingga antarmuka sepenuhnya independen. Data service merupakan data akses dari program yang dibuat tadi dengan database atau XML.
2. Designing Desain disini merupakan langkah kedua setelah perencanaan. Desain ini terdiri dari desain antarmuka dan desain basis data. • Desain Antarmuka Di dalam Visual Basic, pembuatan antarmuka terdiri dari form-form yang sudah tersedia. Berikut salah satu form antarmuka pada aplikasi beasiswa. • Desain Basis Data Pada desain basis data, kedua aplikasi yang akan dibangun dengan arsitektur ini menggunakan Microsoft Access karena hanya merupakan mini aplikasi.
2. Designing • Desain Antarmuka Untuk desain antarmuka pola arsitektur ini tidak menggunakan windows form seperti tadi namun menggunakan windows presentation foundation • Desain Basis Data Pada desain basis data, kedua aplikasi yang akan dibangun dengan arsitektur MVVM ini menggunakan Microsoft SQL Server. Basis data ini dipilih karena sebagai acuan jika menggunakan aplikasi yang lebih enterprise dan basis data yang cocok dengan bahasa C#.
3. Coding Setelah desain, selanjutnya ke tahap coding. Tahapan ini merupakan tahapan yang mengimplementasikan arsitektur sebuah pemrograman dimana pada coding aplikasi ini menggunakan arsitektur konvensional yang codingnya terdapat pada satu layer dengan desain antarmuka atau form. •
3. Coding • View Dari segi kode, komponen View disini mewakili antarmuka yang akan dibuat. Dalam pengembangannya antarmuka yang dibangun dengan WPF menggunakan XAML (eXtensible Application Markup Language) • ViewModel Hal pertama yang kita butuhkan untuk membuka method pada ViewModel tersebut kita dapat binding click action dari button yang ada. Kode ViewModel merupakan turunan dari kelas ViewModelBase. Hal ini merupakan kode binding dasar untuk binding selanjutnya. Pada DelegateCommand() diatas merupakan private namun hal ini merupakan public method. ICommand interface yang menjadikan public method dan akan digunakan untuk selanjutnya. Hal ini yang dibutuhkan pada method ViewModel yang akan diakses oleh View control • Binding Binding data merupakan hubungan antara View dan ViewModel. Jika kita menggunakan metode binding ini, kita dimudahkan untuk tidak memberikan nama button atau textbox yang unik seperti yang biasa diterapkan pada pola arsitektur konvensional. • Model Model pada arsitektur ini berisi kelas data dan logika bisnis. Di dalam model ini terdapat tiga kelas yang berbeda yakni data context, table dan kelas model.
Pola Arsitektur MVVM
1. Planning Seperti pada yang dijelaskan pada arsitektur konvensional, planning disini tahapan awal rancangan sistem yang berupa squence diagram. Squence diagram ini merupakan suatu diagram interaksi yang memodelkan suatu skenario tunggal yang dijalankan pada sistem, diagram ini sangat cocok untuk mengimplementasikan pola arsitektur.
Gambar 3.5 Squence Diagram Pada MVVM Dari diagram di atas dapat disimpulkan bahwa dalam aplikasi berpola arsitektur MVVM
4
Data context adalah kelas partial yang merupakan bagian dari kelas lain yang memanfaatkannya. Data context digunakan pada grup kelas data source dan data manipulator. Setiap table pada basis data memiliki satu kelas data context. using using using using
Untuk kelas Model merupakan logika bisnis pada suatu aplikasi. Pada contoh kali ini kelas model berisi dengan kode dasar create, update, delete seperti contoh dibawah ini.
System; System.Collections.Generic; System.Linq; System.Text;
using System.Data.Linq; using Perpus.Models.Tables;
System; System.Collections.Generic; System.Linq; System.Text;
using using using using using
System.Collections.ObjectModel; Perpus.Models.Tables; Perpus.Models.Data_Context; System.Data.Linq; System.Windows;
namespace Perpus.Models { public class BukuModel : ObservableCollection<Buku> { public BukuModel() { BukuDataContext db = new BukuDataContext(AppConfig.CONNECTION_STR ING);
namespace Perpus.Models.Data_Context { public partial class BukuDataContext : DataContext { public Table<Buku> Buku; public BukuDataContext(String connString) : base(connString) { } } }
Gambar 3.6 Kode Data Context
Table<Buku> tabelBuku = db.GetTable<Buku>();
Kelas yang kedua dari Model adalah kelas table. Kelas ini berfungsi sebagai mapping table-table di dalam basis data. Setiap table memiliki satu kelas mapping. Mapping ini berguna untuk memudahkan akses data ke suatu sumber data. Dengan menggunakan mapping ini maka pengembang tidak akan kesulitan dalam melakukan perubahan terhadap salah satu file jika struktur table diubah. Misalkan table buku diubah maka yang diubah juga kelas buku. Berikut contoh kelas table. using using using using using
using using using using
var daftarBuku = from all in tabelBuku select all; // Linq in action! foreach (var buku in daftarBuku) { Add(buku); } } public void Tambah(int idbuku, string judul, string pengarang, string penerbit, string thnterbit, int eksemplar, int status) { BukuDataContext db = new BukuDataContext(AppConfig.CONNECTION_STR ING);
System; System.Collections.Generic; System.Linq; System.Text; System.Data.Linq.Mapping;
} }
namespace Perpus.Models.Tables { [Table] public class Buku { [Column(IsPrimaryKey = true)] public int idbuku { get; set; }
}
Gambar 3.8 Kode Kelas Model IV. RESULT
[Column] public string judul { get; set;
Pada tahap ini dilakukan analisa perbandingan antara pola arsitektur MVVM dan pola arsitektur konvensional.
} [Column] public string pengarang { get; set; }
4.1 Reusability [Column] public string penerbit { get;
Pada parameter pembanding untuk yang pertama ini merupakan parameter yang sangat penting dalam membangun suatu perangkat lunak karena reusability suatu komponen perangkat lunak akan mempengaruhi semua resource kedepannya. Di dalam rekayasa perangkat lunak,
set; }
Gambar 3.7 Kode Kelas Table Mapping
5
Perangkat Keras Implementasi
reusability dalam segmen kode dapat menambahkan fungsionalitas baru dengan sedikit modifikasi atau tidak dalam pengembangan program dilain waktu. Kemampuan untuk reuse tergantung pada kemampuan untuk membangun program yang lebih besar dari bagian-bagian yang kecil dan mampu mengidentifikasi kesamaan antar bagian. Reusability ini sering digunakan sebagai karakteristik sebuah perangkat lunak.
WAKTU
Tahap
Perangkat Lunak Implementasi
- Visual Studio 6 - Bahasa VB - Ms Access
Planning Design Coding Testing Release Total
Perpustakaan MVVM Konvesional 2 hari 2 hari 4 hari 2 hari 12 hari 9 hari 1 hari 1 hari 1 hari 1 hari 20 hari 15 hari
Beasiswa MVVM Konvensional 2 hari 2 hari 3 hari 2 hari 12 hari 9 hari 1 hari 1 hari 1 hari 1 hari 19 hari 15 hari
Biaya merupakan hal yang terpenting dari sebuah pengembangan perangkat lunak sehingga para pengembang menggunakan banyak strategi dalam menekan biaya seminim dan serendah mungkin dan memanfaatkan waktu secara efektif dan efisien sehingga menghasilkan kinerja yang tinggi, handal dan tepat waktu. Parameter biaya disini menekankan pada efektivitas orang terhadap waktu. Dalam penelitian ini aplikasi konvensional dibangun oleh tim yang terdiri dari tiga anggota. Pada pola arsitektur MVVM, efektivitas orang terhadap waktu pengerjaan sangat besar pengaruhnya. Jika pengembangan dilakukan dengan satu orang saja, pola arsitektur ini sangat tidak efisen. Selain itu satu orang pengembang harus memiliki multi skill sehingga tidak bisa fokus pada setiap tahapan. Ini sangat berbeda sekali apabila pola arsitektur ini dikembangkan oleh sebuah tim. Jika satu tim terdapat tiga orang pengembang seperti halnya pengembangan dengan pola arsitektur konvensional maka akan lebih efisen. Pengembangan dengan tim yang menggunakan pola arsitektur MVVM lebih efisien daripada pola arsitektur konvensional. Hal ini tak lepas dari komponen pola arsitektur MVVM yang independen sehingga tiga komponen utamanya dapat dikerjakan secara bersamaan yakni View sebagai antarmuka, ViewModel sebagai logika bisnis dan Model sebagai mapping data tanpa harus menunggu selesainya dari tahap sebelumnya. Pola arsitektur seperti ini harus mematangkan tahap perencanaan agar ketiga komponen yang dikembangkan secara bersamaan
Resource yang dimaksud disini merupakan sumber daya yang dibutuhkan dalam pengembangan dan implementasi pada user baik itu perangkat lunak maupun perangkat keras Tabel 4.2 Kebutuhan Resource - Visual Studio 2008 - Bahasa C# dengan WPF - Ms SQL Express - Windows XP - .Net Framework 3.0
- RAM 128 MB
4.5 Biaya
4.3 Resource
Konvensional
- RAM 512 MB - Grafik DirectX9
Parameter pembanding yang ke empat ini merupakan salah satu pembanding yang pokok dalam pengembangan sebuah perangkat lunak. Berikut rincian waktu yang diperlukan dalam pengembangan sistem informasi perpustakaan dan beasiswa dengan pola arsitektur MVVM dan konvensional. Tabel 4.3 Matriks Waktu Pengembangan
Aplikasi yang dikembangkan dengan pola desain konvensional, pada penelitian ini dikembangkan dengan bahasa pemrograman visual basic yang menggunakan arsitektur program prosedural. Arsitektur program ini memberikan serangkaian perintah yang berurutan. Pada prosedural, program dibedakan antara bagian data dengan bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instrusi secara beruntun. Pada dasarnya arsitektur program prosedural ini diselesaikan dalam bentuk prosedur dan program dipecah-pecah ke dalam sub program yang lebih sederhana. Aplikasi yang dikembangkan dengan pola desain Model View ViewModel pada dasarnya menggunakan arsitektur program model presentasi dengan orientasi objek. Model presentasi ini pengembangan dari paradigma pemrograman orientasi objek yang diciptakan oleh Martin Fowler. Model presentasi ini memungkinkan untuk membuat hirarki kelas terpisah untuk aplikasi spesifik. Yang pertama menggunakan tampilan untuk menyimpan state antarmuka dan tempat yang kedua dalam kelas logika. Kedua bagian ini selalu tersinkronisasi sehingga bisa selalu update.
MVVM
- Processor 200 MHz
4.4 Waktu
4.2 Arsitektur Program
Kebutuhan Resource Prangkat Lunak Pengembangan
- Processor 800 MHz
- Windows 98
6
tidak mengalami duplikasi. Setelah ketiga tahapan selesai, terdapat tahapan tambahan yang tidak ada pada pola arsitektur konvensional yakni tahap integrasi. Tahapan ini berfungsi untuk mengintegrasikan ketiga komponen yang dikerjakan bersamaan tadi. Tahapan ini biasanya menghabiskan waktu satu sampai dua hari. Tahap ini mengimplementasikan binding data yang menghubungkan antarmuka dan logika bisnis.
mamp menangani berbagai masalah dan perangkat lunak enterprise dapat mengintegrasikan keseluruhan sub rutin karena integrasi sangat membantu pengguna. Indikator selanjutnya adalah cross platform karena pengguna aplikasi enterprise adalah banyak pihak dengan berbagai macam platform. Baik itu platform sistem operasi maupun platform berbasis web, desktop dan mobile. Indikator yang paling penting dalam perangkat lunak enterprise yakni fleksibilitas. Fleksibilitas ini termasuk dalam pemeliharaan. Dalam hal pemeliharaan, sistem harus bisa mengimplementasikan modul baru / mengganti dan atau mengembangkan sistem lama. Fleksibilitas ini juga mendukung korektif (pengoreksian kesalahan kode), adaptif (beradaptasi terhadap lingkungan baru dan fungsionality improvment yakni penambahan modul baru
4.6 Skalabilitas Perangkat Lunak Skalabilitas sebuah aplikasi dikatakan cocok dengan pola arsitektur MVVM adalah perangkat lunak yang enterprise. Terdapat beberapa indikator sebuah perangkat lunak dikatakan enterprise. Dalam data kuisioner yang telah didapat sebagai berikut : 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0%
V. CONCLUSION Pola arsitektur MVVM memberikan kelebihankelebihan yakni dengan menggunakan pola arsitektur ini waktu yang digunakan dalam pengembangan sebuah aplikasi enterprise dapat lebih singkat jika dalam tim karena programer dan desainer dapat bekerja secara independen tanpa harus menunggu selesainya desain antarmukanya dulu. Kelebihan yang lain pola arsitektur ini lebih mudah dalam maintenance karena kode yang lebih terstruktur dan modular. Disamping kelebihan tersebut pola arsitektur MVVM juga terdapat kekurangannya yakni jika pola arsitektur ini digunakan mengembangkan simple aplikasi maka akan overkill dan pola arsitektur ini tergolong tidak umum jadi masih terbatas dalam pengembangannya. Jadi untuk aplikasi yang tidak enterprise lebih cocok menggunakan pola arsitektur konvensional yang lebih familiar. Disamping itu kebutuhan resource yang lebih besar menjadi tantangan dalam pengembangan pola arsitektur MVVM.
Series1
Gambar 4.1 Grafik Indikator Skalabilitas Perangkat Lunak
No 1 2 3 4 5 6
Tabel 4.4 Keterangan Indikator Skalabilitas Perangkat Lunak Indikator Keterangan Source Line of Code Minimal 5000 Multi Modul Minimal 5 Sistem Terintegrasi Ya Cross Platform Ya Fleksibel Ya Waktu Pengerjaan Minimal 2 Bulan
Gambar dan tabel diatas merupakan kalkulasi rata-rata perangkat lunak dapat dikatakan enterprise. Berdasarkan hasil kuisioner yang dihimpun dari praktisi software development, pada dasarnya perangkat lunak enterprise memiliki indikator multi modul, sistem terintegrasi, cross platform dan fleksibel. Indikator SLOC (Source Line of Code) dan waktu tidak bisa dibuat sebagai acuan karena hasil kuisioner kurang dari 50% responden. Indikator yang pertama yakni multi modul, jumlah minimal modul dapat dikatakan enterprise yakni 5 modul. Modul ini biasanya digambarkan seperti modul keuangan, modul proses, modul laporan. Indikator selanjutnya yakni sistem terintegrasi, sistem terintegrasi ini
VI. REFERENCES [1]. [2]. [3].
[4].
[5].
7
MacDonald, Matthew. 2008. Pro WPF in C# 2008, California : Apress Hartanto, Budi. 2008. Memahami Visual C#.Net secara mudah, Yogyakarta : ANDI Egyetem, Debreceni. 2009. Using Silverlight and XAML in MVVM Patterns, Debrecen : Informatika Kar Zulkaryanto, Eko. 2010. Implementasi Pola Desain Model-View-View Model, Bogor : Institut Pertanian Bogor Sandiarsa, I Ketut. 2007. Rancang Bangun Data Layers N-Tier Web Mash-Up Untuk
[6].
[7]. [8].
Aplikasi Slide Gambar Online, Bali : Universitas Udayana Sorensen, Erik. 2009. Model-ViewViewModel (MVVM) Design Pattern using Windows Presentation Foundation (WPF) Technology, Denmark : Department of Computer EngineeringUniversity of Southern Denmark Smith, Josh. 2009.Advanced MVVM, America Troelsen, Andrew. 2011. Pro Expression Blend 4, California : Apress
[9].
Sommerville, Ian. 2004. Software Engineering, England: Addison Wesley [10]. Brurnfield, Bob (dkk.). 2011. Building Modular MVVM Applications using Windows Presentation Foundation and Microsoft Silverlight, California: Microsoft [11]. Garofalo, Raffaele. 2011.Building Enterprise Aplicationswith Windows Presentation Foundation and the Model View ViewModel Pattern, California : Microsoft [12]. Galin,Daniele. 2004. Software Quality Assurance, England : Essex CM20 2 JE
8