Anda di halaman 1dari 33

MODEL

PROSES
(LANJUTAN)
REKAYASA
PERANGKAT
LUNAK

RPL-3
Ridwan Andi Kambau
SEBELUMNYA

Lingkup RPL
• Metodologi
“Structured Design”
• Waterfall Model
• Parallel Development
BERIKUT INI

RAD DEVELOPMENT
• Phased Development
• Prototyping Model
• Throw Away Prototyping

AGILE DEVELOPMENT
• Extreme Programming
• Scrum
MODEL PROSES (Review)
• Model proses disebut juga dengan aliran
kerja (workflow), yakni tata cara
bagaimana elemen-elemen proses
berhubungan satu dengan lainnya.
• Aliran kerja ini dapat juga disebut
dengan siklus hidup (life-cycle) sistem
yang dimulai dari sejak sistem diajukan
untuk dibangun hingga saat ia ditarik
dari peredaran.
• Model proses tidak ditentukan mana
yang lebih baik, melainkan karakteristik
dari berbagai faktor yang
mempengaruhi, seperti : waktu,
kebijakan perusahaan, harga, SDM, dan
lain-lain.
• Suatu model proses bisa bagus
diterapkan pada perangkat lunak
tertentu, tapi menjadi kurang bagus
pada perangkat lunak lainnya.
Metodologi “RAD Development”
• RAD merupakan singkatan dari Rapid Application Development. Metode
ini juga menggunakan pendekatan iteratif dan inkremental, tetapi
lebih menekankan pada tenggat waktu dan efisiensi biaya yang sesuai
dengan kebutuhan.
• Proses pengembangan dengan Metode RAD dianggap lebih singkat.
Pasalnya, semua pihak, baik pelanggan maupun pengembang, terus
terlibat secara aktif dalam setiap proses hingga hasil dapat tercapai. Di
samping itu, tahapan kerja pada metode ini juga lebih sedikit.
• Alur kerja hanya dibagi menjadi tiga tahap yang semuanya padat.
Identifikasi tujuan yang langsung diiringi dengan komunikasi dan
perancangan, di mana seluruh pihak terlibat aktif dalam setiap
perumusannya.
Phased Development
Phased Development
• Memecah sistem ke dalam beberapa
serangkaian versi (Analis, Design, dan
Implementasi)
• Output dari suatu versi merupakan input
untuk versi selanjutnya
• Tahapan analisis mengidentifikasi
keseluruhan konsep sistem kemudian
mengkategorikan kebutuhan ke dalam
beberapa versi.
• Kebutuhan mendasar dan penting
dimasukkan ke versi pertama dari sistem.
Prototyping Model
Prototyping Model
• Prototype dalam bahasa Indonesia diartikan dengan istilah
purwarupa. Istilah tersebut berarti model awal atau rancangan
sementara yang masih membutuhkan berbagai penyesuaian
sebelum dinyatakan telah memenuhi hasil yang diinginkan.
• Terdapat beberapa tahapan dalam pengembangan perangkat lunak
menggunakan metode prototype. Dimulai dengan pengumpulan
informasi/data (requirement) dari pelanggan ke tim pengembang.
Lalu, tim akan merencanakan dan mendesain sistem kemudian
mengerjakan purwarupa perangkat lunak.
• Hasilnya kemudian diserahkan kepada pelanggan untuk dievaluasi.
Jika terdapat permasalahan, tim akan merevisi sistem tersebut
hingga benar-benar sesuai dengan kebutuhan pelanggan (customer
satisfaction).
• Ketika revisi selesai dan telah diterima oleh pelanggan, berarti
perangkat lunak di coding (develop) dan telah siap diterjemahkan ke
dalam perangkat keras. Kemudian, dilanjutkan dengan proses uji coba
dan berbagai revisi sebelum mulai dapat digunakan.
• Terakhir dirawat (maintain) setelah digunakan
Kelebihan Prototyping
• Cepat dalam pengerjaan (dibanding
model waterfall)
• Mudah meyakinkan klien bahwa tim
proyek bekerja dengan baik (tidak ada
penundaan yang lama di mana
pengguna melihat kemajuan),
• Pengguna dapat berinteraksi dengan
prototipe untuk lebih memahami apa
yang bisa dan tidak bisa lakukan.
Kelemahan Prototyping
• Prototipe hanya bisa berhasil jika pemakai bersungguh-sungguh
dalam menyediakan waktu dan pikiran untuk mengerjakan
prototipe.
• Kemungkinan dokumentasi terabaikan karena pengembangan lebih
berkonsentrasi pada pengujian dan pembuatan prototipe
• Mengingat target waktu yang pendek, ada kemungkinan sistem
yang dibuat tidak lengkap dan bahkan sistem kurang teruji
• Jika terlalu banyak proses pengulangan dalam membuat prototipe,
ada kemungkinan pemakai menjadi jenuh dan memberikan reaksi
yang negatif
• Apabila tidak terkelola dengan baik, maka prototipe menjadi tidak
pernah berakhir. Hal ini disebabkan permintaan terhadap
perubahan terlalu mudah untuk dipenuhi.
Throw Away Prototyping
Throw Away Prototyping
• Model throw away prototyping adalah pendekatan
dalam rekayasa perangkat lunak yang memungkinkan
pengembangan cepat dari prototipe untuk
memvalidasi persyaratan dan mengeksplorasi
kelayakan. Prototipe kemudian dibuang atau “dibuang”
setelah proyek selesai.
• Perbedaan dengan model protyping; model ini hanya
mengambil spesifikasi dari evaluasi akhir sistem
prototype (kemudian sistem akhir didevelop terpisah),
dan tidak menggunakan sistem prototype-nya
(dibuang)
Kelebihan dan Kekurangan
Throw-away Prototyping
Kelebihannya
• Mirip dengan kelebihan model prototyping.

Kelemahannya
• Pengembang (programmer) kadang ditekan oleh Manajer untuk
menyerahkan prototipe Throw-away untuk di pakai, terutama jika
sudah mepet waktunya.
• Hal diatas tidak bijaksana karena :
– Bisa saja tidak mungkin menyesuaikan prototipe untuk memenuhi
persyaratan non-fungsional seperti persyaratan kinerja, keamanan,
keandalan dll.
– Prototipe pada akhirnya tidak didokumentasikan karena pengembangan
dilakukan dengan cepat.
– Perubahan yang dilakukan pada saat pengembangan prototipe mungkin
akan merusak struktur system.
– Standar kualitas organisasi biasanya dilonggarkan untuk pengembangan
prototipe
Metodologi “Agile Development”
• Agile Software Development adalah metodologi pengembangan
software yang didasarkan pada proses pengerjaan yang dilakukan
berulang dimana, aturan dan solusi yang disepakati dilakukan
dengan kolaborasi antar tiap tim secara terorganisir dan terstruktur.
• Agile development sendiri merupakan model pengembangan
perangkat lunak dalam jangka pendek. Kemudian, membutuhkan
adaptasi yang cepat dalam mengatasi setiap perubahan.
• Nilai terpenting dari Agile development ini adalah memungkinkan
sebuah tim dalam mengambil keputusan dengan cepat, kualitas dan
prediksi yang baik, serta memiliki potensi yang baik dalam
menangani setiap perubahan.
• Proses pengembangan Agile mengacu pada konsep dari Agile
Manifesto. Konsep tersebut dikembangkan oleh 14 tokoh terkenal
dalam industri software.
Agile
Manifesto
Agile Development

Contoh Model Agile


Development :
• Extreme Programming &
• Scrum
Kelebihan Agile Development
Berikut ini merupakan beberapa kelebihan dari
metode Agile:
• Proses pengembangan perangkat lunak
membutuhkan waktu yang relatif cepat dan
tidak membutuhkan resources yang besar.
• Perubahan dapat ditangani dengan cepat
sesuai dengan kebutuhan client.
• Client dapat memberikan feedback kepada
tim pengembang dalam proses pembuatan
program
Kekurangan Agile Development
Berikut ini merupakan beberapa kekurangan
dari metode Agile:
• Agile tidak cocok apabila dikerjakan oleh tim
yang tidak memiliki komitmen untuk
menyelesaikan proyek bersama – sama.
• Metode Agile ini kurang tepat apabila
dikerjakan dengan jumlah skala tim yang
besar (>20 orang).
• Tim pengembang harus selalu bersiap
karena perubahan dapat terjadi sewaktu –
waktu
Extreme Programming (XP)
• Extreme Programming (XP) adalah salah satu kerangka
kerja pengembangan perangkat lunak yang sangat
penting dalam model Agile. Tujuannya adalah untuk
meningkatkan kualitas perangkat lunak dan respons
terhadap kebutuhan pelanggan.
• Extreme Programming cocok digunakan ketika tim
memiliki kebutuhan untuk menghasilkan perangkat
lunak berkualitas tinggi dengan respons cepat terhadap
perubahan kebutuhan pelanggan.
Extreme Programming (XP)
Aktivitas Utama XP
• Coding: Melibatkan menggambar diagram (modeling) yang akan
diubah menjadi kode, scripting sistem berbasis desktop/web, dan
memilih solusi alternatif.
• Pengujian: Melakukan pengujian kode untuk menghilangkan
kesalahan dan meningkatkan kehandalan.
• Pengembangan Bertahap: Mendapatkan umpan balik dari
pelanggan dan menghasilkan peningkatan berdasarkan iterasi.
• Desain: Desain berkualitas tinggi penting untuk mengembangkan
perangkat lunak yang baik.
• Integrasi Terus-Menerus: Membangun dan melakukan pengujian
integrasi beberapa kali sehari untuk mengidentifikasi masalah di
antarmuka berbagai fungsionalitas
Kunci Utama XP
• Extreme Programming muncul
menawarkan sebuah disiplin baru dalam
pengembangan software secara agile.
• Nilai dasar yang terkandung di dalam
Extreme Programming adalah:
– Komunikasi (Communication),
– Kesederhanaan (Simplicity),
– Umpan balik (Feedback)
– Keberanian (Courage) dan
– Menghormati (Respect).
Kelebihan XP
• Meningkatkan kepuasan kepada klien
• Pembangunan system dibuat lebih cepat
• Menjalin komunikasi yang baik dengan
client.
• Meningkatkan komunikasi dan sifat saling
menghargai antar developer.
Kekurangan XP
• Cerita-cerita yang menunjukkan requirements dari
pelanggan kemungkinan besar tidak lengkap
sehingga Developer harus selalu siap dengan
perubahan karena perubahan akan selalu diterima.
• Tidak bisa membuat kode yang detail di awal
(prinsip simplicity dan juga anjuran untuk
melakukan apa yang diperlukan hari itu juga).
• XP tidak memiliki dokumentasi formal yang dibuat
selama pengembangan. Satu-satunya dokumentasi
adalah dokumentasi awal yang dilakukan oleh
user.
Scrum Methodology
• Scrum adalah salah satu kerangka kerja pengembangan
perangkat lunak yang termasuk dalam kelompok Agile.
Tujuannya adalah untuk meningkatkan kualitas perangkat
lunak dan respons cepat terhadap kebutuhan pelanggan.
• Scrum cocok digunakan ketika tim perlu menghasilkan
perangkat lunak berkualitas tinggi dengan respons cepat
terhadap perubahan kebutuhan pelanggan
• Dalam Scrum, tim bekerja dalam iterasi singkat yang
disebut Sprint untuk menghasilkan potongan fungsionalitas
yang dapat diberikan kepada pelanggan.
• Scrum menekankan transparansi, inspeksi,
dan adaptasi sebagai pilar utamanya
Scrum Methodology
Cara Kerja Scrum
1. Product Owner menerima pekerjaan dari klien
(menentukan dan mendata kebutuhan dan fitur-fitur
dari product backlog)
2. Membentuk Tim (Team Developer dan Scrum
Master) dengan komitmen tinggi.
3. Merencanakan dan Menentukan waktu pengerjaan
cepat (sprint) dengan kebutuhan atau fitur yang
akan di sprint (sprint backlog)
4. Melakukan Sprint dengan target waktu dan hasil
yang dipimpin oleh Scrum Master (Manajer Proyek)
5. Melakukan meeting singkat untuk evaluasi dan sprint
review (lakukan terus sampai target tercapai)
6. Selesaikan pekerjaan yang menghasilkan Increment
(versi 1) dan lakukan Sprint Retrospective atau
mengecek ulang lagi pekerjaan dari awal.
Scrum Team
Prinsip-prinsip Scrum
• Ukuran tim yang kecil melancarkan komunikasi,
mengurangi biaya, dan memberdayakan satu sama
lain
• Proses dapat beradaptasi terhadap perubahan bisnis
dan teknis.
• Proses menghasilkan beberapa software increment
• Pembangunan dan orang yang membangun dibagi
dalam tim yang kecil
• Dokumentasi dan pengujian terus menerus dilakukan
setelah software dibangun
• Proses scrum mampu menyatakan bahwa produk
selesai disaat diperlukan
Kelebihan Scrum
• Cepat dan Efisien: Scrum membagi produk
besar menjadi sub-produk yang lebih kecil,
mengadopsi strategi “bagi dan taklukkan”.
• Kepuasan Pelanggan: Scrum sangat
memperhatikan kepuasan pelanggan.
• Adaptif: Scrum mengandalkan umpan balik
konstan, sehingga kualitas produk meningkat
dalam waktu yang lebih singkat
Kekurangan Scrum
• Tidak Mengizinkan Perubahan: Scrum tidak
memperbolehkan perubahan di tengah Sprint.
• Kurangnya Deskripsi Model yang
Lengkap: Scrum memerlukan pengisian rincian
sendiri, seperti Extreme Programming
(XP), Kanban, atau DSDM.
• Tantangan Perencanaan: Sulit bagi Scrum untuk
merencanakan, struktur, dan mengorganisir
proyek yang tidak memiliki definisi yang jelas.
• Pertemuan Harian dan Ulasan Frekuensi Tinggi:
Memerlukan sumber daya yang cukup besar
Terima Kasih

Lanjut ke Pertemuan Berikutnya

Anda mungkin juga menyukai