Apa Itu Extreme Programming?
Extreme Programming atau sering disingkat XP merupakan  metode pengembangan perangkat lunak yang berbasis Agile. Artinya extreme programming merupakan salah satu dari beberapa metode yang dapat digunakan untuk menerapkan prinsip pengembangan perangkat lunak berbasis Agile. Agile sendiri merupakan prinsip pengembangan perangkat lunak yang mengutamakan adaptasi terhadap perubahan, mengutamakan fungsionalitas aplikasi dibandingkan dokumentasi dan prinsip agile lainnya.
 Ada banyak metode atau kerangka kerja yang dapat digunakan untuk pengembangan perangkat lunak. Namun saat ini sebagian besar metode pengembangan perangkat lunak yang digunakan adalah metode berbasis Agile, seperti Scrum, Kanban, dan extreme programming. Memang benar, Agile dianggap sebagai prinsip pengembangan inovatif yang berhasil menggantikan metode yang sudah ada sebelumnya seperti metode air terjun.
 Menurut Prabowo dalam (Supriyatna, 2018) Extreme Programming (XP) adalah suatu proses rekayasa perangkat lunak yang cenderung menggunakan pendekatan berorientasi objek dan sasaran dari metode ini adalah tim-tim yang dibentuk dalam skala menengah dan besar, kecil, dan pendekatan ini juga cocok jika tim dihadapkan pada persyaratan yang spesifik dan tidak jelas atau persyaratan yang berkembang sangat cepat. Sedangkan menurut Ferdiana dalam (Lubis, 2016), Extreme Programming (XP) dikenal sebagai metode atau "cara teknis dalam melakukan sesuatu" bagi tim teknis untuk mengembangkan perangkat lunak secara efektif melalui berbagai prinsip dan teknik  pengembangan perangkat lunak yang praktis. XP menjadi fondasi untuk operasi tim  sehari-hari.
Tahapan Extreme Programming
Terdapat empat tahapan yang harus dikerjakan pada metode extreme programmin atau XP yaitu:
1. Â Perencanaan
Tahap ini merupakan tahap pertama dari proses pengembangan sistem, yang didalamnya dilakukan beberapa kegiatan perencanaan yaitu identifikasi masalah, analisis kebutuhan, dan penentuan jadwal pelaksanaan pengembangan sistem.
2. Desain
Tahap selanjutnya adalah desain, pada tahap ini dilakukan kegiatan pemodelan, mulai dari pemodelan sistem, pemodelan arsitektur hingga pemodelan database. Pemodelan sistem dan arsitektur menggunakan diagram Unified Modeling Language (UML), sedangkan pemodelan database menggunakan diagram hubungan entitas (ERD).
3. Pengkodean
Langkah ini merupakan kegiatan penerapan model yang telah diubah menjadi user interface dengan menggunakan bahasa pemrograman. Bahasa pemrograman yang digunakan adalah PHP dengan metode terstruktur. Untuk sistem pengelolaan database menggunakan software MySQL.
4. Pengujian
 Setelah tahap pengkodean selesai maka akan dilakukan tahap pengujian sistem untuk menemukan kesalahan-kesalahan yang timbul pada saat menjalankan aplikasi dan mengetahui apakah sistem yang dibangun sudah memenuhi kebutuhan pengguna atau belum. Metode pengujian yang digunakan pada tahap ini adalah pengujian black box, yaitu pengujian yang dilakukan terhadap berbagai bentuk masukan untuk melihat apakah masukan tersebut berfungsi sesuai  fungsinya masing-masing.
Kelebihan dan Kekurangan Extreme Programming
Berikut adalah beberapa kelebihan dan kekurangan dari metode extreme programming
Kelebihan
1. Fleksibilitas dan kemampuan beradaptasi yang tinggi :
XP memungkinkan perubahan  dan adaptasi yang cepat terhadap perubahan kebutuhan pengguna.
2. Meningkatkan kualitas :
Dengan fokus pada pengujian berkelanjutan, pemfaktoran ulang, dan desain sederhana, XP membantu meningkatkan kualitas perangkat lunak.
3. Keterlibatan pengguna :
Pengguna terlibat aktif dalam setiap tahap pengembangan, memastikan  produk memenuhi kebutuhan.
4. Peningkatan kualitas :
Dengan fokus pada pengujian berkelanjutan, pemfaktoran ulang, dan desain sederhana, XP membantu meningkatkan kualitas perangkat lunak.
5. Keterlibatan pengguna :
Pengguna terlibat aktif dalam setiap tahap pengembangan, memastikan  produk memenuhi kebutuhan.
Kekurangan
1. Kesesuaian untuk setiap proyek tertentu :
XP mungkin tidak cocok untuk semua jenis proyek, terutama proyek yang besar dan kompleks.
2. Keterlibatan pengguna yang intensif :
Membutuhkan keterlibatan pengguna yang kuat, yang tidak selalu mudah dicapai dalam proyek nyata.
3. Tidak cocok untuk tim jarak jauh :
Metode seperti pemrograman berpasangan mungkin sulit diterapkan antar tim yang tersebar di lokasi  berbeda.
4. Ketergantungan pada keterampilan tim :
Membutuhkan tim pengembangan yang sangat terampil dan berpengalaman untuk mencapai hasil yang optimal.
5. Memerlukan pengelolaan yang cermat :
Manajemen proyek yang efektif diperlukan untuk mengelola iterasi cepat dan perubahan yang terus-menerus terjadi.
Referensi
https://osf.io/se6f9/downloadÂ
https://serupa.id/extreme-programming-xp-definisi-nilai-tahapan/
Beck, Kent. (2000). Extreme Programming Explained: Embrace Change. Addison-Wesley. Link ke Buku https://www.amazon.com/Extreme-Programming-Examined-Giancarlo-Succi/dp/0201794276
Fowler, Martin, & Highsmith, Jim. (2001). The Agile Manifesto. Situs Web Agile Alliance
Succi, Giancarlo, & Marchesi, Michele. (2004). Extreme Programming Examined. Addison-Wesley. Link ke Buku https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H