Ditanyain LMS

Syntax, Variable & Data Type

Setelah memahami di mana JavaScript berjalan, sekarang kita akan masuk ke "otak" dari bahasa ini. Menulis kode bukan sekadar memberi perintah, tapi tentang bagaimana kita menyimpan, mengolah, dan memanggil kembali informasi. Di sinilah peran variabel dan tipe data menjadi sangat krusial.

Sintaks: Statement & Expression

Dalam JavaScript, setiap baris perintah yang lengkap disebut sebagai Statement. Ibarat sebuah kalimat dalam bahasa manusia, statement harus diakhiri agar komputer tahu bahwa satu instruksi telah selesai. Meskipun JavaScript bisa bekerja tanpa titik koma (;), menggunakan titik koma adalah praktik yang baik untuk menghindari ambiguitas.

Selain itu, ada yang disebut Expression, yaitu potongan kode yang menghasilkan suatu nilai. Misalnya, 5 + 5 adalah expression karena ia menghasilkan nilai 10.

1// Ini adalah sebuah statement 2let totalSkor = 50 + 50; 3 4// console.log juga merupakan statement yang menjalankan aksi 5console.log(totalSkor);

Variabel: let dan const

Variabel adalah sebuah "wadah" atau "kontainer" di dalam memori komputer untuk menyimpan data. Bayangkan variabel seperti kotak yang diberi label. Anda bisa memasukkan sesuatu ke dalamnya dan mengambilnya lagi nanti hanya dengan memanggil label tersebut.

Dahulu, JavaScript menggunakan var, namun di era modern (ES6+), kita menggunakan let dan const.

  • let: Digunakan jika nilai di dalam "kotak" tersebut bisa berubah di masa depan (mutable).
  • const: Kependekan dari constant. Digunakan untuk nilai yang tidak akan pernah berubah (immutable). Jika Anda mencoba mengubahnya, JavaScript akan marah dan memberikan error.
1let saldoBank = 500000; 2saldoBank = 600000; // Berhasil, karena saldo bisa berubah 3 4const tanggalLahir = "17 Agustus 1945"; 5// tanggalLahir = "1 Januari 2000"; // Error! Kita tidak bisa mengubah konstanta 6 7console.log(saldoBank); 8console.log(tanggalLahir);

Kesalahan Umum: Pemula sering lupa menggunakan kata kunci (let/const) saat pertama kali membuat variabel, atau mencoba mengubah nilai const. Selalu gunakan const sebagai pilihan utama, kecuali Anda yakin nilai tersebut perlu diubah nanti.

Scope: Global & Block

JavaScript mengatur di mana sebuah variabel bisa diakses melalui sistem Scope.

  • Global Scope: Variabel yang dibuat di luar folder atau fungsi apa pun, bisa diakses dari mana saja.
  • Block Scope: Variabel yang dibuat di dalam kurung kurawal { ... } (seperti dalam if atau for loop) hanya bisa hidup di dalam kurung tersebut.
1let namaPahlawan = "Gatotkaca"; // Global 2 3{ 4 let kekuatan = "Terbang"; // Block Scope 5 console.log(namaPahlawan); // Bisa akses global 6 console.log(kekuatan); // Bisa akses karena masih di dalam blok 7} 8 9console.log(namaPahlawan); // Berhasil 10// console.log(kekuatan); // Error! 'kekuatan' tidak dikenal di luar bloknya

Tipe Data Dasar

Setiap data yang kita simpan memiliki jenis atau "tipe". JavaScript akan memperlakukan data secara berbeda tergantung tipenya.

1. Number & String

Number mencakup angka bulat maupun desimal. String adalah data tekstual yang harus dibungkus dengan tanda petik ("...", '...', atau ...).

1let harga = 15000; // Number 2let diskon = 0.5; // Number (desimal menggunakan titik) 3let produk = "Kopi Susu"; // String 4 5console.log(harga * diskon); // Operasi matematika 6console.log("Nama Produk: " + produk); // Penggabungan teks (concatenation)

2. Boolean

Tipe data yang hanya memiliki dua nilai: true (benar) atau false (salah). Ini adalah pondasi dari logika pengambilan keputusan.

1let apakahSudahBayar = true; 2let apakahStokTersedia = false;

3. Null & Undefined

Keduanya sering membingungkan pemula.

  • undefined: Variabel sudah dibuat, tapi belum diberi isi.
  • null: Variabel sengaja kita kosongkan (seperti kotak yang sengaja dikosongkan isinya).
1let hobi; // Nilainya undefined 2let pasangan = null; // Nilainya null (sengaja kosong) 3 4console.log(hobi); 5console.log(pasangan);

Type Coercion (Keunikan JavaScript)

JavaScript adalah bahasa yang "sangat membantu", tapi kadang terlalu membantu hingga membingungkan. Type Coercion adalah kemampuan JavaScript untuk mengubah tipe data secara otomatis agar sebuah operasi bisa berjalan.

1let angka = 10; 2let teks = "5"; 3 4let hasil = angka + teks; 5console.log(hasil); // Output: "105" (bukan 15!)

Kenapa hasilnya "105"? Ketika JavaScript melihat operator + bertemu dengan sebuah String, ia berasumsi Anda ingin menggabungkan teks, bukan menjumlahkan angka. Maka, angka 10 diubah menjadi string "10", lalu ditempelkan dengan "5".

Prediksi Output: Apa yang terjadi jika kita melakukan 10 - "5"? Secara mengejutkan, hasilnya adalah 5. Karena operator - hanya ada untuk matematika, JavaScript otomatis mengubah string "5" menjadi angka. Inilah alasan mengapa kita harus sangat berhati-hati dengan tipe data.