Tipe Data pada Javascript: Pengertian, Jenis, dan Contohnya

Artikel ini membahas tentang tipe data pada Javascript beserta karakteristik uniknya. Javascript memiliki 7 tipe data, yaitu: null, undefined, boolean, number, bigint, string, dan symbol (diperkenalkan di ES6). Serta satu tipe data kompleks bernama object.

Javascript merupakan salah satu loosely typed language yang membuat variabelnya tidak terikat tipe data tertentu. Namun, nilai dari variabelnya lah yang memiliki tipe data tertentu.

Dengan kata lain, variabel yang sama bisa diisi dengan nilai yang berbeda tipe datanya. Contoh:

1
2
3
4
let name // variabel name bernilai undefined
name = "kodekami.com" // nilai name bertipe data string
name = 20 // nilai name bertipe data number
name = true // nilai name bertipe data boolean

Untuk mengurangi kemungkinan membuat error, sebaiknya suatu variabel memiliki nilai yang konsisten tipe datanya.

Cek Tipe Data Javascript

Pengecekan tipe data dari nilai suatu variabel dapat dilakukan dengan menggunakan operator typeof. Contoh:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
let name
console.log(typeof name) // output: undefined

name = "kodekami.com" // nilai name bertipe data string
console.log(typeof name) // output: string

name = 20 // nilai name bertipe data number
console.log(typeof name) // output: number

name = true // nilai name bertipe data boolean
console.log(typeof name) // output: boolean

Undefined

Undefined adalah tipe data primitive yang nilainya undefined atau tidak terdefinisikan. Tipe data ini adalah merupakan tipe data default untuk variabel yang dideklarasikan tanpa nilai. Contoh:

1
2
3
let name
console.log(name) // output: undefined
console.log(typeof name) // output: undefined

Uniknya, variabel yang belum dideklarasikan juga akan bertipe undefined jika dicek oleh operator typeof, seperti contoh berikut:

1
console.log(typeof kelas) // output: undefined

Null

Null adalah tipe data primitive yang nilainya null. Perbedaan nilai null dan undefined terletak pada tipenya, null merupakan pointer untuk object yang kosong sehingga ketika dicek menggunakan operator typeof hasil outputnya yaitu object. Contoh:

1
2
let obj = null
console.log(typeof obj) // output: object

Nilai null biasanya didapatkan dari response server yang berupa JSON.

Number

Number adalah tipe data yang mewakili seluruh tipe data angka, seperti integer (bilangan bulat) dan floating point atau desimal. Contoh:

1
2
3
4
let num = 100 // integer atau bilangan bulat 100
let minsnum = -100 // integer atau bilangan bulat -100
let desim = 10.01 // desimal
let desnum = 100.0 // diintepretasikan sebagai integer 100

Rentang nilai yang bisa ditampung oleh tipe data number yakni antara -(2^53 - 1) dan 2^53 - 1 atau -9007199254740991 sampai 9007199254740991. Jika sebuah number memiliki nilai lebih dari rentang ini, maka sebaiknya menggunakan tipe data BigInt.

NaN

NaN atau Not a Number adalah nilai numeric yang spesial. Digunakan untuk memberitahu bahwa nilai dari variabel tersebut adalah invalid number atau bukan termasuk angka. Contoh:

1
console.log("a" / 2) // output NaN

NaN pada contoh di atas didapatkan karena operator matematika tidak berlaku untuk string.

Keunikan dari nilai NaN yaitu:

  1. Operasi matematika pada NaN akan menghasilkan NaN
  2. Operasi perbandingan tidak dapat dilakukan pada nilai NaN dan akan menghasilkan nilai false.

Contoh:

1
2
3
4
5
console.log(100.0 / 100) // 100/100 outputnya 1
console.log(NaN / NaN) // outputnya NaN

console.log(100.0 === 100) // output true karena 100.00 bernilai sama dengan 100
console.log(NaN == NaN) // output false

String

String pada Javascript adalah tipe data yang berhubungan dengan karakter. String terdiri dari satu atau lebih karakter yang dibatasi oleh simbol petik ' ', petik dua " ", ataupun backtick ``.

Contoh penggunaan string Javascript:

1
2
3
4
5
6
let nama = "Fahru"
console.log(nama) // output: Fahru
let website = "kodekami.com"
console.log(website) // output: kodekami.com
let belajar = `Javascript`
console.log(belajar) // output: Javascript

Dikarenakan string merupakan kumpulan dari satu atau lebih karakter, maka kita bisa mencari panjang string dan melakukan perulangan layaknya array. Seperti contoh berikut ini:

1
2
let kata = "Fahru"
console.log(kata.length) // output: 5
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
let kata = "Fahru"
for (let i = 0; i < kata.length; i++) {
  console.log(kata[i])
}
// output:
// F
// a
// h
// r
// u

Boolean

boolean adalah tipe data yang hanya memiliki dua nilai, yakni true dan false dalam huruf kecil.

Berikut ini contoh deklarasi variabel dengan tipe data boolean:

1
2
3
4
let isLearning = true
if (isLearning) {
  console.log("isLearning = true")
}

Object

Tipe data object pada Javascript merupakan tipe data kompleks yang berisi kumpulan properti (props), setiap properti berisi pasangan key:value.

Berikut ini contoh dari object kosong yang dibuat dengan menggunakan object literal:

1
let emptyObject = {}

Dan ini contoh dari object user dengan propertinya:

1
2
3
4
5
6
let user = {
  id: 1,
  firstName: "Kode",
  lastName: "Kami",
  age: 25,
}

Nama properti bisa berupa string dengan kriteria penamaan mengikuti Aturan Penamaan Identifier. Jika suatu hal membuat kita perlu menggunakan nama dengan tanda - seperti first-name, maka kita bisa menulisnya dengan menggunakan tanda kutip 'first-name'.

Jika object memiliki lebih dari sebuah properti maka pisahkan dengan tanda koma (,).

Value dari properti bisa berupa object lain, hal ini disebut dengan nested object. Contoh:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
let user = {
  firstName: "Kode",
  lastName: "Kami",
  email: "[email protected]",
  phone: "(408)-555-9999",
  address: {
    city: "Banyuwangi",
    state: "East Java",
    country: "Indonesia",
  },
}

Object user di atas terdiri dari properti firstName, lastName, email, phone, dan address.

Properti address sendiri terdiri dari sebuah object yang didalamnya terdapat properti city, state, dan country.

Cara Akses Properti Object

Terdapat dua cara untuk mengakses properti dari sebuah object. Cara pertama menggunakan format namaObject.namaProperti dan cara kedua menggunakan format array [] contohnya namaObject['namaProperti'].

Contoh:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
let user = {
  firstName: "Kode",
  lastName: "Kami",
  email: "[email protected]",
  phone: "(408)-555-9999",
  address: {
    city: "Banyuwangi",
    state: "East Java",
    country: "Indonesia",
  },
}

console.log(user.firstName) // output: Kode
console.log(user["lastName"]) // output: Kami

Jika kita ingin mengakses nested object, maka tambahkan titik ataupun akses array lagi seperti ini:

1
2
console.log(user.address.city) // output: Banyuwangi
console.log(user["address"]["country"]) // output: Indonesia

Error Akses Properti Object

Jika kita mengakses properti yang tidak ada di dalam object, maka akan menghasilkan error undefined tanpa menghentikan jalannya kode.

1
2
console.log(user.age) // output: undefined
console.log(user.email) // output: [email protected]

namun jika kita mengakses properti nested dari properti lainnya, maka akan menghasilkan error yang menghentikan jalannya kode.

1
2
console.log(user.age.minutes) // Error undefined
console.log(user.email) // kode tidak dijalankan

Method pada Object

Properti pada object tidak hanya diisi dengan tipe data primitive maupun collection (array dan object), namun juga bisa diisi dengan fungsi. Fungsi yang menjadi value dari properti object dinamakan method.

Cara pemanggilan method dari suatu object sama dengan pemanggilan properti lainnya yakni dengan format sebagai berikut: namaObject.namaMethod().

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
let user = {
  firstName: "Kode",
  lastName: "Kami",
  email: "[email protected]",
  phone: "(408)-555-9999",
  address: {
    city: "Banyuwangi",
    state: "East Java",
    country: "Indonesia",
  },
  printInfo: function() {
    console.log(this.firstName, this.lastName, this.email, this.phone)
  }
}

// panggil method print
user.printInfo()
// output: Kode Kami [email protected] (408)-555-9999

Pembahasan lebih lanjut mengenai object akan dipublikasikan pada artikel lainnya.

©2021, All Rights Reserved

Privacy Policy | DMCA | Telegram