Tahapan model waterfall meliputi:
a.
System
Engineering
Proses
penilaian sistem lama yang sedang berjalan dan studi kelayakan pengembangan
sistem baru berdasarkan aspek teknologi, ekonomis dan sumber daya manusia.
b.
Analisis
Perolehan kebutuhan pengguna sistem dari user serta pilihan solusi jenis sistem
informasi yang akan dikembangkan.
c.
Desain
Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi
representasi ke dalam bentuk software. Desain harus dapat mengimplementasikan
kebutuhan yang telah disebutkan pada tahap sebelumnya maka proses ini juga
harus didokumentasikan sebagai konfigurasi dari software.
d.
Coding Dan
Testing
Desain harus
diubah bentuknya menjadi bentuk yang dapat dimengerti oleh komputer, yaitu ke
dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan
implementasi dari tahap desain yang secara teknis akan dikerjakan oleh
programmer. Proses Coding ini harus dilakukan Testing untuk menguji
kesalahan-kesalahan program maupun fungsi dari sistem.
e.
Implementasi
Setelah semua fungsi-fungsi software harus di ujicoba agar software bebas dari
kesalahan, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah
didefinisikan sebelumnya. Maka proses selanjutnya adalah bagaimana sistem baru
akan diinstall dan dijalankan di perusahaan dengan pengoperasian yang dilakukan
oleh user.
f.
Pemeliharaan
Pemeliharaan suatu software sangat diperlukan, termasuk di dalamnya adalah
pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika
dijalankan mungkin saja masih ada kesalahan kecil yang tidak ditemukan
sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software
tersebut. Pengembangan diperlukan ketika adanya perubahan dari perusahaan
seperti ketika ada pergantian sistem operasi atau perangkat lainnya.
Alat Bantu ( Tool Pemodelan Sistem)
Alat Bantu, Tool Pemodelan Sistem diperlukan untuk metodologi pengembangan
system, pada metode waterfall tool yang tersedia diantaranya : Bagan Alir
System System Flow Chart), Diagram
Arus Data (Data Flow Diagram), Kamus
Data (data dictionary), Bagan Alir
Program (program flow chart), pseudocode,
Tabel Keputusan (decision table).
Alat bantu tersebut digunakan oleh analis system untuk berkomunikasi dengan
pemakai system dan teknisi system (pemrogram dan teknisi lainnya).
1.
Alat Bantu
Analisis
Analis
system perlu berkomunikasi dengan pengguna system. Pada tahap ini analis system
perlu menyampaikan hasil analisisnya kepada pengguna system. Hasil analisis
adalah pemahaman tentang system yang lama dan kebutuhan-kebutuhan informasi
yang dibutuhkan oleh pengguna system. Alat-alat komunikasi yang digunakan pada
tahap ini adalah : Bagan Alir System System
Flow Chart), Diagram Arus Data (Data
Flow Diagram), Kamus Data (data
dictionary).
Tool yang
tersedia untuk membuat alat-alat komunikasi tersebut diantaranya: Microsoft
Office Visio, DIA, Microsoft Word, Microsoft Excell, dan lain-lain.
2.
Alat Bantu
Desain
Pada tahap
desain, analis system banyak berkomunikasi dengan teknisi system yaitu dengan programmer, ahli basis data, ahli
telekomunikasi, dan sebagainya. Analis system membutuhkan alat komunikasi yang
efektif supaya teknisi system dapat memahami dan memudahkan hasil analisis
untuk diubah menjadi system secara fisik. Dalam hal ini desain system
membutuhkan alat bantu: Bagan Alir System System
Flow Chart), Diagram Arus Data (Data
Flow Diagram), Kamus Data (data
dictionary), ERD(Entitas Relation Diagram), Normalisasi data, dan lainnya.
Tool yang
mendukung diantaranya : Microsoft Office Visio, DIA, Microsoft Word, Microsoft
Excell, dan lain-lain.
3.
Alat Bantu
Coding / Programming
Pada tahap
ini dilakukan proses coding dengan menggunakan tool pseudocode yang membantu programmer dalam membangun system, dan
untuk tool yang digunakan dalam programming banyak yang tersedia seperti
Delphi, Visual Basic, PHP, Java, dan lainnya.
4.
Alat bantu Testing / Pengujian
Perangkat
lunak yang telah dikembangkan perlu diuji sebelum digunakan secara penuh
didalam system. Pengujian dikatakan berhasil jika mampu menemukan
kesalahan-kesalahan yang tersembunyi dalam perangkat lunak. Terdapat dua
pendekatan pengujian perangkat lunak, yaitu: white box testing, black box testing. White box testing dilakukan dengan menguji detail procedural, yaitu
mengamati jalur logical yang dibentuk oleh struktur pengendalian program
(perulangan dan percabangan), apabila mengungkap 100% kesalahan logika yang
mungkin muncul dan bersifat exhaustive
(melelahkan) karena terjadi ledakan kombinasi berbagai modul / program yang
besar dan komplek, dan dilakukan pada tahap awal pengujian. Metode yang
digunakan pada white box testing
jalur dasar (basis path) pengujian
kondisi, pengujian aliran data, pengujian perulangan.
Black box testing dilakukan pada persyaratan
fungsional dari perangkat lunak, dilakukan tidak diawal tahap pengujian,
mengungkap kesalahan-kesalahan pada fungsi yang salah satu hilang, antar muka,
akses ke basis data eksternal, kinerja, inisialisasi dan terminasi program.
Metode yang dapat digunakan untuk pengujian black
box testing Equivalence partitioning, Analisis nilai batas, Teknik grafik
sebab akibat.
Strategi
yang dilakukan dalam pengujian perangkat lunak meliputi proses berbentuk spiral
dan debugging. Proses pengujian
berbentuk spiral dengan urutan aktivitas pengujian unit, pengujian integrasi,
pengujian validasi, pengujian system. Debugging
merupakan konsekuensi dari pengujian perngkat lunak, debugging bersifat seni yang dipengaruhi oleh aspek psikologis
(intuisi dan keberuntungan), pendekatan yang dapat dilakukan dalam proses debugging meliputi: tanpa metode
tertentu (uji coba), backtracking (dimulai
dari tempat ditemukannya gejala kesalahan, kemudian dilakukan pelacakan kembali
ke program hingga diharapkan sumber kesalahan dapat ditemukan, cause elimination (eliminasi penyebab=
partisi biner / binary partitioning)
yaitu dibuat hipotesis penyebab yang kemudian diuji kebenarannya dengan data
yang berhubungan dengan kesalahan yang terjadi.
Tool yang
digunakan dalam pengujian perangkat lunak yaitu: pelacak program (program tracer), test case (pembangkit
kasus pengujian, memory dumps,
pemetaan referensi silang.
5.
Pemeliharaan
Perangkat Lunak
Pemeliharaan
perangkat lunak meliputi: korektif (pemeliharaan yang dilakaukan apabila
terjadi kerusakan atau kesalahan), adaptif atau produktif (pemeliharaan yang
dilakukan secara terus menerus melalui proses monitoring, penyempurnaan
(pemeliharaan sebagai hasil dari penemuan perawatan adaptif), preventif (pemeliharaan
yang dilakukan untuk pencegahan kerusakan).
d.
Kebutuhan
pada saat pembuatan system yang meliputi: sumber daya, waktu, biaya, resiko,
upgrade.
1.
Kebutuhan
sumber daya
Membutuhkan
jumlah sumber daya yang banyak, karena banyak proses yang dilakukan serta
banyak tenaga ahli yang dibutuhkan.
2.
Kebutuhan
waktu
Membutuhkan
waktu yang lama karena harus menyelesaikan tahap demi tahap dalam pengembangan.
3.
Kebutuhan
biaya
Kebutuhan
biaya besar karena menggunakan sumber daya yang banyak, waktu yang cukup lama,
dan tahapan proses yang panjang.
4.
Kebutuhan
resiko
Resiko dalam
menggunakan metode ini sangat besar, kemungkinan terjadinya kegagalan system
sehingga harus mengulang dari awal yang menyebabkan pembekakan biaya diluar
rencana anggaran. Kegagalan system sangat berpengaruh besar, kemungkinan system
tidak dapat digunakan atau harus diperbaiki dari awal.
5.
Kebutuhan
upgrade
Dalam
melakukan upgrade akan terjadi kesulitan karena harus menyesuikan banyak hal,
diantaranya kesesuaian dukungan hardware, software baik software program maupun
database, karena dimungkinkan pada saat system dibuat belum mengalami /
menggunakan adanya spesifikasi hardware maupun software yang baru sesuai yang
dibutuhkan saat ini. Pada metode ini proses upgrade tidak fleksibel, akan
mempengaruhi system secara keseluruhan.
e.
Kesimpulan
Penggunaan
metode waterfall dalam pengembangan
perangkat lunak dapat disimpulkan sebagai berikut :
1.
Keunggulan:
Ø Proses pengembangan sangat
terstruktur dan sistematik
Ø Melalui definisi kebutuhan, sehingga
gap atau kesenjangan yang terjadi antara kebutuhan dan sistem yang
dihasilkan dapat dikurangi.
Ø Menghasilkan petunjuk arah
pengembangan yang jelas bagi manajemen.
2.
Kelemahan:
Ø Tidak adaptif terhadap perubahan
yang dapat terjadi selama proses pengembangan (kaku atau rigid).
Ø Melelahkan karena membutuhkan waktu
pengembangan yang lama dan biaya yang tinggi
Ø Proyek yang sebenarnya jarang
mengikuti aliran sequential yang ditawarkan model ini.
Ø Iterasi (Pengulangan) selalu terjadi
dan menimbulkan masalah pada aplikasi yang dibentuk oleh model ini.
Ø Seringkali pada awalnya customer
sulit menentukan semua kebutuhan secara explisit.
Ø Klien harus sabar karena versi
program yang sedang jalan tidak akan tersedia sampai proyek pengembangan selesai