Waterfall
Permodelan dalam suatu perangkat lunak merupakan suatu hal yang
dilakukan di tahapan awal. Di dalam suatu rekayasa perangkat lunak,
sebenarnya masih memungkinkan tanpa melakukan permodelan. Hal ini tidak
dapat lagi dilakukan dalam suatu industri perangkat lunak.Permodelan
dalam perangkat lunak merupakan suatu yang harus dikerjakan di bagian
awal rekayasa, dan permodelan ini akan mempengaruhi pekerjaan-pekerjaan
dalam rekayasa perangkat lunak tersebut.Model proses perangkat lunak
masih menjadi obyek penelitian, tapi sekarang ada banyak model umum atau
paradigma yang berbeda dari pengembangan perangkat lunak, antara lain:
– Pengembangan waterfall
– Pengembangan secara evolusioner
– Transformasi formal
Waterfall model pertama kali diperkenalkanoleh Winston Royce tahun
1970. Waterfall Model merupakan model klasik yang sederhana dengan
aliran sistem yang linier. Output dari setiap tahap merupakan input bagi
tahap berikutnya.Model ini telah diperoleh dari proses rekayasa lainnya
dan menawarkan cara pembuatan rekayasa perangkat lunak secara lebih
nyata.
Model ini melibatkan tim SQA (Software Quantity Assurance) dengan 5
tahapan, dimana setiap tahapan selalu dilakukan verifikasi atau testing.
Tahapan model waterfall meliputi :
- Requirment
Dalam tahapan ini jasa, kendala dan tujuandari konsultasi dengan
pengguna sistem. Kemudian semuanya dibuat dalam bentuk yang dapat
dimengerti oleh user dan staf pengembang. Dengan kata lain, dalam tahapn
ini dilakukan analisa kebutuhan, kemdian diverifikasi klien dan tim
SQA.
- Specification
Dokumentasi spesifikasi,
kemudian diperiksa oleh tim SQA. Selanjutnya jika disetujui oleh klien,
maka dokumen tersebutmerupakan kontrak kerjaantaraklien dan pengembang
s0ftware. Selanjutnya merencanakan jadwal pengembangan software. Jika
disetujui oleh SQA, tahap desain baru dilakukan.
- Design
Proses
design sistem membagi kebutuhan-kebutuhan menjadi sistem perangkat
lunak atau perangkat keras. Proses tersebut menghasilkan sebuah
arsitektur keseluruhan. Desain perangkat lunak termasuk menghasilkan
fungsi sistem perangkatlunak dalam bentuk yang mungkin ditransformasi
kedalam satu atau lebih program yang dapat dijalankan. Tahapan ini telah
menentukan alur software hingga pada tahap algoritma detail. Di akhir
tahap ini, kembali diperksa tim SQA.
- Implementation
Selama tahap ini, desain perangkat lunak disadari sebagai sebuah
program lengkap atau unit program. Desain yang telah disetujui, diubah
dalam bentuk kode-kode program. Tahap ini, kode-kode program yang
dihasilkan masih pada tahap modul-modul. Diakhir tahap ini, tiap modul
di testing tanpa diintegrasikan.
- Integration
Unit program diintegrasikan dandiuji menjadi sistem yang lengkap untuk
meyakinkan bahwa persyaratan perangkat lunak telah dipenuhi. Setelah uji
coba, sistem disampaikan ke konsumen.
- Operaton mode & retirement
Normalnya, ini adalah tahap yang terpanjang. Sistem dipasang dan
digunakan. Pemeliharaan termasuk pembetulan kesalahan yang tidak
ditemukan pada langkah sebelumnya. Perbaikan inmplementasi unit sistem
dan peningkatan jasa sistem sebagai kebutuhan baru ditemukan.Setiap
tahap dari modelini menggunakan Document Drivent, yaitu tahap
selanjutnya selalu bekerja berdasarkan dokumen yang telah diberikan
sebelumnya.
Tahapan pada waterfall model tidak akan selesai jika tidak disetujui
SQA. Modifikasi pada tahap tertentu (tidak sesuai dengan dokumen
sebelumnya), proses harus kembali pada tahap sebelumnya untuk
penyesuaian dan peninjauan ulang.Dalam prakteknya, setiap langkah sering
tumpang tindih dan saling memberi informasi satu sama lain. Proses
perangkat lunak tidak linierdan sederhana, tapi mengandung urutan
iterasi dari aktifitas pengembangan. Selama di langkah terakhir,
perangkat lunak telah digunakan. Kesalahan dan kelalaian dalam
menentukan kebutuhan perangkat lunak original dapat diatasi.Sayangnya
model yang banyak mengandung iterasi, sehingga membuat sulit bagi pihak
manajemen untuk memeriksa seluruh rencana dan laporan. Maka dari itu,
setelah sedikit iterasi, biasanya bagian yang telah dikembangkan akan
dihentikan dan dilanjutkan dengan langkah pengembangan selanjutnya.
Masalah-masalah selama resolusi selanjutnya, dibiarkan atau diprogram.
Pemberhentian yang prematur dari persyaratan akan berarti bahwa sistem
tidak akan sesuai dengan keinginan user. Mungkin juga sistem terstruktur
secarajelek yang sebenarnya merupakan masalah deain akan dibiarkan
karenaterkalahkan olehtrik implementasi.Masalah pendekatan waterfall
adalah ketidakluwaesan pembagian proyek ke dalam langkah yang
jelas/nyata. Sistem yang disampaikan kadang-kadang tidak dapatdigunakan
sesuai keinginan konsumen. Namun demikian, model waterfall mencerminkan
kepraktisan rekayasa. Konsekuensinya, model proses perangkat lunak yang
berdasarkan pada pendekatan ini, digunakan dalam pengembangan sistem
perangkat lunak dan hardware yang luas.
Implementasi Kasus pada Waterfall Model
Tuan X adalah General Manager A Company, sebuah perusahaan perkapalan
yang berbasis di Singapura. Sebagai perusahaan UKM muda yang terus
berkembang, Tuan X menginvestasikan sebagian modal perusahaan untuk
promosi di media cetak dan elektronik, serta melatih kemampuan karyawan
melalui berbagai kursus. Untuk mendukung kerja karyawan, A Company
menggunakan komputer dasar (Basic PC) yang dilengkapi dengan office
software. Seperti kebanyakan UKM lainnya, A Company juga memiliki akses
internet yang hanya dapat digunakan secara terbatas di beberapa PC. A
Company memiliki satu buah email resmi yang masih menggunakan domain
dari ISP (Internet Service Provider). Untuk komunikasi dilingkungan
karyawan, mereka menggunakan fasilitas email gratis yang banyak tersedia
di internet. Email gratis ini kadang juga digunakan untuk berkomunikasi
dengan supplier dan pelanggan.
Sebagai perusahaan UKM yang terus
berkembang cepat, Tuan X mulai berfikir untuk mengembangkan A Company
lebih professional. Harapan Tuan X, calon pelanggan potensial,
pelanggan, supplier dan karyawan lebih mengenal A Company. Disisi lain,
ia juga berharap agar cara yang digunakan lebih efisien, hemat biaya,
tetapi menampilkan sosok perusahaan yang meyakinkan atau bonafit. Tuan X
meyakini, bahwa berkomunikasi menggunakan alamat email atau domain
sendiri; promosi melalui website sendiri; data yang terintegrasi dan
dapat diakses disemua komputer perusahaan akan dapat membawa perusahaan
menjadi lebih profesional.
A Company tidak memiliki departemen
khusus untuk menangani TI. Untuk mewujudkan keinginannya, Tuan X meminta
bantuan perusahaan khusus TI. Implementasi TI dikerjakan oleh
perusahaan TI (sebagai pemenang tender) dalam jangka waktu kontrak 1
tahun, Dalam proses implementasi, Tuan X menyerahkan tugas dan
tanggung-jawab kepada bawahannya. Semua karyawan dilibatkan dalam
pertemuan dan diskusi dengan perusahaan pembangun TI. Dari waktu kontrak
1 tahun yang disepakati, TI yang bisa diimplementasikan adalah
pembangunan jaringan komputer, akses internet, email, dan pembangunan
data terpusat. Sedangkan untuk website belum bisa dikerjakan sepenuhnya
karena sebagian besar waktu yang tersedia habis digunakan untuk
menyatukan keinginan para pihak yang terkait dalam implementasi.
Meskipun demikian, sistem yang dibangun mulai dirasakan manfaatnya oleh A
Company. Komunikasi melalui email mulai dapat dilakukan karyawan dengan
supplier dan pelanggan. Pengambilan keputusan sudah mulai bisa
dilakukan dengan cepat karena data yang diperlukan sudah terpusat. Tuan X
juga merasakan terjadinya penghematan dalam penggunaan kertas dan alat
tulis, karena perusahaan mulai menerapkan e-document. Namun demikian,
kepuasan Tuan X tidak bertahan lama, karena sistem TI mulai menimbulkan
masalah. Hal itu misalnya terjadi pada email yang mengalami over quota
dan dibanjiri virus, sehingga komunikasi perusahaan dengan pelanggan
menjadi terputus dan komputer perusahaan menjadi rusak.
Hal yang terjadi tidak hanya membuat kerjaan perusahaan menjadi
terganggu, tetapi berbagai peluang bisnis menjadi hilang. Citra
perusahaan dimana supplier dan pelanggan menjadi berubah dan A Company
harus menanggung kerugian investasi.
Tuan X baru menyadari bahwa
implementasi TI yang dilakukan belum memberikan hasil positif secara
keseluruhan kepada perusahaannya. Ditambah lagi ia harus menyiapkan
budget tambahan untuk memperbaiki sistem jaringan yang rusak. Kekecewaan
Tuan X bertambah ketika budget yang diusulkan dalam proposal
implementasi tidak termasuk biaya perawatan. Tuan X akhirnya memutuskan
untuk menghentikan proyek pengerjaan website, karena TI yang sudah
diimplementasikan merugikan perusahaan dan menghabiskan budget yang
sudah dialokasikan sebelum keseluruhan proyek selesai dilaksanakan.
Prototype
Secara umum tujuan pengembangan sistem informasi adalah untuk
memberikan kemudahan dalam penyimpanan informasi, mengurangi biaya dan
menghemat waktu, meningkatkan pengendalian, mendorong pertumbuhan,
meningkatkan produktifitas serta profitabilitas organisasi. Dalam
beberapa tahun terakhir ini peningkatan produktifitas organisasi ini
dibantu dengan berkembangnya teknologi komputer baik hardware maupun
softwarenya. Tetapi tidak semua kebutuhan sistem informasi dengan
komputer itu dapat memenuhi kebutuhan dan menyelesaikan masalah yang
dihadapi organisasi. Keterbatasan sumber daya dan anggaran pemeliharaan
memaksa para pengembang sistem informasi untuk menemukan jalan untuk
mengoptimalkan kinerja sumber daya yang telah ada.
Karakteristik
dari suatu sistem informasi manajemen yang lengkap tergantung dari
masalah yang dihadapi, proses pengembangannya dan tenaga kerja yang akan
dikembangkannya. Seiring dengan perkembangan permasalahan karena
berubahnya lingkungan yang berdampak kepada perusahaan maka yang menjadi
parameter proses pengembangan sistem informasi yaitu masalah yang
dihadapi, sumber daya yang tersedia dan perubahan, sehingga hasil
pengembangan sistem informasi manajemen baik yang diharapkan oleh
perorangan maupun oleh organisasi turut berubah.
Perubahan tersebut
pada akhirnya menimbulkan ketidakpastian dan menambah kompleks/rumit
masalah yang dihadapi oleh para analis sistem informasi. Metode
tradisional seperti SDLC dianggap tidak lagi mampu memenuhi tantangan
perubahan dan kompleksnya masalah yang dihadapi tersebut. Sekitar awal
tahun delapan puluhan, para profesional dibidang sistem informasi
memperkenalkan satu metode pengembangan sistem informasi baru, yang
dikenal dengan nama metode prototyping.
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.
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
Jenis-jenis prototyping meliputi
– Feasibility
prototyping – digunakan untuk menguji kelayakan dari teknologi yang akan
digunakan untuk system informasi yang akan disusun.
– Requirement prototyping – digunakan untuk mengetahui kebutuhan aktivitas bisnis user.
– Desain Prototyping – digunakan untuk mendorong perancangan system informasi yang akan digunakan.
– Implementation prototyping – merupakan lanjytan dari rancangan
protipe, prototype ini langsung disusun sebagai suatu system informasi
yang akan digunakan.
Keunggulan dan Kelemahan metode prototyping
Keunggulan
- End user dapat berpartisipasi aktif
– Penentuan kebutuhan lebih mudah diwujudkan
– mempersingkat waktu pengembangan SI
Kelemahan
- proses analisis dan perancangan terlalu singkat
– Mengesampingkan alternatif pemecahan masalah
– Bisanya kurang fleksible dalam mengahdapi perubahan
– protitype yang dihasilkan tidak selamanya mudah dirubah
– prototype terlalu cepat selesai.
Implementasi Kasus pada Prototype Model
Sering
seorang pelanggan mendefinisikan serangkaian sasaran umum bagi perangkat
lunak, tetapi tidak melakukan mengidentifikasi kebutuhan output,
pemrosesan, atupun input detail. Pada kasus yang lain, pengembang
mungkin tidak memiliki kepastian terhadap efisiensi algoritme, kemampuan
penyesuaian dari sebuah sistem operasi,atau bentuk-bentuk yang harus
dilakukan oleh interaksi manusia dengan mesin. Dalam hal ini, serta pada
banyak situasi yang lain, prototyping paradigma mungkin menawarkan
pendekatan yang terbaik.
Prototyping paradigma dimulai dengan
pengumpulan kebutuhan. Pengembang dan pelanggan bertemu dan
mendefinisikan obyektif keseluruhan dari software, mengidentifikasi
segala kebutuhan yang diketahui, dan area garis besar diman definisi
lebih jauh merupakan keharusan kemudian dilakukan “perancangan kilat”.
Perancangan kilat berfokus pada penyajian dari aspek-aspek software
tersebut yang akan nampak bagi pelanggan atau pemakai (contohnya
pendekatan input dan format output). Perancangan kilat membawa kepada
konstruksi sebuah prototipe. Prototipe tersebut dievaluasi oleh
pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan
software. Iterasi terjadi pada saat prototipe disetel untuk memenuhi
kebutuhan pelanggan, dan pada saat yang sama memungkinkan pengembang
untuk secara lebih baik memahami apa yang harus dilakukannya.
Secara
ideal prototipe berfungsi sebagai sebuah mekanisme untuk
mengidentifikasi kebutuhan software. Bila prototipe yang sedang bekerja
dibangun, pengembang harus mempergunakan fragmen – fragmen program yang
ada atau mengaplikasikan alat –alat bantu (contohnya report generator,
window manager, dll) yang memungkinkan program yang bekerja untuk
dimunculkan secara cepat.Prototipe bisa berfungsi sebagai “sistem yang
pertama”. Brooks setuju bila kita membuangnya. Tetapi mungkin ini
merupakan pandangan yang ideal. memang benar bahwa baik pelanggan maupun
pengembang menyukaiparadigma prototipe. Para pemakai merasa enak dengan
sitem aktual, sedangkan pengembang bisa membangun dengan segera. tetapi
prototipe bisa juga menjadi masalah karena alasan sebagai berikut:
1. Pelanggan melihat apa yang tampak sebagai versi software yang
bekerja tanpa melihat bahwa prototipe itu dijalin bersama – sama “dengan
permen karet dan baling wire”, tanpa melihat bahwa di dalam untuk
membuatnya bekerja, kita belum menyantumkan kualitas software secara
keseluruhan atau kemampuan pemeliharaan untuk jangka waktu yang panjang.
Ketika diberi informasi bahwa produk harus dibangun lagi agar tingkat
kualitas yang tinggi bisa dijaga, pelanggan akan meneriakan kecurangan
dan permintaan agar dipakai “beberapa campuran” untuk membuat prototipe
menjadi sebuah produk yang bekerja yang lebih sering terjadi, sehingga
manajemen pengembangan software menjadi penuh dengan belas kasihan.
2. Pengembang sering membuat kompromi – kompromi implementasi untuk
membuat prototipe bekerja dengan cepat. Sistem operasi atau bahasa
pemrograman yang tidak sesuai bisa dipakai secara sederhana karena
mungkin diperoleh dan dikenal; algoritma yang tidak efisien secara
sederhana bisa diimplementasikan untuk mendemonstrasikan kemampuan.
Setelah selang waktu tertentu, pengembang mungkin mengenali pilihan –
pilihan tersebut dan melupakan semua alasan mengapa mereka tidak cocok.
Pilihan yang kurang ideal telah menjadi bagian integral dari sebuah
sistem.
Meskipun berbagai masalah bisa terjadi, prototipe bisa menjadi
paradigma yang efektif bagi Software Engineering. Kuncinya adalah
mendefinisikan aturan main pada saat awal; yaitu pelanggan dan
pengembang keduanya harus setuju bahwa prototipe dibangun untuk
berfungsi sebagai mekanisme pendefinisian kebutuhan. Prototipe kemudian
disingkirkan (paling tidak sebagian), dan software aktual direkayasa
dengan tertuju kepada kualitas dan kemampuan pemeliharaan.