Pada postingan kali ini, saya akan membahas tentang “Model – Model
Pengembangan Perangkat Lunak Beserta Contoh Penerapannya”. Sebelumnya,
Apa itu Pengembangan Perangkat Lunak?
Proses Pengembangan Perangkat Lunak (Software Development Process)
adalah suatu penerapan struktur pada pengembangan suatu Perangkat Lunak
(Software), yang bertujuan untuk mengembangkan sistem dan memberikan
panduan untuk menyukseskan proyek pengembangan sistem melalui
tahapan-tahapan tertentu. Dalam prosesnya, terdapat beberapa paradigma
model pengembangan sistem perangkat lunak, diantaranya :
- Model Sekuensial Linier atau Waterfall Development Model
Model Sekuensial Linier atau sering disebut Model Pengembangan Air
Terjun, merupakan paradigma model pengembangan perangkat lunak paling
tua, dan paling banyak dipakai. Model ini mengusulkan sebuah pendekatan
perkembangan perangkat lunak yang sistematik dan sekunsial yang dimulai
pada tingkat dan kemajuan sistem pada seluruh tahapan analisis, desain ,
kode, pengujian, dan pemeliharaan.
Berikut Merupakan Tahapan – tahapan Pengembangan Model Sekuensial Linear / Waterfall Development Model :
- Rekayasa dan pemodelan sistem/informasi
Langkah pertama dimulai dengan membangun keseluruhan elemen sistem
dan memilah bagian-bagian mana yang akan dijadikan bahan pengembangan
perangkat lunak, dengan memperhatikan hubungannya dengan Hardware, User,
dan Database.
- Analisis kebutuhan perangkat lunak
Pada proses ini, dilakukan penganalisaan dan pengumpulan kebutuhan
sistem yang meliputi Domain informasi, fungsi yang dibutuhkan unjuk
kerja/performansi dan antarmuka. Hasil penganalisaan dan pengumpulan
tersebut didokumentasikan dan diperlihatkan kembali kepada pelanggan.
Pada proses Desain, dilakukan penerjemahan syarat kebutuhan sebuah
perancangan perangkat lunak yang dapat diperkirakan sebelum dibuatnya
proses pengkodean (coding). Proses ini berfokus pada struktur data,
arsitektur perangkat lunak, representasi interface, dan detail algoritma
prosedural.
Pengkodean merupakan proses menterjemahkan perancangan desain ke
bentuk yang dapat dimengerti oleh mesin, dengan menggunakan bahasa
pemrograman.
Setelah Proses Pengkodean selesai, dilanjutkan dengan proses
pengujian pada program perangkat lunak, baik Pengujian logika internal,
maupun Pengujian eksternal fungsional untuk memeriksa segala kemungkinan
terjadinya kesalahan dan memeriksa apakah hasil dari pengembangan
tersebut sesuai dengan hasil yang diinginkan.
Proses Pemeliharaan erupakan bagian paling akhir dari siklus
pengembangan dan dilakukan setelah perangkat lunak dipergunakan.
Kegiatan yang dilakukan pada proses pemeliharaan antara lain :
- Corrective Maintenance : yaitu mengoreksi apabila terdapat kesalahan
pada perangkat lunak, yang baru terdeteksi pada saat perangkat lunak
dipergunakan.
- Adaptive Maintenance : yaitu dilakukannya penyesuaian/perubahan
sesuai dengan lingkungan yang baru, misalnya hardware, periperal, sistem
operasi baru, atau sebagai tuntutan atas perkembangan sistem komputer,
misalnya penambahan driver, dll.
- Perfektive Maintenance : Bila perangkat lunak sukses dipergunakan
oleh pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya seperti
memberikan fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.
- Contoh Penerapan dari Pengembangan Model Sekuensial Linear / Waterfall Development Model
Contoh dari penerapan model pengembangan ini adalah pembuatan program
pendaftaran online ke suatu Instansi Pendidikan. Program ini akan
sangat membantu dalam proses pendaftaran, karena dapat meng-efektifkan
waktu serta pendaftar tidak perlu repot-repot langsung mendatangi
Instansi Pendidikan. Teknisnya adalah sebagai berikut :
- Sistem program untuk pendaftaran dibuat menggunakan bahasa
pemrograman PHP, dengan Sistem Database yang dibuat menggunakan MySQL,
dan diterapkan (diaplikasikan) pada PC (personal computer) dengan sistem
operasi berbasis Microsoft Windows, Linux, dan sebagainya.
- Setelah program selesai dibuat dan kemudian dipergunakan oleh user,
programmer akan memelihara serta menambah atau menyesuaikan program
dengan kebutuhan serta kondisi user.
- Kelebihan Model Sekuensial Linear / Waterfall Development Model :
- Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
- Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
- Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
- Documen pengembangan sistem sangat terorganisir, karena setiap fase
harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
- Kekurangan Model Sekuensial Linear / Waterfall Development Model :
- Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti
diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang
sudah didapatkan tim pengembang harus diubah kembali/iterasi sering
menyebabkan masalah baru.
- Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
- Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
- Pelanggan harus sabar untuk menanti produk selesai, karena
dikerjakan tahap per tahap, dan proses pengerjaanya akan berlanjut ke
setiap tahapan bila tahap sebelumnya sudah benar-benar selesai.
- Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat produk.
- Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.
- Model Prototype
Metode Prototype merupakan suatu paradigma baru dalam metode
pengembangan perangkat lunak dimana metode ini tidak hanya sekedar
evolusi dalam dunia pengembangan perangkat lunak, tetapi juga merevolusi
metode pengembangan perangkat lunak yang lama yaitu sistem sekuensial
yang biasa dikenal dengan nama SDLC atau waterfall development model.
Dalam Model Prototype, prototype dari perangkat lunak yang dihasilkan
kemudian dipresentasikan kepada pelanggan, dan pelanggan tersebut
diberikan kesempatan untuk memberikan masukan sehingga perangkat lunak
yang dihasilkan nantinya betul-betul sesuai dengan keinginan dan
kebutuhan pelanggan.
Perubahan dan presentasi prototype dapat dilakukan berkali-kali
sampai dicapai kesepakatan bentuk dari perangkat lunak yang akan
dikembangkan.
Teknik – teknik Prototyping Meliputi :
- Perancangan Model
- Perancangan Dialog
- Simulasi
Berikut adalah 4 langkah yang menjadi karakteristik dalam proses pengembangan pada metode prototype, yaitu :
- Pemilihan fungsi
- Penyusunan Sistem Informasi
- Evaluasi
- Penggunaan Selanjutnya
Metode ini menyajikan gambaran yang lengkap dari suatu sistem
perangkat lunak, terdiri atas model kertas, model kerja dan program.
Pihak pengembang akan melakukan identifikasi kebutuhan pemakai,
menganalisa sistem dan melakukan studi kelayakan serta studi terhadap
kebutuhan pemakai, meliputi model interface, teknik prosedural dan
teknologi yang akan dimanfaatkan.
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Prototype, yaitu :
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh
perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar
sistem yang akan dibuat.
Membangun prototyping dengan membuat perancangan sementara yang
berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input
dan format output).
Evaluasi ini dilakukan oleh pelanggan, apakah prototyping yang sudah
dibangun sudah sesuai dengan keinginan pelanggan atau belum. Jika sudah
sesuai, maka langkah selanjutnya akan diambil. Namun jika tidak,
prototyping direvisi dengan mengulang langkah-langkah sebelumnya.
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai,
kemudian dilakukan proses Pengujian. Pengujian ini dilakukan dengan
White Box, Black Box, Basis Path, pengujian arsitektur, dll.
Pelanggan mengevaluasi apakah perangkat lunak yang sudah jadi sudah
sesuai dengan yang diharapkan . Jika ya, maka proses akan dilanjutkan ke
tahap selanjutnya, namun jika perangkat lunak yang sudah jadi
tidak/belum sesuai dengan apa yang diharapkan, maka tahapan sebelumnya
akan diulang.
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Model Prototyping ini sangat sesuai diterapkan untuk kondisi yang
beresiko tinggi di mana masalah-masalah tidak terstruktur dengan baik,
terdapat fluktuasi kebutuhan pemakai yang berubah dari waktu ke waktu
atau yang tidak terduga, bila interaksi dengan pemakai menjadi syarat
mutlak dan waktu yang tersedia sangat terbatas sehingga butuh
penyelesaian yang segera. Model ini juga dapat berjalan dengan maksimal
pada situasi di mana sistem yang diharapkan adalah yang inovatif dan
mutakhir sementara tahap penggunaan sistemnya relatif singkat.
Berikut merupakan Jenis – jenis dari Prototyping :
digunakan untuk menguji kelayakan dari teknologi yang akan digunakan untuk system informasi yang akan disusun.
digunakan untuk mengetahui kebutuhan aktivitas bisnis user.
digunakan untuk mendorong perancangan sistem informasi yang akan digunakan.
- Implementation prototyping
merupakan lanjutan dari rancangan prototype, prototype ini langsung disusun sebagai suatu sistem informasi yang akan digunakan.
- Contoh Penerapan Metode Prototype.
Sebuah rumah sakit ingin membuat aplikasi sistem database untuk
pendataan pasiennya. Seorang atau sekelompok programmer akan melakukan
identifikasi mengenai apa saja yang dibutuhkan oleh pelanggan, dan
bagaimana model kerja program tersebut. Kemudian dilakukan rancangan
program yang diujikan kepada pelanggan. Hasil/penilaian dari pelanggan
dievaluasi, dan analisis kebutuhan pemakai kembali di lakukan.
- Kelebihan Model Prototype :
- Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga
hasil produk pengembangan akan semakin mudah disesuaikan dengan
keinginan dan kebutuhan pelanggan.
- Penentuan kebutuhan lebih mudah diwujudkan.
- Mempersingkat waktu pengembangan produk perangkat lunak.
- Adanya komunikasi yang baik antara pengembang dan pelanggan.
- Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
- Lebih menghemat waktu dalam pengembangan sistem.
- Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.
- Kekurangan Model Prototype :
- Proses analisis dan perancangan terlalu singkat.
- Biasanya kurang fleksibel dalam mengahadapi perubahan.
- Walaupun pemakai melihat berbagai perbaikan dari setiap versi
prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut
dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
- Pengembang kadang-kadang membuat kompromi implementasi dengan
menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak
efisien.
- Model Rapid Application Development (RAD)
Rapid Aplication Development (RAD) adalah sebuah model proses
perkembanganperangkat lunak sekuensial linier yang menekankan siklus
perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD
ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial
linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan
konstruksi berbasis komponen.
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Rapid Application Development (RAD), yaitu :
Fase ini untuk mencari aliran informasi yang dapat menjawab pertanyaan berikut:
- Informasi apa yang menegndalikan proses bisnis?
- Informasi apa yang dimunculkan?
- Di mana informasi digunakan ?
- Siapa yang memprosenya ?
Aliran informasi yang didefinisikan sebagai bagian dari fase
bussiness modeling disaring ke dalam serangkaian objek data yang
dibutuhkan untuk menopang bisnis tersebut. Karakteristik (atribut)
masing-masing objek diidentifikasi dan hubungan antar objek-objek
tersebut didefinisikan.
Aliran informasi yang didefinisikan di dalam fase data modeling
ditransformasikan untuk mencapai aliran informasi yang perlu bagi
implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk
menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek
data.
Selain menggunakan bahasa pemrograman generasi ketiga, RAD juga
memakai komponen program yang telah ada atau menciptakan komponen yang
bisa dipakai lagi. Ala-alat bantu bisa dipakai untuk memfasilitasi
konstruksi perangkat lunak.
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen
program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian.
Tetapi komponen baru harus diuji dan semua interface harus dilatih
secara penuh.
- Kelebihan Model RAD :
- Lebih efektif dari Pengembangan Model waterfall/sequential linear
dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari
pelanggan.
- Cocok untuk proyek yang memerlukan waktu yang singkat.
- Model RAD mengikuti tahap pengembangan sistem seperti pada umumnya,
tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada
sehingga pengembang tidak perlu membuatnya dari awal lagi sehingga waktu
pengembangan menjadi lebih singkat dan efisien.
- Kekurangan Model RAD :
- Model RAD menuntut pengembangan dan pelanggan memiliki komitmen di
dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah
sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen
tersebut tidak ada, proyek RAD akan gagal.
- Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat
dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan
menjadi sangat bermasalah.
- RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
- Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.
- Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.
- Model Evolutionary Development / Evolutionary Software Process Models
Model Evolutionary Development bersifat iteratif (mengandung
perulangan). Hasil prosesnya berupa produk yang makin lama makin lengkap
sampai versi terlengkap dihasilkan sebagai produk akhir dari proses.
Model Evolutionary Development / Evolutionary Software Process terbagi
menjadi 2, yaitu :
- Model Incremental
Model Incremental merupakan hasil kombinasi elemen-elemen dari model
waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan
dari Model linear sekuensial (waterfall) dengan Model Prototype.
Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan
spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga
muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan
tentunya memenuhi kebutuhan pemakai.
Model ini berfokus pada penyampaian produk operasional dalam Setiap
pertambahanya. Pertambahan awal ada di versi stripped down dari produk
akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga
menyediakan platform untuk evaluasi oleh pemakai. Model ini cocok
dipakai untuk proyek kecil dengan anggota tim yang sedikit dan
ketersediaan waktu yang terbatas.
Pada proses Pengembangan dengan Model Incremental, perangkat lunak
dibagi menjadi serangkaian increment yang dikembangkan secara
bergantian.
- Contoh Penerapan Model Incremental
Perangkat lunak pengolah kata yang dikembangkan dengan menggunakan
paradigma pertambahan akan menyampaikan manajemen file, editing, serta
fungsi penghasilan dokumen pada pertambahan pertama, dan selanjutnya.
Pertambahan pertama dapat disebut sebagai produk inti (core product).
Dan pada pertambahan selanjutnya, produk inti akan dikembangkan terus
hingga menghasilkan produk jadi yang siap untuk digunakan/dipasarkan.
- Kelebihan Model Incremental :
- Personil bekerja optimal.
- mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang
relatif singkat dan tidak dibutuhkan anggota/tim kerja yang banyak untuk
menjalankannya.
- Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
- Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya setiap bagian demi bagian.
- Memaksimalkan pengembalian modal investasi konsumen.
- Kekurangan Model Incremental :
- Tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding).
- Sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.
2.
Model Spiral / Model Boehm
Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model
prototyping dengan pengulangannya dan model waterfall dengan
pengendalian dan sistematikanya. Model ini dikenal dengan sebutan
Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model
umum tersebut untuk menghasilkan produk khusus atau untuk menjawab
persoalan-persoalan tertentu selama proses pengerjaan proyek.
Tahap-tahap model ini dapat dijelaskan secara ringkas sebagai berikut :
- Tahap Liason:pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai.
- Tahap Planning (perencanaan):pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.
- Tahap Analisis Resiko:mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
- Tahap Rekayasa (engineering):pembuatan prototipe.
- Tahap Konstruksi dan Pelepasan (release):pada tahap
ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji,
diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan
proyek.
- Tahap Evaluasi:Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
- Kelebihan model iniadalah sangat mempertimbangkan
resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan
untuk pengembangan perangkat lunak skala besar. Pendekatan model ini
dilakukan melalui tahapan-tahapan yang sangat baik dengan menggabungkan
model waterfall ditambah dengan pengulangan-pengulangan sehingga lebih
realistis untuk mencerminkan keadaan sebenarnya. Baik pengembang maupun
pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari
sistem karena proses-prosesnya dapat diamati dengan baik.
- Kekurangan model iniadalah waktu yang dibutuhkan
untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya
yang besar. Selain itu, sangat tergantung kepada tenaga ahli yang dapat
memperkirakan resiko. Terdapat pula kesulitan untuk mengontrol proses.
Sampai saat ini, karena masih relatif baru, belum ada bukti apakah
metode ini cukup handal untuk diterapkan.
Model Spiral/Boehm sangat cocok diterapkan untuk pengembangan sistem
dan perangkat lunak skala besar di mana pengembang dan pemakai dapat
lebih mudah memahami kondisi pada setiap tahapan dan bereaksi terhadap
kemungkinan terjadinya kesalahan. Selain itu, diharapkan juga waktu dan
dana yang tersedia cukup memadai.
Mungkin cukup sekian postingan saya kali ini, semoga pembahasan
tentang “Model – model Pengembangan Perangkat Lunak” diatas dapat
bermanfaat untuk kita semua.