Anda di halaman 1dari 7

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 :

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 :

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:
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 :

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:
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 :

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

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