0% menganggap dokumen ini bermanfaat (0 suara)
74 tayangan38 halaman

Tahapan Metode Prototipe dalam Agile

Agile development methods merupakan metode pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip adaptasi cepat terhadap perubahan, kolaborasi erat antara tim pengembang dan klien, serta penekanan pada pengembangan iteratif dan inkremental untuk menghasilkan perangkat lunak berfungsi secara berkelanjutan. Beberapa metode agile antara lain Scrum, Extreme Programming (XP), Kanban, dan Crystal Clear.

Diunggah oleh

imas hartini
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
74 tayangan38 halaman

Tahapan Metode Prototipe dalam Agile

Agile development methods merupakan metode pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip adaptasi cepat terhadap perubahan, kolaborasi erat antara tim pengembang dan klien, serta penekanan pada pengembangan iteratif dan inkremental untuk menghasilkan perangkat lunak berfungsi secara berkelanjutan. Beberapa metode agile antara lain Scrum, Extreme Programming (XP), Kanban, dan Crystal Clear.

Diunggah oleh

imas hartini
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd

[Link]

org/wiki/Agile_Development_Methods

[Link]

[Link]

Sekitaran

Masuk log

Pengaturan

Tentang Wikipedia

Penyangkalan

Buka menu utama

Wikipedia

Cari

Agile Development Methods

Baca dalam bahasa lain

Unduh

Pantau halaman ini

Sunting

Pelajari selengkapnya

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan.

Agile Development Methods 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.[1] 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.

Diagram dari agile development methods

Pendahuluan Sunting

Saat bekerja dalam tim untuk mengerjakan suatu proyek sangatlah penting menentukan Metodologi
pengembangan perangkat lunak dan Proses pengembangan perangkat lunak yang akan digunakan.
Metodologi pengembangan perangkat lunak sendiri adalah sebuah metodologi yang digunakan untuk
membuat struktur, rencana, dan kontrol pengerjaan suatu proyek, sedangkan Proses pengembangan
perangkat lunak adalah model-model dan metodologi yang digunakan untuk mengembangkan suatu
perangkat lunak. Ada beberapa model Metodologi pengembangan perangkat lunak diantaranya:
waterfall, fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize.[2]
Terdapat enam langkah yang digunakan dalam Metodologi pengembangan perangkat lunak,[3] yaitu:

Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan dari
perangkat lunak yang akan dibuat.

Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.

Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas agar bug
yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.

Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses dokumentasi
perangkat lunak untuk mempermudah proses maintenanance kedepannya.

Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem. Setelah
sistem memenuhi syarat maka perangkat lunak siap dideployment.

Pemeliharaan, langkah terakhir yaitu pemeliharaan. Tidak ada perangkat lunak yang 100% bebas dari
bug, oleh karena itu sangatlah penting agar perangkat lunak dipelihara secara berkala.

Agile manifesto Sunting

Martin Fowler, salah satu pencetus ide agile development methods


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

Interaksi dan personel lebih penting daripada proses dan alat.

Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.

Kolaborasi dengan klien lebih penting daripada negosiasi kontrak.

Respon terhadap perubahan lebih penting daripada mengikuti rencana.

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

Interaksi dan personel lebih penting daripada 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 daripada 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.

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.

Agar suatu tim berhasil dalam menerapkan agile development methods, maka tim tersebut harus
mengikuti dua belas prinsip yang ditetapkan oleh Agile Alliance,[4] yaitu:

Prioritas utama proses agile adalah memuaskan klien dengan menghasilkan perangkat lunak yang
bernilai dengan cepat dan rutin.

Menyambut perubahan kebutuhan, walaupun terlambat dalam pengembangan perangkat lunak. Proses
Agile memanfaatkan perubahan untuk keuntungan kompetitif klien.
Menghasilkan perangkat lunak yang bekerja secara rutin, dari jangka waktu beberapa minggu sampai
beberapa bulan, dengan preferensi kepada jangka waktu yang lebih pendek.

Rekan bisnis dan pengembang perangkat lunak harus bekerja sama tiap hari sepanjang proyek.

Kembangkan proyek di sekitar individual yang termotivasi. Berikan mereka lingkungan dan dukungan
yang mereka butuhkan, dan percayai mereka untuk menyelesaikan pekerjaan dengan baik.

Metode yang paling efisien dan efektif untuk menyampaikan informasi dari dan dalam tim pengembang
perangkat lunak adalah dengan komunikasi secara langsung.

Perangkat lunak yang bekerja adalah ukuran utama kemajuan.

Proses agile menggalakkan pengembangan berkelanjutan. Sponsor-sponsor, pengembang-pengembang,


dan pengguna-pengguna dapat mempertahankan kecepatan tetap secara berkelanjutan.

Perhatian yang berkesinambungan terhadap keunggulan teknis dan rancangan yang baik meningkatkan
Agility.

Kesederhanaan (memaksimalkan sumber daya yang tersedia) adalah hal yang amat penting.

Arsitektur, kebutuhan, dan rancangan perangkat lunak terbaik muncul dari tim yang yang dapat
mengorganisir diri sendiri.

Secara berkala, tim pengembang berefleksi tentang bagaimana untuk menjadi lebih efektif, kemudian
menyesuaikan dan menyelaraskan kebiasaan bekerja mereka.

Dua belas prinsip tersebut menjadi suatu dasar bagi tim agar sukses menerapkan agile development
methods. Dengan prinsip-prinsip tersebut agile berusaha untuk menyiasati tiga masalah yang biasanya
dihadapi saat proses pembuatan perangkat lunak, yaitu:

Kebutuhan perangkat lunak sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien
juga sering berubah seiring berjalannya proyek.

Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang
diperlukan sebelum pembangunan.

Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

Model proses agile Sunting

Model proses agile

Beberapa model dari agile development methods,[2] 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. '

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.

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:

Fokus grup, klien dan pengguna memberi masukan terhadap perangkat lunak.

Formal Technique Reviews, tim ASD lengkap melakukan review.

Postmortems, tim ASD melakukan instrospeksi pada kinerja dan proses

Agile Unified Process (AUP)

Continuous integration (CI)

Crystal Clear

Crystal Methods

Dynamic Systems Development Method (DSDM)

Pada Dynamic System Development Method menyajikan kerangka kerja (framework) untuk membangun
dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototip yang incremental
dalam lingkungan yang terkondisikan. Metode ini bisa membuat pengerjaan software lebih cepat
80%.Hal -hal yang perlu diperhatikan jika menggunakan dynamic system development method:

Feasibility study, siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM.

Business Study, susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi
kebutuhan pemeliharaan untuk aplikasi.

Functional model iteration, perlihatkan fungsi perangkat lunak ke klien untuk mendapatkan feedback
Design and Build Iteration, cek ulang prototip yang dibangun dan pastikan bahwa prototip dibangun
dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja.

Implementation: buat perangkat lunak sesuai protoip yang ada dan terus tambah fungsionalitasnya.

Extreme Programming (XP)

Feature Driven Development (FDD)

Feature driven development merupakan sebuah model pengembangan perangkat lunak yang
berdasarkan pada fitur yang akan dibuat. Keuntungan dari metode feature driven development:

User dapat menggambarkan dengan mudah bentuk sistem yang akan dibuat.

Dapat diorganisasikan atau diatur ke dalam kelompok bisnis sesuai hierarki yang ada.

Desain dan kode lebih mudah diperiksa secara efektif.

Perancangan proyek, biaya pembuatan dan jadwal rilis ditentukan oleh fiturnya.

Graphical System Design (GSD)

Kanban

Lean software development

Rational Unified Process (RUP)

Rational unified process, adalah suatu kerangka pengembangan perangkat lunak iteratif yang dibuat oleh
Rational Software, suatu divisi dari IBM sejak 2003. Rational unified process bukanlah suatu proses
dengan aturan yang konkrit, melainkan suatu kerangka proses yang dapat diadaptasi dan dimaksudkan
untuk disesuaikan oleh tim pengembang perangkat lunak yang akan memilih elemen proses disesuaikan
dengan kebutuhan [Link] ini membagi suatu sistem aplikasi menjadi beberapa komponen
sistem dan memungkinkan para developer aplikasi untuk menerapkan metode iterative (analisis, disain,
implementasi dan pengujian) pada tiap komponen. Dengan menggunakan model ini, Rational unified
process membagi tahapan pengembangan perangkat lunaknya ke dalam 4 fase sebagai berikut.

Inception, merupakan tahap untuk mengidentifikasi sistem yang akan dikembangkan. Aktivitas yang
dilakukan pada tahap ini antara lain mencakup analisis sistem, perumusan target dari sistem yang dibuat,
identifikasi kebutuhan, perumusan kebutuhan pengujian, pemodelan diagram UML, dan pembuatan
dokumentasi.

Elaboration, merupakan tahap untuk melakukan disain secara lengkap berdasarkan hasil analisis di tahap
inception. Aktivitas yang dilakukan pada tahap ini antara lain mencakup pembuatan disain arsitektur
subsistem, disain komponen sistem, disain format data disain database, disain antarmuka/tampilan,
disain peta tampilan, penentuan design pattern yang digunakan, pemodelan diagram UML, dan
pembuatan dokumentasi.
Construction, merupakan tahap untuk mengimplementasikan hasil disain dan melakukan pengujian hasil
implementasi. Pada tahap awal construction, ada baiknya dilakukan pemeriksaan ulang hasil analisis dan
disain, terutama disain pada diagram sequence,class, component, dan deployment. Apabila disain yang
dibuat telah sesuai dengan analisis sistem, maka implementasi dengan bahasa pemrograman tertentu
dapat dilakukan. Aktivitas yang dilakukan pada tahap ini antara lain mencakup pengujian hasil analisis
dan disain (misal menggunakan class responsibility collaborator untuk kasus pemrograman berorientasi
objek), pendataan kebutuhan implementasi lengkap (berpedoman pada identifikasi kebutuhan di tahap
analisis), penentuan coding pattern yang digunakan, pembuatan program, pengujian, optimasi program,
pendataan berbagai kemungkinan pengembangan / perbaikan lebih lanjut, dan pembuatan
dokumentasi.

Transition, merupakan tahap untuk menyerahkan sistem aplikasi ke konsumen (roll-out), yang umumnya
mencakup pelaksanaan pelatihan kepada pengguna dan testing beta aplikasi terhadap ekspetasi
pengguna.

Scrum

Scrum-ban

Story-driven modeling

Test-driven development (TDD)

Velocity tracking

Software Development Rhythms[5][6]

Tujuan agile Sunting

Secara garis besar tujuan dirumuskannya agile development methods,[7] 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. 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 developer
perangkat lunak dengan klien. Sehingga terciptalah tim yang solid.

Bagaimana agile bekerja Sunting

Topik selanjutnya yaitu tentang cara kerja agile development methods. Disini akan dijelaskan bagaimana
agile development methods (model scrum) digunakan dalam manajemen proyek.

Komposisi tim Sunting

Secara umum komposisi dari sebuah tim pengembang perangkat lunak[8] yaitu:

Owner / Klien, bersama dengan developer sebagai bagian terpenting dalam proyek, tugas dari klien
menentukan fungsi dari perangkat lunak yang akan di buat, melakukan testing dan memberikan
feedback.

Manajer / Scrum Master, bertugas mengkolaborasikan developer dengan klien, membuat dan
mengevaluasi target pengerjaan perangkat lunak.

Sistem Analis, membuat arsitektur sistem dari perangkat lunak yang akan dibuat.
Developer, merupakan titik vital dalam tim, tanpa developer perangkat lunak tidak akan bisa dibuat.

Story Sunting

Story adalah daftar kebutuhan atau fitur yang nanti akan dibuat. Story berisi apa yang klien kehendaki,
dan ditulis dalam bahasa yang dimengerti klien. Dengan kata lain dapat disimpulan Story adalah bagian
terpenting dari Scrum.

Story terdiri dari kolom-kolom berikut ini[9]:

ID – Identifikasi unik, biasanya berupa nomor urut. Hal ini untuk menghindari kehilangan jejak story
kalau kita mengganti namanya.

Nama – Nama story bersifat deskriptif, padat, singkat, dan jelas (2-10 kata), sehingga tim dan klien
memahami kira-kira story yang dibicarakan.

Kepentingan – Derajat kepentingan yang diberikan oleh klien terhadap story. Pemberian derajat
kepentingan biasanya menggunakan deret fibonacci (1,1,2,3,5,dst). Semakin tinggi nilainya maka
semakin tinggi pula prioritas pengerjaannya.

Perkiraan awal – Perkiraan awal tim tentang berapa banyak kerja yang diperlukan untuk
mengimplementasikan sebuah story.

Demo – deskripsi umum bagaimana cara story ini didemokan pada waktu sprint demo (lakukan ini, klik
itu, lalu ini akan muncul,dll).

Sprint Sunting

Sprint (Rapat perencanaan pembuatan perangkat lunak dilakukan 2-8 minggu sekali), yang perlu
diperhatikan saat melaksanakan sprint antara lain[9]:

Tujuan sprint.

Daftar anggota tim harus lengkap.

Sprint backlog (daftar story yang akan diikutkan dalam sprint).

Tanggal demo yang pasti.

Tempat dan waktu yang jelas untuk pelaksanaan sprint berikutnya.

Tim akan melakukan sprint secara simultan sampai perangkat lunak selesei dikerjakan, sebagai contoh:
Sprint 1, tim membuat fungsi login,logout dan demo perangkat lunak akan dilakukan 3 minggu
kemudian. Setelah dilakukan demo untuk mengevaluasi kerja yang dilakukan tim pada Sprint 1, maka
Sprint 1 dianggap selesei. Bahan evaluasi dari Sprint 1 akan dibawa ke Sprint 2 begitu seterusnya sampai
aplikasi selesei dikerjakan.

Kelebihan dan Kekurangan Sunting

Kelebihan Sunting

Beberapa kelebihan dari agile diantaranya[8]:

82% Menambah produktivitas tim.

77% Menambah kualitas perangkat lunak.

78% Menambah kepuasan klien.

37% Menghemat biaya.

Kekurangan Sunting

Sedangkan kekurangan dari agile antara lain:

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.

Sumber (Resources) Sunting

Untuk memperdalam pengetahuan tentang agile development methods, anda bisa mengunjungi website
di bawah ini[10]:

The agile samurai

Secara garis besar buku ini menjelaskan tentang:

Cara membuat perencanaan dan jadwal pembuatan aplikasi.


Karakteristik untuk membuat tim yang tangkas dan bisa memanajemen dirinya sendiri.

Bagaimana cara mengumpulkan persyaratan yang dibutuhkan dengan lebih cepat.

Apa yang harus dilakukan ketika menemukan perencanaan yang tidak sesuai, dan bagaimana dapat
mengoreksinya dengan benar.

Bagaimana mengeksekusi rencana yang ada dengan sumber daya yang tersedia dengan tepat.

The agile manifesto

Merupakan salah situs yang wajib dibaca bila anda ingin belajar tentang agile development methods,
didalamnya anda dapat menemukan informasi diantaranya:

Cara untuk mengembangkan perangkat dengan menggunakan prinsip-prinsip dari agile.

Bagaimana tim berinteraksi selama proses pembuatan perangkat lunak.

12 prinsip agile manifesto.

Agile and lean software development linkedin group

Lean startup

Pivotal tracker

Pivotal tracker merupakan perangkat lunak agile project management dari Pivotal [Link] dalam
perangkat lunak ini terdapat berbagi file dan fungsionalitas manajemen tugas, pelacakan kecepatan dan
perencanaan iterasi, penanda rilis, dan grafik kemajuan.

Trello

Trello merupakan layanan berbasis web yang bisa membantu kita dalam memanajemen proyek yang
sedang dikembangkan baik sendiri atau dalam suatu tim. Di Trello kita dapat membuat pekerjaan lebih
fokus dan terarah.

Asana

Asana merupakan aplikasi alternatif yang sederhana dan intuitif untuk manajemen kerja, baik dalam tim
maupun sendiri.

Iterative and incremental development

Salah satu model pengembangan perangkat lunak dimana pada model ini berawal dari suatu proses
perencanaan dan berakhir pada proses deployment

Iterasi

Referensi
Terakhir disunting 3 bulan yang lalu oleh AABot

HALAMAN TERKAIT

Pembuatan purwarupa perangkat lunak

Scrum

Feature-driven Development (FDD)

Wikipedia

Konten tersedia di bawah CC BY-SA 3.0 kecuali dinyatakan lain.

PrivasiTampilan PC

Dwijaantara's Blog

Agile Method

Dwijaantara

9 tahun yang lalu

Iklan

PENDAHULUAN

Metodologi dalam perangkat lunak digunakan untuk merancang atau membangun suatu perangkat
lunak,dengan perkembangan teknologi yang sangat pesat metodologi perangkat lunak juga terjadi
perubahan atau penambahan requirements. Dari model waterfall sampai dengan model-model
incremental. Semua metodologi yang berkembang sebelumnya tidak mampu menangani kemungkinan
perubahan atau penambahan requirements. Metode pengembangan perangkat lunak telah dilacak
kembali pada tahun 1957. Pada tahun tersebut EA Edmonds telah memperkenalkan proses
pengembangan perangkat lunak adaptif. “Lightwight” merupakan metode pengembangan perangkat
lunak yang berkembang pada tahun 1990, sebagai reaksi terhadap apa yang disebut metode
“heavyweight”. Yang ditandai dengan kritik mereka terhadap metode waterfall
Pada tahun 90-an diperkenalkan dengan metodologi baru yang dikenal dengan nama agile methods,kata
Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Metodologi yang dikenal sebagai agile
methods ini mengutamakan fleksibilitas terhadap perubahan-perubahan yang terjadi selama
pengembangan. Bahkan perubahan ataupun penambahan pada saat fase terakhir pun teratasi apabila
menggunakan metodologi ini.

Agile Methods dikembangkan karena pada metodologi tradisional terdapat banyak hal yang membuat
proses pengembangan tidak dapat berhasil dengan baik sesuai tuntutan user. Konsep Agile Software
Development dicetuskan oleh Kent Beck dan 16 rekannya dengan menyatakan bahwa Agile Software
Development adalah cara membangun software dengan melakukannya dan membantu orang lain
membangunnya sekaligus.

1. Pengertian

Agile methods merupakan salah satu dari beberapa metode yang digunakan dalam pengembangan
sooftware. Agile method adalah jenis pegembangan sistem jangka pendek yang memerlukan adaptasi
cepat dan pengembang terhadap perubahan dalam bentuk apapun.

Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat,
software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih
penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada
mengikuti rencana.

Agile Method juga dapat diartikan sekelompok metodologi pengembangan software yang didasarkan
pada prinsip-prinsip yang sama atau pengembangan system jangka pendek yang memerlukan adaptasi
cepat dari pengembang terhadap perubahan dalam bentuk apapun

1.1. Prinsip Agile Software Development

Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang
teknis dan businessmen, antara developer dan managernya. Ciri lain adalah klien menjadi bagian dari
tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang ditetapkan oleh Agile Alliance.
Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile
Software Development:
1. Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus.

2. Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.

3. Penyerahan hasil/software dalam hitungan waktu beberapa minggu sampai beberapa bulan.

4. Pihak bisnis dan pengembang harus bekerja sama setiap hari selama pengembangan berjalan.

5. Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam
lingkungan yang mendukun dan yang dipercaya untuk dapat menyelesaikan proyek.

6. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien

7. Software yang berfungsi adalah ukuran utama dari kemajuan proyek

8. Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga
perkembangan yang berkesinambungan

9. Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile

10. Kesederhanaan penting

11. Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri

12. Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.
Dua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile. Dengan
prinsip-prinsip tersebur Agile Process Model berusaha untuk menyiasati 3 asumsi penting tentang
proyek software pada umumnya:

1. Kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga
sering berubah seiring berjalannya proyek.

2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang
diperlukan sebelum pembangunan.

3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

Kelebihan dari Agile Method

Meningkatkan kepuasan kepada klien

Pembangunan system dibuat lebih cepat

Mengurangi resiko kegagalan implementasi software dari segi non-teknis

Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.

1.2. Model-model Agile method

Extreme Programmning (XP)

Adaptive Software Development (ASD)

Dynamic Systems Development Method (DSDM)

Scrum Methodology

Crystal

Feature Driven Development (FDD)


Agile Modeling (AM)

Rational Unified Process

1.2.1. Extreme Programmning (XP)

Proyek Pemrograman Extreme pertama dimulai 6 Maret 1996. Extreme Programming adalah salah satu
dari beberapa Proses Agile populer. Sudah terbukti sangat sukses di banyak perusahaan dari berbagai
ukuran dan industri di seluruh dunia.

Extreme Pemrograman berhasil karena menekankan kepuasan pelanggan. Alih-alih memberikan semua
yang anda mungkin inginkan pada tanggal beberapa jauh di masa depan proses ini memberikan
perangkat lunak yang Anda butuhkan saat Anda membutuhkannya. Extreme Pemrograman
memberdayakan pengembang Anda untuk percaya diri menanggapi perubahan kebutuhan pelanggan,
bahkan terlambat dalam siklus hidup.

Extreme Pemrograman menekankan kerja sama tim. Pengelola, pelanggan, dan pengembang semua
mitra setara dalam sebuah tim kolaboratif. Extreme Pemrograman menerapkan, sederhana namun
efektif yang memungkinkan tim lingkungan menjadi sangat produktif. Tim mengorganisir diri mengatasi
masalah untuk menyelesaikannya seefisien mungkin.

Extreme Pemrograman meningkatkan proyek perangkat lunak dalam lima cara penting; komunikasi,
kesederhanaan, umpan balik, rasa hormat, dan keberanian. Extreme Programmer selalu berkomunikasi
dengan pelanggan mereka dan programer sesama. Mereka terus desain mereka yang sederhana dan
bersih. Mereka mendapatkan umpan balik dengan menguji perangkat lunak mereka dimulai pada hari
pertama. Mereka memberikan sistem ke pelanggan sebagai perubahan sedini mungkin dan
melaksanakan seperti yang disarankan. Setiap keberhasilan kecil memperdalam rasa hormat mereka atas
kontribusi yang unik dari masing-masing dan setiap anggota tim. Dengan dasar Extreme pemrogram
dapat berani merespon perubahan kebutuhan dan teknologi.

Aspek yang paling mengejutkan dari Extreme Programming adalah aturan sederhana. Extreme
Pemrograman sangat mirip jig gergaji teka-teki. Ada banyak potongan-potongan kecil. Individual
potongan
Extreme Programming adalah metode pengembangan perangkat lunak yang ringan dan termasuk salah
satu agile methods yang dipelopori oleh Kent Beck, Ron Jeffries, dan Ward Cunningham. Extreme
Programming merupakan agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan
yang sangat terkenal. Sasaran Extreme Programming adalah tim yang dibentuk berukuran antara kecil
sampai medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk
menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang
sangat cepat.

Extreme Programming sebagai sebuah metode yang dinamis diperlihatkan dalam empat values yang
dimilikinya dan keempatnya merupakan dasar-dasar yang diperlukan dalam Extreme Programming. Kent
Beck menyatakan bahwa tujuan jangka pendek individu sering berbenturan dengan tujuan sosial jangka
panjang. Karena itu dibuatlah values yang menjadi aturan, hukuman, dan juga penghargaan. Keempat
values tersebut adalah :

Komunikasi (Communication)

Tugas utama developer dalam membangun suatu sistem perangkat lunak adalah mengkomunikasikan
kebutuhan sistem kepada pengembang perangkat lunak. Komunikasi dalam Extreme Programmning
dibangun dengan melakukan pemrograman berpasangan (pair programming). Developer didampingi
oleh pihak klien dalam melakukan coding dan unit testing sehingga klien bisa terlibat langsung dalam
pemrograman sambil berkomunikasi dengan developer. Tujuannya untuk memberikan pandangan
pengembang sesuai dengan pandangan pengguna sistem.

Kesederhanaan (Simplicity)

XP mencoba untuk mencari solusi paling sederhana dan praktis. Perbedaan metode ini dengan
metodologi pengembangan sistem konvensional lainnya terletak pada proses desain dan coding yang
terfokus pada kebutuhan saat ini daripada kebutuhan besok, seminggu lagi atau sebulan lagi. Lebih baik
melakukan hal yang sederhana dan mengembangkannya besok jika diperlukan.

Umpan Balik (Feedback)

Hal ini diperlukan untuk mengetahui kemajuan dari proses dan kualitas dari aplikasi yang dibangun.
Informasi ini harus dikumpulkan setiap interval waktu yang singkat secara konsisten. Ini dimaksudkan
agar hal-hal yang menjadi masalah dalam proses pengembangan dapat diketahui sedini mungkin. Setiap
feed back ditanggapi dengan melakukan tes, unit test atau system integration dan jangan menunda
karena biaya akan membengkak (uang, tenaga, waktu).
Keberanian (Courage)

Berani mencoba ide baru. Berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung
diperbaiki. Contoh dari courage adalah komitmen untuk selalu melakukan design dan coding untuk saat
ini dan bukan untuk esok. Ketika ada kode yang terlalu rumit, sulit dibaca dan dipahami, tidak sesuai
dengan kemauan pelanggan, dll maka seharusnya kode program seperti itu di refactor (kalau perlu
dibangun ulang). Hal ini menjadikan pengembang merasa nyaman dengan refactoring program ketika
diperlukan.

Extreme Programming menggunakan pendekatan berorientasi objek. Pada aktifitas Perencanaan terjadi
pengumpulan user stories dari klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga dan
lama pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa story yang lebih kecil.
Terjadi pemeriksaan dan pertimbangkan resiko dan aktifitas Desain kegiatannya sederhana yaitu
memanfaatkan kartu CRC (Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class
di konsep OO. Jika temuikan kesulitan, prototype dibangun [ini namanya spike solution].

Dilakukannya refactoring, yaitu mengembangkan desain dari program setelah ditulis. Pada aktifitas
Pengkodean adalah penyiapan unit test sebelum pengkodean dipakai sebagai focus pemrogram untuk
membuat program. Pair programming dilakukan untuk real time program solving dan real time quality
assurance. Proses pengujiannya menggunakan unit test yang dipersiapkan sebelum pengkodean
Menggunakan pendekatan berorientasi objek

Gambar 1. Proses Extreme Programming (XP)

Sebagai sebuah metodologi untuk mengembangkan peragkat lunak Extreme Programming tentu
memiliki siklus hidup. Siklus hidup pada Extreme Programming ini terdapat lima fase yaitu :

Exploration Phase

Planning Phase

Iteration to Release Phase


Productionizing Phase

Maintenance Phase

Death Phase

Gambar 2. Fase Extreme Programming (XP) sebelum dimodifikasi

Pada bagian ini akan dilakukan penambahan fase pada Extreme Programmning yaitu dengan
menyisipkan sebuah fase yang disebut requirements management phase. Fase ini disisipkan tidak
sekuensial tapi paralel dengan fase planning. Tujuan penyisipan secara paralel ini adalah mengurangi
kemungkinan Extreme Programmning keluar dari lingkup agile. Tiga hal yang dilakukan yaitu:

Requirements Management

Pendokumentasian sederhana (simple documenting)

Mempertahankan index card yang telah diimplementasi dengan baik

Gambar 3: Fase pada Extreme Programming (XP) setelah modifikasi

Setelah dilakukan modifikasi terdapat beberapa pengaruh pada practice-nya. Dari dua belas practice
yang terdapat pada Extreme Programmning, ada empat buah practice yang mempunyai singgungan kuat
dengan requirements management yaitu planning game, metaphor, 40-hour week, On-site customer.
Dari keempatnya planning game-lah yang paling besar keterkaitannya dengan requirements. Pada bagian
ini akan dipaparkan yang terjadi pada keempat practice tersebut setelah dilakukan modifikasi pada
Extreme Programmning tersebut.

Planning Game

Berikut ini adalah tabel setelah dilakukan perubahan pada siklus:

NO PHASE BUSINESS DEVELOPMENT

I Exploration phase Write story –

– Estimate story

Split story –
– Summarize stories (simple documenting)

II Commitment phase Sort by value –

– Sort by risk

– Sort by velocity

Choose scope –

III Steering phase Iteration –

– Recovery

New story Re-estimate

– Summarize stories (update simple document)

Tabel 1: Fase pada planning game (setelah modifikasi)

Sebelum modifikasi, pada exploration phase terdapat tiga kegiatan yaitu write story, estimate story, dan
split story. Setelah dilakukan modifikasi satu kegiatan lagi yang dikerjakan oleh pihak development
adalah summarize stories into simple document.

Demikian juga pada steering phase yang pada awalnya hanya terdiri atas kegiatan-kegiatan iteration,
recovery, new story, dan re-estimate, setelah modifikasi ditambah satu lagi yaitu update simple
document. Proses ini sebenarnya sama dengan summarize stories pada exploration phase,
perbedaannya pada steering phase adalah untuk mengantisipasi adanya new story yang dikerjakan oleh
pihak bisnis.

Metaphor

Metaphor merupakan panduan (guidance) dalam melakukan pengembangan secara keseluruhan.


Metaphor di sini memerlukan penjelasan rinci. Requirements yang diperoleh melalui proses summarize
stories tersebut berperan sebagai metaphor, sedangkan penjelasan rincinya ada pada story awal.

40-hour week

Story yang telah selesai ditulis oleh customer langsung dirangkum ke dalam simple document pada fase
requirements management. Terjadi penambahan waktu secara signifikan.
On-site Customer

Komunikasi dengan on-site customer tetap dilakukan terus, termasuk dalam melakukan summarize
stories. Sifatnya hanya merangkum story ke dalam requirements yang akan menjadi feature pada sistem
yang dibuat.

Penerapan Extreme Programmning

Beberapa hal yang harus dipertimbangkan sebelum seseorang masuk dalam dunia Extreme
Programmning adalah sebagai berikut:

1. User harus memahami konteks bisnis yang akan dikembangkan sistemnya, sehingga developer dapat
menangkap sistem secara aplikatif dan dapat mengusulkan teknologi apa yang dapat dikembangkan
dalam sistem barunya.

2. Akan lebih efektif apabila developer pernah menangani proyek pengembangan sistem yang sejenis
sehingga dapat memberikan usulan model sistem baru, di samping alasan bahwa developer telah
memiliki template aplikasi sistem tersebut untuk dijadikan prototype sistem baru. Hal ini akan
berimplikasi kepada kemudahan dalam konstruksi sistem karena dikembangkan berdasarkan template
yang sudah ada.

3. Extreme programming menuntut komunikasi antar developer dan user secara intensif dan komunikasi
internal antar developer secara komprehensif, sehingga akan lebih representatif apabila tahap
pengembangan sistem dilakukan di lokal yang mendukung proses komunikasi tersebut.

Extreme Programmning adalah suatu bentuk pembangunan perangkat lunak yang berbasis nilai
kemudahan, komunikasi, umpan balik, dan keberanian. Bekerja dalam whole team bersama-sama
dengan praktek yang mudah. Dalam Extreme Programming terdapat 12 practices utama yaitu :

Planning Game
Hubungan antara Customer dengan Programer untuk memperkirakan kenbutuhan –kebutuhan dari
Custumer dalam implementasinya.

Small, frequent releases

Memproduksi dengan cepat.

System metaphors

System metaphors antara Customer dengan Programeruntuk menunjukkan semua perkembangan


dengan menjelaskan bagaimana cara kerja system.

Simple design

Perhatiannya pada pendisainnan atau perancngan solusi yang sederhana

Testing (unit testing & TDD)

Pelaksanaan pengujian atau testing keseluruhan

Frequent refactoring

Penyusunan system kembali dengan cara duplikat atau salinan,memperbaiki komunikasi, menambahkan
kelenturan

Pair programming

Dua orang menulis kode pada 1 komputer

Collective code ownership

Siapapun dapat merubah bagian pada pengkodean setiap saat.

Continuous integration
Bagian baru code di gabungkan ke dalam kode dasar

40-hour weak

Max 40 jam kerja seminggu,

On-site customer

Customer harus hadir dan ada setiap saat untuk teamnya.

Coding standards

Terdapat aturan pengkodean dan di ikuti oleh programmer.

Keuntungan dan Kerugian

Keuntungan Extreme Programmning:

Menjalin komunikasi yang baik dengan client. Meningkatkan komunikasi dan sifat saling menghargai
antar developer.

Kerugian Extreme Programmning:

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).

1.2.2. 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 (ASD)
adalah kolaborasi manusia dan tim yang mengatur diri sendiri.

System kerja adaptive software development : Collaboration dan Learning

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 : orang-orang yang bermotivasi tinggi bekerja sama: saling

melengkapi, rela membantu, kerja keras, trampil di bidangnya, dan komunikasikan masalah untuk
hasilkan penyelesaian yang efektif.

Learning: tim pembangun sering merasa sudah tahu semua hal tentang proyek,

padahal tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang proyek
melalui 3 cara:

– Focus group: klien dan pengguna memberi masukan terhadap software

– Formal Technique Reviews: Tim ASD lengkap melakukan review

– Postmortems: Tim ASD lakukan instrospeksi pada kinerja dan proses.

Gambar 4. Proses Adaptive Software Development (ASD)


1.2.3. Dynamic Systems Development Method (DSDM)

Pada Dynamic System Development Method menyajikan kerangka kerja (framework) untuk membangun
dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental
dalam lingkungan yang terkondisikan. Metode ini akan membangun software dengan cepat: 80% dari
proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.

Dynamic System Development Method dapat dikombinasikan dengan Extreme Programmning


menghasilkan kombinasi model proses yang mengikuti Dynamic System Development Method dan
praktek yang sejalan dengan Extreme Programmning.

Dynamic System Development Method memiliki beberapa aaktifitas seperti :

– Feasibility study : siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM

– Business Study: susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan
identifikasi kebutuhan pemeliharaan untuk aplikasi

– Functional model iteration : hasilkan incremental prototype yang perlihatkan fungsi software ke
klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi

– Design and Build Iteration : cek ulang prototype yang dibangun untuk pastikan bahwa prototype
dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja

– Implementation: menempatkan software pada lingkungan sebenar sekalipun belum lengkap, atau
masih ada perubahan.
1.2.4. Scrum Methodology

Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan dikembangkan
selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu komponen
dari metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan dan XP
adalah menekankan metodologi yang berbeda sepasang ujian dulu pemrograman dan pembangunan.

Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan,
memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau wakil pelanggan, dan
pelaksanaan yang bekerja menggunakan rilis iterative dan memiliki tujuan utama untuk mendapatkan
perkiraan berapa lama akan pembangunan. XP lebih lanjut tentang pengembang membantu
menyelesaikan pekerjaan secepat dan maintainably mungkin

Scrum memiliki prinsip yaitu:

– Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama
lain

– Proses dapat beradaptasi terhadap perubahan teknis dan bisnis

– 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 kapanpun diperlukan

Scrum memiliki aktifitas yang meliputi :

Backlog

Backlog adalah daftar kebutuhan yang jadi prioritas klien, dan daftar yang dibuat dapat bertambah

Sprints

Aktifitas Sprints merupakanunit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan
dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30hari). Selama proses ini
berlangsung backlog tidak ada penambahan.

Scrum Meetings

Aktifitas Scrum Meeting merupakan pertemuan yang rutin dilakukan perhari untuk evaluasi apa yang
dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya.

Demo

Aktifitas Demo adalah penyerahan software increment ke klien didemonstrasikan dan dievaluasi oleh
klien.

1.2.5. Crystal

Crystal diperkenalkan oleh Cockburn dan Highsmith, Development yang tidak pada jalur kritis, dapat
menghabikan waktu lebih, mereka yang memperbaiki produk atau membantu oaring yang ada di jalur
proyek kritis.

Karakteristik Crystal :
Secara aktual sebuah model proses keluarga yang memungkinkan manuver berdasar karakteristik
permasalahan

Menyarankan penggunaan workshop refleksi untuk review kebiasaan kerja tim

Selalu murah dan cepat berkomunikasi secara langsung.

Proyek berkembang sesuai ukuran team menjadi lebih atau luas dan metologi akan menjadi lebih tinggi.

1.2.6. Feature Driven Development

Feature Driven Development merupakan model proses praktis untuk keahlian proses software
engineering, Feature merupakan sebuah fungsi yang berharga dimana dapat dilaksanakan.

Keuntungan dari metode feature :

User dapat menggambarkan dengan mudah bentuk system.

Dapat di organisasikan atau diatur ke dallamkelompok bisnis yang hirarki.

Desain dank ode lebih mudah diperiksa secara efektif.

Merancang proyek, penjadwalan dan jalur diarahkan oleh feature.

1.2.7. Agile Modeling

Dalam situasi pembangunan software harus membangun sistem bisnis yang besar dan penting.
Jangkauan dan kompleksitas sistem harus dimodelkan sehingga dapat dimengerti, masalah dapat dibagi
menjadi lebih kecil dan kualitas dapat dijaga pada tiap langkah pembangunan
software. Agile Modeling adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan
system software. Agile Modeling adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk
memodelkan software agar dapat diaplikasian pada software development proyek secara efektif.

Prinsip dalam Agile Modeling :

– Membuat model dengan tujuan: tentukan tujuan sebelum membuat model

– Mengunakan multiple models: tiap model mewakili aspek yang berbeda dari model lain.

– Travel light: simpan model-model yang bersifat jangka panjang saja

– Isi lebih penting dari pada penampilan: modeling menyajikan informasi kepada audiens yang tepat.

– Memahami model dan alat yang yang digunakan untuk membuat software

– Adaptasi secara local

1.2.8. Rational Unified Process

Rational Unified Process, adalah suatu kerangka kerja proses pengembangan perangkat lunak iteratif
yang dibuat oleh Rational Software, suatu divisi dari IBM sejak 2003. RUP bukanlah suatu proses tunggal
dengan aturan yang konkrit, melainkan suatu kerangka proses yang dapat diadaptasi dan dimaksudkan
untuk disesuaikan oleh organisasi pengembang dan tim proyek perangkat lunak yang akan memilih
elemen proses sesuai dengan kebutuhan mereka.
Model ini membagi suatu sistem aplikasi menjadi beberapa komponen sistem dan memungkinkan para
developer aplikasi untuk menerapkan metoda iterative (analisis, disain, implementasi dan pengujian)
pada tiap komponen. Dengan menggunakan model ini, RUP membagi tahapan pengembangan perangkat
lunaknya ke dalam 4 fase sebagai berikut.

– Inception, merupakan tahap untuk mengidentifikasi sistem yang akan dikembangkan. Aktivitas yang
dilakukan pada tahap ini antara lain mencakup analisis sistem eksisting, perumusan sistem target,
penentuan arsitektur global target, identifikasi kebutuhan, perumusan persyaratan perumusan
kebutuhan pengujian, pemodelan diagram UML, dan pembuatan dokumentasi.

– Elaboration, merupakan tahap untuk melakukan disain secara lengkap berdasarkan hasil analisis di
tahap inception. Aktivitas yang dilakukan pada tahap ini antara lain mencakup pembuatan disain
arsitektur subsistem), disain komponen sistem, disain format data disain database, disain
antarmuka/tampilan, disain peta aliran tampilan, penentuan design pattern yang digunakan, pemodelan
diagram UML, dan pembuatan dokumentasi.

– Construction, merupakan tahap untuk mengimplementasikan hasil disain dan melakukan pengujian
hasil implementasi. Pada tahap awal construction, ada baiknya dilakukan pemeriksaan ulang hasil
analisis dan disain, terutama disain pada domain perilaku (diagram sequence) dan domain struktural
(diagram class, component, deployment). Apabila disain yang dibuat telah sesuai dengan analisis sistem,
maka implementasi dengan bahasa pemrogramanan tertentu dapat dilakukan. Aktivitas yang dilakukan
pada tahap ini antara lain mencakup pengujian hasil analisis dan disain (misal menggunakan Class
Responsibility Collaborator untuk kasus pemrograman berorientasi obyek), pendataan kebutuhan
implementasi lengkap (berpedoman pada identifikasi kebutuhan di tahap analisis), penentuan coding
pattern yang digunakan, pembuatan program, pengujian, optimasi program, pendataan berbagai
kemungkinan pengembangan / perbaikan lebih lanjut, dan pembuatan dokumentasi.

– Transition, merupakan tahap untuk menyerahkan sistem aplikasi ke konsumen (roll-out), yang
umumnya mencakup pelaksanaan pelatihan kepada pengguna dan testing beta aplikasi terhadap
ekspetasi pengguna.

Iklan

Kategori: makalah
Tinggalkan sebuah Komentar

Dwijaantara's Blog

Buat situs web atau blog gratis di [Link].

Kembali ke atas

Away Sidik

Rabu, 10 Juli 2013

METODE PROTOTYPING

METODE PROTOTYPING

Menurut Raymond McLeod, prototype didefinisikan sebagai alat yang memberikan ide bagi pembuat
maupun pemakai potensial tentang cara system berfungsi dalam bentuk lengkapnya, dan proses untuk
menghasilkan sebuah prototype sisebut prototyping.

Prototyping adalah proses pembuatan model sederhana software yang mengijinkan pengguna memiliki
gambaran dasar tentang program serta melakukan pengujian awal. Prototyping memberikan fasilitas
bagi pengembang dan pemakai untuk saling berinteraksi selama proses pembuatan, sehingga
pengembang dapat dengan mudah memodelkan perangkat lunak yang akan dibuat. Prototyping
merupakan salah satu metode pengembangan perangat lunak yang banyak digunakan.

Model tersebut dapat berupa tiga bentuk :

1. Prototipe kertas atau model berbasis komputer yang menjelaskan bagaimana interaksi antara
pemakai dan komputer.

2. Prototipe yang mengimplementasikan beberapa bagian fungsi dari perangkat lunak yang
sesungguhnya. Dengan cara ini pemakai akan lebih mendapatkan gambaran tentang program yang akan
dihasilkan, sehingga dapat menjabarkan lebih rinci kebutuhannya.
3. Menggunakan perangkat lunak yang sudah ada. Seringkali pembuat software memiliki beberapa
program yang sebagian dari program tersebut mirip dengan program yang akan dibuat.

Di dalam proses pengembangan, sering kali pemakai / pelanggan hanya dapat mendefinisikan tujuan dan
penggunan software yang dibutuhkan, tetapi tidak dapat mendefinisikan secara rinci kebutuhan
masukan, pengolahan, dan keluarannya. Di sisi lain, pembuat software tidak memiliki kepastian akan hal
tersebut. Hal ini menyebabkan pengembang kurang memperhatikan efisiensi algoritma, kemampuan
sistem operasi dan interface yang menghubungkan manusia dan komputer. Untuk menyelaraskan antara
pelanggan dan pengembang , maka harus dibutuhkan kerjasama yanga baik di antara keduanya sehingga
pengembang akan mengetahui dengan benar apa yang diinginkan pelanggan dengan tidak
mengesampingkan segi-segi teknis. Dan pelanggan akan mengetahui proses-proses dalam
menyelesaikan sistem yang diinginkan. Dengan demikian akan menghasilkan sistem sesuai dengan
jadwal waktu penyelesaian yang telah ditentukan.

Kunci agar model prototype ini berhasil dengan baik adalah dengan mendefinisikan aturan-aturan main
pada saat awal, yaitu pelanggan dan pengembang harus setuju bahwa prototype dibangun untuk
mendefinisikan kebutuhan.

Prototyping merupakan Javascript Framework yang dibuat untuk lebih memudahkan proses dalam
membangun aplikasi berbasis web. Metode protyping sebagai suatu paradigma baru dalam
pengembangan sistem informasi, tidak hanya sekedar suatu evolusi dari metode pengembangan sistem
informasi yang sudah ada, tetapi sekaligus merupakan revolusi dalam pengembangan sistem informasi
manajemen.

Gambar model prototyping

Proses-proses tersebut dapat dijelaskan sebagai berikut:

1. Pengumpulan kebutuhan: developer dan klien bertemu dan menentukan tujuan umum, kebutuhan
yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan berikutnya;

2. Perancangan: perancangan dilakukan cepat dan rancangan mewakili semua aspek software yang
diketahui, dan rancangan ini menjadi dasar pembuatan prototype;

3. Evaluasi Prototype: klien mengevaluasi prototype yang dibuat dan digunakan untuk memperjelas
kebutuhan software.

Terdapat tiga pendekatan utama prototyping, yaitu:


1. THROW-AWAY

Prototype dibuat dan dites. Pengalaman yang diperoleh dari pembuatan prototype digunakan untuk
membuat produk akhir (final), kemudian prototype tersebut dibuang (tak dipakai).

2. INCREMENTAL

Produk finalnya dibuat sebagai komponen-komponen yang terpisah. Desain produk finalnya secara
keseluruhan haya ada satu tetapi dibagi dalam komonen-komponen lebih kecil yang terpisah
(independent).

3. EVOLUTIONARY

Pada metode ini, prototipenya tidak dibuang tetapi digunakan untuk iterasi desain berikutnya. Dalam hal
ini, sistem atau produk yang sebenarnya dipandang sebagai evolusi dari versi awal yang sangat terbatas
menuju produk final atau produk akhir.

Prototyping bekerja dengan baik pada penerapan-penerapan yang berciri sebagai berikut:

1. Resiko tinggi yaitu untuk masalah - masalah yang tidak terstruktur dengan baik, ada perubahan
yang besar dari waktu ke waktu, dan adanya persyaratan data yang tidak menentu.

2. Interaksi pemakai penting. Sehingga sistem harus menyediakan dialog on-line antara pelanggan dan
komputer.

3. Waktu penyelesaian yang cepat.

4. Perilaku pemakai yang sulit ditebak.

5. Sistem yang inovatif yaitu system yang membutuhkan cara penyelesaian masalah dan penggunaan
perangkat keras yang mutakhir.

Untuk memodelkan sebuah perangkat lunak, metode prototyping memiliki tahapan-tahapan di dalam
proses pengembangannya. Tahapan inilah yang menentukan keberhasilan dari sebuah software.
Pengembang perangkat lunak harus memperhatikan tahapan dalam metode prototyping agar software
finalnya dapat diterima oleh pemakai. Dan tahapan-tahapan dalam prototyping tersebut adalah sebagai
berikut :

1. Pengumpulan kebutuhan

Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak,


mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.

2. Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian
kepada pelanggan (misalnya dengan membuat input dan format output).

3. Evaluasi protoptyping

Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai dengan
keinginan pelanggan. Jika sudah sesuai maka langkah keempat akan diambil. Jika tidak, maka prototyping
direvisi dengan mengulang langkah 1, 2 , dan 3.

4. Mengkodekan system

Dalam tahap ini prototyping yang sudah disepakati diterjemahkan ke dalam bahasa pemrograman yang
sesuai.

5. Menguji system

Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum
digunakan. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur dan
lain-lain.

6. Evaluasi Sistem

Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan . Jika
sudah, maka langkah ketujuh dilakukan, jika belum maka mengulangi langkah 4 dan 5.

7. Menggunakan system

Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.

Berikut ini adalah jenis-jenis prototyping, yaitu :

1. Feasibility prototyping

Digunakan untuk menguji kelayakan dari teknologi yang akan digunakan untuk system informasi yang
akan disusun.

2. Requirement prototyping

Digunakan untuk mengetahui kebutuhan aktivitas bisnis user.

3. Desain prototyping

Digunakan untuk mendorong perancangan system informasi yang akan digunakan.

4. Implementation prototyping
Merupakan lanjutan dari rancangan, prototype ini langsung disusun sebagai suatu system informasi yang
akan digunakan.

Teknik-teknik prototyping meliputi:

1. Perancangan Model

Perancangan awal software oleh pengembang untuk dimodelkan sebagai gambaran awal kepada
user/pengguna.

2. Perancangan Dialog

Perancangan menu-menu pada software yang dibuat, dengan maksud agar user/pengguna dapat dengan
mudah menggunkaannya.

3. Simulasi

Proses percobaan software kepada calon user sebelum software dinyatakan layak pakai.

Keunggulan dan Kelemahan Prototyping adalah sebagai berikut :

A. Keunggulan prototyping :

1. Adanya komunikasi yang baik antara pengembang dan pelanggan.

2. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.

3. Pelanggan berperan aktif dalam pengembangan system.

4. Lebih menghemat waktu dalam pengembangan system.

5. Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya

B. Kelemahan prototyping :

1. Pelanggan kadang tidak melihat atau menyadari bahwa perangkat lunak yang ada belum
mencantumkan kualitas perangkat lunak secara keseluruhan dan juga belum memikirkan kemampuan
pemeliharaan untuk jangka waktu lama.

2. Pengembang biasanya ingin cepat menyelesaikan proyek. Sehingga menggunakan algoritma dan
bahasa pemrograman yang sederhana untuk membuat prototyping lebih cepat selesai tanpa memikirkan
lebih lanjut bahwa program tersebut hanya merupakan cetak biru sistem .

3. Hubungan pelanggan dengan komputer yang disediakan mungkin tidak mencerminkan teknik
perancangan yang baik.
Away Sidik di 11.45

Berbagi

8 komentar:

imam. k3 Januari 2014 16.05

gan,, pengertian prototipe ini dapat dari mana???

Balas

Priyo Aji9 Maret 2016 05.25

sumber aslinya dari mana kalau boleh tahu ??

terima kasih

Balas

boy Sandi20 Mei 2018 08.09

minta bantuan...

kenapa kg kamu ngambil metode THROW-AWAY PROTOTYPING?

sebutkan

Balas

Deta8 Mei 2019 08.45

lain kali kalau nulis artikel , tolong disertakan sumber asli nya !! thx
Balas

Unknown10 September 2019 01.43

oi

Balas

Balasan

Unknown10 September 2019 01.43

opo

Unknown10 September 2019 01.43

luwe

Unknown10 September 2019 01.43

manganlah

Balas

Beranda

Lihat versi web

Diberdayakan oleh Blogger.


[Link]

Anda mungkin juga menyukai