Latihan buat 10 Modul. Konsep: import/export (ES modules), pemisahan tanggung jawab antar modul, dan siklus dependensi. Jawaban di 10 Kunci Jawaban Modul.

10.1 Modul Roads

Tulis sebuah ES module yang berisi array roads dan mengekspor struktur graf-nya sebagai roadGraph. Ia bergantung pada modul ./graph.js yang mengekspor fungsi buildGraph, yang mengharapkan array berisi array dua elemen (titik awal dan akhir tiap jalan).

Kode awal:

// tambahkan import dan export
 
const roads = [
  "Alice's House-Bob's House", "Alice's House-Cabin",
  "Alice's House-Post Office", "Bob's House-Town Hall",
  "Daria's House-Ernie's House", "Daria's House-Town Hall",
  "Ernie's House-Grete's House", "Grete's House-Farm",
  "Grete's House-Shop", "Marketplace-Farm",
  "Marketplace-Post Office", "Marketplace-Shop",
  "Marketplace-Town Hall", "Shop-Town Hall"
];

Petunjuk: import {buildGraph} from "./graph.js". Karena buildGraph menerima array berisi pasangan (bukan string berhubung), pemecahan string dengan split("-") harus terjadi di modul ini. Ekspor roadGraph dengan export const. Konsep di 10 Modul > ES Modules.

→ Jawaban: 10 Kunci Jawaban Modul > 10.1 Modul Roads

10.2 Dependensi Sirkular

Dependensi sirkular = modul A butuh B, dan B (langsung/tak langsung) butuh A. CommonJS membolehkan bentuk terbatasnya. Perhatikan require versi sederhana dari babnya — bisa kamu jelaskan bagaimana ia menangani siklus tanpa loop tak berujung?

Ini pertanyaan pemahaman, bukan menulis kode. Petunjuk: perhatikan kapan objek antarmuka modul dimasukkan ke cache. Konsep di 10 Modul > 1. Loader Sederhana.

→ Jawaban: 10 Kunci Jawaban Modul > 10.2 Dependensi Sirkular