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