PENGERTIAN SDLC
SDLC (Systems Development Life Cycle, Siklus Hidup Pengembangan Sistem) dalam rekayasa sistem dan rekayasa perangkat lunak, adalah suatu proses pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem-sistem tersebut.
Konsep ini umumnya merujuk pada sistem komputer atau informasi. SDLC juga merupakan pola yang diambil untuk mengembangkan sistem perangkat lunak, yang terdiri dari beberapa tahapan : rencana(planning),analisa (analysis), desain (design), implementasi (implementation), uji coba (testing) dan pengelolaan (maintenance). 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. Terdapat 3 jenis metode siklus hidup sistem yang paling banyak digunakan, yakitu : siklus hidup sistem tradisional (traditional system life cycle), siklus hidup menggunakan protoyping (life cycle using prototyping), dan siklus hidup sistem orientasi objek (object-oriented system life cycle).
DEFINISI SYTEM DEVELOPMENT LIFE CYCLE (SDLC)
System Development Life Cycle (SDLC)
SDLC adalah tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun sistem informasi. Langkah yang digunakan meliputi :
- Melakukan survei dan menilai kelayakan proyek pengembangan sistem informasi
- Mempelajari dan menganalisis sistem informasi yang sedang berjalan
- Menentukan permintaan pemakai sistem informasi
- Memilih solusi atau pemecahan masalah yang paling baik
- Menentukan perangkat keras (hardware) dan perangkat lunak (software)
- Merancang sistem informasi baru
- Membangun sistem informasi baru
- Mengkomunikasikan dan mengimplementasikan sistem informasi baru
- Memelihara dan melakukan perbaikan/peningkatan sistem informasi baru bila diperlukan
Dalam sebuah siklus SDLC, terdapat enam langkah. Jumlah langkah SDLC pada referensi lain mungkin berbeda, namun secara umum adalah sama. Langkah tersebut adalah;
- Analisis sistem, yaitu membuat analisis aliran kerja manajemen yang sedang berjalan
- Spesifikasi kebutuhan sistem, yaitu melakukan perincian mengenai apa saja yang dibutuhkan dalam pengembangan sistem dan membuat perencanaan yang berkaitan dengan proyek sistem
- Perancangan sistem, yaitu membuat desain aliran kerja manajemen dan desain pemrograman yang diperlukan untuk pengembangan sistem informasi
- Pengembangan sistem, yaitu tahap pengembangan sistem informasi dengan menulis program yang diperlukan
- Pengujian sistem, yaitu melakukan pengujian terhadap sistem yang telah dibuat
- Implementasi dan pemeliharaan sistem, yaitu menerapkan dan memelihara sistem yang telah dibuat
FASE-FASE SDLC
Siklus SDLC dijalankan secara berurutan, mulai dari langkah pertama hingga langkah keenam. Setiap langkah yang telah selesai harus dikaji ulang, kadang-kadang bersama expert user, terutama dalam langkah spesifikasi kebutuhan dan perancangan sistem untuk memastikan bahwa langkah telah dikerjakan dengan benar dan sesuai harapan. Jika tidak maka langkah tersebut perlu diulangi lagi atau kembali ke langkah sebelumnya.
Kaji ulang yang dimaksud adalah pengujian yang sifatnya quality control, sedangkan pengujian di langkah kelima bersifat quality assurance. Quality control dilakukan oleh personal internal tim untuk membangun kualitas, sedangkan quality assurance dilakukan oleh orang di luar tim untuk menguji kualitas sistem. Semua langkah dalam siklus harus terdokumentasi. Dokumentasi yang baik akan mempermudah pemeliharaan dan peningkatan fungsi sistem.
SDLC meliputi fase-fase sebagai berikut :
1. Identifikasi dan seleksi proyek
2. Perencanaan Proyek
3. Analisis
4. Desain
5. Implementasi
6. Pemeliharaan
TEKNIK DALAM SDLC DAN KEUNTUNGAN TEHNIK SDLC
Dalam perkembangannya SDLC dilengkapi oleh berbagai teknik pengembangan
sistem, yaitu:
Prototyping
prototyping adalah proses pembuatan model sederhana untuk software final yang mengijinkan pengguna memiliki gambaran dasar tentang program serta melakukan pengujian awal.
- Jenis-jenis teknik prototyping adalah:
(a) Trowaway Prototyping.
(b) Evolutionary Prototyping.
(c) Incremental Prototyping.
- Keuntungan menggunakan teknik prototyping:
(a) Mengurangi waktu dan biaya.
(b) Meningkatkan keterlibatan pengguna.
(c) Mengurangi kesalahpahaman dan kesalahan interpretasi dengan pengguna.
- Kelemahan menggunakan teknik prototyping:
(a) Analisis kurang.
(b) Biaya untuk membuat prototyping cukup tinggi.
Waterfall
- Keuntungan menggunakan teknik waterfall:
(a) Proses menjadi teratur
(b) Estimasi proses menjadi lebih baik
(c) Jadwal menjadi lebih menentu
- Kelemahan menggunakan teknik waterfall:
(a) Sifatnya kaku, sehingga susah melakukan perubahan di tengah proses
(b) Membutuhkan daftar kebutuhan yang lengkap di awal, tapi jarang konsumen
bisa memberikan kebutuhan secara lengkap diawal
Spiral
Teknik spiral mencoba menggabungkan model prototyping dan waterfall. Biasa digunakan untuk proyek besar yang mahal dan rumit. Digunakan oleh militer Amerika untuk mengembangkan program Future Combat Systems.
- Keuntungan menggunakan teknik spiral:
(a) Pengguna dan developer bisa memahami dengan baik software yang
dibangun karena progress dapat diamati dengan baik.
(b) Estimasi menjadi lebih realistik seiring berjalannya proyek karena masalah
ditemukan sesegera mungkin.
(c) Lebih mampu menangani perubahan yang sering terjadi pada software
development.
(d) Software engineers bisa bekerja lebih cepat pada proyek.
- Kelemahan menggunakan teknik spiral:
(a) Membutuhkan waktu yang lama.
(b) Membutuhkan dana yang besar.
(c) Membutuhkan planning jangka panjang yang baik agar program bisa selesai
dengan baik.
V Model
Teknik V model sering disebut sebagai pengembangan dari teknik waterfall. V untuk verifikasi dan validasi dan merupakan model standar yang banyak dipakai di negara-negara Eropa seperti standar untuk proyek pertahanan dan administrasi federal di Jerman.
-Keuntungan menggunakan teknik V model:
(a) Merupakan model pengembangan terstruktur.
(b) Setiap fase dapat diimplementasikan dengan dokumentasi yang detail dari fase
sebelumnya.
(c) Aktivitas pengujian dapat dimulai di awal proyek, sehingga mengurangi waktu
proyek.
-Kelemahan menggunakan teknik V model adalah dokumentasi harus cukup detail
agar fase selanjutnya dapat berjalan dengan baik.
Formal Method
Teknik formal method adalah teknik yang mengandalkan perhitungan matematika dalam setiap prosesnya. Hanya digunakan pada sistem yang sangat memperhatikan keamanan atau keselamatan dari pengguna.
Contoh penggunaan teknik ini adalah aerospace engineering.
- Keuntungan menggunakan teknik formal method adalah meminimalkan resiko dengan adanya perhitungan komputasi.
- Sedangkan kerugiannya adalah:
(a) Biaya Tinggi.
(b) Kompleks
(c) Tidak Umum untuk Proyek Software pada umumnya
Extreme Programming
Merupakan bagian dari metode agile software development.
- Keuntungan menggunakan teknik extreme programming.
(a) Menjalin Komunikasi yang Baik dengan Klien.
(b) Meningkatkan Komunikasi dan Sifat Saling Menghargai antar Developer.
- Kelemahan menggunakan teknik extreme programming:
(a) Developer harus selalu siap dengan perubahan karena perubahan selalu
diterima.
(b) Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga
anjuran untuk melakukan apa yang diperlukan hari itu juga).
KELEBIHAN DAN KELEMAHAN PADA SDLC
Perbandingan tentang kelebihan dan kekurangan setiap model pada Software Development Life Cycle (SDLC) ini dijelaskan berikut ini
1. Waterfall
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.
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
2. Iterasi
Kelebihan :
- Dapat mengakomodasi jika terjadi perubahan pada tahapan pengembangan yang telah dilaksanakan.
- Dapat disesuaikan agar system bisa dipakai selama hidup software computer.
- Cocok untuk pengembangan sistem dan perangkat lunak skala besar.
- Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tahapan karena system terus bekerja selama proses.
Kekurangan :
- Hanya berlaku untuk Short-Lifetime system.
- Tahapan proses tidak terlihat sedang berada ditahapan mana suatu pekerjaan.
- Memerlukan alat ukur kemajuan secara regular.
- Perubahan yang sering terjadi dapat merubah struktur system.
- Memerlukan tenaga ahli dengan kemampuan tinggi.
3. Rapid Application Development / RAD
Kelebihan :
- RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada (reusable object).
- Setiap fungsi dapat dimodulkan dalam waktu tertentu dan dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga waktunya lebih efesien.
Kekurangan :
- Tidak cocok untuk proyek skala besar.
- Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi.
- Sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
- Resiko teknis yang tinggi juga kurang cocok untuk model ini.
4. Model prototyping
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