Apa itu variabel?

Variabel adalah container atau wadah yang digunakan untuk menyimpan data atau nilai.

Identifiers

Setiap variabel di Javascript harus mempunyai nama yang unik, artinya tidak boleh sama dengan dengan nama variabel yang lain. Nama variabel yang unik ini disebut juga identifiers atau pengindifikasi. Penamaan variabel bisa secara singkat (seperti x dan y) atau nama yang lebih deskriptif (seperti age, firstName, lastName, dll).

Adapun aturan penamaan variabel di javascript, diantaranya:

  • Dapat berupa huruf, angka, underscore (_) atau tanda dollar ($)
  • Harus diawali dengan huruf
  • Nama variabel harus memperhatikan huruf besar kecil (case sensitif). Variabel x tidak sama dengan variabel X. 
  • Nama variabel tidak boleh mengandung spasi.
  • Javascript keyword tidak bisa digunakan sebagai nama variabel


Deklarasi Variabel

Deklarasi variabel adalah proses membuat variabel di JavaScript. Ada tiga cara untuk mendeklarasikan variabel, yaitu:

  1. Menggunakan var
  2. Menggunakan let
  3. Menggunakan const

Mari kita mulai.

Sebelum diperkenalkan fitur-fitur ES6 dalam javascript, untuk mendeklarasikan sebuah variabel yakni menggunakan keyword var.

Saat kita mendeklarasikan variabel, artinya kita mendaftarkan variabel ke dalam lingkup yang sesuai, kemudian kita melakukan inisialisasi yang berarti kita meminta komputer untuk menyiapkan ruang kosong di memori untuk variabel. 

Suatu variabel tidak mempunyai nilai setelah dideklarasikan. Untuk memberikan nilai kepada suatu variabel, caranya dengan menggunakan operator assignment ( = ) seperti berikut.
Saat kita memberikan nilai kepada suatu variabel, artinya kita memasukkan data/nilai ke dalam ruang memori komputer.

Deklarasi variabel juga bisa digabung dengan proses pemberian nilai dalam satu perintah (statement) seperti berikut.

Pada kode di atas, carName adalah variabel yang menyimpan nilai volvo.

Cara mendeklarasikan variabel dengan menggunakan keyword var, let, atau const tidak ada perbedaan. Perbedaan dari ketiganya adalah pada perilaku variabelnya.

Perbedaan var, let, dan const

Banyaknya kata kunci yang bisa digunakan untuk membuat variabel tentunya bukan tanpa alasan, masing-masing memiliki perilaku yang berbeda-beda.

Singkatnya, inilah perbedaannya:


Perilaku variabel menggunakan keyword var

Variabel yang dibuat menggunakan keyword var memiliki perilaku sebagai berikut:
  • Variabel dapat dideklarasikan ulang
Variabel yang dibuat dengan keyword var dapat dideklarasikan ulang dengan nama yang sama, namun nilai variabel sebelumnya akan ditimpa.


Dari kode di atas, variabel student dideklarasikan sebanyak dua kali. Saat pertama kali dideklarasikan, nilai variabel student adalah Daisy, lalu dideklarasikan ulang dengan nilai Lily, maka nilai variabel student yang ditampilkan di console javascript adalah Lily.

  • Nilai variabel dapat diubah
Variabel yang dideklarasikan menggunakan kata kunci var dapat diubah nilainya, entah itu menggunakan data dengan tipe yang sama maupun berbeda.


Dari kode di atas, variabel age dideklarasikan sebanyak dua kali. Saat pertama kali dideklarasikan, nilai variabel age adalah 19 (tipe datanya number), lalu dideklarasikan ulang dengan nilai Sembilan belas (tipe datanya string), maka nilai variabel age yang ditampilkan di console javascript adalah Sembilan belas.

  • Function scope
Kode yang kita tulis dikatakan berada di dalam function scope (lingkup fungsi) jika berada di antara { dan } sebuah fungsi.

Ketika variabel var dideklarasikan di dalam lingkup fungsi, variabel tersebut hanya bisa digunakan di dalam lingkup fungsi tersebut, tidak bisa digunakan di luar fungsi.
 

Dari kode di atas, variabel name dengan nilai Daisy dideklarasikan di dalam sebuah function yakni function Student. Saat kita akan menampilkan nilai dari variabel name ke dalam console javascript, hasilnya akan eror karena perintah console.log(name) berada di luar function Student.

  • Hositing (Diangkat)
Hoisting adalah istilah yang digunakan untuk menggambarkan tentang bagaimana konteks eksekusi bekerja di JavaScript.

Sebelum eksekusi, JavaScript akan mencari variabel var dan function declaration terlebih dahulu, kemudian menginisialisasinya dengan nilai undefined.

Mari kita lihat contoh kode di bawah:


Pada kode di atas, hasilnya adalah undefined. Padahal secara logika harusnya kita tidak bisa menggunakan variabel name (eror) karena variabel name dideklarasikan setelah console.log(name);

Hoisting javascript hanya berlaku pada pendeklarasian saja, bukan pada inisialisasi. Jika sebuah variable dideklarasikan dan di inisialisasi setelah digunakan, maka hasilnya akan undefined. Inilah yang dimaksud dengan istilah hoisting (diangkat).

Perilaku variabel menggunakan keyword let

Penggunaan let diperkenalkan javascript pada versi ES6(2015). Kata kunci let biasanya digunakan untuk membuat variabel yang nilainya dapat diubah. Variabel yang dibuat menggunakan keyword let memiliki perilaku sebagai berikut:
  • Nilai variabel dapat diubah
Sama seperti var, variabel yang dideklarasikan menggunakan let nilainya dapat diubah menggunakan data dengan tipe yang sama maupun berbeda.


  • Block Scope
Berbeda dengan var, variabel let yang dideklarasikan di dalam block scope hanya bisa digunakan di dalamnya, tidak bisa digunakan dari di luar block scope.

Variabel dikatakan berada di dalam block scope jika berada di antara { dan } conditional statement (if, else, else if), perulangan (for, while, do while), switch statement, dan sebagainya selain lingkup fungsi atau global.


  • Function Scope
Sama seperti var, ketika variabel let dideklarasikan di dalam lingkup fungsi, variabel tersebut hanya bisa digunakan di dalam lingkup fungsi tersebut, tidak bisa digunakan di luar fungsi.


Perilaku variabel menggunakan keyword const

Sama seperti let, namun nilai variabel const tidak dapat diubah. Namun terdapat pengecualian, yaitu variabel yang tipe datanya array atau object, nilai elemen atau propertinya bisa diubah meskipun menggunakan keyword const.

Variabel yang dibuat menggunakan keyword const memiliki perilaku sebagai berikut:
  • Block Scope
Sama seperti let, variabel const yang dideklarasikan di dalam block scope hanya bisa diakses di dalamnya, tidak bisa diakses di luar.


  • Function Scope
Sama seperti var dan let, ketika variabel const dideklarasikan di dalam lingkup fungsi, variabel tersebut hanya bisa digunakan di dalam lingkup fungsi tersebut, tidak bisa digunakan di luar fungsi.


Selesai.

Referensi:

https://kodealgo.com/javascript/variabel/
https://codelapan.com/post/variabel-tipe-data-javascript
https://nextgen.co.id/variabel-javascript/

Sumber gambar: https://itchief.ru/javascript/statements