Software Development Life Cycle (SDLC)

Belum masuk. Progresmu tidak tersimpan.

Masuk
  • Bab 1 dari 9
  • 20 menit
  • 1 latihan kode
  • 4 soal kuis

Pengenalan SDLC: Definisi dan Manfaat

Di bab ini (7 bagian)
  1. Tujuan
  2. Masalah yang Ingin Diselesaikan
  3. Apa Itu SDLC?
  4. Mengapa SDLC Penting?
  5. Contoh Berjalan: Aplikasi Kas Kelas
  6. Kesalahan Umum Pemula
  7. Rangkuman

Tujuan bab ini

  • Menjelaskan apa itu SDLC dengan bahasamu sendiri.
  • Mengenali tiga karakter SDLC: terstruktur, terukur, dan berkelanjutan.
  • Menyebutkan manfaat SDLC bagi kualitas, biaya, jadwal, risiko, komunikasi, dan dokumentasi.
  • Memahami mengapa cacat yang ditemukan lebih awal jauh lebih murah diperbaiki.

Masalah yang Ingin Diselesaikan

Bayangkan kamu dan dua temanmu diminta membuat aplikasi kas kelas. Tanpa rencana, biasanya yang terjadi seperti ini: satu orang langsung membuat tampilan, satu orang membuat database, dan satu lagi bingung harus mengerjakan apa. Seminggu kemudian, bendahara kelas bilang ia sebenarnya butuh fitur laporan bulanan yang bisa dicetak, padahal tidak ada yang tahu. Tampilan harus dirombak, tabel database diubah, dan semua orang mulai saling menyalahkan.

Masalahnya bukan karena kalian kurang pintar menulis kode. Masalahnya, tidak ada urutan kerja yang disepakati: kapan menggali kebutuhan, kapan merancang, kapan menulis kode, kapan menguji, dan kapan merilis. Di sinilah SDLC berperan.

Apa Itu SDLC?

SDLC adalah singkatan dari Software Development Life Cycle, atau siklus hidup pengembangan perangkat lunak. SDLC adalah kerangka kerja terstruktur yang mendefinisikan tahapan untuk merencanakan, membangun, menguji, merilis, dan memelihara perangkat lunak secara sistematis.

Kata kuncinya ada di "siklus hidup". Software tidak berhenti saat kodenya selesai ditulis. Ia direncanakan, dibangun, diuji, dirilis, dipakai orang, diperbaiki, lalu dikembangkan lagi. SDLC memberi peta jalan untuk seluruh perjalanan itu, dari ide pertama sampai software terus dirawat.

Tujuan akhirnya bisa diringkas dalam satu kalimat: software berkualitas, tepat waktu, dan sesuai anggaran.

Tiga Karakter SDLC

Ada tiga sifat yang membuat SDLC berbeda dari sekadar "daftar tugas".

KarakterArtinyaContoh di aplikasi kas kelas
TerstrukturSetiap tahap punya input, aktivitas, dan output yang jelasTahap analisis menerima ide dari bendahara, lalu menghasilkan daftar kebutuhan tertulis
TerukurKemajuan dipantau lewat milestone dan deliverable"Minggu ke-2: desain tabel selesai" bisa dicek sudah atau belum
BerkelanjutanSiklus terus berulang seiring kebutuhan berubahSetelah rilis, bendahara minta fitur ekspor, lalu siklus dimulai lagi

Perhatikan karakter ketiga. Banyak pemula membayangkan pengembangan software sebagai garis lurus yang punya ujung. Padahal kenyataannya lebih mirip lingkaran. Setiap kali ada permintaan perubahan besar, prosesnya kembali ke perencanaan.

Input, Aktivitas, Output

Cara paling mudah memahami "terstruktur" adalah melihat setiap tahap sebagai mesin kecil:

  • Input: apa yang diterima tahap ini dari tahap sebelumnya.
  • Aktivitas: pekerjaan yang dilakukan di tahap ini.
  • Output: hasil nyata yang diserahkan ke tahap berikutnya.

Misalnya tahap desain menerima daftar kebutuhan (input), lalu tim merancang tabel dan tampilan (aktivitas), dan menghasilkan dokumen desain beserta wireframe (output). Output inilah yang menjadi input tahap implementasi. Karena rantainya jelas, kamu selalu tahu apa yang harus ada sebelum melangkah.

Mengapa SDLC Penting?

Deck materi menyebut enam manfaat utama. Mari kita bahas satu per satu dengan contoh.

1. Kualitas Lebih Tinggi

Standar dan pengujian di setiap tahap menekan jumlah cacat. Kalau setiap tahap punya pemeriksaan sendiri, kesalahan tidak sempat menumpuk sampai akhir.

2. Biaya Terkendali

Ini manfaat yang paling sering dilupakan pemula. Cacat yang ditemukan lebih awal jauh lebih murah diperbaiki. Bandingkan dua skenario pada aplikasi kas kelas:

  • Ditemukan saat analisis kebutuhan: kamu sadar laporan harus bisa dicetak. Cukup tambah satu baris di dokumen kebutuhan. Biayanya hampir nol.
  • Ditemukan di produksi: aplikasi sudah dipakai, lalu baru ketahuan laporan tidak bisa dicetak. Kamu harus mengubah kode, menguji ulang semuanya, lalu melakukan rilis darurat.

Kesalahan yang sama, biaya perbaikannya sangat berbeda. Alasannya, kesalahan di awal merambat ke tahap berikutnya: ke desain, ke kode, ke pengujian. Semakin jauh merambat, semakin banyak yang harus dibongkar.

3. Jadwal Terprediksi

Milestone yang jelas memudahkan estimasi dan pemantauan. Kalau kamu tahu desain harus selesai di minggu kedua dan ternyata belum, kamu bisa langsung menyesuaikan rencana, bukan baru panik sehari sebelum tenggat.

4. Risiko Terkelola

Risiko teknis dan bisnis diidentifikasi sejak perencanaan. Contoh risiko: "anggota tim hanya bisa kerja di akhir pekan" atau "server gratis punya batas penyimpanan". Dengan mencatatnya di awal, kamu bisa menyiapkan rencana cadangan.

5. Komunikasi Jelas

Semua pihak memahami peran, tanggung jawab, dan target. Bendahara tahu kapan ia diminta mencoba aplikasi, developer tahu fitur apa yang dikerjakan minggu ini.

6. Dokumentasi Lengkap

Pengetahuan proyek tersimpan dan mudah diwariskan. Tahun depan, adik kelasmu yang melanjutkan aplikasi ini tidak perlu menebak-nebak alasan di balik setiap keputusan.

Contoh Berjalan: Aplikasi Kas Kelas

Sepanjang kelas ini kita akan memakai satu contoh kecil yang diikuti di setiap tahap dan model: aplikasi kas kelas. Bendahara mencatat iuran mingguan, siswa bisa melihat saldo, dan wali kelas bisa mencetak laporan bulanan.

Tanpa SDLC, kalian langsung membuka editor kode. Dengan SDLC, kalian bertanya dulu: apa masalahnya, apa yang dibutuhkan, bagaimana rancangannya, bagaimana mengujinya, kapan merilisnya, dan siapa yang merawatnya setelah rilis. Pertanyaan-pertanyaan ini akan kita jawab satu per satu di bab-bab berikutnya.

Kamu juga bisa memodelkan urutan tahap dalam kode sederhana. Perhatikan bahwa setelah tahap terakhir, urutannya kembali ke awal:

const tahap = ["perencanaan", "analisis", "desain", "implementasi", "pengujian", "penerapan", "pemeliharaan"];

function tahapBerikutnya(sekarang) {
  const i = tahap.indexOf(sekarang);
  return tahap[(i + 1) % tahap.length];
}

console.log(tahapBerikutnya("desain"));       // "implementasi"
console.log(tahapBerikutnya("pemeliharaan")); // "perencanaan"

Operator % (sisa bagi) membuat indeks kembali ke 0 setelah tahap ketujuh. Itulah gambaran "siklus" dalam bentuk kode.

Kesalahan Umum Pemula

  • Menganggap SDLC hanya untuk perusahaan besar. Proyek tugas sekolah pun mendapat manfaat dari urutan kerja yang jelas, walau dokumennya cukup sederhana.
  • Mengira SDLC berarti banyak dokumen. Dokumen itu alat, bukan tujuan. Yang penting setiap tahap punya hasil yang jelas.
  • Menganggap pekerjaan selesai saat rilis. Software terus dirawat setelah dipakai, dan perubahan besar memicu siklus baru.
  • Langsung menulis kode. Melewatkan perencanaan dan analisis terasa cepat di awal, tetapi sering berakhir dengan bongkar ulang yang mahal.

Rangkuman

  • SDLC adalah kerangka kerja terstruktur untuk merencanakan, membangun, menguji, merilis, dan memelihara software secara sistematis.
  • Tiga karakternya: terstruktur, terukur, dan berkelanjutan (berupa siklus).
  • Tujuan akhirnya software berkualitas, tepat waktu, dan sesuai anggaran.
  • Manfaatnya meliputi kualitas, biaya terkendali, jadwal terprediksi, risiko terkelola, komunikasi jelas, dan dokumentasi lengkap.
  • Cacat yang ditemukan lebih awal jauh lebih murah diperbaiki karena belum merambat ke desain, kode, dan pengujian.

Selesaikan bab ini

  1. 1. Baca materi
  2. 2. Latihan kode (1)
  3. 3. Kuis (4 soal)

Latihan kode: Maju beberapa tahap dalam siklus

Tulis fungsi majuTahap(sekarang, langkah) yang mengembalikan nama tahap SDLC setelah maju sebanyak langkah dari tahap sekarang.

  • Urutan tahap: perencanaan, analisis, desain, implementasi, pengujian, penerapan, pemeliharaan.
  • Setelah pemeliharaan, siklus kembali ke perencanaan.
  • Jika sekarang bukan nama tahap yang dikenal, kembalikan null.

Contoh: majuTahap("penerapan", 2) menghasilkan "perencanaan".

Cek pemahaman

  1. 1Apa tujuan akhir SDLC menurut materi?

  2. 2Karakter SDLC yang berarti kemajuan dipantau lewat milestone dan deliverable adalah...

  3. 3Bug yang ditemukan saat analisis kebutuhan biasanya lebih murah diperbaiki daripada bug yang ditemukan di produksi.

  4. 4Apa output kode berikut?

    const tahap = ["perencanaan", "analisis", "desain", "implementasi", "pengujian", "penerapan", "pemeliharaan"];
    const i = tahap.indexOf("pemeliharaan");
    console.log(tahap[(i + 1) % tahap.length]);