Anda di halaman 1dari 12

MODUL PERKULIAHAN

Pengembangan
Aplikasi
Berbasis Rapid
Agile Methods

Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh

12
Fasilkom Teknik Informatika W151700010 Roni Yusman S.Kom, M.I.kom

Abstract Kompetensi
Metode Agile adalah sekelompok  Mampu mengidentifikasi
metodologi pengembangan perangkat karakteristik dari agile approach
lunak yang didasarkan pada prinsip-  Mampu memahami keuntungan dan
prinsip yang sama atau pengembangan batasan dari agile development
sistem jangka pendek yang memerlukan  Mampu membedakan metoda
adaptasi cepat dari pengembang terhadap metoda pada agile development
perubahan dalam bentuk apapun. methods
 Mampu menggunakan Rapid
Software Development tools pada
agile development
Pengertian Dari Metode Agile
Metode Agile adalah sekelompok metodologi pengembangan perangkat lunak yang
didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang
memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun.
Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat
lunak yang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian
bersifat cepat, ringan, bebas bergerak, dan waspada. Sehingga saat membuat perangkat lunak
dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti yang
baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan
bagus dan kelincahan dari tim seimbang.

Agile development methods terdefinisi dalam empat nilai, biasa di sebut Agile Alliance’s
Manifesto, diantaranya :

1. Interaksi dan personel lebih penting dari pada proses dan alat.
2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.
3. Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak.
4. Respon terhadap perubahan lebih penting daripada mengikuti rencana.

Pengertian dari Agile Alliance's Manifesto dijelaskan di bawah ini:

 Interaksi dan personel lebih penting dari pada proses dan alat, di dalam agile interaksi
antar anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka
proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
 Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap,
saat melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi
dengan baik akan lebih berguna daripada dokumentasi yang lengkap.
 Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, salah satu ciri dari
agile adalah klien menjadi bagian dari tim pengembangan perangkat lunak.
Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak sangatlah
penting ketika menggunakan agile. Karena fungsi-fungsi dari perangkat lunak yang
dikembangkan harus terus menerus dibicarakan dan diimprovisasi disesuaikan dengan
keinginan klien.

2018 Pengembangan Aplikasi Berbasis Rapid


2 Roni Yusman S.Kom, M.I.kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
 Respon terhadap perubahan lebih penting daripada mengikuti rencana, agile
development methods berfokus terhadap kecepatan respon tim ketika klien
menginginkan perubahan saat proses pembuatan perangkat lunak.

Model proses agile


Beberapa model dari metode agile, yaitu :

 Acceptance Test Driven Development (ATDD)


 Agile Modeling
 Adaptive Software Development (ASD)

Adaptive software development (ASD) diajukan oleh Jim Highsmith sebagai teknik untuk
membangun software dan sistem yang kompleks. Filosofi yang mendasari adaptive software
development adalah kolaborasi manusia dan tim yang mengatur diri sendiri. Sistem kerja
adaptive software development : collaboration dan learning.

1. Collaboration : orang-orang yang bermotivasi tinggi bekerja sama, saling melengkapi,


rela membantu, kerja keras, terampil di bidangnya, dan komunikasikan masalah untuk
menyelesikan masalah secara efektif.
2. Learning: tim developer sering merasa sudah tahu semua hal tentang proyek, padahal
tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang
proyek melalui tiga cara
a. Fokus grup, klien dan pengguna memberi masukan terhadap perangkat lunak.
b. Formal Technique Reviews, tim ASD lengkap melakukan review.
c. Postmortems, tim ASD melakukan instrospeksi pada kinerja dan proses.

A. Tujuan Metode Agile


Secara garis besar tujuan dirumuskannya Metode Agile, yaitu :
 High-value & working App system, diharapkan dengan memakai agile
development methods dapat dihasilkan perangkat lunak yang mempunyai nilai
jual yang tinggi, biaya pembuatan bisa di tekan dan perangkat lunak bisa
berjalan dengan baik.
 Iterative, incremental, evolutionary, agile adalah metode pengembangan
perangkat lunak yang iteratif, selalu mengalami perubahan, dan evolusioner.

2018 Pengembangan Aplikasi Berbasis Rapid


3 Roni Yusman S.Kom, M.I.kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Tim harus bekerja dalam waktu yang singkat(biasanya 1-3 minggu) dan juga
selalu menambah fungsionalitas dari perangkat lunak sesuai dengan kebutuhan
klien. Agile dapat dianalogikan ketika seseorang ingin pergi ke suatu kota dan
dia tidak tahu jalannya. Lalu bagaimana dia bisa sampai tujuan? Dengan
sering bertanya kepada orang yang dia temui dijalan hingga dia sampai di
tempat tujuan.
 Cost control & value-driven development, salah satu tujuan dari agile yaitu
pengembangan perangkat lunak disesuaikan dengan kebutuhan pengguna, tim
bisa dengan cepat merespon kebutuhan yang diinginkan pengguna sehingga
waktu dan biaya pembuatan perangkat lunak bisa dikontrol.
 High-quality production, walaupun biaya pembuatan perangkat lunak bisa
ditekan dan proses pembuatan bisa dipercepat , tetapi kualitas dari perangkat
lunak yang dibuat harus tetap dijaga. Dengan melakukan tes setiap
fungsionalitas perangkat lunak setelah selesei dibuat berarti agile juga
mengakomodir kebutuhan ini.
 Flexible & risk management, jika kita menggunakan metode pembuatan yang
biasanya dipakai, jika ingin mengubah fungsionalitas dari wireframe yang
telah dibuat di butuhkan proses yang rumit. Mulai dari pertemuan dengan
sistem analis untuk mengubah sistem perangkat lunak, perubahan rencana rilis
produk hingga perubahan biaya produksi. Pertemuan dengan klien untuk
melakukan tes perangkat lunak juga sering dilakukan sehingga fungsionalitas
perangkat lunak mudah diubah dan akhirnya kegagalan perangkat lunakpun
bisa diminimalisir.
 Collaboration, dengan menggunakan agile, tim pengembang diharuskan sering
bertemu untuk membahas perkembangan proyek dan feedback dari klien yang
nantinya akan ditambahkan dalam perangkat lunak, sehingga tim bisa
berkolaborasi dengan maksimal.
 Self-organizing, self-managing teams, rekrut orang terbaik, beri dan dukung
kebutuhan mereka lalu biarkan mereka bekerja. Itulah perbedaan agile dan
SDM lainnya. Dengan agile, developer dapat memanajemen dirinya sendiri,
sedangkan manajer tim hanya bertugas mengkolaborasikan
developerperangkat lunak dengan klien. Sehingga terciptalah tim yang solid.

2018 Pengembangan Aplikasi Berbasis Rapid


4 Roni Yusman S.Kom, M.I.kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
B. Langkah-langkah Metode Agile

Gambar di bawah ini menunjukkan langkah-langkah dalam Metodologi Agile yang


berfokus pada iterasi dan beradaptasi terhadap perubahan :

Metodologi Agile menarik banyak orang karena mereka berusaha kompromi yang
berguna antara tidak ada proses dan terlalu banyak proses untuk mendapatkan hasil
yang wajar. Mereka kurang berorientasi pada dokumen, biasanya menekankan jumlah
dokumen yang lebih sedikit untuk tugas yang diberikan. Metodologi Agile lebih
berorientasi pada orang daripada berorientasi pada proses. Metode Agile menegaskan
bahwa tidak ada proses yang akan membentuk keterampilan tim pengembangan,
sehingga peran proses adalah untuk mendukung tim pengembangan dalam pekerjaan
mereka. Selain itu, berkat fleksibilitas dan metodologi yang berorientasi tim, tangkas
sangat cocok untuk lingkungan bisnis saat ini yang terus berubah secara dramatis.

C. Kelebihan dan Kekurangan Metode Agile


Kelebihan dari Agile, yaitu :
 Meningkatkan kepuasan kepada klien.
 Dapat melakukan review pelanggan mengenai software yang dibuat lebih
awal.
 Pembangunan system dibuat lebih cepat.
 Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
 Jika pada saat pembangunan system terjadi kegagalan kerugian dari segi
materi relatif kecil.

Kekurangan dari agile, yaitu :

 Developer harus selalu siap dengan perubahan karena perubahan akan selalu
diterima.

2018 Pengembangan Aplikasi Berbasis Rapid


5 Roni Yusman S.Kom, M.I.kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
 Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
 Tidak cocok dalam skala tim yang besar (>20 orang).
 Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.

ADAPTIVE SOFTWARE DEVELOPMENT


Adaptive Software Development merupakan pengembangan perangkat lunak proses yang
tumbuh dari kerja pengembangan aplikasi cepat oleh Jim Highsmith dan Sam Bayer. ASD
mewujudkan prinsip bahwa adaptasi yang berkesinambungan dari proses kerja di tangan
adalah urusan keadaan normal. ASD menggantikan siklus air terjun tradisional dengan
serangkaian berulang berspekulasi, berkolaborasi, dan belajar siklus. Siklus dinamis
memberikan pembelajaran dan adaptasi kepada negara muncul proyek. Karakteristik dari
siklus hidup ASD adalah bahwa itu adalah misi fokus, fitur berbasis, berulang, timeboxed,
risiko didorong, dan toleran berubah.

 Fase Adaptive Software Development


Model proses Pengembangan Perangkat Lunak Adaptif telah dibagi menjadi 4 fase
yang ditunjukkan dalam gambar di bawah ini :

4 fase Proses Pengembangan Perangkat Lunak Adaptif Model:


 Komunikasi dan perencanaan
Pada fase ini, spesifikasi proyek dan dokumen proposal, yang terdiri dari
kelayakan dan penilaian risiko, disiapkan.
 Analisis
Fase analisis hanya akan dimulai ketika pelanggan menyetujui proposal dalam
persiapan pertama selama fase pertama. Pada fase ini, kualitas perangkat lunak
akan disetujui melalui dokumentasi kertas. Seorang analis mengumpulkan

2018 Pengembangan Aplikasi Berbasis Rapid


6 Roni Yusman S.Kom, M.I.kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
informasi detail dan persyaratan dari fase ini. Spesifikasi kebutuhan perangkat
lunak (SRS) dokumen adalah produk tahap analisis.
 Perancangan dan pengembangan
Proses Pengembangan Perangkat Lunak Adaptif Model menggunakan
pendekatan prototipe untuk memverifikasi desain dan persyaratan.
 Pengujian dan penerapan
Uji kasus untuk setiap kenaikan disiapkan pada awal fase ini. Modul ini diuji
berdasarkan unit, dan diikuti oleh tes integrasi di antara modul. Kemudian uji
sistem dilakukan, diikuti dengan pengujian penerimaan yang merupakan tes
terakhir untuk memverifikasi kenaikan dari pelanggan. Kegiatan penyebaran
utama adalah instalasi, pelatihan dan keamanan.
 Aktifitas Adaptive Software Development

3 aktifitas yang di lakukan ASD yaitu sebgai berikut :

 Speculation adalah aktivitas adaptive cycle planning yaitu menggunakan


informasi awal seperti misi dari klien, batasan proyek dan kebutuhan dasar
untuk definisikan rangkaian software increment (produk software yang secara
berkala diserahkan).
 Collaboration adalah aktifitas orang-orang yang bermotivasi tinggi bekerja
sama. Saling melengkapi, rela membantu, kerja keras, trampil dibidangnya
dan komunikasikan masalah untuk hasilkan penyelesaian yang efektif.
 Learning adalah aktivitas tim pembangun sering merasa sudah tahu semua hal
tentang proyek. Proses pembelajaran proyek ini bisa dilakukan 3 cara yaitu
sebagai berikut :
o Focus Group adalah klien dan pengguna memberi masukan terhadap
software.
o Formal Technique Reviews adalah tim ASD lengkap melakukan
review.
o Postmortems adalah tim ASD lakukan instrospeksi pada kinerja dan
proses.

Bisa diambil kesimpulan bahwa Metodologi ASD ini merupakan aktivitas tim
pengembanhan software yang pertama di tekankan adalah adaptasi atau melakukan
pendekatan kepada proyek yang sedang di kerjakan, sama halnya seperti 3 aktifitas

2018 Pengembangan Aplikasi Berbasis Rapid


7 Roni Yusman S.Kom, M.I.kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
ASD yang sebelumnya dijelaskan. Untuk melakukan proses metode ASD harus
dilakukan Speculation, Collaboration dan Learning yang intinya ketiga aktifitas
tersebut bertujuan untuk melakukan adaptasi terhadap suatu proyek pengembangan
yang sedang di kerjakan.

FEATURES
Pengembangan berbasis-fitur (FDD) adalah proses pengembangan perangkat lunak yang
berulang dan inkremental. Ini adalah metode ringan atau Agile untuk mengembangkan
perangkat lunak. FDD memadukan sejumlah praktik terbaik yang diakui industri menjadi satu
kesatuan yang kohesif. Praktik-praktik ini didorong dari perspektif fungsionalitas (fitur) yang
dinilai klien. Tujuan utamanya adalah menyampaikan perangkat lunak yang nyata dan
bekerja berulang kali secara tepat waktu.

 History Features-Driven Development


FDD pada awalnya dirancang oleh Jeff De Luca untuk memenuhi kebutuhan spesifik
dari proyek pengembangan perangkat lunak selama 15 bulan, 50-orang di sebuah
bank besar di Singapura pada tahun 1997. Hal ini menghasilkan serangkaian lima
proses yang mencakup pengembangan model keseluruhan dan daftar, perencanaan,
desain, dan pembangunan fitur. Proses pertama sangat dipengaruhi oleh pendekatan
Peter Coad terhadap pemodelan objek. Proses kedua menggabungkan ide Coad
tentang penggunaan daftar fitur untuk mengelola persyaratan fungsional dan tugas
pengembangan. Proses lainnya adalah hasil dari pengalaman Jeff De Luca. Ada
beberapa implementasi FDD sejak penggunaannya yang sukses pada proyek
Singapura.
Deskripsi FDD pertama kali diperkenalkan ke dunia dalam Bab 6 dari pemodelan
Java buku dalam Warna dengan UML [1] oleh Peter Coad, Eric Lefebvre, dan Jeff De
Luca pada tahun 1999. Kemudian, di Stephen Palmer dan Mac Felsing buku A
Practical Panduan untuk Pengembangan Berdasarkan Fitur (diterbitkan pada tahun
2002), deskripsi yang lebih umum tentang FDD diberikan dipisahkan dari pemodelan
Java.

2018 Pengembangan Aplikasi Berbasis Rapid


8 Roni Yusman S.Kom, M.I.kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Agile Unified Process (AUP)
Agile Unified Process (AUP) merupakan metodologi pengembangan perangkat lunak yang
menggunakan teknik-teknik agile yang menerapkan konsep Rational Unified Process (RUP).
Agile Unified Process (AUP) telah dikenal sebagai metodologi yang cocok untuk perangkat
lunak kecil hingga menengah proyek pengembangan. Metodologi ini berfokus pada iterasi
yang cepat, rilis kecil dan sering, mampu menangani mengubah persyaratan dari pengguna,
dan melibatkan pengguna dalam proses pengembangan perangkat lunak. Namun, sedikit yang
diketahui itu AUP dapat digunakan secara efektif untuk persyaratan sistem yang tidak jelas
dan tidak lengkap. Fase AUP dapat diikuti secara akurat dan terbukti sangat berguna dan
cocok untuk persyaratan sistem yang tidak jelas. Iterasi cepat, rilis kecil dan sering dari
perangkat lunak

Model AUP Disiplin adalah kombinasi dari Bisnis RUP Pemodelan, Persyaratan, dan
Analisis dan Desain disiplin. Selain itu, Konfigurasi RUP dan Manajemen Perubahan disiplin
diubah menjadi AUP Manajemen konfigurasi disiplin. AUP terdiri dari empat fase utama dan
tujuh fase :

a. Inception Tujuannya adalah untuk mengidentifikasi ruang lingkup awal proyek,


arsitektur potensial, dan memperoleh awal pendanaan proyek dan penerimaan
pemangku kepentingan.
b. Elaborasi Tujuannya adalah untuk mendefinisikan arsitektur dari sistem.
c. Konstruksi Tujuannya adalah untuk membangun sistem itu memenuhi kebutuhan
pemangku kepentingan.
d. Transisi. Tujuannya adalah untuk memvalidasi dan mengintegrasikan sistem dengan
lingkungan yang digunakan

Semua disiplin AUP dilakukan dalam suatu secara iteratif, mendefinisikan aktivitas yang
mana anggota tim pengembangan tampil untuk membangun, memvalidasi, dan memberikan
perangkat lunak yang berfungsi yang memenuhi kebutuhan pengguna. Disiplin AUP adalah:

 Model Tujuannya adalah untuk memahami bussines organisasi, untuk


menentukan masalah dan apa yang dilakukan pengguna kebutuhan, untuk
mengidentifikasi solusi terbaik.

2018 Pengembangan Aplikasi Berbasis Rapid


9 Roni Yusman S.Kom, M.I.kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
 Implementasi Tujuannya adalah untuk mengubah model menjadi kode yang
dapat dieksekusi dan untuk melakukan pengujian tingkat dasar, khususnya
pengujian unit.
 Uji Tujuannya adalah untuk menemukan cacat, untuk memvalidasi sistem
berfungsi sesuai desain dan memenuhi pengguna Persyaratan.
 Deployment Tujuannya adalah untuk mengintegrasikan sistem ke dalam
menggunakan organisasi
 Manajemen Konfigurasi Tujuannya adalah untuk mengelola akses ke proyek
artefak. Ini termasuk melacak versi artefak dari waktu ke waktu dan kemudian
mengontrol dan mengelola perubahan pada mereka.
 Manajemen Proyek Tujuannya adalah untuk mengarahkan kegiatan yang
dibutuhkan tempatkan pada proyek. Ini termasuk mengelola risiko,
mengarahkan orang (menugaskan tugas, melacak kemajuan, dll.), dan
berkoordinasi dengan orang dan sistem di luar ruang lingkup proyek untuk
memastikan bahwa itu disampaikan tepat waktu dan sesuai anggaran.
 Lingkungan Tujuannya adalah mendukung pengembangan proses dengan
proses, panduan, dan alat.

 Karakteristik Agile Unified Process (AUP)


Unified Process mempunyai tiga karakteristik utama, yaitu (Jacobson, et al., 1999):
 Use Case Driven
Use case tidak hanya merupakan tool untuk menspesifikasi kebutuhan
fungsional sistem, tetapi use case juga mengarahkan semua workflow dalam
proses pengembangan software. Model design dan implemetasi yang
merealisasikan use case serta sejumlah test case untuk pengujian dibuat
berdasarkan use case model. (Jacobson, et al., 1999). Dalam Unified Process,
kasus penggunaan digunakan untuk menangkap kebutuhan fungsional dan
mendefinisikan isi dari iterasi. Setiap iterasi mengambil satu set kasus
penggunaan atau skenario dari persyaratan semua jalan melalui implementasi,
pengujian dan penyebaran.
 Architecture Centric
Arsitektur merupakan pandangan terhadap keseluruhan design yang
menonjolkan karakteristik-karakteristik yang penting dan meninggalkan

2018 Pengembangan Aplikasi Berbasis Rapid


10 Roni Yusman S.Kom, M.I.kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
sisidetail-nya. Arsitektur dan use case haruslah seimbang. Realisasi use
caseharus disesuaikan dengan arsitektur yang dikembangkan, sebaliknya
arsitektur juga harus memberikan ruang untuk realisasi semua use case yang
dibutuhkan, baik pada awal pengembangan hingga beberapa waktu ke depan
(Jacobson, et al., 1999). Unified Process menegaskan bahwa arsitektur duduk
di jantung dari upaya tim proyek untuk membentuk sistem. Sejak tidak ada
model tunggal yang cukup untuk menutup semua aspek dari suatu sistem,
Unified Process mendukung beberapa model arsitektur dan pandangan. Salah
satu kiriman yang paling penting dari proses ini adalah dasar arsitektur
eksekusi yang diciptakan selama fase Elaborasi. Implementasi parsial dari
sistem berfungsi untuk memvalidasi arsitektur dan bertindak sebagai dasar
untuk pengembangan yang tersisa.
 Iteration & Incremental
Unified Process yang iteratif dan proses pembangunan bertahap. Fase
Inception, Elaborasi, Konstruksi dan Transisi dibagi menjadi serangkaian
iterasi timeboxed.(Fase Inception juga dapat dibagi menjadi iterasi untuk
proyek besar. Hasil iterasi setiap dalam kenaikan, yang merupakan rilis dari
sistem yang berisi fungsionalitas tambahan atau meningkat dibandingkan
dengan rilis sebelumnya. Meskipun iterasi sebagian besar akan termasuk
bekerja di sebagian besar disiplin proses (Persyaratan misalnya, Desain,
Implementasi, Pengujian) upaya relatif dan penekanan akan berubah selama
proyek.

2018 Pengembangan Aplikasi Berbasis Rapid


11 Roni Yusman S.Kom, M.I.kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Daftar Pustaka
1. Mc.,Leod, R. Jr. 2002. System Development: A Project Management Approach. New
York: Leigh Publishing LLC.
2. Whitten, J.L. & Bentley, L.D. 2004. System Analysis & Design Methods: Sixth
Edition. New York: Mc.Graw-Hill.
3. http://www.agile-tools.net/
4. http://www.stevemcconnell.com/rdcntnt.htm

2018 Pengembangan Aplikasi Berbasis Rapid


12 Roni Yusman S.Kom, M.I.kom
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id

Anda mungkin juga menyukai