Learn
← Previous Next →

Hari 13: Module — Import & Export

55 min Last updated 09 Apr 2026

ES Modules

// math.js — EXPORT
export const PI = 3.14159;
export function tambah(a, b) { return a + b; }
export function kali(a, b)   { return a * b; }
export default class Kalkulator {
    tambah = (a, b) => a + b;
    kurang = (a, b) => a - b;
}

// app.js — IMPORT
import Kalkulator, { PI, tambah, kali } from "./math.js";
// atau import semua:
import * as Math from "./math.js";

const k = new Kalkulator();
console.log(k.tambah(3, 4));  // 7
console.log(PI);              // 3.14159
console.log(tambah(1, 2));    // 3

Dynamic Import

// Lazy loading — hanya load saat dibutuhkan
async function loadPlugin() {
    const { default: Plugin } = await import("./plugin.js");
    const plugin = new Plugin();
    plugin.init();
}
💡 Di browser gunakan <script type="module">. Di Node.js gunakan .mjs atau "type":"module" di package.json.

💡 Notice: IIFE adalah pattern klasik untuk enkapsulasi. Module modern ES6 melakukan hal yang sama dengan sintaks lebih bersih.

Assignment

Simulasikan module pattern dengan IIFE (Immediately Invoked Function Expression). Buat modul "utils" yang expose fungsi capitalize(str) dan slugify(str). Gunakan dan tampilkan hasilnya.

Expected output:

Hello world
belajar-javascript-es6
JS script.js
Solution
Output