Konversi Tipe Data Primitif

Biasanya, operator dan fungsi pada Javascript akan mengkonversi nilai ke tipe data primitif secara otomatis, sebagai contoh console.log akan mengkonversi nilai yang dimasukkan menjadi string. Atau operasi matematika seperti pengurangan, pembagian, perkalian, kecuali penambahan juga akan mengkonversi tipe data menjadi number.

1
2
3
4
console.log('1'); // tampil 1
console.log(2); // tampil 2, 2 (number) dikonversi menjadi string
const temp = 2 + '1'; // hasilnya 21, 2 (number) dikonversi menjadi string
const temp1 = 2 - '1'; // hasilnya 1, '1' (string) dikonversi menjadi number

Konversi Tipe Data ke String

Konversi tipe data ke string biasanya terjadi secara otomatis pada method yang membutuhkan nilai string, sebagai contoh console.log dan alert.

Kita juga bisa mengkonversi tipe data ke string dengan menggunakan sintaks String(value), contoh

1
2
3
4
5
let booleanValue = true;
console.log(typeof booleanValue); // boolean

booleanValue = String(booleanValue);
console.log(typeof booleanValue); // string

Hasil dari konversi ke string biasanya tidak terlalu jauh dari nilai aslinya, seperti false menjadi 'false', null menjadi 'null', dll.

Konversi Tipe Data ke Number

Konversi tipe data ke number terjadi otomatis jika terdapat operator matematika.

1
2
3
4
5
6
7
8
let str = '123';
console.log(typeof str); // string

str = +str;
console.log(typeof str); // number

let substraction = str - '100';
console.log(substraction); // 23

Untuk operator tambah + jika dilakukan pada penjumlahan dengan salah satu datanya bertipe string, maka hasilnya bertipe data string.

1
2
3
4
5
let str1 = '123';
let str2 = '456';
let num1 = 789;
let addAll = str1+str2+num1; // 123456789
console.log(typeof addAll); // string

Konversi tipe data number bisa juga dilakukan menggunakan sintaks Number(value), biasanya konversi ini dilakukan pada input seperti form karena tipe data yang didapatkan dari input adalah string.

1
2
3
let input1 = '123';
let converToInt = Number(input1);
console.log(converToInt); // 123

parseInt()

Cara untuk mendapatkan nilai number integer (bilangan bulat) dari string bisa dilakukan dengan menggunakan sintaks parseInt(stringValue, radix).

  • stringValue adalah nilai string yang akan diekstrak ke number,
  • Sedangkan radix adalah basis dari number, untuk konversi string angka ke tipe integer gunakan radix 10 karena basis angkanya sebanyak 10 (terdiri dari 0 sampai 9).
1
2
3
4
5
6
7
8
9
let parse1 = parseInt("10", 10);
console.log(parse1); // 10
console.log(parseInt("10.00", 10)); // 10
console.log(parseInt("10.33", 10)); // 10
console.log(parseInt("34 45 66", 10)); // 34
console.log(parseInt("   60   ", 10)); // 60
console.log(parseInt("40 years", 10)); // 40
console.log(parseInt("year40", 10)); // NaN
console.log(parseInt("He was 40", 10)); // NaN

Dari contoh di atas, dapat diketahui bahwa sintaks parseInt hanya mengkonversi string ke number integer jika terdapat angka di awal. Selainnya akan menghasilkan NaN (Not a Number/bukan angka).

parseFloat()

Jika parseInt digunakan untuk mendapatkan nilai number integer (bilangan bulat) saja, maka parseFloat dapat mengkonversi string menjadi number float atau desimal.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
let parse1 = parseFloat("10");
console.log(parse1); // 10
console.log(parseFloat("10.00")); // 10
console.log(parseFloat("10.33")); // 10.33
console.log(parseFloat("10,33")); // 10
console.log(parseFloat("34 45 66")); // 34
console.log(parseFloat("   60   ")); // 60
console.log(parseFloat("40 years")); // 40
console.log(parseFloat("year40")); // NaN
console.log(parseFloat("He was 40")); // NaN

Perhatikan bahwasanya penggunaan parseFloat tidak memerlukan radix. Selain itu, konversi ke desimal dilakukan jika angka dipisahkan oleh titik (.) bukan koma (,), cek baris ke 4 dan 5 pada contoh kode di atas.

Aturan Konversi Ke Number

Terdapat beberapa aturan hasil konversi ke number sebagai berikut:

NilaiHasil Konversi ke Number
undefinedNaN
null0
boolean true1
boolean false0
stringtergantung ada tidaknya angka di awal kata

Konversi Tipe Data ke Boolean

Konversi ke boolean biasanya dilakukan secara otomatis oleh sintaks kondisional seperti if () else dan lainnya.

1
2
3
4
5
6
7
let a = 0;
if (a) {
  console.log('hasilnya true');
} else {
  console.log('hasilnya false');
}
// hasilnya false

Namun jika ingin mengkonversi ke boolean secara manual bisa menggunakan sintaks Boolean(value).

1
2
console.log(Boolean('false')); // true
console.log(Boolean(0)); // false

Aturan konversi ke boolean yakni sebagai berikut:

NilaiHasil Konversi ke Boolean
undefinedfalse
nullfalse
NaNfalse
0false
''false
selain nilai di atastrue
’ 'true
‘0’true

Pada dasarnya semua nilai yang kosong (baik nilai 0 ataupun undefined / tidak terdefinisikan) akan menjadi nilai boolean false, sedangkan selainnya bernilai true.

Ringkasan

  • Biasanya konversi ke tipe data tertentu secara otomatis dilakukan oleh method maupun sintaks yang membutuhkan tipe data tersebut.
  • Konversi ke tipe data string dapat dilakukan dengan menggunakan sintaks String(value)
  • Konversi ke tipe data number dapat dilakukan dengan menggunakan sintaks Number(value), parseInt(value, 10), ataupun parseFloat(value)
  • Konversi ke tipe data boolean dapat dilakukan dengan menggunakan sintaks Boolean(value)