APLIKASI
S1-Informatika
Oleh:
Irma Handayani, S.Kom., M.Cs.
Deskripsi Singkat Mata Kuliah
Mata Kuliah ini membahas tentang Produk dan Proses Perangkat
Lunak, Konsep Manajemen Proyek, Pengukuran (Project
Metrics), Perencanaan dan Manajemen Resiko, Penjadwalan
dan Penelusuran Proyek, Jaminan kualitas, Manajemen
Konfigurasi Software, Rekayasa Sistem, Analisis dan Desain
Konsep, Model Analisis, Desain Metode dan Realtime Software,
Teknik dan Strategi Pengujian. Studi kasus RPL dalam bentuk
aplikasi yang dibangun dengan OOP berdasarkan proyek
sebelumnya.
2
Pokok Bahasan
1. Karakteristik dan kategori perangkat lunak
2. Model Proses/ tahapan dalam pengelolaan proyek perangkat lunak
3. Pengukuran terhadap kualitas, produktifitas dan biaya
4. Analisis resiko yang mengakibatkan kualitas perangkat lunak rendah
5. Penjadwalan dan melakukan pelacakan terhadap proses proyek perangkat lunak
6. Jaminan kualitas
7. Konsep dasar perangkat lunak menggunakan model analisis serta menentukan
strategi dan melakukan pengujian terhadap perangkat lunak yang dihasilkan.
8. Konsep dasar dalam membangun proyek perangkat lunak menggunakan konsep
Objek Oriented Programming (OOP)
3
Capaian Pembelajaran
1. Mampu mengidentifikasi karakteristik dan kategori perangkat lunak
2. Mahasiswa dapat memahami model proses/tahapan dalam pengelolaan proyek perangkat
lunak
3. Mampu melakukan pengukuran terhadap kualitas, produktifitas dan biaya
4. Mampu menganalisa dan mengelola resiko yang mengakibatkan kualitas perangkat lunak
rendah
5. Mampu menyusun penjadwalan dan melakukan pelacakan terhadap proses proyek
perangkat lunak
6. Mampu memahami pentingnya jaminan kualitas
7. Mampu menganalisa dan merancang konsep dasar perangkat lunak menggunakan model
analisis serta menentukan strategi dan melakukan pengujian terhadap perangkat lunak yang
dihasilkan.
8. Mahasiswa dapat menerapkan konsep dasar dalam membangun proyek perangkat lunak
menggunakan konsep Objek Oriented Programming (OOP)
4
Pustaka
Utama:
Pressman, R.S., 2001, Software Engineering, A Practitioner’s Approach, Fifth
Edition, McGraw-Hill Companies, Inc.
Pendukung:
Al Bahra Bin Ladjamudin, 2006, Rekayasa Perangkat Lunak, Edisi Pertama,
Graha Ilmu, Yogyakarta.
5
a. Produk
6
Definisi Rekayasa
▪ Engineering = rekayasa
• Pemakaian ‘science’ untuk menyelesaikan
‘masalah praktis’
• Dari tidak ada menjadi ada
7
Definisi Perangkat Lunak
▪ Software = perangkat lunak
➢ Kumpulan program komputer dengan fungsi tertentu
▪ Perangkat lunak adalah:
1. Instruksi (program komputer) yang bila dieksekusi dapat menjalankan
fungsi tertentu,
2. Struktur data yang dapat membuat program memanipulasi informasi,
dan
3. Dokumen yang menjelaskan operasi dan penggunaan program
(Pressman, 1997).
▪ Perangkat lunak adalah program komputer, prosedur, aturan, dan
dokumentasi yang berkaitan serta data, yang bertalian dengan operasi suatu
sistem komputer (IEEE, 1993).
8
Definisi Perangkat Lunak
Software is: (1) instructions (computer programs) that
when executed provide desired features, function, and
performance; (2) data structures that enable the
programs to adequately manipulate information and
(3) documentation that describes the operation and use
of the programs. (Roger Pressman)
9
Definisi Perangkat Lunak
IEEE-Standar Glossary of Software Enginering
Terminologi, 1990:
“Computer programs, procedures, and possibly
associated documentation and data pertaining to the
operation of a computer system.”
10
Definisi Perangkat Lunak
Perangkat lunak adalah seluruh perintah yang
digunakan untuk memproses informasi. Perangkat
lunak dapat berupa prosedur. Program adalah
kumpulan perintah yang dimengerti komputer
sedangkan prosedur adalah perintah yang dibutuhkan
oleh pengguna dalam memproses informasi (O’Brien,
1999)
11
Peranan Perangkat Lunak
▪ Perangkat lunak adalah sebuah produk
• Menyajikan potensi komputasi
• Menghasilkan, mengelola, memperoleh, modifikasi, menampilkan atau
mengirimkan informasi
▪ Perangkat lunak adalah alat untuk menyajikan sebuah produk
• Mendukung atau menyediakan langsung fungsi sistem
• Mengendalikan program lain (mis : operating system)
• Mempengaruhi komunikasi (mis : networking software)
• Membantu membangun PL lain (mis : software tools)
12
Definisi Rekayasa Perangkat Lunak
Rekayasa perangkat lunak (software engineering) adalah suatu proses rancang
bangun. Beberapa definisi tentang rekayasa perangkat lunak :
o Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk
mendapatkan perangkat lunak secara ekonomis namun andal dan dapat
bekerja secara efesien pada komputer (Fritz Bauer, 1968).
o Penerapan pendekatan yang sistematis, disiplin, dan terukur untuk
pengembangan, operasi, dan pemeliharaan perangkat lunak (IEEE, 1993).
o Suatu disiplin yang mengintegrasikan proses/prosedur, metode, dan
perangkat tools untuk pembangunan perangkat lunak komputer (Pressman,
97).
13
Definisi Rekayasa Perangkat Lunak (RPL)
RPL atau Software Engineering (SE) → Disisplin ilmu yang
membahas semua aspek produksi perangkat lunak, mulai dari tahap
awal spesifikasi sistem yaitu analisa kebutuhan pengguna, desain,
pengkodean, pengujian, sampai pemeliharaan sistem setelah
digunakan.
Perangkat Lunak yang dibuat harus mampu:
Tepat waktu
Tepat anggaran
Meningkatkan kinerja
Mengoperasikan prosedur sistem dengan benar
14
Perbedaan RPL dengan Computer Science
15
Perbedaan RPL dengan Rekayasa Sistem (RS)
16
Tujuan Utama Rekayasa
Perangkat Lunak
17
Tujuan Rekayasa Perangkat Lunak
Memperoleh biaya produksi PL
yang rendah
Kinerja
Menghasilkan PL yang kinerjanya
tinggi, andal dan tepat waktu
Menghasilkan PL yang dapat
bekerja pada berbagai jenis
Biaya Waktu platform
Menghasilkan PL yang biaya
perawatannya rendah
18
Ruang Lingkup RPL
19
Karakterisitik Perangkat Lunak
1. Perangkat lunak dikembangkan atau direkayasa, jadi tidak diproduksi dalam
pengertian klasik.
2. Merupakan produk yang unik (tidak ada seri produksi).
3. Perangkat lunak tidak pernah akan rusak/aus karena selalu diperbaharui
4. Tidak terlihat (invisible).
5. Perangkat lunak pada umumnya dibangun sesuai keinginan, jadi tidak
dibentuk dari komponen yang sudah ada.
6. Fleksibel, sehingga mudah dimodifikasi.
7. Dihubungkan (linked) dengan sistem komputer.
20
Software yang baik
21
Kualitas Perangkat Lunak
Functionality, mengacu pada tingkat kinerja PL terhadap tujuan yang telah
ditentukan
Reliability, mengacu pada kemampuan PL untuk menyediakan fungsionalitas
yang diinginkan dalam kondisi tertentu
Usability, yaitu atribut yang menunjukkan tingkat kemudahan pengoperasian
PL
Efficiency, menyangkut waktu eksekusi
Maintainability, yaitu tingkat kemudahan PL tsb dalam mengakomodasi
perubahan-perubahan
Dependability, ketidakbergantungan PL dengan elemen-elemen sistem
lainnya atau sistem secara keseluruhan.
22
Jenis-jenis Perangkat Lunak
1. Perangkat Lunak Sistem
Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk
operasional computer
+ Sistem operasi
+ Penerjemah Bahasa pemrograman (compiler/ interpreter)
2. Perangkat Lunak Aplikasi
Perangkat lunak yang kegunaanya lebih banyak ditujukan untuk membantu
menyelesaikan masalah-masalah yang dihadapi oleh pemakai.
+ Program paket yang sudah jadi
+ Program aplikasi buatan sendiri
23
Klasifikasi Aplikasi Perangkat Lunak
System software: Kelas PL ini mengelola dan mengendalikan sistem
komputer. Ini adalah sekelompok program yang bertanggung jawab
untuk menggunakan sumber daya komputer secara efektif dan
efisien.
Real-time software: Kelas PL ini mengamati, menganalisa, dan
mengendalikan kejadian dunia nyata pada saat terjadi. Umumnya,
sistem real-time menjamin respon terhadap peristiwa eksternal
dalam jangka waktu tertentu
24
Klasifikasi Aplikasi Perangkat Lunak (lanjutan..)
25
Klasifikasi Aplikasi Perangkat Lunak (lanjutan..)
Artificial intelligence (AI) software: Kelas PL ini menggunakan algoritma
non-numeris untuk memecahkan masalah kompleks yang tidak sesuai untuk
perhitungan atau analisis secara langsung. Area kecerdasan buatan yang aktif
adalah sistem pakar, teteapi area apilkasi lainnya adalah pengenalan pola
(pattern recognition), pembuktian teorema dan teknik bermain game (game-
playing techniques).
Embedded Software: produk pintar telah menjadi bagian yang umum bagi
hampir semua konsumen dan pasar industri. Embedded software ada dalam
read-only memeory dan dipakai untuk mengontrol hasil serta sistem untuk
keperluan konsumen dan pasar industri.
26
Klasifikasi Aplikasi Perangkat Lunak (lanjutan..)
Web-based software: Kelas PL ini bertindak sebagai antarmuka
antara pengguna dan internet. Data di internet berupa teks, audio,
atau format video, yang dihubungkan dengan hyperlink.
Personal computer (PC) software: Kelas PL ini digunakan untuk
penggunaan resmi (official) dan pribadi (personal). Pasar PL
komputer pribadi telah berkembang dalam dua dekade terakhir dari
editor teks (text editor) biasa hingga pengolah kata (word
processor) dan dari kuas sederhana hingga perangkat lunak editing
gambar (image-editing software) tingkat lanjut.
27
Krisis Perangkat Lunak
Masalah yang muncul:
Estimasi jadwal dan biaya yang seringkali tidak tepat
Produktivitas orang-orang software yang tidak dapat
mengimbangi permintaan software
Kualitas software yang kurang baik
Kurangnya pengetahuan tentang: Bagaimana mengembangkan
software, memelihara software yang ada
Bagaimana mengimbangi permintaan software yang makin besar
28
b. Proses
29
A Layered Technology
Software
Software Engineering
Engineering
tools
methods
process model
a “quality” focus
30
A Layered Technology
Process
Proses adalah pondasi rekayasa perangkat lunak.
Proses rekayasa perangkat lunak mengintegrasikan teknologi
dan memungkinkan proses rasional dan pengembangan
perangkat lunak yang tepat waktu.
Proses rekayasa perangkat lunak menjadi dasar manajemen
kontrol proyek perangkat lunak dan memberikan pedoman
penerapan metode teknis dan jadwal pembagunan produk
(model, dokumen, data, reports, form, dsb), jaminan kualitas
dan manajemen perubahan kebutuhan.
31
A Layered Technology
Methods RPL
Metode (methods) RPL menyediakan cara dan
petunjuk membangun perangkat lunak
Metode ini mencakup kumpulan tugas
termasuk analisis kebutuhan, desain,
implementasi program (coding), testing dan
support.
32
A Layered Technology
Tools RPL
Piranti (Tools) rekayasa perangkat lunak menyediakan
dukungan yang otomatis atau semi otomatis terhadap proses
dan metode rekayasa perangkat lunak
Ketika tool-tool diintegrasikan, informasi yang dihasilkan oleh
satu tool dapat digunakan oleh tool yang lain, sistem untuk
menopang perkembangan PL yang disebut computer-aided RPL
(CASE) terbangun.
33
Proses Rekayasa Perangkat Lunak
Mulai Analisis
Pengujian Perancangan
Implementasi
34
Fase definisi (definition phase)
Fase ini memfokuskan pada pernyataan apa/ what. Selama proses
pendefinisian software engineer berusaha untuk mendefinisikan:
Informasi apa saja yang akan diproses?
Fungsi dan performasi apa yang diinginkan?
Perilaku sistem seperti apa yang diharapkan?
Antarmuka apa yang akan dibangun?
Batasan desain apa saja yang ada?
Kriteria validasi apa yang diperlukan untuk dapat
mendefinisikan sebuah sistem yang sukses?
35
Fase Pengembangan (Development phase)
Fase ini memfokuskan pada pertanyaan bagaimana/ how. Selama
proses ini software engineer berusaha untuk mengidentifikasikan:
Bagaimana data distrukturkan (struktur data)?
Bagaimana fungsi-fungsi sistem diimplementasikan dalam
arsitektur PL?
Bagaimana detail prosedur diimplementasikan?
Bagaimana memberikan karakteristik antarmuka?
Bagaimana desain akan diimplementasikan dalam sebuah
bahasa pemrograman?
Bagaimana proses pengujiannya?
36
Fase Pemeliharaan (Maintenance phase)
Fase ini memfokuskan pada manajemen perubahan (change) saat
diminta oleh customer.
Fase pemeliharaan mengaplikasikan langkah-langkah pada fase definisi
dan fase pengembangan, tetapi semua tetap tergantung pada konteks
perangkat lunak yang ada.
37
Fase Pemeliharaan (lanjutan..)
Ada 4 tipe perubahan yang terjadi selama fase pengembangan:
Koreksi (Corrective maintenance)
Adaptasi (Adaptive maintenance)
Perkembangan (Enhancement maintenance)
Pencegahan (Preventive maintenance)
38
Proses Perangkat Lunak
39
Proses Perangkat Lunak (lanjutan..)
Secara umum proses perangkat lunak terdiri dari:
1. Pengumpulan Spesifikasi (Spesification)
Mengetahui apa saja yang harus dapat dikerjakan sistem PL dan
batasan pengembangan PL.
2. Pengembangan (Development)
Pengembangan PL untuk menghasilkan sistem PL
3. Validasi (Validation)
Memeriksa apakah PL sudah memenuhi keinginan
4. Evolusi (Evolution)
Perubahan PL untuk merespon perubahan kebutuhan
40
Pengembangan Perangkat Lunak
Proses dimana persoalan/ kebutuhan pemakai diterjemahkan
menjadi produk perangkat lunak melalui suatu rangkaian aktivitas
tertentu sesuai model proses, metode, dan alat bantu yang
digunakan
41
Pengembangan Perangkat Lunak (2)
Elemen-elemen proses pengembangan:
Proses
template
hasil
Produk
42
Thanks!
Any questions?
You can find me at:
Irma.handayani@staff.uty.ac.id
43