0Pricing
JavaScript Academy · Pelajaran

Pemrograman Defensif dan Pemeriksaan Masukan

Tulis pemeriksaan masukan kecil, gunakan klausa penjaga, penguraian aman, nilai bawaan, dan validasi objek sederhana untuk mencegah kegagalan sejak awal

Pemrograman Defensif dan Pemeriksaan Masukan adalah pelajaran JavaScript Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 2. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar JavaScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus JavaScript Academy mencakup 2 pelajaran total.

Pengantar pemeriksaan defensif

Tujuan: Hentikan input yang tidak valid sejak awal agar bug tidak menyebar.

  • Pemeriksaan tipe dan rentang
  • Klausa penjaga
  • Penguraian yang aman
  • Nilai bawaan dan validasi objek sederhana
Pemrograman Defensif dan Pemeriksaan Masukan — ilustrasi 1

Fungsi pembantu tipe

Buat fungsi pembantu kecil untuk menggunakan kembali pemeriksaan seperti number dan non-empty string.

// Tiny type helpers
function isNumber(n) {
  return typeof n === "number" && Number.isFinite(n);
}

function isNonEmptyString(s) {
  return typeof s === "string" && s.trim().length > 0;
}

console.log("isNumber(3):", isNumber(3));
console.log("isNumber(NaN):", isNumber(NaN));
console.log("isNonEmptyString(\"\"):", isNonEmptyString(""));
console.log("isNonEmptyString(\"hi\"):", isNonEmptyString("hi"));
Pemrograman Defensif dan Pemeriksaan Masukan — ilustrasi 2

Demo klausa penjaga

Periksa input terlebih dahulu; hentikan proses lebih awal saat terjadi kesalahan agar alur utama tetap bersih.

// Guard clauses: return early if invalid
function buy(quantity) {
  if (!isNumber(quantity)) {
    console.log("Quantity must be a number");
    return;
  }
  if (quantity <= 0) {
    console.log("Quantity must be > 0");
    return;
  }
  console.log("Buying", quantity, "items");
}

buy(3);
buy("3");
buy(0);
Pemrograman Defensif dan Pemeriksaan Masukan — ilustrasi 3

Penguraian dengan cadangan

Validasi hasil yang telah diuraikan. Jika penguraian gagal, kembalikan cadangan sederhana alih-alih membuat program berhenti.

// Parse safely and use sensible defaults
function toInt(str, fallback = 0) {
  const n = parseInt(str, 10);
  if (!Number.isFinite(n)) {
    return fallback;
  }
  return n;
}

console.log("toInt(\"42\"):", toInt("42"));
console.log("toInt(\"7px\", -1):", toInt("7px", -1));
console.log("toInt(\"abc\", 0):", toInt("abc", 0));
Pemrograman Defensif dan Pemeriksaan Masukan — ilustrasi 4

Nilai bawaan dan rentang

Gunakan ?? untuk nilai bawaan null/undefined, lalu batasi nilainya ke rentang yang aman.

// Defaults with ?? and simple range checks
function clampPercent(value) {
  // Use 0 as default when value is null or undefined
  const v = (value ?? 0);

  if (!isNumber(v)) {
    return 0;
  }
  // Clamp into 0..100
  const clamped = Math.min(100, Math.max(0, v));
  return clamped;
}

console.log(clampPercent(undefined));
console.log(clampPercent(120));
console.log(clampPercent(-5));
console.log(clampPercent(55));
Pemrograman Defensif dan Pemeriksaan Masukan — ilustrasi 5

Pemeriksaan bentuk objek

Periksa bidang yang wajib diisi dan rentang sederhana; kembalikan objek hasil kecil seperti { ok, reason }.

// Simple object validation
function validateUser(u) {
  if (u == null || typeof u !== "object") {
    return { ok: false, reason: "User must be an object" };
  }
  if (!isNonEmptyString(u.name)) {
    return { ok: false, reason: "name required" };
  }
  if (!isNumber(u.age) || u.age < 0) {
    return { ok: false, reason: "age must be a number >= 0" };
  }
  return { ok: true };
}

console.log("good:", validateUser({ name: "Ayla", age: 21 }));
console.log("bad:", validateUser({ name: "", age: -1 }));
Pemrograman Defensif dan Pemeriksaan Masukan — ilustrasi 6

Kuis pemeriksaan defensif

Pemeriksaan cepat: Penanganan input secara defensif.

Pemrograman Defensif dan Pemeriksaan Masukan — ilustrasi 7

Ringkasan

Ringkasan: Gunakan fungsi pembantu tipe yang kecil, klausa penjaga, penguraian aman dengan nilai cadangan, nilai bawaan nullish, pembatas rentang, dan validasi objek sederhana untuk menghentikan bug sejak awal.

Pemrograman Defensif dan Pemeriksaan Masukan — ilustrasi 8

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pemrograman Defensif dan Pemeriksaan Masukan” gratis?

Ya — teks lengkap “Pemrograman Defensif dan Pemeriksaan Masukan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus JavaScript Academy, upgrade ke CoddyKit PRO. Kursus JavaScript Academy mencakup 2 pelajaran total.

Apa yang akan aku pelajari di “Pemrograman Defensif dan Pemeriksaan Masukan”?

Tulis pemeriksaan masukan kecil, gunakan klausa penjaga, penguraian aman, nilai bawaan, dan validasi objek sederhana untuk mencegah kegagalan sejak awal Kamu berlatih JavaScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai JavaScript Academy?

Tidak diperlukan pengalaman sebelumnya. JavaScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 2.

Berapa lama pelajaran “Pemrograman Defensif dan Pemeriksaan Masukan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran JavaScript Academy ini?

Ya. Setiap pelajaran JavaScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. try/catch/finally, throw, galat khusus
  2. Pemrograman Defensif dan Pemeriksaan Masukan
← Kembali ke JavaScript Academy