Dokumen tersebut membahas beberapa metode pengembangan perangkat lunak, yaitu waterfall, prototype, RAD, spiral, agile, dan scrum. Setiap metode memiliki kelebihan dan kekurangan tertentu, seperti waterfall yang sistematis tetapi memakan waktu lama, sedangkan scrum dan agile lebih fleksibel namun sulit memprediksi waktu pengembangannya.
2. A. Kualitas Perangkat Lunak dan Source Code
1. Pengembangan Perangkat Lunak
Proses pengembangan perangkat lunak menurut Dwi Maryono dalam Cakap Mengaplikasikan Informatika Kelas XII SMA dan MA,
adalah proses membagi pekerjaan pengembangan perangkat lunak ke dalam fase yang berbeda. Tujuannya meningkatkan desain,
manajemen produk, dan manajemen proyek. Sedikitnya ada enam metode yang sering digunakan untuk mengembangkan perangkat
lunak.
a. Model Air Terjun Klasik (Waterfall)
Metode ini pertama kali dikembangkan oleh Winston W. Royce. Model ini sangat sederhana, tetapi cukup baik dan ideal untuk
pengembangan perangkat lunak. Terdapat lima tahapan proses, yaitu communication, planning, modelling, construction, dan
deployment
Communication merupakan tahapan yang pemilik proyek menyampaikan kebutuhan dan permasalahannya kepada
pengembang. Proses perancangan (planning) dimulai dengan merumuskan estimasi kerja, kebutuhan sumber daya, serta perencanaan
alur kerja dilanjutkan dengan tahap perancangan struktur data, arsitektur, tampilan, dan algoritma perangkat lunak.
Pada tahap construction mencakup juga tahapan uji coba pengoperasian perangkat lunak untuk mengetahui kekurangannya.
Kelebihan metode waterfall yaitu melibatkan berbagai proses yang sistematis dan komprehensif. Namun, proses tersebut memakan
waktu yang lebih lama. Kekurangan lainnya yaitu sistem dalam metode waterfall merupakan proses yang baku sehingga pengembang
sulit melakukan improvisasi. Itulah alasan metode ini dianggap kurang efektif dan sering hanya dipakai dalam pengembangan
perangkat lunak atau sistem berskala besar.
3. B. Prototype
Prototype merupakan sebuah metode yang pengembang dan clien dapat saling membantu dalam
merancang suatu sistem. Pengembang tidak hanya berperan di tahap awal saja, tetapi akan berlanjut
hingga pada tahap akhir dan sistem dapat berjalan dengan baik sesuai dengan perencanaan. Terdapat
beberapa tahap dalam model prototype sebagai berikut:
1) Mengumpulkan Kebutuhan
2) Membangun Prototype
3) Evaluasi Prototype
4) Pengkodean Sistem
5) Pengujian Sistem
6) Evaluasi Sistem
7) Penggunaan Sistem
Berikut kelebihan dan kekurangan metode atau model prototype:
Kelebihan:
1) Terjalinnya komunikasi yang baik antara pelanggan dan pengembang.
2) Memudahkan pengembang dalam menentukan kebutuhan pelanggan.
4. C. Model Rapid Application Development
(RAD)
Rapid Application Development (RAD) merupakan metode yang menggunakan pendekatan iterative dan
incremental, tetapi lebih menitikberatkan pada tenggat waktu dan efisiensi biaya yang sesuai dengan kebutuhan.
Tahap awal metode RAD yaitu melakukan identifikasi tujuan yang dilanjutkan dengan komunikasi dan
perancangan, dimana seluruh pihak terlibat aktif dalam setiap perumusannya. Tahap kedua yaitu mendesain sistem
atau perangkat lunak sesuai kebutuhan yang juga melibatkan kedua belah pihak. Pelanggan atau pengguna turut
dalam uji coba perangkat lunak. Apabila terdapat kesalahan atau mengalami eror, perbaikan langsung diterapkan.
Saat apalikasi telah sesuai dengan desain perangkat lunak, telah melalui berbagai perbaikan, barulah proses kerja
menginjak pada tahap terakhir, yaitu implementasi. Pada tahap ini desain perangkat lunak mulai diterjemahkan
dalam Bahasa mesin dan bisa digunakan.
Kelebihan:
1) Adanya prototype.
2) Proses pengembangan lebih cepat.
3) Pengurangan penulisan kode yang kompleks karena keberadan reuse code.
Kekurangan:
1) Kurang relevan untuk proyek skala besar.
2) Diperlukan komitmen yang kuat antara pengembang dan pengguna.
3) Membutuhkan sumber daya yang besar untuk proyek yang besar.
5. D. Spiral
Metode ini pertama kali diperkenalkan oleh Barry Boehm. Menurut Barry Boehm
model ini sangat berguna untuk mlakukan pembangunan proyek-proyek besar dan
prosesnya dilakukan dengan memperhatikan risiko proyek sehingga pada akhirnya
akan menghasilkan mode proses yang tepat sesuai kebutuhan pengguna.
Model spiral merupakan gabungan dari model prototype dan model waterfall.
Kegunaan dari model ini untuk melakukan perubahan, penambahan, dan
pengembangan perangkat lunak dengan memaksimalkan aspel kecepatan dan
ketepatan berdasarkan keinginan dan kebutuhan penggunanya.
Metode spiral menerapkan alur kerja yang kompleks, panjang, dan memakan waktu
lama. Metode ini tidak cocok untuk proyek kecil-kecilan, apalagi dengan biaya
rendah. Sebaliknya, proyek bersakal besar dapat dikerjakan dengan mudah
menggunakan metode ini.
Selain itu, metode spiral juga kurang tepat jika dilakukan oleh pengembang
perangkat lunak yang belum berpengalaman. Prosesnya bisa menjadi kompleks bagi
pemula yang masih memerlukan banyak latihan.
6. E. Agile
Agile merupakan metode pengembangan perangkat lunak jangka pendek yang
didasarkan pada pengembangan berulang, dimana persyaratan dan solusinya
berkembang melalui kolaborasi anatar tim lintas fungsi dengan pengaturan
sendiri. Agile memiliki kelebihan, seperti hemat biaya, menambah produktivitas
tim, mengingkatkan kualitas perangkat lunak, dan menambah tingkat kepuasan
konsumen. Adapun kekurangannya, memunculkan permasalahan dari arsitektur
ataupun desain dan sulitnya memprediksi analisis, desain, dan pengembangan.
7. F. Scrum
Scrum merupakan metode yang menggunakan teknik pendekatan agile. Metode ini
menggunakan kerangka kerja dimana orang dapat mengatasi masalah adaptif yang
kompleks, tetapi juga secara produktif dan kreatif memberikan produk dengan nilai
sertinggi mungkin.
Kerangka kerja scrum membagi proses pengembangan menjadi target-target kecil
yang dinyatakan dalam satuan sprint. Sprint harus selesai dalam waktu singkat untuk
tujuan akhir yang lebih besar.
Proses pengembangan dimulai dengan merumuskan target sprint prioritas dari
setiap tim, dilanjutkan dengan pengidentifikasian pekerjaan spesifik serta proses
pengerjaan sesuai target sprint yang telah ditentukan. Sementara itu, akan dilakukan
evaluasi secara berkala pada setiap sprint selama masa penggarapan.
Setiap sprint berakhir, tim yang terlibat selalu menyampaikan hasil pekejaannya.
Tahapan ini juga mencakup evaluasi menyeluruh dan perumusan ide-ide baru yang
mungkin bisa diterapkan pada sprint berikutnya.