Langsung ke konten
Menelusuri kode

Pelajaran 2.4

Kenapa tes gagal

7 menit · 8 langkah

  1. Langkah 1 dari 8 · Penjelasan

    Tes tidak membaca layar. Tes memanggil function kamu, mengambil nilai yang di-return, lalu membandingkannya dengan nilai yang diharapkan.

    Misalnya solution(2, 3) menghitung const sum = a + b, lalu memanggil console.log(sum). Layar menampilkan 5, tapi function tidak me-return apa-apa. Bagi tes, hasilnya undefined.

  2. Langkah 2 dari 8 · Pilih pendekatan

    Tes mengharapkan 6. Function kamu mencetak 6 di console, dan tes tetap gagal. Kenapa?

    1. Function-nya tidak me-return apa-apa, jadi hasilnya undefined
    2. Console mencetak 6 sebagai string
    3. console.log terlalu lambat untuk tes
    4. Tes butuh console.log dipanggil dua kali
  3. Langkah 3 dari 8 · Tebak hasilnya

    Soal "Return jumlah digit di string s." Apa yang di-return untuk "123"?

    function solution(s) {  let total = 0  for (const ch of s) {    total += ch  }  return total}
    1. "0123"
    2. 6
    3. "6"
    4. 123
  4. Langkah 4 dari 8 · Pilih pendekatan

    Tes mengharapkan 3. Function kamu me-return "3". Apakah lolos?

    1. Tidak. Tes membandingkan tipe juga, dan angka bukan string
    2. Ya, karena di layar terlihat sama
    3. Ya, karena JavaScript mengubahnya otomatis dengan ==
  5. Langkah 5 dari 8 · Tebak hasilnya

    Apa yang di-return untuk [3, 1, 2]?

    function solution(nums) {  const sorted = nums  sorted.sort((a, b) => a - b)  return [nums[0], sorted[0]]}
    1. [1, 1]
    2. [3, 1]
    3. [3, 3]
  6. Langkah 6 dari 8 · Cari bug-nya

    Soal "Return array baru berisi setiap angka dikali 2. Jangan ubah nums." Tes mengecek nums setelah dipanggil, dan gagal. Ketuk baris penyebabnya.

    function solution(nums) {  const result = nums  for (let i = 0; i < result.length; i++) {    result[i] = result[i] * 2  }  return result}
  7. Langkah 7 dari 8 · Tulis kodenya

    solution(s)

    Return jumlah semua digit di string s, sebagai angka.
    Constraint: 0 ≤ s.length ≤ 100, s hanya berisi 0 sampai 9.

    function solution(s) {  // "123" -> 6 }
  8. Langkah 8 dari 8 · Ringkasan

    • Tes hanya melihat nilai yang di-return. console.log tidak dihitung.
    • 3 dan "3" berbeda. Angka + string menjadi string.
    • const b = a tidak menyalin array. Salin dengan [...a] sebelum mengubah.

    Kartu pola

    Sebelum submit
    Kapan dipakai: Setiap kali tes gagal padahal logikamu terasa benar. Cek tiga hal ini dulu.
    return x          // bukan / not console.log(x)Number(ch)        // "3" -> 3const copy = [...nums]