Perencana Jadwal Belajar
Bangun sendiri dari brief di bawah. Semua pemeriksaan lolos berarti proyekmu selesai, salah satu syarat sertifikat Computational Thinking: Berpikir Komputasional dari Nol.
Brief
Apa yang dibangun
Ujian sudah dekat dan kamu punya beberapa mata pelajaran dengan jumlah bab berbeda. Bangun perencana jadwal belajar kecil yang membagi semua bab ke beberapa hari secara bergiliran. Proyek ini memakai keempat pilar CT.
Data masukan
Setiap mata pelajaran berupa objek. Ada informasi yang tidak relevan untuk jadwal (guru, warna sampul), dan perencanamu harus mengabaikannya:
Fitur wajib
- Dekomposisi:
pecahMateri(mapel)memecah satu mata pelajaran menjadi array bab, misalnya["Matematika bab 1", "Matematika bab 2", "Matematika bab 3"]. - Abstraksi:
semuaMateri(daftarMapel)menggabungkan bab dari semua mata pelajaran (berurutan) menjadi satu array, hanya memakainamadanjumlahBab. - Pola:
hariUntuk(i, jumlahHari)mengembalikan nomor hari (mulai dari 1) untuk materi ke-i(mulai dari 0), bergiliran: 1, 2, ..., jumlahHari, lalu kembali ke 1. Petunjuk:i % jumlahHari + 1. - Algoritma:
susunJadwal(daftarMapel, jumlahHari)mengembalikan array berisijumlahHariarray. Array pertama berisi materi hari 1, dan seterusnya. ringkasJadwal(jadwal)mengembalikan array teks seperti"Hari 1: 3 materi".
Contoh hasil
Langkah yang disarankan
Kerjakan dan uji satu fungsi dulu sebelum lanjut ke fungsi berikutnya. susunJadwal sebaiknya memanggil semuaMateri dan hariUntuk, bukan menghitung ulang semuanya. Untuk membuat array berisi beberapa array kosong, buat [] lalu push([]) sebanyak jumlah hari.
Latihan kode: Perencana Jadwal Belajar
Lengkapi lima fungsi perencana jadwal belajar sesuai brief: pecahMateri, semuaMateri, hariUntuk, susunJadwal, dan ringkasJadwal.