PEMBUATAN FRAMEWORK APLIKASI BISNIS BERDASARKAN POLA ACTIVE RECORD DAN KONSEP NAKED OBJECT Primadi Setiawan, Fajar Baskoro Jurusan Teknik Informatika Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember Email : primadisetiawan@gmail.com ABSTRAK Paradigma pemrograman berorientasi obyek telah meningkatkan dengan pesat penggunaan ulang dari kode program dalam rekayasa pembuatan software. Akan tetapi, paradigma tersebut hanya memberikan penggunaan ulang dari kode program pada level individual yang sangat kecil lingkupnya, yaitu komponen. Pada saat ini, penggunaan ulang dalam software telah bergeser dari penggunaan ulang dari sebuah komponen ke penggunaan ulang dari seluruh desain sistem atau struktur aplikasi. Sistem software yang mendukung penggunaan ulang pada level ini disebut Framework. Framework dibuat berangkat dari ide dasar bahwa : lebih mudah untuk membuat sistem dengan kebutuhan spesifik tertentu, apabila kita memulainya dari strukturstruktur yang umum dari domain permasalahan tertentu, dibandingkan apabila kita membuat semuanya mulai dari awal. Secara ringkas dapat dikatakan bahwa Framework adalah arsitektur umum untuk menyelesaikan masalah pada domain permasalahan tertentu, yang ditambahkan komponen-komponen diatasnya, untuk keperluan menyelesaikan kebutuhan spesifik tertentu. Framework berbeda dengan Class Library terutama dalam hal kontrol terhadap aplikasi. Pada Framework kontrol aplikasi ada pada framework tersebut, dan programmer yang menggunakan framework membuat komponen-komponen diatasnya; sedangkan pada Class Library, kontrol ada pada programmer yang memanfaatkan Class Library tersebut. Penelitian ini ditujukan untuk merancang/membuat Framework untuk pembuatan Aplikasi Bisnis, berdasarkan pola desain Active Record dan ide-ide dasar yang melatar belakangi lahirnya konsep Naked Object, dengan tujuan untuk mempercepat dan mempermudah pembuatan Aplikasi Bisnis, menstandarkan cara pemrograman, dan memungkinkan programmer aplikasi bisnis bisa lebih fokus pada sistem, bukan pada teknologi. Kata Kunci : Framework, Naked Object, Active Record PENDAHULUAN Penggunaan ulang dari kode program yang sebelumnya pernah dibuat untuk menyelesaikan permasalahan yang baru merupakan hal yang sangat penting dalam rekayasa pembuatan program. Semakin banyak kode program yang bisa kita gunakan ulang, akan semakin cepat dan efisien permasalahan baru dapat diselesaikan, di samping itu penggunaan ulang tersebut akan mengurangi waktu yang dibutuhkan untuk pencarian kesalahan, karena kode program yang kita gunakan ulang tersebut sudah
pernah diuji/ digunakan dengan baik sebelumnya, sehingga bisa kita asumsikan kecil kemungkinannya mengandung kesalahan. Perkembangan paradigma pemrograman berorientasi obyek telah meningkatkan dengan pesat tingkat penggunaan ulang dari kode program, karena secara mendasar paradigma tersebut menawarkan kemampuan yang tidak dimiliki oleh paradigma pemrograman prosedural, yaitu antara lain: enkapsulasi ( encapsulation), abstraksi (abstraction), kemampuan berubah bentuk ( polymorphism), dan generik ( generics) yang bisa kita temui pada bahasa pemrograman berorientasi obyek generasi baru (misal: Microsoft.NET 2.0 atau Java 1.5). Akan tetapi, paradigma tersebut hanya memberikan penggunaan ulang dari kode program pada level individual yang sangat kecil lingkupnya, yaitu komponen. Pada saat ini, penggunaan ulang dalam software telah bergeser dari penggunaan ulang dari sebuah komponen ke penggunaan ulang dari seluruh desain sistem atau struktur aplikasi. Sistem software yang mendukung penggunaan ulang pada level ini disebut Framework. Framework dibuat berangkat dari ide dasar bahwa : lebih mudah untuk membuat sistem dengan kebutuhan spesifik tertentu, apabila kita memulainya dari strukturstruktur yang umum dari domain permasalahan tertentu, dibandingkan apabila kita membuat semuanya mulai dari awal. Secara ringkas dapat dikatakan bahwa Framework adalah arsitektur umum untuk menyelesaikan masalah pada domain permasalahan tertentu, yang ditambahkan komponen-komponen diatasnya, untuk keperluan menyelesaikan kebutuhan spesifik tertentu. Pengertian tentang framework yang lain adalah seperti yang diberikan oleh Johnson dan Foote (1998) : Framework adalah kumpulan dari kelas-kelas yang membentuk desain abstrak dari solusi untuk menyelesaikan masalah pada kelompok masalah tertentu. Beberapa sudut pandang yang lain diantaranya adalah : Jika obyek adalah abstraksi yang terkadang sulit untuk dijelaskan, framework menawarkan sesuatu yang lebih dari itu. Perbedaan utama antara framework dan kumpulan kelas-kelas yang acak adalah pada bagaimana kelas-kelas tersebut bisa digunakan. Framework tidak hanya menjelaskan tentang obyek-obyek, tetapi juga menjelaskan bagaimana obyek-obyek tersebut saling berhubungan satu dengan yang lain Taligen Corp (1994). Kelas abstrak adalah desain untuk satu obyek. Framework adalah desain dari kumpulan obyek yang bekerjasama untuk tanggung jawab tertentu. Karena itu framework memiliki skala desain yang lebih luas daripada kelas-kelas abstrak. Framework adalah sebuah cara untuk menggunakan ulang desain pada level tinggi Johnson dan Russo (1991). Framework berbeda dengan Class Library terutama dalam hal kontrol terhadap aplikasi. Pada Framework, kontrol aplikasi ada pada framework tersebut, programmer membuat komponen-komponen yang berjalan diatas framework; sedangkan pada Class Library, kontrol ada pada programmer yang memanfaatkan Class Library tersebut. Tujuan utama penelitian ini adalah untuk membuat framework yang dapat digunakan pada domain permasalahan pembuatan aplikasi bisnis berdasarkan pola arsitektur naked object dan pola desain active record. Aplikasi bisnis adalah aplikasi yang dibuat untuk menyelesaikan masalah-masalah administrasi di dunia nyata. Contoh aplikasi bisnis misalnya: Sistem Penjualan, Sistem Persediaan, Sistem Perpustakaan, Sistem Kemahasiswaan, dsb. C-21-2
Konsep naked object[6] mempunyai kesederhanaan prinsip bahwa obyek yang tampak oleh user merupakan obyek sesungguhnya yang dibuat oleh programmer. Dengan menggunakan konsep naked object, proses desain aplikasi bisnis akan menjadi lebih mudah karena kelas yang harus dibuat sama dengan obyek-obyek yang dianggap ada oleh user. Pola desain active record[7] mempunyai kesederhanaan pola dalam memetakan kelas ke dalam tabel, yaitu sebuah kelas dipetakan kedalam satu tabel sedangkan satu obyek dipetakan kedalam satu baris data pada tabel. Dengan menggabungkan konsep naked object dan pola active record, akan didapatkan keuntungan sebagai berikut: - Programmer dapat mendefinisikan kelas sesuai obyek-obyek yang dikenali oleh user pada aplikasi bisnis. Obyek tersebut dibagi menjadi dua, yaitu dokumen dan laporan. - Pengendalian tampilan dilakukan oleh framework secara otomatis berdasarkan aturan yang telah didefinisikan pada kelas tersebut. - Kelas-kelas yang telah didefinisikan (menggunakan atribut) tersebut akan disimpan pada database menggunakan pola active record. ANALISIS DAN DESAIN Dilihat dari sudut pandang user, sebuah sistem aplikasi bisnis terdiri dari kumpulan dokumen dan laporan. Dokumen adalah suatu formulir yang harus diisi oleh user, dapat disimpan ke dalam database, diubah, dihapus dari database, dicetak, dll. Sedangkan laporan adalah informasi yang dihasilkan dari pengolahan dokumen berdasarkan kriteria atau aturan tertentu. Laporan ada dua macam, yaitu laporan daftar dokumen yang dibuat otomatis oleh framework, serta laporan khusus yang diminta oleh user dan dibuat oleh programmer. Sedangkan dari sudut pandang programmer, programmer butuh untuk bisa melakukan hal-hal berikut dalam pembuatan aplikasi bisnis: - Membuat dokumen - Membuat laporan - Membuat view - Membuat menu Gambar 1 di bawah ini menunjukkan interaksi antara user dan programmer dengan framework aplikasi bisnis yang dibuat dalam penelitian ini. Gambar 1. Arsitektur Sistem Aplikasi Bisnis yang Menggunakan Framework C-21-3
Dalam membuat dokumen dan laporan, programmer membuat kelas aturan dan presentasi yang diturunkan dari kelas abstrak yang disediakan oleh framework. Dalam membuat aturan dokumen, laporan, dan view, programmer melakukannya dengan cara meng-override virtual methods yang telah disediakan oleh framework. Virtual methods tersebut berfungsi sebagai hot spot framework. Penulisan definisi tabel dilakukan dengan menggunakan atribut di atas field atau property dari kelas yang akan disimpan pada database. Gambar 2 menunjukkan contoh potongan kode program untuk membuat dokumen master suplier. [Index("NamaSuplier", true)] public class MasterSuplier : ParentEntity private string _KodeSuplier; [AutoNumberKey("SP/YY-CCCC", "CCCC", "TglRegistrasi")] public string KodeSuplier get return _KodeSuplier; private DateTime _TglRegistrasi; [DataTypeDateTime] public DateTime TglRegistrasi get return _TglRegistrasi; private string _NamaSuplier; [DataTypeVarChar(50), EmptyError] public string NamaSuplier get return _NamaSuplier; set _NamaSuplier = value; Gambar 2. Potongan Kode Program untuk Membuat Dokumen Master Suplier Presentasi dari dokumen dan laporan dibuat dengan melakukan drag and drop dari object property dengan menggunakan fitur yang disediakan oleh Visual Studio. Programmer tidak perlu membuat kode program untuk navigasi dan controller pada layar tampilan karena sudah ditangani oleh framework. HASIL PERCOBAAN Framework yang telah dibuat dicoba untuk membuat aplikasi bisnis toko sederhana, dengan ruang lingkup sebagai berikut: Mencatat transaksi pembelian Mencatat transaksi penjualan Mencatat transaksi keluar masuk gudang Membuat laporan pembelian, penjualan, dan gudang. Pembuatan aplikasi bisnis tersebut memakan waktu 8 jam kerja. Aplikasi bisnis tersebut terdiri dari: Dokumen Master Barang Dokumen Master Suplier Dokumen Pembelian Dokumen Penjualan Dokumen Penyesuaian Persediaan Laporan Penjualan per Periode C-21-4
Laporan Pembelian per periode, Laporan Kartu Stok Laporan Posisi Stok Laporan Summary Mutasi Stok per Periode Dari percobaan tersebut dirasakan manfaat dan keuntungan dari penggunaan framework, antara lain: - Mempercepat pembuatan program aplikasi bisnis Kemampuan-kemampuan umum yang biasa dibutuhkan pada pembuatan aplikasi bisnis telah disediakan oleh framework, sehingga pembuatan aplikasi bisnis toko sederhana dapat diselesaikan dalam waktu kurang dari 8 jam kerja. - Menstandarkan cara pemrograman Programmer memiliki cara pandang yang sama terhadap bagaimana cara membuat aplikasi bisnis, yaitu dibangun dari obyek-obyek yang terdiri dari dokumen dan laporan. Bagaimana cara sebuah dokumen dan laporan dibuat sudah diarahkan dan diberi kerangka oleh Framework, sehingga cara pemrograman dapat distandarkan dan program dapat dibaca oleh orang lain dengan lebih mudah. - Membuat programmer aplikasi bisnis bisa lebih fokus pada sistem, bukan pada teknologi Aspek sistem memandang aplikasi bisnis sebagai kumpulan dari obyek-obyek yang berupa dokumen, laporan, atau proses. Aspek diluar aspek tersebut misalnya: database yang digunakan, teknologi presentasi ke user, dan lain-lain adalah aspek teknologi. Aspek sistem dibuat oleh programmer dengan memanfaatkan framework yang telah dibuat, sedangkan aspek teknologi diurusi oleh framework. Dengan teknik pemisahan seperti ini, maka programmer aplikasi bisnis dapat lebih berkonsentrasi pada aspek sistem, dan memungkinkan evaluasi dan pengembangan yang independen antara aspek sistem dan aspek teknologi. KESIMPULAN Penelitian ini memberikan kontribusi pada cara pembuatan aplikasi bisnis, yaitu dengan menggunakan framework berdasarkan pola active record dan konsep naked obyek, yang memandang aplikasi bisnis sebagai kumpulan dari dokumen dan laporan. Cara ini memungkinkan pembuatan aplikasi bisnis dapat dilakukan dengan lebih mudah, cepat, dan efisien dibandingkan dengan menggunakan cara biasa. DAFTAR PUSTAKA Stephen H. Kaisler. 2005. Software Paradigms. Wiley-Interscience. http://en.wikipedia.org/wiki/object-oriented_programming http://www.dotnetfun.com/articles/csharp/2.0/whatsnew20generics.aspx http://www.ibm.com/developerworks/java/library/j-djc02113.html Stephen H. Kaisler. 2005. Software Paradigms. Wiley-Interscience. Richard Pawson. June 2004. Naked Object. Thesis for the degree of PhD. University of Dublin, Trinity College. Martin Folwler. Pattern of Enterprise Application Architecture. C-21-5