Variabel dan Tipe Data Javascript

Dalam bahasa pemrograman, variabel digunakan sebagai tempat penyimpanan data sementara di memori komputer. Variabel berfungsi sebagai penanda atau label untuk lokasi memori tertentu, di mana data disimpan. Dengan kata lain, kita menyimpan data di suatu lokasi dalam memori dan memberikan nama variabel sebagai label untuk mengakses data tersebut.

Bayangkan kamu memiliki rak di gudang yang berisi kontainer-kontainer dengan barang di dalamnya, dan setiap kontainer diberi label sesuai dengan isinya. Kontainer berlabel ini berperan sebagai variabel, sedangkan rak gudang berfungsi sebagai alokasi memori.

Kode ini mendeklarasikan variabel bernama firstName dan memberinya nilai string "Bob". Ketika kode ini dieksekusi, variabel firstName dapat digunakan untuk merujuk ke nilai "Bob".

let firstName = "Bob"

"Bob" pada kode di atas merupakan nilai yang disimpan dalam variabel dan akan diproses dalam program. Nilai ini memiliki beragam jenis kategori yang biasa disebut dengan tipe data. Terdapat dua kategori tipe data: tipe data primitif dan tipe data referensi.

Tipe Data Primitif

Tipe data dasar yang tidak dapat diubah (immutable) dan ketika dibuat, variabel tersebut akan menyimpan nilai secara langsung. Tipe data yang termasuk dalam tipe data primitif adalah berikut:

  • String
  • Number
  • Boolean
  • Undefined
  • Null

Tipe Data Referensi

Tipe data yang dapat diubah (mutable) dan menyimpan referensi (alamat memori) ke nilai yang sebenarnya, bukan nilai itu sendiri. Tipe data yang termasuk dalam tipe data referensi adalah berikut:

  • Objek
  • Array
  • String: tipe data untuk teks atau karakter
    let fullName = "Bob";
  • Number: tipe data untuk untuk angka, baik bilangan bulat (integer) atau desimal (float)
    let age = 24;
  • Boolean: tipe data untuk logika yang hanya memiliki nilai true atau false
    let isUnderAge = false;
  • Undefined: tipe data untuk variabel yang belum diberi nilai
    let address;
  • Null: tipe data yang secara eksplisit merepresentasikan tidak ada nilai atau kosong
    let phoneNumber = null
  • Objek: kumpulan pasangan kunci-nilai (key-value pair), yang bisa menyimpan berbagai tipe data
    let person = {name = "Jon", age = "30"}
  • Array: kumpulan data yang disimpan dalam urutan tertentu, di mana setiap elemen dapat diakses menggunakan indeks numerik
    let numbers = [1,2,3,4,5]

Simulasi Data Primitif

let x = 10; // Tipe data primitif: Number
let y = x;  // Salinan nilai x ke y

console.log(x); // Output: 10
console.log(y); // Output: 10

x = 20; // Mengubah x, ini membuat salinan baru
console.log(x); // Output: 20
console.log(y); // Output: 10 (y tetap tidak berubah)

Ketika kita mengubah nilai x menjadi 20, y tetap 10. Ini menunjukkan bahwa y menyimpan salinan nilai dari x, bukan referensi ke nilai x.

Simulasi Tipe Data Referensi

let obj1 = { value: 10 };
let obj2 = obj1; // obj2 merujuk ke obj1

console.log(obj1.value); // Output: 10
console.log(obj2.value); // Output: 10

obj1.value = 20; // Mengubah nilai obj1

console.log(obj1.value); // Output: 20
console.log(obj2.value); // Output: 20 (obj2 juga berubah)

Di sini, obj1 adalah objek dengan properti value. Ketika kita menetapkan obj2 ke obj1, keduanya merujuk ke objek yang sama. Ketika kita mengubah value di obj1, obj2 juga mencerminkan perubahan tersebut karena keduanya merujuk ke objek yang sama.