SDLC singkatan dari Software Development Life Cycle atau kadang disebut juga System Development Life Cycle. Pada
kesempatan ini akan dijelaskan tentang beberapa model SDLC yang sering
digunakan.
1. Pengertian
SDLC
Pada
awal pengembangan perangkat lunak, para pembuat program (programmer) langsung melakukan pengodean perangkat lunak tanpa
menggunakan prosedur atau tahapan penhembangan perangkat lunak. Dan ditemuilah
kendala-kendala seiring dengan perkembangan skala sistem-sistem perangkat yang
semakin besar. SDLC dimulai dari tahun 1960-an, untuk mengembangkan sistem
skala usaha besar secara fungsional untuk para konglomerat pada jaman itu.
Sistem-sistem yang dibangun mengelola informasi kegiatan dan rutinitas dari
perusahaan-perusahaan yang berpotensi memiliki data yang besar dalam
perkembangannya.
SDLC
adalah proses mengembangkan atau mengubah suatu sistem perangkat lunak dengan
menggunakan model-model dan metodologi yang digunakan orang untuk mengembangkan
sistem-sistem perangkat lunak sebelumnya (berdasarkan best practice atau cara-cara yang sudah teruji baik). Seperti
halnya proses metamorfosis pada kupu-kupu, untuk menjadi kupu-kupu yang indah
maka dibutuhkan beberapa tahap untuk dilalui, sama halnya dengan membuat
perangkat lunak, memiliki daur tahapan yang dilalui agar mrnghasilkan perangkat
lunak yang berkualitas.
Tahapan-tahapan yang ada pada SDLC secara global
adalah sebagai berikut :
· Inisiasi (initiation), pembuatan
proposal proyek perangkat lunak
· Pengembangan konsep sistem (sistem
concept development), lingkup kosep sistem seperti dokumen sistem, analisa
manfaat biaya, manajemen recana, dan pembelajaran kemudahan sistem.
· Perencanaan (Planning), rencana
manajemen proyek dan dokumen lainnya
· Analisa Kebutuhan (requirement
analysis), analisa kebutuhan user dan mengembangkan kebutuhan user.
· Desain (design), mentransformasikan
kebutuhan detail menjadi kebutuhan yang sudah lengkap.
· Pengembangan (development), membuat
basis data dan mempersiapkan prosedur pengujian, file pengujian, pengkodean,
pengompilasian, peninjauan pengujian
· Integrasi dan pengujian (integration and
test), mendemontrasikan sistem perangkat lunak bahwa telah memenuhi kebutuhan
yang dispesifikasikan pada dokumen kebutuhan fungsional
· Implementasi (implementation), persiapan
implementasi dan menjalankan resolusi dari permasalahan
· Operasi dan Pemeliharaan (operations and
maintenance), mengoperasikan dan memelihara sistem informasi
· Disposisi (disposition),
mendeskripsikan aktifitas akhir dari
pengembangan sistem dan membangun data yang sebenarnya sesuai dengan aktifitas
user
2. Model
SDLC
SDLC
memiliki beberapa model dalam penerapan tahapan prosesnya. Beberapa model dasar
akan dibahas pada subbab-subbab berikutnya. Selain model-model dasar yang akan
dibahas, masih banyak model-model yang muncul dengan memodifikasi model-model
SDLC dasar.
A. Model
Waterfall
Model
SDLC air terjun (waterfall) sering juga disebut model sekuensial linier
(sequential diagram) atau alur hidup klasik (classic life cycle). Model air
terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau
terurut dimulai dari analisis, desain, pengodean, pengujian, dan tahap
pendukung (support).
Dengan berbagai kelemahan yang dimiliki model air terjun tapi model ini telah menjadi dasar dari model-model yang lain dalam melakukan perbaikan model pengembangan perangkat lunak.
Model air terjun sangat cocok digunakan kebutuhan pelanggan sudah sangat dipahami dan kemungkinan terjadinya perubahan kebutuhan selama pengembangan perangkat lunak kecil. Hal positif dari model ini adalah struktur tahap pengembangan sistem jelas, dokumentasi dihasilkan di setiap tahap pengembangan, dan sebuah tahap dijelaskan setelah tahap sebelumnya selesai dijalankan (tidak ada tumpang tindih pelaksanaan tahap).
Model waterfall adalah model SDLC yang paling sederhana. Model ini hanya cocok untuk pengembangan perangkat lunak dengan spesifikasi yang tidak berubah-ubah
Ilustrasi Model Waterfall |
- Analisis kebutuhan perangkat lunak. Proses pengumpulan kebutuhan dilakukan secara intensif untuk menspesifikasi kebuthuan perangkat lunak agar dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user. Spesifikasi kebutuhan perangkat lunak pada tahap ini perlu di dokumentasikan.
- Desain. Desain perangkat lunak adalah proses multi langkah yang fokus pada desain pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat lunak, representasi antarmuka, dan prosedur pengodean.
- Pembuatan kode program. Desain juga harus ditranslasikan ke dalam program perangkat lunak. Hasil dari tahap ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahap desain.
- Pengujian. Pengujian fokus pada perangkat lunak secara dari segi lojik dan fungsional dan memastikan bahwa semua bagian sudah diuji. Hal ini dilakukan untuk meminimalisir kesalahan (error) dan memastikan keluaran yang dihasilkan sesuai dengan yang diinginkan.
- Pendukung (support) atau pemeliharaan (maintenance). Tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan ketika sudah dikirimkan ke user.tahap ini dapat mengulangi proses pegembangan mulai dari analisis spesifikasi untuk perubahan perangkat lunak yang sudah ada, tapi tidak untuk membuat perangkat lunak baru.
- Perubahan spesifikasi perangkat lunak terjadi di tengah alur pengembangan.
- Sangat sulit bagi pelanggan untuk mendefinisikan semua spesifikasi di awal alur pengembangan. Pelanggan sering kali butuh contoh (prototype) untuk menjabarkan spesifikasi kebutuhan sistem lebih lanjut.
- Pelanggan tidak mungkin bersabar mengakomodasi perubahan yang diperlukan di akhir alur pengembangan.
Dengan berbagai kelemahan yang dimiliki model air terjun tapi model ini telah menjadi dasar dari model-model yang lain dalam melakukan perbaikan model pengembangan perangkat lunak.
Model air terjun sangat cocok digunakan kebutuhan pelanggan sudah sangat dipahami dan kemungkinan terjadinya perubahan kebutuhan selama pengembangan perangkat lunak kecil. Hal positif dari model ini adalah struktur tahap pengembangan sistem jelas, dokumentasi dihasilkan di setiap tahap pengembangan, dan sebuah tahap dijelaskan setelah tahap sebelumnya selesai dijalankan (tidak ada tumpang tindih pelaksanaan tahap).
Model waterfall adalah model SDLC yang paling sederhana. Model ini hanya cocok untuk pengembangan perangkat lunak dengan spesifikasi yang tidak berubah-ubah
B. Model
Prototipe
Model
prototipe (prototyping model) dimulai dari mengumpulkan kebutuhan pelanggan terhadap
perangkat lunak yang akan dibuat. Lalu dibuat program protipe agar pelanggan
lebih terbayang dengan apa yang sebenarnya diinginkan. Program prototipe
biasanya merupakan program yang belum jadi. Program ini biasanya menyediakan
tampilan dengan simulasi alur perangkat lunak sehingga tampak seperti perangkat
lunak yang sudah jadi. Program ini dievaluasi oleh pelanggan atau user sampai
ditemukan spesifikasi yang sesuai dengan keinginan pelanggan atau user.
Ilustrasi Model Prototipe |
Mock-up
adalah sesuatu yang digunakan sebagai model desain yang digunakan untuk
mengajar, demonstrasi, evaluasi desain, promosi, atau keperluan lain. Sebuah
mock-up disebut sebagai protipe perangkat lunak jika mampu mendemonstrasikan
sebagian besar fungsi sistem perangkat lunak.dan memungkinkan pengujian desain
sistem perangkat lunak. Iterasi terjadi pada perbuatan prototipe sampai sesuai
dengan keinginan pelanggan (customer) atau user.
Kelemahan
model prototipe antara lain :
- Pelanggan sering mengubah-ubah atau menambah-tambah spesifikasi kebutuhan karena menganggap aplikasi sudah dengan cepat dikembangkan, karena adanya iterasi ini dapat menyebabkan pengembang banyak mengalah dengan pelanggan karena perubahan atau penambahan spesifikasi kebutuhan perangkat lunak.
- Pengembang lebih sering mengambil kompromi dengan pelanggan untuk mendapat prototipe dengan waktu yang cepat sehingga pengembang lebih sering melakukan segala cara (tanpa idealis) guna menghasilkan prototipe untuk didemonstrasikan. Hal ini dapat menyebabkan kualitas perangkat lunak yang kurang baik atau bahkan menyebabkan itertif tanpa akhir.
Permasalahan dapat di atasi dengan melakukan perjanjian antara pengembang perangkat lunak dengan pelanggan atau pengguna agar model ptototipe hanya digunakan untuk mendefinisikan spesifikasi kebutuhan perangkat lunak, tapi tidak untuk seluruh proses pengembangan seluruh sistem perangkat lunak.
Model prototipe kurang cocok untuk aplikasi dengan skala besar karena membuat prototipe untuk aplikasi skala besar akan sangat memakan waktu dan tenaga.
Model prototipe ini cocok digunakan untuk menggali spesifikasi kebutuhan pelanggan secara lebih detail tetapi beresiko tinggi terhadap membengkaknya biaya dan waktu proyek.
C. Model
Rapid Application Development (RAD)
RAD
adalah model proses pengembangan perangkat lunak yang bersifat inkremental
terutama untuk waktu pengerjaan yang pendek. Model RAD adalah adaptasi dari
model air terjun versi kecepatan tinggi dengan menggunakan model air terjun
untuk pengembangan setiap komponen perangkat lunak.
Jika
kebutuhan perangkat lunak dipahami dengan baik dan lingkup perangkat lunak
dibatasi dengan baik sehingga tim dapat menyelesaikan pembuatan perangkat lunak
dengan waktu yang pendek. Model RAD
membagi tim pengembangan menjadi beberapa tim untuk mengerjakan beberapa komponen
masing –masing tim pengerjaan dapat dilakukan secara paralel.
Ilustrasi Model RAD |
- Pemodelan bisnis. Dilakukan untuk memodelkan fungsi bisnis unttuk mengetahui informasi apa yang terkait proses bisnis, informasi apa saja yang harus dibuat, siapa yang harus membuat informasi itu, bagaimana alur informasi itu, proses apa saja yang terkait informasi itu.
- Pemodelan data. Memodelkan data apa saja yang dibutuhkan berdasarkan pemodelan bisnis dan mendefinisikan atribut-atributnya beserta relasinya dengan data-data lain.
- Pemodelan proses. Mengimplementasikan fungsi bisnis yang sudah di definisikan terkait dengan pendefinisian data.
- Pembuatan aplikasi. Mengimplementasikan pemodelan proses dan data menjadi program. Model RAD sangat menganjurakan pemakaian komponen yang sudah ada jika dimungkinkan.
- Pengujian dan pergantian. Menguji komponen-komponen yang di buat.
Kelemahan Model RAD antara lain :
- Untuk pembuatan sistem perangkat lunak dengan skala besar maka model RAD akan memerlukan sumber daya manusia yang cukup besar untuk membentuk tim-tim yang mengembangkan komponen-komponen;
- Jika tidak ada persetujuan untuk mengembangkan perangkat lunak secara cepat (rapid) maka proyek dengan model ini akan gagal karena hanya akan bingung mendefinisikan kebutuhan pelanggan atau user.
- Jika sistem perangkat lunak yang akan dibuat tidak bisa dimodulkan (dibagi-bagi menjadi beberapa komponen) maka model RAD tidak dapat digunakan untuk membuat sistem perangkat lunak ini karena terlalu banyak campur tangan antar tim;
- Model RAD tidak cocok untuk sistem perangkat lunak yang memiliki resiko teknis sangat tinggi, misalnya menggunakan teknologi baru yang belum banyak dikenal dan dikuasai pengembang.
- Anggota tim sudah berpengalaman mengembangkan perangkat lunak yang sejenis;
- Pengembangan sudah memiliki komponen-komponen sistem yang bisa digunakan kembali dalam proyek tersebut.
D. Model Iteratif
Model iteratif atau (iterative model) mengkombinasikan proses-proses pada model air terjun dan iteratif pada model prototipe. Model inkremental akan menghasilkan versi-versi perangkat lunak yang sudah mengalami penambahan fungsi untuk setiap pertambahannya (inkremen/increment).
Ilustrasi Model Iteratif |
Model inkremental dibuat untuk mengatasi kelemahan dari model air terjunyang tidak mengakomodasikan iterasi, dan mengatasi kelemahan dari metode prototipe yang memiliki proses terlalu pendek dan setiap iteratif prosesnya tidak selalu menghasilkan produk (bisa jadi hanya prototipe). Model inkremental meghasilkan produk/aplikasi untuk setiap tahapan inkremen.
Model inkeremen sangat cocok digunakan jika staf yang dimiliki memiliki pergantian (turnover) yang tinggi sehingga staf tidak dapat terus ikut dalam pengembangan perangkat lunak. Mekanisme tahapan inkremental perlu direncanakan terlebih dahulu agar hasil produk dan pengerjaan setiap tahapan inkremen menjadi lebih baik.
Metode iteratif merupakan gabungan dari model waterfall dan model prototipe. Model ini cocok digunakan pengembangan dengan turnover staf yang tinggi.
E. Model Spiral.
Model spiral memasangkan iteratif pada model prototipe dengan kontrol dan aspek sistematik yang diambil dari model air terjun. Model spiral menyediakan pengembangan dengan cara cepat dengan perangkat lunak yang memiliki versi yang terus bertambah fungsinya (increment).
Model spiral dibagi menjadi beberapa kerangka aktifitas atau disebut juga wilayah kerja task region. Banyaknya wilayah kerja biasanya diantara tiga sampai enak wilayah sebagai berikut :
- Komunikasi dengan pelanggan (customer communication), aktifitas ini diperlukan untuk membangun komunikasi yang efektif antara pengembang dan pelanggan.
- Perencanaan (planning), untuk mendefinisikan sumber daya , waktu, dan informasi yang terkait dengan proyek.
- Analisa risiko (risk anaysis), untuk memperbaiki risiko dari segi teknis maupun manajemen.
- Rekayasa (engineering), untuk membangun satu atau lebih representasi dari aplikasi perangkat lunak (dapat juga berupa prototipe).
- Konstruksi dan peluncuran (construction and release). Untuk mengonstruksi menguji melakukan instalasi dan menyediakan dukungan terhadap iser (misalnya dari segi dokumentasi dan pelatihan).
- Evaluasi pelanggan (customer evaluation ). Untuk mendapatkan umpan balik berdasarkan evaluasi representasi perangkat lunak yang dihasilkan dari proses rekayasa dan diimplementasikan pada instalasi.
Ilustrasi Model Spiral |
Pada model spiral, hasil akhir dan evaluasi dari sebuah wilayah kerja akan menjadi inisiasi dari wilayah kerja berikutnya. Model spiral cocok digunakan untuk mengembangkan sistem perangkat lunak berskala besar karena memiliki proses analisa proses analisis risiko yang dapat sangat meminimalisir risiko yang kemungkinan terjadi. Model spiral memungkinkan pengembangan untuk menggunakan prototipe pada setiap tahap untuk mengurangi risiko.
Dari beberapa model SDLC yang sudah disebutkan sebelumnya, model spiral merupakan model yang bisa memberikan jaminan kualitas yang paling baik untuk aplikasi berskala besar. Penerapan model spiral cocok digunakan untuk suatu proyek dengan target waktu dan biaya yang tidak terlalu ketat. Setiap perubahan spesifikasi pasti berisiko pada molornya waktu pengerjaan dan membengkaknya biaya proyek.
Model spiral cocok digunakan untuk mengembangkan aplikasi dengan skala besar tetapi target waktu dan biaya tidak terlalu mengikat.
DAFTAR PUSTAKA
A.S, Rosa. M. Shalahuddin. 2016. Rekayasa Perangkat Lunak (Terstruktur dan
Berorientasi Objek). Bandung: Informatika Bandung.