Tipe Data dalam JavaScript
Tags: javascript, webdev
Published: 2022-01-30 19:03:40

Tipe Data adalah pembagian jenis data yang memberitahu program bagaimana sebuah data seharusnya diperlakukan.

Di dalam JavaScript, terdapat dua klasifikasi yakni **Primitif** dan **Object**.

- **Primitif**: Tipe data yang sederhana dan hanya memiliki satu jenis tipe data.
- **Object**: Merupakan tipe data yang kompleks dan dapat memuat berbagai jenis tipe data.


## String

`string` termasuk kedalam tipe data primitif. 

Cara mendeklarasikan `string` adalah sebagai berikut:

```javascript
const myString = "My string"; // String dengan tanda petik dua
const otherString = `12`; // String dengan backtick
```

Tipe data `string` umumnya digunakan untuk menyimpan data berupa kata ataupun kalimat dalam sebuah baris program.

Terkadang dapat juga menyimpan angka serta data lain yang berbasis teks.


## Number

`number` termasuk kedalam tipe data yang primitif. `number` dapat langsung ditulis menggunakan angka seperti kode berikut:

```javascript
const myNumber = 1937;
const otherNumber = 42;
```

Mungkin ada pertanyaan mengenai tipe data ini, misalnya seperti: Mengapa harus ada tipe data `number` sementara `string` juga dapat menyimpan data berupa angka?

Nah, salah satu alasannya adalah karena tipe data `string` tidak bisa melakukan operasi matematik, seperti pertambahan misalnya.

Mari kita lihat perbedaan tipe data `string` dan tipe data `number`:

```javascript
const string = "1" + "2"; // Hasilnya adalah 12
const number = 1 + 2; // Hasilnya adalah 3
```

## Undefined

`Undefined` adalah tipe data yang juga primitif. Biasanya nilai `undefined` ada ketika kita mendeklarasikan sebuah variabel namun tidak memberikannya nilai. Seperti dibawah ini:

```javascript
let a;

console.log(a) // undefined
```

Perlu diketahui disini `console.log` hanya perintah untuk menampilkan _output_. Nah, mengapa variabel di atas menggunakan `let` dan bukan `const`? 

Ini karena `const` adalah variabel yang tidak bisa di deklarasikan ulang. Kamu bisa membacanya [disini](https://dev.to/irlanvila/apa-itu-variabel-2ap6#mendeklarasikan-variabel).

```javascript
const b;

b = 12 // Uncaught SyntaxError: Missing initializer in const declaration
```

## Null

Di dalam JavaScript, `null` yang juga primitif dapat berarti nilai yang tidak ada atau tidak diketahui.

## Boolean

`boolean` merupakan tipe data yang hanya mempunyai dua nilai: `true` dan `false`. Tipe data ini biasanya digunakan untuk membangun logika dari sebuah kode program.

```javascript
if (true) {

  // jalankan ini jika true
}
else {
  // jalankan ini jika false
}
```

## Symbol

Jika ingin tipe data yang unik, kita bisa menggunakan `symbol`. Perhatikan kode berikut:

```javascript
const symbol1 = Symbol('ini adalah symbol');
```

Keyword `Symbol` di atas adalah penanda bahwa data ini akan bertipe `symbol`, sementara tulisan `'ini adalah symbol'` merupakan deskripsi dari `symbol` itu sendiri.

Kita bisa membuktikannya dengan cara seperti dibawah ini:

```javascript
const symbol2 = Symbol('ini adalah symbol');

console.log(symbol2.description) // ini adalah symbol
```

Setiap `symbol` memiliki nilai yang berbeda, meski dengan deskripsi yang sama.

```javascript
// Kedua variabel yang kita deklarasikan di awal ternyata mempunyai nilai yang berbeda
symbol1 === symbol2 // false

// Bahkan dua symbol yang dibuat secara bersamaan tetap mempunyai nilai berbeda
Symbol() === Symbol() // false
```

Seperti yang ada pada kode diatas, `symbol` dapat di deklarasikan dengan deskripsi (`Symbol('deskripsi'`) atau tanpa deskripsi (`Symbol()`).

## Object

Karena `object` mampu menyimpan berbagai jenis tipe data, maka `object` **tidak termasuk** ke dalam tipe data yang primitif. Cara membuat sebuah `object` adalah dengan mendeklarasikan variabel yang berisi tanda `{}`. Di dalam tanda `{}`, kita dapat memberikan `key` dan `value`.Perhatikan kode berikut ini:

```javascript
const objectType = { name: 'PHP', isPrimitive: true };
```

Seperti yang telah kita lihat, `object` dapat berisi `string` dan juga `boolean`. Pada kode di atas, `name` dan `isPrimitive` adalah `key` sementara `'PHP'` dan `true` adalah `value`.

## Kesimpulan

Dengan adanya berbagai jenis tipe data, membuat kita lebih leluasa dalam menjalankan alur program. Masing-masing tipe data juga mempunyai peran penting dalam sebuah bahasa pemrograman.

Lalu mengenai klasifikasi, bagaimana cara kita memastikan bahwa `string` adalah data yang benar-benar bertipe `string`, atau `undefined` adalah data yang benar-benar bertipe `undefined`? Darimanakah kita mengetahui hal tersebut?

Nah, semua pertanyaan ini akan terjawab pada artikel berikutnya... 
_Stay tune!_