Apa itu tipe data pada javascript?

Apa itu tipe data pada javascript?

Hiu Gergaji di Danau Sentani. Sumber: Flickr.

Kenal JavaScript merupakan salah satu seri tentang JavaScript. Seri ini memperkenalkan hal-hal dasar seputar JavaScript. Setiap minggu akan ada 1–2 artikel baru pada seri ini.

Sebelumnya di ‘Kenal JavaScript’

Kita sudah mempelajari variabel mulai dari cara deklarasi, memberi nilai, dan reassigning. Selain itu yang tidak kalah penting adalah pemberian nama variabel. Ada 6 aturan yang perlu dipahami dan diikuti dalam memberikan nama variabel di JavaScript.

Sebelumnya: Kenal JavaScript: Variable

Tipe Data di JavaScript

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

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 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.

Bukankah kita bisa mengubah nilai dari suatu variabel yang sudah berisi, misalkan, string?

Yang terjadi sebetulnya adalah JavaScript membuat sebuah nilai baru string tadi kemudian diassign ke variabel yang dituju. Jika variabel sebelumnya memiliki nilai, maka nilai tersebut akan digantikan oleh nilai baru tadi. Variabel akan menunjuk ke nilai baru tersebut.

Apa itu tipe data pada javascript?

Hmm... sepertinya string terlihat seperti mutable… Pada kenyataannya string merupakan tipe data primitif, immutable

Correct me if i’m wrong, cmiiw.

Apa itu property(s)?

Tipe data primitf tidak memiliki property. Hanya Object yang memiliki property. Secara sederhana, property merupakan variabel yang yang dimiliki oleh object. Property pada object merupakan pasangan key dan value dan tidak berbeda dengan variabel biasa. Perbedaannya, property pasti milik sebuah object. Saya akan bahas lebih dalam tentang property pada bagian Object.

Sebelumnya saya akan memperkenalkan sebuah operator bernama typeof. Saya sebetulnya ingin membahas typeof bersama operator lain pada story selanjutnya namun saya rasa mengenalkan typeof pada story ini lebih ‘nyambung’.

typeof

typeof merupakan operator dalam JavaScript. Operator typeof akan mengembalikan string yang mengindikasikan tipe data operand yang dievaluasi. Operand merupakan parameter dari operator typeof. Operand disini merupakan expression yang merepresentasikan data primitif maupun data complex, object atau function, yang ingin dievaluasi tipe datanya.

typeof operand

Apa itu tipe data pada javascript?

Contoh penggunaan operator typeof

Saya akan membahas lebih dalam hasil dari typeof di masing-masing pembahasan tipe data dibawah. Khusus untuk operator typeof sendiri akan saya bahas pada story operator. Mari membahas keenam tipe data satu per satu.

string

Domain value: semua kemungkinan karakter/kata/kalimat diapit diantara karakter kutip satu atau kutip dua

Setiap karakter yang dibungkus dengan kutip satu (‘) atau kutip dua (“) dianggap sebagai string oleh JavaScript.

Apa itu tipe data pada javascript?

Kedua contoh diatas mengembalikan ‘string’ sebagai tipe data jika dicek dengan typeof

Penggunaan kutip satu atau dua biasanya merupakan preferensi developer. Saya sendiri terbiasa menggunakan kutip satu karena lebih ringkas tanpa perlu menekan tombol shift setiap kali mengetik. Saya sarankan Anda untuk memilih preferensi dan konsisten.

Walaupun bisa saling menggantikan terkadang untuk membentuk suatu kalimat kita membutuhkan kombinasi keduanya. Misalkan untuk kalimat yang mengandung karakter kutip.

Apa itu tipe data pada javascript?

Menggunakan kombinasi dari kutip satu dan kutip dua untuk menuliskan kalimat kompleks

Bagaimana jika saya hanya ingin menggunakan kutip satu saja?

Anda bisa menggunakan backslash (\) untuk escape character.

Apa itu tipe data pada javascript?

Gunakan backslash jika ingin menggunakan kutip lagi didalam string

JavaScript mengubah backslash dan special character setelahnya menjadi string. Berikut beberapa karakter special yang perlu menggunakan backslash dalam penggunaannya di JavaScript:

  • \’ (single quote)
  • \” (double quote)
  • \\ (backslash)
  • \n (newline)

Karakter special diatas merupakan yang paling sering digunakan di JavaScript.

number

Domain value: (-(2^53 - 1), 2^53 - 1), NaN, Infinity, -Infinity

Tipe data ‘number’ pada JavaScript merupakan salah satu tipe data yang unik, bahkan jika dibandingkan dari tipe data serupa pada bahasa pemrograman yang lain.

JavaScript hanya memiliki satu tipe data angka, yaitu number. Tidak ada integer, float, short, long seperti pada bahasa pemrograman lain. Hanya ada number. Angka pada tipe data number di JavaScript disimpan dalam bentuk 64-bit double precision floating point.

Apa itu tipe data pada javascript?

64-bit double precision floating point. Sumber: WIkimedia

Presisi dari tipe angka di JavaScript terjaga sampai 15 angka, tanpa decimal dan exponen. Setelah 15 angka, JavaScript tidak menunjukkan representasi yang benar terhadap angka tersebut.

Apa itu tipe data pada javascript?

Angka pada JavaScript tidak akurat diatas 15 digit

Akurasi angka pada JavaScript hanya sampai angka 9007199254740992 dan -9007199254740992.

Mengapa hal ini bisa terjadi? Hal ini disebabkan oleh limitasi format dari 64-bit floating point. Jika Anda tertarik untuk mengetahui penyebabnya lebih dalam Anda bisa merujuk pada link berikut https://stackoverflow.com/a/1379973/3212046. JavaScript tetap bisa menampilkan angka yang lebih besar dari 9007199254740992 hanya saja karena akurasi yang berkurang ada angka yang ‘dibulatkan’.

Apa itu tipe data pada javascript?

Bagaimana jika saya ingin menggunakan angka yang sangat besar? Pada dasarnya, tidak bisa karena tidak akurat maupun tidak dapat dijangkau. Namun Anda bisa menggunakan library pendukung. Salah satu yang paling populer adalah BigInteger.js (https://github.com/peterolson/BigInteger.js) dengan BigInteger.js Anda bisa menggunakan angka yang sangat besar untuk operasi aritmatika sekalipun.

Walaupun hanya memiliki tipe data number untuk merepresentasikan angka, JavaScript dapat menyimpan tidak hanya representasi decimal saja. JavaScript dapat menyimpan representasi hexadecimal dan octal juga.

Representasi Bilangan Bulat (Basis 10)

Representasi decimal pada JavaScript seperti pada umumnya representasi decimal. Domain angka dari 0–9. Jika ada bilangan decimal dibelakang koma maka dipisahkan dengan karakter titik (.), tidak bisa menggunakan koma.

Representasi Bilangan Octal (Basis 8)

Untuk representasi bilangan octal, bilangan harus dimulai dengan 0 (nol) kemudian karakter selanjutnya merupakan representasi bilangan octal tersebut.

Representasi Bilangan Hexadecimal (Basis 16)

Untuk reprsentasi bilangan hexadecimal, bilangan harus dimulai dengan 0x (nol dan x) kemudian karakter selanjutnya merupakan representasi bilangan hexadecimal tersebut.

Apa itu tipe data pada javascript?

Representasi bilangan

Ketika variabel yang mengandung nilai hexadecimal atau octal dicetak, maka ouput-nya akan dikonversi menjadi decimal basis 10.

Representasi Exponen

JavaScript dapat menyimpan representasi angka dalam bentuk exponent, baik negatif maupun positif.

Apa itu tipe data pada javascript?

Bilangan dalam format exponent

Jika ingin merepresentasikan bilangan yang sangat besar Anda dapat menggunakan eksponen

Hal unik lainnya dari tipe data number di JavaScript adalah adanya nilai simbolis. Nilai simbolis ini merepresentasikan nilai yang tidak bisa direpresentasikan oleh angka di JavaScript atau nilai yang mustahil. Nilai simbolis ini ada tiga, yaitu, Infinity, -Infinity, dan NaN.

Infinity dan -Infinity

Nilai Infinity dan -Infinity merepresentasikan nilai yang berada diluar jangkauan nilai yang dapat direpresentasikan JavaScript. Nilai Infinity dapat dihasilkan dengan melakukan beberapa operasi berikut:

  • Pembagian sembarang angka dengan angka nol, +0 atau -0
  • Penjumlahan nilai Infinity dengan angka sembarang, dan sebaliknya
  • Pengurangan nilai Infinity dengan angka sembarang, dan sebaliknya
  • Perkalian nilai Infinity dengan angka sembarang, termasuk dengan Infinity
  • Pembagian nilai Infinity dengan angka sembarang
  • Operasi matematika apapun yang menghasilkan angka diluar jangkauan

Apa itu tipe data pada javascript?

Beberapa operasi yang menhasilkan Infinity/-Infinity

*+0 (positif nol) sama saja dengan 0 (nol), 0 (nol) sebenarnya merupakan alias dari +0 (positif nol)

NaN

NaN is Not-a-Number, but it is a number in JavaScript

Nilai NaN digunakan untuk merepresentasikan sebuah nilai numerik yang tidak mungkin atau ilegal. Walaupun NaN merupakan singkatan dari Not a Number, NaN sediri termasuk tipe data number (?).

Apa itu tipe data pada javascript?

Wh..??

Operasi pada JavaScript yang dapat menghasilkan nilai NaN, yaitu misalkan operasi angka dengan string yang bukan angka, kecuali (+) karena dianggap konkatenasi.

Apa itu tipe data pada javascript?

Operasi aritmatika yang menghasilkan NaN

String yang bukan angka? Memangnya kenapa kalau string angka?

Contoh ini mungkin agak mengejutkan tapi ini kenyataan.

Apa itu tipe data pada javascript?

WH..??!! (again)

Walaupun agak mengejutkan tetapi string angka di JavaScript dapat bertindak seperti layaknya angka, dapat dilakukan operasi aritmatika terhadapnya. Bahkan antara string angka dan string angka pun dapat dilakukan operasi aritmatika, seperti pada contoh terakhir diatas.

Apa yang sebetulnya terjadi?

Contoh diatas merupakan salah satu efek dari automatic type conversion pada JavaScript. Ketika Anda mencoba untuk melakukan operasi aritmatika pada nilai yang bukan angka, JavaScript akan mencoba untuk melakukan konversi nilai tersebut kedalam angka yang ‘sesuai’.

Conversion akan saya bahas lebih mendetail pada story lainnya.

Mendeteksi NaN

Operasi aritmatika yang menghasilkan NaN bisa membuat kita repot karena mungkin kita tidak mengekspektasikan hal tersebut terjadi dan mungkin menimbulkan bug. JavaScript menyediakan function isNaN() untuk mendeteksi apakah parameter yang diberikan merupakan NaN atau bukan.

Apa itu tipe data pada javascript?

Mendeteksi NaN dengan fungsi isNaN()

Function isNaN() akan mengembalikan true jika parameter yang diberikan bukan angka dan akan mengembalikan false jika parameter yang diberikan merupakan angka.

Mengecek number dengan typeof

Berikut contoh penggunaan typeof untuk mengecek beberapa nilai dari number.

Apa itu tipe data pada javascript?

Menggunakan typeof dengan operand number

Pada contoh terakhir operator typeof mengembalikan NaN karena operasi typeof 12 dilakukan terlebih dahulu baru kemudian dibagi 4. Sehingga ‘number’/4 yang pastinya menghasilkan NaN. Bungkus operasi matematika dengan kurung terlebih dahulu sebelum dicek dengan typeof.

Apa itu tipe data di JavaScript?

Tipe data adalah jenis-jenis data yang bisa kita simpan di dalam variabel. Ada beberapa tipe data dalam pemrograman Javascript: String (teks) Integer atau Number (bilangan bulat)

Apa yang dimaksud dengan tipe data?

Dalam ilmu terter dan pemrograman komputer, tipe data ialah klasifikasi data yang mengenalkan kompilator atau penerjemah bagaimana programmer bermaksud untuk menggunakan data. Sebagian besar bahasa pemrograman mendukung tipe data dasar akan bilangan integer, bilangan titik mengambang, karakter dan boolean.

Berapa banyak tipe data dari JavaScript?

Jenis Tipe Data Javascript.
Number..
String..
3. Boolean..
4. Null..
Undefined..
6. Symbol..
7. NaN..
8. Object..

Apa saja jenis tipe data di java?

Jenis-jenis data di bawah ini sering disebut sebagai tipe data dasar atau data primitif pada Java, di antaranya sebagai berikut:.
Integer. Tipe data pertama adalah Integer yang merupakan tipe data numerik yang mewakili seluruh bilangan bulat. ... .
2. Floating Point. ... .
3. Char. ... .
4. Boolean..