2.1 Rekayasa Perangkat Lunak
Istilah Rekayasa Perangkat Lunak (RPL) secara umum disepakati sebagai
terjemahan dari istilah Software Engineering. Istilah Software Engineering
dipopulerkan tahun 1968 pada Software Engineering Conference yang
diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas
pada bagaimana membuat program komputer. Padahal ada perbedaan yang
mendasar antara perangkat lunak (software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses
informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah
kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah
perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien,
1999). Pengertian RPL sendiri adalah sebagai berikut: Suatu di siplin Ilmu yang
membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu
analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna,
disain, pengkodean, pengujian sampai memelihara system setelah di gunakan.
Jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan
program komputer. Pernyataan “semua aspek produksi” pada pengertian di atas,
mempunyai arti semua hal yang berhubungan dengan proses produksi seperti
manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas
sampai dengan pelatihan pengguna merupakan bagian dari RPL.
Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan
untuk membantu proses pengembangan perangkat lunak. Model-model ini pada
umumnya mengacu pada model proses pengembangan sistem yang disebut System
Development Life Cycle (SDLC) seperti terlihat pada Gambar 2.1.
Gambar 2.1 Sistem Development Life Cycle
Setiap model yang dikembangkan mempunyai karakteristik sendiri-
sendiri. Namun secara umum ada persamaan dari model-model ini, yaitu:
• Kebutuhan terhadap definisi masalah yang jelas. Input utama dari
setiap model pengembangan perangkat lunak adalah pendefinisian masalah
yang jelas. Semakin jelas akan semakin baik karena akan memudahkan
dalam penyelesaian masalah. Oleh karena itu pemahaman masalah
seperti dijelaskan pada Bab 1, merupakan bagian penting dari
model pengembangan perangkat lunak.
• Tahapan-tahapan pengembangan yang teratur. Meskipun
model-model pengembangan perangkat lunak memiliki pola yang
berbeda-beda, biasanya model-model tersebut mengikuti pola umum analysis –
design – coding – testing - maintenance.
• Stakeholder berperan sangat penting dalam keseluruhan
tahapan pengembangan. Stakeholder dalam rekayasa perangkat lunak
dapat berupa pengguna pemilik, pengembang, pemrogram dan orang-orang
yang terlibat dalam rekayasa perangkat lunak tersebut.
• Dokumentasi merupakan bagian penting dari pengembangan
perangka lunak. Masing-masing tahapan dalam model biasanya
menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain
yang harus didokumentasi dan merupakan bagian tak terpisahkan dari
perangkat lunak yang dihasilkan.
Keluaran dari proses pengembangan perangkat lunak harus bernilah
ekonomis. Nilai dari sebuah perangkat lunak sebenarnya agak susah di-
rupiah-kan Namun efek dari penggunaan perangkat lunak yang telah dikembangrupiah-kan
haruslah memberi nilai tambah bagi organisasi. Hal ini dapat berupa penurunan
biaya operasi, efisiensi penggunaan sumberdaya, peningkatan keuntungan
organisasi, peningkatan “image” organisasi dan lain-lain
Ada banyak model pengembangan perangkat lunak. Pengembangan
perangkat lunak dalam skripsi ini menggunakan model waterfall atau bisa disebut
sekuensial linier untuk rekayasa perangkat lunak ditunjukkan seperti gambar 2.2.
Gambar 2.2 Model Waterfall
Rekayasa dan Pemodelan Sistem Analisa Kebutuhan Desain Pengkodean Pengujian PemeliharaanKarena Waterfall menggunakan pendekatan perkembangan perangkat lunak
yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada
seluruh analisis, desain, kode, pengujian, dan pemeliharaan. Dengan model ini
dilakukan aktivitas-aktivitas sebagai berikut :
Rekayasa dan pemodelan sistem/informasi:
Karena perangkat lunak selalu merupakan bagian dari sebuah sistem yang
lebih besar, pengerjaan dimulai dengan membangun syarat dari semua elemen
sistem dan mengalokasikan beberapa subset dari kebutuhan ke perangkat lunak
tersebut. Pandangan sistem ini penting ketika perangkat lunak harus berhubungan
dengan elemen-elemen lain seperti perangkat lunak, manusia, dan basis data.
Rekayasa dan analisis sistem menyangkut pengumpulan kebutuhan pada tingkat
sistem dengan sejumlah kecil analisis serta desain tingkat puncak. Rekayasa
informasi mencangkup juga pengumpulan kebutuhan pada tingkat bisnis stategis
dan tingkat area bisnis.
Analisis kebutuhan perangkat lunak :
Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya
pada perangkat lunak. Untuk memahami sifat program yang dibangun, analis
harus memahami domain informasi, tingkah laku, unjuk kerja, dan antar muka
yang diperlukan. Kebutuhan baik untuk sistem maupun perangkat lunak
didokumentasikan.
Desain:
Desain perangkat lunak ini merupakan proses multi langkah yang berfokus
pada empat atribut sebuah program yang berbeda: stuktur data, arsitektur
perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Proses
desain ini menterjemahkan syarat/ kebutuhan ke dalam sebuah representasi
perangkat lunak yang dapat diperkirakan demi kualitas sebelum pemunculan
kode. Sebagaimana persyaratan, desain didokumentasikan dan menjadi bagian
dari konfigurasi perangkat lunak.
Generasi Kode:
Desain harus bisa diterjemahkan ke dalam mesin yang bisa dibaca, maka
dilakukan langkah pembuatan kode. Jika desain dilakukan dengan cara lengkap,
pembuatan kode dapat diselesaikan secara mekanis.
Pengujian:
Setelah pembuatan kode, maka dilakukan pengujian. Proses pengujian
berfokus pada logika internal perangkat lunak, memastikan bahwa semua
pernyataan sudah diuji, dan pada eksternal fungsional yaitu mengarahkan
pengujian untuk menemukan kesalahan-kesalahan dan memastikan bahwa input
dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang dibutuhkan.
Pemeliharaan:
Perangkat lunak akan mengalami perubahan setelah disampaikan kepada
pengguna. Perubahan akan terjadi karena kesalahan-kesalahan ditentukan, karena
perangkat lunak harus disesuaikan untuk mengakomodasi perubahan- perubahan
di dalam lingkungan eksternalnya (contohnya perubahan yang dibutuhkan sebagai
akibat dari perangkat periperal atau sistem operasi yang baru), atau karena
pelanggan membutuhkan perkembangan fungsional atau unjuk kerja.
Pemeliharaan perangkat lunak mengaplikasikan lagi setiap fase program
sebelumnya dan tidak membuat yang baru lagi
2.2 UML (UNIFIED MODELING LANGUAGE)
UML singkatan dari Unified Modeling Language yang berarti bahasa
pemodelan standar. (Chonoles, 2003: bab 1) mengatakan sebagai bahasa, berarti
UML memiliki sintaks dan semantik. Ketika kita membuat model menggunakan
konsep UML ada aturan-aturan yang harus diikuti. Bagaimana elemen pada
model-model yang kita buat berhubungan satu dengan lainnya harus mengikuti
standar yang ada. UML bukan hanya sekedar diagram, tetapi juga menceritakan
konteksnya.
UML diaplikasikan untuk maksud tertentu, biasanya antara lain untuk:
1. Merancang perangkat lunak.
2. Sarana komunikasi antara perangkat lunak dan proses bisnis.
3. Menjabarkan sistem secara rinci untuk analisa dan mencari apa yang
diperlukan sistem.
4. Mendokumentasikan sistem yang ada, proses-proses dan organisasinya.
UML telah diaplikasikan dalam bidang investasi perbankan, lembaga
kesehatan, departemen pertahanan, sistem terdistribusi, sistem pendukung alat
kerja, retail, sales dan supplier.
Blok pembangunan UML adalah diagram. Beberapa diagram ada yang rinci
(jenis timing diagram) dan lainnya ada yang bersifat umum (misalnya diagram
kelas). Para pengembang sistem berorientasi objek menggunakan menggunakan
bahasa model untuk menggambarkan, membangun dan mendokumentasikan
sistem yang mereka rancang. UML memungkinkan para anggota team untuk
bekerja sama dalam mengaplikasikan beragam sistem. Intinya, UML merupakan
alat konunikasi yang konsisten dalam mensuport para pengembang sistem saat ini.
Sebagai perancang sistem, mau tidak mau pasti akan menjumpai UML, baik kita
sendiri yang membuat atau sekedar membaca diagram UML buatan orang lain
(Pilone, 2005: bab 1).
Tabel 2.1 Tipe Diagram UML
Diagram
Tujuan
Keterangan
Acivity
Perilaku prosedural dan paralel
Sudah ada di UML 1
Class
Class, Fitur dan relasinya
Sudah ada di UML 1
Communication
Interaksi diantara obyek, lebih
menekankan ke link
Di UML 1 disebut
Collaboration
Component
Struktur dan koneksi dari
komponen
Sudah ada di UML 1
Composite
Structure
Dekomposisi sebuah class saat
runtime
Baru untuk UML 2
Deployment
Penyebaran / Installasi ke klien
Sudah ada di UML 1
Interaction
Overview
Gabungan antara activity dan
sequance diagram
Baru untuk UML 2
Object
Contoh konfigurasi instance
Tidak resmi ada di UML
1
Package
Struktur hierarki saat kompilasi
Tidak resmi ada di UML
1
Sequence
Interaksi antar obyek. Lebih
menekankan pada urutan
Sudah ada di UML 1
State Machine
Bagaimana event mengubah
sebuah obyek
Diagram
Tujuan
Keterangan
Timing
Interaksi antar obyek. Lebih
menekankan pada waktu
Sudah ada di UML 2
Use Case
Bagaimana user berinteraksi
dengan sebuah sistem
Sudah ada di UML 1
Pada skripsi ini hanya menggunakan use case, activity diagram, class
digram, dan sequence diagram
2.2.1 USE CASE
Menurut (Pilone, 2005:bab 7.1) use case menggambarkan fungsi tertentu
dalam suatu sistem berupa komponen, kejadian atau kelas. Sedangkan (Whitten,
2004: 258) mengartikan use case sebagai urutan langkah-langkah yang secara
tindakan saling terkait (scenario), baik terotomatisasi maupun secara manual,
untuk tujuan melengkapi satu tugas bisnis tunggal. Use case bekerja dengan cara
mendeskripsikan tipikal interaksi antara user sebuah sistem dengan sistemnya
sendiri melalui sebuah cerita bagaimana sebuah sistem dipakai. Urutan
langkah-langkah yang menerangkan antara pengguna dan sistem disebut skenario. Setiap
skenario mendeskripsikan urutan kejadian. Setiap urutan diinisialisasi oleh orang,
sistem yang lain, perangkat keras atau urutan waktu. Dengan demikian secara
singkat bisa dikatakan use case adalah serangkaian skenario yang digabungkan
bersama-sama oleh tujuan umum pengguna.
Dalam perbincangan tentang use case, penngguna biasanya disebut dengan
aktor. Aktor adalah sebuah peran yang bisa dimainkan oleh pengguna dalam
interaksinya dengan sistem.
Model use case adalah bagian dari requirement model (Jacobson et all,
1992). Termasuk disini adalah problem domain object model dan penjelasan
tentang user interface. Use case memberikan spesifikasi fungsi-fungsi yang
ditawarkan oleh sistem dari prespektif user.
Diagram use case menunjukkan 3 aspek dari sistem yaitu: actor, use case
dan sistem/ subsistem boundary. Actor mewakili peran orang, sistem yang lain
atau alat ketika berkomunikasi dengan use case. Gambar 2.1 mengilustrasikan
actor, use case dan boundary.
Gambar 2.3 Use case Model
2.2.2 ACTIVITY DIAGRAM
Activity diagram adalah teknik untuk mendeskripsikan logika prosedural,
proses bisnis dan aliran kerja dalam banyak kasus. Activity diagram mempunyai
peran seperti halnya flowchart, akan tetapi perbedaannya dengan flowchart adalah
Activity diagram bisa mendukung perilaku paralel sedangkan flowchart tidak bisa.
Activity merupakan kumpulan aksi-aksi. Aksi-aksi melakukan langkah
sekali saja tidak boleh dipecah menjadi beberapa langkah lagi. Contoh aksi yaitu:
1. Fungsi matematika
2. Pemangggilan perilaku
3. Pemrosesan data
Ketika kita menggunakan diagram aktivitas untuk memodelkan perilaku
satu classifier, classifier dikatakan kontek dari aktivitas. Aktivitas dapat
mengkases atribut dan operasi classifier, tiap objek yang terhubung dan
parameter-parameter jika aktivitas memiliki hubunganj dengan perilaku. Ketika
digunakan untuk model proses bisnis, informasi itu biasanya disebut
process-relevant data. Aktivitas diharapkan dapat digunakan ulang dalam suatu aplikasi,
sedangkan aksi biasanya spesifik dan digunakan hanya untuk aktivitas tertentu
(Sumber: Prabowo Pudjo Widodo, Herlawati, 2011)
Sistem
Use Case
Actor Actor
Berikut adalah simbol-simbol yang sering digunakan pada saat pembuatan
Activity diagram diagram aktivitas.
Tabel 2.2 Simbol simbol yang sering dipakai pada Activity diagram [Sumber:
Munawar 2005]
Simbol Keterangan
Titik awal
Titik akhir
Activity
Pilihan untuk pengambilan keputusan
Fork; digunakan untuk menunjukkan kegiatan kegiatan yang dilakukan secara paralel atau untuk menggabungkan dua kegiatan paralel menjadi satu.
Rake; menunjukkan adanya dekomposisi
Tanda waktu
Tanda pengiriman
Simbol Keterangan
Aliran akhir (Flow Final)
Contoh sederhana Activity diagram bisa dilihat pada gambar 2.4. Gambar
tersebut menjelaskan tentang aliran saat proses penerimaan order.
Dari gambar 2.4 terlihat bahwa pengisian order dan pengiriman invoice
terjadi secara paralel. Intinya tidak jadi masalah mengenai mana yang terlebih
dahulu harus diselesaikan.
Kondisi paralel jelas membutuhkan sinkronisasi. Pada kasus diatas, order
tidak akan ditutup sampai barang dikirim atau dibayar. Untuk menunjukkan hal
tersebut bisa digunakan join sebelumnya action close order. Dengan join, aliran
keluar hanya akan dilakukan jika aliran kedatangan sampai ke join. Dengan
demikikan order hanya bisa ditutup jika pembayaran sudah dilakukan dan
pengiriman sudah dilakukan.
Node pada Activity diagram disebut dengan action bukan activity. Activity
menunjuk ke urutan action, sehingga diagram tersebut menunjukkan activity yang
membangun action.
Perilaku bersyarat ditunjukkan dengan decision dan merge decision hanya
mempunyai satu aliran masuk dan beberapa quard untuk aliran keluar. Setiap
aliran keluar mempunyai sebuah quard yaitu boolean yang ditempatkan pada
kurung kotak. Setiap kali mencapai decision hanya bisa mengambil satu
keputusan, sehingga quard harus mutually exclusive. Penggunaan [else] sebagai
quard menunjukkan bahwa quard yang lain adalah salah.
Dari gambar 2.4 terlihat bahwa setelah order diisi, ada sebuah decision
.Pada saat pesanan lagi sibuk maka perlu pengiriman hingga larut malam jika
tidak pengiriman secara regular tidak mencukupi.
Sebuah merge mempunyai banyak input dan satu output. Merge mendaki
akhir perilaku bersyarat yang dimulai dengan decision.
Process Sale
PurchasedItem : Item
Bill Customer
Ship Item
Initial Code
Activity Final Code
Gambar 2.4 Contoh Activity diagram Sederhana (Sumber: Prabowo Pudjo
Widodo, Herlawati, 2011)
2.2.3 SEQUENCE DIAGRAM
Sequence Diagram digunakan untuk menggambarkan perilaku pada sebuah
sekenario. Diagram ini menunjukkan sejumlah contoh objek dan message (pesan)
yang diletakkan diantara objek-objek ini di dalam use case. Komponen utama
sequence diagram terdiri atas objek yang dituliskan dengan kotak segiempat
bernama. Message diwakili oleh garis dengan tanda panah dan waktu yang
ditunjukkan dengan progress vertical.
Objek diletakkan di dekat bagian atas diagram dengan urutan dari kiri ke
kanan. Pengertian object hanya ada di UML 1, sedangkan di UML 2 istilah objek
diganti dengan participant.
Setiap participant terhubung dengan garis titik-titik yang disebut lifeline.
Sepanjang lifeline ada kotak yang disebut activation. Activation mewakili sebuah
eksekusi operasi dari participant. Panjang kotak ini berbanding lurus dengan
durasi activation.
Sebuah message bergerak dari satu participant ke participant yang lain dan
dari satu lifeline ke lifeline yang lain. Sebuah participant pun bisa mengirim pesan
kepada dirinya sendiri. Diagram yang mewakili waktu pada arah vertikal disebut
time. Waktu dimulai dari atas ke bawah. Message yang lebih dekat dari atas akan
dijalankan terlebih dahulu dibanding message yang lebih dekat ke bawah.
Object2 Object1 Actor M essage M essage Activation Lifeline
Gambar 2.5 Simbol-Simbol Yang Ada Pada sequence diagram [Sumber:
Munawar 2005]