Anda di halaman 1dari 25

TUGAS I

Mata Kuliah

: Rekayasa Perangkat Lunak

Dosen Pengampu : Tri Astoto Kurniawan, S.T, M.T,


Ph.D
Kelompok 3

: 1. Ahsanun Naseh Khudori 156150100011002


2. Bayu Sutawijaya

156150100011009

3. Rizdania

156150100011013

4. Dennys Rizky Eldian

156150100011016

REKAYASA PERANGKAT LUNAK


12

A.

PENDAHULUAN
Software Engineering merupakan cabang dari ilmu engineering (teknik)

yang terkait dengan pengembangan produk software yang menggunakan prinsipprinsip, metode dan prosedur ilmiah yang terdefinisikan dengan baik. Software
engineering akan menghasilkan sebuah produk software yang efisien dan reliable
(terpercaya).
Software engineering merupakan pengaplikasian suatu pendekatan
sistematis, disiplin dan terukur terhadap pengembangan, operasional dan
perawatan dari software.
Untuk membangun suatu produk software tersebut, di dalam software
engineering terdapat tahap-tahap terstruktur yang urut, terdefinisikan dengan baik,
yang disebut SDLC (Software Development Life Cycle). SDLC terdiri dari
serangkaian langkah-langkah yang harus diikuti untuk mendesain dan
mengembangkan produk software secara efisien.

Gambar 1. Diagram SDLC


Kerangka SDLC terdiri dari langkah-langkah berikut:
1. Communication
Langkah pertama adalah dimana user menginisiasi permintaan terhadap
produk software yang diinginkan. User menghubungi service provider dan
menegoisasikan produk software yang diinginkan oleh user tersebut.

REKAYASA PERANGKAT LUNAK


12

2.

Requirement gathering
Langkah ini mengarah kepada pekerjaan dari tim pengembangan software
untuk melaksanakan tugasnya. Tim tersebut melakukan diskusi terhadap
permasalahan-permasalahan dan mencoba menampung informasi sebanyak
mungkin dari keinginan-keinginan user yang nantinya menghasilkan dokumen
berupa system requirements dan functional requirements. Keinginan tersebut
dikumpulkan dengan menggunakan beberapa cara. Di antaranya adalah:

Mempelajari sistem yang sudah ada / sudah di pakai sebelumnya

Mengatur wawancara antara user dan pengembang

Mengacu kepada database yang ada

Mengumpulkan jawaban dari kuisioner

3. Feasibility study
Setelah proses requirement gathering, tim sampai pada rencana kasar dari
proses software. Pada tahap ini tim menganalisa apakah sebuah software dapat
didesain untuk memenuhi permintaan dari user, dan apakah ada kemungkinan
dari software tersebut menjadi tidak berguna. Selain itu juga dilakukan analisa
apakah proyek tersebut secara finansial, praktek, dan teknologi dapat
dilakukan untuk diaplikasikan baik oleh pengembang maupun user. Dalam
penyelesaian permasalahan ini terdapat banyak algoritma yang tersedia yang
akan membantu pengembang untuk memutuskan kesesuaian dari sebuah
proyek software.
4. System analysis
Pada tahap ini pengembang memutuskan sebuah roadmap rencana dan
menawarkan model software terbaik yang sesuai untuk proyek tersebut.
System Analysis termasuk memahami batasan produk software, mempelajari
sistem yang berkaitan dengan masalah atau perubahan-perubahan yang harus
dilakukan terhadap sistem yang telah ada sebelumnya, mengidentifikasi
pengaruh dari proyek tersebut terhadap user dan personilnya.
5. Software design
Langkah selanjutnya adalah membawa semua informasi tentang requirement
dan analisa kemudian memulai mendesain produk software. Input dari user

REKAYASA PERANGKAT LUNAK


12

dan informasi yang dikumpulkan pada tahap requirement gathering


merupakan input pada tahap ini. Output pada tahap ini berupa dua bentuk
desain yaitu desain logic dan desain fisik. Para engineer menghasilkan
diagram logic, data flow diagram, dan pseudo-code (untuk kasus tertentu).
6. Coding
Tahap ini disebut juga fase/tahap programming. Penerapan desain software
dimulai dalam bentuk menulis kode program dalam bahasa pemrograman
yang sesuai dan membangun program yang dapat dieksekusi dengan bebas
kesalahan dan secara efisien.
7

Testing
Ada yang mengatakan kalau 50% dari keseluruhan proses membangun
software harus diuji. Kesalahan mungkin saja akan mengacaukan software.
Pengujian tersebut dilakukan ketika fase coding dilakukan oleh pengembang
dan melalui pengujian yang dilakukan oleh tenaga-tenaga ahli. Misalnya
pengujian modul, program dan produk, pengujian dari pengembang itu sendiri
serta pengujian saat telah diterima user. Kesalahan yang ditemukan lebih awal
dan segera dilakukan perbaikan merupakan kunci dari software yang reliable.

Integration
Pada tahapan ini software diintegrasikan dengan library, database dan
program yang lain.

9. Implementation
Pada tahapan implementation ini merupakan tahap menginstal software pada
mesin user. Pada saat itu software membutuhkan konfigurasi setelah diinstal
pada user. Software tersebut diuji apakah dapat beradaptasi dengan sistem
yang telah ada. Dan apabila terdapat masalah dengan integrasi, maka masalah
itu dipecahkan pada tahap implementation ini.
10. Operation and maintenance
Tahap ini memastikan operasi software berada pada tahap efisien dan minim
eror. Jika diperlukan maka user akan ditraining atau diberikan dokumen
tentang

bagaimana

mengoperasikan

software.

Software

dilakukan

pemeliharaan secara rutin dengan cara memperbaharui kode sesuai dengan


perubahan yang terjadi. Perubahan tersebut dilakukan di tempat user. Fase ini

REKAYASA PERANGKAT LUNAK


12

mungkin akan menemui tantangan berupa bugs tersebunyi dan masalah yang
tidak teridentifikasi di dunia nyata.
Terdapat beberapa model SDLC yang dapat digunakan untuk membantu
pengembang memilih strategi untuk mengembangkan software. Masing-masing
model memiliki kumpulan tools, metode, dan prosedur yang dijabarkan secara
jelas dan mendefinisikan SDLC. Model-model tersebut di antaranya adalah
waterfall model, V-model, RAD dan AGILE.
B. WATERFALL MODEL
Model waterfall adalah proses pengembangan software
yang

bersifat

sekuensial

dimana

seluruh

tahapan

proses

dilakukan secara linear (seperti aliran air terjun). Metode ini


dikenalkan oleh Winston W.Royce pada tahun 1970 yang pada
saat itu disebut sebagai siklus klasik. Inti dari model waterfall
adalah pengerjaan dari suatu sistem yang terdiri dari beberapa
fase. Fase tersebut harus diselesaikan secara berurutan dan
dapat

berpindah

ke

tahap

selanjutnya

hanya

jika

fase

sebelumnya telah selesai dilakukan. Diagram model waterfall


dapat dilihat pada gambar 2.

Gambar 2. Diagram Model Waterfall


Model

Waterfall

terdiri

dari

fase

yaitu

analisa

requirement, desain sistem dan software, implementasi dan

REKAYASA PERANGKAT LUNAK


12

pengujian

unit,

integrasi

dan

pengujian

sistem,

dan

pemeliharaan.
1. Analisa requirement.
Fase ini sering dikenal sebagai
Specification

(SRS).

Fase

ini

Software Requirements
dilakukan

dengan

cara

mengkonsultasikan kepada pengguna sistem tentang layanan,


batasan, dan tujuan dari sistem. Semua requirement dari
sistem

yang

akan

dikembangkan

di

analisa

dan

didokumentasikan pada dokumen spesifikasi requirement.


2. Desain sistem dan software .
Fase ini merupakan proses dari perencanaan dan pemecahan
masalah dari solusi software yang akan dikerjakan. Proses
desain

sistem

mengalokasikan

semua

requirement

baik

hardware maupun software dengan membangun arsistektur


sistem secara keseluruhan. Proses ini berfokus pada desain
algoritma, desain arsitektur software , skema konseptual
database dan design logical diagram, desain konsep, desain
Graphical User Interface (GUI), dan desain struktur data.
3. Implementasi dan pengujian unit.
Dalam fase ini, desain software direalisasikan dari seluruh
requirement dan blueprints sebagai serangkaian program
atau unit program. Pada fase ini sistem dikembangkan
menjadi

unit-unit

coding

kecil.

Seluruh

unit

dilakukan

pengujian untuk verifikasi bahwa setiap unit telah memenuhi


spesifikasinya.
4. Integrasi dan pegujian sistem.
Pada fase ini modul yang dibagi menjadi unit-unit akan
diintegrasikan dan diuji sebagai sistem yang lengkap untuk
memastikan bahwa requirement software telah dipenuhi.
Setelah dilakukanpengujian, sistem Software akan diberikan
kepada pengguna sistem.

REKAYASA PERANGKAT LUNAK


12

5. Operasi dan Pemeliharaan.


Pada fase ini setelah sistem diinstall dan digunakan oleh
pengguna

sistem,

maka

dilakukan

pemeliharaan

yang

meliputi koreksi dari kesalahan yang tidak ditemukan pada


tahap sebelumnya, perbaikan implementasi unit sistem, dan
jika terdapat requirement baru sebagai proses peningkatan
layanan sistem
Setiap

metode

pengembangan

software

memiliki

kelebihan dan kekurangan masing-masing, adapun kelebihan dan


kekurangan menggunakan metode waterfall adalah seperti pada
tabel 1 di bawah ini.

REKAYASA PERANGKAT LUNAK


12

Tabel 1. Kelebihan Dan Kekurangan Model Waterfall


KELEBIHAN
KEKURANGAN
1. Software requirement telah 1. Jika terjadi perubahan pada
jelas

sebelum

dilakukan

pengembangan.
2. Mudah

diterapkan
daya

dibutuhkan

bagian

maka

perubahan juga terjadi pada


karena

menganut model linear.


3. Sumber

satu
bagian

lainnya

yang

mengakibatkan
yang

dalam

kebingungan

pada

tim

proyek.

pengimplementasian model 2. Anggota tim proyek harus


ini tidak banyak.

menunggu

anggota

tim

proyek lain menyelesaikan


fase

sebelumnya

dapat

supaya

mengerjakan

fase

selanjutnya sehingga kinerja


tim kurang produktif.
3. Model

ini

tidak

dapat

diterapkan bagi pengguna


sistem

yang

tidak

dapat

mengutarakansemua
requirement di awal.
4. Pengguna

sistem

dapat

menilai

kualitas

dari

software hanya di akhir.


Model waterfall dapat digunakan ketika requirement telah
dipahami dengan baik dan cenderung tidak akan berubah selama
pembuatan sistem. Model waterfall juga masih sering dipakai
untuk lebih memudahkan dalam pengerjaan proyek software
secara keseluruhan karena merupakan model manajemen secara
umum.

REKAYASA PERANGKAT LUNAK


12

C. V-MODEL
V-model menyediakan sarana pengujian dari software di setiap tahap dan
alurnya dapat dibolak-balik. Pada setiap tahap, test plans dan test cases diciptakan
untuk memverifikasi dan menvalidasi produk sesuai permintaan pada tahap
tersebut. Misalnya pada tahap requirement gathering, tim penguji mempersiapkan
seluruh test case yang berhubungan dengan requirement. Kemudian ketika produk
dikembangkan dan siap untuk dilakukan pengujian, test case dari tahap ini
memverifikasi software terhadap validitas requirement-nya. Hal ini membuat baik
verifikasi dan validasi berjalan secara paralel. V-model ini juga dikenal dengan
model verifikasi dan validasi Diagram v-model dapat dilihat pada gambar 3.

Gambar 3. Diagram v-model.


Tahap-tahap dalam v-model adalah sebagai berikut.
1. Requirements
Tahap requirement gathering dan sistem analis ini mengawali life cycle model
mirip seperti waterfall model. Tetapi dalam model ini sebelum pembangunan
software dimulai, akan dilakukan pembuatan sebuah system test plan. Test
plan ini fokus kepada penyamanaan spesifikasi berdasarkan fungsionalitasnya
pada tahap requirements gathering.
2. Fase High-Level Design (HLD)

REKAYASA PERANGKAT LUNAK


12

Pada fase ini fokus kepada arsitektur dan desain system. Tahap ini mencakup
garis besar dari solusi, platform, sistem, produk, dan layanan/proses.
Sebuah Integration Test plan dibuat pada tahap ini yang bertugas untuk
menguji kemampuan sistem software tersebut untuk bekerja bersama.
3. Fase Low-Level design (LLD)
Fase ini merupakan tahap dimana komponen-komponen software yang
sebenarnya didesain. Fase ini mendefinisikan actual logic untuk setiap
komponen sistem. Diagram class dengan semua methods dan relasi antar class
dibuat dalam LLD. Selain itu component test dibuat dalam tahap ini.
4. Fase impelementasi
Fase ini merupakan tempat dimana semua coding dilakukan. Ketika sebuah
coding selesai, sebuah jalur eksekusi mengikuti di bagian kanan dari V model
ini dimana test plans yang dibuat sebelumnya digunakan.
5. Coding
Fase ini berada pada bagian dasar dari V model. Desain modul dikonversi
menjadi program (coding) oleh pengembang.
Setiap metode pengembangan software meiliki kelebihan
dan

kekurangan

masing-masing,

adapun

kelebihan

dan

kekurangan menggunakan metode v-model adalah seperti pada tabel


2 di bawah ini.
Tabel 2. Kelebihan Dan Kekurangan V-Model
KELEBIHAN
1. Sederhana dan mudah diterapkan.

KEKURANGAN
1. Sangat kaku dan kurang fleksibel

2. Pengujian seperti perencanaan dan 2. Software


pengujian
sebelum

desain
coding.

dilakukan
Hal

ini

menghemat banyak waktu dimana

dibangun

selama

tahap implementation sehingga tidak


ada prototype software yang dibuat di
awal.

kemungkinan berhasil lebih tinggi 3. Jika terjadi perubahan di tengah


dibanding pada waterfall model.
3. Pelacakan
secara

kekurangan

proaktif

dimana

(cacat)
cacat

perjalanan maka dokumen pengujian


beserta dokumen requirement harus
dilakukan update.

ditemukan pada tahap awal.

REKAYASA PERANGKAT LUNAK


12

4. Menghindari turunan kekurangan


(karena sudah ditemukan di tahap
awal).
V-model ini seharusnya digunakan untuk proyek skala kecil sampai
menengah dimana requirement telah didefinisikan dan dipastikan secara jelas.
Model ini juga seharusnya dipilih ketika sumber daya teknis cukup tersedia ketika
dibutuhkan dengan keahlian teknis. User harus memiliki requirement yang sudah
pasti pada saat memilih pendekatan v-model karena tidak ada prototype yang
dibuat diawal. Sehingga pada v-model akan selalu ada resiko yang lebih tinggi
yang akan muncul ketika berhadapan dengan keinginan user.
D. RAPID APPLICATION DEVELOPMENT (RAD)
Rapid

Application

Development (RAD)

prototyping adalah

strategi

tergolong

teknik

dalam

atau rapid

pembangunan software
incremental

(bertingkat).

yang
RAD

menekankan pada siklus pembangunan pendek, singkat, dan


cepat. Waktu yang singkat adalah batasan yang penting untuk
model ini. Rapid application development menggunakan metode
iteratif (berulang) dalam mengembangkan sistem di mana
working

model

pengembangan

sistem

dikonstruksikan

dengan

tujuan

di

awal

menetapkan

tahap

kebutuhan

(requirement) user. RAD merupakan gabungan dari bermacammacam teknik terstruktur dengan teknik prototyping dan teknik
pengembangan joint

application untuk

mempercepat

pengembangan software.
Dari definisi-definisi konsep RAD ini, dapat dilihat bahwa
pengembangan software dengan menggunakan metode RAD ini
dimaksudkan
software

untuk
Metode

model waterfall,

meminimalisir
RAD

dimana

adalah

waktu
sebuah

pengembangan

pengembangan
modifikasi

aplikasi

dari

dilakukan

REKAYASA PERANGKAT LUNAK


12

secara cepat dengan menggunakan pendekatan konstruksi


berbasis komponen. Jika tiap kebutuhan dan ruang lingkup projek
telah diketahui dan didefinisikan, dengan menggunakan metode
RAD

memungkinkan

tim

pengembang

untuk

menciptakan

sebuah software yang memiliki fitur sesuai yang diinginkan oleh


user dalam jangka waktu yang singkat. Sehingga, implementasi
metode RAD akan berjalan maksimal jika pengembang aplikasi
telah merumuskan kebutuhan dan ruang lingkup pengembangan
aplikasi dengan baik.
Alur pengembangan software dengan menggunakan rapid
application development sebagaimana pada gambar 4 berikut.

Gambar 4. Fase Pengembangan Menggunakan Metode


Rapid Application Development (RAD)

Dari gambar 4 dapat dijelaskan bahwa pengembangan


software

dengan menggunakan metode RAD terdapat 3 fase

yang dapat dijelaskan sebagai berikut:


1. Fase Requirement Planning (Rencana Kebutuhan Sistem)

REKAYASA PERANGKAT LUNAK


12

Pada tahap ini, user dan pengembang software yang diwakili


oleh analyst system melakukan pertemuan untuk melakukan
identifikasi tujuan pengembangan software

dan melakukan

identifikasi kebutuhan informasi untuk mencapai tujuan, untuk


menggali masalah-masalah organisasi yang bisa diselesaikan
dengan teknologi informasi dengan bersandar pada visi dan
misi organisasi. Hal ini dimaksudkan adanya pesetujuan dari
kedua belah pihak, yakni antara user dan pengembang
software . Pada fase ini, analyst system melakukan identifikasi
dan kebutuhan informasi bukan hanya dari 1 tingkatan
organisasi, melainkan beberapa tingkatan organisasi sehingga
informasi

yang

dibutuhkan

dan

system

system

yang

diinginkan oleh masing-masing user dapat terpenuhi dengan


baik. Model pertemuan seperti ini sering disebut dengan
istilah Joint Application Development.
2. Fase Design Workshop (Proses Desain)
Pada fase ini, analyst system melakukan presentasi usulan
desain software , dan melakukan perbaikan-perbaikan jika
terdapat ketidaksesuaian antara user dengan system analyst.
Pada

tahap

ini

keaktifan

user

yang

terlibat

sangat

mempengaruhi keberhasilan pada tahap ini. Hal seperti sering


disebut

dengan

istilah

Group

Decision

Support

System

(GDSS). Pada beberapa kasus GDSS merupakan suatu langkah


yang ideal, karena user dan analyst system dapat secara
bersama-sama

melakukan

persetujuan

terhadap

desain

software .
3. Fase Implementation (Implementasi)
Pada fase ini, sudah harus ada kesepakatan antara analyst
system

dan

user,

sehingga

programmer

melakukan

REKAYASA PERANGKAT LUNAK


12

pengembangan system, menjadikan desain system menjadi


sebuah software . Setelah software
maupun

keseluruhan,

maka

selesai, baik sebagian

dilakukan

proses

pengujian

terhadap software tersebut sebelum diimplementasikan pada


suatu organisasi. Pada saat ini, user bisa memberikan
tanggapan kepada software

yang dibuat serta persetujuan

terhadap system tersebut.


Jika kita amati secara seksama dari fase pengembangan
software menggunakan metode RAD adalah sebagai berikut:
a. Pengembang membuat prototype berdasarkan kebutuhankebutuhan yang sudah didefinisikan sebelumnya
b. Analyst dan desainer sistem melakukan penilaian terhadap
prototype
c. User melakukan uji coba pada prototype dan memberikan
masukan mengenai kebutuhan-kebutuhan yang kurang.
d. User dan developer melakukan pertemuan untuk memberikan
penilaian

terhadap

produk

secara

bersama-sama,

menyesuaikan kebutuhan serta memberikan komentar apabila


diperlukan perubahan.
e. Semua kebutuhan akan sistem dan perubahan-perubahan
yang

terjadi

dilakukan

proses

timeboxed

dengan

mempunyai 2 kemungkinan :

Perubahan yang tidak dapat ditampung seperti yang sudah


direncanakan harus dihilangkan.

Jika

diperlukan,

kebutuhan-kebutuhan

yang

bersifat

sekunder ditiadakan
Setiap metode pengembangan software meiliki kelebihan
dan

kekurangan

masing-masing,

adapun

kelebihan

dan

kekurangan menggunakan metode RAD adalah seperti pada


tabel 3 di bawah ini.

REKAYASA PERANGKAT LUNAK


12

REKAYASA PERANGKAT LUNAK


12

Tabel 3. Kelebihan Dan Kekurangan V-Model


1.

2.

3.

KELEBIHAN
Penghematan

KEKURANGAN
waktu 1. Dengan metode RAD, analysist

dalam keseluruhan fase

system berusaha mepercepat

projek dapat dicapai.

projek dengan terburu-buru.

RAD

mengurangi 2. Kelemahan

dengan waktu dan perhatian

berkaitan dengan biaya

terhadap detail. Aplikasi dapat

projek dan sumberdaya

diselesaikan secara lebih cepat,

manusia.

tetapi

RAD

sangat

yang

aplikasi

berfokus

waktu

pada

mengarahkan

penekanan
permasalahan-

permasalahan organisasi yang


seharusnya diarahkan.
menyulitkan programmer yang

Perubahan

desain

dapat

berpengaruh
cepat

lebih
dengan

dibandingkan

tidak

berpengalaman

menggunakan prangkat ini di


mana programmer dan analyst
dituntut

untuk

menguasai

dengan pendekatan SDLC

kemampuan-kemampuan baru

tradisional.

sementara

Sudut
disajikan

pandang
dalam

user

sistem

sama

fungsi

sistem

atau

antarmuka pengguna.

pada

mereka

saat

harus

yang

bekerja

mengembangkan sistem.

akhir baik melalui fungsi- 4. Hanya

6.

mampu

penyelesaian 3. RAD

projek.
sistem

tidak

terhadap

pengembangan

5.

berkaitan

seluruh kebutuhan yang

membantu

4.

yang

kecepatan

mengutamakan
dibandingkan

dengan biaya dan kualitas.

RAD menciptakan rasa


kepemilikan yang kuat di
antara seluruh pemangku
kebijakan projek.

7.

Mudah untuk diamati

REKAYASA PERANGKAT LUNAK


12

karena

mengguna-kan

model

prototype,

sehingga

user

mengerti

akan

lebih
sistem

yang dikembangkan.
8.

Lebih fleksibel karena


pengembang

dapat

melakukan proses desain


ulang

pada

saat

yang

bersamaan.
Pengembangan software

dengan menggunakan metode

rapid application development baik digunakan jika pada kondisi


sebagai berikut :
1. Sistem berjalan sendiri (standalone).
2. Kinerja dan kehandalah software bukan faktor terpenting.
3. Distribusi produk yang bersifat sempit.
4. Ruang lingkup software

yang dikembangkan sudah jelas

secara batasan dan skup yang akan dikerjakan.


5. Kehandalan dari sistem bukan faktor terpenting.
6. Membutuhkan teknologi yang tidak terlalu baru (lebih dari 1
tahun).
7. Sistem dapat dipecah-pecah menjadi bagian-bagian yang
lebih kecil.

E. AGILE
Agile

Development

Methods

metodologi pengembangan software

adalah

sekelompok

yang didasarkan pada

prinsip-prinsip yang sama atau pengembangan sistem jangka


pendek yang memerlukan adaptasi cepat dari pengembang
terhadap perubahan dalam bentuk apapun. Agile memiliki

REKAYASA PERANGKAT LUNAK


12

pengertian bersifat cepat, ringan, bebas bergerak, dan waspada.


Sehingga saat membuat software

dengan menggunakan agile

development methods diperlukan inovasi dan responsibiliti yang


baik antara tim pengembang dan klien agar kualitas dari
software

yang dihasilkan bagus dan kelincahan dari tim

seimbang.
Secara

garis

besar

tujuan

dirumuskannya

agile

development methods, yaitu:


1. High-value & working App system
Diharapkan dengan memakai agile development methods
dapat dihasilkan software

yang mempunyai nilai jual yang

tinggi, biaya pembuatan bisa di tekan dan software

bisa

berjalan dengan baik.

2. Iterative, incremental, evolutionary


Agile adalah metode pengembangan software

yang iteratif,

selalu mengalami perubahan, dan evolusioner. Tim harus


bekerja dalam waktu yang singkat (biasanya 1-3 minggu) dan
juga selalu menambah fungsionalitas dari software

sesuai

dengan kebutuhan klien.


3. Cost control & value-driven development
Salah satu tujuan dari agile yaitu pengembangan software
disesuaikan dengan kebutuhan pengguna, tim bisa dengan
cepat

merespon

sehingga

waktu

kebutuhan
dan

biaya

yang

diinginkan

pembuatan

pengguna

software

bisa

dikontrol.
4. High-quality production
Walaupun biaya pembuatan software bisa ditekan dan proses
pembuatan bisa dipercepat, tetapi kualitas dari software yang
dibuat harus tetap dijaga. Dengan melakukan tes setiap

REKAYASA PERANGKAT LUNAK


12

fungsionalitas software

setelah selesai dibuat berarti agile

juga mengakomodir kebutuhan ini.


5. Flexible & risk management
Pertemuan dengan klien untuk melakukan tes software sering
dilakukan sehingga fungsionalitas software

mudah diubah

dan akhirnya kegagalan software pun bisa diminimalisir.


6. Collaboration
Dengan menggunakan agile, tim pengembang diharuskan
sering bertemu untuk membahas perkembangan proyek dan
feedback dari klien yang nantinya akan ditambahkan dalam
software , sehingga tim bisa berkolaborasi dengan maksimal.
7. 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

mengkolaborasikan

manajer
developer

tim
software

hanya

bertugas

dengan

klien.

Sehingga terciptalah tim yang solid.


Agile development methods terdefinisi dalam empat nilai,
biasa di sebut Agile Alliances Manifesto, diantaranya:
1. Interaksi antar anggota tim 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 software tidak akan berjalan sesuai rencana.
2. Software yang berfungsi lebih penting daripada dokumentasi
yang lengkap.
Saat melakukan proses demonstrasi kepada klien, software
yang berfungsi dengan baik akan lebih berguna daripada
dokumentasi yang lengkap.

REKAYASA PERANGKAT LUNAK


12

3. Kolaborasi dengan klien lebih penting dari pada negosiasi


kontrak.
Salah satu ciri dari agile adalah klien menjadi bagian dari tim
pengembangan software . Kolaborasi yang baik dengan klien
saat proses pembuatan software

sangatlah penting ketika

menggunakan agile. Karena fungsi-fungsi dari software yang


dikembangkan

harus

terus

menerus

dibicarakan

dan

diimprovisasi disesuaikan dengan keinginan klien.


4. Respon terhadap perubahan lebih penting daripada mengikuti
rencana.
Agile development methods berfokus terhadap kecepatan
respon tim ketika klien menginginkan perubahan saat proses
pembuatan software .

Gambar 5. Diagram Agile


Agar agile development methods berhasil diterapkan oleh
suatu tim, maka tim tersebut harus mengikuti dua belas prinsip
yang ditetapkan oleh Agile Alliance, yaitu:
1. Prioritas utama proses agile adalah memuaskan klien dengan
menghasilkan software yang bernilai dengan cepat dan rutin.

REKAYASA PERANGKAT LUNAK


12

2. Menyambut perubahan kebutuhan, walaupun terlambat dalam


pengembangan

software

Proses

Agile

memanfaatkan

perubahan untuk keuntungan kompetitif klien.


3. Menghasilkan software yang bekerja secara rutin, dari jangka
waktu beberapa minggu sampai beberapa bulan, dengan
preferensi kepada jangka waktu yang lebih pendek.
4. Rekan bisnis dan pengembang software harus bekerja sama
tiap hari sepanjang proyek.
5. Kembangkan proyek di sekitar individual yang termotivasi.
Berikan mereka lingkungan dan dukungan yang mereka
butuhkan,

dan

percayai

mereka

untuk

menyelesaikan

pekerjaan dengan baik.


6. Metode yang paling efisien dan efektif untuk menyampaikan
informasi dari dan dalam tim pengembang software

adalah

dengan komunikasi secara langsung.


7. Software yang bekerja adalah ukuran utama kemajuan.
8. Proses agile menggalakkan pengembangan berkelanjutan.
Sponsor-sponsor, pengembang-pengembang, dan penggunapengguna dapat mempertahankan kecepatan tetap secara
berkelanjutan.
9. Perhatian

yang

berkesinambungan

terhadap

keunggulan

teknis dan rancangan yang baik meningkatkan Agility.


10.

Kesederhanaan

(memaksimalkan

sumber

daya

yang

tersedia) adalah hal yang amat penting.


11.

Arsitektur, kebutuhan, dan rancangan software

terbaik

muncul dari tim yang yang dapat mengorganisir diri sendiri.


12.

Secara

berkala,

bagaimana

untuk

tim

pengembang

menjadi

lebih

berefleksi
efektif,

tentang
kemudian

menyesuaikan dan menyelaraskan kebiasaan bekerja mereka.


Agile bekerja berdasarkan 3 aspek yaitu:
1. Komposisi tim

REKAYASA PERANGKAT LUNAK


12

Secara

umum

komposisi

dari

sebuah

tim

pengembang

software yaitu:

Owner / Klien, bersama dengan developer sebagai bagian


terpenting dalam proyek, tugas dari klien menentukan
fungsi dari software yang akan di buat, melakukan testing
dan memberikan feedback.

Manajer / Scrum Master, bertugas mengkolaborasikan


developer dengan klien, membuat dan mengevaluasi
target pengerjaan software .

Sistem Analis, membuat arsitektur sistem dari software


yang akan dibuat.

Developer,

merupakan

titik

vital

dalam

tim,

tanpa

developer software tidak akan bisa dibuat.


2. Story
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:

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

REKAYASA PERANGKAT LUNAK


12

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).
3. Sprint
Sprint (Rapat perencanaan pembuatan software dilakukan 28 minggu sekali), yang perlu diperhatikan saat melaksanakan
sprint antara lain:

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

software

melakukan

sprint

secara

simultan

sampai

selesei dikerjakan, sebagai contoh: Sprint 1, tim

membuat fungsi login, logout dan demo software 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.
Setiap metode pengembangan software meiliki kelebihan
dan

kekurangan

masing-masing,

adapun

kelebihan

dan

kekurangan menggunakan metode RAD adalah seperti pada


tabel 4 di bawah ini.
Tabel 4. Kelebihan Dan Kekurangan Agile
KELEBIHAN

KEKURANGAN

REKAYASA PERANGKAT LUNAK


12

1.

Menambah produktivitas tim.

1.

Agile

2.

Menambah kualitas software .

dengan baik jika komitmen tim

3.

Menambah kepuasan klien.

kurang.

4.

Menghemat biaya.

2.

tidak

akan

berjalan

Tidak cocok dalam skala tim


yang besar (>20 orang).

3.

Perkiraan waktu release dan


harga software sulit ditentukan.

Agile

Software

Development

pengembangan software
yang

toleransi

cocok

digunakan

dalam

yang memungkinkan model proses

terhadap

perubahan

kebutuhan

sehingga

perubahan dapat cepat ditanggapi

REKAYASA PERANGKAT LUNAK


12

DAFTAR PUSTAKA
Anon.,

n.d.

tutorialspoint.

[Online]

Available

at:

http://www.tutorialspoint.com/sdlc/[Accessed 3 2015].
Balaji, S. & Murugaiyan, M. S., 2012. Waterfall Vs V-Model Vs
Agile: A Comparative Stduy On SDLC. International Journal
of Information Technology and Business Management,
Volume 2, pp. 26-30.
Bassil, Y., 2012. A Simulation Model for the Waterfall Software
Development

Life

Cycle.

International

Journal

of

Engineering & Technology (iJET), Volume 2.


Britton,

Carol;

Jill

Doake

(2001). Object-Oriented

Systems

Development. McGraw-Hill. pp. 2829, 269.


Kendal & Kendal. Systems Analysis and Design Fifth Edition.
Prentice-Hall International, Inc. 2002.
Maheshwari, S. & Ch.Jain, D., 2012. A Comparative Analysis of
Different types of Models in Software Development Life
Cycle. International Journal of Advanced Research in
Computer Science and Software Engineering, 2(5), pp. 285290.
Pressman, R. S., 2010. Software Engineering A Practioner's
Approach. 7th ed. New York: McGraw-Hill.
Proboyekti. Bahan Ajar Rekayasa Software

Agile Software

Development. Indonesia
Raymond

McLeod,

George

Schell. Management Information

Systems 8/e. Prentice-Hall, Inc. 2001.


Silverburg,A.2012.Agile

Analytics

in

Higher

Education.USA:Phytorion.
Sommerville, I., 2011. Sofware Engineering. 9th ed. Boston:
Addison-Wesley.

REKAYASA PERANGKAT LUNAK


12

Anda mungkin juga menyukai