Kolaborasi Incremental dan Extreme Programming
Pada
masa sekarang ini kita tidak bisa terlepas dari namanya teknologi. Tentunya
sebuah perangkat lunak merupakan bagian dari sebuah teknologi. Nah, dalam
membuat/mengembangakan perangkat lunak tentunya membutuhkan suatu pemodelan
yang dapat menuntun kita agar perangkat lunak yang kita buat berkualitas dan
dapat diterima oleh pihak yang ingin dibuatkan perangkat lunak.
Ada banyak berbagai macam model – model
pengembangan perangkat lunak, tapi pada artikel hanya terfokus pada model
incremental dan extreme programming.
Disini saya memberikan contoh kasus,
sebuah perangkat lunak yang akan dikembangkan. Nantinya akan dibahas menurut
saya model apa yang cocok digunakan untuk kasus seperti dubawah ini.
SMK Swasta ICON merupakan salah satu instansi yang bergerak dalam bidang pendidikan
khususnya kejuruan. Instansi ini memiliki 5 jurusan yang dapat dipiliholeh
siswa antara lain: Multimedia, Teknik Kendaraan Ringan (Otomotif), Akuntansi,
Administrasi Perkantoran, dan Pemasaran.
Kenyataan yang ada, dalam menentukan
jurusan yang diminati oleh siswa masih dilakukan secara manual. Mereka perlu
mengoreksi, mengakumulasi, dan mempertimbangkan hasil penilaiannya satu persatu
dari tiap siswa, sehingga akan membutuhkan waktu yang cukup lama dalam
menghasilkan keputusan.
Variabel penilaiannya pun tidak terlalu banyak dan terbatas pada nilai/kemampuan verbal
siswa, penilaian hanya berdasarkan pada hasil tes kompetensi mata pelajaran dan jurusan yang dipilih siswa. Oleh karena itu, hasil yang diperoleh pun masih
kurang maksimal dan belum tepat sasaran. Belum lagi bila terdapat kesalahan
data dan siswa meminta untuk berganti jurusan karena hasil yang diperoleh kurang
sesuai dengan yang mereka harapkan, sejauh ini instansi tersebut masih
belum menemukan solusi yang tepat untuk menyelesaikan permasalahan di
atas.
Setelah dilakukan pengamatan terkait
sistem penjurusan yang digunakan di instansi tersebut dan dilakukan
pertimbangan, pihat Instansi memutuskan membuat kesempatan untuk merancang
adanya sistem baru (perangkat lunak) agar lebih mempermudah dalam menentukan
minat jurusan siswa bila dibandingkan dengan sistem sebelumnya.
Berhubung Pihak Ketua yayasan tidak
terlalu paham teknologi, ia berharap sistem baru (perangkat lunak) tersebut
dapat digunakan dengan semudah mungkin. Untuk masalah biaya dan waktu ia
serahkan pada pihak developher, namun ketua yayasan tidak bisa ditemui setiap
waktu karna ia juga ada kerjaan yang lain. Ia memberikan kepercayaan kepada
kepala sekolah SMK tersebut untuk bertemu pihak developer jika seandainya ia
berhalangan untuk bertemu developer. Ia memberikan kepercayaan kepada kepala
sekolah karna kepala sekolah tahu perangkat lunak seperti apa yang dibutuhkan
di SMK tersebut. Namun pihak kepala sekolah meminta developer untuk mengerjakan
perangkat lunak dalam beberapa bagian dari setiap fungsi yang akan ada di
sistem tersebut. Setiap bagian fungsi yang sudah selesai dikerjakan akan
dilakukan testing, lalu dikirim atau dikonfirmasi kepada ketua yayasan untuk
langsung dapat digunakan. Beberapa fitur yang dikembangkan juga bukan hanya
untuk sebatas keputusan penentuan jurusan, fitur seperti pengelola siswa,
pengelolahan karyawan, penggajian dan perhitungan keuangan yayasan. Kepala
sekolah meminta developer agar bertemu langsung dengannya untuk mengembangkan
fitur keputusan untuk penentuan jurusan agar sesuai dengan yang diharapkan. Hal
ini pun di izinkan pihak yayasan. Namun kepala sekolah bukanlah orang yang
sabar. Ia membutuhkan sedikitnya orang dari tim developer yang dapat bekerja
secepat mungkin. Sehingga sedikit dari progress selesai, ia dapat langsung
mencoba menerapkannya untuk siswa SMK tersebut sebagai sample nya. Sebagai tim
developer yang bijaksana, model apa yang akan kamu gunakan ??
Nah, disini saya akan mencoba menjawab
dari kasus seperti di atas.
Berdasarkan masalah yang telah diuraikan
pada bagian latar belakang diatas, beberapa hal yang akan diteliti pada
penelitian ini adalah sebagai berikut:
a. Bagaimana perancangan aplikasi
sistem pendukung keputusan untuk penentuan jurusan di SMK ICON tersebut?
b.Bagaimana analisa dan hasil pengujian menggunakan metode Fuzzy dalam aplikasi tersebut ?
Dalam penelitian ini, metode yang akan
saya digunakan dalam pengembangan sistem adalah metode Incremental,
antara lain:
- Analisis dan Definisi Kebutuhan
( Requirements analysis and definition) Mengumpulkan kebutuhan
secara lengkap kemudian dianalisis dandidefinisikan kebutuhan yang harus
dipenuhi oleh program yang akan dibangun.
- Desain Sistem dan Perangkat Lunak (System and
software design) Membuat perancangan alir
proses sistem dan antarmuka Perangkat lunak.
- Implementasi dan Pengujian Unit
( Implementation and unit testing ) Menerjemahkan
desain program ke dalam kode-kode dengan menggunakan bahasa pemrograman
yang sudah ditentukan dan dilakukan pengujian per unit program.
- Integrasi dan Pengujian Sistem ( Integration and system testing ) Penyatuan unit-unit program kemudian dilakukan
pengujian secara keseluruhan (system testing ).
- Pengoperasian dan Pemeliharaan (Operation and maintenance) Mengoperasikan
program di lingkungannya dan melakukan pemeliharaan, seperti penyesuaian
atau perubahan karena adaptasi dengan situasi sebenarnya.
Serta
menggabungkan model extreme programming
yang menangani lamanya pada waktu pengembangan dalam membangun sebuah sofware
karna extreme programming ini memiliki aturan sederhana.
Nah, setelah
mengetahui model yang cocok untuk kasus seperti yang di atas, disini juga saya
sedikit mengulas tentang model incremental dan extreme programming bagi mungkin
yang belum terlalu mengerti.
1. Model
Incremental
Model Incremental dalam rekayasa
perangkat lunak, menerapkan rekayasa perangkat lunak perbagian, hingga
menghasilkan perangkat lunak yang lengkap. Proses membangun berhenti jika
produk telah mencapai seluruh fungsi yang diharapkan.
Adapun beberapa tahapan yang ada pada model incremental dimana
tahapan-tahapan tersebut dilakukan secara berurutan. Setiap bagian yang
sudah selesai dilakukan testing, dikirim ke pemakai untuk langsung dapat
digunakan.
Tahapan Incremental Model adalah :
·
Requirement
·
Specification
·
Architecture Design
Pada incremental model, tiga tahapan awal harus diselesaikan terlebih dahulu
sebelum sebelum tahap membangun tiap modal.
Incremental Model merupakan gabungan antara model linear sekuensial dan
prototyping. Setiap linear sekuen menghasilkan produk yang deliveriables.
Increment pertama merupakan produk inti yang mengandung persyaratan/kebutuhan
dasar. Penambahan dilakukan pada increment-incremet berikutnya.
Keunggulan dari
Incremental Model :
1. Personil
bekerja optimal
2. Pihak
konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai
dibangun. Contohnya pemasukan data karyawan
3. Mengurangi
trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan
menggunakan produknya bagian per bagian
4. Memaksimalkan
pengembalian modal investasi konsumen
Kekurangan dari
Incremental Model :
1. kemungkinan
tiap bagian tidak dapat di-integrasikan.
2. Mungkin
terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana
spesifikasi masing-masing hasil increment
3. Dapat
menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat
perubahan selama proses rekayasa berlangsung.
4. Harus Open architecture.
2. Extreme
Programming
Extreme
Programming (XP) merupakan salah satu metodologi dalam rekayasa
perangkat lunak dan juga merupakan satu dari beberapa agile software
development methodologies yang berfokus pada coding sebagai
aktivitas utama di semua tahap pada siklus pengembangan perangkat lunak (software
development lifecycle). Metodologi ini mengedepankan proses pengembangan
yang lebih responsive terhadap kebutuhan customer (”agile”) dibandingkan dengan
metode-metode tradisional sambil membangun suatu software dengan kualitas yang
lebih baik.
Extreme Programming muncul menawarkan
sebuah disiplin baru dalam pengembangan software secara agile.
Nilai dasar yang terkandung di dalam Extreme Programming adalah: Komunikasi (Communication),
Kesederhanaan (Simplicity), Umpan balik (Feedback)
Keberanian (Courage) dan menghormati (Respect).
Kata Kunci: Extreme Programming,
agile, coding, komunikasi, kesederhanaan, umpan balik, keberanian, menghormati.
Tujuan
utama XP adalah menurunkan biaya dari adanya perubahan software.
Dalam metodologi pengembangan sistem 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 mahal. XP diarahkan untuk menurunkan biaya dari adanya perubahan dengan
memperkenalkan nilai-nilai basis dasar, prinsip dan praktis. Dengan menerapkan
XP, pengembangan suatu sistem haruslah lebih fleksibel terhadap perubahan.
Menurut penggagas dari metode XP, Kent Beck
mendefinisikan empat kunci utama (inti) dari XP yaitu:
- Communication (Komunikasi)
- Simplicity (Kesederhanaan)
- Feedback (Masukan)
- Courage (Keberanian)
- Respect (Menghormati)
Keuntungan XP:
·
Menjalin komunikasi yang baik dengan client.
·
Meningkatkan komunikasi dan sifat saling menghargai
antar developer.
Kerugian XP:
·
Developer harus selalu siap dengan perubahan karena
perubahan akan selalu diterima.
·
Tidak bisa membuat kode yang detail di awal (prinsip
simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
Mungkin
Sekian yang dapat saya berikan mengenai yang berkaitan dengan model incremental
dan extreme programming. Semoga bermanfaat bagi teman-teman semuanya. J

