Belum masuk. Progresmu tidak tersimpan.

Masuk
Ruang Materi
Masuk

Perencana Rilis Sprint

Bangun sendiri dari brief di bawah. Semua pemeriksaan lolos berarti proyekmu selesai, salah satu syarat sertifikat Software Development Life Cycle (SDLC).

Brief

Kamu akan membangun perencana rilis sederhana untuk tim Scrum. Fungsi ini menggabungkan dua hal yang kamu pelajari: kebutuhan harus jelas dan terlacak, dan backlog dikerjakan berdasarkan prioritas dalam sprint berkapasitas terbatas.

Yang dibangun

Fungsi rencanakanRilis(backlog, kapasitas). Setiap item backlog berbentuk:

{ id: "F-01", prioritas: 1, poin: 3, testCase: ["TC-01"] }
  • prioritas: 1 (tinggi), 2 (sedang), atau 3 (rendah).
  • poin: estimasi usaha, bilangan bulat positif.
  • testCase: daftar test case yang menguji item ini.

Fitur wajib

  1. Validasi (traceability). Item dianggap valid bila id berupa string tidak kosong, prioritas salah satu dari 1, 2, 3, poin bilangan bulat lebih dari 0, dan testCase array dengan minimal satu isi. Item tidak valid masuk ke tertunda.
  2. Item terlalu besar. Item valid dengan poin lebih besar dari kapasitas juga masuk ke tertunda, karena harus dipecah dulu.
  3. Urut prioritas. Item yang tersisa diurutkan berdasarkan prioritas (1 dulu). Item dengan prioritas sama mempertahankan urutan aslinya.
  4. Isi sprint berurutan. Ambil item satu per satu sesuai urutan. Jika total poin sprint saat ini ditambah item masih tidak melebihi kapasitas, masukkan ke sprint itu. Jika melebihi, tutup sprint dan mulai sprint baru dengan item tersebut.
  5. Kembalikan { sprint, tertunda }. sprint adalah array of array berisi id, tertunda adalah array id (atau null bila id tidak valid) sesuai urutan di backlog.

Contoh hasil

rencanakanRilis([
  { id: "F-01", prioritas: 2, poin: 3, testCase: ["TC-01"] },
  { id: "F-02", prioritas: 1, poin: 4, testCase: ["TC-02"] },
  { id: "F-03", prioritas: 1, poin: 3, testCase: [] },
  { id: "F-04", prioritas: 3, poin: 2, testCase: ["TC-04"] },
], 6);
// { sprint: [["F-02"], ["F-01", "F-04"]], tertunda: ["F-03"] }

F-03 tertunda karena belum punya test case. F-02 (prioritas 1) masuk sprint pertama. F-01 (3 poin) tidak muat di sisa 2 poin, jadi membuka sprint kedua, lalu F-04 menyusul.

Latihan kode: Perencana Rilis Sprint

Tulis fungsi rencanakanRilis(backlog, kapasitas) sesuai brief: validasi item, tunda item tidak valid atau terlalu besar, urutkan berdasarkan prioritas, lalu isi sprint berurutan sesuai kapasitas.