Mengembangkan Software yang Lebih Sederh

Mengembangkan Software yang Lebih Sederhana dengan

Extreme Programming (XP)

Dalam pengembangannya, sebuah software atau perangkat lunak
seperti halnya sebuah rumah, efisiensinya terletak pada terpenuhinya
semua kebutuhan - kebutuhan yang dibutuhkan oleh pemiliknya baik itu
dilihat

dari

segi

fungsinya

maupun

kenyamanan

pemiliknya


dalam

penggunaan semua sumber atau resources yang ada di dalamnya. Sebuah

software atau perangkat lunak tidaklah hanya dilihat berdasarkan tingkat
kepuasan penggunanya, tetapi bagaimana tingkatan pencapaian kebutuhan
penggunanya dalam menyelesaikan berbagai permasalahan yang dihadapi.
Dan untuk mendapatkan hal tersebut, maka sebuah perangkat lunak dalam
pengembangannya membutuhkan metode atau cara dan juga proses yang
tepat. Software process model adalah proses rangkaian penanganan sebuah
perangkat lunak yang didasari atas standar pertimbangan-pertimbangan
tertentu yang memungkinkan sebuah perangkat lunak dapat mencapai
kesempurnaan untuk memenuhi kebutuhan - kebutuhan pengguna dalam
menyelesaikan permasalahan - permasalahan yang dihadapi.
“Mengapa

dalam

pembuatan


software

atau

perangkat

lunak

membutuhkan proses?”.
Tentu saja untuk mendapatkan software atau perangkat lunak yang
berkualitas

tinggi

dan

handal

(reliable)


dalam

pengembangannya

membutuhkan metode dan proses untuk mendapatkan hasil yang sesuai
kebutuhan. Misalnya saja dalam pembuatan produk office tentunya sebuah
produk

tersebut

tidak

langsung

jadi

dengan

sendirinya,


dalam

pembuatannyapun membutuhkan proses yang sangat panjang dan rumit
serta memerlukan beberapa tahapan yang terencana, dari mulai spesifikasi
kebutuhan, perencanaan, pemodelan atau design, kontruksi dan pengujian,
serta pemeliharaan.
Hal tersebut ditegaskan oleh Tata Sutabri (2012, p56) bahwa
pengembangan

perangkat

lunak

atau

sistem

harus

terencana


menggambarkan tahapan-tahapan yang sering disebut sebagai pendekatan

System Development Life Cycle (SDLC).
Untuk membangun sistem perangkat lunak yang handal ( reliable)
tentunya dihadapkan pada kondisi terkini, perancangan sebuah perangkat
lunak ditentukan berdasarkan jenis perangkat lunak yang akan dibangun.
Perbedaan tahapan pembangunan perangkat lunak itu sendiri biasanya
disebut dengan Software Process Model.
Setiap software engineer harus memahami dan mengikuti tahapantahapan yang telah ditetapkan di dalam software engginering, sebagaimana
definisi yang dikeluarkan oleh IEEE Standard 610.12.

Software engineering is "(1) the application of a systematic,
disciplined,

quantifiable approach to the development, operation, and

maintenance of software, that is, the application of engineering to
software," and "(2) the study of approaches as in (1)."
Oleh karena itu dalam pengembangan sebuah sistem perangkat

lunak, setiap software engineer harus memilih model proses perangkat
lunak yang paling tepat sehingga seorang software engineer mendapatkan
kemudahan dalam mengelola dan mengendalikan proses pembangunan
sistem, tahap demi tahap yang akan dilakukan. Walaupun pada dasarnya
pembangunan sistem adalah pekerjaan tim, namun setiap anggota tim yang
lain juga harus paham bagaimana sebuah proses pembangunan sistem
tersebut berjalan sehingga dapat menempatkan posisinya sesuai dengan
tahapan yang sedang berjalan agar hasil yang dicapai juga maksimal.
Dalam membangun sebuah perangkat lunak atau software, Software

Process Model memberikan suatu standarisasi bagi seorang developer atau
pengembang bagaimana proses pembuatan perangkat lunak atau software
itu dimulai dan bagaimana pembuatan perangkat lunak itu harus diproses.
Setiap proses - proses yang diproses oleh seorang developer atau
pengembang mengantar developer untuk melakukan proses-proses yang
lainnya. Proses desain, konstruksi dan implementasi tidak akan terlaksana
jika proses penganalisaan permasalahan tidak ada, dan begitu juga
sebaliknya. Jadi, di setiap tahap proses dalam perancangan sebuah

perangkat lunak mengantar developer pada tahap-tahap proses selanjutnya,

setiap

informasi

-

informasi

yang

didapatkan

pada

tahap

-

tahap


sebelumnya akan menentukan informasi - infromasi yang akan diperoleh

developer pada tahap-tahap selanjutnya, hal ini membuktikan bahwa
keterkaitan setiap tahap proses dalam membuat sebuah perangkat lunak itu
memiliki hubungan yang sangat erat.
Model proses pengembangan perangkat lunak berawal dengan model

waterfall yang sangat linear dan sekuensial, hingga unified process yang
merupakan model pengembangan untuk sistem berorientasi objek. Semua
model tersebut masih memiliki kelemahan mendasar yaitu masih kurang
bisa mengatasai perubahan requirement atau kebutuhan yang begitu cepat
dari pihak client.

Software process model merupakan hal terpenting atau salah satu
aspek utama dalam proses pembuatan perangkat lunak yaitu pemodelan
sistem, tanpa adanya pemodelan sistem maka suatu sistem akan bisa jadi
gagal untuk di kembangkan karena tahap - tahapnya yang kurang terjadwal,
terencana, dan terkonsep atau terorganisir dengan baik dari segi biaya,
sumber daya, tenaga, maupun estimasi waktu proses pembuatan sistem
sehingga akan menimbulkan permasalahan.

Permasalahan

utama

yang

sering

muncul

dalam

sebuah

pengembangan proyek perangkat lunak adalah perubahan requirement atau
kebutuhan yang begitu cepat. Hal ini terjadi sebagai akibat perubahan perubahan yang muncul baik pada aspek bisnis maupun teknologi yang
berlangsung lebih cepat daripada proses pengembangan perangkat lunak
itu sendiri.
Untuk mengatasi masalah yang dipaparkan di atas muncullah yaitu
model proses pengembangan perangkat lunak yaitu Extreme Programming

(XP).

“Apa itu Extreme Progamming (XP)?”
Extreme Programming (XP) merupakan salah satu model proses dari
Agile Software Development yang merupakan salah satu model dalam
pengembaangan sistem berbasis Software Development Life Cycle (SDLC).

Extreme Programming (XP) ini digunakan untuk mengatasi masalah
requirement atau kebutuhan yang tidak jelas dan sering berubah-ubah dari
pihak pengguna. Extreme Programming dimunculkan untuk menangani
perubahan

-

perubahan

yang

biasanya


sering

terjadi

pada

saat

pengembangan berlangsung bahkan pada saat proses pengembangan
sudah hampir berakhir dan berhasil.

“Kapan model Extreme Programming ini tepat digunakan?”
Penggunaan sebuah model pengembangan perangkat lunak atau
sistem tidaklah sembarangan. Extreme Progamming itu sendiri tepat
digunakan jika: keperluan berubah sangat cepat hal ini biasanya dari pihak
pengguna, tingginya resiko terhadap perubahan, terdapat proyek dengan
tantangan baru, memiiki sedikit tim programmer yang hanya sekitar 2-10
orang

saja,

mampu

mengotomasikan

tes,

dan

adanya peran

serta

pelanggan secara langsung.
Menyinggung masalah Agile, terdapat suatu istilah yang disebut

Agility. Apa yang dimaksud dengan Agility itu?
Menurut Ivar Jacabson,

agility mengandung pengertian bahwa

perubahan (change) merupakan “hati” dan “jiwa” dari perangkat lunak.
Maksudnya adalah bahwa perubahan terhadap requirement pelanggan, silih
bergantinya

anggota

tim

dan

perubahan

kebutuhan

teknologi

yang

berimplikasi terhadap produk yang dihasilkan merupakan suatu hal yang
sangat wajar terjadi. Hampir semua proyek pengembangan perangkat lunak
pasti mengalami hal tersebut. Agile proses menekankan pada aktifitas
kontruksi (desain dan koding). Agile Process mengeliminasi sebagian besar
waktu untuk melakukan perencanaan sistem dan berusaha sebisa mungkin
mematuhi jadwal deliver sistem yang telah dijanjikan. Requirements yang
dibutuhkan secara langsung di-drive oleh pelanggan itu sendiri, dan apabila
terjadi perubahan terhadap requirements tersebut, pengembang dituntut
mampu beradaptasi dengan perubahan yang terjadi.

Extreme

Programming

(XP)

adalah

sebuah

pendekatan

pengembangan perangkat lunak yang mencoba meningkatkan software
atau perangkat lunak dengan mengkombinasikan berbagai ide sederhana.

Extreme Programming adalah sebuah model pengembangan sistem
yang menyederhanakan berbagai tahapan proses pengembangan tersebut
agar tercapainya peningkatan efisiensi dan fleksibilitas sebuah proyek
pengembangan perangkat lunak. Bahkan, menurut Shahriar Mohammadi,
Bahman Nikkhahan, dan Sahar Sohrabi (2009) dalam jurnalnya yang
berjudul Challenges of user Involvement in Extreme Programming projects ,

Extreme Programming merupakan model yang tangkas dan banyak dipakai
dalam

perusahaan

karena

praktik

Extreme

Programming

semuanya

dilakukan untuk kepuasan pelanggan. Extreme Programming tidak hanya
berfokus pada source code atau coding, tetapi meliputi seluruh area
pengembangan.
Fleksibilitas merupakan tuntutan pasar yang senantiasa menghendaki
perusahaan mampu menghasilkan produk dan jasa yang memenuhi
kebutuhan konsumen yang selalu mengalami perubahan dan perbaikan.
Kemampuan perusahaan untuk melakukan penyesuaian dengan cepat
setiap perubahan kebutuhan konsumen tersebut menjadi kunci yang
menentukan keberhasilan dalam menempatkan diri setapak lebih maju dari
perusahaan lain atau perusahaan pesaing.
Contoh

kasus

:

Misalkan

saja

kita

dihadapkan

pada

suatu

permasalahan yaitu sebagai seorang project leader atau pemimpin proyek
pada sebuah proyek pengembangan perangkat lunak. Setelah berbulan –
bulan mengembangkan sebuah perangkat lunak dan proyek yang kita
kembangkan sudah hampir selesai. Namun tiba - tiba saja di perusahaan

client kita terjadi perubahan kebijakan yang berimplikasi pada perangkat
lunak atau software yang kita bangun. Tentunya sebagai project leader dan
tim akan sangat frustasi. Namun dalam hal ini tentunya juga tidak bisa
menolak perubahan - perubahan yang diajukan oleh client karena sudah
menjalin kontrak sepakat dengan adanya perubahan-perubahan tersebut.
Hal tersebut seringkali terjadi disebabkan lamanya proses pengembangan
perangkat lunak. Proses pengembangan perangkat lunak yang kompleks
dapat menghabiskan waktu berbulan – bulan lamanya bahkan bisa sampai
bertahun – tahun sebelum perangkat lunak siap untuk digunakan. Padahal
seringkali dalam waktu tersebut terjadi perubahan besar pada situasi bisnis
maupun teknologi yang bisa membuat perangkat lunak menjadi tidak

relevan lagi. Extreme Programming (XP) mencoba menyederhanakan
berbagai

tahapan

dalam

proses

pengembangan

tersebut,

sehingga

perangkat lunak yang dikembangkan menjadi lebih adaptif dan juga
fleksibel. Dalam hal ini juga tim Extreme Progamming harus secara intensif
berhubungan dengan client sehingga apa yang diinginkan oleh client untuk
sistem atau perangkat lunak yang sedang dikembangkan sesuai dengan apa
yang

diinginkan

atau

ditentukan

client.

oleh

Sehingga

tujuan

pengembangan sistem atau perangkat lunak dapat diselesaikan dengan
cepat.

Extreme

Model

Programming

ini

mengedepankan

proses

pengembangan yang lebih responsive terhadap kebutuhan client (“agile”)
dibandingkan dengan model – model tradisional lainnya sambil membangun
suatu perangkat lunak dengan kualitas yang lebih baik.
Tujuan utama dari Extreme Programming (XP) adalah menurunkan
biaya

dari

adanya

perubahan

perangkat

lunak .

Dalam

model

pengembangan tradisional, kebutuhan sistem ditentukan pada tahap awal
pengembangan proyek dan bersifat fixed. Hal ini berarti biaya terhadap
adanya perubahan kebutuhan yang terjadi pada tahap selanjutnya akan
menjadi sangat mahal.

Extreme Programming (XP) diarahkan untuk

menurunkan biaya dari adanya perubahan dengan memperkenalkan nilainilai

basis

dasar,

prinsip

dan

praktis.

Dengan

menerapkan

XP,

pengembangan suatu sistem haruslah lebih fleksibel terhadap perubahan.

Extreme Programming (XP) muncul menawarkan sebuah disiplin baru
dalam pengembangan perangkat lunak secara agile. Nilai dasar yang
terkandung

di

dalam

Extreme

Programming

adalah

:

Komunikasi

(Communication), kesederhanaan (Simplicity), umpan balik (Feedback),
keberanian (Courage) dan Quality Work.
Komunikasi (Communication), komunikasi anatar developer dan
pengguna seringkali dipermasalahkan. Sehingga Extreme Programming
dibangun untuk mengatasi hal ini, Extreme Programming membentuk pair

programming atau pemrograman berpasangan. Penerapan ini dilakukan
untuk mencegah terjadinya hal-hal yang tidak diinginkan. Seperti apabila
terjadinya kecelakaan pada pihak developer yang satu sehingga data

informasi perangkat lunak yang dibangun semuanya hilang, maka masih
ada data yang lain pada pihak developer yang masih utuh. Modal utama

pair progamming adalah adanya kekompakan yang erat antar developer.
Kesederhanaan

(Simplicity),

Dengan

menggunakan

Extreme

Programming, artinya tim developer harus tetap melakukan semuanya
dengan sederhana, karena salah satu nilai dasar dari Extreme Programming
adalah mencoba untuk selalu mencari solusi yang paling sederhana dan
paling praktis. Gunakanlah method yang mudah, pendek atau tidak terlalu
rumit dalam pembuatan desain serta hilangkanlah fitur-fitur yang tidak
berguna.

Inilah

metodologi

yang

membedakan

pengembangan

sistem

Extreme

Programming

konvensional

lainnya.

dengan

Extreme

Programming berfokus pada kebutuhan saat ini dibandingkan kebutuhan
besok
Umpan balik (Feedback), yaitu memberikan umpan balik kepada
sesama

anggota

tim maupun

pihak-pihak

lain

yang

terlibat

dalam

pengembangan perangkat lunak. Dalam hal ini seharusnya mengutarakan
selalu pikiran dan mendiskusikan kesalahan-kesalahan yang muncul selama
proses pengembangan serta mendengarkan selalu pendapat rekan yang
lain, dengan adanya umpan balik inilah akan disadari bagian mana yang
salah atau bisa ditingkatkan lagi dari perangkat lunak yang dikembangkan.
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. Ini berarti meninjau sistem
yang ada dan memodifikasi sehingga perubahan masa depan dapat
dilaksanakan dengan lebih mudah. Contoh lain dari keberanian adalah
mengetahui kapan harus membuang kode menjauh. Keberanian untuk
menghapus kode sumbe yang is obsolete, tidak peduli seberapa banyak
usaha yang digunakan untuk membuat kode sumber itu juga, keberanian
berarti ketekunan. Seorang programmer. Mungkin akan terjebak pada

masalah yang kompleks untuk satu hari, lalu memcahkan masalah dengan
cepat pada hari berikutnya, jika hanya mereka gigih.
Menghormati (Respect), Pentingnya respect terhadap anggota team
lainnya karena dengan siklus pendek dan integrasi continue, programmer
tidak boleh melakukan perubahan yang dapat merusak kompilasi dan
menyebabkan keberadaan unit uji gagal atau memperlambat kerja team.

Respects tiap individu akan selalu menghasilkan kualitas tinggi.
Penerapan

Extreame Programming bisa dilakukan di banyak

perusahaan atau organisasi. Sebuah organisasi misalnya seperti software

house atau pengembangan sebuah software atau perangkat lunak dapat
menerapkan

Extreme

Programming

karena

Extreme

Programming

mengedepankan Extreme Programming life cycle.

Extreme Programming sangat menghemat waktu untuk membangun
atau membuat sebuah sistem perangkat lunak. Dalam software house¸
penerapan Extreme Programming dapat dilakukan karena stuktur kerja dan
struktur organisasi yang menyerupai Extreme Programming. Pada organisasi

software house terdapat analis, desainer, programmer, dan tester. Oleh
karena

itu

Extreme

Programming

sangat

tepat

dan

cocok

di

implementasikan untuk software house.
Menurut

Presman

dalam

bukunya

yang

berjudul

Software

Engineering, edisi keenam, proses Extreme Programming memiliki kerangka
kerja yang terbagi menjadi empat konteks aktivitas utama. Empat konteks
tersebut adalah lanning, design, coding, dan testing. Keempat aktivitas
inilah yang akan menghasilkan sebuah perangkat lunak yang didasari
dengan konsep model Extreme Programming.
1

Planning, berfokus untuk mendapatkan gambaran fitur dan fungsi

dari perangkat lunak yang akan dibangun. Aktivitas planning dimulai
dengan membuat kumpulan gambaran atau cerita yang telah diberikan oleh
klien yang akan menjadi gambaran dasar dari perangkat lunak tersebut.
Setelah semua kebutuhan terpenuhi, tim XP akan menentukan alur dari
pengembangan aplikasi sebelum memulai pengembangan tugas. Namun
dokumentasi XP tersebut yang mengandalkan cerita user inilah yang

merupakan kelemahan bagi model ini. Terlepas dari semua hal tersebut,

Extreme Programming menjadi sebuah model
Tahap Design pada model proses Extreme Programming merupakan

2

panduan dalam membangun perangkat lunak yang didasari dari cerita klien
sebelumnya yang telah dikumpulkan pada tahap planning. Dalam XP,
proses design terjadi sebelum dan sesudah aktivitas coding berlangsung.
Artinya,

aktivitas

design terjadi secara terus-menerus selama proses

pengembangan aplikasi berlangsung.
3

Coding, Setelah menyelesaikan gambaran dasar perangkat lunak dan

menyelesaikan

design untuk

aplikasi

secara

keseluruhan,

XP

lebih

merekomendasikan tim untuk membuat modul unit tes terlebih dahulu yang
bertujuan untuk melakukan uji coba setiap cerita dan gambaran yang
diberikan oleh klien. Setelah berbagai unit tes selesai dibangun, tim barulah
melanjutkan aktivitasnya ke penulisan coding aplikasi. XP menerapkan
konsep Pair Programming dimana setiap tugas sebuah modul dikembangkan
oleh dua orang programmer. XP beranggapan, 2 orang akan lebih cepat dan
baik dalam menyelesaikan sebuah masalah. Selanjutnya, modul aplikasi
yang sudah selesai dibangun akan digabungkan dengan aplikasi utama.
4

Testing, Setelah semua modul selesai dan dikumpulkan ke dalam

sebuah sistem yang sempurna, maka tim XP akan melakukan pengujian
penerimaan atau acceptance test. Pada tahap ini, aplikasi akan langsung
diuji coba oleh user dan client agar mendapat tanggapan langsung
mengenai

penerapan

gambaran

dan

cerita

yang

telah

dilakukan

sebelumnya.
Dengan

Extreme

Programming

hubungan

antara

pengembang

perangkat lunak atau developer dengan client akan terjalin interaksi yang
baik. Komunikasi yang selalu besifat oral tanpa dokumentasi formal yang
mengandalkan cerita user inilah yang menjadi salah satu perbedaan

Extreme Programming dengan model pengembangan yang lain. Namun
dokumentasi

tersebut

yang

mengandalkan

cerita

user

inilah

yang

merupakan kelemahan bagi model ini. Terlepas dari semua hal tersebut,

Extreme Programming menjadi sebuah model pengembangan perangkat
lunak yang semi formal karena semua dilakukan dengan practice yang

sederhana. Semua ini karena XP mengacu pada proses pengembangan agile
mo=ethods yang memiliki prinsipprinsip kesederhanaan.

Extreme Programming mempermudah jembatan komunikasi antara
pihak user atau client dan pihak pengembang. Pihak user dapat langsung
memonitor proses pengembangan dengan onsite customer tanpa kekakuan,
dan pihak pengembang dapat lebih sering berkomunikasi langsung dengan
representasi dari pihak bisnis. selain itu Extreme Programming ini membuat
seorang developer tidak bekerja secara berlebihan. Sehingga Extreme

Progamming ini mempermudah pengembangan perangkat lunak dengan
lebih sederhana.

Sumber:
Mohammadi, S., B. Nikkahan, S. Sohrabi.
2009. Challenges of user
Involvement in Extreme Programming projects. International Journal of
Software Engineering and Its Applications. 3(1): 20.
R. Pressman, “Software Engineering: A Practitioner’s Approach”, 6 th edition,
McGraw-Hill, 2005.
Sutabri, Tata. (2012). Analisis Sistem Informasi. Yogyakarta : Andi Offset.

Dokumen yang terkait

Kuliah di PTN Kini Lebih Mahal

0 87 1

DAMPAK INVESTASI ASET TEKNOLOGI INFORMASI TERHADAP INOVASI DENGAN LINGKUNGAN INDUSTRI SEBAGAI VARIABEL PEMODERASI (Studi Empiris pada perusahaan Manufaktur yang Terdaftar di Bursa Efek Indonesia (BEI) Tahun 2006-2012)

12 142 22

Analisis pengaruh modal inti, dana pihak ketiga (DPK), suku bunga SBI, nilai tukar rupiah (KURS) dan infalnsi terhadap pembiayaan yang disalurkan : studi kasus Bank Muamalat Indonesia

5 112 147

Analisis faktor-faktor yang mempengaruhi penerapan manajemen mutu terpadu pada Galih Bakery,Ciledug,Tangerang,Banten

6 163 90

Efek ekstrak biji jintan hitam (nigella sativa) terhadap jumlah spermatozoa mencit yang diinduksi gentamisin

2 59 75

Pengaruh Rasio Kecukupan Modal dan Dana Pihak Ketiga Terhadap Penyaluran Kredit (Studi Kasus pada BUSN Non Devisa Konvensional yang Terdaftar di OJK 2011-2014)

9 104 46

Perancangan Sistem Informasi Akuntansi Laporan Keuangan Arus Kas Pada PT. Tiki Jalur Nugraha Ekakurir Cabang Bandung Dengan Menggunakan Software Microsoft Visual Basic 6.0 Dan SQL Server 2000 Berbasis Client Server

32 174 203

Pengaruh Etika Profesi dan Pengalaman Auditor Terhadap Audit Judgment (Penelitian pada Kantor Akuntan Publik di Wilayah Bandung yang Terdaftar di BPK RI)

24 152 62

Asas asas pemerintahan yang baik

0 38 8

Pengaruh Kualitas Software Aplikasi pengawasan kredit (C-M@X) Pt.PLN (PERSERO) Distribusi Jawa Barat Dan Banten (DJBB) Terhadap Produktivitas Kerja karyawan UPJ Bandung Utara

5 72 130