8 BAB 2 LANDAS AN TEORI
2.1
Definisi Sistem, Informasi, dan Sistem Informasi Dalam melakukan analisis sistem informasi untuk pembuatan sistem penjualan
yang menjadi topik skripsi ini, dibutuhkan pemahaman mengenai konsep dasar sistem, informasi dan sistem informasi sehingga ada kesepahaman dalam pelaksanaannya. 2.1.1
Definisi Sistem Sistem menurut O’Brien (2003, p.8) adalah sekumpulan elemen-elemen
terkait yang saling berinteraksi membentuk satu kesatuan. Sistem terdiri dari 3 (tiga) komponen dasar, yaitu: a. Input, merupakan komponen yang menerima elemen-elemen yang masuk ke dalam sistem untuk diproses. Data merupakan salah satu bentuk input sistem; b. Proses, merupakan komponen yang mengolah input, kemudian mengubahnya menjadi output. Proses yang umum terjadi misalnya kalkulasi data numerik; c. Output, merupakan komponen yang menyebarkan elemen-elemen yang sudah diproses ke tujuan yang sudah ditentukan. Informasi merupakan salah satu bentuk output yang kemudian akan disampaikan kepada pengguna sistem (user).
9 2.1.2
Definisi Informasi M enurut Turban (2009, p.48), Informasi adalah data yang telah diolah
sehingga memiliki arti dan nilai bagi penerimanya. Penerima informasi menginterpretasikan makna dan menarik kesimpulan serta implikasi. Untuk menghasilkan informasi, data diproses malalui program aplikasi sehingga dapat berguna dan memiliki nilai tambah yang signifikan dibandingkan bila data tersebut hanya ditangkap dari database secara apa adanya tanpa melalui proses pengolahan data. Definisi di atas dengan sangat jelas membedakan antara data dan informasi. Data merupakan bahan baku dihasilkannya informasi. Data dapat berupa fakta, gambar, atau suara yang mungkin atau tidak dapat bermanfaat bagi individu maupun kelompok. 2.1.3
Definisi Sistem Informasi M enurut Hall (2008, p.7), Sistem Informasi adalah sebuah rangkaian
prosedur formal di mana data dikumpulkan, diproses menjadi informasi, dan didistribusikan kepada para pemakai. M enurut Turban (2009, p.15), Sistem Informasi adalah sistem yang mengumpulkan, mengolah, menganalisis, dan menyebarkan informasi untuk tujuan-tujuan tertentu. 2.1.4
Definisi Akuntansi M enurut Horngren et al. (2005, p.5), Akuntansi adalah sistem informasi
yang mengukur aktivitas-aktivitas bisnis, memproses informasi tersebut menjadi
10 laporan, dan mengomunikasikan hasilnya kepada para pengambil keputusan. Produk utama dari akuntansi adalah laporan keuangan. M enurut Skousen et.al (2007, p.5), Akuntansi adalah aktivitas pelayanan. Fungsinya adalah untuk menyediakan informasi kuantitatif, utamanya informasi keuangan, mengenai entitas ekonomi yang akan berguna dalam membuat keputusan. Dilihat dari kedua penjelasan di atas, Akuntansi adalah aktivitas untuk mencatat, mengolah, dan menyajikan informasi yang berkaitan dengan aktivitasaktivitas bisnis suatu perusahaan. 2.2
Sistem Informasi Akuntansi 2.2.1
Definisi Sistem Informasi Akuntansi M enurut Romney and Steinbart (2006, p.6), Sistem Informasi Akuntansi
adalah suatu sistem yang mengumpulkan, mencatat, menyimpan dan memproses data untuk menghasilkan informasi bagi para pengambil keputusan. M enurut Gelinas, et al. (2008, p.16), Sistem Informasi Akuntansi adalah suatu subsistem khusus dari sistem informasi manajemen yang bertujuan untuk mengumpulkan, memproses, dan melaporkan informasi yang berhubungan dengan transaksi – transaksi keuangan. Berdasarkan definisi – definisi tersebut, dapat disimpulkan bahwa Sistem Informasi Akuntansi adalah kesatuan kegiatan dalam organisasi yang berbasis komputer yang digunakan untuk mengolah data-data akuntansi dengan tujuan untuk menghasilkan informasi keuangan yang berguna bagi pihak yang membutuhkan.
11 2.2.2
Kegunaan dan Tujuan Sistem Informasi Akuntansi M enurut Jones dan Rama (2004, p.7), kegunaan sistem informasi
akuntansi adalah : • M embuat laporan eksternal Perusahaan
menggunakan
sistem
informasi
akuntansi
untuk
menghasilkan laporan-laporan khusus untuk memenuhi kebutuhan informasi dari para investor, kreditor, dinas pajak, badan-badan pemerintah, dan pihak lain yang berkepentingan; • M endukung aktivitas rutin Para manajer memerlukan suatu sistem informasi akuntansi untuk menangani aktivitas operasi rutin sepanjang siklus operasi perusahaan itu, misalnya pesanan pelanggan, mengirimkan barang dan jasa, membuat faktur penagihan pelanggan, dan menagih kas kepada pelanggan; • M endukung pengambilan keputusan Informasi juga diperlukan untuk mendukung pengambilan keputusan yang bersifat tidak rutin pada semua tingkat dalam sebuah organisasi, misalnya mengetahui produk-produk yang penjualannya bagus dan pelanggan yang paling banyak melakukan pembelian; • Perencanaan dan pengendalian Informasi mengenai anggaran dan biaya standar disimpan oleh sistem informasi, dan laporan dirancang untuk membandingkan jumlah
12 anggaran dengan jumlah aktual. Ini merupakan salah satu wujud perencanaan dan pengendalian dalam sistem informasi akuntansi; dan • M enerapkan pengendalian internal Pengendalian internal mencakup
kebijakan-kebijakan,
prosedur-
prosedur, dan sistem informasi yang digunakan untuk melindungi asetaset perusahaan dari kerugian atau korupsi, dan untuk memelihara keakuratan data keuangan. M enurut Wilkinson et al. (2000, p.8-10), tujuan penggunaan sistem informasi akuntansi adalah : • M endukung operasional sehari-hari; • M endukung pengambilan keputusan bagi pengambil keputusan internal; dan • Untuk memenuhi kewajiban atau tanggung jawab yang sesuai dengan jabatannya. 2.2.3
Siklus Pemrosesan Transaksi M enurut pendapat Romney dan Steinbart (2006, p.30), siklus pemrosesan
transaksi pada sistem adalah suatu rangkaian aktivitas yang dilakukan perusahaan dalam melakukan bisnisnya, mulai dari proses pembelian, produksi, hingga penjualan barang atau jasa. Siklus transaksi pada perusahaan dapat dibagi ke dalam 5 (lima) subsistem yaitu: 1. Revenue Cycle (Siklus Pendapatan), yang terdiri dari transaksi pembelian dan penerimaan kas; 2. Expenditure Cycle (Siklus Pengeluaran), yang terdiri dari peristiwa
13 pembelian dan pengeluaran kas; 3. Human Resource/Payroll Cycle (Siklus Sumber Daya M anusia), yang terdiri dari peristiwa yang berhubungan dengan perekrutan dan pembayaran atas tenaga kerja; 4. Production Cycle (Siklus Produksi), terdiri dari peristiwa yang berhubungan dengan pengubahan bahan mentah menjadi produk/jasa siap dipasarkan; dan 5. Financing Cycle (Siklus Keuangan Perusahaan), yang terdiri dari peristiwa yang berhubungan dengan penerimaan modal dari investor dan kreditor. 2.3
Sistem Informasi Akuntansi Siklus Pendapatan 2.3.1
Definisi Siklus Pendapatan M enurut Romney dan Steinbart (2006, p.5), siklus pendapatan adalah
rangkaian aktivitas bisnis dan kegiatan pemrosesan informasi terkait yang terus berulang dengan menyediakan barang dan jasa kepada para pelanggan dan menagih kas sebagai pembayaran dari penjualan-penjualan tersebut. M enurut Jones dan Rama (2004, p.52), siklus pendapatan merupakan proses transaksi yang digunakan menyediakan barang dan jasa kepada pelanggan. 2.3.2
Fungsi-Fungsi yang Terlibat dalam Siklus Pendapatan M enurut Bodnar dan Hopwood (2001, p.265-268), fungsi-fungsi yang
terlibat dalam siklus pendapatan adalah :
14 • Fungsi Penjualan Fungsi penjualan bertugas menerima pesanan pelanggan, meminta otorisasi kredit, mengisi faktur penjualan tunai, serta menentukan tanggal dan tujuan pengiriman; • Fungsi Kredit Fungsi kredit bertugas memberikan kredit kepada pelanggan dan memeriksa status kredit pelanggan; • Fungsi Gudang Fungsi gudang bertugas menyimpan dan menyiapkan barang yang dipesan pelanggan; • Fungsi Pengiriman Fungsi pengiriman bertugas menyerahkan barang atas dasar surat pesanan penjualan yang diterimanya dari fungsi penjualan; • Fungsi Penagihan Fungsi penagihan bertugas melakukan verifikasi pesanan berdasarkan dokumen-dokumen pesanan yang diterimanya, kemudian membuat dan mengirimkan faktur kepada pelanggan; • Fungsi Akuntansi Fungsi akuntansi bertugas membuat pencatatan transaksi penjualan, piutang dagang, serta penerimaan kas secara periodik; • Fungsi Kas Fungsi kas bertugas menerima kas dari hasil penjualan untuk diteruskan ke bank; dan
15 • Fungsi Pemeriksa atau Audit Internal Fungsi pemeriksa atau audit internal bertugas melakukan penghitungan kas yang ada ditangan fungsi kas secara periodik, serta bertanggung jawab dalam melakukan rekonsiliasi bank untuk memeriksa ketelitian catatan kas terhadap fungsi akuntansi. 2.3.3
Rangkaian Aktivitas Bisnis dalam Siklus Pendapatan M enurut Romney dan Steinbart (2006, p.7-27), siklus pendapatan setiap
organisasi yang berbeda pada umumnya sama dan terdiri dari 4 (empat) aktivitas dasar bisnis, yaitu pencatatan pesanan penjualan, pengiriman barang dagangan, penagihan dan piutang usaha, dan penerimaan kas. 2.3.3.1 Pencatatan Pesanan Penjualan Siklus pendapatan dimulai dengan penerimaan pesanan dari para pelanggan. Proses pencatatan pesanan penjualan mencakup 3 (tiga) tahap, yaitu : • M engambil pesanan pelanggan Pesanan pelanggan dapat diterima dalam berbagai cara, seperti di toko, melalui surat, melalui telepon, atau melalui tenaga penjualan di lapangan. Data pesanan pelanggan sangat dibutuhkan untuk memproses pesanan tersebut, sehingga harus dikumpulkan dan dicatat secara akurat. Beberapa hal dibutuhkan untuk memastikan akurasi yang menyeluruh terhadap data pesanan pelanggan, yaitu pemeriksaan validitas terhadap rekening pelanggan dan nomor barang persediaan,
16 uji kelengkapan untuk memastikan informasi pelanggan tersedia, dan uji kewajaran untuk membandingkan kuantitas yang dipesan dengan pengalaman terdahulu untuk barang dan pelanggan tersebut; • M enyetujui kredit pelanggan Sebagian besar penjualan antar perusahaan dilakukan secara kredit. Penjualan secara kredit harus mendapatkan persetujuan terlebih dahulu sebelum diproses. Bagi pelanggan lama dengan catatan pembayaran yang baik (tidak melewati tanggal jatuh tempo), pemeriksaan kredit formal untuk setiap penjualan biasanya tidak dibutuhkan. Batas kredit (saldo kredit maksimum yang diizinkan) dibutuhkan untuk setiap pelanggan
berdasarkan
pada catatan
kredit
pelanggan
terdahulu dan kemampuannya untuk membayar; dan • M emeriksa persediaan yang ada Pemeriksaan persediaan diperlukan agar pelanggan dapat diinformasikan mengenai perkiraan tanggal pengiriman. Apabila persediaan tidak cukup untuk memenuhi pesanan, maka dilakukan pemesanan ulang (back order). 2.3.3.2 Pengiriman Barang Dagangan Proses ini terdiri dari 2 (dua) tahap, yaitu : • M engambil dan menyiapkan pesanan
17 Kartu pengambilan barang yang dicetak sesuai dengan pencatatan pesanan penjualan akan mempercepat proses pengambilan dan pengepakan. Kartu pengambilan barang digunakan untuk mengidentifikasi produk dan jumlah setiap produk yang akan dikeluarkan dari persediaan; dan • M engirim pesanan Departemen pengiriman membandingkan perhitungan fisik persediaan dengan jumlah yang ditunjukkan dalam kartu pengambilan barang dan salinan pesanan penjualan yang dikirim secara langsung ke bagian pengiriman. Proses ini merubah field jumlah yang dimiliki dalam file induk persediaan, dan menghasilkan slip pengepakan beberapa rangkap dokumen pengiriman. 2.3.3.3 Penagihan dan Piutang Usaha Penagihan dan piutang usaha merupakan proses yang terpisah dan dilakukan oleh 2 (dua) fungsi yang terpisah dalam departemen akuntansi. Berikut ini adalah tahap dalam penagihan dan piutang usaha : • M elakukan penagihan Penagihan yang akurat dan tepat waktu atas barang dagangan yang dikirimkan merupakan hal yang penting. Aktivitas ini membutuhkan informasi dari departemen pengiriman yang mengidentifikasikan barang dan jumlah yang dikirim, serta informasi mengenai harga dan syarat khusus penjualan
18 lainnya dari departemen penjualan. Dokumen dasar yang dibuat dalam proses penagihan adalah faktur penjualan, yang berisi jumlah yang harus dibayar dan kemana harus mengirimkan pembayaran; dan • M emelihara data piutang usaha Fungsi piutang usaha menggunakan informasi dalam faktur penjualan untuk mendebit rekening pelanggan dan mengkredit rekening tersebut ketika pembayaran sudah diterima. Terdapat 2 (dua) cara untuk memelihara data piutang usaha, yaitu dengan metode faktur terbuka dan pembayaran gabungan. Perbedaan kedua metode tersebut terletak pada kapan pelanggan mengirimkan pembayaran, bagaimana pembayaran tersebut digunakan untuk memperbarui file induk piutang usaha, dan format laporan keuangan yang dikirim ke para pelanggan. 2.3.3.4 Penerimaan Kas Pihak yang bertanggung jawab terhadap penerimaan kas adalah kasir. Kas dan cek yang diterima dari pelanggan harus dijaga dengan baik agar terhindar dari risiko pencurian. Fungsi piutang usaha, yang bertanggung jawab atas pencatatan kiriman uang pelanggan, tidak memiliki akses fisik ke kas atau cek. Fungsi piutang usaha harus mampu mengidentifikasi sumber kiriman uang dari mana pun dan faktur penjualan yang terkait harus dikredit.
19 Perkembangan teknologi yang banyak digunakan saat ini sebagai media pembayaran adalah Electronic Funds Transfer (EFT) dan Financial Electronic Data Interchange (FEDI). 2.3.4
Tujuan, Ancaman, dan Pengendalian pada Siklus Pendapatan Dalam siklus pendapatan, sistem informasi akuntansi yang dirancang
dengan baik harus memiliki pengendalian yang memadai untuk memastikan agar tujuan-tujuan berikut ini dapat dicapai : •
Semua transaksi telah diotorisasikan dengan benar;
•
Semua transaksi yang dicatat harus valid (benar-benar terjadi);
•
Semua transaksi yang valid dan disahkan telah dicatat;
•
Semua transaksi dicatat dengan akurat;
•
Aset (kas, persediaan, dan data) dijaga dari kehilangan dan segala bentuk pencurian;
•
Aktivitas bisnis dilaksanakan secara efisien dan efektif.
Setiap perusahaan dengan berbagai lini bisnis yang berbeda, menghadapi ancaman-ancaman dari lingkungan sekitarnya. Oleh sebab itu, dibutuhkan sistem informasi akuntansi yang dirancang sedemikian rupa untuk dapat mengatasi ancaman-ancaman tersebut. Berikut ini adalah ancaman-ancaman utama dalam siklus pendapatan dan prosedur pengendalian yang sesuai, dan dapat dilihat dalam tabel 2.1.
20 Tabel 2.1 Ancaman dan Pengendalian dalam Siklus Pendapatan (Sumber : Romney dan Steinbart, 2006, p.31) Proses
Ancaman
Entri pesanan 1. Pesanan pelanggan yang penjualan tidak lengkap atau tidak akurat
Pengiriman
Penagihan dan Piutang Usaha
Prosedur Pengendalian Pemeriksaan edit entri data
2. Penjualan secara kredit ke pelanggan yang memiliki catatan kredit buruk
Persetujuan kredit oleh manajer bagian kredit; bukan oleh fungsi penjualan; catatan yang akurat atas saldo rekening pelanggan
3. Legitimasi pesanan
Tanda tangan di atas dokumen kertas; tanda tangan digital dan sertifikat digital untuk e-business
4. Habisnya persediaan, biaya penggudangan, dan pengurangan harga 5. Kesalahan pengiriman : barang dagangan yang salah; jumlah yang salah; alamat yang salah
Sistem pengendalian persediaan
6. Pencurian persediaan
Batasi akses fisik ke persediaan; dokumentasi semua transfer internal persediaan; perhitungan fisik persediaan secara periodik dan rekonsiliasi perhitungan dengan jumlah yang dicatat Pemisahan fungsi pengiriman dan penagihan; pemberian nomor ke semua dokumen pengiriman dan rekonsiliasi faktur secara periodik; rekonsiliasi kartu pengambilan dan dokumen pengiriman dengan pesanan penjualan
7. Kegagalan untuk menagih pelanggan
Rekonsiliasi pesanan penjualan dengan kartu pengambilan dan slip pengepakan; pemindai kode garis; pengendalian aplikasi entri data
8. Kesalahan dalam penagihan
Pengendalian edit entri data
9. Kesalahan dalam memasukkan data ketika memperbarui piutang usaha
Rekonsiliasi buku pembantu piutang usaha dengan buku besar; laporan bulanan ke pelanggan
21 Penagihan kas
10. Pencurian kas
M asalahmasalah Pengendalian Umum
11. Kehilangan data
2.4
12. Kinerja yang buruk
Pemisahan tugas; minimalisasi penanganan kas; kesepakatan lockbox; konfirmasi pengesahan dan penyimpanan semua penerimaan; rekonsiliasi periodik laporan bank dengan catatan seseorang yang tidak terlibat dalam pemrosesan penerimaan kas Prosedur cadangan dan pemulihan dari bencana; pengendalian akses (secara fisik dan logis) Persiapan dan tinjauan laporan kinerja
Sistem Pengendalian Internal 2.4.1
Pengertian Sistem Pengendalian Intern M enurut Hall (2008, p.150), sistem pengendalian intern merangkum
kebijakan, praktek, dan prosedur yang digunakan oleh organisasi untuk mencapai 4 (empat) tujuan utama, yaitu untuk menjaga aktiva perusahaan, memastikan keakuratan dan keandalan catatan dan informasi akuntansi, mendorong efisiensi operasi perusahaan, dan mengukur kesesuaian dengan kebijakan dan prosedur yang telah ditetapkan oleh manajemen. Unsur pokok sistem pengendalian intern adalah: a. Struktur organisasi yang memisahkan tanggung jawab fungsional secara tegas; b. Sistem wewenang dan prosedur pencatatan yang memberikan perlindungan yang cukup terhadap kekayaan, utang, pendapatan, dan biaya; c. Praktek yang sehat dalam melaksanakan tugas dan fungsi setiap unit organisasi; dan
22 d. Karyawan yang mutunya sesuai dengan tanggung jawabnya. 2.4.2
Komponen Pengendalian Internal M enurut Jones dan Rama (2004, p.134), terdapat 5 (lima) komponen
pengendalian internal yang berpengaruh terhadap kemampuan organisasi dalam mencapai sasaran pengendalian internal, yaitu : 1. Lingkungan pengendalian Faktor-faktor
umum
mempengaruhi
yang menetapkan
kesadaran
karyawannya
sifat
organisasi
terhadap
dan
pengendalian
meliputi integritas, nilai-nilai etika, serta filosofi dan gaya operasi manajemen. Cara manajemen memberikan wewenang dan tanggung jawab, mengatur dan mengembangkan karyawannya, serta perhatian dan arahan yang diberikan oleh dewan direksi juga mempengaruhi pengendalian yang ada dalam entitas; 2. Penentuan risiko Cara dalam menentukan risiko adalah dengan identifikasi dan analisis risiko yang mengganggu pencapaian sasaran pengendalian internal; 3. Aktivitas pengendalian Aktivitas pengendalian meliputi hal-hal yang berkaitan dengan penelaahan kinerja, pemisahan tugas, pengendalian aplikasi, dan pengendalian umum; 4. Informasi dan komunikasi Sistem informasi perusahaan merupakan kumpulan prosedur (otomatis dan manual) dan record yang dibuat untuk memulai, mencatat,
23 memproses, dan melaporkan kejadian pada proses entitas. Komunikasi meliputi adanya pemahaman mengenai peran dan tanggung jawab individu; dan 5. Pengawasan M anajemen harus mengawasi pengendalian internal untuk memastikan bahwa pengendalian organisasi berfungsi sebagaimana mestinya. 2.5
Sistem Informasi Akuntansi Piutang Dagang 2.5.1
Pengertian Piutang Dagang M enurut Bodnar dan Hopwood (2001, p.272), piutang dagang adalah
uang yang terhutang oleh konsumen atas barang yang telah dijual atau jasa yang diberikan kepadanya. M enurut Horngren et al. (2005, p.12), piutang dagang adalah suatu janji untuk menerima uang dari pelanggan dimana perusahaan telah menjual barangbarang atau telah melakukan jasa kepadanya. Jadi, piutang dagang adalah sejumlah
uang yang terhutang oleh konsumen kepada perusahaan karena
terjadinya transaksi penjualan barang dan jasa. 2.5.2
Sistem Penagihan Piutang M enurut Romney dan Steinbart (2006, p.430), tipe penagihan dibagi
menjadi 2 (dua) yaitu postbilling dan prebilling. M etode postbilling menyiapkan surat tagihan (invoice) setelah ada konfirmasi bahwa barang telah dikirim oleh bagian pengiriman. Sistem ini lazim diterapkan perusahaan pabrikan, dimana ada jeda waktu antara penerimaan pesanan dan pengiriman barang.
24 Prebilling mempersiapkan invoice saat suatu pesanan penjualan disetujui, namun tagihan tersebut belum dikirim. Bila perusahaan menggunakan sistem ini, maka pada saat yang sama persediaan barang, piutang dagang, dan file buku besar juga di-update. 2.5.3
Sistem Pencatatan Piutang M enurut Romney dan Steinbart (2006, p.432), metode dalam pencatatan
piutang ada 2 (dua), yaitu open-invoice method dan balance-forward method. Pada metode open-invoice pelanggan melunasi piutangnya berdasarkan invoice. Pelanggan menerima 2 (dua) salinan invoice dan harus mengembalikan 1 (satu) salinan beserta dengan pembayaran sebagai bukti pembayaran (remittance advice). Laporan pelanggan bulanan dibuat berdasarkan invoice yang belum dilunasi beserta umur piutang masing-masing invoice. M etode ini digunakan bila perusahaan
menawarkan
diskon
bagi pembayaran
yang tepat
waktu.
Kelemahannya metode ini lebih rumit karena memelihara data masing-masing invoice. Pada metode
balance-forward,
pembayaran
pelanggan
langsung
mengurangi saldo piutang pelanggan tanpa melihat saldo piutang per invoice. Bukti pembayaran dibuat berdasarkan saldo piutang pelanggan. Laporan bulanan pelanggan berisi informasi saldo awal, perubahan piutang pada bulan berjalan, dan saldo akhir. M etode ini banyak digunakan oleh perusahaan dengan banyak pelanggan yang melakukan pembelian dalam jumlah kecil setiap bulannya.
25 2.6
Analisis dan Perancangan Sistem Informasi Akuntansi 2.6.1
Konsep Object-Oriented Analysis and Design (OOAD) M etode yang digunakan dalam melakukan analisis dan perancangan
sistem informasi akuntansi penjualan adalah berorientasi objek. Untuk itu dibutuhkan pemahaman mengenai 4 (empat) aktivitas yang ada dalam OOAD, antara lain analisis problem-domain, analisis application domain, architecture design, dan component design. Dapat dilihat pada gambar 2.1 mengenai penggambaran 4 (empat) aktivitas utama dalam OOAD.
Gambar 2.1 Aktivitas utama dan hasil-hasil dari OOAD (Sumber : Mathiassen et al, 2000, p.15) 2.6.1.1 Definisi Object-Oriented Analysis and Design M enurut M athiassen et al. (2000, p.135), Object-Oriented Analysis and Design (OOAD) adalah metode untuk menganalisa dan merancang sistem dengan pendekatan berorientasi object. Object merupakan dasar dari konsep OOAD.
26 M enurut M athiassen et al. (2000, p.4), object adalah sebuah entitas yang memiliki identity, state, dan behaviour. Pada analisa, identitas
sebuah
object
menjelaskan
bagaimana
seorang
user
membedakannya dari object lain, dan behavior object digambarkan melalui event yang dilakukannya. Sedangkan pada perancangan, identitas sebuah object digambarkan dengan cara bagaimana object lain mengenalinya sehingga dapat diakses, dan behavior object digambarkan dengan operation yang dapat dilakukan object tersebut yang dapat mempengaruhi object lain dalam sistem. Setiap objek tidak digambarkan terpisah, melainkan secara berkelompok dalam sebuah class. Objek merupakan konsep yang penting dan harus diperhatikan dalam melakukan analisa dan perancangan ini, karena saling bergantung dengan konsep-konsep selanjutnya dalam OOAD. Notasi yang digunakan dalam OOAD adalah UM L (Unified Modeling Language), yang merupakan notasi dalam bentuk diagram untuk merancang sistem menggunakan konsep object-oriented. 2.6.1.2 Prinsip umum OOAD M enurut M athiassen et al. (2000, p.18), terdapat 4 (empat) prinsip umum OOAD, yaitu: 1. Model the context Sistem yang digunakan bermanfaat sesuai dengan konteks OOAD. Selain itu merupakan hal yang penting untuk
27 membuat model dari application domain dan problem domain selama proses analisis dan desain; 2. Emphasize the architecture Arsitektur yang mudah dipahami menyediakan kolaborasi antara designer dan programmer. Arsitektur yang fleksibel membuat modifikasi dan perbaikan sistem yang lebih baik; 3. Reuse Patterns M embangun berdasarkan gagasan-gagasan yang kuat dan komponen-komponen yang sudah diuji akan meningkatkan kualitas sistem dan produktivitas pembangunan proses; 4. Tailor the method to suit specific projects Setiap usaha pembangunan mempunyai tantangan yang unik. OOAD harus disesuaikan dengan kebutuhan-kebutuhan khusus dari situasi analisis dan desain yang diberikan. 2.6.1.3 Keuntungan OOAD Keuntungan dari OOAD menurut M athiassen et al. (2000, p.5) adalah : 1. M erupakan konsep umum yang dapat digunakan untuk memodelkan hampir semua fenomena dan dapat dinyatakan dalam bahasa umum (natural language): • Noun menjadi object atau class; • Verb menjadi object atau class; • Adjective menjadi attributes.
28 2. M emberikan informasi yang jelas tentang context dari sistem; 3. M emiliki koneksi yang kuat antara object-oriented anaylsis, object-oriented design, object-oriented user interfaces, dan object-oriented programming. 2.7
System Definition M enurut M athiassen et al. (2000, p.23), system definition merupakan sebuah
penjelasan singkat dari sistem terkomputerisasi yang diungkapkan dalam bahasa alamiah. Di dalam system definition dijelaskan mengenai rich picture dan FACTOR. Rich picture merupakan sebuah penggambaran secara tidak formal yang menggambarkan pemahaman illustrator dari suatu situasi. Rich picture memfokuskan pada aspek penting dari suatu situasi yang mana ditentukan oleh illustrator. Dengan rich picture, didapatkan penjelasan mengenai pandangan user yang penting dari suatu situasi, memfasilitasi perbincangan, dan mendapatkan gambaran mengenai suatu situasi dengan cepat. Tujuannya bukan untuk membuat deskripsi secara rinci mengenai seluruh kemungkinan yang terjadi, tetapi lebih kepada untuk mendapatkan sebuah gambaran. FACTOR dapat berguna sebagai alat bantu untuk membuat system definition, sehingga dapat menggambarkan sistem yang mudah dimengerti. Selain itu juga dapat berguna apabila ingin memulainya dengan menjelaskan mengenai sistem dan menggunakan kriteria yang ada untuk melihat bagaimana definisi sistem dapat memenuhi masing-masing dari 6 (enam) factor tersebut. M enurut M athiassen et al. (2000, p.39), Kriteria FACTOR terdiri dari 6 (enam) elemen, yaitu: 1. Functionality Fungsi dari sistem yang mendukung application domain;
29 2. Application Domain Bagian dari organisasi yang melakukan administrasi, pengawasan, dan pengendalian pada problem domain; 3. Condition Kondisi dari sistem yang akan dikembangkan dan digunakan; 4. Technology Teknologi yang digunakan untuk membangun sistem dan teknologi yang digunakan untuk menjalankan sistem; 5. Objects Objek dasar dari problem domain; 6. Responsibility Tanggung jawab sistem secara keseluruhan dalam hubungannya dengan konteks sistem. 2.7.1
Problem Domain Problem
domain
adalah
bagian
dari
sebuah
konteks
yang
diadministrasikan, diawasi atau dikendalikan oleh sebuah sistem. Problemdomain analysis terbagi menjadi 3 (tiga) aktivitas. Aktivitas pertama adalah memilih object, classes, dan events yang akan menjadi elemen dari problemdomain model. Aktivitas kedua adalah membuat model dengan memfokuskan kepada hubungan struktural antara classes dan object yang dipilih. Aktivitas terakhir adalah memfokuskan kepada properti dinamis dari object. Problem domain terdiri dari classes, structure, dan behavior yang dapat dilihat pada gambar 2.2.
30 System defini tio n
Beh aviour
Cla sse s
Stru cture Mod el
Gambar 2.2 Aktivitas di dalam Pemodelan Problem-Domain (Sumber : Mathiassen et al, 2000, p.46)
2.7.1.1 Classes M enurut M athiassen et al. (2000, p.49), class adalah sebuah deskripsi dari kumpulan objek-objek yang memiliki struktur, behavior pattern dan atribut yang sama. Abstraksi, klasifikasi, dan seleksi adalah tugas utama dalam aktifitas class. Abstraksi problem-domain dilakukan dengan
melihatnya
sebagai
objects
dan
events,
kemudian
mengklasifikasikan objects dan events, dan terakhir melakukan seleksi terhadap classes dan events yang akan digunakan untuk mendapatkan informasi. Class merupakan hal yang penting dalam mendefinisikan dan membatasi problem domain. Hasil dari aktivitas pertama problem-domain adalah sebuah event table dengan classes dan events yang saling berhubungan, dan dapat dilihat pada tabel 2.2. Event adalah sebuah kejadian seketika yang melibatkan 1 (satu) atau lebih object. Event turut menentukan kualitas dari problem-domain objects dan merupakan karakteristik umum dari object. Event table mempermudah dalam
31 menganalisa sistem agar tidak ada event yang terlupakan dalam membuat suatu class diagram. Event table dapat digunakan untuk mengevaluasi kualitas dari class dan event candidates. Tabel 2.2 Event Table (Sumber : Mathiassen et al, 2000, p.50) Classes Events
Customer Assistant Apprentice Appoinment
reserved
√
√
√
cancelled
√
√
√
treated
√
√
√
employed
√
√
resigned
√
√ √
graduated √
agreed
Plan
√
√
2.7.1.2 Structure M enurut M athiassen et al. (2000, p.69), structure bertujuan untuk menjelaskan hubungan struktural antara kelas-kelas dan objekobjek pada problem domain. Aktivitas structure difokuskan pada hubungan antara classes dan objek. Struktur antar class terdiri dari 4 (empat) tipe, dimana terbagi dalam 2 (dua) bagian, yaitu : 1. Class Structure, yang meliputi :
32 a. Generalization Structure Generalization structure adalah hubungan antara 2 (dua) atau lebih class yang dispesialisasikan (sub class) dengan class yang umum (super class). Super class menjelaskan kesamaan yang ada pada sekumpulan sub class, dan dapat dilihat pada gambar 2.3.
Gambar 2.3 Generalization Structure (Sumber : Mathiassen et al, 2000, p.73) b. Cluster Structure Cluster
adalah
sebuah
kumpulan
dari classes
yang
berhubungan, yang dapat membantu memberikan gambaran untuk problem domain. Classes di dalam Cluster biasanya berhubungan secara struktur generalisasi atau struktur agregasi. Gambar 2.4 merupakan contoh dari cluster untuk sebuah pendaftaran automobile.
33
Gambar 2.4 Cluster Structure (Sumber : Mathiassen et al, 2000, p.75) 2. Object Structure c. Aggregation Structure Aggregation structure adalah sebuah hubungan antara 2 (dua) atau lebih objek. Agregasi merupakan suatu superior (keseluruhan)
objek
yang terdiri atas beberapa objek
inferior (beberapa bagian). A gregasi biasanya digambarkan dengan formulasi “has-a”,”is-part-of”, atau ”is-owned-by”. Struktur agregasi dapat dilihat pada gambar 2.5.
Gambar 2.5 Aggregation Structure (Sumber : Mathiassen et al, 2000)
34 d. Association Structure Association structure adalah sebuah hubungan antara 2 (dua) atau lebih objek tetapi berbeda dengan aggregasi, dimana hubungan objek-objek yang terasosiasi tersebut tidak mendefinisikan properti dari suatu objek. Asosiasi biasanya digambarkan dengan formulasi “knows” atau “associatedwith”. Struktur asosiasi dapat dilihat pada gambar 2.6.
Gambar 2.6 Association Structure (Sumber : Mathiassen et al, 2000, p.77) 2.7.1.3 Behaviour M enurut M athiassen et al. (2000, p.89), aktivitas behaviour bertujuan untuk memodelkan keadaan dinamis dari problem-domain. Hasil dari aktivitas ini adalah sebuah behavioural pattern dengan attributes pada setiap class di dalam sebuah class diagram. Terdapat 3 (tiga) konsep dalam aktivitas behaviour, yaitu event trace, behavioural pattern, dan attributes. Event trace adalah urutan event-event dari suatu objek tertentu. Behavioural pattern adalah deskripsi dari event trace yang mungkin untuk semua objek di dalam class. Behavioural pattern dapat digambarkan dalam state diagram. State Diagram menggambarkan behavior umum dari semua objek dari class tertentu, yang terdiri dari bagian-bagiannya dan transisi
35 diantaranya dan juga dapat menjelaskan usecase. Statechart diagram menggambarkan transisi dan perubahan keadaan suatu objek pada sistem sebagai akibat dari stimulasi yang diterima. Contoh penggambaran dari statechart diagram dapat dilihat pada gambar 2.7.
Gambar 2.7 Statechart diagram untuk class “Customer” di sebuah bank (Sumber : Mathiassen et al, 2000, p.90) Notasi pada behavioural pattern terdiri dari 3 (tiga) macam yaitu: 1. Sequence merupakan events yang terjadi satu per satu secara berurutan, dilambangkan dengan simbol “ + ”; 2. Selection merupakan event yang dipilih dari serangkaian event yang muncul, dilambangkan dengan simbol “ | ”; 3. Iteration merupakan events yang terjadi nol kali atau lebih, dilambangkan dengan simbol “ * ”. M enurut M athiassen et al. (2000, p.92), attribute adalah properti deskriptif dari sebuah kelas atau event. Contoh attribute adalah pelanggan yang memiliki nama, alamat, dan nomor identitas pelanggan.
36 2.7.2
Application Domain M enurut M athiassen et al. (2000, p.115), application domain adalah
organisasi yang mengelola, memantau atau mengontrol problem domain. Application-domain analysis terbagi dalam 3 (tiga) aktivitas, yaitu aktivitas usage, functions, dan interfaces. Hasil dari application domain adalah kumpulan daftar dari keseluruhan kebutuhan pengguna sistem. Application domain analysis dapat dilihat pada gambar 2.8.
System defini tio n
Interfaces
Usage
Functions Re quireme nts
Gambar 2.8 Application Domain Analysis (Sumber : Mathiassen et al, 2000, p.117) 2.7.2.1 Usage M enurut M athiassen et al. (2000, p.119), kegiatan usage merupakan kegiatan pertama dalam analisis application domain yang bertujuan untuk menentukan bagaimana actor berinteraksi dengan sistem yang dituju. Hasil dari usage adalah deskripsi dari use case dan actor yang digambarkan dalam tabel actor dan use case diagram.
37 a. Use Case Use case diagram adalah diagram yang menggambarkan interaksi antara sistem dan actor di dalam application domain.
Use
case
menyediakan
gambaran
mengenai
kebutuhan sistem dari sudut pandang user dan merupakan sebuah dasar untuk menentukan dan mengevaluasi function dan kebutuhan interface. Use case dapat diaktifkan oleh actor atau oleh target sistem. Use case specification digunakan untuk menjelaskan use case secara rinci disertai dengan penjelasan yang terfokus kepada setiap actor yang terlibat. Use case dapat dijelaskan dengan diagram statechart, use case specification, maupun keduanya. Use case yang lengkap menentukan semua penggunaan target sistem didalam application domain, seperti yang terdapat pada gambar 2.9.
Gambar 2.9 Use Cases Diagram (Sumber : Mathiassen et al, 2000, p.129)
38 b. Actor Actor merupakan abstraksi dari user dan sistem yang lain yang mengaktivasi function sistem. Setiap actor dapat berupa manusia atau mesin. 2.7.2.2 Sequence M enurut M athiassen, et al. (2000, p.340), sequence diagram menjelaskan mengenai interaksi diantara beberapa objek dalam jangka waktu tertentu. M enurut Bennet et al. (2006, p.232-233), sebuah sequence diagram menunjukkan interaksi antar objek-objek yang disusun dalam urutan waktu tertentu. Sequence diagram dapat digambarkan pada tingkatan rincian yang berbeda dan sesuai dengan pencapaian tujuan yang berbeda pada beberapa tahap dalam siklus pengembangan. Dimensi vertikal memperlihatkan waktu dan semua object, dimana setiap object tersebut ditunjukkan dengan lifeline. Sedangkan dimensi horizontal menunjukkan interaksi antar actor dengan object dan object dengan object lainnya. 2.7.2.3 Function M enurut M athiassen et al. (2000, p.137), function adalah sebuah fasilitas untuk membuat sebuah model yang berguna bagi actor. Tujuannya adalah untuk menentukan kemampuan sistem dalam mengolah informasi dengan membuat semua daftar dari function dan rincian
39 spesifikasi dari bagian yang rumit. Kriteria utama analisis fungsi sistem adalah analisis harus diakhiri dengan kumpulan daftar dari function dan harus konsisten dengan use cases. Prinsip untuk mengukur kualitas suatu function adalah mengidentifikasi seluruh function, function yang kompleks harus dispesifikasikan, dan konsistensi terhadap use cases dan model harus diperiksa. Ada beberapa tipe dari function antara lain: a. Update Function diaktifkan oleh sebuah event dari problem domain dan hasilnya adalah sebuah perubahan pada model state; b. Signal Function diaktifkan oleh sebuah perubahan pada model state dan hasilnya sebuah reaksi pada konteks. Reaksi ini mungkin sebuah tampilan kepada actor di application domain; c. Read Function diaktifkan oleh sebuah kebutuhan informasi pada sebuah tugas kerja pada actor dan hasilnya tampilan sistem yang berhubungan dengan bagian model; dan d. Compute Function diaktifkan
oleh
sebuah
kebutuhan
informasi pada sebuah tugas kerja pada actor dan terdiri dari sebuah
perhitungan
yang melibatkan
informasi
yang
disediakan oleh actor atau model. Hasilnya sebuah tampilan hasil perhitungan.
40 2.7.2.4 Interface M enurut M athiassen et al. (2000, p.151), interface adalah fasilitas-fasilitas yang membuat model dan fungsi-fungsi tersedia agar user dapat berinteraksi dengan sistem. Hasil dari interface adalah user interface dan system interface. User interface adalah sebuah interface yang menghubungkan user dengan sistem. User interface harus sesuai dengan pekerjaan dan gambaran user terhadap sistem. Prinsip untuk mengukur kualitas suatu interface adalah sesuai dengan usability dalam application domain, dapat diuji, dan memenuhi seluruh elemen interface. Hasil dari user interface berupa dialogue style dan presentation forms, daftar elemen dari user interface yang lengkap, windows diagram yang dipilih dan navigation diagram. System interface adalah sebuah interface yang menghubungkan sistem dengan sistem lainnya. Hasil dari system interface berupa class diagram untuk perangkat eksternal dan protokol-protokol untuk berinteraksi dengan sistem lain. 2.8
Design System 2.8.1
Architectu ral Design M enurut M athiassen et al. (2000, p.173), kunci kesuksesan sebuah sistem
bergantung kepada rancangan arsitektur yang kuat. Tujuan dari architecture design adalah untuk menstrukturkan sebuah sistem yang terkomputerisasi. Terdapat 3 (tiga) prinsip dalam membuat architecture design, yaitu menentukan
41 dan memberikan prioritas pada criteria, menjembatani criteria dan technical platform, serta mengevaluasi rancangan yang dihasilkan sedini mungkin. Hasil dari architectural design adalah strukturisasi untuk proses dan komponen sistem. M enurut M athiassen et al. (2000, p.176), terdapat 3 (tiga) aktivitas dalam architectural design, yaitu criteria, component architecture, dan process architecture. 2.8.1.1 Criteria M enurut M athiassen et al. (2000, p. 177), criteria merupakan sebuah properti yang diinginkan dari sebuah arsitektur, dimana tujuannya adalah untuk menyiapkan prioritas dari rancangan yang diinginkan. Criteria klasik untuk mengukur kualitas software dapat dilihat pada tabel 2.3. Kumpulan dari daftar criteria tersebut digunakan untuk menyiapkan prioritas yang diinginkan untuk architectural design. Hasil dari aktivitas criteria adalah sekumpulan dari criteria yang sudah diprioritaskan. Tabel 2.3 Kriteria Klasik Kualitas Perangkat Lunak (Sumber : Mathiassen et al, 2000, p.178) Kriteria Usable Secure Efficient Correct Reliable
Pengukuran Kesesuaian sistem dalam organisasi, hubungan kerja dan konteks teknis. Adanya tindakan pencegahan atas akses terhadap data dan fasilitas yang tidak diinginkan. Fasilitas technical platform yang sudah ada dapat digunakan secara ekonomis sesuai dengan fungsinya. Kemampuan sistem yang dapat memenuhi kebutuhan pengguna. Pemenuhan performa yang diinginkan pada waktu function dieksekusi.
42 Maintainable Testable Flexible Comprehensib le Reusable Portable Interoperable
Pengalokasian biaya dan perbaikan sistem yang rusak. Biaya untuk menjamin bahwa sistem dapat menjalankan function-function yang ada di dalamnya. Biaya yang dibutuhkan untuk memodifikasi sistem yang dikembangkan. Usaha yang dibutuhkan untuk memperoleh pemahaman yang logis dari sebuah sistem. Adanya potensi untuk memakai bagian-bagian dari sistem pada sistem lain yang berhubungan. Biaya dari pemindahan sistem ke sistem platform yang lainnya. Biaya penggabungan sistem dengan sistem lainnya.
2.8.1.2 Component Architecture M enurut M athiassen et al. (2000, p.189), component architectur e merupakan struktur sistem dari komponen-komponen yang saling berhubungan. Sedangkan component adalah sebuah kumpulan dari bagian-bagian
program yang
membentuk
sebuah
kesatuan
dan
mempunyai tanggung jawabnya masing-masing. Tujuan dari component architecture adalah untuk membuat sistem yang mudah dipahami dan fleksibel. Terdapat 3 (tiga) prinsip perancangan component architecture, yaitu mengurangi kompleksitas dengan membagi beberapa fungsi, menggambarkan struktur konteks sistem yang stabil, dan dapat menggunakan kembali komponen yang ada. Hasil dari aktivitas components adalah sebuah class diagram dengan spesifikasi dari komponen yang kompleks. Terdapat beberapa pola yang dapat dipakai
43 untuk mendesain sebuah komponen arsitektur menurut M athiassen et al. (2000, p.193-197), yaitu : • The Layered Architecture Pattern Layered architecture terdiri dari beberapa komponen, yang disebut sebagai layers. Interface downward menggambarkan operation mana yang dapat diakses oleh komponen pada layer yang berada di bawahnya. Interface upward menggambarkan operation pada layer yang berada di atasnya. Contoh dari layered architecture dapat dilihat pada gambar 2.10, dimana setiap layer menggambarkan komponen dan panahnya menunjukkan dependencies. Sebuah dependency memiliki arti, apabila perubahan pada 1 (satu) komponen (yang ditunjuk panah) dapat mempengaruhi komponen lainnya (yang menunjuk);
<
> Layer i+1 Upwards Interface <> Layer i Downwards Interface <> Layer i-1 Gambar 2.10 Layered Architecture Pattern (Sumber : Mathiassen et al, 2000, p.193)
44 • The Generic Architecture Pattern Generic architecture terdiri dari 3 (tiga) komponen sebagai bagian keseluruhan layer, dimana komponen interface pada bagian paling atas, kemudian layer fungsi sistem, dan bagian terakhir terdapat komponen technical platform. Contoh generic architecture dapat dilihat pada gambar 2.11; <> Interface <> User Interface
<> System Interface
<> Function
<> Model
<> Interface <> UIS
<> DBS
<> NS
Gambar 2.11 Generic Architecture Pattern (Sumber : Mathiassen et al, 2000, p.196)
45 • The Client-Server Architecture Pattern Client-server architecture dikembangkan untuk mengatasi distribusi sistem yang terdapat pada beberapa processors yang berpencaran secara geografis. Client-server architecture banyak
digunakan
dalam
industri
software
karena
kemampuannya dalam memberikan solusi terhadap masalah mengkomunikasikan personal computers dengan central mainframe computer. Komponen yang dimiliki client-server architecture adalah sebuah server dan beberapa clients. Server memiliki sekumpulan operations yang dapat diakses oleh clients melalui sebuah jaringan dan memiliki tanggung jawab untuk menyediakan database atau sumber daya lainnya untuk clients. Setiap clients memiliki tanggung jawab untuk menyediakan local interface untuk user. Contoh dari clientserver architecture dapat dilihat pada gambar 2.12.
<> Client 1
<> Client 2
…
<> Client n
<> Server
Gambar 2.12 Client-Server Architecture Pattern (Sumber : Mathiassen et al, 2000, p.197)
46 Terdapat 2 (dua) metode berbeda untuk memisahkan komponen client dan server. Client dan server dapat dilihat sebagai
subsistem,
dimana
masing-masing
memiliki
komponen model (M ), function (F), dan user-interface (U). Selain itu dapat juga dilihat sebagai layer yang berbeda dalam sebuah sistem tunggal. Dalam komponen diagram dapat
digambarkan
distribusi
dalam
client
server
architecture yang terdapat pada tabel 2.4. Tabel 2.4 Bentuk Berbeda dari distribusi Client Server Achictecture (Sumber : Mathiassen et al, 2000, p.200) Client
Server
Architectu re
U
U + F +M
Distributed presentation
U
F +M
Local presentation
U+ F
F +M
Distributed functionality
U+ F
M
Centralized data
U+F+M
M
Distributed data
2.8.1.3 Process Architectu re M enurut M athiassen et al. (2000, p.209), process architectur e adalah struktur dari eksekusi sistem yang terdiri dari proses-proses yang saling bergantung. Process architecture menggambarkan bagaimana proses sistem didistribusi dan dikoordinasi. Tujuan dari desain process architecture adalah untuk menyusun eksekusi pada level physical.
47 Aktivitas process memiliki 2 (dua) level abstraksi. Level pertama menjelaskan mengenai distribusi dari komponen program yang ada pada processor sistem. Level kedua menjelaskan mengenai proses yang yang memiliki kolaborasi struktur antar object yang ada saat eksekusi. Hasil akhir
dari proses
arsitektur
adalah deployment diagram
yang
menjelaskan mengenai distribusi dan kolaborasi dari komponen program dan active object yang ada pada processors. Terdapat beberapa pola distribusi dalam kegiatan desain proses arsitektur, yaitu : • The Centralized Pattern Pada pola ini semua data disimpan pada server pusat dan client hanya menangani user interface saja. Keseluruhan model dan fungsi bergantung pada server dan client hanya berperan seperti terminal. Keuntungan dari pola distribusi ini adalah dapat diimplementasikan dengan murah untuk client, semua data ditempatkan dalam satu tempat, strukturnya mudah dimengerti dan diimplementasikan, dan kemacetan jaringannya tergolong sedang. Sedangkan kerugiannya adalah level kinerja client rendah karena apabila server atau jaringan turun, maka client tidak dapat melakukan apapun. Centralized pattern dapat dilihat pada gambar 2.13;
48
Gambar 2.13 Centralized Pattern (Sumber : Mathiassen et al, 2000, p.216) • The Distributed Pattern Distributed pattern merupakan kebalikan dari centralized pattern. Semua data didistribusikan pada client dan server hanya diperlukan untuk
melakukan update model antar
clients. Keuntungan dari pola distribusi ini adalah waktu akses yang rendah karena semua fungsi dan model terdapat di client, sehingga tidak ada kemacetan jaringan. Selain itu kinerja setiap client lebih maksimal dan back-up data banyak. Sedangkan kerugiannya adalah adanya redudansi data sehingga konsistensi data antar client berkurang, kemacetan jaringan tinggi, kebutuhan teknis untuk client meningkat, dan
49 arsitekturnya
lebih
rumit
untuk
dipahami
dan
diimplementasikan. Distributed pattern dapat dilihat pada gambar 2.14;
Gambar 2.14 Distributed Pattern (Sumber : Mathiassen et al, 2000, p.217) • The Decentralized Pattern Decentralized pattern dapat dikatakan merupakan gabungan dari kedua pola sebelumnya. Pada pola ini client memiliki datanya sendiri, sehingga hanya data umum client yang terdapat pada server. Client dan server memiliki struktur desain yang sama. Perbedaannya adalah server menyimpan model dan fungsi umum, sementara client menyimpan data yang terdapat pada application domain miliknya. Keuntungan
50 dari pola distribusi ini adalah konsistensi data karena tidak ada duplikasi antar client maupun antara client dan server, beban jaringan rendah karena jaringan hanya digunakan saat data umum pada server di-update. Sedangkan kerugiannya adalah semua processor harus mampu menjalankan fungsi yang rumit dan memelihara model dalam jumlah besar, biaya hardware meningkat, dan sistem tidak memiliki fasilitas back-up di dalamnya. Decentralized pattern dapat dilihat pada gambar 2.15.
Gambar 2.15 Decentralized Pattern (Sumber : Mathiassen et al, 2000, p.219) 2.8.2
Component Design M enurut M athiassen et al. (2000, p.231), tujuan dari component design
adalah menentukan implementasi dari kebutuhan yang ada pada architectural
51 framework. Hasil dari aktivitas component design adalah sebuah deskripsi dari komponen sistem.
Terdapat beberapa aktifitas dalam component design,
termasuk di dalamnya model component dan function component. 2.8.2.1 Model Component Model component adalah bagian dari sebuah sistem yang mengimplementasikan
problem-domain
Tujuannya
model.
adalah
mengirim data yang sekarang dan yang lalu kepada fungsi, interfaces dan kepada user dan sistem yang lain. Hasil dari aktivitas model component adalah sebuah revised class diagram dari aktivitas analisis. Dalam analisis, model digambarkan sebagai kelas diagram yang dikombinasikan dengan statechart diagram untuk setiap class. Dalam model component desain lebih fokus pada informasi yang diambil dari event, yang meliputi event traces dan attribute untuk setiap event. Untuk menentukan revised class, pertama-tama harus ditentukan private event dan common event. Private event adalah event yang hanya melibatkan 1 (satu) object pada problem domain. Common event adalah adalah event yang melibatkan beberapa object. Event ini menggambarkan hubungan
antara
memungkinkan
1
(satu) object
menambahkan
dengan
object
hubungan
lainnya dan
struktural,
untuk
memungkinkan object lain mengakses attribute-nya. Untuk event yang terjadi sekali, maka tampilkan event tersebut sebagai attribute pada class dimana event itu berada. Event ini ditandai dengan ” + ”. Untuk event yang terjadi berkali-kali atau iteration, maka
52 tampilkan event attribute ini sebagai class baru. Event ini ditandai dengan ” * ”. Hubungkan class baru dengan class dimana event itu berasal dengan hubungan agregasi. 2.8.2.2 Function Component Function component merupakan sebuah bagian dari sistem yang mengimplementasikan kebutuhan-kebutuhan fungsional. Tujuan dari function component adalah untuk memberikan user interfaces dari system components dapat mengakses ke dalam model. Hasil dari function component adalah sebuah class diagram dengan operation dan spesifikasi dari operation yang kompleks. Ada 4 (empat) tipe dari function component yaitu: 1. Update : berhubungan langsung dengan problem domain. Jika tidak terjadi sesuatu dalam problem domain, maka tidak dilakukan perubahan dalam model system. Update function menerima input data yang mendeskripsikan event dan output data yang merupakan model update; 2. Read : menjelaskan kebutuhan dari user atau sistem lain untuk mendapatkan informasi dari model. Sistem dilihat sebagai sebuah database, dimana informasi yang diinginkan dapat ditemukan sebagai attribute; 3. Compute : menandakan kebutuhan user atau sistem yang lain dalam memproses suatu data, dimana dapat melibatkan pembacaan (read) dari model;
53 4. Signal : menggambarkan akan kebutuhan pengawasan dan pengendalian. Dalam sebuah sistem dimana pengawasan dan pengendalian merupakan hal yang penting, maka model diperhatikan supaya dapat dilihat apabila problem domain memasukkan state yang menghasilkan reaksi. Berikut ini merupakan sub kegiatan dalam component function, yaitu : 1. M erancang function sebagai operation; 2. M enelusuri pola yang dapat membantu dalam mengimplementasi function sebagai operation; 3. Spesifikasikan operasi yang kompleks.