BAB 2 LANDASAN TEORI
2.1. Pengertian Sistem Informasi Menurut Whitten, Bentley dan Dittmann (2004,p.12) sistem informasi adalah ” sebuah susunan dari orang, data, proses data, dan teknologi informasi yang berhubungan untuk mengumpulkan, memproses, menyimpan, dan menyediakan informasi sebagai hasil yang diperlukan organisasi.” Menurut O’Brien(2003 ,p.7) sistem informasi adalah “ setiap pengorganisasian kombinasi dari orang, perangkat keras, perangkat lunak, jaringan komunikasi, dan sumber-sumber data yang dikumpulkan, dipindahkan dan disebarkan informasinya dalam organisasi.” Menurut Bodnar dan Hopwood (2004,p.4) sistem informasi adalah “ penggunaan teknologi komputer dalam sebuah organisasi untuk menyediakan informasi kepada pengguna.”
Jadi dapat ditarik kesimpulan bahwa sistem informasi adalah pengaturan sumber daya berupa orang, perangkat keras dan perangkat lunak komputer yang saling berinteraksi untuk memproses data sehingga menyediakan informasi yang berguna bagi perusahaan agar data mencapai tujuan dan sasarannya.
8 2.2. Sistem Informasi Akuntansi 2.2.1. Pengertian Sistem Informasi Akuntansi Menurut Bodnar and Hopwood(2004,p.1) sistem informasi akuntansi adalah “ sebuah komputer berbasis sistem yang di rancang untuk memindahkan data akuntansi menjadi informasi.” Menurut Roomney dan Steinbart (2006, p.6) sistem informasi akuntansi adalah “ sebuah sistem yang mengumpulkan, mencatat, menyimpan, dan memproses data untuk menghasilkan informasi untuk membuat keputusan.” Menurut Jones and Rama(2003, p.5) sistem informasi akuntansi adalah “ sebuah sistem yang menyediakan informasi akuntansi dan keuangan, dan informasi lainnya yang diperoleh dalam proses rutin dari transaksi akuntansi.”.
Jadi dapat ditarik kesimpulan bahwa sistem informasi akuntansi adalah sistem berbasis komputer yang dirancang untuk menyediakan informasi akuntansi, keuangan
dan
informasi lain yang diperoleh dari pengumpulan dan pemrosesan berbagai transaksi perusahaan.
9 2.2.2. Kegunaan Sistem Informasi Akuntansi Mengacu pada Jones and Rama (2006, p.6) kegunaan Sistem Informasi Akuntansi adalah: 1. Menghasilkan laporan eksternal Bisnis menggunakan Sistem Informasi Akuntansi untuk menghasilkan laporan yang khusus untuk kepuasan informasi yang dibutuhkan investor, kreditur, penagih pajak, dan lainnya. 2. Mendukung aktivitas rutin Pimpinan membutuhkan Sistem Informasi Akuntansi untuk menangani operasi rutin perusahaan selama siklus operasi di perusahaan. 3. Mendukung pengambilan keputusan Informasi juga dibutuhkan untuk keputusan yang tidak rutin untuk semua bagian dalam organisasi. 4. Perencanaan dan pengendalian Sistem Informasi di perlukan untuk aktivitas perencanaan dan pengendalian yang baik. Sistem Informasi akan menyimpan anggaran dan biaya standar dan juga laporannya untuk membandingkan anggaran dengan jumlah yang aktual. 5. Penerapan pengendalian internal Termasuk kebijakan, prosedur, dan sistem informasi yang digunakan untuk memproteksi aset perusahaan dari kehilangan dan untuk menjaga data keuangan.
10 2.2.3. Proses bisnis Menurut Jones and Rama (2006,p.18), proses bisnis adalah urutan aktivitas yang dijalankan oleh perusahaan untuk memperoleh, memproduksi, menjual barang dan jasa. Hal yang terpenting untuk mengetahui proses bisnis di sebuah perusahaan adalah dengan berfokus pada siklus transaksinya. Siklus transaksi adalah kumpulan event yang terjadi dan yang berhubungan. Event adalah sesuatu yang terjadi pada waktu tertentu. Mengacu pada Bodnar dan Hopwood (2001) Proses bisnis selalu disertai tindakan economic event dan semua mempunyai definisi poin awal dan akhir yang jelas. Proses bisnis normal terdiri dari kumpulan economic event. Proses bisnis sebuah perusahaan dapat dilihat melalui siklus transaksi proses bisnis tersebut. Mengacu pada Boockholdt(1999), siklus transaksi adalah aturan dari transaksi akuntansi yang terjadi dalam kegiatan yang normal. Siklus transaksi mencatat economic events dari sebuah komponen dalam siklus dari proses bisnis
Ada 4 siklus transaksi akuntansi yaitu: 1.
Siklus finansial terdiri atas beberapa transaksi akuntansi yang mencatat pertambahan modal dari pemilik dan kreditur, penggunaan kapital dan melaporkannya.
2.
Siklus pengeluaran terdiri dari transaksi-tansaksi yang terjadi untuk menambah material dan overhead untuk proses konversi.
3.
Siklus pendapatan terdiri dari transaksi akun yang mencatat pendapatan dari hasil proses konversi.
11 4.
Siklus konversi berisi transaksi yang terjadi sewaktu input diubah menjadi barang atau jasa yang dapat dijual.
Siklus transaksi terdiri dari satu atau lebih sistem aplikasi.
Berikut adalah rincian dari economic event dan sistem aplikasi yang memprosesnya. Tabel 2.1 siklus transaksi, economic event, dan application system Siklus Transaksi
Economic Event
Application System
Finansial
Menambah modal Menggunakan modal Laporan periodik
Jurnal entry Property Laporan finansial
Pengeluaran
Meminta input Menerima Input Kewajiban membayar Pembayaran
Pembelian Penerimaan Voucher Pengeluaran Kas
Konversi
Pemakaian karyawan, Material,overhead
Akuntansi biaya, penggajian, dan persediaan
Pendapatan
Menerima pesanan, Pengiriman Menagih pembayaran Menerima Pembayaran
Order entry Shipping Billing Cash Receipt
12 2.3. Penjualan 2.3.1. Pengertian Penjualan Menurut Arens dan Loebbecke(1997, p.365) penjualan adalah kegiatan perusahaan untuk mengalihkan kepemilikan atas barang dan jasa yang telah tersedia untuk dijual kepada pelanggan. Menurut Standar Akuntansi Keuangan (2004) “…penjualan barang…barang
meliputi
barang yang diproduksi perusahaan untuk dijual dan barang yang dibeli untuk dijual kembali seperti barang dagang yang dibeli oleh pengecer atau tanah dan properti lain yang dibeli untuk dijual kembali.”(PSAK No.23).
Jadi dapat disimpulkan bahwa penjualan adalah kegiatan operasi perusahaan dalam menjual produk yang dihasilkan oleh perusahaan ataupun yang dibeli untuk dijual kembali baik secara tunai maupun kredit.
2.3.2. Fungsi yang terkait dengan sistem penjualan kredit Mengacu pada Mulyadi (2001) fungsi yang terkait dengan sistem penjualan kredit adalah : 1. Fungsi Penjualan : bertanggung jawab untuk menerima, mengedit surat order untuk menambahkan informasi yang belum ada pada surat order tersebut, meminta otorisasi kredit, menentukan tanggal pengiriman, atau dari gudang mana barang akan dikirim. Fungsi ini juga bertanggung jawab untuk membuat back order pada saat diketahui tidak tersedianya persediaan untuk memenuhi order dari pelanggan. Fungsi ini berada di tangan bagian order penjualan.
13 2. Fungsi Kredit : bertanggung jawab untuk meneliti status kredit pelanggan dan memberikan otorisasi pemberian kredit kepada pelanggan. Fungsi ini berada di bawah fungsi keuangan. 3. Fungsi Gudang : bertanggung jawab untuk menyimpan barang dan menyiapkan barang yang dipesan oleh pelanggan serta menyerahkan barang ke fungsi pengiriman. Fungsi ini berada ditangan bagian Gudang. 4. Fungsi Pengiriman : bertanggung jawab untuk menyerahkan barang atas dasar dokumen yang diterima dari fungsi penjualan. Fungsi ini berada ditangan bagian pengiriman. 5. Fungsi Penagihan : bertanggung jawab untuk membuat dan mengirimkan faktur penjualan kepada pelanggan. 6. Fungsi Akuntansi : bertanggung jawab untuk mencatat piutang yang timbul dari transaksi penjualan dan membuat serta mengirimkan pernyataan piutang kepada para debitur serta membuat laporan piutang.
2.3.3. Dokumen yang terkait Menurut Wilkinson et al (2000,p.419) berikut adalah dokumen-dokumen yang dibutuhkan dalam siklus pendapatan perusahaan dagang: 1.
Customer Order
Adalah purchase order yang diterima dari pelanggan atau form yang disiapkan oleh karyawan penjual dari perusahaan penjual. 2.
Sales Order
Adalah form formal, yang memiliki banyak copy yang disiapkan dari customer order.
14 3.
Order Acknowledgement
Adalah copy dari sales order yang dikirimkan kepada pelanggan untuk pemberitahuan diterimanya order. 4.
Packing ticket
Adalah copy dari sales order, dokumen terpisah yang dikirim ke gudang dan dalam pengiriman barang yang dipesan. 5.
Packing slip
Adalah copy dari sales order atau picking list yang ditempelkan baersama barang ketika dipersiapkan untuk pengiriman. 6.
Billing of Lading
Dokumen pengiriman untuk jasa agen pengangkutan untuk mengirimkan barang pesanan kepada pelanggan. 7.
Shipping Notice
Biasanya merupakan copy dari sales order atau sebuah dokumen yang terpisah sebagai bukti bahwa barang sudah dikirim. 8.
Remittance Advice
Sebuah dokumen yang menunjukkan jumlah kas yang diterima dari pelanggan. 9.
Deposit Slip
Dokumen untuk mendepositkan kas ke bank. 10.
Back Order
Sebuah dokumen yang dipersiapkan bila kuantitas dari persediaan tidak mencukupi. 11.
Credit Memo
Sebuah dokumen yang memungkinkan untuk mengurangi kredit pelanggan.
15 12.
Credit application
Sebuah form yang dipersiapkan sewaktu pelanggan baru mengajukan kredit , menunjukkan kondisi keuangannya. 13.
Salesperson call report
Adalah form yang digunakan untuk menggambarkan panggilan yang dibuat oleh sales person kepada pelanggan potensial dan mengidentifikasikan hasil dari pelanggan tersebut. 14.
Delinquent notice
Adalah pemberitahuan yang dikirimkan kepada pelanggan yang melewati batas saldo kredit. 15.
Write-off notice
Sebuah dokumen yang dipersiapkan oleh manajer kredit ketika akun dinyatakan tidak dapat ditagih. 16.
Cash register receipt
Sebuah form yang digunakan untuk merefleksikan kas yang di terima.
16 2.3.4. Prosedur siklus pendapatan Mengacu pada Romney dan Steinbart (2006), Wilkinson et al (2000) prosedur siklus pendapatan adalah : 1.
Sales order entry
Siklus pendapatan dimulai dengan penerimaan order dari pelanggan. Sales order entry di jabarkan menjadi 3 langkah yaitu : a. Taking Customer Order Order dari pelanggan dapat diterima dengan berbagai macam cara, melalui surat, telepon, website atau melalui karyawan penjualan di lapangan. b. Credit approval Persetujuan kredit meliputi pengecekan customer master file untuk memverifikasi akun yang sudah ada, mengidentifikasi limit kredit , dan memverifikasi jumlah pemesanan sekarang di tambah jumlah akunnya tidak melebihi limit. Jika kredit limit tidak melebihi, order diterima. Jika melebihi limit, keputusan diserahkan kepada manager kredit. c. Pengecekan persediaan Menentukan apakah persediaan yang dipesan tersedia. Jika tidak tersedia, di buatlah back order. Pemberitahuan ke bagian pembelian untuk kebutuhan atas persediaan tersebut. Jika order
diterima, sales order
dibuat order acknowledgment untuk pelanggan,
picking list untuk bagian gudang, packing slip untuk bagian pengiriman.
17 2. Shipping Terdiri dari dua langkah yaitu : a. Pick dan Pack Bagian gudang menggunakan picking ticket untuk mengidentifikasi produk, dan jumlah dari tiap produk, untuk di pindahkan dari persediaan. Bagian gudang yang mencatat jumlah barang yang akan di angkut. Kemudian barang di pindahkan ke bagian pengiriman. b. Ship order Bagian pengiriman yang membandingkan jumlah fisik persediaan dengan informasi dari picking list dan packing slip.
3. Billing Setelah mendapatkan informasi barang telah di kirim, prosesnya adalah membuat sales invoice. Bagian penagihan menyatukan informasi yang di dapat dari bagian penjualan mengenai harga barang dan bagian pengiriman mengenai tipe dan jumlah barang yang di kirim. Account Receivable menggunakan informasi dari sales invoice untuk mendebit akun pelanggan dan mengkreditnya jika akun tersebut sudah diterima pembayarannya. Bila menggunakan open-invoice method, pelanggan membayar menurut tiap invoice. Memberikan remittance advice beserta uangnya. Bila menggunakan balance-forward method, pelanggan membayar jumlah yang tertera di monthly-statement.
18 4.Cash Collection Pelanggan akan mengirimkan remittance advice, karyawan akan membuat remittance entry yang akan mengubah akun account receivable pelanggan. Jumlah pembayaran di berikan kepada kasir. Karyawan yang membuat remittance entry dengan karyawan yang menerima kas berbeda.
2.3.5. Sasaran Sistem Informasi Akuntansi siklus pendapatan Menurut Wilkinson et al (2000,p.416) tujuan utama dari siklus pendapatan adalah untuk memfasilitasi pertukaran barang atau jasa dengan sejumlah uang tertentu dari pelanggan. Berikut adalah sasaran dari siklus pendapatan: 1) untuk mencatat pelanggan secara cepat dan tepat 2) untuk memverifikasi bahwa pelanggan layak mendapatkan kredit 3) untuk mengirimkan produk pada tanggal yang telah disetujui 4) untuk melakukan penagihan atas produk atau jasa secara tepat pada waktunya dan dengan proses yang benar 5) untuk mencatat dan mengklasifikasi penerimaan kas secara cepat dan tepat 6) untuk posting penjualan dan penerimaan kas ke akun pelanggan yang tepat dalam jurnal khusus penjualan dan penerimaan kas 7) untuk mengamankan produk sampai dikirim 8) untuk mengamankan kas sampai disetor
19 2.4
Sistem Pengendalian Intern
2.4.1 Pengertian Sistem Pengendalian Intern Menurut
Romney
and
Steinbart
(2006,p.192)
pengendalian
internal
adalah
“perencanaan organisasi dan metode bisnis yang digunakan untuk mengamankan aset, menyediakan keakuratan, dan informasi yang sebenarnya, promosi dan memperbaiki efesiensi operasional dan mendukung kebijakan manajemen.” Menurut Jones and Rama (2006,p.7), pengendalian internal “ termasuk kebijakan, prosedur, dan sistem informasi yang digunakan untuk memproteksi aset sebuah perusahaan dari kehilangan dan untuk memelihara akurat data keuangan.” Menurut Mulyadi (2001,p.164), unsur pokok sistem pengendalian internal adalah 1. Struktur organisasi yang memisahkan tanggung jawab fungsional secara tegas 2. Sistem wewenang dan prosedur pencatatan yang memberikan perlindungan yang cukup terhadap kekayaan, utang, pendapatan,dan biaya. 3. Praktik yang sehat dalam melaksanakan tugas dan fungsi setiap organisasi. 4. Karyawan yang mutunya sesuai dengan tanggung jawabnya.
Jadi dapat disimpulkan bahwa pengendalian intern adalah suatu pengendalian yang dilakukan oleh manajemen dalam upaya untuk melindungi kekayaan organisasi dari penyalahgunaan serta mengecek keandalan data akuntansi.
20 2.4.2. Ancaman dan Pengendalian Internal atas Penjualan Menurut Romney dan Steinbart(2006,p.377) Tabel 2.2. Aktivitas, Ancaman, dan pengedalian internal prosedur penjualan Proses atau Kegiatan
Ancaman
Penerimaan pesanan 1. Tidak lengkap atau tidak akurat 2. Penjualan kredit ke pelanggan dengan status kredit yang tidak baik
3. Otorisasi Order
Aplikasi prosedur pengendalian pengentrian data akan di cek pemeriksaan data entry persetujuan kredit oleh manajer kredit, bukan oleh fungsi penjualan pencatatan yang tepat untuk akun pelanggan tanda tangan pada kertas dokumen, tanda tangan digital dan sertifikat digital untuk e-business.
4. kurangnya persediaan, carrying cost, sistem kontrol persediaan,peramalan penjualan, markdown cost perhitungan fisik secara periodik Pengiriman
5. kesalahan pengiriman: salah rekonsiliasi pesanan dengan picking ticket dan packing barang,salahjumlah dan salah alamat slip ; bar code scanner. Aplikasi kontrol entri data 6. Ancaman persediaan
Penagihan dan piutang usaha
Penagihan Kas
penjagaan akses fisik ke persediaan, dokumentasi semua perpindahan persediaan secara periodik dan rekonsiliasi jumlah dengan jumlah yang tercatat
7. Gagal menagih pelanggan
pemisahan fungsi pengiriman dan penagihan; penomoran semua dokumen pengiriman dan rekonsiliasi secara periodik dengan faktur; rekonsiliasi picking tickets dan bill of lading dengan dokumen penjualan.
8. kesalahan penagihan
kontrol edit data entri, daftar harga
9. kesalahan posting dalam update piutang usaha
rekonsiliasi dari buku pembantu piutang usaha dengan buku besar; laporan setiap bulan ke pelanggan.
1. Pencurian Kas
pemisahan tugas, minimasi penanganan kas, pengaturan lockbox, persetujuan tepat waktu, deposit setiap penerimaan, rekonsiliasi secara periodik rekening koran dengan catatan yang dibuat oleh pihak yang terlibat dalam pemrosesan penerimaan kas.
Isu-isu
1. Kehilangan Data
pengendalian umum
prosedur back-up dan pemulihan terhadap bencana, Pengendalian akses ( secara fisik dan logis )
2. Kinerja yang buruk
mempersiapkan dan mengkaji ulang laporan kinerja.
21 2.5 Object Oriented Analysis and Design (OOAD) 2.5.1. Pengertian Metode Object Oriented Analysis and Design (OOAD) Mengacu pada Mathiassen et al (2000), Object Oriented Analysis and Design (OOAD) merupakan
suatu
metode
untuk
menganalisis
kebutuhan-kebutuhan
dengan
menggunakan object untuk membentuk suatu pemahaman mengenai sistem context dan untuk menjelaskan perbedaan dari object lain dalam context dan metode perancangan yang menggunakan object untuk memahami dan menjelaskan sistem.
2.5.2 Tahapan Object Oriented Analysis and Design (OOAD) Menurut Mathiassen et al (2000), analisis dan perancangan berorientasi object terdiri dari 4 aktivitas utama seperti yang di ilustrasikan dalam gambar 2.1. yang meliputi analisis problem domain, analisis application domain, architectural design, dan component design.
Gambar 2.1. kegiatan utama dan hasil dalam analisis dan perancangan berdasarkan orientasi object
22 Keuntungan dari Object Oriented Analysis and Design (OOAD) 1) Menyediakan informasi yang jelas mengenai konteks sistem 2) Ada kaitan yang erat antara object-oriented design, object-oriented user interface dan object-oriented programming. Notasi standar yang digunakan dalam Object Oriented Analysis and Design (OOAD) adalah UML (Unified Modelling Language). UML digunakan hanya sebagai notasi dan bukan sebagai metode dalam melakukan modelling.
2.5.3. Pengertian object Menurut Mathiassen et al. (2000,p.4) object adalah “ sebuah entitas dengan identitas, state dan behavior.” Menurut Whitten, Bentley, Ditmann (2004, p.189) objek adalah “ enkapsulasi data (disebut properties) yang digambarkan sekumpulan orang, tempat, peristiwa, atau benda, dengan semua prosesnya (disebut methods) yang diperbolehkan untuk digunakan atau diperbaharui data dan propertinya.”
Jadi dapat disimpulkan object adalah sesuatu yang dapat dilihat, disentuh, atau dapat dirasakan dimana user dapat menyimpan data dan berasosiasi dengan behavior.
23 2.5.4. Pengertian Class Istilah class digunakan untuk menggambarkan kumpulan objects. Menurut Mathiassen et al. Class (2002,p.53) adalah “sebuah deskripsi dari kumpulan object yang berbagi struktur, behavioral pattern,dan atribut.” Menurut Bennet et al.(2002,p.591) Class adalah ” sebuah deskripsi kumpulan object secara logika serupa behavior dan struktur datanya.” Jadi dapat ditarik kesimpulan bahwa class adalah kumpulan dari object yang berbagi atribut dan behavior yang sama.
2.5.5. Rich Picture Mengacu pada Mathiassen et al. (2000) rich picture adalah sebuah gambaran informasi yang digunakan oleh pengembang sistem untuk menyatakan pemahaman mereka terhadap situasi dari sistem yang sedang berlangsung. Rich Picture juga dapat digunakan sebagai alat yang berguna untuk memfasilitasi komunikasi yang baik antara pengguna dalam sistem.
Rich Picture difokuskan pada aspek-aspek penting dari sistem tersebut, yang ditentukan sendiri oleh pengembang sistem dengan mengunjungi perusahaan untuk melihat bagaimana perusahaan tersebut beroperasi, berbicara dengan banyak orang untuk mengetahui apa yang harus terjadi atau seharusnya terjadi, dan mungkin melakukan beberapa wawancara normal.
24 2.5.6. Problem domain analysis Mengacu pada Mathiassen et al. (2000) problem domain adalah bagian dari konteks yang diatur, dimonitor, atau dikendalikan oleh sebuah sistem dengan tujuan untuk mengidentifikasi dan memodelkan sebuah problem domain. Analisis problem domain memfokuskan pada informasi apa yang harus ditangani oleh sistem dan menghasilkan sebuah model yang merupakan gambaran dari classes, objects, structure dan behavior yang ada dalam problem domain.
Analisis Problem domain dibagi menjadi tiga kegiatan seperti : Tabel 2.3. Kegiatan problem-domain analysis Kegiatan
Isi
Konsep
Class
Object dan event yang Class, object, event merupakan bagian problem domain
Structure
Bagaimana class dan object Generalisasi, agregasi asosiasi, dan saling terkait bersama-sama cluster
Behavior
Properti dinamik dimiliki object
yang Event trace, behavioral pattern, dan atribut
2.5.6.1. Classes Adalah aktivitas pengidentifikasian class, object,, dan event di dalam problem domain. Class bertujuan untuk memilih elemen-elemen dari suatu problem domain. Menurut Mathiassen et al (2000) konsep dari classes ini antara lain:
25 1.
Class , kegiatan kelas merupakan kegiatan pertama dalam analisis problem
domain. Untuk memudahkan, kita mengelompokkan objects dan event-event tersebut menjadi beberapa class. Class candidates dapat diperoleh dari kata benda di dalam keterangan atau pembicaraan dengan user. Penamaan class harus sederhana, mudah dibaca tepat, tidak membingungkan, dan digunakan dalam problem domain. Hasil dari tahap ini berupa event table dengan class-class dan event-event yang terkait. Contoh event table dapat dilihat pada tabel 2.4. 2. Object, di dalam problem analysis, sebuah object adalah abstraksi dari fenomena yang ada dalam problem domain tersebut. Object diberi karakter melalui eventnya. 3. Event sebuah insiden yang terjadi seketika yang melibatkan satu atau lebih object. Event candidates dapat diperoleh dari kata kerja di dalam penjelasan atau wawasan dengan user. Dalam membuat event candidates sebaiknya memilih kata-kata sederhana dan mudah dibaca, ada di dalam problem domain, dan memperlihatkan sebuah event tunggal. Semua kata- kata tersebut lalu dievaluasi.
Table 2.4 Contoh event table
Event Graduated Reserved Agreed Cancelled Resigned Treated Employed
Customer V V
Assistatnt V V V V
Kelas Apprentice V
Appointment V
V V V
V
V V
V
Plan V V
26 2.5.6.2. Structure Menentukan struktur hubungan antara object dan class. Mengacu pada Mathiassen Et al. (2000) kegiatan kedua dalam analisis problem-domain ini bertujuan untuk mencari hubungan structural yang abstrak dan umum antara class-class dan mencari hubungan yang konkrit dan spesifik antara objects dalam problem-domain. Ada 4 tipe hubungan structural dimana ke empatnya dibagi ke dalam 2 bagian yaitu: 1. Class Structure, yang meliputi : a. Generalisasi adalah hubungan antara dua atau lebih class yang lebih khusus (sub class) dengan sebuah class yang lebih umum (super class). Dimana hubungan spesialisasi tersebut dinyatakan dengan rumus “is-a”, yang berarti sub class akan mempunyai attribute dan operation yang sama dengan superclass. b.Cluster adalah kumpulan kelas yang saling berhubungan yang membantu memperoleh dan menyediakan ringkasan problem-domain. Cluster digambarkan dengan notasi file folder yang di dalamnya terdapat kumpulan class yang berkaitan. Class-class dalam cluster yang sama dihubungkan dengan hubungan generalisasi ataupun agregasi, sedangkan class-class yang adapada cluster yang berbeda dihubungkan dengan hubungan asosiasi. 2. Object structure yang meliputi: a. Agregasi adalah hubungan antara sejumlah object inferior yang merupakan bagian (the parts) dari sebuah object superior yang merupakan dasar (the whole) bagi beberapa object inferior tersebut dimana hubungan tersebut dapat dirumuskan dengan “has-a”.
27 Ada tiga tipe structure agregasi,yaitu: 1)
Whole-part, object superior adalah jumlah dari object inferior, jika dilakukan
penambahan atau penghapusan object inferior, maka akan mengubah pokok object superior. 2)
Container-content, object superior adalah container bagi object inferior, jika
melakukan penambahan maupun penghapusan object inferior, tidak akan mengubah pokok object superior. 3)
Union member, object superior adalah object inferior yang terorganisasi. Tidak
akan terjadi perubahan pada object superior apabila melakukan penambahan atau penghapusan object inferior tetapi ada batasannya.
b. Asosiasi adalah hubungan antara sejumlah object yang memiliki arti dimana objects yang saling berhubungan tersebut tidak merupakan bagian dari object yang lainnya.
Hasil dari kegiatan struktur ini adalah class diagram. Class diagram menghasilkan ringkasan model problem-domain yang jelas dengan menggambarkan semua struktur hubungan static antar class dan object yang ada dalam model dari sistem yang berubahubah.
28 2.5.6.3. Behavior 1.
Mengacu pada Mathiassen et al. (2000) kegiatan behavior adalah kegiatan
terakhir dalam analisis problem domain yang bertujuan untuk memodelkan apa yang terjadi (perilaku dinamis) dalam problem domain sistem sepanjang waktu. Tugas utama dalam kegiatan ini adalah : menggambarkan pola perilaku (behavioral pattern) dan atribut dari setiap kelas. Hasil dari kegiatan ini adalah statechart diagram yang dapat dilihat pada gambar 2.2. dibawah ini :
Gambar 2.2. Contoh statechart diagram
Konsep dari behavior antara lain, meliputi: 1.
Event trace : urutan event yang terjadi pada suatu object yang spesifik
2.
Behavioral pattern : deskripsi dari event traces yang mungkin terjadi pada semua
object di dalam sebuah class. 3.
Attribute : sebuah keterangan properti dari class atau event. Perilaku dari suatu
object ditentukan oleh urutan event-event (event trace) yang harus dilewati oleh object tertentu tersebut sepanjang waktu.
29 Tiga jenis 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 beberapa kali.
2.5.7. Application Domain Analysis Menurut Mathiassen (2000,p.115), application domain adalah organisasi yang mengadministrasikan, memonitor atau mengendalikan problem domain. Application Domain terdapat tiga aktivitas yaitu: 2.5.7.1. Usage Didalam usage terdapat dua aktivitas yaitu: 1. Actor Abstraksi dari user atau sistem lain yang berinteraksi dengan target sistem. Cara untuk mengidentifikasi actor adalah dengan mengetahui alasan actor menggunakan sistem. Masing-masing actor memiliki alasan yang berbeda untuk menggunakan sistem. Cara lainnya yaitu dengan melihat peran dari actor seperti yang dinyatakan oleh use case dimana actor tersebut terlibat. Masing-masing actor memiliki peran yang berbedabeda.
Setiap actor akan berkorespondensi dengan kelas dalam problem domain yang berbeda karena mereka memiliki pola behavioural objek yang berbeda-beda. Actor dapat digambarkan dalam spesifikasi actor yang memiliki 3 bagian yaitu tujuan, karakteristik, dan contoh dari actor tersebut. Tujuan merupakan peran dari actor dalam sistem target. Sementara karakteristik menggambarkan aspek-aspek yang penting dari actor.
30 2. Use case Sebuah pola interaksi antara sistem dengan actor di dalam application domain. Use case dapat dimulai oleh actor atau oleh sistem target. Use case dapat digambarkan dengan menggunakan spesifikasi use case, dimana use case dijelaskan secara singkat namun jelas dan dapat disertai dengan keterangan object sistem yang terlibat dan function dari use case tersebut atau dengan diagram statechart karena use case adalah sebuah fenomena yang dinamik. Hasil dari analisis kegiatan usage ini adalah deskripsi lengkap dari semua use case dan actor yang ada yang digambarkan dalam tabel actor atau use case diagram. Use case diagram biasanya tediri dari : 1. Actor 2. Usecase 3. Include adalah hubungan antara usecase yang terdiri dari beberapa use case yang memiliki kesamaan. 4. Extend adalah hubungan antara usecase yang menggambarkan sebuah variasi pada behavior pattern.
2.5.7.2. Function Merupakan suatu fasilitas yang digunakan untuk membuat sebuah model yang berguna bagi actor di dalam melakukan pekerjaannya. Oleh sebab itu didalam function activity penekanannya berfokus kepada “apa yang akan sistem lakukan?”. Terdapat empat tipe functions yaitu: 1) Update functions diaktifkan oleh event yang berasal dari problem domain dan hasilnya adalah perubahan state dalam model..
31 2) Signal functions diaktifkan oleh perubahan di dalam model state dan memberikan hasil dalam bentuk reaksi di dalam sistem context. 3) Read functions diaktifkan oleh kebutuhan akan informasi di dalam pekerjaan seorang actor dan hasilnya adalah menampilkan sebagian dari model yang ada di dalam sistem. 4) Compute functions diaktifkan oleh kebutuhan akan informasi oleh actor di dalam pekerjaannya dan terdiri dari proses komputasi yang melibatkan informasi yang disediakan atau diberikan oleh actor atau model. Hasilnya berupa tampilan dari hasil proses komputasi.
Tujuan dari kegiatan function adalah untuk menentukan kemampuan sistem memproses informasi. Hasil dari kegiatan ini adalah sebuah daftar function-function yang merinci function-function yang kompleks. Daftar function harus lengkap, menyatakan kebutuhan kolektif dari pelanggan dan actor dan harus konsisten dengan use case. Cara untuk mengidentifikasikan function adalah dengan melihat deskripsi problem domain yang dinyatakan dalam class dan event, dan melihat deskripsi application domain yang dinyatakan dalam use case. Class dapat menyebabkan munculnya function read dan update. Event memungkinkan munculnya kebutuhan terhadap function update. Sementara use case dapat menyebabkan munculnya segala macam tipe function.
32 2.5.7.3.User Interface Fasilitas yang membuat model sistem dan function dapat berinteraksi dengan actors. Terdapat dua tipe interface yaitu: 1. User interface: interface untuk users, antar muka pengguna yang menghubungkan pengguna dengan sistem. 2. System interface: interface ke sistem lain, antar muka sistem yang menghubungkan sistem dengan sistem yang lainnya. Sebuah user interface yang baik harus dapat beradaptasi dengan pekerjaan dan pemahaman user terhadap sistem. Kualitas antar muka pengguna ditentukan oleh kegunaan atau usability interface tersebut bagi pengguna. Usability bergantung pada siapa yang menggunakan dan situasi pada saat sistem tersebut digunakan. Oleh sebab itu usability bukan sebuah ukuran yang pasti dan objektif. Hasil dari kegiatan ini adalah sebuah deskripsi elemen-elemen interface pengguna dan interface sistem yang lengkap, dimana kelengkapan menunjukkan pemenuhan kebutuhan pengguna. Hasil ini harus dilengkapi dengan sebuah navigasi diagram yang menyediakan sebuah ringkasan dari elemen-elemen user interface dan perubahan antara elemen-elemen tersebut.
2.5.8. Architecture Design Keberhasilan suatu sistem ditentukan oleh kekuatan rancangan arsitekturalnya. Arsitektur membentuk sistem sesuai dengan fungsi sistem tersebut dan dengan memenuhi kriteria rancangan tertentu. Arsitektur juga berfungsi sebagai kerangka untuk kegiatan pengembangan yang selanjutnya. Architecture design terdiri dari tiga aktivitas, yaitu:
33 2.5.8.1.Criterion adalah property dari sebuah arsitektur. Mengacu pada Mathiassen et al. (2000) dalam menciptakan sebuah rancangan yang baik diperlukan pertimbangan mengenai kondisi-kondisi dari setiap proyek yang dapat mempengaruhi kegiatan rancangan yaitu : 1.
Technical, yang terdiri dari pertimbangan : penggunaan hardware, software dan
sistem lain yang telah dimiliki dan dikembangkan; pengaruh kemungkinan penggabungan pola-pola umum dan komponen yang telah ada terhadap arsitektur dan kemungkinan pembelian komponen standar. 2.
Conceptual, yang terdiri dari pertimbangan : perjanjian kontrak, rencana untuk
pengembangan lanjutan, pembagian kerja antara pengembang. 3.
Human, yang terdiri dari pertimbangan : keahlian dan pengalaman orang yang
terlibat dalam kegiatan pengembangan dengan sistem yang serupa dan dengan platform teknis yang akan dirancang. Sebuah rancangan yang baik memiliki tiga ciri-ciri yaitu : 1. Tidak memiliki kelemahan. Syarat ini menyebabkan adanya penekanan pada evaluasi dari kualitas berdasarkan review dan eksperimen dan membantu dalam menentukan prioritas dari criteria yang akan mengatur dalam kegiatan perancangan.
34 Tabel 2.5. dibawah ini adalah beberapa kriteria umum yang digunakan dalam kegiatan perancangan yang berorientasi object : Table 2.5. Beberapa kriteria dalam perancangan Criterion Usable
Ukuran dari Kemampuan sistem untuk menyesuaikan diri dengan konteks, organisasi yang berhubungan dengan pekerjaan dan teknis.
Secure
Ukuran keamanan sistem dalam menghadapi akses yang tidak terotorisasi terhadap data dan fasilitas.
Efficient
Eksploitasi ekonomis terhadap fasilitas platform teknis.
Correct
Pemenuhan dari kebutuhan.
Reliable
Pemenuhan ketepatan melaksanakan fungsi.
Maintainable
Biaya untuk menemukan dan memperbaiki kerusakan.
Testable
Biaya untuk memastikan bahwa sistem yang dibentuk dapat melaksanakan fungsi yang diinginkan.
Fleksible
Biaya untuk mengubah sistem yang dibentuk.
yang
dibutuhkan
untuk
Comprehensible Usaha yang diperlukan untuk mendapatkan pemahaman terhadap sistem. Reusable
Kemungkinan untuk menggunakan bagian sistem pada sistem lain yang berhubungan.
Portable
Biaya untuk memindahkan sistem ke platform teknis yang berbeda. Biaya untuk menggabungkan sistem ke sistem yang lain.
Interoperable
35 2. Menyeimbangkan beberapa kriteria. Konflik sering terjadi antar kriteria, oleh sebab itu untuk menentukan kriteria mana yang akan diutamakan dan bagaimana cara untuk menyeimbangkannya dengan kriteriakriteria yang lain bergantung pada situasi sistem tertentu.
3. Usable, flexible, dan comprehensible. Kriteria-kriteria ini bersifat universal dan digunakan pada hampir setiap proyek pengembangan sistem.
2.5.8.2. Component Architecture Mengacu pada Mathiassen et al. (2000) component architecture adalah sebuah struktur sistem yang terdiri dari komponen-komponen yang saling berhubungan. Komponen merupakan kumpulan dari bagian-bagian program yang membentuk suatu kesatuan dan memiliki fungsi yang jelas. Sebuah component architecture yang baik membuat sistem menjadi lebih mudah untuk dipahami, mengorganisasikan rancangan kegiatan, menggambarkan stabilitas dari konteks sistem dan mengubah tugas rancangan menjadi beberapa tugas yang lebih tidak kompleks.
Beberapa pola umum dalam rancangan komponen arsitektur : 1. Arsitektur layered Merupakan bentuk yang paling umum dalam software. Sebuah arsitektur layered terdiri dari beberapa komponen yang dibentuk menjadi lapisan-lapisan dimana lapisan yang berada di atas bergantung kepada lapisan yang ada dibawahnya. Perubahan yang terjadi pada suatu lapisan akan mempengaruhi lapisan diatasnya.
36 2. Arsitektur generic Pola ini digunakan untuk merinci sistem dasar yang terdiri dari antar muka, function, dan komponen-komponen model. Dimana komponen model terletak pada lapisan yang paling bawah, diikuti dengan function system dan komponen interface diatasnya. 3. Arsitektur client-server Pola ini awalnya dikembangkan untuk mengatasi masalah distribusi sistem di antara beberapa processor yang tersebar secara geografis. Komponen pada arsitektur ini adalah sebuah server dan beberapa client. Tanggung jawab daripada server adalah untuk menyediakan database dan resources yang dapat disebarkan kepada client melalui jaringan. Sementara client memiliki tanggung jawab untuk menyediakan antarmuka lokal untuk setiap penggunanya.
Dari komponen architecture ini akan menghasilkan class diagram with specification. Ada 2 macam metode berbeda dalam membagi komponen client dan server, yaitu: 1. Client dan server dianggap sebagai subsistem tunggal yang masing-masing memiliki komponen, yaitu: user interface(U), function (F), dan model (M). 2. Atau masing-masing dapat dianggap sebagai layer berbeda dalam sistem yang sama.
37 Table 2.6. di bawah ini adalah beberapa jenis distribusi dalam arsitektur client-server dimana U adalah user interface, F adalah function, M adalah model. Table 2.6. Client-server architecture 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.5.8.3. Process Architecture Mengacu pada Mathiassen et al. (2000) process architecture adalah struktur dari eksekusi sistem yang terdiri dari proses-proses yang saling tergantung. Untuk mengeksekusi atau menjalankan sebuah sistem dibutuhkan processor. Sedangkan external device adalah processor khusus yang tidak dapat menjalankan program. Process architecture harus dapat memastikan bahwa sistem dapat dijalankan secara memuaskan dengan menggunakan processor yang telah tersedia. Objects yang terlibat dalam sistem berorientasi object yang berjalan dapat dibagi menjadi dua yaitu : Active object yang ada ketika proses berlangsung; dan komponen program, sebuah modul fisik dari kode program yang pasif selama eksekusi sistem kecuali pada saat dipanggil sebagai bagian dari eksekusi proses sampai eksekusi proses tersebut selesai dijalankan.
38 Kegiatan arsitektur proses bermula dari komponen logis 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, mengkoordinasi pembagian sumber daya dengan active object dan menghasilkan arsitektur yang tidak memiliki hambatan. Pada aktivitas ini terdapat tiga jenis pola distribusi: a. Centralized pattern Pola ini menyimpan semua data pada server pusat dan user hanya dapat melihat user interface saja. Keuntungan dari pola ini adalah dapat diimplementasikan pada client secara murah, semua data konsisten karena hanya berada di satu tempat saja, strukturnya mudah dimengerti dan diimplementasikan ,dan kemacetan jaringannya moderat. b. Distributed pattern Pola ini semua terdistribusi ke user atau client dan server hanya menyebarkan model yang telah diupdate di antara client. Keuntungan utama dari pola ini adalah waktu akses yang rendah, sehingga tidak terjadi kemacetan jaringan, kinerja lebih maksimal, dan back-up data banyak. Kerugian dalam pola ini adalah banyaknya data yang redundant sehingga konsistensi data terancam, kemacetan jaringan yang tinggi karena semua update harus disebar kepada semua client, kebutuhan teknis yang canggih, arsitekturnya lebih sulit dimengerti dan diimplementasikan.
39 c. Decentralized pattern client Pola ini berada diantara kedua pola di atas. Pada pola ini client memiliki data tersendiri sehingga data umum hanya berada pada server. Server menyimpan data umum dan function atas data-data tersebut, sedangkan client menyimpan data yang merupakan milik bagian application domain client tersebut. Keuntungan pola ini adalah konsistensi data, karena tidak ada duplikasi data antara client dengan client lain ataupun dengan server, lalu lintas jaringan jarang karena jaringan hanya digunakan ketika data umum diserver di update. Kekurangan pola ini adalah bahwa semua processor harus mampu melakukan fungsi yang kompleks dan memelihara model dalam jumlah besar, sehingga akan meningkatkan biaya hardware.
Sumber daya yang pada umumnya digunakan secara bersama, yaitu : 1. Processor Terjadi apabila ada dua atau lebih proses yang dieksekusi secara bersamaan
pada
satu processor. 2. Program component Terjadi bila terdapat dua atau lebih proses yang secara bersamaan memanggil operasi pada komponen. 3. External device Misalnya, pada penggunaan printer yang terhubung melalui network.
40 2.5.9 Component Design Menurut Mathiassen et al (2000 ,P.231), component adalah kumpulan dari bagian-bagian program secara keseluruhan dan memiliki tanggung jawab yang didefinisikan dengan baik dengan tujuan untuk menetapkan kebutuhan-kebutuhan dari implementasi dalam sebuah architectural frame work. Tujuan dari kegiatan rancangan komponen ini adalah untuk menentukan implementasi kebutuhan dalam rangka kerangka arsitektural. Kegiatan rancangan komponen bermula dari spesifikasi arsitektural dan kebutuhan sistem, sedangkan hasil dari kegiatan ini adalah spesifikasi dari komponen yang saling berhubungan.
Dalam component design terdapat beberapa model, yaitu: 2.5.9.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 dapat disimpulkan bahwa model component adalah bagian dari sistem yang mengimplementasikan model problem domain. Tujuan dari komponen model adalah untuk mengirimkan data sekarang dan historic ke function, interface dan pengguna dan sistem yang lain. Konsep utama dalam desain model component adalah struktur.
41 Hasil dari kegiatan model component adalah revisi dari class diagram dari kegiatan analisis. Kegiatan revisi atau restukturisasi class dapat terjadi pada: 1. Generalisasi Jika terdapat dua class dengan attribute yang sama maka dapat dibentuk class baru ( revised class ) 2. Asosiasi Jika terjadi hubungan many-to-many 3. Embedded iterations Merupakan embedded di dalam statechart diagram.
2.5.9.2.Function Component Mengacu pada Mathiassen et al. (2000) komponen function adalah bagian dari sistem yang mengimplementasikan kebutuhan fungsional. Tujuan dari function component adalah untuk memberikan akses bagi user interface dan komponen sistem lainnya ke model, oleh karena itu function component adalah penghubung antara model dan usage. Function dirancang dan diimplementasikan dengan menggunakan operasi dari class sistem. Operasi adalah suatu proses yang dispesifikasikan dalam sebuah class dan dijalankan melalui object dari class tersebut. Hasil utama dari kegiatan ini adalah class diagram untuk function component dan perpanjangan dari class diagram model component. Berikut adalah sub kegiatan dalam perancangan function component adalah : Sub kegiatan ini menghasilkan kumpulan operasi yang dapat mengimplementasikan fungsi sistem seperti yang ditentukan dalam analisis problem domain dan function list. a. Merancang function sebagai operation.
42 b. Menelusuri pola yang dapat membantu dalam implementasi function sebagai operation. c. Spesifikasikan operasi yang kompleks.