PENDAHULUAN
I-1
I-2
kegagalan[4], hal ini disebabkan karena perangkat lunak yang dibuat tidak dapat
memenuhi kebutuhan dan harapan pengguna (user requirements dan user
expectations).
Kendala yang dialami ketika mengembangkan sebuah perangkat lunak adalah
suatu pengembangan perangkat lunak tidak berhenti ketika perangkat lunak telah
dikirim ke konsumen. melainkan terus berlangsung selama masa hidup perangkat
lunak tersebut. Setelah sebuah perangkat lunak diterima oleh konsumen,
perangkat lunak tersebut harus selalu berubah mengikuti aturan bisnis yang
seringkali berubah. Sebagian dari perangkat lunak tersebut harus dimodifikasi
untuk menghilangkan error yang ditemukan, untuk beradaptasi terhadap
perubahan hardawre dan software, atau untuk meningkatkan performa. Namun
perubahan tersebut seringkali menimbulkan permasalahan baru yang tidak terduga
sebelumnya.
Erlikh(2000) mengadakan polling terhadap industri yang ada di Amerika
Serikat, dan hasilnya menunjukkan bahwa 85-90% dari biaya perangkat lunak
terletak pada biaya evolusi perangkat lunak. Survey lain menunjukkan bahwa
sekitar 2/3 dari biaya perangkat lunak adalah biaya pemeliharaan[5].
Kegagalan-kegagalan dan problema yang ada ketika membangun perangkat
lunak menunjukkan bahwa membangun perangkat lunak merupakan hal yang
cukup kompleks sehingga dibutuhkan suatu disiplin ilmu yang berfungsi untuk
menjelaskan dan memahami karakteristik dari pengembangan perangkat lunak.
Hal ini ditunjukkan dengan adanya disiplin ilmu Software Engineering yang
memberikan guidelines untuk membangun perangkat lunak.
Supaya perangkat lunak yang telah dibangun dapat berevolusi mengikuti
aturan bisnis yang selalu berubah-ubah, maka dibutuhkan suatu metode yang
disebut dengan SoC(Separation of Concern) ketika membangun perangkat lunak.
Gagasan ini dipopulerkan pertama kali oleh Edgar W. Dijkstra pada tahun 1974
dalam papper-nya yang berjudul “On Role Scientific Thought”.
Konsep awal Separation of Concern (SoC) yang dikemukakan Dijkstra,
bertujuan untuk memecah sebuah permasalahan yang kompleks ke dalam bagian-
bagian kecil yang lebih sederhana, lalu mencari solusi pada bagian-bagian kecil
I-3
tersebut. Namun dalam pembangunan sistem berorientasi objek, konsep SoC ini
memungkinkan adanya pemisahan domain permasalahan.
Pada awal tahun 1960-an, meskipun saat itu paradigma pengembangan
perangkat lunak masih didominasi oleh paradigma prosedural maupun struktural,
mulai dikembangkan paradigma sistem berorientasi objek. Paradigma ini
memiliki salah satu ciri yang menganut prinsip SoC yaitu encapsulation. Dengan
adanya encapsulation ini perubahan yang terjadi pada suatu kelas dapat diatur
sehingga tidak memengaruhi kelas lainnya.
Sekitar tahun 1980-an, ketika perangkat lunak mulai dominan digunakan di
perusahaan-perusahaan bisnis berskala besar, sistem berorientasi objek semakin
banyak digunakan. Keunggulan-keunggulan sistem berorientasi objek
dibandingkan sistem lainnya antara lain dengan adanya konsep-konsep seperti
component reusable, inheritance, polymorphism dan lain sebagainya.
Karakteristik sistem berorientasi objek menyebabkan sistem ini cocok
digunakan pada sistem informasi yang berkaitan dengan dunia bisnis, antara lain
sistem informasi akuntansi, sistem informasi manajemen, manufaktur dan lain-
lain. Kemudahan sistem berorientasi objek dalam berevolusi mengikuti perubahan
aturan bisnis pada perusahaan merupakan salah satu nilai tambah dari sistem
berorientasi objek.
Pada pembangunan Sistem Inventaris, perubahan nilai tukar valas, minimnya
stok, membanjirnya permintaan, dan terjadinya suatu bencana alam, dapat
menyebabkan fluktuasi pada harga barang dan menyebabkan suatu perubahan
pada aturan bisnis yang berlaku. Perubahan pada aturan bisnis tersebut dapat
mempengaruhi cara kerja Sistem Inventaris, dan dapat menyebabkan modifikasi
pada Sistem. Modifikasi tersebut seringkali menyebabkan munculnya error-error
dan bugs baru yang tidak teridentfikasi sebelumnya. Bahkan tidak jarang,
modifikasi pada satu bagian sistem menimbulkan tidak berfungsinya bagian
sistem yang lain.
Berdasarkan uraian di atas, maka pada proposal tugas akhir ini penulis
tertarik untuk mengangkat tema tentang pengembangan perangkat lunak dengan
I-4
B. Pengembangan Aplikasi
Tahap ini merupakan pengembangan perangkat lunak dengan
menggunakan Waterfall Model, tahapan-tahapan pengembangan
yang dilakukan adalah :
1. Requirement Analysis and definition (analisis kebutuhan dan
pendefinisian dari kebutuhan tersebut).
Dalam tahap ini terjadi komunikasi berupa konsultasi dengan
calon pengguna sistem mengenai layanan-layanan atau fitur
yang disediakan oleh sistem, batasan atau domain yang dicakup
oleh sistem, dan tujuan pembangunan sistem. Keseluruhan
elemen tersebut kemudian didefinisikan secara detil dan
berfungsi sebagai system specification (spesifikasi sistem).
2. System and software design (perancangan sistem dan
perancangan perangkat lunak).
Proses perancangan sistem mengalokasikan requirement yang
telah diperoleh dari tahap analisis ke dalam perangkat lunak
dan perangkat keras sistem dengan cara membangun arsitektur
sistem secara keseluruhan. Sedangkan proses perancangan
perangkat lunak meliputi proses identifikasi dan penggambaran
abstraksi dasar sistem beserta relasi-relasinya.
3. Implementation and unit testing
Pada tahap ini, desain perangkat lunak diimplementasikan ke
dapam kumpulan program-program atau unit program. Unit
I-7
Pembahasan dalam tugas akhir ini dibagi menjadi beberapa bab sebagai
berikut:
Bab Satu Pendahuluan, bab ini merupakan suatu dasar penyusunan yang
didalamnya berisi latar belakang masalah, rumusan masalah, tujuan, metode
pengembangan sistem dan sistematika penulisan.
Bab Dua Landasan Teori, bab ini menjelaskan tentang teori-teori yang
berhubungan dengan sistem kerja dan pengembangan aplikasi yang bersangkutan.
I-8
Bab Tiga Analisis Sistem. Bab ini membahas tentang analisis kebutuhan
sistem, ada empat aktivitas untuk mengetahui kebutuhan sistem, yaitu: Feasibility
study, Requirement elicitation and analysis, Requirement specification, dan
Requirement validation.
Bab Empat Perancangan Sistem. Bab ini menjelaskan tentang
perancangan arsitektural sistem, perancangan antarmuka, perancangan komponen
sistem, dan perancangan basis data.
Bab Lima Kesimpulan dan Saran, dalam bab ini membahas kesimpulan
dan saran dari beberapa bab yang telah disusun sebelumnya.