Seperti cuplikan gambar pada postingan ini, Waterfall diimajinasikan sebagai air terjun. “The Real” Air terjun. Jadi proses pengembangan aplikasi / program dengan menggunakan model ini adalah dari atas turun ke bawah dan prosesnya berurutan.
Model Waterfall adalah model paling tua yang pernah diperkenalkan. Model ini juga dikenal sebagai model yang linier berurutan. Mengapa berurutan dan linier? Seperti yang sudah Saya tulis pada paragraf sebelumnya, proses ini urut dari atas ke bawah. Model ini sangat sederhana, mudah dipahami, dan mudah juga digunakan. Kunci dari model ini adalah, setiap fase dalam model harus selesai terlebih dahulu sebelum dapat melanjutkan ke fase selanjutnya.
Seperti apakah desain dari model Waterfall ini? Perhatikan gambar di bawah ini.
Model waterfall di atas adalah model paling klasik dari sebuah SDLC yang ditulis oleh Pressman (2010). Terdapat lima tahapan dalam model ini yang juga berurutan dan sistematis. Lalu bagaimanakah penjelasan dari tahapan – tahapan tersebut? Berikut adalah penjelasannya
- Communication (Project initiation. Requirement Gathering)
Dalam tahapan ini, dilakukan kegiatan kegiatan seperti mengumpulkan data-data yang diperlukan, melakukan analisis terhadap masalah, yang digunakan untuk mendefinisikan fungsi maupun fitur dari sistem yang akan dibuat. Kunci keberhasilan dari tahapan ini adalah komunikasi yang baik dengan customer. - Planning (Estimating, Scheduling, Tracking)
Dalam tahapan ini dilakukan kegiatan seperti, menghitung waktu pengerjaan, menghitung sumber daya yang dibutuhkan, menghitung risiko yang mungkin akan timbul, membuat jadwal, dan checklist pengembangan sistem. Sehingga dari tahap ini, berapa lama sistem akan dikerjakan, siapa saja yang akan mengerjakan, checklist apa sajakah yang harus dipenuhi, menjadi kunci utama. - Modeling (Analysis, Design)
Tahapan paling krusial dari pengembangan sistem. Yakni mengubah apa yang diminta oleh customer menjadi desain aplikasi. Desain-desain aplikasi yang dibuat meliputi perancangan struktur data, arsitektur sistem, desain UI/UX, dan algoritma program dalam sistem. Tahapan ini menjadi guidance programmer untuk mengembangkan sistem. - Construction (Code, Test)
Pada tahap ini, programmer mengubah desain yang sudah ada menjadi dalam bentuk kode atau bahasa yang dapat dijalankan oleh mesin. Secara umum, setelah sebuah kode ditulis akan dilakukan pengujian hingga seluruh kode yang ditulis membentuk sebuah sistem. - Deployment (Delivery, Support, Feedback)
Tahap terakhir dari pengembangan sistem. Pada tahapan ini, sistem yang sudah selesai dibuat diserahkan kepada customer untuk dilakukan review dan evaluation. Customer akan memberikan masukan untuk dilakukan penyempurnaan atau perbaikan terhadap sistem dalam tahap pengembangan selanjutnya.
Berikutnya adalah model waterfall “extended” yang merupakan “perpanjangan” dari model waterfall klasik. Berikut adalah modelnya.
Model waterfall “extended” ini sebenarnya sama saja dengan model waterfall klasik. Hanya saja, pada model ini, tahapan – tahapan penting yang sebelumnya tergabung dalam suatu tahapan pada model klasik, “dikeluarkan”. Kemudian, bagaimanakah penjelasan dari model waterfall “extended” ini? Berikut penjelasannya.
- Requirement Gathering and Analysis
Semua kebutuhan dari sistem yang akan dikembangkan diungkap dalam fase ini dan didokumentasikan dalam dokumen spesifikasi kebutuhan. - System Design
Spesifikasi kebutuhan dari fase pertama dipelajari dalam fase ini dan desain sistem disiapkan. Desain sistem ini membantu dalam menentukan kebutuhan perangkat keras dan perangkat lunak dan membantu dalam menentukan arsitektur sistem secara keseluruhan. - Implementation
Dengan masukan dari desain sistem, sistem pertama kali dikembangkan dalam program – program kecil yang disebut unit yang akan terintegrasi pada fase berikutnya. Setiap unit dikembangkan dan diuji fungsinya, yang disebut sebagai Unit Testing. - Integration and Testing
Semua unit yang telah dikembangkan dalam fase implementasi diintegrasikan ke dalam sistem utuh. Setelah seluruh unit diintegrasikan ke dalam satu sistem sistem utuh, kemudian diuji untuk sisi fungsional dan non-fungsionalnya untuk mencari error dan bug. - Deployment of System
Setelah pengujian fungsional dan non-fungsional selesai dilakukan; produk diserahkan kepada pelanggan atau dirilis ke pasar. - Maintenance
Ketika ada beberapa masalah yang muncul di lingkungan klien, maka untuk memperbaikinya dilakukan rilis patch. Patch ini juga untuk berfungsi untuk meningkatkan kualitas produk.
Setelah mengetahui kedua model dari waterfall tersebut. Kini kita akan melihat kelebihan dan kekurangan model ini.
Kelebihan Model Waterfall
Kelebihan – kelebihan dari model waterfall antara lain sebagai berikut.
- Sederhana, sehingga mudah dimengerti dan digunakan oleh siapa saja
- Mudah dikelola karena sifat model yang kaku. Setiap fase memiliki hasil yang spesifik dan sebuah proses review.
- Fase diproses dan diselesaikan satu per satu (tidak ada overlap antar fase).
- Dapat bekerja dengan baik untuk proyek yang kecil di mana persyaratan dapat mudah dipahami dengan baik.
- Tahapan – tahapan yang ada sangat jelas.
- Milestones dapat dipahami dengan baik.
- Mudah dalam mengatur tugas.
- Proses dan hasilnya dapat didokumentasikan dengan baik.
Kekurangan Model Waterfall
Kekurangan – kekurangan dari model waterfall antara lain sebagai berikut.
- Tidak ada sistem yang dapat dijalankan sampai satu siklus diselesaikan.
- Jumlah risiko dan ketidakpastian tinggi.
- Bukan model yang baik untuk proyek yang kompleks dan berorientasi objek.
- Model yang buruk untuk proyek yang panjang dan berkelanjutan.
- Tidak cocok untuk proyek-proyek yang mana risiko perubahan persyaratannya berada pada level sedang hingga tinggi. Jadi, risiko dan ketidakpastian tinggi dengan modelini.
- Sulit untuk mengukur kemajuan dalam antar fase.
- Tidak dapat mengakomodasi perubahan kebutuhan dalam satu siklus.
- Menyesuaikan ruang lingkup selama satu siklus dapat mengakhiri proyek.
- Integrasi antar unit dilakukan sebagai “ledakan besar” pada akhirnya, yang tidak memungkinkan mengidentifikasi hambatan teknologi atau bisnis sejak awal.
Demikianlah pembahasan singkat mengenai SDLC model klasik: Waterfall. Semoga artikel ini bermanfaat untuk kita semua. Apabila Anda memiliki pertanyaan, jangan sungkan meninggalkannya di kolom komentar. Jika Anda ingin mencuplik artikel ini, jangan lupa juga sertakan URL nya.
Terima Kasih …. ^_^
Referensi
- Tutorials Point. SDLC – Waterfall Model. https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm. Diakses pada 6 Februari 2020 dengan peramban Chrome
- Sharma, Lakshay. 2016. WaterFall Model. ToolsQA. https://www.toolsqa.com/software-testing/waterfall-model/ . Diakses pada 6 Februari 2020 dengan peramban Chrome
- S.Pressman, R. (2010). Software Engineering A Practitioner’s Approach 7th Edition. McGraw-Hill Higher Education.
1 thought on “Belajar SDLC: Mengenal Waterfall, Kelebihan & Kekurangannya”