- Bab 1 dari 12
- 25 menit
- 1 latihan kode
- 4 soal kuis
Pengenalan JavaScript dan Tipe Data
Di bab ini (9 bagian)
Tujuan bab ini
- Menjelaskan apa itu JavaScript dan di mana saja ia bisa berjalan.
- Mencoba kode JavaScript langsung dari console browser.
- Mengenal tujuh tipe data primitif dan object, lalu memeriksanya dengan
typeof. - Membedakan konversi tipe implisit dan eksplisit.
JavaScript itu apa?
JavaScript adalah bahasa pemrograman yang awalnya dibuat untuk membuat halaman web jadi "hidup". HTML menyusun isi halaman, CSS mengatur tampilannya, dan JavaScript mengatur perilakunya: tombol yang bisa diklik, form yang memeriksa isian, notifikasi yang muncul tanpa reload. Analoginya seperti rumah: HTML itu dinding dan ruangan, CSS itu cat dan dekorasi, JavaScript itu listrik yang membuat lampu, kipas, dan bel pintu berfungsi.
JavaScript dibuat oleh Brendan Eich di Netscape pada tahun 1995, konon hanya dalam sekitar 10 hari. Walau namanya mirip, JavaScript tidak ada hubungannya dengan Java; nama itu dipilih karena Java sedang populer waktu itu. Standar resminya bernama ECMAScript. Versi besar yang mengubah banyak hal adalah ES6 (ES2015), dan sejak itu ada versi baru setiap tahun (ES2016, ES2017, dan seterusnya).
Di mana JavaScript berjalan?
| Tempat | Contoh | Kegunaan |
|---|---|---|
| Browser | Chrome, Firefox, Safari | Interaksi halaman web, manipulasi DOM |
| Node.js | Server, script di terminal | Backend, API, tool seperti build script |
| Tempat lain | Deno, Bun, aplikasi desktop (Electron) | Runtime alternatif dan aplikasi lintas platform |
Setiap browser punya engine JavaScript sendiri, misalnya V8 di Chrome. Node.js mengambil engine V8 itu dan menjalankannya di luar browser, jadi kamu bisa memakai bahasa yang sama untuk frontend dan backend. Bedanya ada di fitur sekitarnya: di browser ada document dan window, di Node.js ada akses file dan jaringan.
Cara mencoba: console browser
Kamu tidak perlu install apa pun untuk mulai. Buka browser, tekan F12 (atau Ctrl+Shift+J di Chrome, Cmd+Option+J di Mac), lalu pilih tab Console. Ketik kode, tekan Enter, dan hasilnya langsung muncul.
console.log() adalah cara paling umum untuk menampilkan sesuatu. Kalau sudah install Node.js, kamu juga bisa menyimpan kode di file halo.js lalu menjalankannya dengan node halo.js di terminal.
Variabel singkat
Variabel itu seperti kotak berlabel untuk menyimpan nilai. Di JavaScript modern ada dua kata kunci utama:
Ada juga var, cara lama sebelum ES6. Perbedaannya dibahas di bab tentang scope. Untuk sekarang, pakai const sebagai default dan let kalau nilainya memang akan berubah.
Tipe data primitif dan object
JavaScript bersifat dynamic typing: kamu tidak menulis tipe data saat membuat variabel. Tipenya melekat pada nilai, bukan pada variabel, jadi satu variabel bisa berisi angka lalu diganti teks.
Ada tujuh tipe primitif. Primitif artinya nilai sederhana yang tidak bisa diubah isinya (immutable).
| Tipe | Contoh | Keterangan |
|---|---|---|
| string | "Halo", 'JS', `hai` | Teks, pakai kutip satu, dua, atau backtick |
| number | 42, 3.14, -7, NaN | Bilangan bulat dan desimal dalam satu tipe |
| boolean | true, false | Benar atau salah |
| undefined | undefined | Variabel ada tapi belum diberi nilai |
| null | null | Kosong yang disengaja oleh programmer |
| bigint | 123n | Bilangan bulat sangat besar (ES2020) |
| symbol | Symbol("id") | Nilai unik, sering untuk kunci property (ES6) |
Selain itu ada object, tipe non-primitif yang menampung kumpulan data. Array dan function juga termasuk object.
Bedanya undefined dan null sering bikin bingung. Bayangkan formulir: undefined itu kolom yang belum pernah diisi, sedangkan null itu kolom yang sengaja kamu isi "tidak ada". Satu lagi: number punya batas presisi. Bilangan bulat di atas Number.MAX_SAFE_INTEGER (9007199254740991) bisa kehilangan ketelitian, dan di situlah bigint berguna.
Memeriksa tipe dengan typeof
Operator typeof mengembalikan string nama tipe sebuah nilai.
Perhatikan baris terakhir. typeof null menghasilkan "object", padahal null adalah primitif. Ini bug sejak versi pertama JavaScript yang tidak pernah diperbaiki karena terlalu banyak website lama yang bergantung pada perilaku itu. Untuk memeriksa null, bandingkan langsung: nilai === null. Untuk memeriksa array, pakai Array.isArray(nilai).
Juga lucu: NaN (Not a Number) bertipe "number". NaN muncul dari operasi angka yang gagal, misalnya "abc" * 2.
Konversi tipe: implisit vs eksplisit
Kadang JavaScript perlu mengubah tipe sebuah nilai. Ada dua cara.
Implisit (type coercion) terjadi otomatis saat operator bertemu tipe yang berbeda. Aturan pentingnya: operator + dengan salah satu operand string akan menyambung teks, sedangkan -, *, / selalu mencoba mengubah ke angka.
Eksplisit berarti kamu sendiri yang meminta konversi, sehingga kode lebih jelas dan bisa ditebak.
Langkah aman saat menerima input dari pengguna (misalnya dari prompt() atau form, yang selalu berupa string): ubah dulu dengan Number(), cek hasilnya dengan Number.isNaN(), baru hitung.
Kesalahan umum
- Menjumlahkan input tanpa konversi.
"10" + "5"menghasilkan"105", bukan15. Ubah dulu denganNumber(). - Mengira
typeof nulladalah"null". Hasilnya"object". Pakai=== null. - Memakai
typeofuntuk mendeteksi array. Hasilnya"object"; gunakanArray.isArray(). - Membandingkan dengan NaN.
NaN === NaNbernilaifalse. PakaiNumber.isNaN(x). - Menganggap JavaScript sama dengan Java. Keduanya bahasa berbeda dengan sintaks dan cara kerja yang berbeda.
Rangkuman
- JavaScript berjalan di browser dan, lewat Node.js, di server atau terminal; standarnya bernama ECMAScript.
- Cara tercepat mencoba adalah console browser (F12, tab Console).
- Ada tujuh primitif (string, number, boolean, undefined, null, bigint, symbol) plus object.
typeofmemberi nama tipe, tapitypeof nullmenghasilkan"object"karena bug lama.- Konversi implisit terjadi otomatis (awas
+dengan string); konversi eksplisit memakaiNumber(),String(),Boolean().
Slide 1 sampai 5 dari deck JavaScript. Penjelasan lengkapnya ada di mode Baca.

Selesaikan bab ini
- 1. Baca materi
- 2. Latihan kode (1)
- 3. Kuis (4 soal)
Latihan kode: Detektor tipe data
Lengkapi dua fungsi berikut:
tipeData(nilai)mengembalikan nama tipe sepertitypeof, kecualinullmenghasilkan"null"dan array menghasilkan"array". Contoh:tipeData(42)menghasilkan"number",tipeData(null)menghasilkan"null",tipeData([1, 2])menghasilkan"array".keAngka(teks)mengubah string menjadi number denganNumber(). Kalau hasilnya NaN, kembalikan0. Contoh:keAngka("17")menghasilkan17,keAngka("abc")menghasilkan0.
Gunakan return, bukan console.log.
Cek pemahaman
1Apa fungsi Node.js bagi JavaScript?
2Apa output kode berikut?
console.log(typeof null);3Ekspresi "5" - 2 menghasilkan string "52".
4Apa output kode berikut?
const a = "10"; const b = 2; console.log(a + b);
