Nothing Special   »   [go: up one dir, main page]

Rancangan Perangkat Lunak

Unduh sebagai pdf atau txt
Unduh sebagai pdf atau txt
Anda di halaman 1dari 40

REKAYASA PERANGKAT LUNAK

Tujuan :

1. Mengenalkan sistem komputer dan perangkat lunak


2. Mempelajari klasifikasi perangkat lunak
3. Mengenalkan rekayasa perangkat lunak dan aplikasinya

Indikator keberhasilan :

1. Agar mahasiswa mampu menjelaskan komponen sistem komputer


2. Agar mahasiswa mampu menjelaskan pengertian perangkat lunak dan
contohnya
3. Agar mahasiswa mampu menyebutkan dan menjelaskan contoh jenis
dan aplikasi perangkat lunak
4. Agar mahasiswa mampu memahami tujuan dari rekayasa perangkat
lunak.

Materi :

Definisi Komputer
Komputer merupakan suatu perangkat elektronika yang memiliki
kemampuan untuk menerima dan mengolah data menjadi informasi,
menjalankan program yang tersimpan dalam memori, serta dapat bekerja
secara otomatis berdasarkan perangkat aturan tertentu. Berdasarkan
uraian di atas, maka dapat diuraikan bahwa setidaknya suatu komputer
harus memenuhi kaidah-kaidah berikut ini:
a. Komputer dapat melakukan pengolahan data
b. Komputer dapat memberikan/menghasilkan informasi
c. Komputer merupakan alat elektornik
d. Komputer dapat menerima input data (teks, angka, suara, signal, dll)
e. Komputer menggunakan program yang tersimpan dalam memori
komputer
f. Komputer bekerja secara otomatis
g. Komputer dapat menyimpan program dan data hasil olahannya.

Sistem Komputer
Sebuah sistem komputer tersusun atas tiga elemen yang saling terkait satu
sama lainnya, yaitu :
1. Hardware (Perangkat Keras), merupakan kumpulan segala piranti
atau komponen dari sebuah komputer yang sifatnya bisa dilihat
secara kasat mata dan bisa diraba secara langsung. Dengan kata
lain hardware merupakan komponen yang memiliki bentuk nyata
secara fisik. Beberapa komponen perangkat keras mudah dikenali,
seperti casing komputer, keyboard, dan monitor. Namun, ada
banyak jenis komponen perangkat keras yang lainnya untuk
membentuk sebuah komputer.

Gambar 1.1: Elemen perangkat keras komputer


2. Software (Perangkat Lunak), merupakan suatu data yang
diprogram sedemikian rupa dan disimpan dalam bentuk digital
yang tidak terlihat secara fisik tetapi tersimpan dalam media
penyimpanan komputer. Software atau perangkat lunak dapat
berupa program atau aktifitas menjalankan suatu perintah atau
intruksi melalui fasilitas interaksi pada software (perangkat lunak)
komputer sehingga sistem dapat beroperasi. Software juga dapat
dikatakan sebagai penggerak dan pengendali hardware (perangkat
keras).

Gambar 1.2: Ilustrasi perangkat lunak

Software dibuat dengan menggunakan bahasa pemrograman yang


ditulis atau dibangun oleh programmer yang selanjutnya
dikompilasi dengan aplikasi kompiler sehingga menjadi sebuah
kode yang nantinya akan dikenali oleh mesin hardware.
3. Brainware (Perangkat Manusia/Otak), merupakan orang yang
menggunakan (user), memakai ataupun mengoperasikan perangkat
komputer. Seperti contoh dari brainware yaitu programmer,
operator (sebutan untuk orang yang menggunakan suatu sistem
komputer untuk fungsi tertentu), serta orang yang sedang
menggunakan perangkat komputer. Brainware juga dapat
didefenisikan sebagai manusia yang terlibat dalam
mengoperasikan atau memakai serta mengatur sistem di dalam
perangkat komputer. Dapat diartikan juga sebagai perangkat
intelektual yang mengoperasikan dan juga mengeksplorasi
kemampuan dari perangkat keras (hardware) maupun perangkat
lunak (software).

Gambar 1.3: Elemen pembentuk sistem komputer

Perangkat Lunak
Pada mata kuliah Rekayasa Perangkat Lunak (RPL) ini, sebelumnya kita
harus mengerti dan memahami terlebih dahulu, apa yang dimaksud dengan
perangkat lunak. Perangkat lunak saat ini telah menjadi kekuatan baru
yang sangat menentukan dalam mendukung suatu aktifitas. Perangkat
lunak menjadi mesin yang mengendalikan proses pengambilan
keputusan di dalam dunia bisnis, berfungsi sebagai basis dari berbagai
bentuk pelayanan serta penelitian keilmuan modern. Saat ini perangkat
lunak memiliki dua peran. Di satu sisi berfungsi sebagai sebuah
produk, dan di sisi lain sebagai media yang mengantarkan sebuah
produk.

Di masa lalu, perangkat lunak bersifat sederhana dan karenanya,


pengembangan perangkat lunak merupakan kegiatan yang juga sederhana.
Namun, seiring meningkatnya teknologi dan peradaban manusia, perangkat
lunak menjadi lebih kompleks dan proyek perangkat lunak tumbuh menjadi
lebih besar. Pengembangan perangkat lunak sekarang mengharuskan
kehadiran tim yang dapat mempersiapkan rencana dan desain secara
terperinci, melakukan pengujian, mengembangkan antar muka pengguna
yang intuitif, dan mengintegrasikan semua aktifitas ini ke dalam sistem.
Pendekatan baru ini menyebabkan munculnya sebuah disiplin ilmu yang
dikenal sebagai rekayasa perangkat lunak.

Sebenarnya, apa yang dimaksud dengan perangkat lunak?

Perangkat lunak (Software) adalah: (1) Perintah/instruksi (program


komputer) yang mana bila ia dieksekusi akan memberikan fungsi dan unjuk
kerja seperti yang diinginkan. (2) Struktur data yang memungkinkan
program memanipulasi data dan informasi secara proporsional. (3)
Dokumen yang menggambarkan operasi dan kegunaan program.

Klasifikasi Perangkat Lunak :

1. Sistem Operasi (operating system), merupakan perangkat lunak yang


berfungsi untuk mengoperasikan komputer serta menyediakan
antarmuka dengan perangkat lunak lain atau dengan pengguna.
Contoh perangkat lunak Sistem Operasi : MS DOS, MS Windows
(dengan berbagai generasi), Macintosh, OS/2, UNIX (dengan
berbagai versi), LINUX (dengan berbagai distribusi), NetWare, dan
sebagainya. Masing-masing sistem operasi memiliki perbedaan dalam
lingkup/platform operasi, jumlah pemakai, metode interaksi pemakai,
sifatnya (opensource/closesource) dan lisensi penggunaan.
2. Program Utilitas (Utility), merupakan program khusus yang
berfungsi sebagai perangkat pemeliharaan suatu sistem komputer,
seperti anti virus, partisi hardisk, manajemen hardisk, dan
sebagainya. Contoh produk program utilitas : Norton Utilities,
PartitionMagic, McAfee, dan sebagainya
3. Program Aplikasi, merupakan program yang dikembangkan untuk
memenuhi kebutuhan yang spesifik. Contoh : aplikasi akuntansi,
aplikasi perbankan, aplikasi manufaktur, dan sebagainya.
4. Paket Pemrograman, merupakan program yang dikembangkan untuk
kebutuhan umum, seperti : pengolah kata/text editor (misalnya: MS-
Word, Notepad, Latex, dll), pengolah angka / lembar kerja (misalnya:
MS Excel, dll), presentasi (Misalnya: MS PowerPoint, dll), dan desain
grafis (Misalnya: 3D, CorelDraw, PhotoShop, dan sebagainya)
5. Bahasa Pemrograman, merupakan sebuah instruksi standar yang
bertugas untuk memberikan instruksi kepada komputer. Sering
disebut juga dengan bahasa komputer atau bahasa pemograman
komputer. Bahasa pemrograman juga dapat dikatakan sebagai alat
untuk menampung suatu kumpulan dari aturan sintaks dan
semantik yang khususnya dipakai untuk mendefinisikan sebuah
program yang ada di komputer.
Contoh bahasa pemrograman yang paling umum digunakan, yaitu :
Java Script, PHP, HTML, C++, Python, dan sebagainya.

Aplikasi Perangkat Lunak


Perangkat lunak dapat diaplikasikan ke berbagai situasi dan lingkungan di
mana serangkaian langkah prosedural telah didefinisikan. Cakupan
perangkat lunak berikut ini menunjukkan betapa luasnya potensi
pengembangan aplikasi yang dapat dilakukan :
a. Perangkat Lunak Sistem.
Merupakan sekumpulan program yang ditulis untuk memberikan
layanan terhadap program-program yang lain. Di dalam berbagai
kasus, area operasi perangkat lunak sistem ditandai dengan
eratnya interaksi dengan perangkat keras komputer, penggunaan
oleh banyak pemakai (multi user), operasi konkuren yang
membutuhkan penjadwalan, berbagi pakai sumber daya dan
pengaturan proses yang canggih, struktur-struktur data yang
kompleks, dan interface eksternal yang bersifat ganda (teks dan
grafis).
b. Perangkat Lunak Real-Time.
Program-program yang memonitori, menganalisa, dan mengontrol
kejadian di dunia nyata pada saat berlangsungnya suatu aktifitas
disebut perangkat lunak real-time. Elemen-elemen perangkat lunak real-
time mencakup komponen pengumpul data yang mengumpulkan
dan memformat informasi dari lingkungan eksternal. Sebuah komponen
yang mampu melakukan analisa diperlukan untuk mentransformasi
informasi pada saat dibutuhkan oleh aplikasi. Konsep kerja perangkat
lunak Real-time berbeda dengan fungsi interaksi atau timesharing.
Sistem real-time harus merespon di dalam suatu rentang waktu
secara konstan dan konsisten. Sedangkah waktu respon sebuah
sistem yang bersifat interaktif (atau timesharing) secara normal dapat
diperpanjang tanpa memberikan resiko kerusakan pada hasil yang
diperoleh.
c. Perangkat Lunak Bisnis.
Pemrosesan informasi bisnis merupakan area aplikasi perangkat
lunak yang paling luas saat ini. Sistem diskrit (contohnya payroll,
account payable, inventory, dsb) telah mengembangkan perangkat
lunak sistem informasi manajemen (SIM) yang mengakses satu atau
lebih database besar yang berisi informasi bisnis.
d. Perangkat Lunak Teknik dan Ilmu Pengetahuan.
Perangkat lunak teknik dan ilmu pengetahuan ditandai dengan
keberadaan algoritma number crunching. Perangkat lunak ini
memiliki cakupan aplikasi mulai dari aplikasi untuk sistem
astronomi sampai vulkanologi, dari analisa otomotif sampai dinamika
orbit pesawat ruang angkasa, dan dari biologi molekuler sampai
pabrik yang sudah diotomatisasi.
e. Embedded Software.
Produk pintar telah menjadi bagian yang umum bagi hampir semua
level konsumen dan pasar industri. Embedded software dapat
memberikan fungsi yang terbatas serta fungsi esoteric (misalnya
keypad control untuk sebuah microwave) atau memberikan
kemampuan kontrol dan fungsi yang penting (contohnya fungsi
digital dalam sebuah mobil seperti kontrol bahan bakar,
penampilan panel di dashboard, sistem pengereman, dan
sebagainya).
f. Perangkat Lunak Komputer Personal.
Pasar perangkat lunak komputer personal telah berkembang
selama dekade terakhir. Program pengolah kata, spreadsheet,
multimedia, manajemen database, aplikasi keuangan bisnis dan
personal, jaringan eksternal atau akses database hanya
merupakan beberapa contoh saja dari ratusan aplikasi yang ada.
Setiap waktu jumlah, variasi, versi, dan teknologinya terus mengalami
kemajuan yang pesat.
g. Perangkat Lunak Kecerdasan Buatan.
Perangkat lunak kecerdasan buatan (Artificial Intelligent/AI)
menggunakan algoritma non-numeris untuk memecahkan masalah
kompleks yang tidak dapat dilakukan perhitungan atau analisa
secara langsung. Area kecerdasan buatan yang aktif adalah sistem
pakar, disebut juga sistem berbasis pengetahuan. Sistem yang lain
adalah Jaringan Syaraf Tiruan, Voice and Image Recognition, game
playing , dan sebagainya.
Rekayasa Perangkat Lunak (RPL)

Pandangan umum, menyatakan bahwa untuk dapat memproduksi suatu


produk didukung oleh elemen-elemen yang dikenal sebagai faktor-faktor
produksi. Elemen-elemen yang terdapat dalam faktor-faktor produksi
tersebut adalah Sumber daya alam/ fisik (Physical Resources), Sumber daya
manusia/ Tenaga kerja (Labour), Modal (Capital), Kewirausahaan
(Entrepreneurship), dan Sumber daya informasi (Information Resources).
Menghadapi era revolusi industry 4.0, elemen-elemen yang disebutkan di
atas tidaklah cukup. Oleh karena itu perlu tambahan berupa dukungan
teknologi. Dukungan teknologi dari berbagai bentuk disiplin akan
berkolaborasi dalam menghasilkan suatu produk. Termasuk produk berupa
perangkat lunak.
Untuk menghasilkan suatu perangkat lunak (software) tersebut butuh
dukungan banyak aspek, proses, dan tindakan yang semuanya itu menyatu
dalam suatu keilmuan yang disebut dengan Rekayasa Perangkat Lunak
(Software Engineering). Secara sederhana target dari Rekayasa Perangkat
Lunak itu adalah dalam rangka menghasilkan suatu software yang
berkualitas.

Sedangkan yang dimaksud dengan Rekayasa Perangkat Lunak adalah


suatu disiplin ilmu yang membahas semua aspek produksi perangkat
lunak, mulai dari tahap awal yaitu communication, requirements capturing
(analisa kebutuhan pengguna), specification (menentukan spesifikasi dari
kebutuhan pengguna), desain, coding, testing sampai maintenance
(pemeliharaan sistem) setelah digunakan.

Secara umum, tujuan Rekayasa Perangkat Lunak (RPL) memiliki banyak


kesamaan dengan disiplin ilmu rekayasa yang lain. Ilmu rekayasa akan
selalu berusaha menghasilkan keluaran (output) yang perfoma-nya tinggi,
waktu penyelesaian yang singkat dan hemat. Secara lebih khusus dapat
dinyatakan bahwa tujuan Rekayasa Perangkat Lunak adalah sebagai
berikut:
1. Menghasilkan perangkat lunak yang berunjuk kerja tinggi, andal serta
tepat waktu.
2. Menghasilkan perangkat lunak yang memiliki kekuatan dalam
menghadapi berbagai ancaman dan gangguan, baik yang bersumber
dari internal maupun eksternal.
3. Menghasilkan perangkat lunak dengan biaya produksi yang rendah.
4. Menghasilkan perangkat lunak yang biaya pemeliharaan yang
rendah.
5. Menghasilkan perangkat lunak yang bisa bekerja di berbagai macam
platform.
Rekayasa perangkat lunak menyediakan metode untuk menangani
kompleksitas dalam sistem perangkat lunak dan memungkinkan untuk
dilakukannya pengembangan sistem perangkat lunak yang handal. Muara
dari aktifitas ini dapat memaksimalkan produktifitas. Selain aspek teknis
pengembangan perangkat lunak, ia juga mencakup kegiatan manajemen
yang meliputi mengarahkan tim kerja, menyusun anggaran, menyiapkan
jadwal kegiatan, dan sebagainya. Gagasan tentang rekayasa perangkat
lunak pertama kali diajukan pada tahun 1968. Semenjak itu, rekayasa
perangkat lunak berkembang sebagai disiplin ilmu teknik secara penuh,
yang diterima sebagai bidang yang melibatkan studi dan penelitian yang
mendalam. Metode dan alat bantu rekayasa perangkat lunak telah berhasil
diimplementasikan dalam berbagai skala aplikasi yang tersebar di berbagai
lapisan masyarakat pengguna.
Jadi hal yang perlu digaris bawahi, bahwa Rekayasa Perangkat Lunak
(RPL) merupakan serangkaian proses yang amat panjang untuk membuat
atau menciptakan suatu perangkat lunak yang berkualitas, bukan
merupakan cabang ilmu komputer yang mempelajari tentang technical
coding.

Apabila dilihat dari persepsi wilayah cakupannya, RPL memiliki wilayah


operasional yang dapat dilihat pada Gambar 1.4 berikut ini.
Gambar 1.4 : Wilayah cakupan RPL

1. Software Requirements.
Dalam proses rekayasa perangkat lunak, fase ini adalah aktifitas
pertama yang harus dilakukan. Fase ini didominasi oleh peran
pengguna dalam menerjemahkan ide atau pandangannya ke
dalam dokumen persyaratan. Hal yang harus diperhatikan bahwa
mendefinisikan dan mendokumentasikan kebutuhan pengguna
secara singkat dan tidak ambigu adalah langkah besar pertama
untuk mencapai produk berkualitas tinggi.
Fase ini meliputi serangkaian tugas, yang membantu
menentukan dampak perangkat lunak pada organisasi,
kebutuhan pelanggan, dan bagaimana pengguna akan
berinteraksi dengan perangkat lunak yang dikembangkan.
Persyaratan yang telah ditentukan adalah dasar dari desain
sistem. Jika persyaratan tidak benar, produk akhir juga akan
mengandung kesalahan. Perlu dicatat bahwa aktifitas penetapan
persyaratan adalah sama seperti semua aktifitas rekayasa
perangkat lunak lainnya di mana harus disesuaikan dengan
kebutuhan proses, proyek, produk, dan orang-orang yang terlibat
di dalamnya. Juga, persyaratan harus ditentukan pada tingkat
detail yang berbeda. Hal ini karena persyaratan tersebut
dimaksudkan untuk personil seperti pengguna, manajer bisnis,
sistem engineer, dan sebagainya. Sebagai contoh, manajer bisnis
tertarik untuk mengetahui fitur apa yang dapat
diimplementasikan dalam anggaran yang dialokasikan sedangkan
pengguna akhir tertarik untuk mengetahui betapa mudahnya
menggunakan fitur perangkat lunak.
2. Software Design.
Secara umum yang meliputi proses penampilan arsitektur,
komponen, antar muka (interface), dan karakteristik lain dari
suatu perangkat lunak. Software design adalah salah satu fase
dalam rekayasa perangkat lunak, di mana terdapat cetak biru
yang dikembangkan untuk memberikan layanan sebagai dasar
untuk membangun sistem perangkat lunak. IEEE mendefinisikan
software design sebagai aktifitas mendefinisikan: arsitektur,
komponen, antarmuka, dan karakteristik lain dari suatu sistem
atau komponen dan hasil dari proses itu.
Pada tahap desain, banyak keputusan penting dan strategis yang
dibuat untuk mencapai fungsionalitas dan kualitas sistem yang
diinginkan. Keputusan ini harus diperhitungkan agar berhasil
dalam mengembangkan perangkat lunak dan melaksanakan
pemeliharaannya sehingga kualitas produk akhir ditingkatkan.
3. Software Construction.
Kegiatan ini meliputi aktifitas yang berhubungan dengan hal-hal
detil dalam pengembangan perangkat lunak, termasuk algoritma,
pengkodean, pencarian kesalahan (debug) dan pengujian (testing).
4. Software Testing.
Secara umum kegiatan ini meliputi pengujian pada kinerja
perangkat lunak secara keseluruhan. Pengujian perangkat lunak
ditujukan untuk menentukan kebenaran, kelengkapan dan
kualitas perangkat lunak yang sedang dikembangkan. IEEE
mendefinisikan pengujian sebagai proses melaksanakan atau
mengevaluasi sistem atau komponen sistem dengan cara manual
atau otomatis untuk memverifikasi bahwa hal itu memenuhi
persyaratan yang ditentukan atau untuk mengidentifikasi
perbedaan antara hasil yang diharapkan dan fakta yang
ditemukan.
Pengujian perangkat lunak terkait erat dengan verifikasi syarat
dan validasi. Verifikasi mengacu pada proses memastikan bahwa
perangkat lunak dikembangkan sesuai dengan spesifikasinya.
Untuk verifikasi, teknik seperti ulasan, analisis, insfeksi, dan
penelusuran umum digunakan. Sedangkan validasi mengacu
pada proses pengecekan bahwa perangkat lunak yang
dikembangkan memenuhi persyaratan yang ditentukan oleh
pengguna.
5. Software Maintenance. Secara umum aktifitasnya mencakup
upaya-upaya perawatan ketika perangkat lunak telah
dioperasikan. Perangkat lunak tidak pernah usang. Namun, perlu
adanya peningkatan untuk memenuhi persyaratan pengguna
yang terus berubah secara dinamis. Untuk melakukan
pembaharuan seperti itu maka sistem perangkat lunak harus
dilakukan maintenance (pemeliharaan). IEEE mendefinisikan
maintenance sebagai suatu proses memodifikasi sistem perangkat
lunak atau komponen setelah di-delivery untuk memperbaiki
kesalahan, untuk meningkatkan kinerja atau atribut lainnya
atau untuk menyesuaikan produk ke lingkungan yang berubah
secara dinamis. Tujuannya adalah untuk memastikan bahwa
perangkat lunak dapat mengakomodasi perubahan setelah sistem
telah di-delivery dan digunakan.
6. Software Configuration Management (SCM).
Software Configuration Management (SCM) adalah suatu disiplin
yang secara sistematis mengendalikan perubahan yang terjadi
selama pengembangan. SCM adalah proses yang terpisah dari
proses pengembangan karena sebagian besar model
pengembangan tidak dapat mengakomodasi perubahan kapan
saja selama pengembangan.
7. Software Engineering Management yang berkaitan dengan
pengelolaan dan pengukuran RPL, termasuk perencanaan proyek
perangkat lunak.
8. Software Engineering Tools and Methods yang mencakup
kajian teoritis tentang alat bantu (tools) dan metode RPL.
9. Software Quality yang menitikberatkan pada kualitas dan daur
hidup perangkat lunak.
10. Software Engineering Process berhubungan dengan
implementasi, definisi, pengukuran, pengelolaan, perubahan dan
perbaikan proses Rekayasa Perangkat Lunak.

Lapisan (layer) dalam Rekayasa Perangkat Lunak

Rekayasa perangkat lunak dapat dipandang sebagai teknologi yang berlapis


seperti yang tersusun sebagai berikut:

1. Lapisan proses memungkinkan pengembangan perangkat lunak


dilakukan tepat waktu. Ini mendefinisikan serangkaian kegiatan
secara garis besar yang harus disepakati untuk men-delivery
teknologi rekayasa perangkat lunak secara efektif.
2. Lapisan metode memberikan pengetahuan teknis untuk
mengembangkan perangkat lunak. Lapisan ini mencakup beragam
tugas yang mencakup analisis kebutuhan, desain, pengkodean,
pengujian, dan fase pemeliharaan pengembangan perangkat lunak.
3. Lapisan alat (tool) memberikan dukungan terkomputerisasi atau semi-
terkomputerisasi untuk lapisan proses dan metode. Terkadang alat
diintegrasikan sedemikian rupa sehingga tool lain dapat menggunakan
informasi yang dibuat oleh satu tool.
Multi-penggunaan ini biasanya disebut sebagai Computer-Aided
Software Engineering (CASE). CASE menggabungkan database
perangkat lunak, perangkat keras, dan rekayasa perangkat lunak
untuk membuat rekayasa perangkat lunak yang analog dengan
Computer-Aided Design (CAD) untuk perangkat keras. CASE
membantu dalam pengembangan aplikasi termasuk analisis, desain,
pembuatan kode, dan debugging dan pengujian. Ini dimungkinkan
dengan menggunakan alat CASE, yang menyediakan metode otomatis
untuk merancang dan mendokumentasikan teknik pemrograman
struktur tradisional. Sebagai contoh, dua teknologi terkemuka yang
menggunakan alat CASE adalah workstation berbasis PC dan
generator aplikasi yang menyediakan antarmuka berbasis grafis
untuk mengotomatisasi proses pengembangan.

Gambar 1.5: Lapisan dalam Rekayasa Perangkat Lunak

Berbagai permasalahan dalam rekayasa perangkat lunak

Rekayasa perangkat lunak adalah pendekatan sistematis untuk


pengembangan, operasi, pemeliharaan, dan penghentian penggunaan suatu
perangkat lunak. Ada beberapa masalah mendasar yang dihadapi rekayasa
perangkat lunak, antara lain:

1. Masalah Ruang Lingkup (cakupan).


Masalah mendasar dari rekayasa perangkat lunak adalah masalah
ruang lingkup. Pengembangan sistem yang sangat besar
membutuhkan serangkaian metode yang sangat berbeda
dibandingkan dengan mengembangkan sistem yang kecil. Dengan
kata lain, metode yang digunakan untuk mengembangkan sistem
kecil umumnya tidak sama dengan sistem yang besar. Satu rangkaian
metode yang berbeda harus digunakan untuk mengembangkan
perangkat lunak besar. Setiap proyek besar melibatkan penggunaan
teknologi dan manajemen proyek.
Untuk proyek perangkat lunak, dengan teknologi yang dimaksud
adalah metode, prosedur dan alat yang digunakan. Dalam proyek
kecil, metode informal untuk pengembangan dan manajemen dapat
digunakan. Namun, untuk proyek besar, keduanya harus jauh lebih
formal.
Saat berurusan dengan proyek perangkat lunak kecil, persyaratan
teknologi rendah dan persyaratan manajemen proyek juga rendah.
Namun, ketika skala berubah menjadi sistem besar, untuk
menyelesaikan masalah seperti itu dengan benar, penting bagi kita
untuk bergerak ke dua arah yaitu metode yang digunakan untuk
pembangunan dan manajemen proyek untuk proyek pengembangan
juga harus lebih formal.
2. Biaya, jadwal dan kualitas.
Biaya pengembangan sistem adalah biaya sumber daya yang
digunakan untuk sistem, yang dalam sisi pandang perangkat lunak,
adalah tenaga kerja, perangkat keras, perangkat lunak, dan sumber
daya pendukung lainnya. Secara umum, komponen tenaga kerja
bersifat dominan, karena pengembangan perangkat lunak sebagian
besar padat karya dan biaya sistem komputasi sekarang cukup
rendah.
Oleh karena itu, biaya proyek perangkat lunak diukur dalam hal
orang/bulan, yaitu biaya dianggap sebagai jumlah total orang/bulan
yang dihabiskan dalam proyek. Jadwal adalah faktor penting dalam
banyak proyek. Tren bisnis menentukan bahwa waktu untuk
memasarkan suatu produk harus dikurangi; artinya, waktu siklus
dari konsep ke delivery harus kecil. Setiap bisnis dengan persyaratan
seperti itu juga akan mensyaratkan bahwa waktu siklus untuk
membangun perangkat lunak yang dibutuhkan oleh bisnis menjadi lebih kecil.
Salah satu faktor utama yang mendorong aspek produksi adalah kualitas. Kualitas produk perangkat lunak
memiliki tiga dimensi, yaitu:
o Operasi Produk
o Transisi Produk
o Revisi Produk
3. Masalah konsistensi.
Meskipun telah memiliki kualitas tinggi, biaya rendah dan waktu siklus kecil adalah tujuan utama dari
setiap proyek, namun untuk organisasi ada tujuan lain yang ingin dicapai yaitu konsistensi. Sebuah
organisasi yang terlibat dalam pengembangan perangkat lunak tidak hanya menginginkan biaya rendah
dan kualitas tinggiuntuk suatu proyek, tetapi menginginkannya secara konsisten.

MANAJEMEN PROYEK PERANGKAT LUNAK


Tujuan :

1. Mengenalkan tahapan proyek perangkat lunak


2. Mempelajari berbagai aktifitas dalam manajemen proyek perangkat
lunak
3. Mempelajari tugas dan peran seorang manajer proyek perangkat
lunak
4. Mengenalkan tool untuk proses perencanaan proyek perangkat lunak

Indikator Keberhasilan :

1. Mahasiswa mampu menjelaskan masing-masing tahapan dalam


proyek perangkat lunak.
2. Mahasiswa memahami mekanisme dari kegiatan manajemen proyek
perangkat lunak.
3. Mahasiswa mampu menjelaskan peran seorang manajer proyek
dalam menentukan keberhasilan pencapaian suatu proyek perangkat
lunak.
4. Mahasiswa mampu menerapkan tool-tool dalam sebuah contoh
proyek perangkat lunak sederhana.

Materi :
Bentuk aktifitas dalam perusahaan yang bergerak dalam bidang IT, terkait
dengan pengembangan perangkat lunak, dapat diklasifikasikan ke dalam
dua bentuk, yaitu:
1. Pembuatan Perangkat Lunak
2. Manajemen Proyek Perangkat Lunak
Suatu proyek merupakan tugas yang terdefenisikan dengan baik, yang
terdiri dari sekumpulan kegiatan yang dilakukan dengan kondisi terbatas
untuk mencapai suatu tujuan yang spesifik. Suatu proyek memiliki
karakteristik sebagai berikut:
a. Setiap proyek memiliki tujuan yang unik/ spesifik.
b. Proyek bukanlah merupakan kegiatan rutin, atau operasional harian
c. Setiap proyek memiliki waktu mulai dan selesai.
d. Proyek berakhir apabila tujuan telah tercapai.
e. Proyek membutuhkan sumber daya selama ia berlangsung, seperti
waktu, sumber daya manusia, keuangan, material, dan ilmu
pengetahuan.

Tujuan Manajemen Proyek


Proyek merupakan serangkaian rencana aktivitas yang saling berhubungan
untuk mencapai tujuan yang spesifik. Proyek sistem informasi termasuk
pembangunan sistem informasi baru, peningkatan sistem yang ada atau
pergantian infrastruktur teknologi informasi perusahaan. Manajemen
proyek mengacu pada penerapan pengetahuan, keterampilan, peralatan dan
teknik untuk mencapai target tertentu dengan anggaran dan waktu yang
telah ditentukan.
Kegiatan manajemen proyek mencakup aktivitas perencanaan pekerjaan,
memperkirakan risiko, memperkirakan sumber daya yang diperlukan untuk
menyelesaikan pekerjaan, pengorganisasian pekerjaan, mengelola sumber
daya manusia dan material, menetapkan tugas, kegiatan mengarahkan dan
mengendalikan proyek, melaporkan kemajuan dan menganalisis hasil.
Proyek perangkat lunak dilakukan untuk mencapai tujuan tertentu, yang
diklasifikasikan ke dalam dua kategori, yaitu: tujuan proyek dan tujuan
bisnis. Untuk tujuan proyek yang biasanya harus memenuhi hal-hal berikut
ini:
1. Memenuhi persyaratan pengguna. Kembangkan proyek sesuai dengan
kebutuhan pengguna setelah memahaminya.
2. Memenuhi tenggat waktu yang terjadwal. Selesaikan pilar utama
proyek seperti yang dijelaskan dalam rencana proyek tepat waktu
untuk menyelesaikan proyek sesuai dengan jadwal.
3. Kesesuaian anggaran. Kelola keseluruhan biaya proyek sehingga
proyek berada dalam anggaran yang sudah dialokasikan.
4. Menghasilkan kualitas yang diinginkan. Pastikan kualitas dapat
dicapai melalui proses yang akurat dan kinerja positif keseluruhan
proyek.
Tujuan bisnis memastikan bahwa tujuan dan persyaratan organisasi
dipenuhi dalam proyek. Secara umum, tujuan ini terkait dengan
peningkatan proses bisnis, kepuasan pelanggan, dan peningkatan kualitas.
Tujuan bisnis yang umum diikuti seperti hal-hal di bawah ini:
1. Mengevaluasi proses. Mengevaluasi proses bisnis dan membuat
perubahan kapan dan di mana diperlukan saat proyek berlangsung.
2. Memperbaharui kebijakan dan proses. Memberikan fleksibilitas untuk
memperbarui kebijakan dan proses organisasi untuk melakukan
tugas secara efektif.
3. Pertahankan proyek sesuai jadwal. Mengurangi downtime (periode
ketika tidak ada pekerjaan yang dilakukan) faktor-faktor seperti tidak
tersedianya sumber daya selama pengembangan perangkat lunak.
4. Tingkatkan kualitas perangkat lunak. Gunakan proses yang sesuai
untuk mengembangkan perangkat lunak yang memenuhi persyaratan
organisasi dan memberikan keunggulan kompetitif bagi organisasi.

Proyek Perangkat Lunak


Proyek perangkat lunak merupakan suatu prosedur lengkap tentang
pengembangan perangkat lunak, sejak dari pengumpulan data
kebutuhan/persyaratan hingga pengujian dan maintenance.

Pentingnya Manajemen Proyek Perangkat Lunak


Perangkat lunak merupakan produk tidak berwujud (intangible).
Pengembangan perangkat lunak adalah sejenis aliran baru di dalam dunia
bisnis dan masih sangat minim sumber daya manusia yang berpengalaman
dalam membangun produk perangkat lunak. Hampir keseluruhan produk
perangkat lunak yang dibuat harus menganut prinsip ‘tailor made’ agar
dapat memenuhi kebutuhan dan persyaratan dari pengguna. Hal yang
paling penting adalah kondisi perkembangan teknologi yang berubah secara
cepat dan setiap perangkat lunak bersifat unik sehingga tidak dapat
diaplikasikan untuk sistem yang lain. Semua hambatan bisnis dan
lingkungan seperti itu membawa risiko dalam pengembangan perangkat
lunak sehingga penting dilakukan pengelolaan proyek perangkat lunak
secara efisien.

Gambar 2.1 : Kendala dalam proyek perangkat lunak

Gambar 2.1 menunjukkan tiga kendala yang ada dalam proyek perangkat
lunak. Hal ini adalah bagian penting dari organisasi perangkat lunak untuk
menghasilkan produk berkualitas, menjaga biaya dalam batasan
anggaran/kemampuan klien dan menyelesaikan proyek sesuai jadwal. Ada
beberapa faktor, baik internal maupun eksternal, yang dapat berdampak
pada segitiga tiga kendala ini. Salah satu dari ketiga faktor tersebut dapat
berdampak buruk pada dua lainnya.

Oleh karena itu, manajemen proyek perangkat lunak sangat penting untuk
memasukkan kebutuhan pengguna bersama dengan batasan anggaran dan
waktu.
Manajer Proyek Perangkat Lunak
Seorang manajer proyek perangkat lunak adalah orang yang bertanggung
jawab melaksanakan proyek perangkat lunak. Manajer proyek perangkat
lunak sangat memahami semua fase SDLC (Software Development Life Cycle)
yang akan dilalui dalam mengembangkan perangkat lunak. Manajer proyek
mungkin tidak pernah terlibat langsung dalam menghasilkan produk akhir
berupa perangkat lunak, tetapi ia mengendalikan dan mengelola kegiatan
yang dilaksanakan dalam produksi secara keseluruhan.

Seorang manajer proyek memantau secara langsung proses pengembangan,


menyiapkan dan melaksanakan berbagai rencana, mengatur sumber daya
yang diperlukan dan memadai, mempertahankan komunikasi di antara
semua anggota tim untuk mengatasi masalah biaya, anggaran, sumber
daya, waktu, kualitas dan kepuasan pelanggan.

Berikut ini adalah tanggung jawab yang dimiliki oleh seorang manajer
proyek perangkat lunak:
a. Mengelola Manusia, meliputi:
- Bertindak sebagai leader proyek
- Mengkomunikasikan pekerjaan dengan pihak-pihak terkait
- Mengelola sumber daya manusia
- Menyusun hirarki pelaporan
b. Mengelola Proyek, meliputi:
- Mendefenisikan dan menetapkan ruang lingkup proyek
- Mengelola kegiatan proyek
- Memantau kemajuan dan kinerja proyek
- Menganalisis resiko setiap tahapan
- Mengambil langkah penting untuk menghindari resiko atau
mengatasi masalah
- Berlaku sebagai juru bicara proyek
Aktifitas Manajemen Proyek Perangkat Lunak
Manajemen proyek perangkat lunak terdiri dari sejumlah kegiatan, yang
berisi perencanaan proyek, menentukan ruang lingkup produk perangkat
lunak, menyusun perkiraan biaya, penjadwalan tugas dan kegiatan, dan
manajemen sumber daya. Kegiatan manajemen proyek meliputi:

A. Perencanaan Proyek (Project Planning)


Proses perencanaan proyek melibatkan serangkaian kegiatan yang saling
terkait diikuti secara teratur untuk mengimplementasikan persyaratan
pengguna dalam perangkat lunak dan termasuk deskripsi serangkaian
kegiatan perencanaan proyek dan individu yang bertanggung jawab
untuk melakukan kegiatan ini. Selain itu, dalam proses perencanaan
proyek terdapat hal-hal berikut ini:
 Tujuan dan ruang lingkup proyek
 Teknik yang digunakan untuk melakukan perencanaan proyek
 Upaya (dalam satuan waktu) individu yang terlibat dalam proyek
 Jadwal proyek dan milestone
 Sumber daya yang dibutuhkan untuk proyek
 Risiko yang terkait dengan proyek.
Proses perencanaan proyek terdiri dari beberapa kegiatan, yang penting
untuk melaksanakan proyek secara sistematis. Kegiatan-kegiatan ini
merujuk pada serangkaian tugas yang dilakukan selama periode waktu
tertentu untuk mengembangkan perangkat lunak. Kegiatan-kegiatan ini
meliputi estimasi waktu, upaya, dan sumber daya yang diperlukan dan
risiko yang terkait dengan proyek.

Proses perencanaan proyek terdiri dari kegiatan-kegiatan berikut ini:


A. Identifikasi persyaratan proyek. Sebelum memulai proyek, penting
untuk melakukan identifikasi persyaratan proyek karena ia dapat
membantu dalam melakukan kegiatan secara sistematis. Persyaratan
ini terdiri dari informasi seperti ruang lingkup proyek, data dan
fungsi yang diperlukan dalam perangkat lunak, dan peran anggota
tim manajemen proyek.
B. Identifikasi estimasi biaya. Seiring dengan estimasi usaha dan waktu,
perlu upaya untuk memperkirakan biaya yang harus dikeluarkan
untuk suatu proyek. Estimasi biaya termasuk biaya perangkat keras,
koneksi jaringan, dan biaya yang diperlukan untuk pemeliharaan
komponen perangkat keras. Selain itu, biaya diperkirakan juga untuk
individu yang terlibat dalam proyek.
C. Identifikasi risiko. Risiko adalah peristiwa tak terduga yang memiliki
efek buruk pada proyek. Proyek perangkat lunak melibatkan
beberapa risiko (seperti risiko teknis dan risiko bisnis) yang
mempengaruhi jadwal proyek dan meningkatkan biaya proyek.
Identifikasi risiko sebelum proyek dimulai membantu dalam
memahami kemungkinan dampaknya terhadap proyek.
D. Identifikasi faktor penentu keberhasilan. Untuk membuat proyek
berhasil, faktor penentu keberhasilan diikuti. Faktor-faktor ini
merujuk pada kondisi yang memastikan peluang keberhasilan proyek
yang lebih besar. Secara umum, faktor-faktor ini termasuk dukungan
dari manajemen, anggaran yang sesuai, jadwal yang tepat, dan ahli
perangkat lunak yang terampil.
E. Persiapan ringkasan proyek. Rangkuman proyek memberikan
gambaran singkat tentang ruang lingkup proyek, kualitas, waktu,
biaya, dan kendala sumber daya seperti yang dijelaskan selama
perencanaan proyek. Ini disiapkan oleh manajemen untuk
mendapatkan persetujuan dari sponsor proyek.
F. Persiapan rencana proyek. Rencana proyek memberikan informasi
tentang sumber daya yang tersedia untuk proyek, individu yang
terlibat dalam proyek, dan jadwal sesuai dengan mana proyek akan
dilaksanakan.
G. Waktu dimulainya proyek. Setelah perencanaan proyek selesai dan
sumber daya ditugaskan untuk anggota tim, proyek perangkat lunak
dimulai.
Gambar 2.2: Aktifitas perencanaan proyek
Setelah tujuan proyek dan tujuan bisnis ditentukan, tanggal akhir
proyek pun ditetapkan. Tim manajemen proyek menyiapkan rencana
dan jadwal proyek sesuai dengan tanggal berakhirnya proyek. Setelah
menganalisis rencana proyek, manajer proyek mengomunikasikan
rencana proyek dan tanggal berakhirnya kepada manajemen senior.
Kemajuan proyek dilaporkan kepada manajemen dari waktu ke
waktu. Demikian pula, ketika proyek selesai, manajemen senior
diberitahu tentang itu. Dalam hal keterlambatan dalam
menyelesaikan proyek, rencana proyek dianalisis ulang dan tindakan
korektif diambil untuk menyelesaikan proyek. Proyek dilacak secara
teratur dan ketika rencana proyek diubah, manajemen senior
diberitahu.

B. Menentukan Ruang Lingkup


Ini adalah kegiatan mendefinisikan ruang lingkup proyek, termasuk
semua kegiatan yang ada di dalamnya, dan proses yang perlu dilakukan
untuk membuat produk perangkat lunak. Manajemen terhadap lingkup
ini sangat penting karena menciptakan batasan-batasan proyek dengan
mendefinisikan secara jelas apa yang akan dilakukan dalam proyek dan
apa yang tidak akan dilakukan. Hal ini membuat proyek mengandung
tugas-tugas terbatas dan terukur, yang dapat didokumentasikan dengan
mudah dan pada gilirannya menghindari biaya dan waktu yang
berlebihan.
Hal yang perlu dilakukan selama manajemen Ruang Lingkup Proyek
adalah:
- Mendefenisikan ruang lingkup
- Menentukan verifikasi dan kontrol
- Membagi kegiatan menjadi kegiatan yang lebih kecil agar mudah
mengelolanya
- Memverifikasi ruang lingkup
- Mengendalikan ruang lingkup apabila mengalami perubahan.

C. Estimasi Proyek
Untuk pengelolaan yang efektif, perkiraan akurat berbagai tindakan
adalah suatu keharusan. Dengan estimasi yang benar, manajer dapat
mengelola dan mengendalikan proyek dengan lebih efisien dan efektif.
Estimasi proyek meliputi hal-hal sebagai berikut:
a. Estimasi Ukuran (size) Perangkat Lunak
Ukuran perangkat lunak dapat diperkirakan baik dalam hal KLOC
(Kilo Line of Code) atau dengan menghitung jumlah fungsi dalam
perangkat lunak. Baris kode (line of code) bergantung pada aktifitas
pengkodean. Jumlah fungsi bervariasi sesuai dengan kebutuhan
pengguna atau perangkat lunak.
b. Estimasi usaha (efforts)
Manajer proyek memperkirakan usaha (efforts) dalam hal kebutuhan
personil dan jam kerja yang diperlukan untuk menghasilkan
perangkat lunak. Untuk suatu ukuran perangkat, estimasi usaha
harus diketahui. Hal ini dapat diturunkan berdasarkan pengalaman
manajer, data historis organisasi, atau ukuran perangkat lunak dapat
diubah menjadi upaya dengan menggunakan beberapa rumus
standar.
c. Estimasi Waktu
Setelah ukuran dan usaha diperkirakan, waktu yang diperlukan
untuk menghasilkan perangkat lunak juga dapat diperkirakan.
Usaha yang dibutuhkan dipisahkan ke dalam sub kategori sesuai
spesifikasi kebutuhan dan interdependensi dari berbagai komponen
perangkat lunak. Tugas pengerjaan perangkat lunak dibagi menjadi
tugas-tugas yang lebih kecil, kegiatan atau aktifitas oleh Work
Breakthrough Structure (WBS). Tugas dijadwalkan dari hari ke hari
atau dalam bulan kalender. Jumlah waktu yang diperlukan untuk
menyelesaikan semua tugas dalam beberapa jam atau hari adalah
total waktu yang diinvestasikan untuk menyelesaikan proyek.

d. Estimasi Biaya
Bagian ini mungkin dianggap sebagai yang paling sulit karena
tergantung pada lebih banyak elemen daripada yang sebelumnya.
Untuk memperkirakan biaya proyek, perlu dipertimbangkan hal-hal
sebagai berikut:
- Ukuran dari perangkat lunak
- Kualitas perangkat lunak
- Perangkat keras
- Perangkat lunak tambahan (tool), lisensi dan sebagainya
- Tenaga ahli dengan keahlian yang spesifik
- Perjalanan yang dilakukan
- Komunikasi
- Pelatihan dan bantuan teknis.

Tool Manajemen Proyek Perangkat Lunak


Resiko dan ketidakpastian dapat mengalami peningkatan tergantung pada
volume proyek, meskipun proyek dilaksanakan sesuai dengan metodologi
yang ditetapkan.
Berikut ini adalah contoh tool-tool yang digunakan untuk dapat membantu
mengelola proyek secara efektif.
1. Gantt Chart
Gantt Chart adalah sejenis grafik batang (Bar Chart) yang digunakan
untuk menunjukan aktivitas-aktivitas pada proyek serta jadwal dan
waktu pelaksanaannya, seperti waktu dimulainya tugas tersebut dan
juga batas waktu yang digunakan untuk menyelesaikan tugas yang
bersangkutan. Personil atau bagian yang ditugaskan untuk
menyelesaikan tugas dalam proyek juga harus dituliskan dalam Gantt
Chart.
Beberapa sebutan lain untuk Gantt Chart diantaranya adalah
Milestones Chart, Project Bar Chart dan juga Activity chart. Gantt Chart
yang dikembangkan oleh Henry Laurence Gantt pada tahun 1910 ini
pada dasarnya adalah suatu gambaran atas perencanan, penjadwalan
dan pemantauan (monitoring) kemajuan setiap kegiatan atau aktivitas
pada suatu proyek.
Gantt Chart merupakan salah satu alat yang sangat bermanfaat dalam
merencanakan penjadwalan dan memantau kegiatan pada suatu
proyek, mengkomunikasikan kegiatan-kegiatan yang harus
dilaksanakan dan juga status pelaksanaannya. Dalam Gantt Chart
juga dapat dilihat urutan kegiatan ataupun tugas yang harus
dilakukan berdasarkan prioritas waktu yang ditentukan.
Cara membuat Gantt Chart:
1. Mengidentifikasikan tugas
 Mengidentifikasikan tugas-tugas yang perlu diselesaikan pada
proyek tersebut
 Menentukan milestone (bagian pekerjaan dari suatu tugas)
dengan menggunakan brainstorming ataupun flowchart.
 Mengidentifikasikan durasi waktu yang diperlukan dalam
menyelesaikan suatu tugas.
 Mengidentifikasikan urutan pekerjaan ataupun tugas yang akan
dikerjakan. Seperti tugas yang harus diselesaikan sebelum
memulai suatu tugas yang baru ataupun tugas-tugas apa yang
harus dilakukan secara bersamaan (paralel).
2. Menggambarkan sumbu horizontal
Gambarkan sumbu horizontal untuk waktu pelaksanaannya (dapat
diletakan di atas atau di bawah halaman). Tandai dengan skala
waktu yang sesuai (dapat ditulis dalam satuan harian maupun
mingguan).
3. Menuliskan tugas atau aktivitas
Tuliskan tugas atau bagian pekerjaan (milestone) yang akan
dikerjakan berdasarkan urutan waktu pada bagian kiri.
Gambarkan diagram batang (Bar Graph) untuk menunjukan
rentang waktu yang diperlukan untuk melakukan tugas yang
bersangkutan. Gambarkan kotak dari kiri di mana waktu tugas
tersebut dimulai sampai pada waktu tugas yang bersangkutan
berakhir. Jika diperlukan presentasi kepada pihak klien,
gambarkan bentuk intan (Diamond) pada tanggalnya. Gambarkan
tepinya saja dan kotak tersebut jangan diisi.
4. Melakukan pemeriksaan kembali
Lakukan pemeriksaan kembali, apakah semua tugas atau bagian
pekerjaan untuk proyek tersebut sudah tertulis semuanya ke
dalam Gantt Chart.

Cara Menggunakannya:
1. Saat Proyek sedang berlangsung, isikan gambar Intan (diamond)
ataupun Grafik Batang pada Gantt Chart untuk menunjukan
bahwa tugas yang bersangkutan telah diselesaikan. Jika ada tugas
masih berjalan (in progress), estimasikan kemajuan tugas yang
bersangkutan dan isikan grafik batang sesuai dengan kemajuan
tersebut.
2. Letakkan tanda vertikal untuk menunjukan sejauh mana proyek
tersebut sedang berlangsung.
Contoh:

Gambar 2.3: Gantt Chart

2. PERT (Project Evaluation and Review Technique)


Kompleksitas sebuah pengelolaan proyek, membutuhkan identifikasi
dan pemetaan atas rangkaian kegiatan yang bisa saja harus dilakukan
secara serial (berurutan) atau dapat dilakukan secara paralel. Pemetaan
ini dapat disusun dalam bentuk model jaringan. Critical Path Method
(CPM) dikembangkan pada tahun 1957 sebagai model jaringan untuk
pemetaan alur sebuah proyek. CPM adalah metode perancangan alur
proyek yang menggunakan perkiraan waktu tetap untuk setiap
kegiatannya.

Walau mudah dimengerti dan digunakan, CPM tidak


mempertimbangkan variasi waktu yang mungkin saja dapat terjadi dan
dapat memiliki dampak yang besar terhadap target waktu penyelesaian
sebuah proyek.
Program Evaluation and Review Technique (PERT) adalah suatu model
jaringan yang mampu memetakan waktu penyelesaian kegiatan yang
acak. Proses perencanaan dengan menggunakan PERT meliputi langkah-
langkah seperti berikut:
[1]. Mengidentifikasi kegiatan (activities) dan tonggak proyek
(milestones) yang spesifik.
Dalam pengelolaan suatu proyek, sebuah aktivitas adalah
kegiatan yang harus dikerjakan dan sebuah ‘event’ atau peristiwa
merupakan tahapan penyelesaian dari satu atau lebih kegiatan.
Keluaran dari tahapan ini adalah daftar tugas dalam tabel yang
mencakup informasi tentang urutan dan durasi.
[2]. Menentukan urutan yang tepat dari kegiatan-kegiatan.
Langkah ini membutuhkan analisa yang cukup mendalam
mengenai relasi antara setiap kegiatan. Sebelum sebuah kegiatan
dapat dimulai, semua kegiatan yang menjadi prasyarat bagi
kegiatan tersebut harus sudah terlaksana (terminated).
[3]. Menyusun model diagram jaringan.
Menggunakan informasi urutan aktivitas, diagram PERT dapat
disusun dengan menunjukkan sifat urutan kegiatan (serial dan
paralel). Beberapa draft dapat saja diperlukan untuk dapat
secara benar menggambarkan hubungan antar aktivitas.
[4]. Memperkirakan waktu yang diperlukan untuk masing-masing
kegiatan.
Hari, minggu atau bulan adalah unit umum biasa digunakan
waktu untuk penyelesaian kegiatan.
Sebuah fitur yang membedakan PERT adalah kemampuannya
untuk menghadapi ketidakpastian di masa penyelesaian
kegiatan. Untuk setiap aktivitas, model biasanya mencakup tiga
perkiraan waktu: Waktu Optimis, yaitu perkiraan waktu yang
paling singkat bagi penyelesaian aktivitas; Waktu Perkiraan
Paling Mungkin, waktu penyelesaian yang memiliki probabilitas
tertinggi (berbeda dengan : waktu yang diharapkan); dan Waktu
Pesimis, yaitu waktu terpanjang yang mungkin diperlukan suatu
kegiatan.
Waktu Rata-rata atau waktu yang diharapkan dan dapat
ditampilkan dalam diagram dapat dihitung dari rumus =
(Waktu Optimis + 4 Waktu Perkiraan Paling Mungkin+ Waktu
Pesimis) / 6

Gambar 2.4: Contoh PERT

[5]. Menentukan tahapan dan jalur kritis.


Jalur kritis ditentukan dengan menjumlahkan waktu setiap
kegiatan, mulai dari awal hingga akhir proyek. Jumlah
terpanjang dari sebuah variasi urutan kegiatan merupakan jalur
kritis. Dari contoh di atas maka alur A – D – F = 3 + 1 + 3 = 7 mo
dan alur B – C = 4 + 3 = 7 mo, merupakan jalur kritis (critical
path).
Sedangkan alur A – E = 3 + 2 = 5 mo merupakan jalur non-kritis.
Dari analisa di atas, maka kegiatan E dapat ditunda tanpa
maksimal 2 mo tanpa menunda penyelesaian keseluruhan proyek
ini. Kegiatan E disebut memiliki waktu longgar (slack time).
[6]. Melakukan pemantauan dan evaluasi serta koreksi pada
diagram PERT selama proyek berlangsung.
Dalam dinamika pengelolaan proyek, secara berkala diagram
PERT dapat dipantau, serta dikoreksi sesuai dengan
perkembangan pelaksanaan proyek dengan memasukkan angka
waktu yang telah terjadi pada setiap kegiatan yang sudah berlalu.
Atau malah diagram dikoreksi untuk rencana kegiatan yang akan
datang disebabkan perubahan asumsi selama proyek
berlangsung.
PERENCANAAN PROYEK PERANGKAT LUNAK

Observasi pada estimasi


Proses manajemen proyek perangkat lunak dimulai dengan planning dan perkiraan (estimasi).
Yang mempengaruhi estimasi Yang pertama dari aktifitas ini adalah estimation (perkiraan).
Estimasi membawa resiko yang inheren (dari diri sendiri) dan resiko inilah yang membawa
ketidakpastian.

Yang mempengaruhi estimasi :


- Project Complexity (kompleksitas proyek).
- Project Size (ukuran proyek).
- Structural Uncertainty (ketidakpastian struktural)

Tujuan Perencanaan Proyek Perangkat Lunak


Menyediakan sebuah kerangka kerja yang memungkinkan manajer membuat estimasi yang
dapat dipertanggungjawabkan terhadap sumber daya, biaya dan jadual pada awal proyek yang
dibatasi oleh waktu.

Aktifitas Perencanaan Proyek Perangkat Lunak :


- Menentukan Ruang Lingkup Perangkat Lunak.
- Mengestimasi Sumber Daya yang Dibutuhkan.

Ruang lingkup PL menggambarkan :


- Fungsi untuk memberikan awalan yang lebih detail pada saat dimulai estimasi.
- Kinerja melingkupi pemrosesan dan kebutuhan waktu respon.
- Batasan mengidentifikasi batas yang ditempatkan pada PL oleh hardware eksternal,
memori dan sistem lain.
- Konsep sebuah interface diinterpretasi untuk menentukan :
⚫ Hardware yang mengeksekusi PL dan device yang dikontrol secara langsung
oleh PL.
⚫ Software yang sudah ada dan harus dihubungkan dengan PL yang baru.
⚫ Manusia yang menggunakan PL melalui perangkat I/O.
⚫ Prosedur.
Sumber Daya
- Manusia.
- Perangkat Lunak.
⚫ Memiliki kategori yang diusulkan oleh BEUNATAN :
⚫ Komponen Off-the self.
⚫ Komponen Full-Experience.
⚫ Komponen Partial-Experience.
⚫ Komponen Baru.
- Lingkungan (Software Engineering Environment – SEE), menggabungkan PL dan
hardware.

Estimasi Proyek Perangkat Lunak


Akurasi estimasi proyek PL didasarkan pada :
- Tingkat dimana perencana telah dengan tepat mengestimasi ukuran produk yang
akan dibuat.
- Kemampuan mengestimasi ukuran ke dalam kerja manusia, waktu kalender,dandolar.
- Tingkat dimana rencana proyek mencerminkan kemampuan tim PL.
- Stabilitas syarat produk serta lingkungan yang mendukung usaha pengembanganPL.

Putnam dan Myers mengusulkan 4 masalah penentuan dari ukuran :


- Fuzzy-logic sizing (logika kabur).
Perencana harus mengidentifikasi tipe aplikasi, membuat besarannya dalam skala
kuantitatif kemudian dibandingkan dengan rentang orisinil.
- Function point sizing.
Perencana mengembangkan estimasi berdasarkan karakteristik domain informasi.

- Standard component sizing.


PL dibangun dari sejumlah 'komponen standar' yg umum (subsistem, modul, laporan,
program interaktif).

- Change sizing.
- Digunakan jika PL yang ada harus dimodifikasi dengan banyak cara sebagai bagiandari
proyek.
COCOMO
Barry Boehm memperkenalkan hirarki model estimasi PL dengan nama COCOMO
(COnstructive COst MOdel = Model Biaya Konstruktif).

COCOMO adalah sebuah model yang didesain oleh Barry Boehm untuk memperoleh perkiraan
dari jumlah orang-bulan yang diperlukan untuk mengembangkan suatu produk perangkat
lunak. Satu hasil observasi yang paling penting dalam model ini adalah bahwa motivasi dari tiap
orang yang terlibat ditempatkan sebagai titik berat. Hal ini menunjukkan bahwa kepemimpinan
dan kerja sama tim merupakan sesuatu yang penting, namun demikian poin pada bagian ini
sering diabaikan.

1. Model COCOMO Dasar.


Model COCOMO dapat diaplikasikan dalam tiga tingkatan kelas :
- Proyek organik (organic mode) adalah proyek dengan ukuran relatif kecil, dengan
anggota tim yang sudah berpengalaman, dan mampu bekerja pada permintaan yang
relatif fleksibel.
- Proyek sedang (semi-detached mode)Merupakan proyek yang memiliki ukuran dan
tingkat kerumitan yang sedang, dan tiap anggota tim memiliki tingkat keahlian yang
berbeda
- Proyek terintegrasi (embedded mode). Proyek yang dibangun dengan spesifikasi dan
operasi yang ketat

Model COCOMO dasar ditunjukkan dalam persamaan 1, 2, dan 3 berikut ini :

b
E = ab (KLOC) b (1)
d
D = cb (E) b (2)
P = E/D (3)

Dimana :

E : besarnya usaha (orang-bulan)


D : lama waktu pengerjaan (bulan)
KLOC : estimasi jumlah baris kode (ribuan)
P : jumlah orang yang diperlukan.

Sedangkan koefisien ab, bb, cb, dan db diberikan pada Tabel 1 berikut :
Tabel 3.1. Koefisien untuk Model COCOMO

2. Model COCOMO Lanjut (Intermediate COCOMO)


Pengembangan model COCOMO adalah dengan menambahkan atribut yang dapat
menentukan jumlah biaya dan tenaga dalam pengembangan perangkat lunak, yang
dijabarkan dalam kategori dan subkatagori sebagai berikut:

1. Atribut produk (product attributes)


- Reliabilitas perangkat lunak yang diperlukan (RELY)
- Ukuran basis data aplikasi (DATA)
- Kompleksitas produk (CPLX)

2. Atribut perangkat keras (computer attributes)

- Waktu eksekusi program ketika dijalankan (TIME)


- Memori yang dipakai (STOR)
- Kecepatan mesin virtual (VIRT)
- Waktu yang diperlukan untuk mengeksekusi perintah (TURN)

3. Atribut sumber daya manusia (personnel attributes)


- Kemampuan analisis (ACAP)
- Kemampuan ahli perangkat lunak (PCAP)
- Pengalaman membuat aplikasi (AEXP)
- Pengalaman penggunaan mesin virtual (VEXP)
- Pengalaman dalam menggunakan bahasa pemrograman (LEXP)

4. Atribut proyek (project attributes)


- Penggunaan sistem pemrograman modern(MODP)
- Penggunaan perangkat lunak (TOOL)
- Jadwal pengembangan yang diperlukan (SCED)
- Masing-masing subkatagori diberi bobot seperti dalam tabel 3.2 dan kemudian
dikalikan.

Tabel 3.2. Nilai Bobot Sub-Kategori

Pada aplikasi PL, dari segi biaya sering lebih efektif membeli daripada mengembangkansendiri.
Pada keputusan make-buy dengan pilihan :
- PL dapat dibeli (atau lisensi) off-the-self.
- Komponen PL full-experiencedan partial-experience.
- PL dapat dibuat custom-built oleh kontraktor luar.

(4)

Dimana :

E : besarnya usaha (orang-bulan) KLOC


: estimasi jumlah baris kode (ribuan)
EAF : faktor hasil penghitungan dari sub-katagori di atas.

Koefisien ai dan eksponen bi diberikan pada tabel berikut.


Tabel 3.3. Koefisien Model COCOMO Lanjut

2.1 Persamaan Perangkat Lunak


Persamaan perangkat lunak merupakan model variabel jamak yang menghitung suatu
distribusi spesifik dari usaha pada jalannya pengembangan perangkat lunak. Persamaan
berikut ini diperoleh dari hasil pengamatan terhadap lebih dari 4000 proyek perangkat
lunak :

(5)

Dimana :

E = usaha yang dilakukan (orang-bulan atau orang-tahun)t


= durasi proyek dalam (bulan atau tahun)
B = faktor kemampuan khususP
= parameter produktivitas
Nilai B diambil berdasarkan perkiraan. Untuk program berukuran kecil (0.5 < KLOC <5),
B = 0.16. Untuk program yang lebih besar dari 70 KLOC, B = 0.39.

Sedangkan besarnya nilai P merefleksikan :


⚫ Kematangan proses dan praktek manajemen
⚫ Kualitas rekayasa perangkat lunak
⚫ Tingkat bahasa pemrograman yang digunakan
⚫ Keadaan lingkungan perangkat lunak
⚫ Kemampuan dan pengalaman tim pengembang
⚫ Kompleksitas aplikasi
Berdasarkan teori, diperoleh P = 2000 untuk sistem terapan, P = 10000 untuk perangkat
lunak pada sistem informasi dan sistem telekomunikasi, dan P = 28000 untuk sistem
aplikasi bisnis.

2.2 Konversi Waktu Tenaga Kerja


Konversi waktu tenaga kerja ini diperoleh dari angka pembanding yang digunakan pada
perangkat lunak ConvertAll, dengan hubungan persamaan antara orang-bulan (OB),
orang-jam (OJ), orang-minggu (OM), dan orang-tahun (OT) adalah sebagai berikut :

OM = 40 OJ (6)
OT = 12 OB (7)
OT = 52 OM (8)

Dari persamaan di atas, diperoleh konversi orang-bulan ke orang-jam sebagai berikut :


OB = (40 OJ x 52) / 12 (9)
OB = 173,33 OJ

3. Model COCOMO II
Model COCOMO II, pada awal desainnya terdiri dari 7 bobot pengali yang relevan dan
kemudian menjadi 16 yang dapat digunakan pada arsitektur terbarunya.

Tabel 3.4. COCOMO II Early Design Effort Multipliers


Tabel 3.5. COCOMO II Post Architecture Effort Multipliers

Sama seperti COCOMO Intermediate, masing-masing sub katagori dapat digunakan untuk
aplikasi tertentu pada kondisi very low, low, manual, nominal, high maupun very high. Masing-
masing kondisi memiliki nilai bobot tertentu. Nilai yang lebih besar dari 1 menunjukkan usaha
pengembangan yang meningkat, sedangkan nilai di bawah 1 menyebabkan usaha yang
menurun. Kondisi Laju nominal (1) berarti bobot pengali tidak berpengaruh pada estimasi.
Maksud dari bobot yang digunakan dalam COCOMO II, harus dimasukkan dan direfisikan di
kemudian hari sebagai detail dari proyek aktual yang ditambahkan dalam database.

Anda mungkin juga menyukai