Salah satu fondasi penting dalam mempelajari JavaScript adalah memahami tipe data. Tipe data merupakan kategori atau klasifikasi nilai yang digunakan dalam program, yang menentukan bagaimana data tersebut disimpan, diproses, dan dioperasikan. JavaScript sebagai bahasa pemrograman yang dinamis dan loosely typed memberikan fleksibilitas tinggi dalam penggunaan tipe data. Namun, pemahaman yang kuat mengenai berbagai tipe data yang tersedia sangatlah penting agar kita dapat menulis kode yang lebih efisien, menghindari bug, serta memastikan logika program berjalan sesuai harapan. Dalam artikel ini, kita akan membahas secara menyeluruh tipe data dalam JavaScript, baik tipe data primitif maupun tipe data kompleks, serta cara mengeceknya dalam program.
Tipe Data Primitif di JavaScript
JavaScript memiliki tujuh tipe data primitif yang merupakan blok bangunan utama dalam pengolahan data. Tipe data primitif berarti nilai yang disimpan secara langsung, bukan sebagai referensi atau objek. Ketujuh tipe data primitif tersebut adalah: string
, number
, boolean
, null
, undefined
, symbol
, dan bigint
. Masing-masing tipe data memiliki karakteristik unik dan kegunaannya sendiri-sendiri.
let nama = "Dian"; // String
let umur = 30; // Number
let isLogin = true; // Boolean
let kosong = null; // Null
let belumIsi; // Undefined
let id = Symbol("id"); // Symbol
let besar = 12345678901234567890n; // BigInt
Contoh di atas menunjukkan bagaimana cara mendeklarasikan berbagai tipe data primitif. Penting untuk diingat bahwa meskipun null
terlihat seperti tipe objek saat dicek menggunakan typeof
, sebenarnya itu adalah bug lama dalam JavaScript dan secara konsep tetap dianggap primitif.
String: Teks dalam JavaScript
Tipe data string
digunakan untuk merepresentasikan data berbentuk teks. String bisa didefinisikan menggunakan tanda kutip tunggal (' '), kutip ganda (" "), atau backticks (` `) untuk template literal. Dengan menggunakan string, kita dapat menyimpan nama pengguna, pesan, deskripsi, dan teks lainnya yang dibutuhkan aplikasi.
let salam = "Halo, dunia!";
let namaLengkap = 'Rina Dewi';
let pesan = `Selamat datang, ${namaLengkap}`;
String juga memiliki berbagai metode built-in seperti .length
, .toUpperCase()
, .includes()
, dan lainnya yang sangat membantu dalam manipulasi data teks.
Number: Mengolah Angka dalam JavaScript
JavaScript hanya memiliki satu tipe data angka, yaitu number
, yang mencakup bilangan bulat (integer) maupun pecahan (float). Tidak seperti bahasa lain yang memisahkan integer dan float, JavaScript mengelola keduanya dengan satu tipe data. Selain itu, kita juga dapat melakukan operasi matematika seperti penjumlahan, pengurangan, perkalian, dan pembagian dengan tipe ini.
let a = 10;
let b = 3.5;
let hasil = a + b; // 13.5
JavaScript juga memiliki nilai spesial seperti NaN
(Not-a-Number) dan Infinity
yang perlu dikenali karena sering muncul saat perhitungan error atau tak hingga.
Boolean: Logika Benar atau Salah
Tipe data boolean
hanya memiliki dua nilai: true
atau false
. Ini digunakan dalam perbandingan, pengkondisian, dan logika kontrol seperti if
, while
, dan for
. Boolean memainkan peran vital dalam mengatur alur program dan memberikan hasil berdasarkan kondisi yang ditentukan.
let isValid = true;
let isAktif = false;
if (isValid) {
console.log("Data valid");
} else {
console.log("Data tidak valid");
}
Boolean juga bisa dihasilkan dari hasil perbandingan, misalnya 5 > 3
yang menghasilkan true
.
Null dan Undefined: Perbedaan yang Sering Membingungkan
undefined
adalah nilai default ketika sebuah variabel belum diberi nilai, sementara null
digunakan secara eksplisit untuk menyatakan bahwa variabel tidak memiliki nilai. Keduanya sering membingungkan bagi pemula, namun memiliki perbedaan penting dalam praktiknya.
let x;
console.log(x); // undefined
let y = null;
console.log(y); // null
Meskipun hasilnya terlihat mirip, undefined
terjadi secara otomatis oleh JavaScript, sedangkan null
ditentukan secara eksplisit oleh developer untuk menunjukkan kekosongan nilai.
Symbol dan BigInt: Tipe Data Baru
Symbol
adalah tipe data primitif yang digunakan untuk membuat identifier unik. Ini sering digunakan dalam pengembangan lanjutan seperti pembuatan properti unik dalam objek. Sedangkan BigInt
diperkenalkan untuk menangani bilangan bulat sangat besar yang melebihi batas tipe number
.
const sym1 = Symbol("unik");
const angkaBesar = 123456789123456789123456789n;
Penggunaan BigInt
memungkinkan kalkulasi presisi tinggi, terutama di bidang finansial atau sains yang memerlukan angka sangat besar.
Tipe Data Non-Primitif: Objek dan Array
Selain tipe data primitif, JavaScript juga memiliki tipe data non-primitif atau kompleks, seperti object
dan array
. Tidak seperti primitif yang menyimpan nilai secara langsung, tipe kompleks menyimpan referensi ke nilai. Objek digunakan untuk menyimpan koleksi pasangan key-value, sementara array menyimpan daftar elemen dalam urutan.
let pengguna = {
nama: "Lina",
usia: 28
};
let daftarAngka = [1, 2, 3, 4, 5];
Objek dan array sangat fleksibel dan banyak digunakan dalam JavaScript karena mereka dapat menyimpan berbagai tipe data sekaligus dan memiliki metode manipulasi yang lengkap.
Cara Mengecek Tipe Data di JavaScript
Untuk mengetahui tipe data sebuah nilai di JavaScript, kita bisa menggunakan operator typeof
. Operator ini akan mengembalikan string yang menjelaskan jenis dari nilai yang diuji. Namun, penting juga untuk memahami bahwa typeof null
akan mengembalikan "object", yang merupakan anomali yang sudah ada sejak awal JavaScript dibuat.
console.log(typeof "teks"); // string
console.log(typeof 100); // number
console.log(typeof true); // boolean
console.log(typeof null); // object (bug historis)
console.log(typeof {}); // object
console.log(typeof []); // object
console.log(typeof undefined); // undefined
Kita juga bisa menggunakan fungsi Array.isArray()
untuk membedakan array dari objek biasa karena typeof
tidak membedakannya.
Kesimpulan: Tipe Data adalah Dasar JavaScript
Memahami tipe data dalam JavaScript adalah langkah awal yang sangat penting untuk menjadi programmer JavaScript yang andal. Dari string dan number hingga object dan array, setiap tipe data memiliki peran khusus yang akan sering digunakan dalam penulisan kode sehari-hari. Dengan mengetahui kapan dan bagaimana menggunakan masing-masing tipe, kita dapat membangun aplikasi yang lebih stabil, mudah dipahami, dan siap dikembangkan lebih lanjut. Selalu biasakan memeriksa tipe data ketika terjadi error atau hasil yang tidak diinginkan, karena sering kali masalah tersebut berasal dari kesalahan dalam penggunaan tipe data.