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