Syntax JavaScript
Sintaks JavaScript mengacu pada kumpulan aturan yang menentukan bagaimana program yang ditulis dalam JavaScript harus diatur.
Pernyataan
Dalam JavaScript, pernyataan adalah potongan kode yang melakukan tindakan tertentu. Pernyataan sering diakhiri dengan tanda titik koma (;
). Contohnya:
let x = 5;
Pada contoh ini, let x = 5
; adalah pernyataan yang mendeklarasikan variabel x
dan memberikan nilai 5
kepadanya.
Ekspresi
Ekspresi adalah unit kode yang valid yang menghasilkan nilai. Ekspresi dapat berisi variabel, literal, operator, dan pemanggilan fungsi. Contohnya:
x * 10;
Pengenal
Pengenal adalah nama-nama. Dalam JavaScript, pengenal digunakan untuk memberi nama variabel, fungsi, dan label. Ada aturan tertentu dalam memberi nama pengenal:
- Pengenal dapat berisi huruf, angka, garis bawah, dan tanda dolar.
- Pengenal tidak boleh diawali dengan angka.
- Pengenal bersifat case-sensitive (
myVar
danmyvar
adalah pengenal yang berbeda). - Kata-kata yang dipesan (seperti kata kunci JavaScript) tidak dapat digunakan sebagai pengenal.
Kata Kunci
Kata kunci adalah kata yang dipesan dalam JavaScript yang memiliki makna khusus. Mereka digunakan untuk mengendalikan alur program (seperti if
, else
, for
, while
), mendeklarasikan variabel (seperti let
, const
, var
), mendefinisikan fungsi (seperti function
), dan lain-lain. Kata kunci tidak dapat digunakan sebagai pengenal.
Komentar
Komentar digunakan untuk menjelaskan kode dan membuatnya lebih mudah dipahami. Komentar tidak mempengaruhi eksekusi kode. JavaScript mendukung komentar satu baris dan komentar banyak baris.
Komentar satu baris dimulai dengan dua garis miring ke depan (//
):
// This is a single-line comment
Komentar banyak baris dimulai dengan garis miring dan asterisk (/_
), dan diakhiri dengan asterisk dan garis miring (_/
):
/*
This is a
multi-line comment
*/
Variabel
Variabel adalah hal mendasar dalam bahasa pemrograman manapun. Dalam JavaScript, variabel adalah nama simbolik untuk suatu nilai. Variabel digunakan untuk menyimpan data yang kemudian dapat dimanipulasi dan dirujuk dalam program Anda.
Deklarasi Variabel
Dalam JavaScript, Anda dapat mendeklarasikan variabel menggunakan var
, let
, atau const
. Setiap kata kunci ini memiliki karakteristik yang berbeda:
- var: Kata kunci ini mendeklarasikan sebuah variabel, dengan opsional memberikan nilai awal.
var name;
let
: Kata kunci ini mendeklarasikan variabel lokal dengan cakupan blok, dengan opsional memberikan nilai awal.
let name;
const
: Kata kunci ini mendeklarasikan konstanta bernama dengan cakupan blok dan hanya bisa dibaca.
const name = 'John';
Perhatikan bahwa const
membutuhkan inisialisasi; Anda tidak dapat mendeklarasikan variabel konstanta tanpa memberikan nilai kepadanya secara langsung.
Penugasan Variabel
Setelah mendeklarasikan variabel, Anda dapat memberikan nilai kepadanya menggunakan operator penugasan (=
).
let name;
name = 'John';
Anda juga dapat mendeklarasikan dan memberikan nilai ke variabel dalam satu waktu.
let name = 'John';
Ruang Lingkup Variabel
Ruang lingkup suatu variabel menentukan di mana variabel tersebut dapat diakses dalam kode Anda. JavaScript memiliki dua jenis ruang lingkup: ruang lingkup global dan ruang lingkup lokal.
- Ruang Lingkup Global: Variabel yang dideklarasikan di luar fungsi atau dideklarasikan dengan kata kunci
var
di dalam fungsi menjadi variabel global dan dapat diakses dari bagian mana pun dalam kode.
var globalVar = 'I am global!';
- Ruang Lingkup Lokal: Variabel yang dideklarasikan di dalam suatu fungsi atau blok hanya dapat diakses di dalam fungsi atau blok tersebut. Mereka tidak dapat diakses dari luar fungsi atau blok.
function myFunction() {
let localVar = 'I am local!';
}
Namun, let
dan const
yang dideklarasikan di dalam blok {}
bersifat berbatasan cakupan blok, artinya mereka hanya dapat diakses dalam blok penutup terdekat.
{
let blockVar = 'I am block-scoped!';
}
Jenis Data
Dalam JavaScript, jenis data mengacu pada berbagai jenis data yang dapat dimanipulasi dalam program. JavaScript memiliki sistem tipe yang dinamis, yang berarti sebuah variabel dapat menyimpan nilai dari jenis data apa pun dan dapat mengubah jenisnya selama eksekusi.
Jenis Data Primitif
Jenis data primitif dalam JavaScript meliputi Number, String, Boolean, Null, Undefined, dan Symbol.
- Number: Jenis data ini mewakili angka baik bilangan bulat maupun pecahan. Contohnya:
let num1 = 25; // an integer
let num2 = 80.5; // a floating-point number
- String: Jenis data ini mewakili urutan karakter. String dapat dibuat dengan mengapit karakter-karakter dengan tanda kutip tunggal (''), tanda kutip ganda (""), atau tanda kutip terbalik (``). Contohnya:
let str1 = 'hello'; // using single quotes
let str2 = "world"; // using double quotes
let str3 = `hello world`; // using backticks
- Boolean: Jenis data ini mewakili nilai logika. Nilai yang dapat diambil hanya true atau false. Contohnya:
let isReading = true; // yes, I'm reading
let isSleeping = false; // no, I'm not sleeping
- Null: Jenis data ini mewakili ketiadaan nilai objek yang disengaja. Sering digunakan untuk menunjukkan "tidak ada nilai" atau "tidak diketahui". Contohnya:
let empty = null;
- Undefined: Variabel yang telah dideklarasikan tetapi belum diberikan nilai adalah undefined. Contohnya:
let x;
console.log(x); // output: undefined
- Symbol: Diperkenalkan dalam ECMAScript 6, Symbol adalah nilai primitif unik dan tidak dapat diubah serta dapat digunakan sebagai kunci properti Objek. Contohnya:
let symbol1 = Symbol();
let symbol2 = Symbol('sym2');
Jenis Data Kompleks
Selain jenis data primitif, JavaScript juga memiliki jenis data kompleks, yaitu Objek dan Array.
- Object: Objek adalah kumpulan properti di mana setiap properti merupakan pasangan kunci-nilai. Kunci dalam objek berupa string, sedangkan nilai dapat berupa jenis data apa pun. Contohnya:
let person = {
name: 'John',
age: 30
};
- Array: Array adalah tipe khusus objek yang mewakili kumpulan elemen. Elemen-elemen dalam array dapat berupa jenis data apa pun. Contohnya:
let fruits = ['apple', 'banana', 'cherry'];
Operator
Operator dalam JavaScript adalah simbol yang memberitahu kompiler untuk melakukan operasi matematika, relasional, atau logika tertentu.
Operator Aritmatika
Operator aritmatika digunakan untuk melakukan operasi aritmatika pada angka. Mereka termasuk:
- Penjumlahan (
+
) - Pengurangan (
-
) - Perkalian (
*
) - Pembagian (
/
) - Modulus (Sisa Bagi) (
%
) - Increment (
++
) - Decrement (
--
)
let a = 10;
let b = 20;
console.log(b + a); // Output: 30
console.log(b - a); // Output: 10
console.log(b * a); // Output: 200
console.log(b / a); // Output: 2
console.log(b % a); // Output: 0
Operator Penugasan
Operator penugasan digunakan untuk memberikan nilai pada variabel. Operator penugasan sederhana adalah =
. Ada juga operator penugasan gabungan yang menggabungkan operasi aritmatika dengan penugasan:
+=
-=
*=
/=
%=
let a = 10;
a += 5; // Same as a = a + 5; a is now 15
Operator Perbandingan
Operator perbandingan digunakan untuk membandingkan dua nilai. Mereka mengembalikan nilai Boolean, baik true atau false. Mereka termasuk:
- Sama dengan (
==
) - Tidak sama dengan (
!=
) - Strictly equal (nilai dan tipe data yang sama) (
===
) - Strictly not equal (nilai atau tipe data yang tidak sama) (
!==
) - Lebih besar dari (
>
) - Kurang dari (
<
) - Lebih besar dari atau sama dengan (
>=
) - Kurang dari atau sama dengan (
<=
)
let a = 10;
let b = '10';
console.log(a == b); // Output: true
console.log(a === b); // Output: false
Operator Logika
Operator logika digunakan untuk menentukan logika antara variabel atau nilai. Mereka termasuk:
- Logika AND (
&&
) - Logika OR (
||
) - Logika NOT (
!
)
let a = true;
let b = false;
console.log(a && b); // Output: false
console.log(a || b); // Output: true
console.log(!a); // Output: false
Operator Lainnya
Terdapat beberapa operator lainnya dalam JavaScript, termasuk:
- Operator kondisional (Ternary Operator) (
kondisi ? nilai_jika_benar : nilai_jika_salah
) - Operator tipe data (
typeof
) - Operator instanceof (
instanceof
)
let age = 15;
let canVote = (age >= 18) ? "Yes" : "No";
console.log(canVote); // Output: No
console.log(typeof age); // Output: number
let fruits = ['apple', 'banana', 'cherry'];
console.log(fruits instanceof Array); // Output: true
Struktur Kontrol
Struktur kontrol dalam JavaScript menentukan alur eksekusi program berdasarkan kondisi atau perulangan tertentu. Mereka membantu dalam pengambilan keputusan, melakukan tugas berulang kali, atau mengulangi rentang nilai.
Pernyataan Kondisional
Pernyataan kondisional digunakan untuk melakukan tindakan yang berbeda berdasarkan kondisi yang berbeda. Dalam JavaScript, kita memiliki beberapa jenis pernyataan kondisional:
- if statement: Mengeksekusi blok kode jika kondisi yang ditentukan benar.
let age = 20
if (age >= 18) {
console.log('You are eligible to vote.')
}
- if...else statement: Mengeksekusi blok kode jika kondisi yang ditentukan benar. Jika kondisinya salah, maka akan dieksekusi blok kode lain.
let age = 15;
if (age >= 18) {
console.log('You are eligible to vote.');
} else {
console.log('You are not eligible to vote.');
}
- if...else if...else statement: Mengeksekusi blok kode yang berbeda untuk kondisi yang berbeda.
let score = 85;
if (score >= 90) {
console.log('Grade A');
} else if (score >= 80) {
console.log('Grade B');
} else {
console.log('Grade C');
}
- switch statement: Memilih salah satu dari banyak blok kode yang akan dieksekusi.
let day = 3;
switch (day) {
case 1:
console.log('Monday');
break;
case 2:
console.log('Tuesday');
break;
case 3:
console.log('Wednesday');
break;
//...
default:
console.log('Invalid day');
}
Perulangan
Perulangan digunakan untuk menjalankan blok kode beberapa kali. JavaScript mendukung berbagai jenis perulangan:
- for loop: Melakukan perulangan blok kode sejumlah kali.
for (let i = 0; i < 5; i++) {
console.log(i);
}
- while loop: Melakukan perulangan blok kode selama kondisi yang ditentukan benar.
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
- do...while loop: AJuga melakukan perulangan blok kode selama kondisi yang ditentukan benar. Perbedaannya dengan while loop adalah bahwa do...while loop akan menjalankan blok kode setidaknya sekali sebelum memeriksa kondisi.
let i = 0;
do {
console.log(i);
i++;
} while (i < 5);
- for...in loop: Melakukan perulangan melalui properti-properti objek.
let person = {fname:"John", lname:"Doe", age:25};
for (let x in person) {
console.log(x);
}
- for...of loop: Melakukan perulangan melalui nilai-nilai objek yang dapat diiterasi.
let cars = ['BMW', 'Volvo', 'Mini'];
for (let x of cars) {
console.log(x);
}