Anda di halaman 1dari 8

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah


Membangun sebuah perangkat lunak merupakan sebuah proses yang rumit,
dan pada 25 tahun terakhir, para peneliti telah mengidentifikasi aktivitas-aktivitas
yang harus dilalui dalam sebuah pengembangan perangkat lunak. Aktivitas-
aktivitas tersebut antara lain[2] :
- Definisi permasalahan
- Penggalian requirement
- Perencanaan konstruksi
- Mendesain arsitektur perangkat lunak, atau sering juga disebut high-level
design
- Tahap design yang lebih detail.
- Coding dan debugging
- Unit testing
- Integration testing
- Integration
- System testing
- Corrective maintenance
Sedangkan Pressman menyatakan tahapan-tahapan pengembangan
perangkat lunak sebagai berikut [3] :
- Communication
- Planning
- Modeling
- Construction
- Deployment
Sebelum tahun 2000, lebih dari lima puluh persen pengembangan perangkat
lunak yang dilakukan oleh para vendor di Amerika Serikat mengalami

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

judul ”Pemanfaatan Separation of Concern (SoC) pada Sistem Berorientasi


Objek (Studi Kasus Sistem Inventaris Toko Aksesoris Komputer)”.

1.2 Identifikasi Masalah


Berdasarkan latar belakang yang telah dipaparkan di atas, maka masalah
yang muncul dalam penelitian ini adalah:
1. Banyaknya pembangunan perangkat lunak yang mengalami kegagalan,
baik dari segi user requirement maupun dari segi user expectations.
2. Sulitnya membangun perangkat lunak secara tepat waktu dan sesuai
budjet.
3. Besarnya biaya dan sumberdaya yang mesti dikeluarkan saat tahap
maintenance pada proses pembangunan perangkat lunak.
4. Sistem inventaris yang bersifat fleksibel dan dapat berevolusi
mengikuti perubahan aturan bisnis pada perusahaan sulit untuk
dikembangkan.

1.3 Rumusan Masalah

Berdasarkan identifikasi masalah yang telah dipaparkan di atas, maka


masalah yang muncul dalam penelitian ini dapat dirumuskan sebagai berikut:
1. Bagaimana cara agar sebuah perangkat lunak dapat dimodifikasi untuk
mengikuti perubahan pada aturan bisnis?
2. Bagaimana membangun sebuah kelas yang menerapkan prinsip SRP
(Single Responsibility Principle)?
3. Bagaimana membangun struktur kelas yang menerapkan prinsip OCP
(Open Closed Principle)?
4. Bagaimana membangun sebuah Sistem Inventaris yang fleksibel namun
robust?
I-5

1.4 Tujuan Penelitian


Adapun tujuan dari tugas akhir ini adalah memahami prinsip-prinsip
pembangunan sistem berorientasi objek yang memungkinkan kemudahan modifikasi
sistem, dengan memperhatikan SoC (Separation of Concern) seperti prinsip SRP (Single
Responsibility Principle), OCP (Open Closed Principle), design pattern yang berkaitan
dengan SoC, dan membangun aplikasi dengan layering.

1.5 Batasan Masalah

Untuk dapat menghindari penyimpangan-penyimpangan serta memperjelas


ruang lingkup pelaksanaan penelitian pada tugas akhir ini, penulis memiliki
batasan masalah meliputi :
1. Sistem ini hanya mencakup garis besar prinsip-prinsip pemisahan problem
domain.
2. Pembangunan sistem ini hanya menggunakan satu komputer, sehingga
permasalahan-permasalahan yang bersifat client-server tidak dibahas di sini.
3. Sistem ini tidak membahas tentang keamanan, seperti keamanan aplikasi
dan keamanan database.
4. Tidak semua design pattern yang berkaitan dengan SoC digunakan,
melainkan hanya design pattern yang berkaitan dengan aplikasi yang dibuat.

1.6 Metode Penelitian

Kegiatan penelitian ini dalam bentuk pengembangan perangkat lunak dan


menggunakan Waterfall Model, tahapan-tahapan pengembangan yang dilakukan
adalah Requirement analysis and definition, system and software design,
implementation and unit testing, integration and system testing, dan operation and
maintenance. Tahapan-tahapan tersebut saling terkait dan saling mempengaruhi
membentuk sebuah siklus hidup perangkat lunak (Software Development Life
Cycle).
Langkah-langkah yang akan ditempuh dalam pengerjaan Tugas Akhir ini
adalah:
I-6

A. Pemahaman Sistem dan Studi Literatur

Tahap ini dilakukan dengan cara mempelajari literatur baik yang


berupa buku, jurnal maupun halaman web yang berhubungan
dengan pembangunan aplikasi pembangunan aplikasi berorientasi
objek serta teknik-teknik yang berhubungan dengan Separation of
Corncern

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

testing meliputi proses verifikasi bagwa setiap unit yang telah


diimplementasikan memenuhi spesifikasinya.
4. Integration and system testing
Unit-unit program yang masih terpisah diintegrasikan dan di-
test sebagai sebuah sistem yang terintegrasi untuk memastikan
bahwa requirement perangkat lunak telah dipenuhi. Setelah
testing dilakukan, perangkat lunak tersebut kemudian
dikirimkan ke konsumen.
5. Integration and system testing
Umumnya (meskipun tidak selalu), tahap ini adalah tahap
terlama dari SDLC. Sistem tersebut di-install dan mulai
digunakan pada dunia nyata. Tahap pemeliharaan meliputi
perbaikan error-error yang tidak ditemukan pada tahap-tahap
SDLC yang lebih awal, peningkatan implementasi dari unit
sistem dan memperbaiki fitur sistem untuk menyesuaikan
terhadap requirement-requirement baru yang ditemukan.

C. Penyusunan Laporan Tugas Akhir


Pada tahapan ini dilakukan untuk membuat laporan dari semua
dasar teori dan metode yang digunakan serta hasil- hasil yang
diperoleh selama pengerjaan tugas akhir.

1.7 Sistematika Penulisan

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.

Anda mungkin juga menyukai