pengerjaan data access, karena hanya bisa mereferensi dari salah satu layer. Sebagai batasan dalam penelitian ini, penerapan teknologi WPF hanya untuk
desktop dan data layer menggunakan Reflection .NET.
2. Tinjauan Pustaka
Berhubungan dengan perancangan Arsitektur Multi-Tier pada Sistem Informasi Akuntansi adalah desain Buku Besar pada PT. Shangyang Perkasa yang
dilakukan oleh Budiman. Perusahaan ini menjalankan bisnisnya di bidang kesehatan. Produk yang dihasilkan merupakan produk-produk makanan dan
minuman kesehatan yang menjangkau di setiap titik kritis tahap pertumbuhan dan perkembangan manusia. Produk-produk yang dihasilkan berupa susu untuk bayi,
anak-anak, remaja, ibu hamil dan menyusui, beberapa kebutuhan khusus kaum manula, serta biskuit dan sereal bayi. PT. Shangyang Perkasa menggunakan
desain Arsitektur Multi-Tier untuk mengintegrasikan dalam penyusunan buku besar [2]
Penelitian yang lainnya, yaitu pada jurnal dengan judul Sistem Monitoring Mahasiswa Menggunakan WPF dan Web Service yang dilakukan oleh
Khanna. Implentasi WPF pada penelitiaan ini menyajikan kegunaan WPF untuk mengembangan aplikasi klien dengan cara baru. WPF memberikan tampilan dan
nuansa yang sama untuk designer dan developer, dimana sebelumnya bekerja secara sendiri- sendiri. Dengan WPF, developer diberikan beberapa kemudahan
untuk merancang dan mengembangkan aplikasi berbasis WPF [3].
Perbedaan penelitian ini dari penelitian – penelitian terdahulu adalah dalam penelitian ini, penulis ingin merancang sebuah aplikasi yang bisa
diterapkan dalam Koperasi Simpan Pinjam Harta Sentosa Salatiga. Dalam penerapan arsitektur multi-tier, menggunakan teknologi WPF pada bagian
presentation-
tier dan Reflection .NET untuk pembagian pengerjaan dalam pengkodean pada data-tier.
Multi-tier
Arsitektur multi-tier sebagai sebuah arsitektur aplikasi yang memiliki komponen software yang berbeda, terorganisasi pada tiers, menyediakan fungsi
yang terdedikasi [4]. Sebuah arsitektur multi-tier adalah arsitektur tiga-tingkat yang terdiri dari manajemen data layer kebanyakan meliputi satu atau beberapa
database server, business logic dan presentation tier fungsi UI. Secara konsep, hasil arsitektur multi-tier adalah pengembangan dari aplikasi client server. Tier
adalah layer fisik yang terpisah dari sistem yang lebih besar, biasanya tier – tier tersebut di bagi menjadi 3 yaitu Presentation Tier, BusinessMiddle-Tier dan Data
Tier
.
Gambar 1 Arsitektur multi-tier [4]
Ciri khas dalam arsitektur multi-tier adalah pemisahan antara data tier data tier
, business-tier, dan client-tierpresentation-tier. Manfaat utama dari aplikasi multi-tier
adalah setiap tingkatan dapat digunakan pada heterogen yang berbeda dan didistribusikan platform. Performa setiap bagian, terutama untuk tingkat
aplikasi, didukung dengan mendistribusikan permintaan di server aplikasi yang berbeda.
Model three-tier menambahkan komponen ketiga diantara aplikasi client dengan aplikasi server yang disebut middle tier atau layanan bisnis. Oleh karena
itu, dalam model ini pemrosesan dibagi di antara tiga lapisan atau lebih. Hal ini dapat diimplementasikan oleh operator yang menerima panggilan
dari lapisan berikutnya yang lebih tinggi. Ketika arsitektur multi-tier yang digunakan dalam bisnis konteks, setiap layer harus mendukung interaksi
transaksional. Karena distribusi software bawaan komponen di seluruh lapisan dan berpotensi bahkan dalam setiap lapisan, transaksi terdistribusi diperlukan.
Keuntungan menggunakan arsitektur multi-tier diantaranya adalah pengkodean yang teratur secara logika, lebih mudah pada saat maintenance, lebih
mudah dalam menggunakan kembali kode yang sudah dibuat, lebih mudah dalam pembagian pengerjaan secara berkelompok, dan tingkat kejelasan dalam
pengkodean.
Presentation-tier berisi komponen yang menerapkan dan menampilkan user
interface dan mengelola interaksi pengguna. Lapisan ini mencakup kontrol untuk input pengguna dan tampilan, selain komponen yang mengatur interaksi
pengguna. Di dalam komponen presentation tier mencangkup User Interface Component
yang digunakan untuk menampilkan informasi untuk user dan
Presentation Logic Component yang mengenkapsulasi data dari business layer
atau presentation entity yang mengenkapsulasi business logic dan data di dalam sebuah form untuk mempermudah di pakai oleh presentation layer.
Jenis aplikasi yang berbeda juga mempengaruhi penerapan teknologi yang berbeda, untuk dapat digunakan dalam presentation layer. Dalam penelitian ini,
teknolgi yang akan di pakai adalah Windows Presentation Foundation WPF untuk mengembangkan pada bagian presentation tier.
Windows Presentation Foundation WPF adalah salah satu fitur dari .Net Framework 3.0 yang didesain untuk mengganti fungsi Graphics Device Interface
GDI. WPF dibuat berdasarkan DirectX sehingga membuat User Interface UI yang transparan, tombol yang unik, manjadi hal yang mudah. WPF dapat dibuat
dengan menggunakan Extensible Application Markup Language XAML, yaitu XML yang khusus digunakan untuk pembuatan WPF. Dalam pembuatan WPF,
setiap file XAML memiliki Code Behind masing-masing sehingga dapat terlihat jelas pemisahan antara bagian desain dengan bagian business logic.
Sebelum WPF dibuat, menciptakan tampilan bagi pengguna windows akan membutuhkan beberapa teknologi yang berbeda. Berikut adalah gambar yang
memperlihatkan perbedaan tersebut.
Gambar 2. Perbedaan tiap teknologi [5]
Windows Presentation Foundation atau WPF adalah sebuah subsistem grafis didalam .NET Framework 3.0 atau yang lebih baru dan berkaitan secara
langsung dengan bahasa aplikasi XAML. XAML adalah singkatan dari extensible application markup language.
XAML digunakan secara ekstensif di dalam teknologi .NET Framework 3.0, khususnya Windows Presentation Foundation WPF dan Windows
Workflow Foundation WF. Di dalam WPF, XAML digunakan sebagai sebuah bahasa markup interface pengguna untuk mendefinisikan elemen interface
pengguna, data binding, eventing, dan fitur-fitur lain. Dalam WF, workflow dapat didefinisikan dengan menggunakan XAML.
Elemen XAML memetakan langsung ke instance objek Common Language Runtime
, sementara atribut XAML memetakan ke properti dan event
Common Language Runtime di atas objek-objek tersebut. File XAML dapat diciptakan dan disunting dengan alat desain visual semacam Microsoft Expression
Blend , Microsoft Visual Studio, dan desainer visual Windows Workflow
Foundation yang dapat di-hosting-kan. XAML juga dapat diciptakan dan disunting dengan penyunting teks standar, penyunting kode semacam XAMLPad dan
Kaxaml , atau dengan penyunting grafis semacam Vectropy
File XAML dapat dikompilasi ke dalam file .baml Binary XAML yang dapat dimasukkan sebagai sumber daya ke dalam assembly .NET Framework.
Pada saat run-time, mesin framework mengekstrak file .baml dari assembly tersebut, mem-parse, dan menciptakan sebuah pohon visual WPF atau workflow.
Berbeda dengan
Windows Forms,
WPF memanfaatkan
dan mengeksploitasi DirectX 9.0, tetapi dikemas menjadi API yang terstruktur yang
secara pemakaian sama dengan pemakaian class-class pada Windows Forms.
Gambar 3 Arstitekur Windows Presentation Foundation [6]
Inti dari arsitektur Windows Presentation Foundation adalah Presentation Framework, Presentation Core
dan MIL. Dari ketiga bagian inti tersebut, MIL Core
adalah bagian yang tidak teratur karena dapat berhubungan dengan DirectX lebih dekat. MIL Core sendiri berada disekitar DirectX dan dapat berhadapan
langsung dengan CLR Common Language Runtime . Presentation Core mengandung semua dari class dan interface dari setiap form yang berbasis WPF.
Presentation
Core sendiri tidak mengandung user interface control, lebih seperti pondasi dari setiap control yang dibuat.Presentation Framework adalah subsistem
dari komponen user interface yang mempunyai lebih banyak library dari setiap control yang dapat digunakan pada WPF.
Komponen lain yang ada pada gambar 3 selain yang di beri warna hitam tidak begitu penting, karena tidak terkait khusus dengan WPF. Kernel
menyediakan low-level operating system services seperti input dan output pada umumnya. User32 menyediakan aplikasi untuk menciptakan graphical user
interface
GUI . Ketika membuat sebuah aplikasi, dibutuhkan untuk memulai dengan logical
architecture yang mengklarifikasi aturan dari setiap komponen yang dibutuhkan,
membagi secara functionality, jadi bisa membagi pengerjaan secara tim untuk bekjerja bersama secara efektif dan memudahkan untuk melakukan perawatan
terhadap sistem. Logical archiutecture juga harus memiliki layer yang mencukupi untuk fleksibel dalam memilih sebuah physical architecture setelah logical
architecture
terpenuhi. Business Logic memiliki bagian dalam mengatur komponen yang berlainan menjadi satu bagian dalam sistem.
Data access berhubungan dengan database untuk mengambil, menambah,
merubah dan menghapus data. Data access tidak secara langsung mengatur atau menyimpan data, hanya untuk memberikan tempat antara business logic dan
database.
Data access memberikan data ke bagian presentation berdasarkan perintah
dari business logic. Dalam beberapa kasus, data access akan dipasang pada mesin yang berbeda dengan business logic dan presentation. Tetapi antara bagian
presentation, business logic dan data access tidak menutup kemungkinan untuk
dipasang dalam satu mesin yang sama. Secara logika menentukan data access terpisah antara business logic dan
presentation . Pemisahan ini memberikan fleksibilitas untuk memilih apakah
nantinya untuk menjalankan kode data access pada mesin yang sama sebagai business logic
, atau pada mesin yang terpisah. Hal ini juga memudahkan untuk mengganti data source tanpa mempengaruhi aplikasi. Hal ini penting karena
memungkinkan mengganti database vendor ke database lainnya pada poin yang sama.
Pemisahan ini berguna untuk alasan lain, misalanya Microsoft memiliki kebiasaan untuk mengganti teknologi data access setiap tiga tahun. Dengan
demikian setiap developer yang menggunakan tools dari Microsoft memerlukan untuk menulis ulang kode dari data access supaya tetap bisa berhubungan dengan
database
yang terbaru. Dengan menempatkan data access pada kode lapisan tertentu, dampak dari perubahan yang terjadi pada aplikasi akan lebih kecil.
Mekanisme dari data access memiliki ciri khas mengimplementasikan menjadi sebagian dari services, dengan prosedur yang berhubungan dengan
business logic untuk menambah, merubah, ata menghapus data. Meskipun setiap
fungsi sering dibangun menggunakan objek, penting untuk mengenali desain untuk data access yang efektif. Usaha dalam pembuatan desain terkadang
membuat kompleksitas suatu sistem meningkat atau menurun. Oleh karena itu setiap kode dari data access tetap teratur.
Terpisahnya antara data access dengan business object menyebabkan bagian data access tidak dapat mengenali objek yang ada pada business object,
oleh karena itu pada bagian data access menggunakan teknologi Reflection. Reflection
adalah teknologi yang dibuat dalam .NET Framework. Yang memungkinkan kita untuk menulis kode yang dapat memeriksa dan berinteraksi
dengan kode lainnya. Kita dapat menggunakan Reflection untuk mendapatkan daftar semua kelas dalam assembly, dan semua metode atau properti pada masing-
masing kelas. Kita dapat menggunakan Reflection untuk mendapatkan daftar semua variabel misalnya dalam objek, dan kemudian kita dapat menggunakan
refleksi untuk mengambil atau mengubah nilai dari variabel tersebut. [7]
Segala sesuatu di. NET memiliki tipe, dan bahwa semua jenis pada akhirnya berasal dari tipe dasar, System.Object. Ini termasuk jenis nilai sederhana
seperti Integer atau Single, lebih kompleks lagi jenis seperti String atau Tanggal, dan jenis lain seperti Enum atau Structure. Hal ini juga termasuk jenis yang kita
buat menggunakan kelas.
Termasuk kelas bernama System.Type, yang mewakili jenis informasi tentang segala jenis. Kita dapat menggunakan fungsi GetType untuk mengambil
Object Type yang mewakili data tertentu. Ketika kita mempunyai object type yang
merepresentasikan tipe data untung tipe data yang lain atau sebuah objek, kita dapat menggunakan reflection untuk mendapatkan informasi dari suatu objek.
Dalam penelitian ini Reflection digunakan untuk mengetahui isi dari business object
karena terpisahnya antara data access dan business object. Pada program layer business object mereferensikan dari layer data access, sehingga di
data access tidak bisa mengetahui isi dari layer business object.
3. Metode Perancangan Sistem