Model Waterfall adalah pendekatan SDLC paling awal yang digunakan dalam proses pengembangan perangkat lunak. Model waterfall pertama kali diperkenalkan oleh Winston W. Royce sekitar tahun 1970. Model ini sangat sederhana sehingga mudah untuk dipahami dan digunakan dalam proses pengembangan perangkat lunak. Meskipun begitu, waterfall merupakan metodologi pengembangan perangkat lunak yang tidak bekerja secara baik. Dokumen model waterfall yang dibuat oleh Winston memiliki dua kategori, yang pertama menjelaskan mengenai model itu sendiri, dan yang kedua menggambarkan masalah utama yang melekat dalam model, atau alasan untuk tidak menggunakan model waterfall. Mungkin tampak aneh bahwa kemudian model waterfall menjadi salah satu metodologi pemrograman yang paling populer setelah publikasi dan tetap seperti itu selama bertahun-tahun.
Waterfall termasuk salah satu jenis model pengembangan siklus hidup klasik (classic life cycle), di mana menekankan fase yang berurutan dan sistematis. Model pengembangan ini dapat dianalogikan seperti air terjun, dimana setiap tahap dikerjakan secara berurutan mulai dari atas hingga bawah. Model waterfall menggambarkan proses pengembangan perangkat lunak dalam aliran sekuensial linier “Linear Sequential Model”. Ini berarti bahwa setiap tahap dalam proses pengembangan hanya akan dimulai jika tahap sebelumnya telah selesai. Proses juga tidak dapat kembali atau mengulang ke tahap sebelumnya.
Requirement Analysis
Requirement merupakan proses dari analisa atau pengumpulan data - data yang berkaitan dengan sistem yang akan dibuat. Pada tahap ini, pengembang harus mengetahui dan memahami perangkat lunak yang diharapkan oleh pengguna.
Metode pengumpulan data dapat diperoleh melalui diskusi, observasi, survei, dan wawancara. Kemudian data yang didapat diolah dan dianalisis sehingga memperoleh informasi yang lengkap mengenai spesifikasi kebutuhan pengguna terhadap perangkat lunak yang akan dikembangkan.
System and Software Design
Pada tahap ini, pengembang menganalisis informasi mengenai spesifikasi kebutuhan pengguna untuk menyiapkan kebutuhan perangkat keras (hardware) dalam pembuatan arsitektur sistem perangkat lunak yang akan dibuat secara keseluruhan. Perancangan desain dilakukan dengan tujuan untuk memberikan gambaran mengenai apa saja yang harus dikerjakan.
Implementation
Pada tahap ini, pembuatan perangkat lunak dibagi menjadi program kecil (unit) yang dilakukan oleh beberapa programmer sekaligus dengan menggunakan kode-kode bahasa pemrograman tertentu tanpa mengganggu sistem lain secara keseluruhan. Setiap program kecil akan dilakukan pengujian dan pemeriksaan terhadap fungsionalitas, apakah sudah memenuhi kriteria yang diinginkan atau belum. Proses penulisan sinkode (coding) aplikasi mengacu pada dokumen-dokumen yang telah dibuat pada tahap sebelumnya.
Integration & Testing
Pada tahap ini, seluruh program kecil (unit) yang dikembangkan dan telah diuji pada tahap sebelumnya akan diintegrasikan dalam sistem secara keseluruhan. Selanjutnya dilakukan verifikasi dan pengujian sistem apakah perangkat lunak telah sesuai dengan spesifikasi kebutuhan pengguna atau terdapat error dalam sistem sebelum kemudian diperbaiki ulang.
Operation & Maintenance
Tahap ini merupakan tahap akhir dari metode waterfall. Perangkat lunak yang telah dibuat akan dioperasikan pengguna dan dilakukan pemeliharaan. Pemeliharaan adalah proses memperbaiki aplikasi dari setiap error atau bug, peningkatan kinerja aplikasi, penambahan program kecil (unit) baru untuk pengembangan aplikasi, dan penyesuaian sistem sesuai dengan kebutuhan pengguna.
Pengembangan perangkat lunak menggunakan model waterfall memiliki beberapa kelebihan, diantaranya adalah sebagai berikut:
Workflow yang jelas Model waterfall menyediakan serangkaian alur kerja sistem yang terdefinisi dengan baik dan juga dapat diskalakan. Setiap tim memiliki tugas dan tanggung jawab sesuai dengan bidang keahliannya masing-masing. Di samping itu, kita juga dapat bekerja sesuai dengan jadwal yang diberikan.
Hasil dokumentasi yang baik Waterfall merupakan pendekatan yang sangat metodis, di mana semua informasi dicatat dengan benar dan didistribusikan dengan cepat dan akurat kepada setiap anggota tim. Dokumentasi ini akan memudahkan setiap tim untuk mengikuti seluruh instruksi yang ada dalam dokumentasi tersebut.
Dapat menghemat biaya Keuntungan selanjutnya tentunya dari segi sumber daya dan biaya yang dikeluarkan oleh perusahaan yang menggunakan model ini. Dalam hal ini, klien tidak boleh mengganggu pekerjaan tim pengembang aplikasi. Oleh karena itu, biayanya lebih murah. Berbeda dengan metodologi Agile, klien dapat memberikan pendapat dan umpan balik kepada tim pengembang untuk mengubah atau menambahkan beberapa fungsi. Jadi perusahaan akan menghabiskan lebih sumber daya dan biaya daripada menggunakan waterfall..
Digunakan untuk pengembangan software berskala besar Metode ini dianggap sangat cocok untuk melakukan pengembangan aplikasi skala besar yang membutuhkan banyak orang dan alur kerja yang kompleks. Namun, model ini juga dapat digunakan untuk proyek kecil dan menengah. Tentunya akan disesuaikan dengan kondisi dan kebutuhan masing-masing proyek.
Pengembangan perangkat lunak menggunakan model waterfall memiliki beberapa kelemahan, diantaranya adalah sebagai berikut:
Membutuhkan tim yang solid Menggunakan model waterfall membutuhkan kerjasama dan koordinasi yang baik dari masing-masing tim. Jika salah satu tim tidak dapat melaksanakan tugas dengan semestinya, maka akan berdampak terhadap alur kerja tim yang lain.
Masih kurangnya fleksibilitas Karena seluruh tim dituntut untuk bekerja sesuai dengan arahan dan petunjuk yang telah ditetapkan di awal proyek, klien tidak dapat mengeluarkan pendapat dan feedback kepada tim pengembang. Klien hanya dapat memberikan masukan pada tahap awal pengembangan perangkat lunak.
Tidak dapat melihat gambaran sistem dengan jelas Model waterfall tidak dapat memberikan gambaran yang jelas kepada klien, berbeda dengan model agile yang dapat terlihat dengan jelas meskipun masih dalam tahap proses pengembangan.
Membutuhkan waktu yang lebih lama Proses pengembangan menggunakan model waterfall cenderung lebih lama jika dibandingkan dengan model SDLC lainnya. Hal ini karena setiap fase yang dijalankan, dilakukan secara bertahap, sehingga menambah waktu yang dibutuhkan. Misalnya, tim pengembang tidak dapat menyelesaikan proses pengkodean jika tim desainer belum menyelesaikan desain aplikasi.
Meskipun terlihat sederhana, model waterfall sangat sulit dalam praktiknya. Tidak dapat kembali ke fase sebelumnya membuat pendekatan waterfall tidak praktis di banyak skenario dalam dunia nyata. Karakteristik lain dari Waterfall adalah skala waktu cenderung lebih besar dibanding model lain seperti AGILE dan sebagainya. Setiap fase waterfall dapat berlangsung selama berbulan-bulan (berbeda dengan kebanyakan proyek AGILE yang hanya berhari-hari atau mungkin berminggu-minggu).
Efek gabungan dari skala waktu yang lama dan tidak dapat kembali, membuat Waterfall umumnya tidak responsif terhadap perubahan kebutuhan. Ini berarti akan meningkatkan kemungkinan untuk menghasilkan produk yang meleset dari sasaran. Namun jika kita memiliki situasi dimana tingkat ketidakpastian relatif rendah, maka Waterfall kemungkinan dapat berfungsi sebaik pendekatan lain, tetapi ini adalah situasi yang jarang terjadi.
Terdapat berbagai macam model dan pendekatan dalam proses pengembangan perangkat lunak, dimana setiap model tersebut memiliki kelebihan dan kekurangannya masing-masing. Terlalu banyak ketidakpastian, sehingga pilihan terbaik adalah menyesuaikan metodologi dengan sifat masalah daripada memaksakan semua masalah ke salah satu dari model tersebut. Singkatnya, kita harus memperhatikan kondisi dan kebutuhan dari masing-masing proyek sebelum memilih salah satu metodologi yang akan digunakan dalam pengembangan.
Sumber :
Image. www.istockphoto.com
Wahid, A. A. (2020). Analisis Metode Waterfall Untuk Pengembangan Sistem Informasi. J. Ilmu-ilmu Inform. dan Manaj. STMIK, no. November, 1-5.
Fahrurrozi, I., & Azhari, S. N. (2012). Proses Pemodelan Software dengan metode waterfall dan extreme programming: studi perbandingan. Jurnal Online STMIK EL Rahma, 1-10.
Bsi.today. 22 Juli 2022. Model Waterfall. BSI Today. Diakses pada 12 September 2022, dari https://bsi.today/metode-waterfall/.
previous post
Jadi Mahasiswa Aktif : Tips Sukses di Perkuliahan