MODEL
WATERFALL
A. Sejarah
Model Waterfall
Nama model ini sebenarnya adalah “Linear
Sequential Model”. Model ini sering disebut dengan “classic life cycle” atau
model waterfall. Model ini pertama kali yang diperkenalkan oleh Winston Royce
sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang
paling banyak dipakai didalam Software Engineering (SE). Model ini
melakukan pendekatan secara sistematis dan berurutan. Disebut dengan waterfall
karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya
dan berjalan berurutan.
B.
Pengertian
Waterfall
Waterfall atau air terjun adalah model yang
dikembangkan untuk pengembangan perangkat lunak, membuat perangkat
lunak. model berkembang secara sistematis dari satu tahap ke tahap lain
dalam mode seperti air terjun.
Model ini mengusulkan sebuah pendekatan kepada
pengembangan software yang sistematikdan sekuensial yang mulai dari tingkat
kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan
pemeliharaan. Model ini melingkupi aktivitas-aktivitas sebgai berikut :
rekayasa dan pemodelan sistem informasi, analisis kebutuhan, desain, koding,
mengujian dan pemeliharaan.
Model pengembangan ini bersifat linear dari
tahap awal pengembangan system yaitu tahap perencanaan sampai tahap akhir
pengembangan system yaitu tahap pemeliharaan. Tahapan berikutnya tidak akan
dilaksanakan sebelum tahapan sebelumnya selesai dilaksanakan dan tidak bisa
kembali atau mengulang ke tahap sebelumnya.
C.
Fase
Model Waterfall
Gambar tahapan atau fase yang paling umum
tentang model waterfall
Akan tetapi Roger S. Pressman memecah model ini
menjadi 6 tahapan meskipun secara garis besar sama dengan tahapan-tahapan model
waterfall pada umumnya. Berikut adalah Gambar dan penjelasan dari tahap-tahap
yang dilakukan di dalam model ini menurut Pressman:
1.
System / Information
Engineering and Modeling
Permodelan ini diawali dengan mencari kebutuhan
dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal
ini sangat penting, mengingat software harus dapat berinteraksi dengan
elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering
disebut dengan Project Definition.
2.
Software Requirements
Analysis
Proses pencarian kebutuhan di intensifkan dan
difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat,
maka para software engineer harus mengerti tentang domain informasi dari
software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2
aktivitas tersebut (pencarian kebutuhan sistem dan software) harus
didokumentasikan dan ditunjukkan kepada pelanggan.
3.
Design
Proses ini digunakan untuk mengubah
kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk “blueprint”
software sebelum coding dimulai. Desain harus dapat mengimplementasikan
kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas
sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi
dari software.
4.
Coding
Untuk dapat dimengerti oleh mesin, dalam hal ini
adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang
dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses
coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis
nantinya dikerjakan oleh programmer.
5.
Testing / Verification
Sesuatu yang dibuat haruslah diujicobakan.
Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan,
agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan
kebutuhan yang sudah didefinisikan sebelumnya.
6.
Maintenance
Pemeliharaan suatu software diperlukan, termasuk
di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya
hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang
tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada
software tersebut. Pengembangan diperlukan ketika adanya perubahan dari
eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau
perangkat lainnya.
D.
Karakteristik
Model Waterfall
Dalam model ini terdapat beberapa sifat-sifat
yang menonjol dan cenderung menjadi permasalahan pada model waterfall.
1. Ketika problem muncul, maka proses berhenti karena tidak
dapat menuju ke tahapan selanjutnya. Apabila terdapat kemungkinan problem
tersebut muncul akibat kesalahan dari tahapan sebelumnya, maka proses harus
membenahi tahapan sebelumnya agar problem ini tidak muncul.
2. Karena pendekatannya secara sequential,
maka setiap tahap harus menunggu hasil dari tahap sebelumnya. Hal itu tentu
membuang waktu yang cukup lama, artinya bagian lain tidak dapat mengerjakan hal
lain selain hanya menunggu hasil dari tahap sebelumnya.
E.
Kelebihan
Dan Kekurangan Model Waterfall
Selain karena pengaplikasian menggunakan model
ini mudah, kelebihan dari model ini adalah ketika semua kebutuhan sistem dapat
didefinisikan secara utuh, eksplisit, dan benar di awal project, maka SE dapat
berjalan dengan baik dan tanpa masalah. Meskipun seringkali kebutuhan sistem
tidak dapat didefinisikan seeksplisit yang diinginkan, tetapi paling tidak,
problem pada kebutuhan sistem di awal project lebih ekonomis dalam hal uang
(lebih murah), usaha, dan waktu yang terbuang lebih sedikit jika dibandingkan
problem yang muncul pada tahap-tahap selanjutnya.
Meskipun demikian, karena model ini melakukan
pendekatan secara urut / sequential, maka ketika suatu tahap terhambat, tahap
selanjutnya tidak dapat dikerjakan dengan baik dan itu menjadi salah satu
kekurangan dari model ini. Selain itu, ada beberapa kekurangan pengaplikasian
model ini, antara lain adalah sebagai berikut:
1. Ketika problem muncul, maka proses berhenti, karena tidak dapat
menuju ke tahapan selanjutnya. Bahkan jika kemungkinan problem tersebut muncul
akibat kesalahan dari tahapan sebelumnya, maka proses harus membenahi tahapan
sebelumnya agar problem ini tidak muncul. Hal-hal seperti ini yang dapat
membuang waktu pengerjaan SE.
2.
Karena pendekatannya
secara sequential, maka setiap tahap harus menunggu hasil dari tahap
sebelumnya. Hal itu tentu membuang waktu yang cukup lama, artinya bagian lain
tidak dapat mengerjakan hal lain selain hanya menunggu hasil dari tahap
sebelumnya. Oleh karena itu, seringkali model ini berlangsung lama
pengerjaannya.
3. Pada setiap tahap proses tentunya dipekerjakan sesuai
spesialisasinya masing-masing. Oleh karena itu, ketika tahap tersebut sudah
tidak dikerjakan, maka sumber dayanya juga tidak terpakai lagi. Oleh karena
itu, seringkali pada model proses ini dibutuhkan seseorang yang
“multi-skilled”, sehingga minimal dapat membantu pengerjaan untuk tahapan
berikutnya.
F.
Pengaplikasian Model Waterfall
Salah satu model tradisional dan mudah yang
tahapannya mengalir satu arah seperti air terjun adalah Waterfall Model atau Linear
Sequential Model. Pertanyaannya, kapan sebaiknya model tersebut digunakan?
Teori-teori lama menyimpulkan ada beberapa hal, yaitu:
1. Ketika semua persyaratan sudah dipahami dengan
baik di awal pengembangan.
2. Definisi produk stabil dan tidak ada perubahan
saat pengembangan untuk alasan apapun seperti perubahan eksternal, perubahan
tujuan, perubahan anggaran atau perubahan teknologi. Untuk itu, teknologi yang
digunakan pun harus sudah dipahami dengan baik.
3. Menghasilkan produk baru, atau versi baru dari
produk yang sudah ada. Sebenarnya, jika menghasilkan versi baru maka sudah
masuk incremental
development, yang setiap tahapnya sama
dengan Waterfall kemudian diulang-ulang.
4. Porting produk yang sudah ada ke dalam platform baru.
Dengan demikian,
Waterfall dianggap pendekatan yang lebih cocok digunakan untuk proyek
pembuatan sistem baru.
G.
Tahap Pengembangan Model Waterfall
1. Analisis dan definisi persyaratan
Pelayanan, batasan, dan tujuan sistem ditentukan
melalui konsultasi dengan user.
2. Perancangan sistem dan perangkat lunak
Kegiatan ini menentukan arsitektur sistem secara
keseluruhan
3. Implementasi dan pengujian unit
Perancangan perangkat lunak direalisasikan
sebagai serangkaian program
4.
Integrasi dan pengujian
sistem
Unit program diintegrasikan atau diuji sebagai
sistem yang lengkap untuk menjamin bahwa persyaratan sitem telah terpenuhi
5.
Operasi dan pemeliharaan
Merupakan fase siklus yang paling lama. Sistem
diinstall dan dipakai. Perbaikan mencakup koreksi dari berbagai error,
perbaikan dan implementasi unit sistem dan pelayanan sistem.
ConversionConversion EmoticonEmoticon