Metode Waterfall
Model pengembangan software
yang diperkenalkan oleh Winston
Royce pada tahun 70-an ini merupakan model klasik yang sederhana dengan
aliran sistem yang linier —keluaran dari tahap sebelumnya merupakan masukan
untuk tahap
berikutnya. Pengembangan dengan model ini adalah hasil adaptasi dari
pengembangan perangkat keras, karena pada waktu itu belum terdapat
metodologi pengembangan perangkat
lunak yang lain. Proses pengembangan yang sangat terstruktur ini
membuat potensi kerugian akibat kesalahan
pada proses sebelumnya sangat
besar dan acap kali
mahal karena membengkaknya biaya pengembangan ulang.
Metode Waterfall adalah
suatu proses pengembangan perangkat
lunak berurutan, di mana kemajuan dipandang sebagai terus mengalir ke
bawah (seperti air terjun) melewati
fase-fase perencanaan, pemodelan, implementasi (konstruksi), dan
pengujian.
Tahapan
Metode Waterfall
Dalam pengembangannya
metode waterfall memiliki beberapa
tahapan yang runtut: requirement, design, implementation,
verification dan maintenance.
1.
Tahap requirement atau
spesifikasi kebutuhan sistem adalah analisa kebutuhan sistem yang dibuat
dalam bentuk yang dapat
dimengerti oleh klien dan staf pengembang. Dalam tahap ini klien atau
pengguna menjelaskan segala kendala dan tujuan serta mendefinisikan apa
yang diinginkan dari sistem.
Setelah dokumen spesifikasi disetujui maka dokumen tersebut menjadi
kontrak kerja antara klien dan pihak
pengembang.
2.
Tahap
selanjutnya adalah desain, dalam
tahap ini pengembang akan menghasilkan sebuah arsitektur sistem secara
keseluruhan, dalam tahap ini menentukan
alur perangkat lunak hingga pada tahap algoritma yang detil.
3.
Selanjutnya
tahap implementasi, yaitu tahapan
dimana keseluruhan desain diubah menjadi kode-kode program. kode program yang
dihasilkan masih berupa modul-modul
yang selanjutnya akan di integrasikan menjadi sistem yang lengkap untuk
meyakinkan bahwa persyaratan
perangkat lunak telah dipenuhi.
4.
Tahap
selanjutnya adalah verifikasi oleh klien, klien menguji apakah sistem tersebut
telah sesuai dengan kontrak yang telah disetujui.
5.
Tahap
akhir adalah pemeliharaan yang termasuk
diantaranya instalasi dan proses perbaikan sistem sesuai kontrak.
Manfaat
Metode Waterfall
Keunggulan model pendekatan
pengembangan software dengan
metode waterfall adalah pencerminan kepraktisan rekayasa, yang membuat
kualitas software tetap terjaga karena
pengembangannya yang terstruktur dan terawasi. Disisi lain model ini
merupakan jenis model yang bersifat dokumen lengkap, sehingga proses
pemeliharaan dapat dilakukan
dengan mudah. Akan tetapi dikarenakan dokumentasi yang lengkap dan sangat
teknis, membuat pihak
klien sulit membaca dokumen yang berujung pada sulitnya komunikasi antar
pengembang dan klien. Dokumentasi
kode program yang lengkap juga secara tak langsung menghapus
ketergantungan pengembang terhadap
pemrogram yang keluar dari tim pengembang. Hal ini sangat menguntungkan
bagi pihak pengembang dikarenakan
proses pengembangan perangkat lunak tetap dapat dilanjutkan tanpa
bergantung pada pemrogram tertentu.
Kelemahan
Metode Waterfall
Kelemahan pengembangan
software dengan metode waterfall
yang utama adalah lambatnya proses pengembangan perangkat lunak.
Dikarenakan prosesnya yang
satu persatu dan tidak bisa diloncat-loncat menjadikan model klasik ini
sangat memakan waktu dalam pengembangannya.
Disisi lain, pihak klien tidak dapat mencoba sistem sebelum sistem
benar-benar selesai pembuatannya.
Kelemahan yang lain adalah kinerja personil yang tidak optimal dan
efisien karena terdapat proses
menunggu suatu tahapan selesai terlebih dahulu.Secara keseluruhan model
pendekatan pengembangan software
dengan metode waterfall cocok untuk pengembangan software / perangkat
lunak dengan tingkat resiko
yang kecil, dan memiliki ukuran yang kecil serta waktu pengembangan yang
cukup panjang. Model ini tidak disarankan
untuk ukuran perangkat lunak yang besar dan tingkat resiko yang besar.
Metode Prototyping
Metode pengembangan system adalah kerangka yang
digunakan untuk menstruktur, merencanakan,
dan mengendalikan proses pengembangan suatu sistem informasi.
Metode waterfall, yaitu pengerjaan
dari suatu sistem dilakukan secara
berurutuan atau secara linier. Jadi jika langkah satu belum dikerjakan maka
tidak akan bisa melakukan pengerjaan
langkah 2, 3, dan seterusnya.
Metode pengembangan sistem
prototyping .
Prototyping adalah
pengembangan yang cepat dan pengujian
terhadap model kerja (prototipe) dari aplikasi baru melalui proses
interaksi dan berulang-ulang yang biasa digunakan ahli sistem informasi
dan ahli bisnis.
Prototyping disebut juga
desain aplikasi cepat (rapid application
design/RAD) karena menyederhanakan dan mempercepat desain sistem (O'Brien,
2005). Berdasarkan
karakteristiknya prototipe sebuah system dapat berupa low fidelity
dan high fidelity. Fidelity mengacu
kepada tingkat kerincian sebuah sistem (Walker et al, 2003).
Low fidelity prototype
tidak terlalu rinci menggambarkan sistem. Karakteristik dari low
fidelity prototype adalah mempunyai
fungsi atau interaksi yang terbatas, lebih menggambarkan kosep
perancangan dan layout dibandingkan
dengan model interaksi, tidak memperlihatkan
secara rinci operasional sistem, mendemostrasikan secara umum feel and
look dari antarmuka
pengguna dan hanya menggambarkan konsep pendekatan secara umum
(Walker et al, 2003).
High fidelity protoype
lebih rinci menggambarkan sistem. Prototipe ini mempunyai interaksi
penuh dengan pengguna dimana
pengguna dapat memasukkan data dan berinteraksi dengan dengan sistem,
mewakili fungsi-fungsi inti
sehingga dapat mensimulasikan sebagian besar fungsi dari sistem akhir dan
mempunyai penampilan yang sangat mirip dengan produk sebenarnya (Walker
et al, 2003).
Fitur yang akan
diimplementasikan pada prototipe system dapat dibatasi dengan
teknik vertikal atau horizontal. Vertical prototype mengandung fungsi
yang detail tetapi hanya
untuk beberapa fitur terpilih, tidak pada keseluruhan fitur sistem. Horizontal
prototype mencakup seluruh fitur antarmuka pengguna namun tanpa fungsi
pokok hanya berupa
simulasi dan belum dapat digunakan untuk melakukan pekerjaan yang
sebenarnya (Walker et al, 2003). Yang berbeda dari
metodologi prototipe ini, apabila dibandingkan dengan waterfall, yaitu
adanya pembuatan prototype
dari sebuah aplikasi, sebelum aplikasi tersebut memasuki tahap design.
Dalam fase ini, prototype yang telah
dirancang oleh developer akan diberikan kepada user untuk mendapatkan
dievaluasi. Tahap ini akan terus menerus diulang sampai kedua belah
pihak benar-benar mengerti
tentang requirement dari aplikasi yang akan dikembangkan. Apabila
prototype telah selesai, maka tahapan
aplikasi akan kembali berlanjut ke tahap design dan kembali mengikuti
langkah-langkah pada waterfall model.
Kekurangan dari tipe ini adalah tim developer pengembang aplikasi harus
memiliki kemampuan yang baik
karna dalam mengembangkan prototype ini hanya terdapat waktu yang
singkat. Sebuah prototiping adalah sebuah sistem dalam fungsi yang sangat
minimal.
Tahapan
Metodologi Prototipe :
- Pengumpulan Kebutuhan
dan perbaikan
Menetapkan
segala kebutuhan untuk pembangunan perangkat lunak
- Disain cepat
Tahap
penerjemahan dari keperluan atau data yang telah dianalisis ke dalam
bentuk yang mudah
dimengerti oleh user.
- Bentuk Prototipe
Menerjemahkan
data yang telah dirancang ke dalam bahasa pemrograman
- Evaluasi Pelanggan
Terhadap Prototipe
Program yang
sudah jadi diuji oleh pelanggan, dan bila ada kekurangan pada program bisa ditambahkan.
- Perbaikan Prototype
Perbaikan
program yang sudah jadi, sesuai dengan kebutuhan konsumen. Kemudian dibuat program kembali dan
di evaluasi oleh konsumen sampai
semua kebutuhan user terpenuhi.
- Produk Rekayasa
Program yang
sudah jadi dan seluruh kebutuhan user sudah terpenuhi
Keunggulan prototyping
adalah :
1.
Adanya
komunikasi yang baik antara pengembang dan pelanggan.
2.
Pengembang
dapat bekerja lebih baik dalam menentukan
kebutuhan pelanggan.
3.
Pelanggan
berperan aktif dalam pengembangan sistem.
4.
Lebih
menghemat waktu dalam pengembangan sistem.
5.
Penerapan
menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya.
Sedangkan kelemahan
prototyping adalah :
1.
Pelanggan
tidak melihat bahwa perangkat lunak belum mencerminkan kualitas perangkat
lunak secara
keseluruhan dan belum memikirkan peneliharaan dalam jangka waktu yang
lama.
2.
Pengembang
biasanya ingin cepat menyelesaikan proyek sehingga menggunakan algoritma
dan bahasa
pemrograman sederhana.
3.
Hubungan
pelanggan dengan komputer mungkin tidak menggambarkan teknik perancangan
yang baik.