SDLC, Prototype dan Waterfall
SDLC
System Development Lyfe Cycle (SDLC) adalah keseluruhan proses dalam membangun sistem melalui beberapa langkah. Metode pengembangan perangkat lunak dikenal dengan istilah SDLC (Software Development Life Cycle). Metodologi ini menjadi perhatian sangat istimewa pada proses rekayasa perangkat lunak. Karena dengan metodologi SDLC yang digunakan akan sangat menentukan sukses tidaknya proyek software.
Perbandingan tentang kelebihan dan kekurangan model Waterfall dan Prototype pada Software Development Life Cycle (SDLC) ini dijelaskan berikut ini:
System Development Lyfe Cycle (SDLC) adalah keseluruhan proses dalam membangun sistem melalui beberapa langkah. Metode pengembangan perangkat lunak dikenal dengan istilah SDLC (Software Development Life Cycle). Metodologi ini menjadi perhatian sangat istimewa pada proses rekayasa perangkat lunak. Karena dengan metodologi SDLC yang digunakan akan sangat menentukan sukses tidaknya proyek software.
Perbandingan tentang kelebihan dan kekurangan model Waterfall dan Prototype pada Software Development Life Cycle (SDLC) ini dijelaskan berikut ini:
1. Waterfall
Waterfall, merupakan SDLC tertua karena sifatnya yang natural. Urutan SDLC waterfall ini bersifat serial dari proses perencanaan, analisa, desain, dan implementasi pada sistem. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan.
Kelebihan :
- Merupakan model pengembangan paling handal dan paling lama digunakan.
- Cocok untuk system software berskala besar.
- Cocok untuk system software yang bersifat generic.
- Pengerjaan project system akan terjadwal dengan baik dan mudah dikontrol.
- Merupakan model pengembangan paling handal dan paling lama digunakan.
- Cocok untuk system software berskala besar.
- Cocok untuk system software yang bersifat generic.
- Pengerjaan project system akan terjadwal dengan baik dan mudah dikontrol.
Kekurangan :
- Persyaratan system harus digambarkan dengan jelas.
- Rincian proses harus benar-benar jelas dan tidak boleh berubah-ubah.
- Sulit untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan pengembangan
- Persyaratan system harus digambarkan dengan jelas.
- Rincian proses harus benar-benar jelas dan tidak boleh berubah-ubah.
- Sulit untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan pengembangan
Model rekayasa piranti lunak yang
diuraikan oleh Roger S. Pressman (1992: 24) salah satunya adalah waterfall
model. Model ini memberikan pendekatan-pendekatan sistematis dan berurutan bagi
pengembangan piranti lunak.
Berikut adalah gambar pengembangan sistem
perangkat lunak dengan proses SDLC (System Development Life Cycle) dengan model
waterfall.
Penjelasan dari tahap-tahap waterfall
model adalah sebagai berikut:
• Perancangan Sistem (System Enginering)
Perancangan sistem sangat diperlukan,
karena piranti lunak biasanya merupakan bagian dari suatu sistem yang lebih
besar. Pembuatan sebuah piranti lunak dapat dimulai dengan melihat dan mencari
apa yang dibutuhkan oleh sistem. Dari kebutuhan sistem tersebut akan diterapkan
kedalam piranti lunak yang dibuat.
• Analisa Kebutuhan
Piranti Lunak (Software Requirement Analysis)
Merupakan proses pengumpulan kebutuhan
piranti lunak. Untuk memahami dasar dari program yang akan dibuat, seorang
analisis harus mengetahui ruang lingkup informasi, fungsi-fungsi yang dibutuhkan,
kemampuan kinerja yang ingin dihasilkan dan perancangan antarmuka pemakai
piranti lunak tersebut.
• Perancangan (Design)
Perancangan piranti lunak merupakan proses
bertahap yang memfokuskan pada empat bagian penting, yaitu: Struktur data,
arsitektur piranti lunak, detil prosedur, dan karakteristik antar muka pemakai.
• Pengkodean (Coding)
Pengkodean piranti lunak merupakan proses
penulisan bahasa program agar piranti lunak tersebut dapat dijalankan oleh
mesin.
• Pengujian (Testing)
Proses ini akan menguji kode program yang
telah dibuat dengan memfokuskan pada bagian dalam piranti lunak. Tujuannya
untuk memastikan bahwa semua pernyataan telah diuji dan memastikan juga bahwa
input yang digunakan akan menghasilkan output yang sesuai.
Pada tahap ini pengujian ini dibagi menjadi dua bagian, pengujian internal dan pengujian eksternal. Pengujian internal bertujuan menggambarkan bahwa semua statement sudah dilakukan pengujian, sedangkan pengujian eksternal bertujuan untuk menemukan kesalahan serta memastikan output yang dihasilkan sesuai dengan yang diharapkan.
Pada tahap ini pengujian ini dibagi menjadi dua bagian, pengujian internal dan pengujian eksternal. Pengujian internal bertujuan menggambarkan bahwa semua statement sudah dilakukan pengujian, sedangkan pengujian eksternal bertujuan untuk menemukan kesalahan serta memastikan output yang dihasilkan sesuai dengan yang diharapkan.
• Pemeliharaan
(Maintenance)
Proses ini dilakukan setelah piranti lunak
telah digunakan oleh pemakai atau konsumen. Perubahan akan dilakukan jika
terdapat kesalahan, oleh karena itu piranti lunak harus disesuaikan lagi untuk
menampung perubahan kebutuhan yang diinginkan konsumen.
Contoh Proyek
menggunakan Metode Waterfall:
Sebagai contoh sebuah perusahaan yang ingin meramalkan dan mengelola pertumbuhan bisnisnya. Jika perusahaan memprediksi bahwa akanmengatasi sistem akuntansi internal dan memutuskan untuk mengembangkan program akuntansi baru, ini adalah beberapa tingkat yang berbeda dari banyak proyek yaitu :
- Pada tahap analysis dan definisi kebutuhan,
programmer mengumpulkan
kebutuhan system secara lengkap, karena akan dibutuhkan pada tahap
selanjutnya. - Pada tahap perancangan, programmer harus
mendesain interface program
dan juga database yang akan digunakan. Pada tahap ini seorang programmer
haruslah teliti, karena hasil system secara umum akan terlihat dari hasil
rancangan. - Pada tahap implementasi dan pengetesan, desain
system akan dibuat
menggunakan bahasa pemrograman yang telah ditentukan, kemudian diuji
coba apakah telah berjalan atau masih ada kesalahan. - Integrasi dan Sistem Testing, program yang sudah
jadi lalu di tes secara
keseluruhan, apakah program yang di buat sudah sesuai dengan yang di
inginkan perusahaan tersebut atau belum. - Pada tahap operasi dan perawatan, seorang
programmer akan mengoperasikan
hasil system kedalam perusahaan. Jika pada tahap pengoperasian system sudah
berjalan tanpa ada kesalahan system, maka proyek bisa dikatakan berhasil,
selanjutnya adalah tahap perawatan yang akan mengadaptasi system dengan
situasi sebenarnya
2. Model prototyping
Prototype merupakan salah satu metode pengembangan perangat lunak yang banyak digunakan. Dengan metode prototyping ini pengembang dan pelanggan dapat saling berinteraksi selama proses pembuatan sistem. Prototyping, dimulai dengan pengumpulan kebutuhan, mendefinisikan objektif keseluruhan dari software, mengidentifikasikan segala kebutuhan, kemudian dilakukan “perangcangan kilat” yang difokuskan pada penyajian aspek yang diperlukan.
Kelebihan :
- Prototype melibatkan user dalam analisa dan desain.
- Punya kemampuan menangkap requirement secara konkret daripada secara abstrak.
- Untuk digunakan secara standalone.
- Digunakan untuk memperluas SDLC.
- Mempersingkat waktu pengembangan Sistem Informasi
Kekurangan :
- Proses analisis dan perancangan terlalu singkat.
- Mengesampingkan alternatif pemecahan masalah.
- Bisanya kurang fleksible dalam mengahdapi perubahan.
- Protitype yang dihasilkan tidak selamanya mudah dirubah
- Protype terlalu cepat selesai
Prototype merupakan salah satu metode pengembangan perangat lunak yang banyak digunakan. Dengan metode prototyping ini pengembang dan pelanggan dapat saling berinteraksi selama proses pembuatan sistem. Prototyping, dimulai dengan pengumpulan kebutuhan, mendefinisikan objektif keseluruhan dari software, mengidentifikasikan segala kebutuhan, kemudian dilakukan “perangcangan kilat” yang difokuskan pada penyajian aspek yang diperlukan.
Kelebihan :
- Prototype melibatkan user dalam analisa dan desain.
- Punya kemampuan menangkap requirement secara konkret daripada secara abstrak.
- Untuk digunakan secara standalone.
- Digunakan untuk memperluas SDLC.
- Mempersingkat waktu pengembangan Sistem Informasi
Kekurangan :
- Proses analisis dan perancangan terlalu singkat.
- Mengesampingkan alternatif pemecahan masalah.
- Bisanya kurang fleksible dalam mengahdapi perubahan.
- Protitype yang dihasilkan tidak selamanya mudah dirubah
- Protype terlalu cepat selesai
SDLC – Agile
Development
Produk Sistem Informasi juga membutuhkan tahapan-tahapan terlebih
dahulu dalam proses pembangunannya, dan dalam bahasa kerennya disebut SDLC –
System Development Life Cycle. SDLC sendiri secara mendasar terdiri dari empat
tahapan, yaitu perencanaan, analisis, desain, dan implementasi. Setiap tahapan
akan mendapatkan input dan menghasilkan output yang juga akan menjadi input
dalam tahapan selanjutnya. Sedikit penjelasan soal tahapan tersebut :
1. Perencanaan. Output : rencana product/project
- Inisialisasi dan analisa keuntungan (ROI)
- Management project, terkait sumber daya, sumber dana dan rencana-rencana kerja
2. Analisis. Output : blue print / FSD Dokumen
- Pengumpulan data
- Strategi pengerjaan
- Detail kebutuhan yang harus dipenuhi
3. Desain. Output : spesifikasi teknis sistem
- Desain architecture teknologi yang digunakan
- Desain User Interface
- Desain data storage
- Desain flow chart system
- dll
4. Implementasi. Output : produk sistem informasi
- Pembangunan System
- Data Conversion
- Data Migration
- System Convertion
- Maintenance & Support system
SDLC, secara umum
dapat dikategorikan menjadi 3 jenis :
1.
Terstrukur : dalam jenis ini, sebuah
tahapan akan dijalankan setelah tahapan sebelumnya selesai. Beberapa SDLC yang
termasuk jenis ini adalah SDLC Waterfall dan Pararel ( Waterfall dengan membagi-bagi
project menjadi sub-sub project yang lebih kecil)
2.
Rapid Application Programming : bagian produk
yang mampu dikerjakan dengan cepat akan dibangun terlebih dahulu untuk
disampaikan ke pengguna/user. Phased Development (pengembangan bertahap) dan
model Prototype adalah beberapa SDLC yang masuk dalam jenis ini
3.
Agile : membuang beberapa tahapan yang
tidak mempunyai nilai/value dan menekankan pada pengembangan sederhana dan
iterative/berulang. Beberapa jenis Agile SDLC antara lain Extreme Programming,
Kanban, Scrum, DSDM, FDD, OpenUP, dll.
Dari berbagai
jenis SDLC tersebut tentunya tidak mudah untuk menentukan methode SDLC mana
yang akan dipakai dalam sebuah pengembangan product system informasi. Banyak
faktor yang akan mempengaruhi dalam penentuan tersebut, antara lain:
1. kejelasan
kebutuhan pengguna
2. pengetahuan
user terhadapa teknologi
3. kompleksitas
system
4. waktu
5. kejelasan
jadwal
6. sering nya
perubahan terhadap product
Mengapa Agile ???
Karena Agile
lebih menawarkan fleksibilitas dalam menangani perubahan, dan dalam era
sekarang ini, dimana perubahan adalah sebuah keharusan maka mau tidak mau kita
harus “agile” terhadap perubahan tersebut. Organisasi/team yang tanggap
terhadap perubahan akan menjadi juara sedangkan yang tetap lambat (penuh
procedural) menghadapinya akan tertindas dengan sendirinya.
Sumber ::