Latihan 1: Fungsi Kecil & Fokus — Clean Code

Latihan 1 dari materi Fungsi Kecil & Fokus di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Fungsi processStudents mengerjakan tiga hal sekaligus: menyaring siswa yang lulus, menghitung rata-rata, dan merangkai laporan. Pecah jadi tiga fungsi:

  1. filterPassingStudents(students): mengembalikan array siswa dengan grade >= 70.
  2. calculateAverage(students): mengembalikan rata-rata grade dari array itu. Array kosong mengembalikan 0, bukan NaN.
  3. formatReport(passing, average): mengembalikan teks 'Lulus: ' + passing.length + ' siswa, Rata-rata: ' + average.

Lalu ubah processStudents supaya cuma memanggil ketiganya berurutan dan mengembalikan hasil formatReport. Data siswa dan console.log(processStudents(students)) di bawah tetap seperti semula. Output-nya harus tetap persis:

Lulus: 3 siswa, Rata-rata: 85

Tiap fungsi juga diuji sendiri: filterPassingStudents([{ name: 'A', grade: 85 }, { name: 'B', grade: 60 }]) harus [{ name: 'A', grade: 85 }], calculateAverage([{ grade: 70 }, { grade: 90 }]) harus 80, calculateAverage([]) harus 0, dan formatReport([{ grade: 80 }, { grade: 90 }], 85) harus 'Lulus: 2 siswa, Rata-rata: 85'.

Hint