Anggota Kelompok :
1. 2009106009 Hendi
2. 2009106010 Muhammad Akmal Rifad
3. 2009106011 Ega Sulfika
4. 2009106012 Fathia Nuq Qamarina
Jadi, untuk setiap tahapan tidak boleh dikerjakan secara bersamaan. Sehingga, perbedaan
dari metode waterfall dengan metode agile terletak pada tahapan SDLC -nya. Model ini
juga termasuk ke dalam pengembangan perangkat lunak yang terbilang kurang iteratif
dan fleksibel. Karena, proses yang mengarah pada satu arah saja seperti air terjun.
Pada tahun 1983, dipresentasikan kembali oleh Benington dan menjelaskan tentang fase
– fase dalam proses pengembangannya. Dan pada tahun 1985, Departemen Pertahanan
Amerika Serikat juga menggunakan metode ini dengan beberapa tahapan yang
digunakan, terdiri dari 6 fase, yaitu: Preliminary design, Detailed design, Coding and
unit testing, Integration, dan Testing.
1) Requirement
Tahapan metode waterfall yang pertama adalah mempersiapkan dan menganalisa
kebutuhan dari software yang akan dikerjakan. Informasi dan insight yang diperoleh
dapat berupa dari hasil wawancara, survei, studi literatur, observasi, hingga diskusi.
Biasanya di dalam sebuah perusahaan, tim analis akan menggali informasi sebanyak
– banyaknya dari klien atau user yang menginginkan produk beserta dengan
kebutuhan sistemnya. Selain itu, juga dapat mengetahui setiap batasan dari perangkat
lunak yang akan dibuat.
2) Design
Tahap yang selanjutnya adalah pembuatan desain aplikasi sebelum masuk pada
proses coding. Tujuan dari tahap ini, supaya mempunyai gambaran jelas mengenai
tampilan dan antarmuka software yang kemudian akan dieksekusi oleh tim
programmer.
Untuk proses ini, akan berfokus pada pembangunan struktur data, arsitektur software,
perancangan interface, hingga perancangan fungsi internal dan eksternal dari setiap
algoritma prosedural. Tim yang mengerjakan tahap ini, biasanya lebih banyak
menggunakan UI/UX Designer, atau orang yang memiliki kemampuan dalam bidang
desain grafis atau Web Designer.
3) Implementation
Tahapan metode waterfall yang berikutnya adalah implementasi kode program
dengan menggunakan berbagai tools dan bahasa pemrograman sesuai dengan
kebutuhan tim dan perusahaan. Jadi, pada tahap implementasi ini lebih berfokus pada
hal teknis, dimana hasil dari desain perangkat lunak akan diterjemahkan ke dalam
bahasa pemrograman melalui tim programmer atau developer.
Di dalam tahap pengembangan, biasanya dibagi lagi menjadi 3 tim yang memiliki
tugas yang berbeda. Pertama ada front end (untuk client side), backend (untuk server
side), dan full stack (gabungan antara front end dan backend). Selain itu, pada tahap
ini juga dilakukan pemeriksaan lebih dalam terkait dengan modul yang sudah dibuat,
apakah berjalan dengan semestinya atau tidak.
Kami juga akan memberikan sedikit contoh fase SDLC model waterfall, menurut para
ahli:
Berikut ini merupakan beberapa kelebihan yang dimiliki oleh metode waterfall, antara
lain:
Kesimpulan
Metode waterfall adalah model pengembangan perangkat lunak yang dilakukan
secara berurutan dan sangat sistematis. Untuk proses pengerjaannya sendiri, dapat
dilakukan dengan berbagai tim proyek yang dibagi sesuai dengan keahlian masing –
masing. Setidaknya, terdapat 5 fase dalam tahapan metode waterfall, yaitu analisa
kebutuhan, desain, implementasi, integrasi & pengujian, serta operasi dan
pemeliharaan.
2. Model Rapid Application Development
Dengan begitu, aplikasi yang dibuat bisa dikembangkan dan diperbaiki dengan cepat.
Sangat cocok dengan kebutuhan dan perkembangan dunia digital yang super cepat.
Ada empat tahapan RAD yang perlu dilalui developer ketika mengembangkan aplikasi.
Keempat tahapan itu adalah:
Setelah mendapatkan kebutuhan yang jelas, barulah tim menentukan hal-hal yang
lebih detail. Misalkan seperti tujuan, timeline, dan budget yang diperlukan.
Semua anggota tim juga perlu memikirkan apa saja masalah yang mungkin muncul
dalam proses pengembangan aplikasi. Tak lupa, mereka juga memikirkan strategi
yang tepat untuk menyelesaikannya.
Intinya, tahap awal ini berguna untuk memberikan gambaran luas pada proyek yang
ingin dikerjakan. Dalam prosesnya, tim bisa saja beralih ke hal-hal yang lebih
spesifik.
2) Membuat prototype
Hal yang selanjutnya dilakukan adalah membuat prototype.
Developer secepat mungkin akan membuat prototype dari aplikasi yang diinginkan.
Lengkap dengan fitur dan fungsi yang berbeda-beda.
Tujuannya, sekadar untuk mengecek apakah prototype yang dibuat sudah sesuai
dengan kebutuhan klien.
Meski begitu, tahap ini bisa saja dilakukan berulang-ulang. Kadang juga melibatkan
user untuk testing dan memberikan feedback.
Proses ini memungkinkan tim mempelajari error yang mungkin muncul ke depannya.
Ini berguna untuk mengurangi error dan debugging.
Lewat tahapan ini, tim developer memiliki modal untuk membuat aplikasi yang
mudah dipakai, stabil, tidak sering error, dan desainnya pun oke.
Jadi, bisa dibilang tahap RAD inilah yang cukup intens. Developer terus-menerus
melakukan coding aplikasi, melakukan testing sistem, dan integrasi dengan bagian-
bagian lainnya.
Karena itulah, developer menggunakan tools dan framework yang mendukung RAD
agar cepat.
Apalagi proses ini terus diulang sambil terus mempertimbangkan feedback dari klien.
Baik itu soal fitur, fungsi, interface, sampai keseluruhan aspek dari produk yang
dibuat.
Kalau pun tidak, proses ini kemungkinan akan terus diulang. Pun, kalau apes-
apesnya aplikasi tidak tidak menjawab kebutuhan, developer akan kembali ke proses
prototyping.
Kelebihan RAD
1) Kebutuhan aplikasi bisa berubah sewaktu-waktu.
2) Aplikasi dikembangkan berdasarkan kebutuhan dan keinginan user.
3) Memperkecil kemungkinan error dan hal buruk lainnya.
4) Waktu pengembangan aplikasi bisa lebih cepat dan efektif.
Kekurangan RAD
1) Membutuhkan tim dengan skill teknis yang mumpuni.
2) Memerlukan kolaborasi tim yang kuat.
3) Hanya cocok untuk proyek yang waktunya singkat.
4) Hanya cocok digunakan untuk mengembangkan aplikasi secara modular (fokus ke
suatu fitur untuk dijadikan module terpisah).
3. Model Prototype
Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang
secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-
komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan
konstruksi aktual dilakukan (Howard, 1997).
Beberapa model prototype adalah sebagai berikut:
Reusable prototype : Prototype yang akan ditransformasikan menjadi produk
final.
Throwaway prototype : Prototype yang akan dibuang begitu selesai menjalankan
maksudnya.
Input/output prototype: Prototype yang terbatas pada antar muka pengguna (user
interface).
Processing prototype : Prototype yang meliputi perawatan file dasar dan proses-
proses transaksi
System prototype : Prototype yang berupa model lengkap dari perangkat
lunak.
1) Incremental
More Risky Incremental Model adalah suatu solusi untuk mengantisipasi kondisi
yang tidak diinginkan saat mengimplentasikan incremental model.
More Risk Incremental Model menerapkan sistem kerja parallel dimana tahap awal
yaitu membuat daftar kebutuhan (requirement) user kemudian dianalisa.
Setelah spesifikasi pertama telah selesai, tim design akan membuat design untuk
modul pertama. Pada saat itu juga, tim spesifikasi akan membuat spesifikasi untuk
modul kedua dan jika sudah selesai, maka tim design akan membuat design untuk
modul ke dua, dan seterusnya. Sehingga tidak harus menunggu modul pertama
selesai hingga dikirim ke user, baru lanjut ke modul kedua.
Model spiral (spiral model) adalah model proses software yang evolusioner yang
merangkai sifat iteratif dari prototipe dengan cara kontrol dan aspek sistematis dari
model sekuensial linier. Model ini berpotensi untuk pengembangan versi
pertambahan software secara cepat. Di dalam model spiral, software dikembangkan
di dalam suatu deretan pertambahan. Selama awal iterasi, rilis inkremental bisa
merupakan sebuah model atau prototipe kertas. Selama iterasi berikutnya, sedikit
demi sedikit dihasilkan versi sistem rekayasa yang lebih lengkap.
Model spiral dibagi menjadi sejumlah aktifitas kerangka kerja, disebut juga wilayah
tugas, di antara tiga sampai enam wilayah tugas.
Dalam pengembangan sistem informasi berbasis web, model ini digunakan untuk
menyelesaikan sistem secara global terlebih dahulu, kemudian untuk feature dari
sistem akan dikembangkan kemudian. Dengan ini mempercepat dalam
pengimplementasian project dan hal ini cocok digunakan dalam sistem informasi
Web.
Kelebihan
1) Sangat mempertimbangkan resiko kemungkinan munculnya kesalahan
sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala
besar.
2) Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik
dengan menggabungkan model waterfall ditambah dengan pengulangan-
pengulangan sehingga lebih realistis untuk mencerminkan keadaan sebenarnya.
3) Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan
dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.
Kekurangan
1) Waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup
panjang demikian juga biaya yang besar.
2) Sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko.
3) Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena
masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk
diterapkan.
4) Meyakinkan konsumen (khusunya dalam situasi kontrak) bahwa pendekatan
evolusioner bisa dikontrol.
Model Boehm sangat cocok diterapkan untuk pengembangan sistem dan perangkat
lunak skala besar di mana pengembang dan pemakai dapat lebih mudah memahami
kondisi pada setiap tahapan dan bereaksi terhadap kemungkinan terjadinya
kesalahan. Selain itu, diharapkan juga waktu dan dana yang tersedia cukup
memadai.