Anda di halaman 1dari 15

Kelompok 3

Anggota Kelompok :
1. 2009106009 Hendi
2. 2009106010 Muhammad Akmal Rifad
3. 2009106011 Ega Sulfika
4. 2009106012 Fathia Nuq Qamarina

Model Proses Perangkat Lunak


1. Model Waterfall

Pengertian Metode Waterfall


Metode waterfall adalah salah satu jenis model pengembangan aplikasi dan termasuk ke
dalam classic life cycle (siklus hidup klasik), yang mana menekankan pada fase yang
berurutan dan sistematis. Untuk model pengembangannya, dapat dianalogikan seperti air
terjun, dimana setiap tahap dikerjakan secara berurutan mulai dari atas hingga ke bawah.

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.

Sejarah Model Waterfall


Penggunaan metode waterfall pertama kali diperkenalkan oleh Herbert D. Benington di
Symposium on Advanced Programming Method for Digital Computers pada tanggal 29
Juni 1956. Presentasi tersebut menjelaskan tentang pengembangan perangkat lunak
untuk SAGE (Semi Automatic Ground Environment).

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.

Tahapan Model Waterfall


Setelah mengetahui apa itu metode waterfall, selanjutnya masuk pada pembahasan
mengenai tahapan metode waterfall.

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.

4) Integration & Testing


Tahap yang keempat, masuk dalam proses integrasi dan pengujian sistem. Pada tahap
ini, akan dilakukan penggabungan modul yang sudah dibuat pada tahap sebelumnya.
Setelah proses integrasi sistem telah selesai, berikutnya masuk pada pengujian
modul.
Yang bertujuan untuk mengetahui apakah perangkat lunak sudah sesuai dengan
desain, dan fungsionalitas dari aplikasi apakah berjalan dengan baik atau tidak. Jadi,
dengan adanya tahap pengujian, maka dapat mencegah terjadinya kesalahan, bug,
atau error pada program sebelum masuk pada tahap produksi. Orang yang
bertanggung jawab untuk melakukan testing adalah QA (Quality Assurance) dan QC
(Quality Control).

5) Operation & Maintenance


Tahapan metode waterfall yang terakhir adalah pengoperasian dan perbaikan dari
aplikasi. Setelah dilakukan pengujian sistem, maka akan masuk pada tahap produk
dan pemakaian perangkat lunak oleh pengguna (user). Untuk proses pemeliharaan,
memungkinkan pengembang untuk melakukan perbaikan terhadap kesalahan yang
ditemukan pada aplikasi setelah digunakan oleh user.
Jadi, pada intinya model waterfall ini dalam proses pemakaiannya mengikuti prinsip
dari air terjun. Dimana setiap pekerjaan akan dilakukan secara berurutan mulai dari
atas hingga ke bawah. Hal tersebut yang merupakan karakteristik dari SDLC ini.

Kami juga akan memberikan sedikit contoh fase SDLC model waterfall, menurut para
ahli:

A. Metode Waterfall Menurut Pressman 2015


 Communication
 Planning
 Modelling
 Construction
 Deployment

B. Metode Waterfall Menurut Sommerville 2011


 Requirement Definition
 System and Software Design
 Implementation and Unit Testing
 Integration and System Testing
 Operation and Maintenance
 Kelebihan Metode Waterfall

Berikut ini merupakan beberapa kelebihan yang dimiliki oleh metode waterfall, antara
lain:

1) Workflow yang jelas


Dengan menggunakan model SDLC jenis ini, mempunyai rangkaian alur kerja sistem
yang jelas dan terukur. Masing – masing tim, memiliki tugas dan tanggung jawab
sesuai dengan bidang keahliannya. Serta dapat menyelesaikan pekerjaan sesuai
dengan alokasi waktu yang telah ditentukan sebelumnya.

2) Hasil dokumentasi yang baik


Waterfall merupakan pendekatan yang sangat metodis, dimana setiap informasi akan
tercatat dengan baik dan terdistribusi kepada setiap anggota tim secara cepat dan
akurat. Dengan adanya dokumen, maka pekerjaan dari setiap tim akan menjadi lebih
mudah, serta mengikuti setiap arahan dari dokumen tersebut.

3) Dapat menghemat biaya


Kelebihan yang selanjutnya tentu saja dari segi resource dan biaya yang dikeluarkan
oleh suatu perusahaan dengan menggunakan model ini. Jadi, dalam hal ini klien tidak
dapat mencampuri urusan dari tim pengembang aplikasi. Sehingga pengeluaran biaya
menjadi lebih sedikit. Berbeda dengan metode Agile, yang mana klien dapat
memberikan masukan dan feedback kepada tim developer terkait dengan perubahan
atau penambahan beberapa fitur. Sehingga perusahaan akan mengeluarkan biaya
yang lebih besar daripada Waterfall.

4) Digunakan untuk pengembangan software berskala besar


Metode ini dinilai sangat cocok untuk menjalankan pembuatan aplikasi berskala
besar yang melibatkan banyak sumber daya manusia dan prosedur kerja yang
kompleks. Akan tetapi, Model ini juga dapat digunakan untuk proyek berskala kecil
dan menengah. Tentu saja disesuaikan dengan kondisi dan kebutuhan proyek yang
diambil.

Kelemahan dari Metode Waterfall


Berikut ini terdapat beberapa kelemahan dari metode waterfall, diantaranya adalah
sebagai berikut:

1) Membutuhkan tim yang solid


Untuk menggunakan model SDLC ini, tentu saja membutuhkan dukungan dari setiap
stakeholders yang ada. Setiap tim harus mempunyai kerja sama dan koordinasi yang
baik. Dikarenakan, apabila salah satu tim tidak dapat menjalankan tugas dengan
semestinya, maka akan sangat berpengaruh terhadap alur kerja tim yang lain.
2) Masih kurangnya fleksibilitas
Semua tim dituntut untuk bekerja sesuai dengan arahan dan petunjuk yang telah
ditetapkan di awal. Sehingga, klien tidak dapat mengeluarkan pendapat dan feedback
kepada tim pengembang. Klien hanya dapat memberikan masukan pada tahap awal
perancangan sistem perangkat lunak saja.
3) Tidak dapat melihat gambaran sistem dengan jelas
Dengan model waterfall, customer tidak dapat melihat gambaran sistem secara jelas.
Berbeda dengan model agile yang dapat terlihat dengan baik meskipun masih dalam
proses pengembangan.

4) Membutuhkan waktu yang lebih lama


Proses pengerjaan dengan menggunakan waterfall terbilang cukup lama jika
dibandingkan dengan model SDLC yang lain. Karena, tahapan pengerjaan aplikasi
yang dilakukan satu per satu membuat waktu yang dibutuhkan menjadi lebih lama.
Sebagai contoh, tim developer tidak akan bisa melakukan proses coding jika tim
designer belum menampilkan tampilan desain dari aplikasi.

 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

Metode ini menekankan pada proses pembuatan aplikasi berdasarkan pembuatan


prototype, iterasi, dan feedback yang berulang-ulang.

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:

 Menentukan kebutuhan proyek


 Membuat prototype
 Rapid construction dan feedback
 Implementasi dan finalisasi produk

1) Menentukan kebutuhan proyek


RAD dimulai dengan menentukan kebutuhan sebuah proyek (project requirements).
Pada tahap ini, tim perlu menentukan kebutuhan yang ingin dipenuhi dari sebuah
proyek.
Kebutuhan ini tidak perlu spesifik. Tapi, sifatnya benar-benar umum dan jumlahnya
bisa banyak. Baru dari situ, tim akan menentukan mana kebutuhan yang perlu
diprioritaskan.

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.

Jadi, prosesnya sangat ✨ fleksibel ✨.

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.

3) Proses pengembangan dan pengumpulan feedback


Setelah tahu aplikasi seperti apa yang ingin dibuat, developer mengubah prototype ke
bentuk aplikasi versi beta sampai dengan final.

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.

Nah, kalau prosesnya berjalan lancar, developer akan melanjutkan ke langkah


berikutnya. Yaitu, finalisasi produk atau implementasi.

Kalau pun tidak, proses ini kemungkinan akan terus diulang. Pun, kalau apes-
apesnya aplikasi tidak tidak menjawab kebutuhan, developer akan kembali ke proses
prototyping.

4) Implementasi dan finalisasi produk


Di sini, tugas utama developer adalah menambal kekurangan yang mungkin terjadi
ketika proses pengembangan aplikasi.

Tugas ini termasuk melakukan optimasi untuk stabilitas aplikasinya, memperbaiki


interface, hingga melakukan maintenance dan menyusun dokumentasi.

Pokoknya, langkah terakhir ini dilakukan sebelum menyerahkan aplikasi ke klien.

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.

Proses pada model prototyping adalah sebagai berikut:


 Pengumpulan kebutuhan
 Perancangan
 Evaluasi prototype

Keuntungan menggunakan prototype model, yaitu:


1) Prototyping adalah model aktif, tidak pasif, sehingga end user dapat melihat,
merasakan, dan mengalaminya.
2) Kesalahan yang terjadi dalam prototyping dapat dideteksi lebih dini.

Kekurangan menggunakan prototype model, yaitu:


1) Prototyping tidak menolak kebutuhan dari fase analisis sistem. Prototype hanya
dapat memecahkan masalah yang salah dan memberi kesempatan sebagai sistem
pengembangan konvensional.
2) Prototyping dapat mengurangi kreatifitas perancangan.
4. Model Evolusioner
Metode pengembangan perangkat lunak model evolusioner adalah model
iterative, ditandai dengan tingkah laku yang memungkinkan perekayasa perangkat lunak
mengembangkan versi perangkat lunak yang lebih lengkap sedikit demi sedikit.
Kebutuhan produk dan bisnis kadang-kadang berubah seiring dengan laju
perkembanganya. Dalam situasi tersebut maupun lainya, perekayasa perangkat lunak
membutuhkan sebuah model proses yang sudah dirancang secara eksplisit untuk
mengakomodasi perkembangan produk sepanjang waktu. Model ini bukan termasuk
metode pengembangan perangkat lunak klasik.

Model evolusioner meliputi:

1) Incremental

Incremental model adalah model pengembangan sistem pada software development


berdasarkan requirement software yang dipecah menjadi beberapa fungsi atau
bagian sehingga model pengenbangannya secara bertahap.
Dengan menggunakan incremental model dapat membantu kita untuk mengurangi
biaya sebelum mencapai level dari initial productivity dan mengakselerasi proses
dari pembuatan suatu fungsi sistem.

Incremental model menggambarkan suatu proses dimana mengutamakan perhatian


pada system requirement dan mengimplementasinya dalam team development.

Tahap – tahap pada incremental model, yaitu:

o Requirement: proses penentuan kebutuhan atau analisis kebutuhan.

o Specification: proses spesifikasi dimana menggunakan analisis kebutuhan


sebagai acuannya.

o Architecture Design: perancangan software yang terbuka agar dapat diterapkan


sistem pembangunan per-bagian pada tahapan selanjutnya.

o Code: melakukan koding.

o Test: melakukan testing dalam model ini.

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.

Beberapa Kelebihan Dari Mode Incremental atara lain:

1) Merupakan model dengan manajemen yang sederhana


2) Pengguna tidak perlu menunggu sampai seluruh sistem dikirim untuk
mengambil keuntungan dari sistem tersebut. Increment yang pertama sudah
memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak
dapat segera digunakan.
3) Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun
masalah masih dapat ditemukan pada beberapa increment. Karena layanan
dengan prioritas tertinggi diserahkan pertama dan increment berikutnya
diintegrasikan dengannya, sangatlah penting bahwa layanan sistem yang paling
penting mengalami pengujian yang ketat. Ini berarti bahwa pengguna akan
memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat lunak pada
increment sistem yang paling bawah.
4) Nilai penggunaan dapat ditentukan pada setiap increment sehingga
fungsionalitas sistem disediakan lebih awal.

Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem,


Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji
Kelemahannya adalah:

1) Kemungkinan tiap bagian tidak dapat diintegrasikan


2) Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu
mendapat perubahan selama proses rekayasa berlangsung
3) Harus Open Architecture
4) Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam
rencana spesifikasi masing-masing hasil increment.
5) Membutuhkan waktu yang relative lama untuk menghasilan product yang
lengkap
2) Spiral

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.

Tahap-tahap model tersebut dapat dijelaskan secara ringkas sebagai berikut.


1) Tahap Liason: pada tahap ini membangun komunikasi yang efektif di antara
pengembangan dan pelanggan.
2) Tahap Planning (perencanaan): pada tahap ini ditentukan sumber-sumber
informasi, batas waktu dan informasi-informasi yang dapat menjelaskan
proyek.
3) Tahap Analisis Resiko: mendefinisikan resiko, menentukan apa saja yang
menjadi resiko baik teknis maupun manajemen.
4) Tahap Rekayasa (engineering): pembuatan prototipe atau pembangunan satu
atau lebih representasi dari aplikasi tersebut
5) Tahap Konstruksi dan Pelepasan (release): pada tahap ini dilakukan
pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan
sokongan-sokongan tambahan untuk keberhasilan proyek.
6) Tahap Evaluasi: Pelanggan/pemakai/pengguna biasanya memberikan masukan
berdasarkan hasil yang didapat dari tahap engineering dan instalasi.

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.

Anda mungkin juga menyukai