8
BAB 2
LANDASAN 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
Menurut 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
Menurut Hall (2008, p.7), Sistem Informasi adalah sebuah rangkaian
prosedur formal di mana data dikumpulkan, diproses menjadi informasi, dan
didistribusikan kepada para pemakai.
Menurut Turban (2009, p.15), Sistem Informasi adalah sistem yang
mengumpulkan, mengolah, menganalisis, dan menyebarkan informasi untuk
tujuan-tujuan tertentu.
2.1.4 Definisi Akuntansi
Menurut 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.
Menurut 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 aktivitas-
aktivitas bisnis suatu perusahaan.
2.2 Sistem Informasi Akuntansi
2.2.1 Definisi Sistem Informasi Akuntansi
Menurut 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.
Menurut 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
Menurut Jones dan Rama (2004, p.7), kegunaan sistem informasi
akuntansi adalah :
• Membuat 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;
• Mendukung 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;
• Mendukung 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
• Menerapkan pengendalian internal
Pengendalian internal mencakup kebijakan-kebijakan, prosedur-
prosedur, dan sistem informasi yang digunakan untuk melindungi aset-
aset perusahaan dari kerugian atau korupsi, dan untuk memelihara
keakuratan data keuangan.
Menurut Wilkinson et al. (2000, p.8-10), tujuan penggunaan sistem
informasi akuntansi adalah :
• Mendukung operasional sehari-hari;
• Mendukung pengambilan keputusan bagi pengambil keputusan
internal; dan
• Untuk memenuhi kewajiban atau tanggung jawab yang sesuai dengan
jabatannya.
2.2.3 Siklus Pemrosesan Transaksi
Menurut 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 Manusia), 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
Menurut 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.
Menurut 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
Menurut 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
Menurut 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 :
• Mengambil 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;
• Menyetujui 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
• Memeriksa 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 :
• Mengambil 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
• Mengirim 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 :
• Melakukan 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
• Memelihara 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 Prosedur Pengendalian Entri pesanan penjualan
1. Pesanan pelanggan yang tidak lengkap atau tidak akurat
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
Sistem pengendalian persediaan
Pengiriman 5. Kesalahan pengiriman : barang dagangan yang salah; jumlah yang salah; alamat yang salah
Rekonsiliasi pesanan penjualan dengan kartu pengambilan dan slip pengepakan; pemindai kode garis; pengendalian aplikasi entri data
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
Penagihan dan Piutang Usaha
7. Kegagalan untuk menagih pelanggan
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
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 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
Masalah-masalah Pengendalian Umum
11. Kehilangan data Prosedur cadangan dan pemulihan dari bencana; pengendalian akses (secara fisik dan logis)
12. Kinerja yang buruk Persiapan dan tinjauan laporan kinerja
2.4 Sistem Pengendalian Internal
2.4.1 Pengertian Sistem Pengendalian Intern
Menurut 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
Menurut 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 yang menetapkan sifat organisasi dan
mempengaruhi kesadaran karyawannya terhadap 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
Manajemen 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
Menurut Bodnar dan Hopwood (2001, p.272), piutang dagang adalah
uang yang terhutang oleh konsumen atas barang yang telah dijual atau jasa yang
diberikan kepadanya.
Menurut Horngren et al. (2005, p.12), piutang dagang adalah suatu janji
untuk menerima uang dari pelanggan dimana perusahaan telah menjual barang-
barang 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
Menurut Romney dan Steinbart (2006, p.430), tipe penagihan dibagi
menjadi 2 (dua) yaitu postbilling dan prebilling. Metode 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
Menurut 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. Metode 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. Metode 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)
Metode 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
Menurut Mathiassen 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
Menurut Mathiassen 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 UML (Unified
Modeling Language), yang merupakan notasi dalam bentuk diagram
untuk merancang sistem menggunakan konsep object-oriented.
2.6.1.2 Prinsip umum OOAD
Menurut Mathiassen 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
Membangun 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 Mathiassen et al. (2000, p.5)
adalah :
1. Merupakan 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. Memberikan informasi yang jelas tentang context dari sistem;
3. Memiliki koneksi yang kuat antara object-oriented anaylsis,
object-oriented design, object-oriented user interfaces, dan
object-oriented programming.
2.7 System Definition
Menurut Mathiassen 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. Menurut Mathiassen 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. Problem-
domain analysis terbagi menjadi 3 (tiga) aktivitas. Aktivitas pertama adalah
memilih object, classes, dan events yang akan menjadi elemen dari problem-
domain 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
Structure
Classes Behaviour
System defini tion
Model
Gambar 2.2 Aktivitas di dalam Pemodelan Problem-Domain (Sumber : Mathiassen et al, 2000, p.46)
2.7.1.1 Classes
Menurut Mathiassen 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)
Events
Classes
Customer Assistant Apprentice Appoinment Plan
reserved √ √ √ √
cancelled √ √ √
treated √ √
employed √ √
resigned √ √
graduated √
agreed √ √ √
2.7.1.2 Structure
Menurut Mathiassen et al. (2000, p.69), structure bertujuan
untuk menjelaskan hubungan struktural antara kelas-kelas dan objek-
objek 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 objek
superior (keseluruhan) yang terdiri atas beberapa objek
inferior (beberapa bagian). Agregasi 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 “associated-
with”. 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
Menurut Mathiassen 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 “ * ”.
Menurut Mathiassen 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
Menurut Mathiassen 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.
Functions
Usage Interfaces
System defini tion
Requirements
Gambar 2.8 Application Domain Analysis (Sumber : Mathiassen et al, 2000, p.117)
2.7.2.1 Usage
Menurut Mathiassen 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
Menurut Mathiassen, et al. (2000, p.340), sequence diagram
menjelaskan mengenai interaksi diantara beberapa objek dalam jangka
waktu tertentu.
Menurut 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
Menurut Mathiassen 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
Menurut Mathiassen 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 Architectural Design
Menurut Mathiassen 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.
Menurut Mathiassen et al. (2000, p.176), terdapat 3 (tiga) aktivitas dalam
architectural design, yaitu criteria, component architecture, dan process
architecture.
2.8.1.1 Criteria
Menurut Mathiassen 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 Pengukuran
Usable Kesesuaian sistem dalam organisasi, hubungan kerja dan konteks teknis.
Secure Adanya tindakan pencegahan atas akses terhadap data dan fasilitas yang tidak diinginkan.
Efficient Fasilitas technical platform yang sudah ada dapat digunakan secara ekonomis sesuai dengan fungsinya.
Correct Kemampuan sistem yang dapat memenuhi kebutuhan pengguna.
Reliable Pemenuhan performa yang diinginkan pada waktu function dieksekusi.
42
Maintainable Pengalokasian biaya dan perbaikan sistem yang rusak.
Testable Biaya untuk menjamin bahwa sistem dapat menjalankan function-function yang ada di dalamnya.
Flexible Biaya yang dibutuhkan untuk memodifikasi sistem yang dikembangkan.
Comprehensible
Usaha yang dibutuhkan untuk memperoleh pemahaman yang logis dari sebuah sistem.
Reusable Adanya potensi untuk memakai bagian-bagian dari sistem pada sistem lain yang berhubungan.
Portable Biaya dari pemindahan sistem ke sistem platform yang lainnya.
Interoperable Biaya penggabungan sistem dengan sistem lainnya.
2.8.1.2 Component Architecture
Menurut Mathiassen et al. (2000, p.189), component architecture
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 Mathiassen 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);
Gambar 2.10 Layered Architecture Pattern (Sumber : Mathiassen et al, 2000, p.193)
<<component>> Layer i+1
<<component>> Layer i
<<component>> Layer i-1
Upwards Interface
Downwards Interface
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;
Gambar 2.11 Generic Architecture Pattern (Sumber : Mathiassen et al, 2000, p.196)
<<component>> Interface
<<component>> User Interface
<<component>> System Interface
<<component>> Interface
<<component>> UIS
<<component>> NS
<<component>> Function
<<component>> Model
<<component>> DBS
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 client-
server architecture dapat dilihat pada gambar 2.12.
Gambar 2.12 Client-Server Architecture Pattern
(Sumber : Mathiassen et al, 2000, p.197)
<<component>> Client 1
<<component>> Client 2
<<component>> Client n
<<component>> Server
…
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 Architecture
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 Architecture
Menurut Mathiassen et al. (2000, p.209), process architecture
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
Menurut Mathiassen 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 model. Tujuannya 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 1 (satu) object dengan object lainnya dan
memungkinkan menambahkan hubungan 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. Merancang function sebagai operation;
2. Menelusuri pola yang dapat membantu dalam mengimplementasi
function sebagai operation;
3. Spesifikasikan operasi yang kompleks.