TUGAS UTS RPL
MODEL PENGEMBANGAN SISTEM PERANGKAT LUNAK
AGILE DAN EXTREME PROGRAMMING (XP)
Dosen Pengampu : Ir. Nurhayati, [Link]., [Link].
Disusun Oleh Kelompok 2:
Ahmad Zhafar (236250067)
Damsik (236250069)
Mutia Salwa (236250070)
Moh. Ryandi (236250086)
Ikhsa Pramudya Pamungkas (236250090)
Satria CahyadienNugraha (236250095)
PROGRAM STUDI INFORMATIKA
FAKULTAS USHULUDDI ADAB DAN DAKWAH
UIN DATOKARAMA PALU
2024
KATA PENGANTAR
Puji syukur kehadirat Allah SWT, Tuhan semesta alam. Shalawat
serta salam semoga selalu dilimpahkan kepada Baginda Rasulullah SAW.
Alhamdulillah atas segala limpahan Rahmat, Inayah, Taufik dan
Hidayahnya sehingga kami dapat menyelesaikan penyusunan makalah ini
yang berjudul “Agile dan Extreme Programming (XP)”. Makalah ini ditulis
sebagai bahan diskusi serta untuk memenuhi salah satu tugas mata
Kuliah Rekayasa Perangkat Lunak.
Harapan kami semoga makalah ini dapat membantu menambah
pengetahuan dan pengalaman bagi para pembaca, sehingga kami dapat
memperbaiki bentuk maupun isi makalah ini sehingga kedepannya dapat
lebih baik.
Makalah ini kami akui masih banyak kekurangan karena
pengalaman yang kami miliki sangat kurang. Oleh karena itu kami
harapkan kepada pembaca untuk memberikan masukan-masukan yang
bersifat membangun untuk kesempurnaan makalah ini.
Palu, 29 September 2024
KELOMPOK 2
ii
DAFTAR ISI
KATA PENGANTAR...................................................................................ii
DAFTAR ISI............................................................................................... iii
BAB I PENDAHULUAN.............................................................................1
A. Pengertian RPL...................................................................................1
B. Sejarah RPL........................................................................................1
C. Fungsi dan Tujuan RPL......................................................................2
D. Jenis-Jenis RPL..................................................................................4
BAB II PEMBAHASAN..............................................................................7
A. Metode Agile...................................................................................... 7
B. Metode Extreme Programming (XP).................................................13
BAB III PENUTUP....................................................................................19
A. Kesimpulan....................................................................................... 19
[Link].........................................................................................20
C. Saran................................................................................................ 20
DAFTAR PUSTAKA..................................................................................iv
iii
BAB I
PENDAHULUAN
A. Pengertian Rekayasa Perangkat Lunak (RPL)
Rekayasa Perangkat Lunak (RPL) adalah disiplin ilmu yang
menggabungkan prinsip-prinsip teknik dan ilmu komputer untuk
merancang, mengembangkan, mengoperasikan, dan memelihara
perangkat lunak. Tujuan dari RPL adalah menciptakan perangkat lunak
yang efisien, handal, dan memenuhi kebutuhan pengguna dengan
kualitas tinggi. Perangkat lunak yang dirancang dengan baik dapat
membantu dalam berbagai aspek kehidupan, mulai dari aplikasi bisnis
hingga sistem yang mendukung kegiatan industri dan pemerintah.
RPL mencakup beberapa tahapan, termasuk analisis kebutuhan,
desain, implementasi, pengujian, dan pemeliharaan. Setiap tahapan ini
memiliki peran penting dalam menjamin keberhasilan pengembangan
perangkat lunak, dengan tujuan akhir menghasilkan produk yang tidak
hanya berfungsi sesuai harapan tetapi juga dapat dipelihara dan
dikembangkan di masa depan.
B. Sejarah Rekayasa Perangkat Lunak
Sejarah RPL dimulai sejak pertengahan abad ke-20, ketika
perangkat lunak mulai berkembang pesat bersamaan dengan kemajuan
dalam teknologi komputer. Pada tahun 1960-an, muncul istilah "krisis
perangkat lunak" yang mencerminkan masalah dalam pengembangan
perangkat lunak yang berkaitan dengan ketidakstabilan, keterlambatan
proyek, dan kualitas yang buruk. Krisis ini mendorong perlunya metode
yang lebih sistematis dan disiplin dalam pengembangan perangkat
lunak.
1
2
Pada tahun 1970-an, lahirlah berbagai metode dan model
pengembangan perangkat lunak, salah satunya adalah model Waterfall,
yang memperkenalkan tahapan pengembangan yang berurutan.
Namun, dengan semakin meningkatnya kompleksitas sistem perangkat
lunak, model ini tidak selalu memenuhi kebutuhan proyek yang dinamis
dan berubah cepat, sehingga memunculkan berbagai pendekatan baru
seperti Agile dan Extreme Programming (XP) pada akhir 1990-an.
C. Fungsi dan Tujuan Rekayasa Perangkat Lunak
Fungsi utama dari RPL adalah untuk memberikan pendekatan yang
sistematis dalam pengembangan perangkat lunak, dengan
mempertimbangkan aspek-aspek seperti waktu, biaya, dan kualitas.
Beberapa fungsi dan tujuan penting dari RPL antara lain:
1. Pengelolaan Proyek
Pengelolaan Proyek adalah salah satu fungsi utama RPL yang
bertujuan untuk memastikan bahwa proyek pengembangan
perangkat lunak berjalan sesuai rencana. Ini meliputi pengelolaan
sumber daya, alokasi waktu, dan pengaturan anggaran agar proyek
dapat diselesaikan sesuai dengan target yang ditetapkan.
Dalam prakteknya, pengelolaan proyek juga mencakup
identifikasi risiko dan kendala yang mungkin timbul selama proses
pengembangan, serta mengembangkan strategi mitigasi untuk
meminimalisir dampaknya. Alat bantu manajemen proyek seperti
Gantt Chart, PERT Diagram, dan perangkat lunak manajemen
proyek digunakan untuk mengatur dan memantau kemajuan proyek
agar tetap sesuai jadwal dan spesifikasi.
3
2. Penyusunan Kebutuhan
Fungsi Penyusunan Kebutuhan dalam RPL berfokus pada
identifikasi dan perumusan kebutuhan pengguna. Proses ini
melibatkan pengumpulan informasi yang mendalam tentang harapan
pengguna dan tujuan bisnis dari perangkat lunak yang
dikembangkan.
Tim pengembang harus mampu menerjemahkan kebutuhan ini
ke dalam spesifikasi teknis yang dapat diimplementasikan secara
praktis. Penyusunan kebutuhan yang akurat sangat penting, karena
kesalahan pada tahap ini dapat menyebabkan perangkat lunak yang
dihasilkan tidak sesuai dengan harapan pengguna, sehingga
mengakibatkan kegagalan proyek. Teknik-teknik seperti User
Stories, Use Cases, dan Diagram Kebutuhan sering digunakan untuk
menggambarkan kebutuhan secara jelas.
3. Desain Sistem
Desain Sistem adalah proses merancang arsitektur perangkat
lunak yang mencakup struktur dan organisasi komponen sistem.
Tujuannya adalah memastikan bahwa perangkat lunak yang
dikembangkan efisien, dapat diskalakan, dan mudah dipelihara.
Desain ini melibatkan pemilihan teknologi yang tepat, pengaturan
struktur data, serta penyusunan modul-modul fungsional yang saling
terhubung untuk memastikan kelancaran aliran data dan proses.
Desain sistem yang baik memastikan perangkat lunak dapat
beradaptasi dengan pertumbuhan kebutuhan, memungkinkan
penambahan fitur baru tanpa merusak fungsionalitas yang ada.
4. Pengujian dan Pemeliharaan
4
Pengujian dan Pemeliharaan merupakan dua aktivitas penting
dalam RPL yang menjamin bahwa perangkat lunak berfungsi sesuai
harapan dan bebas dari bug atau kesalahan. Pengujian dilakukan
pada setiap tahap pengembangan, mulai dari pengujian unit hingga
pengujian integrasi dan penerimaan (acceptance testing). Tujuannya
adalah memastikan semua komponen perangkat lunak berjalan
dengan benar dan memenuhi spesifikasi yang ditetapkan.
Setelah perangkat lunak dirilis, pemeliharaan dilakukan untuk
memperbaiki masalah yang muncul, memperbarui fitur sesuai
kebutuhan pengguna, dan memastikan sistem tetap aman dan
efisien. Pemeliharaan mencakup korektif, adaptif, dan preventif untuk
memastikan kelangsungan operasional perangkat lunak dalam
jangka panjang.
D. Jenis-Jenis Model Pengembangan Perangkat Lunak
Pengembangan perangkat lunak dapat dilakukan dengan berbagai
metode, yang masing-masing memiliki kelebihan, kekurangan, serta
penerapan yang berbeda-beda tergantung pada kebutuhan proyek.
Berikut adalah beberapa jenis model pengembangan perangkat lunak
yang umum digunakan:
1. Model Waterfall
Waterfall adalah metode pengembangan perangkat lunak yang
bersifat linear dan sistematis. Prosesnya terdiri dari lima tahapan
yang berurutan: komunikasi, perencanaan, pemodelan, konstruksi,
dan penerapan. Setiap tahap harus diselesaikan sebelum
melanjutkan ke tahap berikutnya, dan revisi tidak dilakukan selama
tahap-tahap sebelumnya sudah diselesaikan. Model ini cocok untuk
proyek dengan kebutuhan yang jelas dan tetap sejak awal, namun
kurang fleksibel untuk menangani perubahan atau modifikasi yang
muncul selama pengembangan.
5
2. Model Spiral
Model Spiral menggabungkan konsep prototipe dan metode
waterfall. Prosesnya terdiri dari tahapan komunikasi, perencanaan,
analisis risiko, pengembangan, dan evaluasi, yang diulang-ulang
dalam beberapa siklus. Setiap siklus bertujuan untuk meminimalkan
risiko yang mungkin terjadi. Model ini cocok untuk proyek besar
dengan risiko tinggi dan etika yang kompleks, tetapi memerlukan
analisis risiko yang cermat dan pemahaman mendalam.
3. Model Scrum
Scrum adalah bagian dari pendekatan Agile, yang menggunakan
sprint singkat untuk mengembangkan perangkat lunak secara iteratif.
Setiap sprint biasanya berlangsung 2-4 minggu, dan fokus pada
pengiriman fitur yang dapat langsung digunakan. Scrum mendorong
kerja tim yang kolaboratif dan terus-menerus beradaptasi terhadap
perubahan kebutuhan. Pengguna berinteraksi secara aktif dengan
tim pengembang melalui umpan balik yang cepat, memungkinkan
proses pengembangan yang dinamis dan responsif.
4. Model Prototype
Model Prototype digunakan ketika kebutuhan pengguna belum
sepenuhnya jelas. Pengembang membuat prototipe atau versi awal
dari perangkat lunak, yang kemudian dievaluasi oleh pengguna.
Setelah menerima umpan balik dari pengguna, prototipe akan
direvisi dan diperbaiki hingga perangkat lunak final sesuai dengan
kebutuhan yang diinginkan. Model ini sangat cocok untuk proyek
yang memerlukan pemahaman mendalam tentang kebutuhan
pengguna dan memungkinkan perubahan di awal pengembangan.
6
5. Model Incremental
Pada model Incremental, perangkat lunak dibangun secara
bertahap dengan menambahkan fitur-fitur baru secara berkala.
Setiap tahap menghasilkan versi perangkat lunak yang sudah dapat
digunakan, dan setiap inkrementasi membawa perbaikan serta
tambahan fungsi. Model ini memungkinkan pengguna mendapatkan
manfaat dari perangkat lunak lebih awal dalam proses
pengembangan, sembari pengembang terus menambahkan fitur di
versi berikutnya.
6. Model Agile
Agile adalah pendekatan pengembangan perangkat lunak yang
menekankan pada fleksibilitas, kolaborasi, dan iterasi pendek.
Metode ini dirancang untuk merespons perubahan yang cepat dalam
kebutuhan proyek. Agile memberikan ruang bagi pengembang untuk
berkomunikasi secara intensif dengan pelanggan, memungkinkan
pengembangan yang terus-menerus dievaluasi dan disesuaikan
sesuai umpan balik pengguna.
BAB II
PEMBAHASAN
A. Metode Agile
1. Pengertian Metode Agile
Metode Agile adalah pendekatan dalam pengembangan
perangkat lunak yang mengedepankan fleksibilitas, kolaborasi, dan
iterasi cepat. Berbeda dengan pendekatan tradisional yang bersifat
linear, Agile memungkinkan tim pengembang untuk bekerja secara
berulang dan inkremental, membagi pekerjaan ke dalam sprint atau
iterasi singkat yang memungkinkan adanya revisi dan penyesuaian
berdasarkan umpan balik langsung dari pengguna.
Pendekatan ini mengakui bahwa perubahan dalam
pengembangan perangkat lunak sangat umum terjadi, sehingga
Agile memberikan ruang untuk respons yang cepat terhadap
perubahan, baik itu dalam hal kebutuhan pengguna, prioritas bisnis,
maupun teknologi.
2. Tahapan pada Metode Agile
7
8
Metode Agile memiliki beberapa tahapan dalam
mengembangkan suatu proyek/perangkat lunak. Tahapan-tahapan
tersebut adalah sebagai berikut.
a. Perencanaan
Tahap awal ini melibatkan pertemuan tim dengan pemangku
kepentingan untuk mengidentifikasi kebutuhan dan tujuan proyek.
Rencana awal dibuat, mencakup pembagian proyek ke dalam
backlog (daftar tugas), sprint planning, dan prioritas fitur yang
akan dikerjakan dalam siklus pertama. Tujuan dari perencanaan
adalah untuk menyusun peta kerja yang fleksibel yang dapat
diadaptasi di setiap iterasi.
b. Implementasi
Dalam fase ini, pengembang mulai menulis kode untuk fitur
atau modul perangkat lunak sesuai prioritas yang telah ditentukan
selama perencanaan. Pada Agile, implementasi dilakukan secara
bertahap dan berfokus pada penyelesaian fitur dalam waktu
singkat (biasanya 1-4 minggu per sprint). Setiap anggota tim
berkolaborasi erat untuk memastikan hasil dari tiap sprint dapat
digunakan dan diuji.
c. Testing
Pengujian dilakukan bersamaan dengan implementasi, yang
dikenal sebagai continuous testing (pengujian berkelanjutan). Ini
berarti setiap iterasi diuji segera setelah dikembangkan,
memungkinkan deteksi dan perbaikan kesalahan lebih cepat.
Dengan metode ini, kualitas perangkat lunak terjaga selama
proses pengembangan berlangsung.
9
d. Dokumentasi
Metode Agile tidak mengharuskan dokumentasi yang ekstensif
seperti model tradisional. Namun, dokumentasi yang diperlukan,
seperti user stories atau catatan dari hasil sprint, tetap dibuat
untuk memastikan semua pihak memahami perkembangan
proyek.
e. Deployment
Setelah setiap sprint selesai, perangkat lunak yang telah diuji
dan disempurnakan siap untuk di-deploy atau disebarluaskan
kepada pengguna. Agile memungkinkan perangkat lunak untuk di-
deploy secara berkala dalam jangka pendek, sehingga pengguna
dapat segera merasakan manfaat dari fitur baru yang
dikembangkan.
f. Pemeliharaan (Maintenance)
Setelah deployment, tim terus memantau perangkat lunak dan
mengatasi masalah yang mungkin muncul selama penggunaan.
Umpan balik dari pengguna sangat penting pada tahap ini, dan
pembaruan atau perbaikan dilakukan berdasarkan masukan
tersebut. Pemeliharaan adalah bagian penting dari Agile, karena
proses pengembangan dianggap sebagai siklus yang terus
berlanjut.
3. Kelebihan dan Kekurangan Metode Agile
a. Kelebihan Agile:
Berikut adalah beberapa kelebihan Agile yang membuatnya
diterapkan oleh berbagai tim di seluruh dunia :
10
1. Kualitas Software Lebih Baik
Dengan Agile Methodology, kita bisa dengan cepat
menerapkan setiap feedback dari konsumen di iterasi
selanjutnya. Baik itu tentang penambahan fitur atau
memperbaiki bug. Alhasil, kualitas software kita akan membaik
karena lebih sesuai dengan keinginan konsumen.
2. Konsumen Puas dan Lebih Dihargai
Software dengan kualitas yang baik akan disukai
konsumen. Apalagi kalau fitur software di dalamnya sesuai
dengan keinginan konsumen berkat feedback yang diberikan.
Dengan begitu, mereka akan merasa lebih dihargai sebagai
konsumen.
3. Fleksibilitas Tinggi
Metode Agile memungkinkan kita melakukan perubahan
rutin sesuai feedback konsumen pada software yang
dikerjakan. Bila ada banyak feedback, kita bisa memilih akan
melakukan perubahan apa di setiap iterasinya.
4. Software Cepat Selesai
Metode Agile berfokus mengembangkan software yang
benar-benar dibutuhkan konsumen. Jadi, software akan cepat
selesai karena kita tak menghabiskan waktu menambahkan
banyak fitur yang belum tentu dibutuhkan konsumen.
5. Pengembangan yang Lebih Terprediksi
Setiap Agile methodology mempunyai iterasi rutin yang
fokus pada pengembangan bertahap. Jadi, pengembangan
11
software kita akan lebih terprediksi, sehingga kita bisa tahu
berbagai pengeluaran dengan baik. Efeknya, risiko bisnis akan
berkurang.
b. Kekurangan Agile:
Tentu saja Agile memiliki beberapa kekurangan yang perlu
kita pahami, di antaranya:
1. Ketidakjelasan Produk Akhir
Agile tidak memerlukan perencanaan yang mendalam,
sehingga tim mungkin kesulitan menentukan bentuk akhir dari
software. Selain itu, penambahan fitur yang terus-menerus
dapat membuat software semakin rumit. Akibatnya, saat
kebutuhan konsumen sering berubah, tim kita akan semakin
sulit memvisualisasikan bentuk akhir dari produk.
2. Ketergantungan pada Komitmen Tinggi Tim
Agile menuntut semua anggota tim untuk terus berinteraksi
secara rutin guna memastikan software sesuai dengan
kebutuhan konsumen. Proses ini mencakup memberikan
feedback, menerapkan perubahan, dan melakukan pengujian.
Semua ini memerlukan komitmen tinggi dari tiap anggota, yang
tentunya menghabiskan banyak waktu dan energi.
3. Dokumentasi yang Kurang Memadai
Karena dokumentasi dalam Agile sering kali dibuat dalam
waktu singkat, hasilnya bisa kurang mendetail. Hal ini
menyebabkan kesulitan bagi anggota tim baru untuk
memahami proyek yang sedang berjalan. Dampaknya, bisa
terjadi miskomunikasi yang berpotensi memperlambat
perkembangan proyek kita.
12
4. Manfaat Metode Agile
Metode Agile memiliki berbagai manfaat penting dalam
pengembangan software. Salah satu keunggulannya adalah
kemampuan untuk merespons perubahan dengan cepat. Tim dapat
dengan mudah beradaptasi terhadap kebutuhan baru atau
perubahan prioritas dari konsumen, karena Agile menggunakan
iterasi pendek yang memungkinkan umpan balik diterapkan segera.
Selain itu, kualitas produk cenderung meningkat karena pengujian
dilakukan secara terus-menerus di setiap tahap iterasi, sehingga bug
atau kesalahan dapat ditemukan dan diperbaiki lebih awal.
Konsumen juga merasa lebih puas, karena produk yang dihasilkan
sesuai dengan kebutuhan mereka, berkat keterlibatan aktif mereka
dalam memberikan feedback selama proses pengembangan.
Agile juga membantu mengurangi risiko dalam proyek. Setiap
iterasi menghasilkan bagian software yang bisa diuji dan dievaluasi,
sehingga potensi risiko dapat diidentifikasi dan ditangani lebih awal.
Selain itu, Agile mendorong komunikasi dan kolaborasi yang lebih
baik antara anggota tim melalui pertemuan rutin dan evaluasi
berkelanjutan. Hal ini meningkatkan sinergi dalam tim dan
mempercepat penyelesaian masalah. Keunggulan lainnya adalah
pengiriman produk yang lebih cepat, karena Agile memungkinkan
rilis software dalam bagian-bagian kecil yang siap digunakan, tanpa
perlu menunggu seluruh proyek selesai. Dengan fleksibilitas,
peningkatan kualitas, dan pengiriman yang lebih cepat, Agile menjadi
metode yang sangat bermanfaat dalam industri pengembangan
software.
13
B. Metode Extreme Programming (XP)
1. Pengertian Metode Extreme Programming (XP)
Extreme Programming (XP) adalah metode pengembangan
perangkat lunak yang termasuk dalam kerangka Agile, tetapi fokusnya
lebih spesifik pada peningkatan kualitas perangkat lunak dan respons
terhadap perubahan kebutuhan. XP dikenal dengan pengaplikasian
teknik-teknik yang dianggap "ekstrem," seperti pengkodean pasangan
(pair programming), pengujian otomatis, dan siklus pengembangan
yang sangat pendek.
XP berusaha untuk meningkatkan kualitas perangkat lunak dengan
menekankan kolaborasi antara pengembang dan pelanggan, serta
fokus pada umpan balik cepat, pengujian terus-menerus, dan
penyempurnaan berkelanjutan.
2. Tahapan dalam Metode Extreme Programming (XP)
14
Tahapan dalam XP mirip dengan Agile, namun lebih terperinci
dalam pelaksanaan teknik-teknik ekstrem:
a. Perencanaan
Perencanaan dalam XP bersifat dinamis, dilakukan secara
kolaboratif antara tim pengembang dan pelanggan. Tim
pengembang dan pelanggan bekerja sama untuk menentukan
prioritas cerita pengguna (user stories) yang akan
diimplementasikan pada iterasi berikutnya. Setiap user story harus
dapat diselesaikan dalam waktu singkat, biasanya dalam hitungan
minggu.
b. Desain
Desain dalam XP bersifat sederhana dan fleksibel. Fokus XP
adalah pada desain yang dapat berubah-ubah, memastikan
bahwa struktur perangkat lunak selalu dapat diperbaiki dan
disesuaikan sesuai dengan kebutuhan baru. Salah satu praktik
desain dalam XP adalah "refactoring," di mana desain perangkat
lunak dioptimalkan secara terus-menerus tanpa menambah
fungsionalitas baru.
c. Coding
Tahap ini melibatkan penulisan kode oleh pengembang,
sering kali dilakukan dengan pengkodean pasangan (pair
programming), di mana dua pengembang bekerja bersama pada
satu tugas untuk meningkatkan kualitas kode dan mencegah
kesalahan. Kode diuji secara otomatis menggunakan unit test dan
refactoring secara berkala untuk memastikan bahwa perangkat
lunak tetap stabil dan mudah diubah.
15
d. Pengujian
Metode XP menekankan pengujian otomatis di semua tahap
pengembangan. Pengujian berkelanjutan ini memastikan bahwa
setiap perubahan yang dilakukan pada kode tidak merusak fungsi
yang ada. Setiap fitur yang dikembangkan harus diuji dengan cara
yang intensif sebelum dianggap selesai.
3. Kelebihan dan Kekurangan Metode Extreme Programming (XP)
a. Kelebihan Extreme Programming (XP):
Berikut adalah beberapa kelebihan XP yang membuatnya
diterapkan oleh banyak tim pengembangan software:
1. Kualitas Software Lebih Baik
Metode XP menekankan pada Test-Driven Development
(TDD), di mana setiap bagian kode diuji sebelum
diimplementasikan. Hal ini membantu mengurangi bug secara
signifikan dan meningkatkan stabilitas serta kualitas software
secara keseluruhan.
2. Kepuasan Konsumen Tinggi
Dengan XP, konsumen terlibat secara aktif dalam setiap
fase pengembangan. Feedback mereka diprioritaskan,
sehingga fitur yang dikembangkan benar-benar sesuai dengan
kebutuhan mereka. Konsumen merasa lebih dihargai karena
masukan mereka diintegrasikan dalam proses pengembangan.
3. Adaptasi Cepat terhadap Perubahan
16
Metode XP memiliki iterasi yang sangat singkat, sehingga
memungkinkan tim untuk merespons perubahan dengan cepat.
Jika ada permintaan baru atau perbaikan yang diperlukan, tim
dapat segera menyesuaikan dan mengimplementasikannya
dalam iterasi berikutnya.
4. Pengembangan yang Cepat dan Efisien
Dengan praktik seperti pair programming dan continuous
integration, XP memastikan pengembangan berlangsung lebih
cepat dan lebih efisien. Dua orang yang bekerja pada kode
yang sama dapat menghasilkan kualitas yang lebih baik dalam
waktu yang lebih singkat.
5. Kolaborasi Tim yang Lebih Baik
Metode XP mendorong kolaborasi intensif antar anggota
tim melalui komunikasi harian dan praktik pengkodean
berpasangan. Ini memperkuat kerja sama tim, mempercepat
penyelesaian masalah, dan meningkatkan pembagian
pengetahuan antar anggota.
b. Kekurangan Extreme Programming (XP):
Tentu saja XP juga memiliki beberapa kekurangan yang perlu
kita pahami, di antaranya:
1. Ketergantungan pada Konsumen yang Aktif
Metode XP sangat bergantung pada keterlibatan konsumen
yang intensif dan berkelanjutan. Jika konsumen tidak
memberikan feedback secara konsisten atau kurang aktif dalam
proses pengembangan, tim dapat mengalami kesulitan dalam
menentukan arah yang tepat untuk proyek.
17
2. Membutuhkan Komitmen Tinggi dari Tim
Metode XP mengharuskan komitmen yang tinggi dari setiap
anggota tim. Praktik seperti pair programming dan continuous
integration bisa menjadi sangat melelahkan jika dilakukan
secara terus-menerus, dan mungkin mempengaruhi
produktivitas jangka panjang.
3. Tidak Cocok untuk Proyek Besar yang Kompleks
Metode XP bekerja paling baik untuk proyek kecil hingga
menengah yang dapat dengan mudah dipecah menjadi iterasi
pendek. Namun, untuk proyek besar yang kompleks,
pendekatan XP mungkin kurang efektif, karena sulit untuk
memanajemen perubahan terus-menerus di skala yang lebih
besar.
4. Dokumentasi yang Minim
Sama seperti Agile, XP tidak fokus pada dokumentasi yang
mendalam. Ini bisa menjadi masalah ketika tim bertambah atau
ketika ada anggota baru yang masuk. Tanpa dokumentasi yang
memadai, mereka bisa kesulitan memahami proyek dengan
cepat
4. Manfaat Metode Extreme Programming (XP)
Metode Extreme Programming (XP) menawarkan beberapa
manfaat yang sangat membantu dalam pengembangan software,
terutama dalam proyek yang kompleks dan dinamis. Pertama, XP
meningkatkan kualitas software melalui pengujian yang intensif.
Dengan teknik seperti Test-Driven Development (TDD), setiap
bagian kode diuji sebelum diintegrasikan, sehingga potensi bug
18
dapat ditemukan lebih awal. Hal ini memastikan produk yang lebih
stabil dan andal.
Selain itu, XP mempercepat proses pengembangan. Dengan
adanya siklus pengembangan yang pendek dan feedback yang
cepat, tim dapat merespons perubahan kebutuhan atau masalah
teknis secara lebih efisien. XP juga mendorong komunikasi intensif
antara anggota tim dan dengan klien, sehingga semua pihak selalu
selaras dalam memahami tujuan dan prioritas proyek.
Metode XP juga menekankan pentingnya kolaborasi tim melalui
teknik seperti pair programming, di mana dua pengembang bekerja
bersama di satu komputer. Ini tidak hanya meningkatkan kualitas
kode, tetapi juga meningkatkan pembelajaran dan berbagi
pengetahuan di dalam tim. Selain itu, pendekatan ini memperkuat
komitmen terhadap perubahan yang dapat diimplementasikan kapan
saja sesuai dengan kebutuhan proyek.
BAB III
PENUTUP
A. Kesimpulan
Metode Agile dan Extreme Programming (XP) adalah dua
pendekatan dalam pengembangan perangkat lunak yang fokus pada
fleksibilitas, kerja sama, dan iterasi berkelanjutan. Agile memungkinkan
tim untuk mengembangkan perangkat lunak dalam siklus pendek
(sprint), sehingga mereka dapat cepat menanggapi perubahan
kebutuhan pengguna. Tahapan dalam Agile meliputi perencanaan,
implementasi, pengujian, penyebaran, dan pemeliharaan, yang
dilakukan secara berulang. Di sisi lain, XP adalah bagian dari Agile
yang fokus pada peningkatan kualitas perangkat lunak dengan
menggunakan teknik seperti pair programming dan pengujian otomatis.
XP mengikuti tahapan yang mirip dengan Agile, tetapi lebih
menekankan teknik yang ekstrem.
Kedua metode ini memiliki kelebihan dan kekurangan. Kelebihan
Agile antara lain meningkatkan kualitas perangkat lunak, kepuasan
konsumen, dan memberikan fleksibilitas untuk melakukan perubahan.
Namun, kelemahan Agile meliputi ketidakjelasan produk akhir,
ketergantungan pada komitmen tinggi dari tim, dan kurangnya
dokumentasi. Di sisi lain, kelebihan XP termasuk peningkatan kualitas
perangkat lunak melalui pengujian yang intensif, kemampuan
beradaptasi dengan cepat terhadap perubahan, dan kerja sama tim
yang lebih baik. Namun, kelemahan XP meliputi ketergantungan pada
umpan balik aktif dari konsumen dan tantangan dalam mengelola
proyek besar yang kompleks.
19
20
Dari segi manfaat, Agile dan XP membantu tim pengembang untuk
merespons perubahan dengan cepat dan menghasilkan produk yang
lebih sesuai dengan kebutuhan konsumen. Agile mengurangi risiko
dalam proyek dengan memastikan bahwa produk yang dihasilkan
memenuhi kebutuhan pengguna. Di sisi lain, XP meningkatkan kualitas
perangkat lunak melalui pengujian lebih awal, mempercepat proses
pengembangan, dan memperkuat kerja sama dalam tim. Secara
keseluruhan, kedua metode ini sangat efektif dalam meningkatkan
proses pengembangan perangkat lunak, menghasilkan produk
berkualitas tinggi, dan memudahkan komunikasi di dalam tim.
B. Tanggapan
Kami sebagai kelompok penyusun makalah ini, merasa bahwa
penjelasan Ibu sangat jelas dan mudah dipahami, bahkan untuk materi
yang kompleks sekalipun. Ibu berhasil menjelaskan konsep-konsep
yang sulit dengan cara yang sederhana, sehingga kami dapat mengikuti
pembelajaran dengan baik. Selain itu, interaksi yang terjalin selama
proses belajar mengajar membuat suasana kelas menjadi lebih hidup
dan mendorong kami untuk lebih aktif dalam berdiskusi.
C. Saran
Kami sebagai kelompok penyusun makalah ini, menyarankan agar
ibu menggunakan media pembelajaran yang lebih bervariasi, seperti
video, infografis, atau simulasi, juga dapat membantu meningkatkan
minat dan keterlibatan kami dalam proses belajar. Dengan pendekatan
yang lebih beragam, kami yakin pengalaman belajar di kelas akan
menjadi lebih menarik dan efektif
DAFTAR PUSTAKA
Serba(2021): Rekayasa Perangkat Lunak : Pengertian, Contoh, dan
Penerapannya, Retrived from [Link]
perangkat-lunak-pengertian-contoh-dan-penerapannya/
Salwa(2024): Menyusuri Jejak RPL: Sejarah, Perkembangan, dan
Kontribusinya pada Industri, Retrived from
[Link]
sejarah-perkembangan-dan-kontribusinya-pada-industri-aad93ce21655
Laila(2020): Apa Itu Extreme Programming?, Retrived from
[Link]
Sofy(2022): Bagaimana Asal Muasal Metode ‘Agile’? Ini Sejarah
Singkatnya Retrived from
[Link]
agile-ini-sejarah-singkatnya-ec290a26bfc4
Gamal(2022): Extreme Programming (XP) – Definisi, Nilai, Tahapan,
Retrived from [Link]
tahapan/#google_vignette
Mirza(2021): Apa Itu Agile? Pengertian, Prinsip, Metode, dan Kelebihan
[Terlengkap], Retrived from [Link]
adalah/
Aksaragama(2024): 14 Kelebihan dan Kekurangan Metodologi Agile dan
Pengertiannya Retrived from [Link]
kekurangan-metodologi-agile-dan-pengertiannya/#google_vignette
Nextgen(2024): Pengertian Metode Agile, Tahapan, Contoh Serta
Kelebihan dan Kekurangannya, Retrived from
[Link]
kelebihan-dan-kekurangannya/
iv
Catenary(2020): Metode Extreme Programming, Contoh Penggunaan dan
Cara Menggunakannya Retrived from
[Link]
[Link]
Medium(2024): "Pendekatan Agile dalam RPL: Meningkatkan Efisiensi
Pengembangan Perangkat Lunak" Retrived from
[Link]
dalam-rpl-meningkatkan-efisiensi-pengembangan-perangkat-lunak-
a9d6d6597e89