BAB 2 LANDASAN TEORI
2.1
Sistem Informasi Akuntansi 2.1.1
Pengertian Sistem Informasi Akuntansi Menurut Romney and Steinbart (2006) dapat disimpulkan bahwa, “Sistem informasi akuntansi adalah suatu sistem yang mengumpulkan, mencatat, menyimpan dan memproses data untuk menghasilkan informasi bagi para pengambil keputusan.” (p.6). Menurut Gelinas, et al. (2005) dapat disimpulkan bahwa, ”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” (p.16). Menurut Kieso, et al (2004), Sistem informasi akuntansi adalah ”the system of collecting and processing transaction data and disseminating financial information to interested parties.” (p.62). Menurut Jones and Rama (2006), Sistem informasi akuntansi adalah “a subsistem of management information system that provides accounting and financial information, as well as other information obtained in the routine processing of accounting transactions.” (p.5). Berdasarkan definisi-definisi tersebut, dapat disimpulkan bahwa sistem informasi akuntansi adalah kesatuan kegiatan didalam organisasi yang berbasis komputer dan digunakan untuk mengolah data-data akuntansi
10 dengan tujuan untuk menghasilkan informasi keuangan yang berguna bagi pihak yang membutuhkan.
2.1.2
Komponen Sistem Informasi Akuntansi Menurut Romney and Steinbart (2006) dapat disimpulkan bahwa, “Sistem informasi akuntansi terdiri dari enam komponen, yaitu : 1. People, yang mengoperasikan sistem dan menampilkan berbagai fungsi; 2. Procedures and instructions, baik manual maupun otomatis termasuk dalam kegiatan pengumpulan, pemrosesan, dan penyimpanan data tentang kegiatan organisasi; 3. Data, tentang organisasi dan proses bisnis organisasi; 4. Software, digunakan untuk memproses data organisasi; 5. Information technology infrastructure, termasuk komputer, peripheral devices, dan peralatan jaringan komunikasi yang digunakan untuk mengumpulkan, memproses, menyimpan dan mentransformasikan data dan informasi; 6. Internal control and security measures, yang menjaga keamanan data dalam sistem informasi akuntansi.” (p.6-7).
2.1.3
Karakteristik Informasi yang Berguna Romney and Steinbart (2006) menjelaskan beberapa karakteristik sebuah informasi yang berguna sebagai berikut :”
11 1. Relevant, information is relevant if it reduces uncertainty, improve decision makers’ ability to make predictions, or confirms or corrects their prior expectations; 2. Reliable, information is reliable if it is free from error or bias and accurately represents the events or activities of the organization; 3. Complete, information is complete if it does not omit important aspects of the underlying events or activities that it measures; 4. Timely, information is timely if it is provided in time for decision makers to make decisions; 5. Understandable, information is understandable if it is presented in a useful and intelligible format; 6. Verifiable, information is verifiable if two knowledgeable people acting independently would each produce the same information; 7. Accessible, information is accessible if it is available to users when they nees it and in a format they can use.” (p.6).
2.2
Sistem Informasi Akuntansi Siklus Pendapatan (Revenue Cycle) 2.2.1
Pengertian Siklus Pendapatan (Revenue Cycle) Menurut Jones and Rama (2006), “Revenue cycle including customer inquiries, customer orders, providing goods or services, billing customers, collecting cash, and depositing cash.” (p.476). Menurut
Bodnar
and
Hopwood
(2004),
“Revenue
cycle
merupakan events related to the distribution of goods and services to other entities and the collection of related payments.” (p.7).
12 Berdasarkan definisi-definisi tersebut, dapat disimpulkan bahwa revenue cycle adalah kumpulan aktivitas bisnis yang mengatur proses operasi informasi mulai dari penerimaan order dari pelanggan, pengiriman barang atau jasa, proses billing, sampai pengumpulan pembayaran kas dari hasil penjualan tersebut.
2.2.2
Tujuan Utama Siklus Pendapatan (Revenue Cycle) Menurut Wilkinson, et al. (2000), Tujuan utama siklus pendapatan sebagai berikut : “ 1. To record sales orders promptly and accurately; 2. To verify that the customers are worthy of credit; 3. To ship the products or perform the services by agreed dates; 4. To bill or products or services in a timely and an accurate manner; 5. To record and classify cash receipt promptly and accurately; 6. To post sales and cash receipts to proper customers’ accounts in the accounts receivable ledger; 7. To safeguard products until shipped; 8. To safeguard cash until deposited.” (p.416-417).
2.2.3
Informasi yang Dibutuhkan dalam Siklus Pendapatan (Revenue Cycle) Menurut Romney and Steinbart (2006), dapat disimpulkan bahwa informasi yang dibutuhkan dalam siklus pendapatan adalah sebagai berikut:”
13 1. Response time to customer inquiries about account balances and order status; 2. Decide whether to extend credit to a particular customer; 3. Determine inventory availability; 4. Select methods for delivering merchandise; 5. Time required to fill and deliver orders; 6. Percentage of sales that required back orders; 7. Customer satisfaction rates and trends; 8. Analyses of market share and sales trends; 9. Profitability analyses by product, customer, and sales region; 10.Sales volume in both dollars and number of customers; 11.Effectiveness of advertising and promotions; 12.Sales staff performance; 13.Bad-debt expenses and credit policies.” (p.382-383).
2.2.4
Aktivitas Utama dalam Siklus Pendapatan (Revenue Cycle) Menurut Romney and Steinbart (2006), Terdapat 4 (empat) kegiatan kerja dalam siklus pendapatan diantaranya sebagai berikut : “ 1. Sales Order Entry; 2. Shipping; 3. Billing; 4. Cash Collections.” (p.356).
14 2.2.4.1
Proses Penerimaan Pesanan dalam Siklus Pendapatan (Revenue Cycle) Menurut Romney and Steinbart (2006) dapat disimpulkan bahwa, “Kegiatan siklus pendapatan dimulai dari penerimaan pesanan pelanggan. Proses penerimaan pesanan pelanggan terdiri dari 3 (tiga) tahap diantaranya : 1. taking customer order Data pesanan pelanggan dicatat dalam sales order. Sales order berisi sejumlah informasi mengenai nomor barang, jumlah barang, harga, dan keterangan penjualan lainnya; 2. credit approval Bagi penjualan secara kredit, batasan kredit harus disetujui terlebih dahulu sebelum diproses lebih lanjut. Bagi pelanggan yang sudah lama, perusahaan melihat sejarah pembayaran kreditnya untuk kemudian dapat diberikan atau dinaikan batasan kreditnya; 3. checking inventory availability Langkah selanjutnya adalah pengecekan ketersediaan barang yang dipesan oleh pelanggan sehinggan kemudian perusahaan menginformasikan kepada pelanggan mengenai perkiraan tanggal pengiriman.” (p.356-362).
15 2.2.4.2
Proses
Pengiriman
Barang
dalam
Siklus
Pendapatan
(Revenue Cycle) Menurut Romney and Steinbart (2006) dapat disimpulkan bahwa, “Kegiatan utama yang kedua dalam siklus pendapatan adalah pengisian pesanan pelanggan dan pengiriman pesanan pelanggan. Proses ini terdiri dari 2 (dua) tahap diantaranya : 1. picking and packing the order Fungsi gudang menggunakan picking ticket untuk mengidentifikasi produk dan jumlah masing-masing produk yang akan dikeluarkan dari gudang. Barang yang dikeluarkan dari gudang dihitung dan dicatat pada picking ticket kemudian akan diserahkan ke fungsi pengiriman untuk dikirimkan; 2. shipping the order Fungsi
pengiriman
membandingkan
jumlah
fisik
persediaan dengan jumlah yang ada pada picking ticket dan sales order. Fungsi ini membawa surat muat (bill of lading) yang
merupakan
perjanjian
legal
dalam
memberikan
tanggungjawab terhadap barang yang dikirimkan.” (p.363365).
2.2.4.3
Proses Penagihan dalam Siklus Pendapatan (Revenue Cycle) Menurut Romney and Steinbart (2006) dapat disimpulkan bahwa, “Aktivitas utama yang ketiga berkaitan dengan billing customer. Proses ini terdiri dari 2 (dua) tahap diantaranya :
16 1. invoicing Kegiatan ini merupakan kegiatan pemrosesan informasi yang dikemas kembali dan meringkas sejumlah informasi dari pengisian sales order sampai kegiatan pengiriman. Dokumen yang digunakan adalah sales invoice, yang menegaskan pada pelanggan jumlah yang harus dibayar dan kemana pelanggan harus mengirimkan pembayaran; 2. maintain accounts receivable Fungsi piutang ini dibagi dalam 2 (dua) tugas utama diantaranya yaitu menggunakan informasi dalam invoice untuk men-debit akun pelanggan dan secara berkala mengkredit akun ini ketika pembayaran diterima. Terdapat 2 (dua) cara untuk mengendalikan piutang yaitu : •
Open invoice method Pelanggan biasanya membayar sejumlah uang menurut masing-masing invoice. Biasanya, 2 (dua) rangkap invoice yang akan dikirimkan ke pelanggan dimana 1 (satu) rangkap akan dikembalikan jika melakukan pembayaran. Copy ini disebut remittance advice;
•
Balance forward method Pelanggan biasanya membayar menurut jumlah yang ada pada laporan bulanan, dibandingkan menurut invoice
17 satuan. Laporan bulanan mendaftar semua transaksi termasuk penjualan dan pembayaran yang ada selama bulan terakhir serta menginformasikan pada pelanggan jumlah saldo piutang terakhir.” (p.367-369).
2.2.4.4
Proses Penerimaan Kas dalam Siklus Pendapatan (Revenue Cycle) Menurut Romney and Steinbart (2006) dapat disimpulkan bahwa, “Aktivitas terakhir dalam siklus pendapatan berkaitan dengan
penerimaan
kas.
Fungsi
kasir
akan
melaporkan
penerimaan, menangani remittance pelanggan dan menyetorkan uang ke bank.” (p.371).
2.2.5
Fungsi yang Terkait dalam Siklus Pendapatan (Revenue Cycle) Menurut Bodnar and Hopwood (2004), dapat disimpulkan bahwa fungsi yang terkait dalam siklus pendapatan meliputi : “ 1. Fungsi Penjualan Fungsi ini antara lain bertugas menerima pesanan pelanggan, meminta otorisasi kredit, mengisi faktur penjualan tunai, serta menentukan tanggal dan tujuan pengiriman; 2. Fungsi Kredit Fungsi ini antara lain bertugas meneliti status kredit pelanggan dan memberikan otorisasi kredit kepada pelanggan;
18 3. Fungsi Gudang Fungsi ini antara lain bertugas menyimpan dan menyiapkan barang yang dipesan pelanggan; 4. Fungsi Pengiriman Fungsi ini antara lain bertugas menyerahkan barang atas dasar surat pesanan penjualan yang diterimanya dari fungsi penjualan; 5. Fungsi Penagihan Fungsi ini antara lain bertugas memverifikasi pesanan berdasarkan dokumen-dokumen pesanan yang diterimanya kemudian
membuat
dan
mengirimkan
faktur
kepada
pelanggan; 6. Fungsi Akuntansi Fungsi ini antara lain bertugas membuat pencatatan transaksi penjualan, piutang, serta penerimaan kas secara periodik; 7. Fungsi Kas Fungsi ini antara lain bertanggung jawab sebagai penerima kas dari hasil penjualan untuk diteruskan ke bank; 8. Fungsi Pemeriksa atau Audit Intern Fungsi ini antara lain bertanggung jawab dalam melaksanakan penghitungan kas yang ada di tangan fungsi kas secara periodik,
serta
bertanggung
jawab
dalam
melakukan
rekonsiliasi bank untuk mengecek ketelitian catatan kas yang diselenggarakan oleh fungsi akuntansi.” (p.265-268, p.321).
19 2.2.6
Dokumen-Dokumen yang Digunakan dalam Siklus Pendapatan (Revenue Cycle) Menurut Wilkinson, et al. (2000), dapat disimpulkan bahwa “Dokumen yang digunakan dalam siklus pendapatan adalah : 1. Customer order Dokumen yang berisikan pesanan dari pelanggan yang ditujukan ke perusahaan.
Pelanggan
dapat
memberikan
customer
order
ke
perusahaan atau salesperson menyiapkan formulir khusus untuk mencatat pesanan pelanggan; 2. Sales order Merupakan
dokumen
formal,
dibuat
secara
ber-rangkap
yang
dipersiapkan untuk mencatat pesanan pelanggan berdasarkan dokumen customer order; 3. Order acknowledgment Biasanya merupakan tembusan sales order yang dikirimkan ke pelanggan yang memberitahukan bahwa pesanan-nya telah diterima dan dalam proses pengiriman; 4. Picking list Merupakan tembusan sales order atau dokumen terpisah yang dikirimkan ke gudang untuk mengeluarkan barang yang dipesan dari gudang;
20 5. Packing slip Merupakan tembusan sales order yang ditempelkan pada pembungkus barang untuk memudahkan fungsi penerimaan di perusahaan pelanggan dalam mengidentifikasi barang-barang yang diterimanya; 6. Billing of lading Merupakan dokumen pengiriman yang digunakan sebagai bukti penyerahan barang dari perusahaan kepada perusahaan angkutan umum; 7. Shipping notice Merupakan tembusan sales order atau dokumen pengiriman terpisah yang dikirimkan ke pelanggan sebagai bukti bahwa barang telah dikirimkan; 8. Sales invoice Merupakan dokumen yang dikirimkan ke pelanggan yang berisi sejumlah barang yang dipesan dan harus dibayar; 9. Remittance advice Merupakan dokumen yang memperlihatkan sejumlah pembayaran yang diterima perusahaan dari pelanggan; 10. Deposit slip Merupakan dokumen yang digunakan untuk menyetorkan uang di bank; 11. Back order Merupakan surat pemberitahuan yang disiapkan saat barang yang dipesan tidak memenuhi jumlah pesanan atau tidak sesuai dengan sales order;
21 12. Credit memo Merupakan dokumen yang menyatakan untuk meng-credit penjualan pelanggan karena adanya retur atau allowance; 13. Credit application Merupakan formulir yang dipersiapkan ketika pelanggan baru meminta permohonan kredit. Formulir ini berisi rincian kondisi data pelanggan dan tingkat pendapatan-nya; 14. Salesperson call report Merupakan formulir yang menggambarkan bahwa pesanan pelanggan yang lewat di tangannya telah dipenuhi sehingga laporan ini dapat digunakan untuk menghitung kemungkinan komisi yang diperoleh salesperson atas penjualan yang menjadi haknya; 15. Deliquent notice Merupakan dokumen surat pemberitahuan ke pelanggan yang berisi saldo akhir piutang pelanggan telah lewat jatuh tempo; 16. Write-off notice Merupakan dokumen yang disiapkan oleh manajer kredit ketika sebuah akun piutang menunjukkan posisi tidak tertagih; 17. Cash register receipts Merupakan
formulir
yang
digunakan
menggambarkan kas yang diterima.” (p.419).
oleh
perusahaan
untuk
22 2.2.7 Catatan Akuntansi yang Digunakan dalam Siklus Pendapatan (Revenue Cycle) Menurut Wilkinson, et al. (2000), dapat disimpulkan bahwa “Catatan akuntansi yang digunakan dalam siklus pendapatan terdiri dari : 1. Sales Journal Jurnal penjualan digunakan untuk mencatat transaksi penjualan, baik secara tunai maupun kredit; 2. The Credit Memo Journal Jurnal memo kredit digunakan untuk mencatat berkurangnya pendapatan penjualan dan piutang dagang akibat dari transaksi retur penjualan; 3. Cash Receipts Journal Dalam prosedur pencatatan piutang, jurnal penerimaan kas digunakan untuk mencatat berkurangnya piutang atas transaksi penerimaan kas dari debitur; 4. Account Receivable Subsidiary Ledger Catatan akuntansi ini merupakan buku pembantu yang berisi rincian mutasi piutang perusahaan kepada tiap-tiap debiturnya.” (p.437).
2.2.8
Analisa Kredit Secara tidak langsung setiap perusahaan yang melaksanakan penjualan kredit melakukan analisa terhadap kredit yang akan diberikan ke pelanggannya. Menurut Munawir (2004) dapat disimpulkan bahwa, “Syarat-syarat pemberian kredit dikenal dengan 5 C, yaitu sebagai berikut :
23 1. Character Keterangan
mengenai sifat-sifat pribadi pelanggan dalam
memenuhi kewajiban keuangannya. Karakter mencerminkan kejujuran seseorang. Para manajer kredit seringkali mencari informasi dari rekanrekan kerja, pegawai dan saingan mengenai reputasi, kebiasaan pelanggan dan pergaulan sosialnya; 2. Capacity Hal ini menyangkut kemampuan pimpinan perusahaan pelanggan beserta staff-nya, baik kemampuan dalam manajemen maupun keahlian dalam bidang usahanya. Kapasitas pelanggan dapat dilihat dari angka penjualan dan pembeliannya, angka hasil produksi, perhitungan labarugi perusahaan, dan data finansial lainnya; 3. Capital Hal ini mengacu pada kondisi umum bisnis pelanggan secara keseluruhan yang ditunjukkan dalam laporan keuangan. Manajer kredit biasanya memberikan perhatian khusus pada solvabilitas, likuiditas dan rentabilitas pelanggan terhadap kewajiban-kewajibannya; 4. Collateral Collateral berarti jaminan. Hal ini menunjukkan besarnya aktiva yang akan dikaitkan sebagai jaminan atas kredit yang diberikan ke pelanggan; 5. Conditions Hal ini mengacu pada kondisi ekonomi secara umum dan kondisi pada sektor usaha si pelanggan yang dapat mempengaruhi kemampuan
24 pelanggan untuk membayar. Contohnya : pada saat resesi ekonomi, manajer kredit akan memperketat limit kredit atas penjualan sebagai antisipasi terhadap kemungkinan turunnya kemampuan membayar si pelanggan.” (h.235-236).
2.3 Pengendalian Intern Atas Siklus Pendapatan (Revenue Cycle) 2.3.1
Pengertian Pengendalian Intern (Internal Control) Menurut Jones and Rama (2006), pengendalian internal adalah “the rules, policies, procedurres, and information system used to ensure that a company’s financial data are accurate and reliable and to protect a company’s assets from loss or theft.” (p.13). Menurut Arens, et al. (2005), “Internal Control is a policies and procedures designed to provide management with reasonable assurance that the company achieves its objectives and goals.” (p.270). Menurut Romney and Steinbart (2006), berdasarkan Committee of Sponsoring Organizations (COSO) dapat disimpulkan bahwa, “Internal Control is a process effected by an entity’s board of directors, management, and other personnel – designed to provide reasonable assurance regarding the achievement of objectives.” (p.195). Berdasarkan definisi-definisi tersebut, dapat disimpulkan bahwa Pengendalian internal adalah suatu pengendalian yang dipengaruhi oleh manajemen dalam melindungi kekayaan perusahaan, mengecek keakuratan dan keandalan data dan informasi keuangan yang diperoleh, dan memastikan segala kebijakan dan peraturan perusahaan dipatuhi.
25 2.3.2
Tujuan Sistem Pengendalian Intern Menurut Romney dan Steinbart (2006), berdasarkan COSO, “Tujuan sistem pengendalian intern adalah sebagai berikut : 1. menghasilkan laporan keuangan yang dapat dipercaya (reliablility of financial reporting); 2. menghasilkan operasi yang efektif dan efisien (effectiveness and efficiency of operations); 3. memenuhi dalil dan peraturan yang ditetapkan (compliance with applicable laws and regulations).” (p.196).
2.3.3
Komponen Sistem Pengendalian Intern Menurut Romney dan Steinbart (2006), berdasarkan COSO, ”Terdapat lima komponen yang saling berhubungan dalam sistem pengendalian intern antara lain sebagai berikut: 1. Control Environment Inti dari semua bisnis adalah orangnya – sifat masing-masing individu, termasuk integritas, nilai etika, dan kemampuan – dan lingkungan dimana mereka beroperasi. Mereka adalah alat yang mengendalikan organisasi dan merupakan dasar dari segala sesuatu; 2. Control Activities Prosedur dan kebijakan pengendalian harus ditetapkan dan dijalankan untuk membantu meyakinkan bahwa tindakan yang dilakukan oleh pihak manajemen untuk menanggulangi resiko dan untuk mencapai tujuan organisasi terlihat efektif;
26 3. Risk Assessment Perusahaan harus berhati-hati terhadap resiko yang dihadapi. Perusahaan harus membentuk suatu tujuan, yang digabungkan dengan penjualan, produksi, pemasaran, keuangan, dan aktivitas lainnya sehingga perusahaan dapat beroperasi dengan baik. Perusahaan juga harus
menyusun
sebuah
mekanisme
untuk
mengidentifikasi,
menganalisis dan mengatur resiko-resiko yang berhubungan dengan masing-masing bagian; 4. Information and Communication Yang mengelilingi aktivitas pengendalian adalah sistem informasi dan komunikasi. Mereka memungkinkan orang-orang dari perusahaan menerima dan saling bertukar informasi yang dibutuhkan untuk memimpin, mengatur, dan mengontrol operasi yang ada; 5. Monitoring Keseluruhan proses harus diawasi dan melakukan perubahan bila diperlukan. Dengan cara ini, sistem dapat bereaksi dengan lebih dinamis, berubah sesuai dengan kondisi yang ada.” (p. 196).
2.3.4
Pengendalian Aplikasi dalam Siklus Pendapatan (Revenue Cycle) Menurut Wilkinson, et al. (2000) dapat disimpulkan bahwa, ”Pengendalian aplikasi yang relevan dalam siklus pendapatan adalah :
27 Input controls 1.
Menyiapkan dan merancang dokumen-dokumen yang berhubungan dengan penjualan, pengiriman barang, dan penerimaan kas dengan bernomor urut tercetak serta diotorisasi oleh orang yang berwenang;
2.
Melakukan validasi data pada sales order dan remittance advice dan memasukkannya dalam proses;
3.
Memperbaiki kesalahan yang terdeteksi saat data dimasukkan, sebelum data dikirimkan ke pelanggan dan persediaan dicatat;
Processing controls 1.
Mengeluarkan barang dari gudang dan mengirimkan barang tersebut hanya atas dasar otorisasi tertulis, seperti picking lists;
2.
Pengiriman faktur ke pelanggan dilakukan atas dasar notifikasi dari fungsi pengiriman mengenai barang yang telah dikirimkan;
3.
Penerbitan memo kredit untuk retur penjualan hanya dilakukan jika barang telah dikembalikan;
4.
Verifikasi semua data komputer terhadap faktur penjualan sebelum dikirimkan ke akun pelanggan. Lalu bandingkan faktur penjualan dengan dokumen pengiriman untuk meyakinkan bahwa barang yang dikirim sesuai pesanan;
5.
Verifikasi bahwa jumlah total akun piutang yang terjadi sama dengan jumlah total yang telah dimasukkan dalam catatan komputer, dan mengirimkannya ke akun buku besar;
6.
Simpan semua kas segera setelah diterima untuk menghindari penyelewengan dana;
28 7. Perbaiki kesalahan yang terjadi selama langkah proses ini dengan mem-posting balik akun yang salah dan memasukkan akun yang benar; Output controls 1.
Menyiapkan laporan secara bulanan yang harus dikirim kepada semua pelanggan yang berhutang;
2.
Copy file semua dokumen yang berhubungan dengan transaksi penjualan dan penerimaan kas diberi nomor urut sehingga memudahkan pengecekan dan tidak ada nomor yang terlewat;
3.
Mencetak daftar ringkasan transaksi dan akun-akun secara periodik sebagai dasar untuk melakukan review.” (p.453).
29 2.4
Metode Analisis dan Perancangan Berorientasi Objek 2.4.1
Objek Menurut Whitten, et al. (2004), “objek adalah enkapsulasi data (yang disebut properti) yang menggambarkan orang, tempat, kejadian, atau barang dengan seluruh prosesnya (yang disebut method) yang dapat digunakan atau diupdate data dan propertinya.” (p.109). Objek merupakan dasar dalam Object Oriented Analysis and Design (OOA&D). Menurut Mathiassen, et al. (2000), “objek adalah suatu entitas dengan identitas, state, dan behaviour.” (p.4). Setiap objek tidak digambarkan secara sendiri-sendiri, melainkan istilah class digunakan untuk menggambarkan kumpulan objek-objek. Menurut Mathiassen, et al. (2000) dapat disimpulkan bahwa, “class adalah sebuah gambaran dari kumpulan objek yang memiliki struktur, atribut, dan pola tingkah laku yang digunakan secara bersama-sama.” (p.4). Berdasarkan definisi diatas dapat disimpulkan bahwa objek adalah suatu bentuk nyata yang dapat dilihat, disentuh, atau dirasakan dimana pemakai dapat menyimpan data dan berasosiasi dengan tingkah lakunya.
2.4.2 Kegiatan Utama dan Hasil dari Analisa dan Perancangan Berorientasi Objek Menurut Mathiassen, et al. (2000), “Kegiatan utama dan hasil dari analisa dan perancangan orientasi objek dapat dilihat pada Gambar 2.1 dibawah :
30
Requirement for use Problem-domain analysis
Applicationdomain analysis Component design Model Specifications of component
Specifications of architecture Architectural design
Gambar 2.1 Main Activities and results in object-oriented analysis and design Sumber: Mathiassen,et al. (2000, p15)
2.4.3
System Definition Menurut Mathiassen, et al. (2000), “System definition adalah suatu gambaran umum sistem terkomputerisasi yang dinyatakan dalam bahasa yang umum.” (p.24). Rich Pictures Menurut Mathiassen, et al. (2000), “rich picture adalah suatu gambaran informal yang ditampilkan oleh illustrator dalam memahami sebuah situasi.” (p.26). Rich picture juga dapat digunakan sebagai alat yang berguna untuk memfasilitasi dan menggambarkan komunikasi yang baik antara pengguna dengan sistem. Rich picture memfokuskan pada aspek-aspek penting dari sistem tersebut, yang ditentukan sendiri oleh pengembang sistem dengan membiasakan diri dalam situasi yang terjadi, mencari informasi dari banyak
31 orang untuk mengetahui apa yang harus terjadi atau seharusnya terjadi, dan mungkin melakukan beberapa wawancara formal.
2.4.4
The FACTOR Criterion Menurut Mathiassen, et al. (2000), “Kriteria FACTOR terdiri dari 6 (enam) elemen dan disajikan dalam Tabel 2.1 di bawah ini.” (p.39-40). Elemen ini sebagai keputusan dasar yang berkaitan dalam menghasilkan solusi yang terkomputerisasi.
Kriteria
Penjelasan
Functionality
Fungsi sistem yang mendukung tugas-tugas application-domain
Application Domain
Bagian organisasi yang mengadministrasi, memonitor, dan mengontrol problem-domain
Condition
Kondisi dimana sistem akan dikembangkan dan digunakan
Technology
Mencakup teknologi yang digunakan untuk mengembangkan sistem dan teknologi dimana sistem akan dijalankan
Objects
Objek utama dari problem-domain
Responsibility
Tanggung jawab keseluruhan dari sistem dalam hubungannya dengan konteks Tabel 2.1 The FACTOR Criterion
2.4.5
Problem-Domain Menurut Mathiassen, et al. (2000), “Problem-domain merupakan bagian dari context yang diadministrasikan, dimonitor, atau dikendalikan oleh sebuah sistem.” (p.45). Tujuan dari analisis problem-domain adalah untuk mengidentifikasikan dan membuat model dari problem-domain.
32 Tujuan dari aktivitas ini adalah membangun sebuah model yang dapat digunakan untuk merancang dan mengimplementasikan sebuah sistem yang dapat memproses, berkomunikasi dan menyajikan informasi mengenai problem domain. Analisis problem-domain memfokuskan pada informasi apa yang harus ditangani oleh sistem dan menghasilkan sebuah model yang merupakan gambaran dari kelas-kelas, objek-objek, struktur dan perilaku yang sama dalam problem-domain. Aktivitas dalam analisis problem domain dapat dilihat pada Gambar 2.2 dibawah ini : System definition
Behavior
Classes
Model Structure
Gambar 2.2 Aktivitas pada problem-domain analysis Sumber: Mathiassen,et al. (2000, p46)
2.4.5.1
Classes Mengacu pada Mathiassen, et al. (2000) kegiatan classes merupakan kegiatan pertama dalam analisis problem-domain. Ada beberapa tugas utama dalam kegiatan ini yaitu: abstraksi fenomena dari problem-domain dalam objek dan event; klasifikasi objek dan event; pemilihan kata class-class dan event-event yang akan dipelihara informasinya oleh sistem.
33 Pemilihan
class-class
tersebut
bertujuan
untuk
mendefinisikan dan membatasi problem-domain. Sementara pemilihan kumpulan event yang dialami atau dilakukan oleh satu atau lebih objek bertujuan untuk membedakan tiap-tiap class dalam problem-domain. Kegiatan class akan menghasilkan event table. Dimensi horisontal dari event table berisi class-class yang terpilih, sementara dimensi vertikal berisi event-event terpilih dan tanda cek ( √ ) digunakan untuk mengidentifikasikan objek-objek dari class yang berhubungan dalam event tertentu. Untuk lebih jelasnya, event table dapat dilihat pada Tabel 2.2 berikut ini : (p.49).
Events Reserved
Customer √
Assistant √
Classes Apprentice
Appointment √
Cancelled
√
Treated
√
Employed
√
√
Resigned
√
√ √
Graduated Agreed
Plan √
√
√
Tabel 2.2 Contoh event-table Sumber: Mathiassen,et al. (2000, p50)
√
34 2.4.5.2
Structure Mengacu pada Mathiassen, et al. (2000) kegiatan kedua dalam
analisis
problem-domain
ini
bertujuan
untuk
menggambarkan hubungan struktural yang abstrak dan umum antara classes dan mencari hubungan yang konkrit dan spesifik antar objek-objek dalam problem-domain. (p.69). Menurut Mathiassen, et al. (2000), “Ada empat tipe hubungan struktural dimana keempatnya dibagi ke dalam dua bagian yaitu: 1. Class structure, menggambarkan hubungan konseptual yang statis antar class, yang meliputi : o
Generalization Generalisasi adalah suatu kelas umum (super class) yang menggambarkan keadaan atau sifat yang sama ke dalam kelompok class yang lebih khusus (sub class). Generalisasi diformulasikan sebagai hubungan “is a”.
o
Cluster Cluster adalah kumpulan class yang saling berhubungan
yang
dapat
menyediakan
ringkasan
problem-domain. 2. Object structure, menggambarkan hubungan yang dinamik dan konkret antara objek-objek dalam problem domain, yang meliputi :
35 o
Aggregation Agregasi adalah sebuah objek superior (the whole) yang terdiri dari sejumlah objek (the parts). Agregasi diformulasikan sebagai hubungan “has a”.
o
Association Asosiasi adalah hubungan yang memiliki arti antara sejumlah objek. Hubungan ini berbeda dari hubungan agregasi karena objek yang satu tetap ada walaupun objek yang lain tidak ada. Asosiasi digambarkan dalam bentuk garis solid yang menghubungan objek-objek. Hasil dari kegiatan ini adalah class diagram. Class
diagram menghasilkan ringkasan model problem-domain yang jelas dengan menggambarkan semua struktur hubungan statik antar class dan objek yang ada dalam model dari sistem yang berubah-ubah.” (p.72-77).
2.4.5.3
Behaviour Mengacu pada Mathiassen, et al. (2000) kegiatan behaviour adalah kegiatan terakhir dalam analisis problemdomain yang bertujuan untuk memodelkan apa yang terjadi dalam perilaku dinamis pada sistem problem-domain. Tugas utama dalam kegiatan behaviour adalah menggambarkan pola perilaku (behaviour pattern) dan atribut dari setiap class. (p.90).
36 Hasil dari kegiatan ini adalah statechart diagram yang dapat dilihat pada gambar 2.3 di bawah ini :
/ account opened
/ account closed Open / amount deposit / amount withdrawn
Gambar 2.3 Contoh Statechart Diagram Sumber: Mathiassen,et al. (2000, p90) Mengacu pada Mathiassen, et al. (2000) ada 3 notasi untuk behavioral pattern yaitu : 1. Sequence, dimana event muncul satu per satu secara berurutan; 2. Selection,
dimana
terjadi
pemilihan
satu
event
dari
sekumpulan event yang muncul; 3. Iteration, dimana sebuah event muncul sebanyak nol atau berulang kali. (p.93).
2.4.6
Application Domain Menurut Mathiassen, et al. (2000), “Application domain adalah suatu organisasi yang mengatur, memonitor, dan mengendalikan problemdomain. Tujuan dari application domain adalah untuk menganalisis kebutuhan dari pengguna sistem.” (p.115).
37 Pada application domain terdapat tiga kegiatan utama seperti yang dapat dilihat pada Gambar 2.4 dibawah ini:
System definition
Interfaces
Usage
Requirements Functions
Gambar 2.4 Application-domain analysis Sumber: Mathiassen, et al. (2000, p117)
2.4.6.1
Usage Usage bertujuan untuk menjelaskan bagaimana actor berinteraksi dengan suatu sistem. Menurut Mathiassen, et al. (2000), “Actor adalah suatu abstraksi dari pemakai atau sistem lain yang berinteraksi dengan target sistem.” (p.119). Hasil dari analisis kegiatan usage adalah use-case diagram. Menurut Mathiassen, et al. (2000), “Use case adalah sebuah pola untuk berinteraksi antara sistem dan aktor dalam application domain.” (p.120). Untuk menggambarkan use case dapat menggunakan statechart diagram, use case spesification
38 atau keduanya. Penggunaan use case spesification meliputi 3 (tiga) bagian, yaitu use case, object, dan
function. Use case
merupakan urutan sistem yang berjalan, object menunjukkan aktor apa saja yang berhubungan dengan kegiatan use case, dan function akan dibahas setelah usage. Sequence Diagram Merupakan diagram yang menunjukkan urutan dari suatu kegiatan, event atau fungsi dari use case. Diagram ini dimulai dengan mencari pemicu dari use case, yang dibuat satu use case satu sequence diagram.
2.4.6.2
Functions Mengacu pada Matiassen, et al. (2000), Function bertujuan untuk menjelaskan kemampuan sistem menghasilkan informasi. Menurut Mathiassen, et al. (2000), “Function adalah sebuah fasilitas untuk membuat sebuah model yang berguna untuk aktor.” (p.138). Secara tradisional, sebuah function merupakan suatu penghitungan dimana data yang di masukkan akan diubah menjadi data keluaran. Menurut Mathiassen, et al. (2000), “Function memiliki 4 (empat) tipe yaitu : 1. Update Function yang diaktifkan oleh kegiatan problem-domain dan menghasilkan perubahan dalam state model-nya;
39 2. Signal Function yang diaktifkan oleh perubahan state model dan menghasilkan reaksi dalam konteks. Reaksi ini mungkin akan tampak pada aktor dalam application-domain, atau campur tangan langsung dalam problem-domain; 3. Read Function yang diaktifkan oleh kebutuhan kerja aktor dalam memperoleh informasi dan mengakibatkan sistem menampilkan bagian yang relevan dari sebuah model; 4. Compute Function yang diaktifkan oleh kebutuhan kerja aktor dalam memperoleh informasi dan terdiri dari sebuah penghitungan yang berkaitan dengan disediakannya informasi oleh aktor atau suatu model, yang menghasilkan tampilan hasil perhitungan.” (p.138). Hasil dari kegiatan function adalah function list atau daftar dari function yang lengkap, yang merinci beberapa function yang kompleks. Function list dibuat berdasarkan use case. Kompleksitas merupakan penilaian seberapa sulitnya terjadinya sesuatu hal dalam mengembangkan function. Kompleksitas function list dimulai dari yang simple sampai very complex. Untuk nilai kompleksitas yang complex dan very complex suatu function akan dipartisi lagi menjadi function yang lebih sederhana.
40 2.4.6.3
Interfaces Interface
digunakan
untuk
menjelaskan
kebutuhan
rancangan antarmuka dari suatu sistem. Menurut Mathiassen, et al. (2000), “Interface adalah suatu fasilitas yang membuat model sistem dan fungsi-fungsi yang tersedia bagi aktor.” (p.151). Proses manual dan sistem yang terkomputerisasi memiliki tindakan yang berbeda, sehingga interface dapat dibedakan menjadi 2 (dua) tipe: 1. User interface, adalah interface bagi pengguna; 2. System interface, adalah interface yang digunakan oleh sistem lain. User interface yang baik harus dapat menangani berbagai macam pengguna dengan segala konsep-nya terhadap sistem. Ada empat jenis dialogue pattern atau pola dialog yang penting dalam menentukan interface, yaitu : 1. Menu-selection Suatu jenis dialog yang digambarkan terdiri dari daftar pilihan-pilihan yang mungkin dapat dipilih atau digunakan dalam user interface; 2. Form fill-in Merupakan
pola
klasik
yang
digunakan
memasukkan data ke suatu penyimpanan data;
untuk
41 3. Command-language Merupakan suatu jenis dialog yang memungkinkan pengguna memasukkan dan mengaktifkan bentuk perintah sendiri; 4. Direct-manipulation Merupakan pola yang mengijinkan pengguna bekerja dengan objek yang ditampilkan dan menggunakan function atas objek dengan hasil yang dapat diketahui segera. Hasil dari user interface adalah bentuk-bentuk kotak dialog dan presentasi, daftar lengkap mengenai elemen user interface, jendela diagram yang terpilih, dan sebuah navigation diagram.
2.4.7
Architectural Design Tujuan dari desain arsitektur adalah untuk men-strukturkan sistem yang terkomputerisasi. Keberhasilan suatu sistem ditentukan dari kekuatan desain arsitekturnya. Desain arsitektur dibedakan menjadi 2 (dua) konsep, yaitu Component architecture dan Process architecture. Menurut Mathiassen, et al. (2000), ”Desain arsitektur memiliki 3 (tiga) prinsip dasar, yaitu define and prioritize criteria, bridge criteria and technical platform, and evaluate design early.” (p.175). Kegiatan-kegiatan yang dilakukan dalam desain arsitektur dapat dilihat pada Gambar 2.5 dibawah ini.
42
Analysis document Component architecture Criteria
Architectural specification
Process architecture
Gambar 2.5 Activities in architectural design Sumber: Mathiassen,et al. (2000, 176)
2.4.7.1
Criteria Criteria bertujuan untuk mengatur prioritas suatu desain. Menurut Mathiassen, et al. (2000), ”Criterion adalah properti yang paling diinginkan dalam sebuah arsitektur.” (p.177). Sebuah panduan yang berguna untuk mendesain sistem harus sederhana, yang
merupakan
kriteria
penting,
yang
juga
harus
menggambarkan kondisi desain yang khusus. Conditions adalah teknikal, organisasi, dan peluang manusia dan batasan yang berkaitan dalam menampilkan sebuah tugas. Hasil dari kegiatan kriteria adalah sekumpulan prioritas kriteria. Menurut Mathiassen, et al. (2000), ”Terdapat beberapa prinsip utama dari kriteria desain yang baik yaitu : 1. Tidak memiliki kelemahan Sistem digambarkan dengan mengeliminasi beberapa kriteria yang tidak penting. Beberapa kriteria untuk menilai
43 software yang berkualitas yaitu tampak pada Tabel 2.3 dibawah ini. Criterion Usable Secure Efficient Correct Reliable Maintainable Testable Flexible Comprehensible Reusable Portable Interoperable
Measure of Kemampuan sistem untuk menyesuaikan diri dengan konteks, organisasi yang berhubungan dengan pekerjaan dan teknis Ukuran keamanan sistem dalam menghadapi akses yang tidak terotorisasi terhadap data dan fasilitas Eksploitasi ekonomis terhadap fasilitas platform teknis Pemenuhan dari kebutuhan Pemenuhan ketepatan yang dibutuhkan dalam melaksanakan fungsi Biaya untuk menemukan dan memperbaiki kerusakan Biaya untuk memastikan bahwa sistem yang dibentuk dapat melaksanakan fungsi yang diinginkan Biaya untuk mengubah sistem yang dibentuk Usaha yang diperlukan untuk mendapatkan pemahaman terhadap sistem Kemungkinan untuk menggunakan bagian sistem pada sistem lain yang berhubungan Biaya untuk memindahkan sistem ke platform teknis yang berbeda Biaya untuk menggabungkan sistem ke sistem yang lain Tabel 2.3 Classical criteria for software quality Sumber: mathiassen, et al. (2000, p178)
2. Menyeimbangkan beberapa kriteria Desain yang baik harus memuat beberapa kriteria. Karena kriteria
dapat
menyebabkan
terjadinya
konflik,
maka
memprioritaskan seluruh kriteria yang ada itu penting; 3. Dapat digunakan, fleksibel, dan komprehensibel Kriteria-kriteria diatas bersifat universal dan dapat digunakan hampir pada setiap proyek pengembangan sistem, bagaimanapun mengorganisasikannya, menunjukkan tiga kriteria ideal dalam proyek pengembangan sistem.
44 Kriteria usable menspesifikasikan bahwa kualitas sistem yang pokok tergantung pada bagaimana cara kerjanya. Flexibility
menspesifikasikan
bahwa
sistem
arsitektur
mengakomodasi perubahan organisasi dan kondisi teknik. Sedangkan comprehensibility menspesifikasikan peningkatan pada sistem komputerisasi, model dan deskripsi harus mudah untuk dipahami. Mengacu pada pendapat Mathiassen, et al. (2000), sebuah desain yang baik memerlukan pertimbangan mengenai kondisi dari setiap proyek yang dapat mempengaruhi kegiatan desain, antara lain tampak pada Tabel 2.4 dibawah ini. Teknikal
Organisasi
Manusia
penggunaan hardware, software, dan sistem penggunaan kembali pola dan komponen yang sudah ada menggunakan komponen standar yang telah dibeli pertimbangan perjanjian kontrak rencana untuk pengembangan lanjutan pembagian kerja diantara pengembang Desain kompetensi pengalaman dengan sistem yang sama pengalaman dengan technical platform Tabel 2.4 Conditions for design of an architecture Sumber: Mathiassen, et al. (2000, p184)
2.4.7.2
Component Architecture Component Architecture adalah sebuah struktur sistem yang terdiri dari komponen yang saling berhubungan. Component Architecture yang baik membuat sistem lebih mudah dimengerti, mengorganisasikan desain kerja dan menggambarkan kestabilan
45 sistem. Komponen adalah sekumpulan bagian-bagian program yang membentuk suatu kesatuan dan memiliki fungsi yang jelas. Tujuan dari kegiatan ini adalah untuk membuat struktur sistem yang fleksibel dan mudah dimengerti. Mengacu pada pendapat Mathiassen, et al. (2000), suatu arsitektur komponen yang baik menunjukkan beberapa prinsip, yaitu mengurangi kompleksitas
dengan
membagi
menjadi
beberapa
tugas,
menggambarkan stabilitas dari isi sistem, dan memungkinkan suatu komponen dapat digunakan pada bagian lain.(p.189). Beberapa
pola
yang
dapat
digunakan
untuk
merancang Component Architecture adalah sebagai berikut : 1. Layered architecture pattern Merupakan bentuk pola yang paling umum dalam software, yaitu terdiri dari beberapa komponen yang dibentuk menjadi beberapa lapisan-lapisan yang mirip dengan prinsip OSI Layer pada model jaringan, dimana lapisan yang berada diatas bergantung pada lapisan yang berada dibawahnya, begitu pula sebaliknya. Arsitektur ini sangat berguna untuk memecah sistem menjadi komponen-komponen; 2. Generic architecture pattern Pola ini dapat digunakan untuk mengelaborasikan sistem dasar yang terdiri dari interface, function, dan model component. Model component berada di lapisan yang paling
46 bawah yang kemudian dilanjutkan oleh function layer dan yang paling atas adalah interface layer; 3. Client server architecture pattern Pola ini dibangun untuk mengatasi sistem yang terdistribusi di beberapa proses yang tersebar. Arsitektur ini terdiri dari sebuah server dan beberapa client. Server memiliki kumpulan operasi yang dapat digunakan oleh client. Client menggunakan server secara independen. Berikut ini adalah Tabel 2.55 yang menunjukkan beberapa jenis distribusi dalam arsitektur client-server dimana U adalah User Interface, F adalah Function, dan M adalah Model. 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
Tabel 2.5 Jenis Arsitektur client-server Sumber: Mathiassen, et al. (2000, p200)
Hasil dari component architecture adalah component diagram yang menunjukkan hubungan antara komponen (dalam hal ini adalah server dan beberapa client).
47 2.4.7.3
Process Architecture Mengacu pada Mathiassen, et al. (2000), Proses arsitektur adalah struktur dari eksekusi sistem yang terdiri dari prosesproses yang saling bergantung. Untuk menjalankan sebuah sistem dibutuhkan processor. Sedangkan external device adalah processor khusus yang tidak dapat menjalankan program. Proses arsitektur harus dapat memastikan bahwa sistem dapat dijalankan secara baik dengan menggunakan processor yang telah tersedia. (p.211). Kegiatan proses arsitektur bermula dari komponen logik yang dihasilkan oleh kegiatan komponen dan bertujuan untuk menentukan
struktur
fisik
dari
sebuah
sistem
dengan
mendistribusikan komponen-komponen program ke processor yang akan digunakan untuk eksekusi sistem, mengkoordinasikan pembagian sumber daya dengan active object dan menghasilkan arsitektur yang tidak memiliki hambatan. Menurut Mathiassen, et al. (2000), “Sumber daya yang umumnya dipakai secara bersamaan yang mampu menghasilkan bottlenecks adalah : 1. Processor Terjadi apabila ada dua atau lebih proses yang dieksekusi secara bersamaan pada satu processor;
48 2. Program component Terjadi bila terdapat dua atau lebih proses yang secara bersama memanggil operasi pada komponen; 3. External device Tampak pada penggunaan printer yang terhubung melalui jaringan.” (p.220-222). Hasil
dari
process
architecture
adalah
membuat
Deployment Diagram.
2.4.8
Component Design Menurut Mathiassen, et al. (2000), tujuan dari kegiatan desain komponen ini adalah untuk menentukan implementasi kebutuhan dalam kerangka arsitektur. Kegiatan component design bermula dari spesifikasi arsitektural dan kebutuhan sistem, sedangkan hasil dari kegiatan ini adalah spesifikasi dari komponen yang saling berhubungan. (p.231). Beberapa kegiatan dari desain komponen tampak pada Tabel 2.6 dibawah ini :
Kerangka Model Component Function Component Connecting Component
Isi Bagaimana suatu model digambarkan sebagai kelas dalam sebuah sistem Bagaimana suatu function dimplementasikan Bagaimana komponen-komponen dihubungkan
Konsep Model Component dan atribut Function Component Operation component dan connection
Tabel 2.6 Activities in Component Design Sumber: Mathiassen, et al. (2000, p232)
49 2.4.8.1
Model Component Mengacu pada Mathiassen, et al. (2000) model analisis problem-domain menggambarkan kebutuhan sistem. Kebutuhan sistem kemudian diimplementasikan dalam model component. Oleh karena itu, komponen model adalah bagian dari sistem yang mengimplementasikan model problem-domain. Tujuan dari komponen model adalah untuk mengirimkan data sekarang dan historis ke function, interface dan pengguna ataupun sistem lain. (p.235). Hasil dari kegiatan komponen model adalah revisi dari class diagram dari kegiatan analisis. Kegiatan revisi biasanya terdiri dari kegiatan menambahkan kelas, atribut dan sturktur baru yang mewakili event.
2.4.8.2
Function Component Mengacu pada Mathiassen, et al. (2000) komponen fungsi adalah bagian dari sistem yang mengimplementasikan kebutuhan fungsional. Tujuan dari komponen fungsi ini adalah untuk memberikan akses ke model bagi user interface dan komponen sistem lainnya. Oleh karena itu, komponen fungsi adalah penghubung antara model dan usage. (p.251). Function
didesain
dan
diimplementasikan
dengan
menggunakan operasi dari kelas sistem. Operasi adalah proses
50 yang dispesifikasikan dalam sebuah kelas dan dijalankan melalui objek dari kelas tersebut. (p.252). Hasil utama dari kegiatan ini adalah class diagram untuk komponen fungsi dan perpanjangan dari class diagram komponen model. Sub kegiatan dalam perancangan komponen fungsi tampak pada Gambar 2.6 berikut ini : Function list, class diagram,and component specification.
Model-component specification Design functions as operations
Explore patterns
Specify complex operations
Function-component specification
Gambar 2.6 Sub activities in function-component design Sumber: Mathiassen, et al. (2000, p252)
Sub kegiatan ini menghasilkan kumpulan operasi yang dapat mengimplementasikan fungsi sistem seperti yang ditentukan dalam analysis problem domain dan function list. 1. Merancang function sebagai operation; 2. Menelusuri pola yang dapat membantu dalam implementasi function sebagai operation; 3. Menspesifikasi operasi-operasi yang kompleks.