Tahapan dan Model Pengembangan Perangkat Lunak - Belajar Pemodelan Perangkat Lunak 3,Setelah mengerti tentang konsep pemodelan perangkat lunak maka selanjutnya kita akan membahas tentang tahapan-tahapan dari proses pengembangan sebuah perangkat lunak, dimana kita akan membahas tentang beberapa model dan tahapan pengembangan seperti model waterfall (air terjun), model prototipe, model RAD, model spiral, model 4GT, Extreme Programming, Evolusioner, Agile dan Adaptive Software Development (ASD)
Model Proses Pengembangan Perangkat Lunak
Model Waterfall
Model Pengembangan Air Terjun (waterfall), 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 dari pengembangan perangkat lunak model air terjun (waterfall):
a. Rekayasa dan Pemodelan Sistem/Informasi
Langkah pertama yaitu dimulai dengan membangun keseluruhan elemen sistem dan memilah bagian-bagian mana saja yang akan dijadikan bahan pengembangan perangkat lunak, dengan memperhatikan hubungannya dengan Hardware, User, dan Database.
b. Analisis Kebutuhan Perangkat Lunak
Pada proses analisis kebutuhan perangkat lunak 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.
c. Desain
Selanjutnya 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.
d. Pengkodean
Pengkodean merupakan proses menerjemahkan perancangan desain ke bentuk yang dapat dimengerti oleh mesin (bahasa pemrograman).
e. Pengujian
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 (bug) dan memeriksa apakah hasil dari pengembangan tersebut sesuai dengan apa yang diinginkan.
f. Pemeliharaan
Proses Pemeliharaan merupakan bagian paling akhir dilakukan dari siklus pengembangan dan dilakukan setelah perangkat lunak dipergunakan atau dipublikasikan.
Contoh penerapan dari pengembangan model air terjun (waterfall) adalah sebuah program pendaftaran online kesuatu instansi pendidikan, dengan demikian calon pendaftar akan terbantu sekaligus kegiatan pendaftaran menjadi lebih efektif.
Kelebihan model waterfall:
- 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.
- Dokumen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap dan sebelum melangkah ke fase berikutnya.
Kekurangan model waterfall:
- 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.
Tahapan-tahapan dalam model prototype dijelaskan secara ringkas sebagai berikut:
a. Pengumpulan Kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
b. Membangun Prototyping
Membangun prototyping dilakukan dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
c. Evaluasi Prototyping
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.
d. Mengkodekan Sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
e. Menguji Sistem
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.
f. Evaluasi Sistem
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.
g. Menggunakan Sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Contoh penerapan prototyping, 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 prototyping:
- 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 prototyping:
- 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 RAD
Rapid Application Development (RAD) adalah strategi siklus hidup yang ditujukan untuk menyediakan pengembangan yang jauh lebih cepat dan mendapatkan hasil dengan kualitas yang lebih baik dibandingkan dengan hasil yang dicapai melalui siklus tradisional (McLeod, 2002). RAD merupakan gabungan dari bermacam-macam teknik terstruktur dengan teknik prototyping dan teknik pengembangan joint application untuk mempercepat pengembangan sistem/aplikasi (Bentley, 2004). Dari definisi-definisi konsep RAD ini, dapat dilihat bahwa pengembangan aplikasi dengan menggunakan metode RAD ini dapat dilakukan dalam waktu yang relatif lebih cepat.
Tahapan-tahapan dalam model prototype dijelaskan secara ringkas sebagai berikut:
a. Requirements Planning (Perencanaan Syarat-Syarat)
Dalam fase ini, pengguna dan penganalisis bertemu untuk mengidentifikasikan tujuan-tujuan aplikasi atau sistem serta untuk megidentifikasikan syarat-syarat informasi yang ditimbulkan dari tujuan-tujuan tersebut. Orientasi dalam fase ini adalah menyelesaikan masalah-masalah perusahaan. Meskipun teknologi informasi dan sistem bisa mengarahkan sebagian dari sistem yang diajukan, fokusnya akan selalu tetap pada upaya pencapaian tujuan-tujuan perusahaan (Kendall, 2010).
b. RAD Design Workshop (Workshop Desain RAD)
Fase ini adalah fase untuk merancang dan memperbaiki yang bisa digambarkan sebagai workshop. Penganalisis dan dan pemrogram dapat bekerja membangun dan menunjukkan representasi visual desain dan pola kerja kepada pengguna. Workshop desain ini dapat dilakukan selama beberapa hari tergantung dari ukuran aplikasi yang akan dikembangkan. Selama workshop desain RAD, pengguna merespon prototipe yang ada dan penganalisis memperbaiki modul-modul yang dirancang berdasarkan respon pengguna. Apabila sorang pengembangnya merupakan pengembang atau pengguna yang berpengalaman, Kendall menilai bahwa usaha kreatif ini dapat mendorong pengembangan sampai pada tingkat terakselerasi (Kendall, 2010).
c. Implementation (Implementasi)
Pada fase implementasi ini, penganalisis bekerja dengan para pengguna secara intens selama workshop dan merancang aspek-aspek bisnis dan nonteknis perusahaan. Segera setelah aspek-aspek ini disetujui dan sistem-sistem dibangun dan disaring, sistem-sistem baru atau bagian dari sistem diujicoba dan kemudian diperkenalkan kepada organisasi (Kendall, 2010).
Kelebihan RAD:
- Lebih efektif dari pendekatan waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan
- Cocok untuk proyek yang memerlukan waktu yang singkat
- Perubahan kebutuhan dapat diakomodisi
- Waktu pengerjaan dapat diperkirakan
- Waktu iterasi dapat dipersingkat dengan menggunakan RAD Tools
- Produktivitas yang dihasilkan oleh setiap indvidu lebih banyak
- Mengurangi waktu pengembangan
- Meningkatkan penggunaan ulang dari komponen-komponen
- Peninjauan dapat terjadi dengan cepat
Kekurangan RAD:
- Membutuhkan orang yang banyak untuk menyelesaikan sebuah proyek berskala besar
- Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan customer
- Pengembang dan customer harus punya komitmen yang kuat untuk menyelesaikan sebuah software
- Manajemen jauh lebih kompleks
- Membutuhkan tenaga kerja ahli baik itu pengembang maupun desainer
- Tergantung pada teknis member ahli untuk mengidentifikasi kebutuhan bisnis
- Hanya sistem modular yang dapat dikembangkan dengan model RAD
Demikian sesi berbagi ilmu tentang Tahapan dan Model Perangkat Lunak Bagian 1 yang membahas tentang 3 model diantaranya yaitu Model Waterfall, Model prototype dan model RAD. Untuk model lainnya akan dibahas di bagian selanjutnya, semoga membantu dan mempermudah para pembaca untuk mengerti tentang pelajaran pemodelan perangkat lunak, jika ada hal yang tidak dimengerti silahkan bertanya di kolom komentar, dan kita sharing sampai sama sama mengerti. Jangan lupa baca artikel lain tentang Belajar Pemodelan Perangkat Lunak.
Nama : Indah Yusty Rinanda
BalasHapusKelas : XI RPL
Pertanyaan : Mengapa model waterfall merupakan model yang paling banyak digunakan?
Nama : Nurul Aziza
BalasHapusKelas : XI RPL
Pertanyaan : Sebutkan tahapan-tahapan dalam model prototype
Nama: Al-ridho
BalasHapusKelas:XI RPL
pertanyaan:Mengapa pengembangan aplikasi dengan menggunakan metode RAD ini dianggap dapat dilakukan dalam waktu yang relatif lebih cepat?
Nama: Auqiqa Ainun N
BalasHapusKelas: XI Rpl
Pertanyaan: Hal apa saja yang dapat mempengaruhi kegagalan sistem dalam model waterfall?
Nama : Muh Alif Alfarisi
BalasHapusKelas : XI Rpl
Pertanyaan : sebutkan kelebihan dan kekurangan model waterfull?
Nama:Dhio arland saputra.R
BalasHapusKelas:XI RPL
pertanyaan:Apakah kelebihan dari White Box dan Black Box?
Nama:Syafitri Syafri
BalasHapusKelas:XI RPL
Pertanyaan:sebutkan kelebihan&kekurangan dari model RAD
Nama:siti maryam
BalasHapusKelas:xl RPL
Pertanyaan :apa saja tahapan dari pengembangan perangkat lunak model air terjun?
Nama: Mawar Sulistiawaty
BalasHapusKelas: XI RPL
Pertanyaan: Apa saja kelebihan dari prototyping?
Nama:muh raihan zaky
BalasHapusKelas:XI RPL
pertanyaan:Apa yang di maksud dengan SDLC
Nama:Zynta Fatima Keisya Lita
BalasHapusKelas:Xl RPL
Pertanyaan:Mengapa model waterfall dianggap sebagai model SDLC dianggap paling sederhana dan hanya cocok digunakan untuk aplikasi skala kecil
Nama : Aura Zedna A.Gafar
BalasHapusKelas : XI RPL
Pertanyaan : Mengapa proses Pemeliharaan merupakan bagian paling akhir dilakukan dari siklus pengembangan?
Nama : Fardhan Abdillah
BalasHapusKelas: XI RPL
Pertanyaan : Apa Yang dimaksud dengan Model RAD
Nama : Adelah
BalasHapusKelas : Xl RPL
Pertanyaan :Kenapa model waterfall jarang mengikuti mengikuti alur sekuensial ???
Nama : Muhammad Fatin Syuja
BalasHapusKelas :XI RPL
Pertanyaan: jelaskan yang dimaksud Requirements Planning,RAD Design Workshop,Implementation???
Nama : Adzhifah Dasadira Aprilia.A
BalasHapusKelas : XI Rpl
Pertanyaan : Sebutkan apa saja kekurangan dan kelebihan RAD?
Nama : Muh Imam syafei
BalasHapusKelas: XI RPL
pertanyaan : dalam model prototype di sana di sebutkan suatu kalimat yaitu "sistem sekuensial yang biasa dikenal dengan nama SDLC" nah yg ingin sya tnyakan apa yg di maksud sitem sekuensiak SDLC...
Sekian terima kasih
Nama:Hasniawati
BalasHapusKelas:XI RPL
Pertanyaan:Apa yang dimaksud implementation