JAVASCRIPT (ES6+)


 Baik, mari kita lanjutkan pembelajaran **Front End Web Development** dengan materi **JavaScript (ES6+)**. JavaScript merupakan bahasa pemrograman utama di sisi **client-side** yang membuat halaman web menjadi interaktif. Dengan hadirnya **ECMAScript 6** atau **ES6+**, terdapat banyak fitur baru yang memudahkan pengembangan, menambah efisiensi, dan menjaga kode tetap bersih serta modular.

## **Pengenalan ES6+ (ECMAScript 6+)**

ES6 adalah versi modern dari JavaScript yang memperkenalkan banyak fitur baru. Berikut adalah fitur utama ES6+ yang sering digunakan dalam pengembangan web:

### 1. **Let dan Const (Deklarasi Variabel)**

Pada JavaScript versi lama, kita menggunakan `var` untuk mendeklarasikan variabel, namun dengan ES6+, kita bisa menggunakan `let` dan `const` untuk manajemen variabel yang lebih baik.

- **`let`**: Variabel yang dapat diubah nilainya.

- **`const`**: Variabel yang nilainya tidak bisa diubah (konstanta).

**Contoh:**

```javascript

let nama = "Ali";

const umur = 25;

 nama = "Budi";  // Bisa diubah

// umur = 26;  // Error: Nilai 'const' tidak dapat diubah

 ### 2. **Template Literals (String Interpolation)**

Sebelum ES6, kita sering menggunakan concatenation dengan operator `+` untuk menggabungkan string. Dengan **Template Literals**, kita bisa memasukkan variabel langsung ke dalam string menggunakan backticks (`` ` ``) dan `${}`.

**Contoh:**

```javascript

let nama = "Ali";

let umur = 25;

let kalimat = `Nama saya ${nama} dan saya berumur ${umur} tahun.`;

console.log(kalimat);

// Output: Nama saya Ali dan saya berumur 25 tahun.

 ### 3. **Arrow Functions (Fungsi Panah)**

Arrow functions adalah cara yang lebih singkat untuk menulis fungsi. Selain itu, **`this`** dalam arrow functions selalu mengacu pada konteks di mana fungsi tersebut dibuat, sehingga lebih mudah dalam penggunaan.

**Contoh:**

```javascript

// Fungsi biasa

function salam(nama) {

  return `Halo, ${nama}`;

}

// Arrow function

const salamArrow = (nama) => `Halo, ${nama}`;

console.log(salamArrow("Ali"));

// Output: Halo, Ali

 ### 4. **Destructuring (Destrukturisasi)**

Destructuring memungkinkan kita untuk mengambil nilai dari **array** atau **objek** dan menyimpannya langsung ke dalam variabel dengan cara yang lebih singkat dan mudah dibaca.

#### Destructuring Array:

**Contoh:**

```javascript

const angka = [1, 2, 3];

const [satu, dua, tiga] = angka;

console.log(satu, dua, tiga);

// Output: 1 2 3

#### Destructuring Object:

**Contoh:**

```javascript

const user = {

  nama: "Ali",

  umur: 25

};

const { nama, umur } = user;

console.log(nama, umur);

// Output: Ali 25

### 5. **Default Parameters**

Default parameters memungkinkan kita untuk memberikan nilai default ke parameter fungsi jika nilai tersebut tidak diberikan saat pemanggilan fungsi.

 **Contoh:**

```javascript

function salam(nama = "Pengunjung") {

  return `Halo, ${nama}`;

}

console.log(salam());  // Output: Halo, Pengunjung

console.log(salam("Ali"));  // Output: Halo, Ali

 ### 6. **Rest Parameters dan Spread Operator**

#### **Rest Parameters**:

Rest parameters memungkinkan kita untuk mengumpulkan sisa parameter menjadi satu array. Ini berguna ketika kita tidak tahu berapa banyak argumen yang akan diterima oleh sebuah fungsi.

**Contoh:**

```javascript

function jumlahkan(...angka) {

  return angka.reduce((total, nilai) => total + nilai);

}

console.log(jumlahkan(1, 2, 3, 4));  // Output: 10

 #### **Spread Operator**:

Spread operator (`...`) digunakan untuk menyebarkan elemen array atau properti objek.

 **Contoh:**

```javascript

const angka = [1, 2, 3];

const angkaBaru = [...angka, 4, 5];  // Menyebarkan elemen array

console.log(angkaBaru);  // Output: [1, 2, 3, 4, 5]

 const obj1 = { nama: "Ali", umur: 25 };

const obj2 = { ...obj1, kota: "Jakarta" };  // Menyebarkan properti objek

console.log(obj2);  // Output: { nama: "Ali", umur: 25, kota: "Jakarta" }

### 7. **Modules (Ekspor dan Impor)**

ES6 memperkenalkan modul yang memungkinkan kita untuk membagi kode ke dalam beberapa file dan mengimpor hanya bagian yang diperlukan. Ini membuat kode lebih modular dan terstruktur.

#### **Ekspor**:

**Contoh (file: `math.js`):**

```javascript

export const pi = 3.14159;

export function luasLingkaran(radius) {

  return pi * radius * radius;

}

#### **Impor**:

**Contoh (file: `main.js`):**

```javascript

import { pi, luasLingkaran } from './math.js';

console.log(pi);  // Output: 3.14159

console.log(luasLingkaran(5));  // Output: 78.53975

 ### 8. **Promises (Janji)**

JavaScript ES6 memperkenalkan **Promise** untuk menangani operasi asinkron seperti pemanggilan API atau pengolahan data yang memakan waktu. Promise memungkinkan kita untuk menjalankan kode setelah sebuah operasi selesai tanpa melakukan *callback hell*.

**Contoh:**

```javascript

const janji = new Promise((resolve, reject) => {

  let sukses = true;

  if (sukses) {

    resolve("Operasi berhasil!");

  } else {

    reject("Operasi gagal.");

  }

});

janji

  .then((pesan) => console.log(pesan))

  .catch((error) => console.log(error))

 

### 9. **Async/Await**

`async` dan `await` adalah sintaks modern yang digunakan untuk menangani operasi asinkron dengan cara yang lebih mudah dibaca daripada menggunakan **Promises** saja.

**Contoh:**

```javascript

async function fetchData() {

  try {

    let response = await fetch('https://api.example.com/data');

    let data = await response.json();

    console.log(data);

  } catch (error) {

    console.log("Error fetching data:", error);

  }

}

fetchData();

 ### Contoh Aplikasi JavaScript ES6+

Berikut adalah contoh sederhana bagaimana menggunakan beberapa fitur ES6 untuk membuat sebuah aplikasi sederhana:

 ```html

<!DOCTYPE html>

<html lang="id">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Aplikasi ES6+</title>

</head>

<body>

    <h1>Hitung Luas Lingkaran</h1>

    <input type="number" id="radius" placeholder="Masukkan jari-jari" />

    <button id="hitung">Hitung Luas</button>

    <p id="hasil"></p>

     <script>

        const pi = 3.14159;

         function luasLingkaran(radius) {

            return pi * radius * radius;

        }

         document.getElementById('hitung').addEventListener('click', () => {

            const radius = document.getElementById('radius').value;

            const hasil = luasLingkaran(radius);

            document.getElementById('hasil').textContent = `Luas lingkaran: ${hasil}`;

        });

    </script>

</body>

</html>

 

Pada contoh di atas:

- Kami menggunakan **arrow function** untuk event handler.

- Menggunakan variabel `const` dan fungsi regular untuk menghitung luas lingkaran.

 Dengan memahami fitur-fitur **ES6+** ini, Anda akan lebih mudah dalam menulis kode JavaScript yang bersih, efisien, dan modular

Posting Komentar

Lebih baru Lebih lama

Formulir Kontak