BAB II LANDASAN TEORI
2.1
Pengertian Sistem Informasi SI telah menjadi komponen yang sangat penting bagi keberhasilan bisnis dan
organisasi. Menurut Hall (2008, p7), SI adalah sebuah rangkaian prosedur formal di mana data dikumpulkan, diproses menjadi informasi dan distribusikan atau disebarkan kepada para pemakai. Menurut O’Brien (2006, p5), SI merupakan kombinasi teratur apapun dari orangorang, hardware, software, jaringan komunikasi dan sumber daya data yang mengumpulkan, mengubah dan menyebarkan informasi dalam sebuah perusahaan. Manusia bergantung pada SI untuk berkomunikasi antara satu sama lain dengan menggunakan berbagai jenis perangkat keras, piranti lunak, perintah, jaringan dan sumber daya data sejak permulaan peradaban. Menurut Turban (2006, p49), SI adalah kumpulan proses yang menjalankan fungsi mengumpulkan, memproses, menganalisis, dan menyebarkan informasi untuk tujuan tertentu. SI tidak harus terkomputerisasi, walaupun kebanyakan memang terkomputerisasi. Berdasarkan pengertian-pengertian di atas, maka dapat disimpulkan bahwa SI merupakan kumpulan orang, hardware, software, jaringan komunikasi dan sumber daya data yang saling berkaitan dalam mengumpulkan, memproses, serta mendistribusikan informasi kepada pemakai untuk mendukung pengambilan keputusan.
10 2.2
Sistem Informasi Akuntansi Sistem Informasi Akuntansi (SIA) merupakan bagian dari Sistem Informasi
Manajemen (SIM). Menurut Jones dan Rama (2006, p5), “The Accounting Information System is a subsystem of an MIS that provides accounting and financial information, as well as other information obtained in the routine processing of accounting transactions”. Artinya, SIA adalah suatu subsistem dari SIM yang menyediakan informasi akuntansi dan keuangan, sama seperti informasi lain dari proses rutin transaksi akuntansi. SIA menghasilkan informasi yang berguna untuk mengambil keputusan dalam perusahaan. Menurut Romney dan Steinbart (2006, p6), SIA adalah suatu sistem yang mengumpulkan, mencatat, menyimpan, dan memproses data untuk menghasilkan informasi bagi para pengambil keputusan. Menurut Gelinas dan Dull (2008, p14), SIA merupakan subsistem dari SI yang bertujuan mengumpulkan, memproses, dan melaporkan informasi terkait dengan aspek keuangan suatu kejadian bisnis. Artinya, SIA membantu pihak manajemen dalam pengambilan keputusan berkaitan dengan keuangan perusahaan. Komputerisasi dalam SIA sangat membantu untuk mempercepat proses transformasi data akuntansi menjadi informasi. Menurut Bodnar dan Hopwood (2010, p5), “AIS is a computer-based system designed to transform accounting data into information.”Artinya, SIA adalah sebuah sistem berbasis komputer yang didesain untuk mengubah data akuntansi menjadi informasi. Berdasarkan pengertian-pengertian di atas, dapat disimpulkan bahwa SIA adalah suatu sistem yang dirancang untuk mengumpulkan, mencatat, menyimpan dan memproses data-data dari transaksi akuntansi rutin menjadi informasi akuntansi
11 sistematis. SIA digunakan untuk memenuhi kebutuhan informasi dalam mendukung pengambilan keputusan oleh pihak berkepentingan di dalam suatu perusahaan. 2.3
Kegunaan Sistem Informasi Akuntansi SIA adalah subsistem dari SIM. Menurut McLeod dan Schell (2007, p11), SIM
merupakan sistem berbasis computer yang menyediakan informasi bagi para pengguna yang memiliki kebutuhan yang sama. Sama seperti SIM, berarti SIA juga menyediakan informasi bagi pengguna yang memiliki kebutuhan akan informasi akuntansi. Informasi tersebut dapat berupa laporan-laporan yang berguna untuk pengambilan keputusan. Menurut Jones dan Rama (2006, p6), kegunaan dari SIA adalah : a. Membuat laporan eksternal SIA digunakan untuk menghasilkan laporan-laporan khusus untuk memenuhi kebutuhan infomasi dari para investor, kreditor, dinas pajak, badan-badan pemerintah, dan yang lain. b. Mendukung aktivitas rutin Manajer membutuhkan SIA untuk menangani operasi rutin sepanjang siklus operasi perusahaan. Contohnya antara lain menerima pesanan pelanggan, mengirimkan barang dan jasa, membuat faktur penagihan pelanggan, dan menagih kas ke pelanggan. c. Mendukung pengambilan keputusan Informasi juga dibutuhkan untuk mendukung pengambilan keputusan non rutin pada berbagai tingkat dalam organisasi. d. Perencanaan dan pengendalian SI digunakan untuk perencanaan dan pengendalian aktivitas. Informasi mengenai anggaran dan biaya-biaya standar disimpan dalam SI dan laporan dirancang untuk membandingkan antara anggaran yang ditetapkan dengan jumlah sebenarnya.
12 e. Implementasi pengendalian internal Pengendalian internal meliputi kebijakan, prosedur, dan SI yang digunakan untuk melindungi aset perusahaan dari kehilangan atau pencurian dan untuk memelihara keakuratan data keuangan. 2.4
Komponen Sistem Informasi Akuntansi Menurut Romney dan Steinbart (2006, p6), terdapat enam komponen dari SIA,
yaitu: a. People, yang mengoperasikan sistem dan melakukan berbagai macam fungsi. b. Procedures and instructions, baik manual maupun otomatis. Dilibatkan dalam pengumpulan, pemrosesan, dan penyimpanan data mengenai aktivitas organisasi. c. Data, tentang organisasi dan proses bisnisnya. d. Software, yang digunakan untuk memproses data organisasi. e. Information technology sekelilingnya,
dan
infrastructure, termasuk komputer, peralatan di
peralatan
komunikasi
jaringan
yang
digunakan
untuk
mengumpulkan, menyimpan, memproses, serta mengirimkan data dan informasi. f. Internal controls and security measures, yang mengamankan data dalam SIA. 2.5
Siklus Sistem Informasi Akuntansi Menurut Romney dan Steinbart (2006, p29), siklus pemrosesan transaksi pada
sistem adalah suatu rangkaian aktivitas yang dilakukan perusahaan dalam menjalankan bisnisnya mulai dari proses pembelian, produksi, hingga penjualan barang dan jasa. Siklus transaksi pada perusahaan dapat dibagi ke dalam lima subsistem, yaitu: a. Revenue cycle, terjadi dari transaksi penjualan dan penerimaan kas. b. Expenditure cycle, terdiri dari peristiwa pembelian dan pengeluaran kas. c. Human Resource/ Payroll cycle, terdiri dari peristiwa yang berhubungan dengan
13 perekrutan dan pembayaran atas tenaga kerja. d. Production cycle, terdiri dari peristiwa yang berhubungan dengan pengubahan bahan mentah menjadi produk/jasa siap dipasarkan. e. Financing cycle, terdiri dari peristiwa yang berhubungan dengan penerimaan modal dari investor dan kreditor. 2.6
Penjualan Tunai dan Konsinyasi Ikatan Akuntan Indonesia (IAI) dalam Pernyataan Standar Akuntansi Keuangan
(2009, pasal 23) menyatakan bahwa penjualan barang meliputi barang yang diproduksi perusahaan untuk dijual dan barang yang dibeli untuk dijual kembali, seperti barang dagang yang dibeli pengecer atau tanah dan properti lain yang dibeli untuk dijual kembali. 2.6.1
Penjualan Tunai Menurut Arif dan Wibowo (2008, p78), penjualan tunai adalah penjualan
barang dagangan dengan menerima pembayaran kas atau tunai secara langsung dari pelanggan pada saat terjadinya penjualan. Pembayaran atas penjualan tunai mulai berkembang menjadi berbagai cara seiring perkembangan teknologi yang digunakan bank. Misalnya, pembayaran dengan cara debit dari rekening bank pembeli atau contoh lainnya adalah flazz card BCA. 2.6.2 Penjualan Konsinyasi Menurut Drebin yang diterjemahkan oleh Saragih, Sinaga, dan Saat (2006, p158), penjualan konsinyasi adalah penyerahan fisik atau penitipan barang-barang oleh pihak pemilik kepada pihak lain yang bertindak sebagai agen penjual di mana secara hukum hak atas barang-barang tetap berada di tangan pemilik sampai barangbarang tersebut dijual oleh pihak agen penjual. Dalam metode penjualan konsinyasi, pihak yang memiliki barang disebut consignor (konsinyor) dan pihak yang
14 mengusahakan penjualan barang disebut consignee (konsinyi).
Adapun keuntungan-keuntungan dari penjualan konsinyasi bagi kedua pihak adalah sebagai berikut: a. Bagi pihak konsinyor •
Untuk memperluas daerah pemasaran, terutama jika: 9 Barang
itu
merupakan
barang
diintrodusir
(diperkenalkan)
dan
permintaan akan jumlah produk belum diketahui secara pasti. 9 Penjualan di masa sebelumnya tidak menguntungkan bagi agen penjualan. 9 Barang yang dijual mahal dan membutuhkan investasi yang besar bagi agen penjual jika harus membelinya. 9 Fluktuasi harga atau produk tidak tahan lama sehingga agen penjual setuju membeli barang hanya dengan persyaratan bahwa resiko kerugian ditanggung oleh pihak lain. •
Konsinyor dapat memperoleh spesialis penjualan. Imbalan untuk jasa penjualan berupa komisi, persentase harga jual, atau dapat juga berupa jumlah tetap untuk setiap barang yang terjual.
•
Harga jual eceran barang konsinyasi dapat dikendalikan oleh pihak konsinyor yang masih menjadi pemilik barang ini.
b. Bagi pihak konsinyi •
Pihak konsinyi terlepas dari resiko kegagalan penjualan barang atau dari resiko penjualan dengan rugi, khususnya apabila produk yang dijual masih baru.
•
Risiko kerusakan fisik dan fluktuasi harga dapat dihindari.
•
Kebutuhan modal kerja berkurang karena penetapan harga pokok persediaan barang konsinyasi dilakukan oleh pihak konsinyor.
Alasan keuntungan yang sangat bermanfaat mendorong kedua pihak menjalin dan mengembangkan kebijaksanaan kerjasama penjualan konsinyasi.
15 2.7
Persediaan Ikatan Akuntan Indonesia (IAI) dalam Pernyataan Standar Akuntansi Keuangan
(2009, pasal 14), persediaan adalah : (a) tersedia untuk dijual dalam kegiatan usaha normal; (b) dalam proses produksi dan atau dalam perjalanan; atau (c) dalam bentuk bahan atau perlengkapan (supplies) untuk digunakan dalam proses produksi atau pemberian jasa. Persediaan meliputi barang yang dibeli dan disimpan untuk dijual kembali. Misalnya, barang dagang dibeli oleh pengecer untuk dijual kembali atau pengadaan tanah dan properti lainnya untuk dijual kembali. Persediaan juga mencakup barang jadi setelah produksi atau barang dalam penyelesaian yang sedang diproduksi perusahaan, termasuk bahan serta perlengkapan untuk digunakan dalam proses produksi Menurut Warren (2005, p359), persediaan adalah sesuatu yang digunakan untuk mengidentifikasi barang yang disimpan untuk kemudian dijual dalam operasi normal perusahaan. Pada perusahaan dagang, persediaan adalah barang yang dibeli untuk kemudian dijual kembali oleh perusahaan. 2.8
Object Oriented Analysis and Design (OOAD) Menurut Mathiassen et al. (2000, p15), Object Oriented Analysis and Design
(OOA&D) terbagi dalam empat aktivitas utama. Empat aktivitas tersebut terdiri dari problem domain, application domain, architecture design, dan component design. Berikut adalah gambar dan penjelasan dari ke empat aktivitas tersebut :
16
Gambar 2.1 Aktivitas Utama dan Hasil dalam OOA&D Sumber : Mathiassen et al. (2000, p15) 2.8.1
Problem Domaim Analysis Menurut Mathiassen et al. (2000, p45) problem domain adalah bagian dari
konteks yang diatur, dimonitor atau dikontrol oleh sistem. Analisa Problem Domain dibagi menjadi tiga aktivitas, yaitu class, structure, dan behavior. Berikut adalah gambar dan penjelasan dari ketiga aktivitas tersebut :
17
Gambar 2.2 Aktivitas dalam Problem Domain Modeling Sumber : Mathiassen et al. (2000, p46) a. Classes Menurut Mathiassen et al. (2000, p49-65), kegiatan class merupakan kegiatan pertama dalam analisis problem domain. Ada beberapa tugas dalam kegiatan ini, yaitu : •
Klasifikasi Object dan Event Object adalah sebuat entity dengan identity, state, behavior. Event adalah kejadian yang meliputi satu atau lebih object. Class merupakan deskripsi dari kumpulan object yang termasuk structure, behavioral pattern, dan attributes. 9 Menemukan Class Pemilihan
class
dilakukan
pada
saat
awal
dan
bertujuan
untuk
mendefinisikan dan membatasi problem domain. Class biasanya merupakan kata benda dan bermakna tunggal. Kegiatan class akan menghasilkan event table. Dimensi horizontal dari event table berisi class–class terpilih,
18 sementara dimensi vertikal berisi event–event terpilih dan tanda cek digunakan untuk mengidentifikasi objek-objek dari class yang berhubungan dalam event tertentu. 9 Menemukan Event Event adalah suatu kejadian yang dapat dilakukan atau terjadi pada satu atau lebih object. Biasanya digambarkan dalam bentuk event table dan berupa kata kerja. Pemilihan kumpulan event yang dilakukan oleh satu atau lebih objek bertujuan untuk membedakan tiap–tiap class dalam problem domain. Tabel 2.1 Contoh Event Table Classes Event Reserved Cancelled Treated Employed Resigned Graduated Agreed
Customer v v v
Assistant v v v v v
Apprentice Appointment v v v v v v v
Plan v
v
9 Evaluasi Sistem Pada bagian ini dilakukan evaluasi kriteria dari class dan event yang sudah ditemukan. b. Structure Mengacu pada Mathiassen et al. ( 2000, p69), structure merupakan kegiatan kedua dalam problem domain. Tujuannya adalah untuk mencari hubungan struktural antara class–class dan objek–objek dalam problem domain. Hasil dari kegitan structure adalah membuat class diagram. Dua konsep pada structure adalah :
19 •
Class Structure 9 Generalization Kelas umum (superclass) yang menggambarkan properti–properti umum terhadap
sekelompok
kelas
khusus
(subclass).
Hubungan
dalam
generalization dapat dikatakan sebagai hubungan ”is–a”, artinya subclass akan menpunyai attribute dan operation yang sama dengan superclass. Stuktur generalization dapat dilihat pada gambar 2.3 berikut ini :
Gambar 2.3 Generalization structure Sumber : Mathiassen et al. (2000, p73) Sebagai contoh, berdasarkan gambar di atas dapat dikatakan bahwa “a taxi is a passenger car” atau “a private car is a passenger car”. 9 Cluster Kumpulan dari class–class yang berhubungan. Berikut gambar yang memperlihatkan suatu cluster :
20
Gambar 2.4 Contoh Cluster Sumber : Mathiassen et al. (2000, p79) Clusters adalah ekspresi dari subdomains dalam problem domain. Clusters dapat digunakan selama analisis untuk meningkatkan kejelasan, termasuk dalam menghasilkan model ketika structures lain telah ditetapkan. •
Object Stucture 9 Aggregation Objek superior (keseluruhan) yang terdiri dari beberapa objek (bagianbagiannya). Hubungan aggregation dirumuskan sebagai hubungan ”is-partof”. Menurut Mathiassen et al. (2000, p79) ada tiga tipe struktur aggregation,yaitu: -
Whole–part, objek superior adalah jumlah dari objek inferior. Jika dilakukan penambahan atau penghapusan objek inferior, maka akan mengubah pokok objek superior.
-
Container–content, objek superior adalah container bagi objek inferior. Jika melakukan penambahan maupun penghapusan objek inferior tidak akan mengubah pokok objek superior.
21 -
Union–member, objek superior adalah container bagi objek inferior yang terorganisasi. Tidak akan terjadi perubahan pada objek superior apabila melakukan penambahan atau penghapusan objek inferior tetapi ada batasannya.
9 Association Hubungan yang berarti antara beberapa objek. Stuktur association dapat dilihat pada gambar 2.5 di bawah ini :
Gambar 2.5 Association Structure Sumber : Mathiassen et al. (2000, p77) Perbedaan antara aggregation dan association adalah : -
Hubungan antar class pada aggregation mempunyai hubungan yang kuat sedangkan association tidak.
-
Aggregation structure melukiskan hubungan defensif dan fundamental, sedangkan association structure melukiskan hubungan yang tidak tetap.
c. Behavior Mengacu kepada Mathiassen et al. (2000, p89), kegiatan utama dalam problem domain adalah kegiatan behavior, tujuannya menggambarkan apa yang akan terjadi dalam sistem problem domain sepanjang waktu. Behavior bertujuan untuk membuat model yang dinamis dari problem domain. Hasil dari kegiatan
22 behavior adalah membuat statechart diagram, yang dapat dilihat pada gambar 2.6 berikut :
Gambar 2.6 Contoh dari Statechart Diagram Sumber : Mathiassen et al. (2000, p90) Gambar di atas adalah contoh statechart diagram sederhana untuk class “Customer” di suatu bank. 2.8.2
Application Domain Analysis Menurut Mathiassen et al. (2000, p117), application domain adalah
organisasi yang melakukan administrasi, memonitor, atau mengontrol problem domain.
23
Gambar 2.7 Application domain analysis Sumber : Mathiassen et al. (2000, p117) Hasil dari analisis mengenai application domain adalah suatu daftar lengkap mengenai kriteria pemakaian dari keseluruhan sistem. Tujuannya untuk menentukan kebutuhan pemakaian sistem. Analisa application domain dibagi menjadi tiga aktivitas, yaitu : a. Usage Mengacu pada Mathiassen et al. (2000, p119), usage merupakan kegiatan pertama dalam analisis application domain. Usage bertujuan untuk menentukan bagaimana actor–actor sebagai pengguna atau sistem lain berinteraksi dengan sistem yang dituju. Interaksi antara actor dengan sistem tersebut dinyatakan dalam use case. •
Use case Use case merupakan pola interaksi antara sistem dan aktor di dalam application domain. Use case dapat digambarkan dengan menggunakan spesifikasi use case di mana use case dijelaskan dengan singkat namun jelas dan dapat disertai
24 dengan keterangan objek sistem terlibat dan function dari use case tersebut atau dengan diagram statechart karena use case adalah sebuah fenomena yang dinamik. •
Actor Actor adalah abstraksi dari pengguna atau sistem lain yang berinteraksi dengan sistem target. Cara untuk mengidentifikasi actor adalah dengan mengetahui alasan yang berbeda untuk menggunakan sistem. Masing–masing actor memiliki alasan yang berbeda untuk menggunakan sistem. Cara lainnya yaitu dengan melihat peran dari aktor seperti yang dinyatakan oleh use case dimana actor tersebut terlibat. Masing-masing actor memiliki peran 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.
•
Explore pattern Use case pattern digunakan untuk mengidentifikasikan dan menggambarkan use case. Use case patterns dasar terdiri atas : 9 the procedural pattern, 9 the material pattern. Berikut adalah contoh dari use case :
25
Gambar 2.8 Use Case Sumber : Mathiassen et al. (2000, p117) Gambar use case di atas menggambarkan contoh kegiatan actor di suatu bank. Misalnya, customer dapat menarik uang dan karyawan bank mendapat customer. b. Sequence Menurut Mathiassen et al. (2000, p340), ”Sequence diagram menjelaskan tentang interaksi diantara beberapa objek dalam jangka waktu tertentu. Sequence diagram melengkapi class diagram, yang menjelaskan situasi umum dan statis. Sebuah sequence diagram dapat mengumpulkan rincian situasi kompleks dan dinamis melibatkan beberapa dari kebanyakan object yang digeneralisasikan dari class pada class diagram.” Sequence diagram dapat digambarkan pada tingkat detail mana saja untuk mencapai berbagai tujuan pada beberapa tahapan pada siklus hidup pengembangan. Aplikasi sequence diagram yang paling umum adalah untuk mempresentasikan
26 interaksi objek secara detail untuk satu use case atau satu operation. Ketika sequence diagram digunakan untuk menggambarkan model behaviour use case yang dinamis, sequence diagram dapat dilihat sebagai spesifikasi detail dari use case. c. Function Mengacu pada Mathiassen et al. (2000, p137-146), function adalah sebuah fasilitas untuk membuat model berguna bagi aktor. Kegiatan function memfokuskan pada bagaimana cara sebuah sistem dapat membantu aktor dalam melaksanakan tugasnya. Tujuan dari kegiatan function adalah untuk menentukan kemampuan sistem memproses informasi. Hasil dari kegiatan ini adalah sebuah daftar rincian function-function yang kompleks. Daftar function harus lengkap, menyatakan kebutuhan kolektif dari pelanggan dan actor serta harus konsisten dengan use case. Function memilki 4 tipe yang berbeda, yaitu : •
Update, function ini disebabkan oleh event problem domain dan menghasilkan perubahan dalam state atau keadaan dari model tersebut.
•
Signal, function ini disebabkan oleh perubahan keadaan atau state dari model yang dapat menghasilkan reaksi pada konteks. Reaksi ini dapat berupa tampilan bagi actor dalam application domain, atau intervensi langsung dalam problem domain.
•
Read, function ini disebabkan oleh kebutuhan informasi dalam pekerjaan actor dan mengakibatkan sistem menampilkan bagian yang berhubungan dengan informasi dalam model.
27 •
Compute, function ini disebabkan oleh kebutuhan informasi dalam pekerjaan actor dan berisi perhitungan di mana melibatkan informasi yang disediakan oleh actor atau model, hasil dari function ini adalah tampilan dari hasil komputasi. Dalam mencari function perlu mempertimbangkan sumber untuk pencarian
function dan juga tingkat rincian. Sumber pencarian function merupakan bagian dari deskripsi problem domain. Deskripsi problem domain ini ditampilkan oleh class dan event ini merupakan bagian dari deskripsi application domain yang ditampilkan oleh use case. Classes biasanya menimbulkan read dan update function, event menimbulkan update function, sedangkan use case menimbulkan semua jenis function. d. Interface Kegiatan ketiga dari analisis application domain, yang bertujuan untuk menentukan system’s interface digunakan oleh aktor untuk berinteraksi dengan sistem. Menurut Mathiassen et al. (2000, p151), activity interface mempunyai tiga konsep, yaitu : •
Interface, yaitu fasilitas yang membuat model sistem dan fungsi dapat digunakan oleh actor.
•
User interface, adalah interface untuk user.
•
System interface, adalah interface untuk sistem lain. User interface yang baik dapat beradaptasi dengan tugas dan membantu
pemahaman user terhadap sistem. Kualitas user interface ditentukan oleh kegunaan atau usability interface tersebut bagi user. Terdapat empat jenis pola dialog yang penting dalam menentukan user interface, yaitu :
28 •
Pola menu-selection, terdiri dari daftar pilihan–pilihan yang mungkin dalam interface diagram.
•
Pola fill-in, merupakan pola klasik untuk entri data.
•
Pola command-language, di mana user memasukkan atau memulai format sendiri.
•
Pola direct-manipulation di mana user memilih objek dan melaksanakan function atas objek serta melihat hasil dari interaksi tersebut. Hasil dari kegiatan interface adalah sebuah deskripsi elemen user interface
yang lengkap di mana kelengkapan sistem ini menunjukkan pemenuhan kebutuhan pengguna. Hasil dari kegiatan user interface berupa form presentasi dan dialogue style, daftar lengkap dari elemen user interface, diagram window terpilih, dan diagram navigasi. Sedangkan hasil dari system interface berupa class diagram untuk peralatan dan protokol eksternal untuk berinteraksi dengan sistem yang lain. 2.8.3
Architecture Design Mengacu pada Mathiassen et al. (2000, p176), keberhasilan suatu sistem
ditentukan oleh kekuatan desain arsitekturnya. Arsitektur membentuk sistem sesuai dengan fungsi sistem tersebut dan dengan memenuhi kriteria desain tertentu.
29
Gambar 2.9 Aktivitas dalam Architectural Design Sumber : Mathiassen et al. (2000, p176) Architecture design memiliki tiga kegiatan, yaitu : a. Criteria Mengacu pada Mathiassen et al. (2000, p177-181), untuk menciptakan sebuah desain diperlukan pertimbangan mengenai kondisi dari setiap proyek yang dapat mempengaruhi kegiatan desain, yaitu : •
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 pembelian komponen standar.
•
Conceptual, terdiri dari pertimbangan : perjanjian kontrak, rencana untuk pengembangan lanjutan dan pembagian kerja antara pengembang.
•
Human, terdiri dari pertimbangan : keahlian dan pengalaman dari orang-orang terlibat dalam kegiatan pengembangan dengan sistem serupa dan dengan platform teknis yang didesain. Tidak ada cara–cara tertentu atau cara mudah
30 untuk menghasilkan suatu desain yang baik, banyak perusahaan menciptakan suatu standar dan prosedur untuk memberikan jaminan terhadap kualitas dari sistem. Di sini kegiatan criteria dapat membantu dengan menetapkan prioritas untuk setiap proyek tertentu. b. Component Mengacu pada Mathiassen et al. (2000, p190), arsitektur komponen adalah struktur sistem komponen-komponen atau bentuk dari komponen-komponen yang saling terhubung. Komponen merupakan kumpulan dari bagian-bagian program yang membentuk suatu kesatuan dan fungsinya jelas. Sebuah arsitektur komponen yang baik membuat sistem menjadi mudah untuk dipahami, mengorganisasikan pekerjaan desain, menggambarkan stabilitas dari konteks sistem, dan mengubah desain menjadi beberapa tugas sederhana. Beberapa pola umum dalam desain komponen arsitektur adalah : •
Arsitektur Layered Menurut Mathiassen et al. (2000, p193), arsitektur layered merupakan bentuk yang paling umum dari software seperti berikut ini :
31
<
> Layer i+1
Upwards Interface
<> Layer i
Downwards Interface <> Layer i-1
Gambar 2.10 Layered Architecture Pattern Sumber : Mathiassen et al. (2000, p193) Sebuah arsitektur layered terdiri dari beberapa komponen yang dibentuk menjadi lapisan-lapisan di mana lapisan di atas bergantung kepada lapisan di bawah. •
Arsitektur Generic Menurut Mathiassen et al. (2000, p196), pola ini digunakan untuk merinci pola dasar yang terdiri dari interface, function, dan komponen-komponen model, seperti terlihat pada gambar berikut ini :
32
Gambar 2.11 Generic Architecture Pattern Sumber : Mathiassen et al. (2000, p196) Komponen
model terletak pada lapisan yang paling bawah, diikuti dengan
function sistem dan komponen interface di atasnya. •
Arsitektur Client-Server Menurut Mathiassen et al. (2000, p197), pola ini awalnya dikembangkan untuk mengatasi masalah distribusi sistem di antara beberapa prosesor yang tersebar secara geografis. Komponen pada arsitektur ini adalah sebuah server dan beberapa client, seperti dapat dilihat pada gambar berikut ini :
33
Gambar 2.12 The Client-Server Architecture Pattern Sumber : Mathiassen et al. (2000, p197) Tanggung jawab daripada server adalah untuk menyediakan database dan resource yang dapat disebarkan kepada client melalui jaringan. Sementara client memiliki tanggung jawab untuk menyediakan interface local untuk setiap penggunanya. Ada dua macam metode dalam membagi komponen client dan server yaitu : 9 Client dan server dianggap sebagai subsistem tunggal yang masing-masing memiliki komponen, yaitu: user interface (U), function (F), dan model (M). 9 Atau masing-masing dapat dianggap sebagai layer yang berbeda dalam sistem serupa. Berikut ini beberapa jenis distribusi dalam arsitektur client-server : Tabel 2.2 Different Form of Distribution in a Client-Server Architecture Client U U U+F U+F U+F+M
Server U+F+M F+M F+M M M
Architecture Distributed Presentation Local Presentation Distributed Functionality Centralized Data Distributed Data
34 c. Process Mengacu pada Mathiassen et al.(2000, p209), arsitektur proses adalah struktur
eksekusi
sistem
bentukan
dari
proses-proses
yang
saling
berkaitan/bergantungan. Untuk mengeksekusi atau menjalankan sebuah sistem dibutuhkan processor. Sedangkan external device adalah processor khusus yang tidak dapat menjalankan program. Arsitektur proses harus dapat memastikan bahwa sistem dapat dijalankan secara memuaskan dengan mengunakan processor yang sudah tersedia. Kegiatan arsitektur proses bermula dari komponen logic 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 mengeksekusi sistem.
•
Mengkoordinasi pembagian sumber daya dengan aktif objek.
•
Menghasilkan arsitektur yang tidak memiliki hambatan. Sumber daya yang sering digunakan secara bersama yaitu :
•
Processor, terjadi apabila ada dua atau lebih proses yang dieksekusi secara bersamaan pada satu processor.
•
Program component, terjadi bila terdapat dua atau lebih processor yang secara bersamaan memanggil operasi pada komponen.
•
External device, misalnya pada penggunaan printer yang terhubung melalui network. Beberapa pola distribusi dalam kegiatan desain process architecture:
35 •
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 dipahami dan diimplementasikan. Berikut gambaran dari pattern ini :
Gambar 2.14 Deployment Diagram for the Centralized Pattern Sumber : Mathiassen et al. (2000, p216)
36 •
Distributted Pattern Pada pola ini, semua data terdistribusi ke user/client dan server hanya menyebarkan model yang telah di-update di antara client. Keuntungan utama dari pola ini adalah waktu akses cepat sehingga tidak terjadi kemacetan jaringan, kinerja lebih maksimal dan back-up data yang banyak. Kekurangan pada pola ini adalah banyaknya data yang redundant sehingga konsentrasi data terancam, kemacetan jaringan yang tinggi karena update harus disebar kepada semua client, kebutuhan teknis canggih, arsitekturnya lebih sulit dimengerti dan diimplementasikan. Berikut gambar dari Distributed Pattern :
Gambar 2.15 Deployment diagram for the distributed pattern Sumber : Mathiassen et al. (2000, p217)
37 •
Decentralized Pattern Pola ini merupakan gabungan antara centralized pattern dan distributed pattern. Pada pola ini, client memiliki data tersendiri dan server memiliki data umum yang dapat diakses oleh semua client. Keuntungan pola ini adalah konsentrasi data, karena tidak ada duplikasi data antara client dengan client lain maupun dengan server, lalu lintas jaringan jarang karena jaringan hanya digunakan ketika data umum di server ter-update. Kekurangan pola ini adalah semua processor harus mampu melakukan fungsi yang kompleks dan memelihara model dalam jumlah yang besar, sehingga akan meningkatkan biaya hardware. Berikut adalah gambar dari Decentralized Pattern.
38
Gambar 2.16 Deployment Diagram for the Decentralized Pattern Sumber : Mathiassen et al. (2000, p219) 2.8.4
Component Design Mengacu pada Mathiassen et al. (2000, p232), tujuan dari desain komponen
ini adalah untuk menentukan implementasi kebutuhan dalam rangka arsitektural.
39
Gambar 2.11 Component Design Sumber : Mathiassen et al.(2000, p232) Kegiatan desain komponen bermula dari spesifikasi arsitektural dan kebutuhan sistem, sedangkan hasil dari kegiatan ini adalah spesifikasi dari komponen yang saling berhubungan. a. Model Component Mengacu pada Mathiassen et al. (2000, p236-245), model analisis problem domain menggambarkan kebutuhan sistem yang kemudian diimplentasikan dalam komponen model. Oleh karena itu dapat disimpulkan bahwa komponen model adalah bagian dari sistem yang diimplentasikan model problem domain. Tujuan dari komponen model adalah untuk mengirimkan data sekarang dan historic ke function, interface, dan pengguna sistem lain. Konsep utama dalam desain komponen model adalah structure. Hasil dari kegiatan komponen model adalah revisi dari class diagram dari kegiatan analisis. Kegiatan revisi ini biasanya
40 terdiri dari kegiatan menambahkan class, attribute dan structure baru yang mewakili event. Restrukturisasi class dapat terjadi pada : •
Generalization, jika terdapat dua class dengan attribute yang sama maka dapat dibentuk class baru (revised class).
•
Association, jika terdapat hubungan many-to-many.
•
Embedded iteration, merupakan embedded di dalam statechart diagram. Contoh, jika pada sebuah class terdapat statechart diagram yang mempunyai tiga iterative events, maka tiga class dapat dibentuk di dalam perancangan model.
b. Function Component Mengacu pada Mathiassen et al. (2000, p252), function component 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. Jadi, function component adalah penghubung antara model dan usage. Function didesain dan diimplementasikan dengan menggunakan operasi dari kelas sistem. Operasi adalah proses yang dispesifikasikan dalam sebuah class dan dijalankan melalui objek dari class tersebut. Hasil utama dari kegiatan ini adalah class diagram untuk function component dan perpanjangan dari class diagram komponen model. Sub kegiatan dalam
function component akan menghasilkan
kumpulan operasi yang dapat mengimplementasikan fungsi sistem seperti ditentukan dalam analisis problem domain dan function list. Berikut adalah sub kegiatan dalam function component :
41 •
Merancang function sebagai operation.
•
Menelusuri pola yang dapat membantu dalam implementasi function sebagai operation.
•
Spesifikasi operasi yang kompleks.
c. Connecting Component Mengacu pada Mathiassen et al. (2000, p274), untuk menghubungkan komponen harus ada desain koneksi (hubungan) di antara komponen dan class yang saling
bergantungan.
Desain
koneksi
dibutuhkan
agar
keduanya
dapat
mempertahankan sifat kohesif di mana pada saat yang bersamaan juga menjamin bahwa koneksi ini memiliki coupling yang rendah. Adapun aktivitas yang terkait dalam mendesain koneksi antara komponen adalah :
2.9
•
Menghubungkan class-class.
•
Mengeksplorasi polanya.
•
Melakukan evaluasi terhadap koneksi yang ada. Diagram dalam Analisis dan Perancangan Menurut Mathiassen et al. (2000, p334-344), ada delapan diagram yang
digunakan untuk menggambarkan empat tahap atau aktivitas utama dalam analisis dan perancangan berorientasi objek, yaitu: •
Rich Picture, menggambarkan sebuah pandangan menyeluruh dari people, object, process, structure, problem domain, system problem dan application domain.
•
Class Diagram, meenggambarkan kumpulan dari class dan hubungan struktural yang saling timbal balik.
42 •
Statechart Diagram menggambarkan behavioural yang digunakan pada semua objek dalam sebuah class khusus dan diuraikan oleh state dan transisi lainnya.
•
Use Case Diagram, model yang digunakan untuk interaksi antara sistem dan actor dalam application domain. Pada use case diagram berisi aktor dalam sebuah sistem.
•
Sequence
Diagram
menggambarkan
secara
grafis
bagaimana
objek-objek
berinteraksi satu sama lain melalui message-message yang dilakukan dari suatu use case diagram atau operasi. •
Navigation Diagram adalah sebuah statechart diagram khusus yang memfokuskan pada keseluruhan user interface yang dinamis. Navigation diagram menggambarkan semua user interface dan hubungan dinamisnya
•
Deployment diagram menguraikan sebuah konfigurasi sistem dalam bentuk processor dan object yang dihubungkan ke processor. Deployment diagram menggambarkan komponen sistem program, external device dan hubungan struktural timbal balik.
•
User Interface adalah sebuah konstruksi dari sebuah window tunggal dan deskripsi dari kegunaannya.