1. 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 Handayani 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. Belumlagi 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 sistempenjurusan yang digunakan di instansi
tersebut dan dilakukan pertimbangan, pihat Instansi memutuskan membuat kesempatan
untuk merancang adanya sistembaru (perangkat lunak) agar lebih mempermudah dalam
menentukan minat jurusan siswa bila dibandingkan dengan sistemsebelumnya.
Berhubung Pihak Ketua yayasan tidak terlalu paham teknologi, ia berharap sistembaru
(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
2. 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 sistemtersebut. 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 sistempendukung keputusan untuk penentuan jurusan
di SMK ICON tersebut ?
b.Bagaimana analisa dan hasil pengujian menggunakan metode Fuzzy dalam aplikasi
tersebut ?
Dalampenelitian ini, metode yang akan saya digunakan dalam pengembangan sistem
adalah metode Incremental, antara lain:
A. Analisis dan Definisi Kebutuhan ( Requirements analysis and definition)
Mengumpulkan kebutuhan secara lengkap kemudian dianalisis
dandidefinisikan kebutuhan yang harus dipenuhi oleh program yang akan
dibangun.
B. Desain Sistemdan Perangkat Lunak (System and software design) Membuat
perancangan alir proses sistemdan antarmuka Perangkat lunak.
C. 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.
D. Integrasi dan Pengujian Sistem ( Integration and systemtesting ) Penyatuan
unit-unit program kemudian dilakukan pengujian secara keseluruhan (system
testing ).
3. E. 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 dalamrekayasa 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.
4. 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 dalamrekayasa
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 dalamExtreme 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 sistemtradisional, kebutuhan sistemditentukan 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
5. 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.