# Tipe data

Salah satu hal paling dasar yang perlu dipelajari dari suatu bahasa pemrograman adalah tipe data. Beberapa tipe data yang umum kita ketahui di beberapa bahasa pemrograman, yaitu *number, string, boolean, array,* dll. JavaScript memiliki sifat *loosely types* sehingga dalam mendeklarasikan variable kita tidak perlu mendeklarasikan tipe datanya. Tipe data akan otomatis dideteksi oleh JavaScript saat variabel tersebut diberikan suatu nilai. Oleh karena itu, pada JavaScript suatu variabel yang sudah dideklarasikan namun belum diberikan nilai memiliki **tipe data** **undefined** karena belum didefinisikan/diberikan nilai.

Ada **6 tipe data di JavaScript (ES5)**. Kelima diantaranya merupakan tipe data primitif dan satu non-primitif, yaitu:

* ‘string’
* ‘number’
* ‘boolean’
* ‘null’
* ‘undefined’
* ‘object’ (non-primitif)

### Primitif vs Non-Primitif <a href="#id-968f" id="id-968f"></a>

**Apa perbedaan tipe data primitif dan non-primitif?**

Perbedaan paling mendasar antara keduanya pada JavaScript adalah tipe data primitif memiliki sifat *immutable* dan tidak memiliki *properties* sementara tipe data non-primitif bersifat *mutable* dan memiliki *properties.*

**Apa itu sifat&#x20;*****immutable*****?**

Sebuah tipe data bersifat *immutable, well,* karena sebuah nilai yang termasuk tipe data tersebut tidak bisa *mutate,* tidak bisa bermutasi atau tidak bisa berubah. Dalam artian, setelah pertama kali diinisiasi nilai tersebut tidak bisa diubah lagi dalam memori. Nilai yang tersimpan dalam memori tersebut sejak inisiasi akan tetap sama seperti pertama kali
