4 minutes
Tipe Data (Basic Banget Cuk!)
Mari gue bahas tentang tipe data. Basic banget emang. Tapi menurut gue ini penting. Karena apa? Karena basic! Gue gak pengen kalau nanti gue gak ngerti kode yang gue tulis. Misal, gue pengen ngerti kenapa milih pake null
daripada undefined
.
Oiya, ini gue bahas buat javascript ya. Lagi belajar javascript soalnya nih si aing.
The Types
Ok. Dalam javascript ada 7 tipe data primitif.
- Number - untuk nyimpen data bilangan atau angka
- BigInt - untuk nyimpen data bilangan atau angka yang nilainya gede banget
- String - untuk nyimpen teks
- Boolean - nilainya cuma
true
ataufalse
- Symbol - untuk nyimpen nilai unique dan tetap
- Undefined - gak ada nilainya
- Null - bernilai
null
Juga, ada tipe data yang namanya Object. Yes, objek adalah tipe data.
What the f is primitive?
Tipe data primitif adalah tipe data yang bukan turunan dari objek apapun, gak punya method. Pastinya, Object tidak termasuk dalam tipe data primitif, modern dia mah, udah bisa nyimpen banyak nilai dan punya method.
Biar pos ini agak panjang. Mari gue bahas satu-satu itu tipe data.
Number
Untuk nyimpen data angka. Mau itu bilangan bulat atau desimal. Kalau desimal, tinggal pake titik untuk pecahannya. Kalau untuk nilai min, tinggal dikasih -
di depan angkanya.
// bilangan bulat
let angka = 1
// bilangan desimal
let angka2 = 1.5
Nah untuk tipe data number ini, kita bisa pake operator aritmatika untuk ngitung-ngitung. Apa aja itu teh?
* |
perkalian |
/ |
pembagian |
+ |
penambahan |
- |
pengurangan |
% |
modulus |
++ |
increment |
-- |
decrement |
Contoh:
let a = 10;
console.log(typeof(a)); // number
let b = 6;
console.log(typeof(b)); // number
let c = a * b;
console.log(c); // 60
let d = a / b;
console.log(d); // 1.6666666666666667
let e = a + b;
console.log(e); // 16
let f = a - b;
console.log(f); // 4
let g = a % b;
console.log(g); // 4
a++;
console.log(a); // 11
b--;
console.log(b); // 5
Number juga menyediakan nilai-nilai spesial untuk kasus tertentu, yaitu:
Infinity
- untuk nilai plus tak hingga-Infinity
- untuk nilai min tak hinggaNaN
alias Not a Number - untuk yang bukan nomor
let h = 10;
let i = 0;
let j = -0;
let k = "nol";
let l = h / i;
console.log(l); // Infinity
let m = h / j;
console.log(m); // -Infinity
let n = h / k;
console.log(n); // NaN
BigInt
Untuk nyimpen angka yang nilainya lebih dari 2^53 alias 9.0071993e+15. Hmm, berape tuh?
Cirinya, ditambahin n
setelah nulis angkanya.
let gedeBangetAnjeng = 900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222n;
console.log(typeof gedeBangetAnjeng); // BigInt
console.log(gedeBangetAnjeng);
// 900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222900719925474099142456455555555555555555555555555555555555555555555555552222222222222222222n
Kalau itu si gedeBangetAnjeng
gak ditambahin n
di belakangnya, nilainya jadi infinity
.
Nah, BigInt sama Number kagak bisa dicampur, gak bisa di-aritmatika-in. Bakal eror nantinya.
String
Nah ini mah nyimpen teks. Cirinya ada quote diantara teksnya, mau itu single '
atau double "
. Biarpun itu angka, tapi kalau udah di-quote mah tetep aja jadi string.
let string1 = "java";
console.log(typeof(string1)); // string
let string2 = 'script';
console.log(typeof(string2)); // string
let string3 = "6";
console.log(typeof(string3)); // string
Operator +
bisa dipake sama string untuk menggabungkan string.
let stringCombined = string1 + string2 + string3;
console.log(stringCombined) // javascript6
Boolean
Cuman true
atau false
doang.
let akuTampan = true;
let kamuTampan = false;
Biasanya muncul juga di operasi logika nih.
console.log(akuTampan && kamuTampan) // false
console.log(akuTampan || kamuTampan) // true
Di pengkondisian juga.
if (akuTampan) {
console.log("aku tampan");
}
Symbol
Ini teh untuk bikin data yang unique. Jadi, walaupun nilai symbolnya sama, tapi itu teh tetep beda.
Untuk bikin variabel ini, harus pake Symbol()
dengan string opsional yang bisa disimpen di dalem kurungnya.
let simbol1 = Symbol();
let simbol2 = Symbol('anjay');
let simbol3 = Symbol();
let simbol4 = Symbol('anjay');
console.log(typeof simbol1); // symbol
console.log(typeof simbol2); // symbol
console.log(typeof simbol3); // symbol
console.log(typeof simbol4); // symbol
console.log(simbol1 == simbol2); // false
console.log(simbol1 == simbol3); // false
console.log(simbol2 == simbol4); // false
Undefined
Nah, kalau kita bikin variabel nih. Tapi gak di-assign nilai apa-apa, maka secara default nilainya adalah undefined
.
let kosong;
console.log(kosong); // undefined
Null
Nah, kalau ini mah, kita sengaja nih ngasih nilai null
ke variabel yang kita bikin.
let kosongDong = null;
console.log(kosongDong); // null
Terus, null sama undefined apa bedanya bangsaaat?
Selain karena yang satu value-nya di-assign dan yang satu belum, tipe mereka berdua juga beda.
console.log(typeof kosong); // undefined
console.log(typeof kosongDong); // object
console.log(kosong == kosongDong); // true
console.log(kosong === kosongDong); // false
console.log(kosong !== kosongDong); // true
Jadi, variabel yang belum di-assign alias belum didefinisikan itu bertipe undefined
sedangkan kalau dikasih nilai null
jadi bertipe object
. Sama-sama kosong tapi beda tipe.
Object
Objek adalah variabel yang banyak nilainya dan itu nilai teh macem-macem, ada key-nya juga.
Array di mana?
Berbeda denga PHP yang menjadikan Array sebagai sebuah tipe data, Javascript memperlakukan Array sebagai objek, makanya punya banyak method tuh.
let serangga = ['Papatong', 'Gangsir']
console.log(typeof serangga); // object
Kalau kamu suka tulisan saya, boleh kok traktir saya kopi. Tinggal klik di sini.