Anda di halaman 1dari 43

METODOLOGI PENGEMBANGAN

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

Computer Science Software Engineering

Computer science lebih Software engineering merupakan


memperhatikan teori & metode bagian dari sistem engineering,
komputerisasi, sedangkan software dimana sistem engineering
engineering menyangkut masalah memperhatikan semua aspek
praktikal pembuatan dan delivery pembuatan sistem berbasis
perangkat lunak komputer termasuk perangkat
keras, perangkat lunak dan proses

15
Perbedaan RPL dengan Rekayasa Sistem (RS)

Rekayasa Sistem Rekayasa Perangkat Lunak

Rekayasa Sistem (RS) berkaitan RPL adalah bagian dari rekayasa


dengan semua aspek dalam sistem yang meliputi pembangunan PL,
pembangunan sistem berbasis infrastruktur, kontrol, aplikasi dan
komputer termasuk hardware, database pada sistem
rekasaya perangkat lunak dan proses

16
Tujuan Utama Rekayasa
Perangkat Lunak

Menghasilkan suatu produk


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..)

 Business software: Kelas PL ini banyak digunakan di daerah dimana


pengelolaan dan pengendalian kegiatan keuangan sangat penting.
Komponen fundamental dari sistem bisnis terdiri dari perangkat
lunak penggajian, inventaris, dan akuntansi yang memungkinkan
pengguna mengakses data yang relevan dari database.
 Engineering and scientific software: Kelas PL ini telah muncul
sebagai alat bantu yang ampuh dalam penelitian dan
pengembangan teknologi generasi berikutnya.

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

Proses perangkat lunak (software process) adalah sekumpulan


aktifitas yang memiliki tujuan untuk mengembangkan atau
mengubah 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

Orang Proyek Alat bantu


partisipan otomasi

hasil

Produk

42
Thanks!
Any questions?
You can find me at:
Irma.handayani@staff.uty.ac.id

43

Anda mungkin juga menyukai