Recraftory

Javascript - Tipe Data

Memahami berbagai tipe data yang ada dalam JavaScript.

Bahasa pemrograman memproses data dengan berbagai tipe.

Tipe Data Primitif

  1. String - Teks (contoh: "Hello", '123')
  2. Number - Angka (contoh: 42, 3.14, -5)
  3. Boolean - Nilai kebenaran (true atau false)
  4. Undefined - Variabel yang dideklarasikan tanpa nilai
  5. Null - Nilai kosong yang disengaja
  6. BigInt - Untuk bilangan bulat besar (contoh: 123n)
  7. Symbol - Nilai unik yang tidak dapat diubah (ES6+)

Tipe Data Non-Primitif

  • Object - Kumpulan properti (key-value pairs)
  • Array - Koleksi nilai yang terindeks
  • Function - Blok kode yang dapat dipanggil
  • Date - Untuk menangani tanggal dan waktu
  • RegExp - Untuk pencocokan pola teks

Contoh Penggunaan

// String
let nama = "Budi";
let alamat = 'Jakarta';
let sambutan = `Halo, ${nama}!`;  // Template literal

// Number
let umur = 25;
let harga = 99.99;
let hex = 0xFF;  // 255 dalam desimal

// Boolean
let sudahLogin = true;
let isAdmin = false;

// Null & Undefined
let alamat = null;      // Nilai kosong yang disengaja
let noTelp;             // undefined
let umur = undefined;   // Tidak disarankan

// Object
let user = {
  nama: "Budi",
  umur: 25,
  aktif: true
};

// Array
let angka = [1, 2, 3, 4, 5];
let warna = ["merah", "hijau", "biru"];

// Function
function sapa(nama) {
  return `Halo, ${nama}!`;
}

Type Coercion

JavaScript secara otomatis mengkonversi tipe data saat diperlukan:

let x = "5" + 2;      // "52" (string)
let y = "5" - 2;      // 3 (number)
let z = "5" * "2";    // 10 (number)
let a = "5" * "halo"; // NaN (Not a Number)

Pengecekan Tipe Data

typeof "Budi"       // "string"
typeof 25           // "number"
typeof true         // "boolean"
typeof undefined    // "undefined"
typeof null         // "object" (ini adalah bug dalam JavaScript)
typeof [1,2,3]      // "object"
typeof {nama: "Budi"} // "object"
typeof function(){}  // "function"

// Cara lebih baik untuk mengecek array
Array.isArray([1,2,3])  // true

Best Practices

  1. Gunakan === untuk perbandingan ketat (strict equality)
  2. Hindari == yang melakukan type coercion
  3. Selalu inisialisasi variabel dengan nilai default
  4. Gunakan const untuk nilai yang tidak berubah
  5. Validasi input untuk memastikan tipe data yang diharapkan