Anda di halaman 1dari 8

EXTREME PROGRAMMING (XP)

Gina Meilinda D11161047


Idad Rusdiana D11161048
Siti Alawiyah D11161063
Yuki Kirana D11161065

Mahasiswa D4 Teknik Informatika Politeknik TEDC Bandung

Extreme programming (XP) pertama kali diusulkan oleh Kent Beck dan Ward
Cunningham pada bulan Maret 1996. Extreme Programming cukup banyak
digunakan terutama untuk pengembangan mobile apps dan mobile games dengan
jumlah programmer sedikit dan menuntut banyak perubahan dalam
pengembangannya.

A. Definisi Extreme Programming (XP)


Extreme Programming adalah suatu model yang termasuk dalam
pendekatan agile yang diperkenalkan oleh Kent Back. Model ini cenderung
menggunakan pendekatan Object-Oriented. Menurut penjelasannya, definisi
XP adalah sebagai berikut: “Extreme Programming (XP) adalah metode
pengembangan software yang cepat, efisien, beresiko rendah, fleksibel,
terprediksi, scientific, dan menyenangkan.”
Sehingga XP bisa juga didefinisikan menjadi sebuah pendekatan atau
model pengembangan perangkat lunak yang mencoba menyederhanakan
berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi
lebih adaptif dan fleksibel.
Asal mula XP digunakan karena pada saat itu permintaan dari
pelanggan yang sering berubah dengan cepat sehingga mengakibatkan
putaran kehidupan metode pengembangan perangkat lunak tradisional
menjadi lebih pendek dan tidak selaras dengan metode tradisional karena
pada umumnya memerlukan desain yang luas dan itu mengakibatkan
perubahan desain yang terjadi dan tentu saja memerlukan biaya yang lebih
tinggi. Tujuan XP adalah meminimalisir biaya yang diperlukan jika ada
perubahan dalam pengembangan perangkat lunak.
Perbedaan lain pada metodologi XP adalah menghindari koding yang
tidak diperlukan fungsionalitasnya. Jika pelanggan berpikir bahwa fitur itu
dibutuhkan tetapi tidak wajib ada, hal ini secara umum akan ditinggalkan dari
rilisan. Oleh sebab itu, pengembang akan fokus pada tugas yang ada,
menambahkan nilai ke sebuah produk software. Konsentrasi hanya pada
fungsi yang diwajibkan ada, membantu pengembang memproduksi perangkat
lunak yang berkualitas dalam jangka waktu yang singkat.
Extreme Programming tepat untuk dipergunakan untuk pembuatan
program yang:
1. Membutuhkan perubahan yang cepat (misalnya: Game Mobile).
2. Proyek beresiko tinggi dengan tantangan yang berat.
3. Tim programmer sedikit, yaitu sekitar 2–10 orang.
4. Adanya permintaan dari pelanggan secara langsung

B. Nilai Inti Extreme Programming (XP)


Nilai inti atau fokus Extreme Programming terdiri dari empat bagian,
yaitu komunikasi, kesederhanaan, umpan balik, dan keberanian.
a. Komunikasi (Communication)
Kurangnya komunikasi merupakan penyebab utama kegagalan
pengembangan software. Oleh karena itu Extreme Programming (XP)
memfokuskan diri pada hubungan komunikasi yang baik antar tim-
klien, anggota tim, dan manajer proyek. Komunikasi dalam XP
dibangun dengan melakukan pemrograman berpasangan (pair
programming). Klien harus dilibatkan dalam proses pengembangan
perangkat lunaknya dengan tujuannya untuk memberikan pandangan
pengembang sesuai dengan pandangan pengguna sistem yang dibangun.
b. Kesederhanaan (Simplicity)
Extreme Programming (XP) melakukan semua pekerjaan dengan
sederhana dan praktis tanpa mengurangi fungsi utamanya. Dalam
pengerjaan, metode yang dipilih adalah metode yang pendek dan simpel.
Jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak
ada gunanya atau hapus fungsi yang tidak terpakai. Dengan kata lain
lebih baik melakukan hal yang sederhana saat sekarang (sesuai
kebutuhan) dan mengembangkannya nanti jika diperlukan.
c. Umpan balik (Feedback)
Selalu evaluasi perkembangan perangkat lunak yang sedang
dikerjakan. Segala informasi harus dikumpulkan setiap interval waktu
yang konsisten dan kesalahan-kesalahan yang muncul selama proses
pengembangan harus dibahas dan dicari solusinya. Umpan balik
tersebut berfungsi sebagai indikator kemajuan proyek dan
menginformasikan pemimpin proyek apabila perubahan perlu dibuat.
d. Keberanian (Courage)
Programmer Extreme Programming (XP) didorong untuk berani
bereksperimen dan menulis ulang kode jika mereka tidak puas dengan
kode atau desain yang sudah ada. Hal ini membantu mempertahankan
moral serta integritas para pengembang proyek dan dapat mendukung
lebih lanjut komunikasi dengan anggota proyek lainnya.

C. Tahapan Extreme Programming (XP)


Tahapan-tahapan yang harus dilalui antara lain: Planning, Design,
Coding, dan Testing. 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 merupakan agile
methods yang paling banyak digunakan dan menjadi sebuah pendekatan yang
sangat terkenal.
a. Planning
Aktivitas planning pada model proses XP berfokus pada
mendapatkan gambar fitur serta fungsi dari perangkat lunak yang akan
dibangun. Pada aktifitas ini di mulai dengan membuat kumpulan cerita
atau gambaran yang di berikan klien yang kemudian akan menjadi
gambaran dasar dari perangkat lunak. Pelanggan dan tim XP bekerja
sama untuk memutuskan gambaran untuk rilis berikutnya (software
increment). Jika komitmen telah dibuat, tim XP akan membangun
gambaran dengan cara :
1. Gambaran dengan value tertinggi akan dipindahkan dari jadwal
dan diimplementasikan pertama.
2. Gambaran dengan resiko paling tinggi akan diimplemetasikan
terlebih dulu. Setelah project pertama direlease dan didelivery, XP
team memperhitungkan kecepatan project. Selama development,
customer dapat menambah story, merubah value, membagi story
atau menghapusnya.
b. Design
Aktivitas design dalam pengembangan aplikasi bertujuan untuk
mengatur pola logika dalam sistem. Desain pada modal proses Extreme
Programming menjadi panduan dalam membangun perangkat lunak
yang didasari dari cerita klien sebelumnya. XP menggunakan CRC
(Class Responsibilities Colaboration) Card, untuk mengenali dan
mengatur object oriented class yang sesuai dengan software increment.
c. Coding
Sebelum membuat code, lebih baik membuat unit test tiap cerita
untuk dimasukkan dalam software increment. XP menyarankan agar dua
orang bekerja bersama pada satu komputer workstation untuk membuat
code dari satu cerita (pair programming), untuk menyediakan real time
problem solving dan jaminan real time quality. Setelah pair
programming selesai, code diintegrasikan dengan kerja lainnya
(continuous integration).
d. Testing
Unit test yang telah dibuat harus diimplementasikan
menggunakan suatu framework dan diatur ke dalam Universal Testing
Suite, integrasi dan validasi sistem dapat dilakukan setiap hari.
Customer test (acceptance test) dilakukan oleh pelanggan dan fokus
pada keseluruhan fitur dan fungsional sistem. Acceptance test diperoleh
dari customer stories yang telah diimplemetasikan sebagai bagian dari
software release.

D. Model Pengembangan Extreme Programming (XP)


Model Pengembangan XP memiliki 12 praktik inti yang mengarahkan
proses, dirangkum pada tabel 1. Singkatnya, dapat mengelompokkan 12
praktik inti XP ke dalam 4 konsep:
1. Mendengarkan pelanggan dan pemrogram lain.
2. Kolaborasi dengan pelanggan untuk mengembangkan spesifikasi
aplikasi dan kasus pengujian.
3. Koding dengan seorang rekan pemrograman.
4. Pengujian dan pengujian kembali basis kode.
Sebagian besar komentar dari setiap praktik yang terdaftar pada table 1
bisa menjelaskan beberapa hal dari prinsip dasar yang penting. Selain itu,
seperti perencanaan dan pengujian, diperlukan diskusi yang lebih jauh lagi.

Tabel 1. Praktik Extreme Programming


Personil pemasaran dan
pengembangan bisnis bekerja
bersama untuk mengidentifikasi
Perencanaan dan kebutuhan nilai bisnis yang maksimal dari
setiap fitur perangkat lunak.
Setiap fitur utama perangkat lunak
ditulis sebagai cerita pengguna.
Pemrogram menyediakan estimasi
waktu untuk penyelesaian setiap
cerita pengguna.
Pengguna memilih fitur perangkat
lunak berdasarkan estimasi waktu
dan nilai bisnis.
Berusaha untuk menambahkan fitur
kecil yang nyata dan memberi nilai
Perilisan penambahan kecil
lebih serta merilis basis kode
sesering mungkin.
Tim pemrograman mengidentifikasi
suatu metafora pengaturan untuk
Metafora system
membantu konvensi penamaan dan
alur program.
Implementasi desain yang paling
sederhana yang memungkinkan
kode program untuk lolos pengujian
unit. Asumsikan akan ada
Desain sederhana
perubahan, sehingga jangan
membuang banyak waktu untuk
mendesain, langsung
implementasikan.
Tulis pengujian unit sebelum
menulis modul kode. Setiap unit
belum lengkap sampai bisa lolos
Pengujian berkelanjutan pengujian unit. Lebih jauh, program
belum lengkap sampai telah
melewati semua pengujian unit dan
pengujian penerimaan.
Membersihkan dan
Refaktorisasi menyederhanakan basis kode.
Pengujian unit membantu
memastikan bahwa tidak
menghancurkan fungsionalitas
dalam prosesnya. Programer harus
mengulang semua pengujian unit
setelah ada refaktorisasi.
Dua programer bekerja bersama,
dengan mesin yang sama, untuk
membuat basis kode. Hal ini
Pemrograman sepasang memungkinkan ulasan kode secara
langsung, yang mana secara
dramatis memfasilitasi deteksi
gangguan dan resolusi.
Semua kode adalah hak milik semua
pemrogram.
Tidak ada satu pun pemrogram yang
Kepemilikan kolektif atas kode
didedikasikan untuk basis kode
spesifik.

Setiap hari, integrasikan semua


perubahan, setelah kode melewati
Integrasi berkelanjutan
pengujian unit, kembalikan ke
dalam basis kode.
Tidak diizinkan adanya lembur, jika
programer bekerja dengan dedikasi
selama 40 jam per minggu, jam
Kerja 40 jam per minggu
lembur tidak dibutuhkan.
Pengecualian hanya untuk minggu
sebelum perilisan.
Tim pemrograman memiliki akses
tidak terbatas ke pelanggan, untuk
Kehadiran pelanggan di tempat
memungkinkan pelanggan untuk
menyelesaikan pertanyaan secara
cepat dan meyakinkan, yang mana
menjaga penguluran proses
pengembangan.
Semua kode seharusnya terlihat
sama. Pengembangan sebuah
Standar Pemrograman
metafora system membantu
mencapai prinsip ini.

E. Kelebihan dan Kekurangan Extreme Programming (XP)


a. Kelebihan
Kelebihan dari Extreme Programming (XP), yaitu :
1. Meningkatkan kepuasan kepada klien.
2. Pembangunan system dibuat lebih cepat.
3. Menjalin komunikasi yang baik dengan client.
4. Meningkatkan komunikasi dan sifat saling menghargai antar
developer.

b. Kekurangan
Kekurangan dari Extreme Programming (XP), yaitu :
1. Cerita-cerita yang menunjukkan requirements dari pelanggan
kemungkinan besar tidak lengkap sehingga developer harus selalu
siap dengan perubahan karena perubahan akan selalu diterima.
2. Tidak bisa membuat kode yang detail di awal
(prinsip simplicity dan juga anjuran untuk melakukan apa yang
diperlukan hari itu juga).
3. XP tidak memiliki dokumentasi formal yang dibuat selama
pengembangan. Satu-satunya dokumentasi adalah dokumentasi
awal yang dilakukan oleh user.

Anda mungkin juga menyukai