Pengertian SDLC
(Systems Development Life Cycle )
merupakan siklus hidup pengembangan system. Dalam rekayasa system
dan rekayasa perangkat lunak, SDLC berupa suatu proses pembuatan dan
pengubahan sistem serta model dan metodologi yang digunakan untuk
mengembangkan sistem-sistem tersebut.
Dalam rekayasa
perangkat lunak, konsep SDLC mendasari berbagai jenis metodologi
pengembangan perangkat lunak. Metodologi-metodologi ini membentuk suatu
kerangka kerja untuk perencanaan dan pengendalian pembuatan sistem informasi, yaitu proses pengembangan perangkat lunak.
Pengembangan SDLC
adalah proses yang digunakan oleh analis system untuk mengembangkan
sistem informasi, termasuk persyaratan, validasi, pelatihan, dan
pengguna (stakeholder) kepemilikan. Setiap SDLC harus menghasilkan
sistem berkualitas tinggi yang memenuhi atau melampaui harapan
pelanggan, mencapai penyelesaian dalam waktu dan perkiraan biaya,
bekerja secara efektif dan efisien di saat ini dan direncanakanTeknologi Informasi infrastruktur, dan murah untuk mempertahankan dan biaya efektif.
Fungsi SDLC
Untuk menggambarkan tahapan-tahapan utama
dan langkah-langkah dari setiap tahapan yang secara garis besar terbagi
dalam fase fase utama dalam SDLC, yaitu :
Perencanaan : Mengapa Mengembangkan Sistem?
Analisis : Siapa, apa, kapan dan dimana sistem diterapkan?
Perancangan : Bagaimana kerja sistem?
Implementasi : Bagaimana Sistem Dipasang/diinstall?
Ø Perencanaan :
· Mengidentifikasikan Nilai Bisnis
· Analisis Kelayakan
· Membuat Rencana Kerja
· Mengatur Staff
· Mengontrol dan Mengarahkan Projek
Ø Analisis :
· Analisis masalah
· Mencari informasi yang terkait dengan sistem
· Menentukan model proses
· Menentukan model data
Ø Perancangan :
· Perancangan Proses secara Fisik
· Perancangan Arsitektur Sistem
· Perancangan Interface
· Perancangan Basis Data dan Berkas
· Perancangan Program
Ø Implementasi:
· Construction
· Instalation
Setiap kegiatan dalam SDLC dapat
dijelaskan melalui tujuan (purpose) dan hasil kegiatannya (deliverable).
Apabila kegiatan utama tersebut dijabarkan ke dalam langkah-langkah
yang lebih rinci dapat digambarkan seperti berikut :
+---------------------------------------------------------------------+
: ANALYSIS : DESIGN : IMPLEMENTATION :
+---------------------------------------------------------------------
: :
+---------------+ : :
+-->: Problem : : :
| : Detection : : :
| +---------------+ +-----------+ +-----------+
+---------> | | : | | : |
| +---------------+ | : +---------------+ | : +---------------+
| : Initial : | : : Output : | : : Programming / :
| : Investigation : | : : : | : : test :
| +---------------+ | : +---------------+ | : +---------------+
+---------> | | : | | : |
| +---------------+ | : +---------------+ | : +---------------+
| : Requirements : | : : Input : | : : Training / :
| : Analysis : | : : : | : : Other :
| +---------------+ | : +---------------+ | : +---------------+
+---------> | | : | | : |
+---------------+ | : +---------------+ | : +---------------+
: Generation of : | : : Files :--+ : : System :
: Alternatives : | : : : : : Change Over :
+---------------+ | : +---------------+ : +---------------+
| | : :
+---------------+ | : :
: Selection of :--+ : :
: Proper System : : :
+---------------+ : :
|
System Development Methodology adalah
suatu rangkaian langkah untuk mengimplementasikan SLDC itu sendiri.
Dalam dunia rekayasa perangkat lunak terdapat empat buah metodologi
dalam menerapkan SLDC, yakni :
- Waterfall Development Methodology
- Parallel Development Methodology
- Rapid Application Development
- Agile Development: Extreme Programming
Kelima metodologi tersebut tidak ada yang
paling bagus. Semua mempunyai kelebihan dan kekurangan. Tergantung suatu
kelompok pengembang perangkat lunak menggunakan metode apa yang paling
cocok dengan kondisi lingkungan pengembangan perangkat lunak tersebut.
Waterfall Development Methodology
Waterfall Development Methodology
merupakan suatu cara pengembangan software yang fase – fasenya
berurutan. Sebuah fase tidak bisa dikerjakan sebelum fase sebelumnya
telah selesai dikerjakan.
Kelebihan dari Waterfall Development Methodology adalah :
- Proses pengidentifikasian sistem memerlukan waktu yang lama sebelum fase programming dimulai
- Meminimalisasi pengubahan sistem pada saat proses pengembangan perangkat lunak
Kekurangan dari Waterfall Development Methodology adalah :
- Fase perencanaan / design harus dilakukan pada paper yang khusus sebelum fase programming dimulai
- Terjadi selisih waktu yang cukup lama antara pengajuan sistem dan pembaharuan sistem
Parallel Development Methodology
Parallel Development Methodology merupakan suatu cara pada SDLC yang melakukan fase design dan implementation secara paralel.
Kelebihan dari Parallel Development Methodology adalah :
1. Meminimalisasi waktu penjadwalan
2. Meminimalisasi kesempatan untuk dikerjakan ulang
Kekurangan dari Parallel Development Methodology adalah :
1. Masih menggunakan dokument di kertas
2. Menggabungkan subproyek memerlukan
suatu keahlian yang khusus. Biasanya banyak terjadi kegagalan pada saat
proses penggabungannya
Rapid Application Development
Rapid Application Development merupakan suatu cara penerapan SDLC dengan membuat suatu software prototype terlebih
dahulu dan kemudian dipresentasikan ke costumer. Jika costumer
menyetujuinya, maka software akan dikembangkan lebih lanjut.
Kelebihan Rapid Application Development adalah :
1. Pengguna dapat memperoleh / menggunakan sistem lebih awal
2. Pengguna dapat merencanakan beberpa tambahan untuk versi setelahnya
Kekurangan Rapid Application Development adalah :
1. Pengguna bekerja dengan sistem yang sebenarnya belum selesai secara keseluruhan
Agile Development: Extreme Programming
Agile Development: Extreme Programming
merupakan suatu pengerjaan perangkat lunak secara cepat. Metode ini
sangat cocok untuk proyek perangkat lunak yang membutuhkan waktu lebih
instan dalam pengembangannya.
Kelebihan dari Agile Development: Extreme Programming adalah :
1. Hasil bisa didapat dalam waktu yang sangat cepat
2. Bekerja lebih baik dalam projek dengan tidak ada perubahan yang tak tentu
Kekurangan dari Agile Development: Extreme Programming adalah :
1. Membutuhkan kedisiplinan tinggi
2. Tepat hanya jika dilakukan di projek kecil
3. Membutuhkan lebih banyak inputan dari pengguna
Untuk menentukan metode mana yang lebih
cocok diterapkan dalam pengembangan proyek perangkat lunak, maka harus
memperhatikan hal berikut :