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

keren...
BalasHapusok bg
Hapusweh ringkas dan padat materi nya , blog nya juga dibuat untuk post ini , salut zach ( y )
BalasHapusmakasih ded
HapusApa alasan yang mendasari agan memilih 2 model tersebut untuk kasus yg diatas ?
BalasHapus→ kunjungan balik ke http://this-ismind.blogspot.com ←
@ black wiedy : saya memilih 2 model tersebut, karna saya melihat dari spesifikasi yang diperlukan perangkat lunak yang di bangun, juga dari tahapan-tahapan seperti :
HapusAnalisis 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 ?
Nice blog gan, bermanfaat.
BalasHapus#sudah saya link kan di itfsac.blogspot.com gan, silahkan dikunjungi juga, terima kasih
terima kasih gan..
Hapusmantap pembahasannya gan
BalasHapusthank's gan,
Hapusada pertanyaan seputar materi diatas gk bg ??
Di salah satu kelemahan Incremental ada "Harus Open architecture." , bisa jelaskan ga maksud nya :D
BalasHapusmksudnya 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.
Hapusbegitu menurut saya, bagaimana gan fadhlul ??
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?
BalasHapusFix 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.
Hapuskeuntungan 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 ??
ok, nice info, thank's gan (y)
HapusIya win, sama-sama..
HapusFix 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.
BalasHapuskeuntungan 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 ??
postingannya bagus con,mksh ya con atas infonya :)
BalasHapusmakasih fitri :)
Hapuson, keren. tapi kenapa gak gunain metode spiral ni ?
BalasHapuskarna dapat menganalisa resiko dulu sebelum di design dll , karna bisa mengurangi kesalahan tu seprti mengiputkan data dari kasus con tersebut.
penjelasan nya con. makasih
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