Tipe Data Primitif dalam JavaScript: Fondasi Utama Logika Kode
Dalam JavaScript, setiap nilai (value) yang Anda simpan ke dalam sebuah variabel pada dasarnya terbagi menjadi dua kelompok besar: Tipe Primitif (nilai dasar/tunggal) dan Tipe Referensi (seperti Object dan Array).
Karakteristik utama dari tipe data primitif adalah mereka bersifat immutable (tidak dapat diubah struktur dalamnya). Jika Anda mengubah variabel primitif, Anda sebenarnya menimpa (mengganti) nilai lamanya dengan nilai yang benar-benar baru, bukan memodifikasi nilai aslinya.
JavaScript modern memiliki 7 tipe data primitif. Mari kita bedah satu per satu.
1. String (Teks)
Digunakan untuk menyimpan deretan karakter (teks). Anda bisa menggunakan tanda kutip tunggal ('...'), kutip ganda ("..."), atau tanda backtick (`...` ) untuk Template Literals.
let kota = "Surabaya"; // Kutip ganda
let profesi = 'Developer'; // Kutip tunggal // Template Literal (Sangat disarankan karena mendukung interpolasi variabel)
let perkenalan = `Halo, saya seorang ${profesi} dari ${kota}.`;
2. Number (Angka)
Berbeda dengan bahasa pemrograman lain (seperti PHP atau Java) yang memisahkan tipe angka menjadi Integer (bil angan bulat) dan Float (bilangan desimal), JavaScript hanya memiliki satu tipe: Number.
let umur = 25; // Bilangan bulat (Integer)
let suhu = 36.5; // Bilangan desimal (Float) // Number juga mencakup nilai spesial:
let hasilBagiNol = 10 / 0; // Output: Infinity
let salahHitung = "Teks" * 5; // Output: NaN (Not a Number)
3. BigInt (Angka Raksasa)
Tipe data Number memiliki batas aman maksimum, yaitu 9007199254740991 (Number.MAX_SAFE_INTEGER). Jika Anda perlu melakukan perhitungan presisi tinggi melebihi angka tersebut, Anda harus menggunakan BigInt.
Cara membuatnya adalah dengan menambahkan huruf n di akhir a ngka.
let angkaBiasa = 9007199254740991;
let angkaRaksasa = 9007199254740991n + 2n; // BigInt
Catatan: Anda tidak bisa mencampur operasi matematika antara Number biasa dengan BigInt secara langsung.
4. Boolean (Logika Benar/Salah)
Tipe data ini hanya memiliki dua kemungkinan nilai: true (benar) atau false (salah). Ini adalah tulang punggung dari semua logika percabangan (if/else) dalam pemrograman.
let isDataSynced = true;
let isMenuOpen = false; if (isDataSynced) { console.log("Data berhasil disinkronisasi!");
}
< !---->
5. Undefined (Belum Didefinisikan)
Ini adalah nilai default yang diberikan otomatis oleh JavaScript ketika Anda mendeklarasikan sebuah variabel (menggunakan let atau var) tetapi belum memberikan nilai apa pun ke dalamnya.
let dataPengguna;
console.log(dataPengguna); // Output: undefined
6. Null (Kosong yang Disengaja)
Jika undefined berarti "belum diisi", maka null berarti "sengaja dikosongkan". Programmer biasanya mengatur nilai sebuah variabel menjadi null untuk menandakan bahwa variabel tersebut saat ini tidak memiliki nilai atau data tersebut memang tidak ada.
let hasilPencarian = null; // Menandakan sistem sudah mencari, tapi hasilnya kosong
Fakta Unik JS (Quirk): Jika Anda mengecek tipe data null (typeof null), JavaScript akan menjawab "object". Ini adalah bug abadi dari versi pertama JavaScript yang tidak pernah diperbaiki agar tidak merusak website-website lama.
7. Symbol (Identifier Unik)
Tipe data ini diperkenalkan pada ES6 (2015). Symbol digunakan untuk membuat nilai yang dijamin 100% unik, meskipun Anda membuat deskripsi yang sama. F ungsi utamanya adalah untuk membuat kunci (key) pada Object agar tidak terjadi bentrok nama properti (property collision).
let id1 = Symbol("id");
let id2 = Symbol("id"); console.log(id1 === id2); // Output: false (Keduanya benar-benar unik)
Tabel Perbandingan dan Ringkasan
| Tipe Data | Contoh Nilai | Pengecekan (typeof) | Penjelasan Singkat |
| String | "Halo Dunia" |
"string" |
Teks atau deretan karakter. |
| Number | 42, 3.14, NaN |
"number" |
Angka bulat maupun desimal. |
| BigInt | 9007199254740992n |
"bigint" |
Angka sangat besar (di luar batas aman Number). |
| Boolean | true, false |
"boolean" |
Logika benar atau salah. |
| Undefined | undefined |
"undefined" |
Variabel ada, tapi belum diisi nilai. |
| Null | null |
"object" (Bug JS) |
Variabel sengaja dikosongkan. |
| Symbol | Symbol('id') |
"symbol" |
Nilai unik untuk identifier tingkat lanjut. |
Menguasai perbedaan antara null dan undefined adalah salah satu langkah krusial, terutama saat Anda menarik data (API fetching) dari database untuk memastikan antarmuka frontend tidak error saat menangani data yang kosong.