Memahami Tipe Data JavaScript Fondasi Penting untuk Pemula
Memahami Tipe Data JavaScript Fondasi Penting untuk Pemula – Dalam dunia pemrograman, data adalah segalanya. Sama seperti di dunia nyata kita mengenal berbagai jenis benda, dalam kode pun kita berurusan dengan berbagai jenis data. JavaScript, sebagai salah satu bahasa pemrograman paling populer di dunia, memiliki sistem tipe data yang menjadi fondasi bagi setiap baris kode yang Anda tulis. Memahami tipe data ini secara mendalam bukan hanya sekadar teori, melainkan sebuah keharusan praktis yang akan menentukan kualitas dan efektivitas kode Anda. Tanpa pemahaman yang solid, Anda akan sering bertemu dengan bug atau kesalahan logika yang sulit di lacak. Mari kita selami dunia tipe data dalam JavaScript untuk membangun fondasi pemrograman Anda yang kokoh.
Apa Itu Tipe Data?
Secara sederhana, tipe data adalah sebuah klasifikasi yang memberi tahu komputer bagaimana cara menginterpretasikan sebuah nilai. Apakah nilai tersebut berupa teks, angka, pilihan benar/salah, atau sesuatu yang lebih kompleks? Dengan mengenali tipe data, JavaScript dapat melakukan operasi yang sesuai. Misalnya, Anda bisa menjumlahkan dua angka, tetapi tidak bisa menjumlahkan angka dengan teks secara matematis (meskipun JavaScript memiliki perilaku unik untuk kasus ini yang akan kita bahas nanti).
Secara garis besar, tipe data dalam JavaScript di bagi menjadi dua kategori utama: Tipe Data Primitif dan Tipe Data Kompleks (Object).
Baca juga: Belajar Pemrograman IoT Perulangan While dan Do While
Tipe Data Primitif: Blok Bangunan Dasar
Tipe data primitif adalah tipe data yang paling dasar dan fundamental dalam JavaScript. Nilainya di simpan langsung di dalam lokasi memori variabel. Artinya, ketika Anda menyalin sebuah variabel primitif ke variabel lain, Anda menyalin nilainya. Ada tujuh tipe data primitif dalam JavaScript:
1. String
String di gunakan untuk merepresentasikan data tekstual. Apa pun yang berupa teks, mulai dari satu huruf, satu kata, hingga satu paragraf, dapat di simpan sebagai string. Untuk membuat sebuah string, Anda cukup membungkus teks di dalam tanda kutip tunggal ('...'
), tanda kutip ganda ("..."
), atau backtick (`...`
).
-
Contoh:
JavaScript
let nama = "Budi Hartono"; let sapaan = 'Selamat pagi!'; let deskripsi = `Dia adalah seorang programmer.`;
Kelebihan menggunakan backtick adalah Anda bisa menyisipkan variabel atau ekspresi langsung di dalam string, sebuah fitur yang di sebut template literals.
-
Contoh dengan Template Literals:
JavaScript
let umur = 25; let perkenalan = `Nama saya ${nama} dan umur saya ${umur} tahun.`; console.log(perkenalan); // Output: Nama saya Budi Hartono dan umur saya 25 tahun.
2. Number
Berbeda dengan beberapa bahasa pemrograman lain yang membedakan antara bilangan bulat (integer) dan bilangan desimal (float), JavaScript menyederhanakannya menjadi satu tipe data: Number. Tipe data ini mencakup semua jenis angka, baik itu positif, negatif, maupun desimal.
-
Contoh:
JavaScript
let jumlahBarang = 10; // Bilangan bulat let harga = 1500.50; // Bilangan desimal let suhuMinus = -5; // Bilangan negatif
Tipe data Number juga memiliki beberapa nilai khusus seperti Infinity
, -Infinity
, dan NaN
(Not-a-Number) yang muncul dari operasi matematika yang tidak valid, misalnya membagi string dengan angka.
3. Boolean
Boolean adalah tipe data yang paling sederhana. Ia hanya memiliki dua kemungkinan nilai: true
(benar) atau false
(salah). Tipe data ini sangat krusial dalam struktur pengambilan keputusan (kondisional) seperti if-else
dan perulangan.
-
Contoh:
JavaScript
let sudahMenikah = false; let lampuMenyala = true; if (lampuMenyala) { console.log("Ruangan ini terang."); } else { console.log("Ruangan ini gelap."); }
4. Undefined
Sebuah variabel yang telah di deklarasikan tetapi belum di beri nilai akan secara otomatis memiliki nilai dan tipe undefined. Ini adalah cara JavaScript untuk mengatakan “variabel ini ada, tapi isinya kosong”.
-
Contoh:
JavaScript
let alamat; console.log(alamat); // Output: undefined
5. Null
Null juga merepresentasikan kekosongan, tetapi berbeda dengan undefined
. Selain itu, Null merupakan nilai yang sengaja di berikan kepada sebuah variabel untuk menandakan bahwa variabel tersebut tidak memiliki nilai object. Jadi, jika undefined
adalah kekosongan yang tidak disengaja, null
adalah kekosongan yang disengaja.
-
Contoh:
JavaScript
let dataPengguna = null; // Kita sengaja mengatur dataPengguna menjadi null, // mungkin karena data belum berhasil diambil dari server.
6. BigInt
Tipe data Number memiliki batasan presisi untuk angka yang sangat besar. Untuk mengatasi hal ini, JavaScript memperkenalkan BigInt. Tipe data ini di gunakan untuk merepresentasikan bilangan bulat dengan presisi arbitrer, artinya ia bisa menangani angka yang jauh lebih besar dari yang bisa di tangani oleh tipe data Number. Untuk membuat BigInt, tambahkan huruf n
di akhir angka.
-
Contoh:
JavaScript
const angkaSangatBesar = 9007199254740991n; const angkaLain = 1234567890123456789012345678901234567890n;
7. Symbol
Symbol adalah tipe data yang unik dan immutable (tidak bisa di ubah). Setiap kali Anda membuat Symbol, nilainya di jamin unik. Tipe data ini sering di gunakan sebagai kunci (key) properti pada object untuk menghindari konflik nama properti.
-
Contoh:
JavaScript
const id = Symbol('id'); const idLain = Symbol('id'); console.log(id === idLain); // Output: false, karena setiap Symbol unik
Baca juga: Membedah Kerumitan Dunia Database
Tipe Data Kompleks: Object
Jika tipe data primitif adalah blok bangunan, maka Object adalah struktur yang di bangun dari blok-blok tersebut. Object adalah satu-satunya tipe data kompleks dalam JavaScript. Ia di gunakan untuk menyimpan koleksi data yang saling terkait dalam bentuk pasangan key-value (kunci-nilai). Nilai dari sebuah properti object bisa berupa tipe data primitif atau bahkan object lain.
Berbeda dengan tipe data primitif, ketika Anda menyalin sebuah object ke variabel lain, Anda tidak menyalin nilainya, melainkan referensi atau alamatnya di memori.
Object Literal
Cara paling umum untuk membuat object adalah dengan menggunakan notasi object literal, yaitu menggunakan kurung kurawal {}
.
-
Contoh:
JavaScript
let mobil = { merek: "Toyota", model: "Avanza", tahun: 2023, pemilik: { nama: "Andi", usia: 30 }, nyalakanMesin: function() { console.log("Mesin menyala!"); } };
Dari contoh di atas, merek
, model
, tahun
, pemilik
, dan nyalakanMesin
adalah key, sedangkan "Toyota"
, "Avanza"
, 2023
, object {...}
, dan function() {...}
adalah value-nya. Ya, sebuah fungsi pun bisa menjadi nilai dari properti object, yang biasa kita sebut sebagai method.
Array
Secara teknis, Array adalah jenis khusus dari object di JavaScript. Array di gunakan untuk menyimpan daftar data yang berurutan. Setiap elemen di dalam array memiliki indeks numerik yang di mulai dari 0. Array dibuat menggunakan kurung siku []
.
-
Contoh:
JavaScript
let buahBuahan = ["Apel", "Mangga", "Jeruk"]; console.log(buahBuahan[0]); // Output: Apel console.log(buahBuahan[1]); // Output: Mangga
Karena array adalah object, ia juga memiliki properti dan method bawaan yang sangat berguna, seperti .length
untuk mengetahui jumlah elemen, .push()
untuk menambah elemen di akhir, dan .pop()
untuk menghapus elemen terakhir.
Kesimpulan
Memahami perbedaan antara tipe data primitif dan object, serta kegunaan masing-masing tipe data, adalah langkah fundamental untuk menjadi seorang programmer JavaScript yang andal. Pengetahuan ini akan membantu Anda dalam:
- Menghindari Bug: Banyak kesalahan umum terjadi karena operasi yang tidak sesuai dengan tipe datanya, seperti mencoba memanggil method string pada sebuah angka.
- Menulis Kode yang Efisien: Memilih tipe data yang tepat dapat memengaruhi performa dan penggunaan memori aplikasi Anda.
- Memahami Perilaku JavaScript: Mengetahui perbedaan penyalinan berdasarkan nilai (by value) pada primitif dan berdasarkan referensi (by reference) pada object akan menghindarkan Anda dari kebingungan saat memanipulasi data.
Dengan menguasai fondasi ini, Anda siap untuk membangun logika yang lebih kompleks, membuat struktur data yang canggih, dan pada akhirnya, menciptakan aplikasi web yang fungsional dan bebas dari kesalahan.