• Tidak ada hasil yang ditemukan

Pengembangan Sistem Informasi dengan Metode Waterfall

TINJAUAN PUSTAKA

3.2. Pengembangan Sistem Informasi dengan Metode Waterfall

Kadang-kadang disebut siklus hidup klasik atau model waterfall, model sekuensial linier menunjukkan sistematis, pendekatan sekuensial untuk pengembangan perangkat lunak yang dimulai pada tingkat sistem dan kemajuan melalui analisis, desain, coding, pengujian dan dukungan pada gambar 3.2. menggambarkan model sekuensial linier untuk rekayasa perangkat lunak. Model setelah siklus rekayasa konvensional, model sekuensial linier meliputi kegiatan sebagai berikut (Pressman, 2001)

Gambar 3.2. Model Waterfall

1. Rekayasa dan pemodelan sistem

Karena sistem merupakan bagian dari sebuah sistem yang lebih besar, pemodelan ini dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke software tersebut. Pandangan sistem ini penting ketika software harus berhubungan dengan elemen-elemen yang lain seperti software, hardware, manusia, dan database. Rekayasa dan pemodelan sistem menyangkut pengumpulan kebutuhan pada

System/ information engineering

tingkat sistem engan sejumlah kecil analisis serta desain tingkat puncak. Tahap ini sering disebut dengan Project Definition.

2. Analisis kebutuhan software

Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada

software. Untuk memahami sifat dari program yang dibuat, maka software

engineer harus memahami domain informasi software tersebut, misalnya

fungsi yang dibutuhkan, tingkah laku, unjuk kerja, dan user interface. Kebutuhan baik untuk sistem maupun software didokumentasikan dan ditunjukkan kepada pelanggan.

3. Desain

Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi

representasi ke dalam bentuk “blue print” software sebelum coding dimulai. Desain software sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda, struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Proses desain menterjemahkan syarat/kebutuhan ke dalam sebuah representasi software yang dapat diperkirakan demi kualitas sebelum dimulai pemunculan kode. Sebagaimana 2 aktivitas sebelumnya, desain didokumentasikan dan menjadi bagian dari konfigurasi software.

4. Generasi kode

Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti

oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap desain yang secara teknis nantinya dikerjakan oleh programmer.

5. Pengujian

Setelah program dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal software, memastikan bahwa semua pernyataan sudah diuji, dan pada eksternal fungsional, yaitumengarahkan pengujian untuk menemukan kesalahan – kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang diinginkan. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.

6. Pemeliharaan

Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya tetap seperti itu. Ketika dijalankan mungkin saja masih ada error kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software

tersebut. Software dapat mengalami perubahan setelah disampaikan kepada pelanggan (perkecualian yang mungkin adalah software yang dilekatkan), karena software harus disesuaikan untuk mengakomodasi perubahan – perubahan didalam lingkungan eksternalnya (contohnya perubahan yang dibutuhkan sebagai akibat dari perangkat peripheral atau sistem operasi yang baru), atau karena pelanggan membutuhkan perkembangan fungsional atau

unjuk kerja. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya. Pemeliharaan software mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi.

Model ini sangat popular karena pengaplikasiannya mudah. Selain itu, ketika semua kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan benar di awal project, maka System Engineer dapat berjalan dengan baik dan tanpa masalah. Meskipun seringkali kebutuhan sistem tidak dapat didefinisikan seeksplisit yang diinginkan, tetapi paling tidak, problem pada kebutuhan sistem di awal project lebih ekonomis dalam hal uang (lebih murah), usaha, dan waktu yangterbuang lebih sedikit jika dibandingkan problem yang muncul pada tahap- tahap selanjutnya. Meskipun demikian, karena model ini melakukan pendekatan secara urut / sequential, maka ketika suatu tahap terhambat,tahap selanjutnya tidak dapat dikerjakan dengan baik dan itu menjadi salah satu kekurangan dari model ini. Selain itu, ada beberapa kekurangan pengaplikasian model ini, antara lain adalah sebagai berikut:

1. Ketika problem muncul, maka proses berhenti, karena tidak dapat menuju ke tahapan selanjutnya. Bahkan jika kemungkinan problem tersebut muncul akibat kesalahan dari tahapan sebelumnya, maka proses harus membenahi tahapan sebelumnya agar problem ini tidak muncul. Hal - hal seperti ini yang dapat membuang waktu pengerjaan System Engineer.

2. Karena pendekatannya secara sequential, maka setiap tahap harus menunggu hasil dari tahap sebelumnya. Hal itu tentu membuang waktu yang cukup lama,

artinya bagian lain tidak dapat mengerjakan hal lain selain hanya menunggu hasil dari tahap sebelumnya. Oleh karena itu, seringkali model ini berlangsung lama pengerjaannya.

3. Pada setiap tahap proses tentunya dipekerjakan sesuai spesialisasinya masingmasing. Oleh karena itu, ketika tahap tersebut sudah tidak dikerjakan, maka sumber dayanya juga tidak terpakai lagi. Oleh karena itu, seringkali

pada model proses ini dibutuhkan seseorang yang “multi - skilled”, sehingga minimal dapat membantu pengerjaan untuk tahapan berikutnya.

Pengembang sering melakukan penundan yang tidak perlu. Sifat alami dari siklus kehidupan klasik membawa kepada blocking state di mana banyak anggota tim proyek harus menunggu tim yang lain untuk melengkapi tugas yang saling memiliki ketergantungan. Blocking state cenderung menjadi lebih lazim pada awal dan akhir sebuah proses sekuensial linier.

Dokumen terkait