📰 WHAT'S NEW?

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:

    1. Analisis dan Definisi Kebutuhan ( Requirements analysis and definition) Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dandidefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun.
    2. Desain Sistem dan Perangkat Lunak (System and software designMembuat perancangan alir proses sistem dan antarmuka Perangkat lunak.
    3. 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.
    4. Integrasi dan Pengujian Sistem ( Integration and system testing Penyatuan unit-unit program kemudian dilakukan pengujian secara keseluruhan (system testing ).
    5. 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