Software Development Life Cycle (SDLC)

Belum masuk. Progresmu tidak tersimpan.

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

Tujuh Tahap, Perencanaan, dan Analisis Kebutuhan

Di bab ini (6 bagian)
  1. Tujuan
  2. Gambaran Tujuh Tahap
  3. Tahap 1: Perencanaan
  4. Tahap 2: Analisis Kebutuhan
  5. Kesalahan Umum
  6. Rangkuman

Tujuan bab ini

  • Mengenal ketujuh tahap SDLC dan urutannya sebagai siklus.
  • Menjelaskan aktivitas, output, dan peran di tahap perencanaan.
  • Membedakan kebutuhan fungsional dan non-fungsional.
  • Mengenali teknik pengumpulan kebutuhan dan isi dokumen SRS.

Gambaran Tujuh Tahap

SDLC punya tujuh fase inti, dari ide sampai software yang terus dirawat:

NoTahapIstilahInti pekerjaan
1PerencanaanPlanningTujuan, ruang lingkup, kelayakan, jadwal dan anggaran
2Analisis KebutuhanAnalysisMenggali dan mendokumentasikan kebutuhan (SRS)
3Desain SistemDesignArsitektur, basis data, antarmuka dan modul
4ImplementasiDevelopmentMenulis kode program sesuai desain dan standar
5PengujianTestingMemastikan software bebas cacat dan sesuai kebutuhan
6PenerapanDeploymentMerilis software ke lingkungan produksi
7PemeliharaanMaintenanceMemperbaiki, menyesuaikan dan meningkatkan sistem

Tujuh tahap SDLC tersusun sebagai siklus berulang

Tahap pemeliharaan akan memicu perencanaan baru, sehingga prosesnya berupa siklus, bukan garis lurus. Di bab ini kita membahas dua tahap pertama secara rinci, karena keduanya menentukan arah seluruh proyek.

Tahap 1: Perencanaan

Perencanaan adalah tahap fondasi. Tujuannya memastikan proyek layak dijalankan dan semua pihak sepakat tentang apa yang akan dibangun. Ada tiga pertanyaan kunci di tahap ini:

  1. Apa masalahnya?
  2. Apakah layak secara teknis dan finansial?
  3. Berapa lama dan berapa biayanya?

Aktivitas Utama

  • Mendefinisikan masalah, tujuan, dan ruang lingkup proyek.
  • Melakukan studi kelayakan dari lima sisi: teknis, ekonomi, operasional, hukum, dan jadwal.
  • Mengestimasi biaya, waktu, dan sumber daya.
  • Mengidentifikasi risiko awal beserta rencana mitigasinya.
  • Menyusun jadwal, milestone, dan membentuk tim.

Studi Kelayakan pada Aplikasi Kas Kelas

Mari terapkan lima sisi kelayakan ke contoh berjalan kita:

SisiPertanyaanJawaban untuk kas kelas
TeknisApakah tim mampu membangunnya?Ya, tim sudah belajar HTML, JavaScript, dan database dasar
EkonomiApakah biayanya masuk akal?Hosting gratis cukup, tidak ada biaya lisensi
OperasionalApakah akan benar-benar dipakai?Bendahara bersedia mencatat lewat aplikasi
HukumAda aturan yang dilanggar?Data hanya nama dan nominal iuran, tetap dijaga kerahasiaannya
JadwalBisa selesai tepat waktu?Target 6 minggu, sebelum semester berakhir

Kalau salah satu sisi jawabannya "tidak", lebih baik proyek ditunda atau ruang lingkupnya dikurangi sekarang, bukan setelah kode setengah jadi.

Output dan Peran

Deliverable tahap perencanaan adalah Project Charter, Laporan Studi Kelayakan, Rencana Proyek dan Jadwal, serta Daftar Risiko (Risk Register). Pihak yang terlibat: Project Manager, Sponsor, Stakeholder, dan Business Analyst.

Risk register tidak perlu rumit. Untuk kas kelas, isinya bisa seperti ini: "Risiko: anggota tim sibuk ujian di minggu ke-4. Mitigasi: fitur inti selesai sebelum minggu ke-4."

Tahap 2: Analisis Kebutuhan

Kalau perencanaan menjawab "apakah proyek ini layak", analisis kebutuhan menjawab APA yang dibutuhkan pengguna secara rinci. Hasilnya dituangkan ke dalam dokumen Software Requirements Specification (SRS).

Tahap ini sangat menentukan. Kebutuhan yang buruk adalah penyebab umum kegagalan proyek. Kode sebagus apa pun tidak berguna kalau yang dibangun bukan yang dibutuhkan.

Fungsional vs Non-Fungsional

Kebutuhan dibagi dua jenis:

  • Kebutuhan fungsional: apa yang harus dilakukan sistem. Ini berupa fitur.
  • Kebutuhan non-fungsional: seberapa baik sistem bekerja. Ini berupa kualitas.

Contoh dari deck:

FungsionalNon-fungsional
Pengguna dapat login dengan emailKinerja: respons di bawah 2 detik
Admin dapat menambah data produkKeamanan: data sensitif terenkripsi
Sistem mengirim notifikasi pesananKetersediaan: aktif 99,5% waktu
Pengguna dapat mencetak laporanUsability: mudah dipakai orang awam

Trik cepat membedakannya: kebutuhan fungsional biasanya bisa ditulis sebagai "pengguna dapat ..." atau "sistem ...", sedangkan non-fungsional biasanya mengandung ukuran kualitas seperti waktu, persen, atau tingkat kemudahan.

Untuk aplikasi kas kelas:

  • Fungsional: bendahara dapat mencatat iuran, siswa dapat melihat saldo, wali kelas dapat mencetak laporan bulanan.
  • Non-fungsional: halaman saldo terbuka di bawah 2 detik di ponsel, hanya bendahara yang bisa mengubah data.

Teknik Pengumpulan Kebutuhan

Kebutuhan tidak muncul sendiri. Kamu harus menggalinya dengan teknik berikut:

  • Wawancara: bertanya langsung ke bendahara dan wali kelas.
  • Kuesioner: menyebar pertanyaan ke seluruh siswa sekaligus.
  • Observasi: melihat bagaimana bendahara mencatat di buku tulis saat ini.
  • Workshop: duduk bersama semua pihak untuk menyepakati fitur.
  • Prototyping: menunjukkan rancangan kasar agar pengguna bisa bilang "ya, seperti ini" atau "bukan".
  • User Story: menulis kebutuhan dari sudut pandang pengguna.

Contoh user story: "Sebagai bendahara, saya ingin melihat siapa saja yang belum membayar minggu ini, agar saya bisa menagih tepat sasaran."

Output tahap ini adalah SRS, Use Case, dan User Story.

Memeriksa Kelengkapan Kebutuhan dengan Kode

Daftar kebutuhan yang baik punya identitas, deskripsi, dan jenis yang jelas. Kamu bisa memodelkan pemeriksaan sederhana seperti ini:

const kebutuhan = [
  { id: "F-01", deskripsi: "Bendahara dapat mencatat iuran", jenis: "fungsional" },
  { id: "NF-01", deskripsi: "Halaman saldo terbuka di bawah 2 detik", jenis: "non-fungsional" },
];

const fungsional = kebutuhan.filter((k) => k.jenis === "fungsional");
console.log(fungsional.length); // 1

Di latihan bab ini, kamu akan menulis fungsi yang memisahkan kebutuhan berdasarkan jenisnya.

Kesalahan Umum

  • Menulis kebutuhan yang kabur, misalnya "aplikasi harus cepat". Lebih baik "respons di bawah 2 detik" karena bisa diukur dan diuji.
  • Melupakan kebutuhan non-fungsional. Fitur lengkap tapi lambat dan tidak aman tetap mengecewakan pengguna.
  • Hanya bertanya ke satu orang. Wali kelas dan siswa punya kebutuhan yang berbeda dari bendahara.
  • Melewatkan studi kelayakan. Proyek yang ternyata tidak layak sebaiknya dihentikan di awal, bukan di tengah jalan.

Rangkuman

  • SDLC punya tujuh tahap yang membentuk siklus: perencanaan, analisis, desain, implementasi, pengujian, penerapan, dan pemeliharaan.
  • Perencanaan memastikan proyek layak lewat studi kelayakan teknis, ekonomi, operasional, hukum, dan jadwal.
  • Output perencanaan: Project Charter, laporan studi kelayakan, rencana proyek dan jadwal, serta risk register.
  • Analisis kebutuhan menggali APA yang dibutuhkan pengguna dan menuangkannya ke SRS, use case, dan user story.
  • Kebutuhan fungsional menjelaskan apa yang dilakukan sistem, non-fungsional menjelaskan seberapa baik sistem bekerja.

Selesaikan bab ini

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

Latihan kode: Memisahkan kebutuhan fungsional dan non-fungsional

Tulis fungsi pisahkanKebutuhan(daftar). Setiap item berbentuk { id, jenis } dengan jenis bernilai "fungsional" atau "non-fungsional".

Kembalikan objek { fungsional, nonFungsional } berisi array id sesuai urutan aslinya. Item dengan jenis lain diabaikan.

Cek pemahaman

  1. 1Manakah yang termasuk kebutuhan non-fungsional?

  2. 2Dokumen utama hasil tahap analisis kebutuhan adalah...

  3. 3Studi kelayakan di tahap perencanaan mencakup sisi teknis, ekonomi, operasional, hukum, dan jadwal.

  4. 4Pertanyaan 'Apakah layak secara teknis dan finansial?' paling khas untuk tahap...