Anda di halaman 1dari 12

METODOLOGI PENGEMBANGAN

SOFTWARE BERBASIS SDLC


(SOFTWARE DEVELOPMENT
LIFE CYCLE)
SDLC (Software Development Life Cycle) merupakan sebuah siklus
hidup pengembangan perangkat lunak yang terdiri dari beberapa
tahapan-tahapan penting dalam membangun perangkat lunak yang
dilihat dari segi pengembangannya. Dengan siklus SDLC, proses
membangun sistem dibagi menjadi beberapa langkah dan pada sistem
yang besar, masing-masing langkah dikerjakan oleh tim yang berbeda.
SDLC tidak hanya penting untuk proses produksi software, tetapi juga
sangat penting untuk proses maintenance software itu sendiri,

Terdapat 4 metodologi penting dalam pengembangan software berbasis


SDLC yaitu
A. WATERFALL
“Classic Life Cycle” atau model Waterfall 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. Roger S. Pressman memecah model ini menjadi
6 tahapan, yaitu :

1. System / Information Engineering and Modeling.


Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan
sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat
penting, mengingat software harus dapat berinteraksi dengan elemen-
elemen yang lain seperti hardware, database, dsb. Tahap ini sering
disebut dengan Project Definition.
2. Software Requirements Analysis.
Proses pencarian kebutuhan diintensifkan dan difokuskan pada
software. Untuk mengetahui sifat dari program yang akan dibuat, maka
para software engineer harus mengerti tentang domain informasi dari
software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2
aktivitas tersebut (pencarian kebutuhan sistem dan software) harus
didokumentasikan dan ditunjukkan kepada pelanggan.
3. Design
Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas
menjadi representasi ke dalam bentuk “blueprint” software sebelum
coding dimulai. Desain harus dapat mengimplementasikan kebutuhan
yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas
sebelumnya, maka proses ini juga harus didokumentasikan sebagai
konfigurasi dari software.
4. Coding
Desain yang telah dibuat kemudian diubah bentuknya menjadi bentuk
yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman
melalui proses coding. Tahap ini merupakan implementasi dari tahap
design yang secara teknis nantinya dikerjakan oleh programmer.
5. Testing / Verification
Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan
software. Semua fungsi-fungsi software harus diujicobakan, agar
software bebas dari error, dan hasilnya harus benar-benar sesuai
dengan kebutuhan yang sudah didefinisikan sebelumnya.
6. Maintenance
Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah
pengembangan, karena software yang dibuat tidak selamanya hanya
seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang
tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang
belum ada pada software tersebut. Pengembangan diperlukan ketika
adanya perubahan dari eksternal perusahaan seperti ketika ada
pergantian sistem operasi, atau perangkat lainnya.
Berikut adalah bagan dari Waterfall Model :
Konsep SDLC – Waterfall

Keuntungan menggunakan teknik waterfall:


 Proses menjadi teratur
 Estimasi proses menjadi lebih baik
 Jadwal menjadi lebih menentu
Kelemahan menggunakan teknik waterfall:
 Sifatnya kaku, sehingga susah melakukan perubahan di tengah
proses
 Membutuhkan daftar kebutuhan yang lengkap di awal, tapi jarang
konsumen bisa memberikan kebutuhan secara lengkap diawal
B. PROTOTYPE
Prototyping adalah salah satu pendekatan dalam rekayasa perangkat
lunak yang secara langsung mendemonstrasikan bagaimana sebuah
perangkat lunak atau komponen-komponen perangkat lunak akan
bekerja dalam lingkungannya sebelum tahapan konstruksi aktual
dilakukan (Howard, 1997). Beberapa model prototype adalah sebagai
berikut :

 Reusable prototype : Prototype yang akan ditransformasikan


menjadi produk final.
 Throwaway prototype : Prototype yang akan dibuang begitu
selesai menjalankan maksudnya.
 Input/output prototype : Prototype yang terbatas pada antar muka
pengguna (user interface).
 Processing prototype : Prototype yang meliputi perawatan file
dasar dan proses-proses transaksi
 System prototype : Prototype yang berupa model lengkap dari
perangkat lunak.
Proses pada model prototyping adalah sebagai berikut:

1. pengumpulan kebutuhan
developer dan klien bertemu dan menentukan tujuan umum, kebutuhan
yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan
berikutnya. Detil kebutuhan mungkin tidak dibicarakan disini, pada awal
pengumpulan kebutuhan
2. perancangan
perancangan dilakukan cepat dan rancangan mewakili semua aspek
software yang diketahui, dan rancangan ini menjadi dasar pembuatan
prototype.
3. Evaluasi prototype
klien mengevaluasi prototype yang dibuat dan digunakan untuk
memperjelas kebutuhan software.
Perulangan ketiga proses ini terus berlangsung hingga semua kebutuhan
terpenuhi. Prototype-prototype dibuat untuk memuaskan kebutuhan
klien dan untuk memahami kebutuhan klien lebih baik. Prototype yang
dibuat dapat dimanfaatkan kembali untuk membangun software lebih
cepat, namun tidak semua prototype bisa dimanfaatkan.

Skema dari prototype secara umum adalah sebagai berikut :

Konsep SDLC – Prototype

Pendekatan prototyping memiliki beberapa keuntungan yaitu:


 Pemodelan membutuhkan partisipasi aktif dari end-user. Hal ini
akan meningkatkan sikap dan dukungan pengguna untuk
pengerjaan proyek. Sikap moral pengguna akan meningkat karena
system berhubungan nyata dengan mereka.
 Perubahan dan iterasi merupakan konsekuensi alami dari
pengembangan system-sehingga end user memiliki keinginan
untuk merubah pola pikirnya. Prototyping lebih baik
menempatkan situasi alamiah ini karena mengasumsikan
perubahan model melalui iterasi kedalam system yang dibutuhkan.
 Prototyping adalah model aktif, tidak pasif, sehingga end user
dapat melihat, merasakan, dan mengalaminya.
 Kesalahan yang terjadi dalam prototyping dapat dideteksi lebih
dini
 Prototyping dapat meningkatkan kreatifitas karena membolehkan
adanya feedback dari end user. Hal ini akan memberikan solusi
yang lebih baik.
 Prototyping mempercepat beberapa fase hidup dari programmer.
Pendekatan prototyping memiliki beberapa kekurangan yaitu:
 Prototyping memungkinkan terjadinya pengembalian terhadap
kode, implementasi, dan perbaikan siklus hidup yang dugunakan
untuk mendominasi sistem informasi.
 Prototyping tidak menolak kebutuhan dari fase analisis sistem.
Prototype hanya dapat memecahkan masalah yang salah dan
memberi kesempatan sebagai sistem pengembangan
konvensional.
 Prototyping dapat mengurangi kreatifitas perancangan.
C. RAD (Rapid Application Development)
Rapid application development (RAD) atau rapid prototyping adalah
model proses pembangunan perangkat lunak yang tergolong dalam
teknik incremental (bertingkat). RAD menekankan pada siklus
pembangunan pendek, singkat, dan cepat. Waktu yang singkat adalah
batasan yang penting untuk model ini. Rapid application development
menggunakan metode iteratif (berulang) dalam mengembangkan sistem
dimana working model (model bekerja) sistem dikonstruksikan di awal
tahap pengembangan dengan tujuan menetapkan kebutuhan
(requirement) user. RAD mengadopsi model waterfall dan
pembangunan dalam waktu singkat dicapai dengan menerapkan
component based construction.

Kelemahan dalam model RAD yaitu:


 Model RAD membutuhkan sumber daya yang besar, terutama
untuk proyek dengan skala besar.
 proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
 sistem yang tidak bisa dimodularisasi tidak cocok untuk model
RAD
 resiko teknis yang tinggi juga kurang cocok untuk model RAD
Skema dari Model RAD adalah sebagai berikut:

Konsep SDLC – RAD

Secara umum fase-fase pada RAD adalah sebagai berikut

 Bussines modeling
 Data modeling
 Proses modeling
 Application generation : RAD mengasumsikan pemakaian teknik
4G (generasi keempat). Selain menciptakan Perangkat Lunak
dengan bahasa pemrograman generasi ketiga yang konvensional,
RAD lebih banyak memproses kerja untuk memakai lagi
komponen program atau menciptakan komponen yang bisa
dipakai lagi.
 Testing and Turn Over : karena menekankan pada reusability,
banyak komponen program yang telah diuji sehingga mengurangi
keseluruhan waktu pengujian. Tapi komponen baru harus diuji
dan semua interface harus dilatih secara penuh.
D. AGILE SOFTWARE DEVELOPMENT
Agile merupakan adalah jenis pegembangan sistem jangka pendek yang
memerlukan adaptasi cepat dan pengembang terhadap perubahan
dalam bentuk apapun. Dalam Agile Software Development interaksi dan
personel lebih penting dari pada proses dan alat, software yang
berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi
dengan klien lebih penting dari pada negosiasi kontrak, dan sikap
tanggap terhadap perubahan lebih penting daripada mengikuti rencana.
Agile juga dapat diartikan sebagai sekelompok metodologi
pengembangan software yang didasarkan pada prinsip-prinsip yang
sama atau pengembangan system jangka pendek yang memerlukan
adaptasi cepat dari pengembang terhadap perubahan dalam bentuk
apapun. Menurut Agile Alliance, ada 12 prinsip yang mendorong
keberhasilan dalam penerapan Agile Software Development, yaitu:

 Kepuasan klien adalah prioritas utama dengan menghasilkan


produk lebih awal dan terus menerus.
 Menerima perubahan kebutuhan, sekalipun diakhir
pengembangan.
 Penyerahan hasil/software dalam hitungan waktu beberapa
minggu sampai beberapa bulan.
 Pihak bisnis dan pengembang harus bekerja sama setiap hari
selama pengembangan berjalan.
 Membangun proyek dilingkungan orang-orang yang bermotivasi
tinggi yang bekerja dalam lingkungan yang mendukun dan yang
dipercaya untuk dapat menyelesaikan proyek.
 Komunikasi dengan berhadapan langsung adalah komunikasi yang
efektif dan efisien
 Software yang berfungsi adalah ukuran utama dari kemajuan
proyek
 Dukungan yang stabil dari sponsor, pembangun, dan pengguna
diperlukan untuk menjaga perkembangan yang
berkesinambungan
 Perhatian kepada kehebatan teknis dan desain yang bagus
meningkatkan sifat agile
 Kesederhanaan penting
 Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim
yang mengatur dirinya sendiri
 Secara periodik tim evaluasi diri dan mencari cara untuk lebih
efektif dan segera melakukannya.
Kelebihan dari Agile Software Development yaitu:
 Meningkatkan kepuasan kepada klien
 Pembangunan system dibuat lebih cepat
 Mengurangi resiko kegagalan implementasi software dari segi
non-teknis
 Jika pada saat pembangunan system terjadi kegagalan,kerugian
dar segi materi relative kecil.
Berikut beberapa model proses yang terdapat pada model Proses Agile :

a. Extreme Programming (XP)

Dipublikasikan oleh Kenn Beck pada tahun 1999 dengan menggunakan


pendekatan OOP (Object Oriented Programming), terdiri dari aktivitas
perencanaan, aktivitas desain, aktivitas pengkodean dan aktivitas
pengujian. Skemanya adalah sebagai berikut :

Konsep Agile – Extreme Programming (XP)

b. Adaptive Software Development (ASD)


Di usulkan oleh Jim Highsmith sebagai tehnik untuk membangun
software dan sistem yang komplek, filosofi dari ASD adalah kolaborasi
manusia dan tim yang mengatur diri sendiri, aktivitas pada proses ASD
adalah speculation, collaboration & learning. Skemanya adalah sebagai
berikut:

Konsep Agile – Adaptive Software Development (ASD)

c. Dinamic System Development Method


Menyajikan kerangka kerja (framework) untuk membangun dan
memelihara sistem dalam waktu yang terbatas melalui penggunaan
prototyping yang incremental dalam lingkungan yang terkondisikan.
Aktifitas pada DInamic System development method adalah Feasibility
Study, Business Study, Functional Model Iteration, Desain & Build
iteration, Implementation, skema dari model ini adalah sebagai berikut :
Konsep Agile – Dinamic System Development

d. SCRUM
Diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990-an,
Pengembangan berikutnya dilakukan oleh Schwaber dan Beedle, Scrum
memiliki prinsip:
 ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya,
dan emberdayakan satu sama lain
 proses dapat beradaptasi terhadap perubahan teknis dan bisnis
 proses menghasilkan beberapa software increment
 pembangunan dan orang yang membangun dibagi dalam tim yang
kecil
 dokumentasi dan pengujian terus menerus dilakukan setelah
software dibangun
 proses scrum mampu menyatakan bahwa produk selesai
kapanpun diperlukan
pada metode SCRUM terdapat aktivitas yang dijalankan sebagai berikut:
Backlog, Sprints, Scrum Meetings, Demo. Skema dari SCRUM adalah
sebagai berikut:

Konsep Agile – SCRUM

e. Agile Modelling
AM adalah suatu metodologi yang praktis untuk dokumentasi dan
pemodelan sistem software. AM adalah kumpulan nilai-nilai, prinsip dan
praktek-praktek untuk memodelkan software agar dapat diaplikasian
pada software development proyek secara efektif. Prinsip dalam Agile
Modelling adalah sebagai berikut:

 membuat model dengan tujuan


 mengunakan multiple models
 travel light
 isi lebih penting dari pada penampilan
 memahami model dan alat yang yang digunakan untuk membuat
software
 adaptasi secara lokal

Anda mungkin juga menyukai