📰 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

21 komentar: Leave Your Comments

  1. weh ringkas dan padat materi nya , blog nya juga dibuat untuk post ini , salut zach ( y )

    BalasHapus
  2. Apa alasan yang mendasari agan memilih 2 model tersebut untuk kasus yg diatas ?

    → kunjungan balik ke http://this-ismind.blogspot.com ←

    BalasHapus
    Balasan
    1. @ black wiedy : saya memilih 2 model tersebut, karna saya melihat dari spesifikasi yang diperlukan perangkat lunak yang di bangun, juga dari tahapan-tahapan seperti :
      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.
      sedangkan untuk extreme programmingnya itu berdasarkan sifat nya customernya.
      bagaimana gan ?

      Hapus
  3. Nice blog gan, bermanfaat.
    #sudah saya link kan di itfsac.blogspot.com gan, silahkan dikunjungi juga, terima kasih

    BalasHapus
  4. Balasan
    1. thank's gan,
      ada pertanyaan seputar materi diatas gk bg ??

      Hapus
  5. Di salah satu kelemahan Incremental ada "Harus Open architecture." , bisa jelaskan ga maksud nya :D

    BalasHapus
    Balasan
    1. mksudnya harus open architecture disini yaitu bahwa arsitecture atau rancangan sebuah perangkat lunak dapat dengan mudah untuk ditambah-tambah komponennya, upgrade, serta menukar-nukar komponen dengan mudah.
      begitu menurut saya, bagaimana gan fadhlul ??

      Hapus
  6. di bagian Kekurangan dari Incremental Model pada point ke-3, "Dapat menjadi build and Fix Model, .......", bisa tlong jelaskan ttg build and Fix Model itu apa gan? dan apa yg membedakan build and Fix Model ini dengan model pengembangan perangkat lunak lainnya?

    BalasHapus
    Balasan
    1. Fix dan Built model adalah model terburuk untuk mengembangkan sebuah proyek. Produk/perangkat lunak ini dibangun tanpa spesifikasi yang tepat dan langkah-langkah desain. Pada dasarnya, produk dibuat dan dimodifikasi sebanyak mungkin sampai memenuhi klien. Biaya menggunakan pendekatan ini lebih besar dari pada jika spesifikasi yang disusun dan desain dikembangkan dengan hati-hati. Insinyur perangkat lunak sangat dianjurkan menggunakan pendekatan pembangunan yang lebih baik selain ini.
      keuntungan dari model fix ada built :
      1. Memerlukan lebih sedikit pengalaman untuk melaksanakan atau mengelola,selain kemampuan untuk mem-program untuk membangun sebuah perangkat lunak..
      2. Cocok untuk perangkat lunak yang lebih kecil.
      3. Perancangan proyek yang kurang.

      sedangkan kekurangannya :
      1.Tidak ada bersedia untuk menilai kemajuan, kualitas, dan risiko dari perangkat lunak yang dibuat.
      2. Biaya menggunakan model proses ini tinggi karena membutuhkan ulang sampai kebutuhan pengguna yang dicapai.
      3. Desain perangkat lunak yang informal, karena melibatkan prosedur yang tidak direncanakan.
      4. dalam hal pemeliharaan/maintanance bermasalah.

      dan yang membedakan model fix dan built ini dangan model yang lain adalah dalam hal spesifikasi perangkat lunak dan desainnya. Model Fix dan built tidak ada spesifikasi dan desain dari perangkat lunal yang akan dibangun, sedangkan model lainnya memiliki itu.

      bagaimana gan ??

      Hapus
    2. ok, nice info, thank's gan (y)

      Hapus
  7. Fix dan Built model adalah model terburuk untuk mengembangkan sebuah proyek. Produk/perangkat lunak ini dibangun tanpa spesifikasi yang tepat dan langkah-langkah desain. Pada dasarnya, produk dibuat dan dimodifikasi sebanyak mungkin sampai memenuhi klien. Biaya menggunakan pendekatan ini lebih besar dari pada jika spesifikasi yang disusun dan desain dikembangkan dengan hati-hati. Insinyur perangkat lunak sangat dianjurkan menggunakan pendekatan pembangunan yang lebih baik selain ini.
    keuntungan dari model fix ada built :
    1. Memerlukan lebih sedikit pengalaman untuk melaksanakan atau mengelola,selain kemampuan untuk mem-program untuk membangun sebuah perangkat lunak..
    2. Cocok untuk perangkat lunak yang lebih kecil.
    3. Perancangan proyek yang kurang.

    sedangkan kekurangannya :
    1.Tidak ada bersedia untuk menilai kemajuan, kualitas, dan risiko dari perangkat lunak yang dibuat.
    2. Biaya menggunakan model proses ini tinggi karena membutuhkan ulang sampai kebutuhan pengguna yang dicapai.
    3. Desain perangkat lunak yang informal, karena melibatkan prosedur yang tidak direncanakan.
    4. dalam hal pemeliharaan/maintanance bermasalah.

    dan yang membedakan model fix dan built ini dangan model yang lain adalah dalam hal spesifikasi perangkat lunak dan desainnya. Model Fix dan built tidak ada spesifikasi dan desain dari perangkat lunal yang akan dibangun, sedangkan model lainnya memiliki itu.

    bagaimana gan ??

    BalasHapus
  8. postingannya bagus con,mksh ya con atas infonya :)

    BalasHapus
  9. on, keren. tapi kenapa gak gunain metode spiral ni ?
    karna dapat menganalisa resiko dulu sebelum di design dll , karna bisa mengurangi kesalahan tu seprti mengiputkan data dari kasus con tersebut.
    penjelasan nya con. makasih

    BalasHapus
    Balasan
    1. karena di contoh kasus soal tidak dibuat ka kalau clientnya ingin resiko yang sekecil-kecilnya, lagian cliennya juga mw menggunakan bagian-bagian yang telah selesai dibangun.

      Hapus