Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Menurut Stackify, software development life cycle adalah sebuah proses yang
bisa memproduksi software dengan kualitas tinggi dengan biaya yang rendah. SDLC
juga memiliki beberapa tahap kerja, termasuk planning, design, testing,
building, dan deployment. Model SDLC yang terkenal meliputi waterfall model, spiral
model, dan agile model.
Setelah itu, software akan dibuat dengan beberapa tahap. dimulai dari
identifikasi, perencanaan, rancangan, membangun produk, pengujian, pemasaran, dan
pemeliharaan. Untuk menghindari penggunaan biaya yang terlalu besar, engineer akan
meminta feedback dari end-user terhadap produknya. Proses SDLC ini dapat
mengeliminasi pekerjaan yang berulang-ulang setelah perbaikan yang sudah selesai.
Langkah Penerapan Software Development Life Cycle (SDLC)
1. Identifikasi masalah
Analisis kebutuhan dan masalah adalah syarat paling dasar dan juga utama
dalam SDLC. Dalam tahapan ini, engineer atau developer menerima semua input yang
masuk termasuk dari customer, salesperson, industri, dan juga programmer.
2. Perencanaan
Dalam tahap ini, tim engineer akan merencanakan berbagai persyaratan dalam
pembuatan software baru atau software yang sudah ada. Hal ini juga termasuk dari
aspek biaya dan juga bahan-bahan yang dibutuhkan.
Tidak hanya itu, perencanaan ini termasuk pula rincian dari risiko atau skenario
terburuk dari software yang akan di-SDLC-kan.
3. Rancangan
Tahap kerja SDLC ini dimulai dari mengubah spesifikasi sebuah software ke
dalam design plan yang disebut dengan Desain Dokumen Spesifikasi (DDS). Semua tim
yang bersangkutan termasuk dengan klien akan membantu mereview dari rancangan
ini dan menawarkan feedback.
Dalam tahap SDLC ini, tugas engineer dan tim adalah untuk membangun sebuah
produk dari barisan atau bahasa pemrograman. Jika tahap sebelumnya sudah
dikerjakan dengan sangat detail, mungkin sebenarnya tahap ini dapat dikatakan tahap
paling sulit dan membingungkan.
5. Pengujian
6. Memasarkan Produk
Jika pengujian sudah selesai, proses kerja SDLC berikutnya yang bisa segera
diluncurkan adalah pemasaran produk. Fase ini bukan tidak menunjukkan bahwa setiap
tahap SDLC sudah selesai. Berbagai feedback yang disampaikan oleh user juga harus
didengarkan lagi. Bila perlu, akan ada penyesuaian lagi terhadap produk.
Dengan keadaaan dan kondisi teknologi yang terus berubah, tahapan terakhir
dari SDLC mengharuskan engineer dan tim tetap memelihara produk yang sudah
selesai. Hal ini perlu dilakukan untuk mengurangi error dan penurunan kualitas pada
produk.
Model-Model Software Development Life Cycle (SDLC)
Ada beberapa model yang biasa digunakan dalam menjalankan proses SDLC, di
antaranya adalah:
1. Waterfall model
Setiap fase memiliki rencana kecil dan menurun ke fase berikutnya. Maka dari
itu, fase ini dikatakan waterfall atau air terjun karena tiap fase memiliki ‘turunan’ kecil
lainnya. Namun, salah satu kekurangan dari model ini adalah jika ada satu detail kecil
yang tertinggal, dapat mempengaruhi keseluruhan rencana dan berakhir berantakan.
• Design
Melakukan perancangan desain perangkat lunak sebagai perkiraan sebelum
dibuatnya kode. Desain sistem dapat dibuat menggunakan Flowchart, Mind
Map, atau Entity Relationship Diagram (ERD).
• Implementasi
Implementasi ini adalah tahap dimana seluruh desain yang sebelumnya sudah
dibuat diubah menjadi kode-kode program. Kode yang dihasilkan masih
berbentuk modul-modul yang harus digabungkan di tahap selanjutnya.
• Integration & testing
Di tahap ini dilakukan penggabungan modul-modul yang sudah dibuat
sebelumnya dan melakukan pengujian untuk mengetahui apakah perangkat
lunak yang dibuat telah sesuai dengan desain dan fungsinya atau tidak.
• Verification
Di tahap ini, pengguna atau klien yang langsung melakukan pengujian pada
sistem, apakah sistem telah sesuai dengan tang disetujui atau belum sesuai.
1. Memiliki proses yang terurut, sehingga pengerjaan dapat terjadwal dengan baik
dan mudah.
2. Cocok untuk sistem dengan kompleksitas rendah (predictable).
3. Setiap proses yang dilakukan tidak dapat saling tumpah tindih.
1. Waktu pengerjaan relatif lebih lama, karena harus menunggu tahap sebelumnya
selesai.
2. Biaya yang dibutuhkan lebih mahal karena waktu pengembangan yang
dibutuhkan lebih lama.
3. Model waterfall ini kurang cocok untuk pengembangan proyek yang memiliki
kompleksitas tinggi.
2. Prototype
• Analisa kebutuhan
Pada tahap ini pengembang melakukan identifikasi perangkat lunak dan semua
kebutuhan sistem yang akan dibuat.
• Membuat prototype
Membuat rancangan sementara yang berfokus pada alur program kepada
pengguna.
• Evaluasi prototype
Evaluasi dilakukan untuk mengetahui apakah model prototype sudah sesuai
dengan harapan.
• Mengkodekan sistem
Jika prototype disetujui maka akan diterjemahkan ke dalam bahasa
pemrograman yang sesuai.
• Pengujian sistem
Setelah perangkat lunak sudah siap, perangkat lunak harus melewati pengujian.
Pengujian ini biasanya dilakukan dengan White Box Testing, Black Box Testing,
dan lain-lain.
• Evaluasi sistem
Pengguna melakukan evaluasi apakah perangkat lunak sudah sesuai dengan apa
yang diharapkan atau tidak. Jika ya, lakukan tahap selanjutnya. Jika tidak, ulangi
tahap mengkodekan sistem dan pengujian sistem.
• Menggunakan sistem
Perangkat lunak yang telah diuji dan disetujui siap untuk digunakan.
Sebagai suatu metode yang sering digunakan, metode prototype pasti memiliki
kelebihan dan kekurangan.
2. Penerapan fitur menjadi lebih mudah, karena pengembang mengetahui apa yang
diharapkan.
Tujuan Agile
• Collaboration
Kolaborasi ini dilakukan oleh setiap tim pengembang untuk
mendiskusikan feedback yang diberikan oleh klien.
1. Metode ini kurang sesuai dengan tim yang besar (lebih dari 20 orang).
2. Tim harus selalu siap, karena perubahan dapat terjadi kapan saja.
Metode ini kurang cocok untuk tim yang berkomitmen untuk menyelesaikan proyek
bersama-sama.
4. Fountain
Metode fountain adalah perbaikan dari metode waterfall, di mana jenis tahapan
masih sama. Namun beberapa jenis tahapan boleh didahulukan atau dilewati, tetapi
ada tahapan yang tidak bisa dilewati, contohnya seperti kamu memerlukan design
sebelum melakukan implementasi, jika hal tersebut dilewati maka akan ada tumpang
tindih.
Berikut adalah tahap-tahap pengembangan perangkat lunak menggunakan
metode fountain.
• System design
Pembuatan desain sistem yang akan dibuat sebelum diimplementasikan.
• Program design
Pembuatan desain yang lebih sempurna dan hampir mendekati hasil akhir dari
perangkat lunak.
• Implementation
Di tahap ini dilakukan implementasi sesuai dengan desain yang sudah dibuat di
tahap sebelumnya.
• Program use
Dalam tahap ini dilakukan pengajaran kepada pengguna untuk menggunakan
perangkat lunak yang telah dibuat.
• Software maintenance
Biasanya dalam tahap ini dilakukan perawatan terhadap perangkat lunak yang
sudah dibuat, perawatan dapat berupa update sistem atau perbaikan kesalahan
atau bugs yang ada.
Karena metode fountain ini adalah perbaikan dari metode waterfall, maka metode
ini memiliki kelebihan dan kekurangan yang mirip dengan metode waterfall.
1. Memiliki proses yang terurut, sehingga pengerjaan dapat terjadwal dengan baik
dan mudah.
2. Cocok untuk sistem dengan kompleksitas rendah (predictable).
3. Dapat melewati atau mendahulukan beberapa tahapan .
4. Setiap proses yang dilakukan tidak dapat saling tumpah tindih.
1. Waktu pengerjaan relatif lebih lama, karena harus menunggu tahap sebelumnya
selesai.
2. Biaya yang dibutuhkan lebih mahal karena waktu pengembangan yang
dibutuhkan lebih lama.
3. Model fountain ini kurang cocok untuk pengembangan proyek yang memiliki
kompleksitas tinggi.