Anda di halaman 1dari 28

Studi Kasus Pengembangan

Software dengan Metode


Waterfall

By : Ade
• Model Waterfall

Waterfall adalah suatu metodologi pengembangan


perangkat lunak yang mengusulkan pendekatan kepada
perangkat lunak sistematik dan sekuensial yang mulai pada
tingkat kemajuan sistem pada seluruh analisis, design,
kode, pengujian dan pemeliharaan.
Langkah-langkah yang harus dilakukan pada
metodologi Waterfall adalah sebagai berikut:

1. Analisis kebutuhan perangkat lunak


Proses pengumpulan kebutuhan diintensifkan dan difokuskan,
khususnya pada perangkat lunak. Untuk memahami sifat program
yang dibangun, rekayasa perangkat lunak (analisis) harus
memahami domain informasi, tingkah laku, unjuk kerja dan antar
muka (interface) yang diperlukan. Kebutuhan baik untuk sistem
maupun perangkat lunak di dokumentasikan dan dilihat dengan
pelanggan.
2. Desain
Desain perangkat lunak sebenarnya adalah proses multi langka
yang berfokus pada empat atribut sebuah program yang
berbeda; struktur data, asitektur perangkat lunak, representasi
interface dan detail (algoritma) prosedural. Proses desain
menerjemahkan syarat/kebutuhan kedalam sebuah representasi
perangkat lunak yang dapat di perkirakan demi kualitas sebelum
dimulai pemunculan kode. Sebagaimana persyaratan, desain
didokumentasikan dan menjadi bagian dari konfigurasi
perangkat lunak.
3. Generasi Kode
Desain harus diterjemahkan dalam bentuk mesin yang bisa di
baca. Langkah pembuatan kode melakukan tugas ini. Jika
desain dilakukan dengan cara yang lengkap, pembuatan kode
dapat diselesaikan secara mekanis.
4. Pengujian
Proses pengujian dilakukan pada logika internal untuk
memastikan semua pernyataan sudah diuji. Pengujian eksternal
fungsional untuk menemukan kesalahan-kesalahan dan
memastikan bahwa input akan memberikan hasil yang aktual
sesuai yang dibutuhkan
5. Pemeliharaan

Perangkat lunak yang sudah disampaikan kepada pelanggan pasti akan


mengalami perubahan. Perubahan tersebut bisa karena mengalami
kesalahan karena perangkat lunak harus menyesuaikan dengan
lingkungan (periperal atau sistem operasi baru) baru, atau karena
pelanggan membutuhkan perkembangan fungsional atau unjuk kerja.
Keunggulan dan Kelemahan Model
Sekuensial Linier
a. Keunggulan
1. Mudah aplikasikan
2. Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan
pemeliharaan

b. Kelemahan
1. Jarang sekali proyek riil mengikuti aliran sekuensial yang dianjurkan model karena
model ini bisa melakukan itersi tidak langsung . Hal ini berakibat ada perubahan
yang diragukan pada saat proyek berjalan.
2. Pelanggan sulit untuk menyatakan kebutuhan secara eksplisit sehingga sulit untuk
megakomodasi ketidakpastian pada saat awal proyek.
3. Pelanggan harus bersikap sabar karena harus menunggu sampai akhir proyrk
dilalui.
Sebuah kesalahan jika tidak diketahui dari awal akan menjadi masalah besar kare
harus mengulang dari awal.
4. Pengembang sering malakukan penundaan yang tidak perlu karena anggota tim
proyek harus menunggu tim lain untuk melengkapi tugas karena memiliki
ketergantungan hal ini menyebabkan penggunaan waktu tidak efesien
Studi Kasus
METODE PENELITIAN
• Gambaran umum mengenai langkah-langkah yang dilakukan dalam penelitian berdasarkan
• urutan pelaksanaannya. Penentuan metodologi penelitian ini perlu dilakukan terlebih dahulu
• sehingga arah dan pelaksanaan kegiatan penelitian yang akan dilakukan menjadi jelas.
• Analisis sistem perlu dilakukan untuk mengetahui
kegiatan dan komponen apa saja yang berkaitan
• dengan sistem perpustakaan SMKN 1 Cimahi sebelum
dilakukan pemodelan sistem. Pada proses
• perpustakaan SMKN 1 Cimahi terdapat 2 entitas internal,
yaitu siswa/guru, kepala sekolah sedangkan
• entitas luar yang mempengaruhi perpustakaan adalah
sistem persediaan buku. Untuk lebih jelasnya
• kegiatan dan komponen yang terlibat dalam proses
perpustakaan dapat digambarkan diagram
• konteks sebagai berikut:
• Kesimpulan

• Berdasarkan kajian dan teori yang dimiliki, serta dari hasil analisis
terhadap sistem
• informasi perpustakaan yang sedang berjalan di SMKN 1 Cimahi, maka
kesimpulan yang dapat
• diambil yaitu :
• - Pada proses transaksi pada sistem sebelumnya terdapat kesulitan
dalam pendataan buku,
• belum tersedianya pemberian denda yang jelas dan lamanya waktu
yang digunakan
• dalam proses peminjaman maupun pengembalian.
• - Memudahkan dalam pembuatan laporan yang akan dibuat oleh staf
yang akan
• dilaporkan ke kepala sekolah.
Pengembangan Perangkat Lunak (Prototyping Model)

• Pendahuluan
Pengembangan perangkat lunak (juga disebut pengembangan aplikasi, desain perangkat
lunak, merancang perangkat lunak, pengembangan aplikasi perangkat lunak, pengembangan
aplikasi perusahaan, atau pengembangan platform) adalah pengembangan suatu produk
perangkat lunak. Istilah "pengembangan perangkat lunak" bisa dipakai untuk menyebut aktivitas
pemrograman komputer, yaitu proses menulis dan mengelola kode sumber, namun dalam artian
luas istilah ini mencakup semua hal yang terlibat antara penciptaan perangkat lunak yang
diinginkan melalui pewujudan akhir perangkat lunak, idealnya dalam proses yang terencana dan
terstruktur. Karena itu, pengembangan perangkat lunak bisa mencakup penelitian,
pengembangan baru, purwarupa, modifikasi, pemakaian kembali, rekayasa ulang, pengelolaan,
atau aktivitas lain yang menghasilkan produk perangkat lunak.

Perangkat lunak bisa dikembangkan untuk berbagai tujuan, tiga tujuan paling umum adalah
memenuhi kebutuhan klien/bisnis tertentu (perangkat lunak kustom), memenuhi persepsi
kebutuhan sejumlah penggunaa potensial (perangkat lunak komersial dan terbuka), atau
memenuhi kebutuhan pribadi (misalnya seorang ilmuwan menulis perangkat lunak untuk
mengotomasikan sebuah tugas yang rumit). Pengembangan perangkat lunak tertanam adalah
pengembangan perangkat lunak tertanam seperti yang dipakai untuk mengontrol produk
konsumen, membutuhkan proses pengembangan yang terintegrasikan dengan pengembangan
produk fisik yang dikontrol.

Perlunya pengawasan kualitas yang lebih baik pada proses pengembangan perangkat lunak
menciptakan disiplin teknik perangkat lunak, yang bertujuan menerapkan pendekatan sistematis
yang tercantum dalam paradigma teknik hingga proses pengembangan perangkat lunak.
Model Prototyping pada Rekayasa
Perangkat Lunak
• Sebuah prototipe adalah bagian dari produk yang mengekspresikan logika maupun fisik antarmuka eksternal yang ditampilkan.
Konsumen potensial menggunakan prototipe dan menyediakan masukan untuk tim pengembang sebelum pengembangan skal besar
dimulai. Melihat dan mempercayai menjadi hal yang diharapkan untuk dicapai dalam prototipe. Dengan menggunakan pendekatan
ini, konsumen dan tim pengembang dapat mengklarifikasi kebutuhan dan interpretasi mereka.

• Prototyping perangkat lunak (software prototyping) atau siklus hidup menggunakan protoyping (life cycle using prototyping)
adalah salah satu metode siklus hidup sistem yang didasarkan pada konsep model bekerja (working model). Tujuannya adalah
mengembangkan model menjadi sistem final. Artinya sistem akan dikembangkan lebih cepat dari pada metode tradisional dan
biayanya menjadi lebih rendah. Ada banyak cara untuk memprotoyping, begitu pula dengan penggunaannya. Ciri khas dari
metodologi ini adalah pengembang sistem (system developer), klien, dan pengguna dapat melihat dan melakukan eksperimen
dengan bagian dari sistem komputer dari sejak awal proses pengembangan.

• Dengan prototype yang terbuka, model sebuah sistem (atau bagiannya) dikembangkan secara cepat dan dipoles dalam diskusi yang
berkali-kali dengan klien. Model tersebut menunjukkan kepada klien apa yang akan dilakukan oleh sistem, namun tidak didukung
oleh rancangan desain struktur yang mendetil. Pada saat perancang dan klien melakukan percobaan dengan berbagai ide pada
suatu model dan setuju dengan desain final, rancangan yang sesungguhnya dibuat tepat seperti model dengan kualitas yang lebih
bagus.

• Protoyping membantu dalam menemukan kebutuhan di tahap awal pengembangan,terutama jika klien tidak yakin dimana masalah
berasal. Selain itu protoyping juga berguna sebagai alat untuk mendesain dan memperbaiki user interface – bagaimana sistem akan
terlihat oleh orang-orang yang menggunakannya.

Salah satu hal terpenting mengenai metodologi ini, cepat atau lambat akan disingkirkan dan hanya digunakan untuk tujuan
dokumentasi. Kelemahannya adalah metode ini tidak memiliki analisa dan rancangan yang mendalam yang merupakan hal penting
bagi sistem yang sudah kokoh, terpercaya dan bisa dikelola. Jika seorang pengembang memutuskan untuk membangun jenis
prototipe ini, penting untuk memutuskan kapan dan bagaimana ia akan disingkirkan dan selanjutnya menjamin bahwa hal tersebut
telah diselesaikan tepat pada waktunya.
Tahapan-Tahapan Prototyping dan
Kelebihannya
• Tahapan-tahapan dalam Prototyping adalah sebagai berikut:

• 1. Pengumpulan kebutuhan
• Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis
besar sistem yang akan dibuat.

• 2. Membangun prototyping
• Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan
membuat input dan format output).

• 3. Evaluasi protoptyping
• Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai dengan keinginann pelanggan. Jika sudah sesuai
maka langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulang langkah 1, 2 , dan 3.

• 4. Mengkodekan sistem
• Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.

• 5. Menguji sistem
• Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan
White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain.

• 6. Evaluasi Sistem
• Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan. Jika ya, langkah 7 dilakukan; jika tidak, ulangi
langkah 4 dan 5.

• 7. Menggunakan sistem
• Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Model pengembangan ini (Prototyping Model) memiliki
beberapa kelebihan, diantaranya :
• Adanya komunikasi yang baik antara pengembang dan
pelanggan
• Pengembang dapat bekerja lebih baik dalam
menentukan kebutuhan pelanggan
• Pelanggan berperan aktif dalam pengembangan system
• Lebih menghemat waktu dalam pengembangan system
• Penerapan menjadi lebih mudah karena pemakai
mengetahui apa yang diharapkannya
• membuat klien mendapat gambaran awal dari prototype
• Membantu mendapatkan kebutuhan detil lebih baik
Implementasi Prototyping Model
• Metode prototyping sebagai suatu paradigma baru dalam pengembangan sistem informasi
manajemen, tidak hanya sekedar suatu efolusi dari metode pengembangan sistem informasi yang
sudah ada, tetapi sekaligus merupakan refolusi dalam pengembangan sistem informasi manajemen.
Metode ini dikjatakan refolusi karena merubah proses pengembangan sistem informasi yang lama
(SDLC).

• Menurut literatur, yang dimaksud dengan prototipe (prototype) adalah ”model pertama”, yang sering
digunakan oleh perusahaan industri yang memproduksi barang secara masa. Tetapi dalam
kaitannya dengan sistem informasi definisi kedua dari Webster yang menyebutkan bahwa ”prototype
is an individual that exhibits the essential peatures of later type”, yang bila diaplikasikan dalam
pengembangan sistem informasi manajemen dapat berarti bahwa Prototipe tersebut adalah sistem
informasi yang menggambarkan hal-hal penting dari sistem informasi yang akan datang. Prototipe
sistem informasi bukanlah merupakan sesuatu yang lengkap, tetapi sesuatu yang harus dimodifikasi
kembali, dikembangkan, ditambahkan atau digabungkan dengan sistem informasi yang lain bila
perlu.

• Dalam beberapa hal pengembangan software berbeda dengan produk-produk manufaktur, setiap
tahap atau fase pengembangan sistem informasi merupakan bagian yang tidak terpisahkan dari
seluruh proses yang harus dilakukan. Proses ini umumnya hanya untuk satu produk dan
karakteristik dari produk tersebut tidak dapat ditentukan secara pasti seperti produk manufaktur,
sehingga penggunaan ”model pertama” bagi pengembangan software tidaklah tepat. Istilah
prototyping dalam hubungannya dengan pengembangan software sistem informasi manajemen
lebih merupakan suatu proses bukan prototipe sebagai suatu produk.
• Sebagai contoh, pembuat mobil dapat mengembangkan sebuah purwarupa
yang dapat digunakan dalam lintasan pengujuan khusus dan kemudian
ditampilkan dalam showroom. Informasi yang diperoleh dari perlakuan seperti
itu dapat digunakan untuk meningkatkan desain sebelum implementasi/produksi
dilakukan secara massal.

• Karakteristik metode prototyping


Ada empat langkah yang menjadi karakteristik metode prototyping yaitu :
1. Pemilahan Fungsi
Mengacu pada pemilahan fungsi yang harus ditampilkan oelh prototyping.
Pemilahan harus selalu dilakukan berdasarkan pada tugas-tugas yang relevan
yang sesuai dengan contoh kasus yang akan dipergakan.
• 2. Penyusunan Sistem Informasi
Bertujuan untuk memenuhi permintaan akan tersedianya prototype
3. Evaluasi
4. Penggunaan Selanjutnya
Incremental Model
Model incremental menggabungkan elemen-elemen model sekuensial linier
(diimplementasikan secara berulang) dengan filosofi prototype interatif. Model ini
memakai urutan-urutan linier di dalam model yang membingungkan, seiring dengan
laju waktu kalender. Setiap urutan linier menghasilkan pertambahan perangkat lunak
yang kemudian dapat disampaikan kepada pengguna. Model ini juga
merupakan perbaikan dari model waterfall dan sebagai standar pendekatan top-down.
Ide dasar dari model ini adalah membangun software secara meningkat (increment)
berdasarkan kemampuan fungsional.

Pada saat model incremental (pertambahan) ini digunakan, pertambahan pertama


sering merupakan produk inti (core product), yaitu sebuah model pertambahan yang
dipergunakan, tetapi beberapa muka tambahan (beberapa diketahui dan beberapa
tidak) tetap tidak disampaikan. Produk inti tersebut dipergunakan oleh pelanggan
(atau mengalami pengkajian detail). Sebagai hasil dari pemakaian dan / atau evaluasi
maka dikembangkan rencana bagi pertambahan selanjutnya. Rencana tersebut
menekankan modifikasi produk inti untuk secara lebih baik memenuhi kebutuhan
para pelanggan dan penyampaian fitur serta fungsional tambahan. Proses ini
mengikuti penyampaian setiap pertambahan sampai bisa menghasilkan produk yang
lengkap.
Model proses incremental tersebut, seperti model prototype dan pendekatan-
pendekatan evolusioner yang lain, bersifat iterative. Tetapi tidak seperti model
prototype, model pertambahan berfokus pada penyampaian produk operasional
dalam setiap pertambahannya. Pertambahan awal ada di versi stripped down dari
produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga
menyediakan platform untuk evaluasi oleh pemakai.

Perkembangan pertambahan, khususnya berguna pada saat staffing, tidak bisa


dilakukan dengan menggunakan implementasi lengkap oleh batasan waktu bisnis
yang sudah disepakati untuk proyek tersebut. Jika produk inti diterima dengan
baik, maka staf tambahan (bila dibutuhkan) bisa ditambahkan untuk
mengimplementasi pertambahan selanjutnya. Sebagai tambahan, system mayor
yang sedang pada masa perkembangan serta waktu penyampaiannya belum pasti,
mungkin membutuhkan keberadaan perangkat keras yang baru. Bisa juga rencana
tertentu dibuat untuk menghindari pemakaian perangkat lunak ini, sehingga
memungkinkan fungsionalitas partial disampaikan kepada pemakai tanpa harus
banyak tertunda.
• Contoh Penggunaan Incremental Model :

• Misalnya, perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma penambahan
akan menyampaikan manajemen file dasar, editing serta fungsi penghasilan dokumen pada penambahan
pertama; kemudian editing dan kemampuan penghasilan dokumen yang lebih canggih pada pertambahan
kedua; pengecekan spelling dan tata bahasa pada pertambahan ketiga; serta kemampuan pengaturan halaman
tingkat lanjut pada tahap pertambahan keempat. Harus dicatat bahwa aliran proses untuk berbagai
pertambahan tersebut dapat menggabungkan paradigma prototype.

• Kelebihan dan Kekurangan Incremental Model :

• Kelebihan :
• Merupakan model dengan manajemen yang sederhana.
• Pelanggan tidak perlu menunggu sampai seluruh system dikirim untuk mengambil keuntungan dari system
tersebut. Inkremen yang pertama sudah memenuhi persyaratan mereka yang paling kritis, sehingga
perangkat lunak dapat segera digunakan.
• Pelanggan dapat memakai inkremen yang pertama sebagai bentuk prototype dan mendapatkan pengalaman
yang dapat menginformasikan persyaratan untuk inkremen system berikutnya.
• Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah dapat ditemukan pada
beberapa inkremen, bisa saja beberapa inkremen diserahkan dengan sukses kepada pelanggan.
• Karena layanan dengan prioritas tertinggi diserahkan pertama dan inkremen berikutnya diintegrasikan
dengannya, sangatlah penting bahwa layanan system yang paling penting mengalami pengujian yang paling
ketat. Ini berarti bahwa pelanggan akan memiliki kemungkinan kecil untuk memenuhi kegagalan
perangkat lunak pada inkremen system yang paling kecil.
• Kekurangan :
• Inkremen harus relative lebih kecil (tidak lebih dari 20.000 baris kode) dan setiap inkremen harus menyediakan
sebagian dari fungsional system.
• Adanya kesulitan untuk memetakan persyaratan pelanggan pada inkremen dengan ukuran yang benar.
• Tiap bagian tidak dapat diintegrasikan.

Ireactive-Incremental (Spiral) Model
• Proses digambarkan sebagai spiral. Setiap loop mewakili satu fase dari software process. Loop paling dalam berfokus
pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain
sistem dan seterusnya. Setiap Loop dibagi menjadi beberapa sektor, yaitu :

• 1. Objective settings (menentukan tujuan)


• Menentukan tujuan dari fase yang ditentukan. Batasan-batasan pada proses dan produk sudah diketahui. Perencanaan
sudah disiapkan. Resiko dari proyek sudah diketahui. Alternatif strategi sudah disiapkan berdasarkan resiko-resiko
yang diketahui, dan sudah direncanakan.

2. Risk assessment and reduction (Penanganan dan pengurangan resiko)
• Setiap resiko dianalisis secara detil pada sektor ini. Langkahlangkah penanganan dilakukan, misalnya membuat
prototype untuk mengetahui ketidakcocokan kebutuhan.
• 3. Development and Validation (Pembangunan dan pengujian)
• Setelah evaluasi resiko, maka model pengembangan sistem dipilih. Misalnya jika resiko user interface dominan, maka
membuat prototype User Interface. Jika bagian keamanan yang bermasalah, maka
• 4. Planning
• Proyek dievaluasi atau ditinjau-ulang dan diputuskan untuk terus ke fase loop selanjutnya atau tidak. Jika melanjutkan
ke fase berikutnya rencana untuk loop selanjutnya.
• 5. Menggunakan model formal dengan perhitungan matematis, dan jika masalahnya adalah integrasi sistem model
waterfall lebih cocok.
• Kelebihan dan Kekurangan Spiral Model :

• Kelebihan :
• 1. Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak
komputer.
2. Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
3. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap
resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses .
4. Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap
keadaan di dalam evolusi produk.
5. Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya
ke dalam kerangka kerja iteratif .
6. Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi
resiko sebelum menjadi permaslahan yang serius.

• Kekurangan :
• 1. Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
2. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang
serius jika resiko mayor tidak ditemukan dan diatur.
3. Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolut.
Pengembangan sistem informasi dapat dikategorikan dalam tiga kelompok besar.
Kelompok

 pertama adalah proyek yang bersifat pembangunan jaringan infrastruktur teknologi


informasi (mulai dari pengadaan dan instalasi komputer sampai dengan perencanaan
dan pengembangan infrastruktur jaringan LAN dan WAN).

 Kelompok kedua adalah implementasi dari paket program aplikasi yang dibeli di
pasaran dan diterapkan di perusahaan, mulai dari perangkat lunak kecil seperti
produk-produk ritel Microsoft sampai dengan aplikasi terintegrasi yang berbasis
teknologi tinggi.

 Kelompok ketiga adalah perencanaan dan pengembangan aplikasi yang dibuat


sendiri secara khusus (customized software), baik oleh internal organisasi maupun
kerja sama dengan pihak luar, seperti konsultan dan software house.
Pengembangan Software dengan
model Evolutionary
• Pengembangan Eksplorasi:
• Sistem berubah dengan adanya fitur-fitur tambahan dari user.
• Prototype yang dapat dibuang (Throw-Away):
• Memahami persyaratan user untuk mendapatkan definisi
persyaratan yang lebih baik.

Anda mungkin juga menyukai