Tipe Data JavaScript

Dalam tutorial ini, Anda akan mempelajari tentang tipe data JavaScript beserta karakteristik uniknya.

JavaScript memiliki tipe data primitif berikut:

  1. null
  2. undefined
  3. boolean
  4. number
  5. string
  6. symbol – tersedia mulai dari ES2015
  7. bigint – tersedia mulai dari ES2020 dan tipe data kompleks berupa objek.

Tipe Data JavaScript

JavaScript adalah bahasa yang tipe datanya dinamis, artinya sebuah variabel tidak terkait dengan tipe tertentu. Dengan kata lain, variabel dapat menyimpan nilai dengan tipe yang berbeda. Contohnya:

let counter = 120; // counter adalah number
counter = false;   // counter kini adalah boolean
counter = "foo";   // counter kini adalah string

Untuk mengetahui tipe saat ini dari nilai yang disimpan dalam variabel, gunakan operator typeof:

let counter = 120;
console.log(typeof(counter)); // "number"

counter = false; 
console.log(typeof(counter)); // "boolean"

counter = "Hi";
console.log(typeof(counter)); // "string"

Tipe undefined

Tipe undefined adalah tipe primitif yang hanya memiliki satu nilai yaitu undefined. Secara default, ketika sebuah variabel dideklarasikan tetapi tidak diinisialisasi, nilainya menjadi undefined.

let counter;
console.log(counter);        // undefined
console.log(typeof counter); // undefined

Penting untuk dicatat bahwa operator typeof juga mengembalikan undefined ketika digunakan pada variabel yang belum dideklarasikan:

console.log(typeof undeclaredVar); // undefined

Tipe null

Tipe null adalah tipe data primitif kedua yang juga hanya memiliki satu nilai yaitu null.

let obj = null;
console.log(typeof obj); // object

Penggunaan typeof null mengembalikan object adalah bug yang dikenal dalam JavaScript. Proposal untuk memperbaikinya telah diajukan tetapi ditolak.

JavaScript mendefinisikan bahwa null sama dengan undefined seperti berikut:

console.log(null == undefined); // true

Tipe number

JavaScript menggunakan tipe number untuk merepresentasikan angka, baik itu bilangan bulat maupun pecahan.

let num = 100;

Untuk merepresentasikan angka pecahan, gunakan titik desimal diikuti oleh setidaknya satu angka:

let price = 12.5; 
let discount = 0.05;

JavaScript secara otomatis mengonversi angka pecahan menjadi bilangan bulat jika angka tersebut terlihat sebagai bilangan bulat.

let price = 200.00; // diinterpretasikan sebagai bilangan bulat 200

Untuk mendapatkan rentang tipe number, gunakan Number.MIN_VALUE dan Number.MAX_VALUE.

console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
console.log(Number.MIN_VALUE); // 5e-324

Juga, Anda dapat menggunakan Infinity dan -Infinity untuk merepresentasikan angka tak terbatas.

console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinity
console.log(-Number.MAX_VALUE - Number.MAX_VALUE); // -Infinity

NaN

NaN singkatan dari Not a Number. Ini merupakan nilai numerik khusus yang menunjukkan angka yang tidak valid.

console.log('a'/2); // NaN;

NaN memiliki dua karakteristik khusus:

  1. Setiap operasi dengan NaN mengembalikan NaN.
  2. NaN tidak sama dengan nilai apa pun, termasuk dirinya sendiri.
console.log(NaN/2); // NaN
console.log(NaN == NaN); // false

Tipe string

Dalam JavaScript, string adalah urutan nol atau lebih karakter. String literal dimulai dan diakhiri dengan tanda kutip tunggal (‘) atau tanda kutip ganda (“).

let greeting = 'Hi';
let message  = "Bye";

Jika ingin menggunakan tanda kutip tunggal atau ganda dalam string literal, gunakan backslash untuk melepaskannya.

let message = 'I\'m also a valid string'; // menggunakan \ untuk melibatkan tanda kutip tunggal (')

String dalam JavaScript bersifat immutable, artinya tidak dapat diubah setelah dibuat. Namun, Anda dapat membuat string baru dari string yang sudah ada.

let str = 'JavaScript';
str = str + ' String';

Tipe boolean

Tipe boolean memiliki dua nilai literal: true dan false dalam huruf kecil.

let inProgress = true;
let completed = false;

console.log(typeof completed); // boolean

JavaScript memungkinkan konversi nilai dari tipe lain menjadi nilai boolean true atau false.

console.log(Boolean('Hi'));// true
console.log(Boolean(''));  // false

console.log(Boolean(20));  // true
console.log(Boolean(Infinity));  // true
console.log(Boolean(0));  // false

console.log(Boolean({foo: 100}));  // true pada objek yang tidak kosong
console.log(Boolean(null)); // false

Tipe symbol

JavaScript menambahkan tipe primitif dalam ES6: simbol. Berbeda dari tipe primitif lainnya, tipe simbol tidak memiliki bentuk literal.

Untuk membuat simbol, panggil fungsi Symbol sebagai berikut:

let s1 = Symbol();

Fungsi Symbol menciptakan nilai unik baru setiap kali Anda memanggilnya.

console.log(Symbol() == Symbol()); // false

Perlu dicatat bahwa Anda akan mempelajari lebih lanjut tentang simbol dalam tutorial simbol.

Tipe bigint

Tipe bigint mewakili angka bulat yang lebih besar dari 2^53 – 1. Untuk membentuk literal angka bigint, tambahkan huruf n di akhir angka:

let pageView = 9007199254740991n;
console.log(typeof(pageView)); // 'bigint'

Anda akan mempelajari lebih lanjut tentang tipe bigint di sini.

Tipe object

Dalam JavaScript, objek adalah kumpulan properti, di mana setiap properti didefinisikan sebagai pasangan kunci-nilai.

Contoh berikut mendefinisikan objek kosong menggunakan sintaks objek literal:

let emptyObject = {};

Contoh berikut mendefinisikan objek person dengan dua properti: firstName dan lastName.

let person = {
    firstName: 'John',
    lastName: 'Doe'
};

Nama properti objek dapat berupa string apa pun. Jika nama properti objek tidak valid sebagai identifier, Anda dapat menggunakan tanda kutip di sekitar nama properti tersebut, misalnya, jika objek person memiliki properti first-name, Anda harus menempatkannya dalam tanda kutip seperti “first-name”.

Sebuah properti objek dapat berisi objek itu sendiri. Sebagai contoh:

let contact = {
    firstName: 'John',
    lastName: 'Doe',
    email: 'john.doe@example.com',
    phone: '(408)-555-9999',
    address: {
        building: '4000',
        street: 'North 1st street',
        city: 'San Jose',
        state: 'CA',
        country: 'USA'
    }
};

Objek contact memiliki properti firstName, lastName, email, phone, dan address. Properti address sendiri berisi objek yang memiliki properti building, street, city, state, dan country.

Untuk mengakses properti objek, Anda dapat menggunakan notasi titik (.) atau notasi mirip array ([]). Contoh berikut menggunakan notasi titik (.) untuk mengakses properti firstName dan lastName dari objek contact.

console.log(contact.firstName);
console.log(contact.lastName);

Jika Anda merujuk pada properti yang tidak ada, Anda akan mendapatkan nilai undefined.

console.log(contact.age); // undefined

Contoh berikut menggunakan notasi mirip array untuk mengakses properti email dan phone dari objek contact.

console.log(contact['phone']); // '(408)-555-9999'
console.log(contact['email']); // 'john.doe@example.com'

Ringkasan

JavaScript memiliki tipe data primitif: number, string, boolean, null, undefined, symbol, dan bigint, serta tipe kompleks: object. Mempelajari pemahaman mendalam tentang tipe-tipe data ini akan memberikan dasar yang kuat untuk mengembangkan kode JavaScript yang efisien dan andal. Terus eksplorasi dan praktikkan penggunaan tipe data ini dalam skenario-skenario berbeda untuk memperdalam pemahaman Anda.

Share jika bermanfaat:
Abdan Zam Zam Ramadhan
Abdan Zam Zam Ramadhan

Seorang penggiat teknologi yang menfokuskan diri pada pengembangan aplikasi (web & android), DevOps, Data Tech, Natural Language Processing (NLP) dan ChatBot berbasis NLP. Sedang mendalami di Node.js dan ekosistemnya. Aktif sebagai konstributor library JS (open source) di NPM. Menulis berbagai artikel tips dan tutorial pemrograman di LampungDev.com.

Articles: 32