Programming

Panduan Belajar JavaScript Modern

Belajar JavaScript dari dasar hingga advanced.

Rama Mai02 Nov 20238 min read

ES6 dan Fitur Baru

ES6 (ECMAScript 2015) adalah versi JavaScript yang membawa banyak fitur baru untuk meningkatkan produktivitas developer dan membuat kode lebih clean serta mudah dibaca. Dengan ES6, JavaScript menjadi lebih powerful dan modern, terutama untuk pengembangan aplikasi web skala besar.

Arrow Function

Arrow function adalah cara singkat untuk menulis function di JavaScript. Selain lebih ringkas, arrow function juga tidak memiliki binding 'this' sendiri sehingga cocok digunakan dalam callback.


// Function biasa
function sum(a, b) {
  return a + b
}

// Arrow function
const sum = (a, b) => a + b

Let dan Const

ES6 memperkenalkan 'let' dan 'const' untuk deklarasi variabel. Keduanya memiliki block scope, berbeda dengan 'var' yang menggunakan function scope.


let count = 10
const PI = 3.14

// const tidak bisa diubah
// PI = 4 // error

Template Literals

Template literals memungkinkan penulisan string dengan backtick (`) dan mendukung interpolasi variabel serta multi-line string.


const name = "Rama"
const message = `Hello, ${name}!`

Destructuring

Destructuring memudahkan pengambilan nilai dari object atau array ke dalam variabel secara langsung.


// Object destructuring
const user = { name: "Rama", age: 20 }
const { name, age } = user

// Array destructuring
const numbers = [1, 2, 3]
const [a, b, c] = numbers

Spread dan Rest Operator

Spread operator (...) digunakan untuk menyebarkan nilai array atau object, sedangkan rest digunakan untuk mengumpulkan sisa parameter.


// Spread
const arr1 = [1, 2]
const arr2 = [...arr1, 3, 4]

// Rest
function sum(...numbers) {
  return numbers.reduce((a, b) => a + b, 0)
}

Default Parameter

Default parameter memungkinkan kita memberikan nilai default pada parameter function jika tidak diberikan.


function greet(name = "Guest") {
  return `Hello, ${name}`
}

Modules (Import & Export)

ES6 memperkenalkan sistem module untuk memisahkan kode menjadi file terpisah dan lebih terstruktur.


// export
export const name = "Rama"

// import
import { name } from "./file.js"

Promises

Promises digunakan untuk menangani operasi asynchronous dengan lebih rapi dibanding callback.


const fetchData = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => resolve("Success"), 1000)
  })
}

fetchData().then(res => console.log(res))

Class

ES6 memperkenalkan class sebagai syntactic sugar dari prototype untuk membuat object-oriented programming lebih mudah dipahami.


class User {
  constructor(name) {
    this.name = name
  }

  greet() {
    return `Hello ${this.name}`
  }
}

const user = new User("Rama")

Kesimpulan

ES6 membawa banyak peningkatan signifikan pada JavaScript yang membuat kode lebih modern, modular, dan mudah dibaca. Dengan memahami fitur-fitur seperti arrow function, destructuring, dan modules, developer dapat menulis kode yang lebih efisien dan scalable.