Apa itu Module?
Tujuan Pembelajaran
Section titled “Tujuan Pembelajaran”Setelah membaca halaman ini, kamu diharapkan dapat:
- Menjelaskan definisi dari Module dalam pemrograman.
- Memahami mengapa memecah kode ke dalam beberapa file itu sangat penting.
- Mengenali struktur hubungan ketergantungan antar module.
Pendahuluan
Section titled “Pendahuluan”Selama kamu belajar pemrograman di sekolah, semua kode latihan biasanya ditulis di dalam satu file saja. Kodenya mungkin hanya berkisar antara 20 sampai 50 baris. Menulis di satu file tentu terasa praktis.
Namun, di dunia industri nyata, satu aplikasi web bisa memiliki puluhan ribu baris kode. Jika semua itu ditulis di dalam satu file, file tersebut akan menjadi sangat besar (bisa mencapai ratusan megabyte), sangat lambat dibuka di VS Code, dan mustahil dikerjakan secara bersamaan oleh tim developer. Kita membutuhkan Module.
Penjelasan Materi: Mengenal Module
Section titled “Penjelasan Materi: Mengenal Module”Module (modul) adalah sebuah file kode program mandiri yang memisahkan bagian logika tertentu (seperti class, fungsi, interface, atau variabel) agar tidak bercampur dengan file lain.
Di dalam sistem module:
- Terisolasi secara default: Seluruh variabel, class, atau fungsi di dalam sebuah file module bersifat rahasia dan tidak bisa diakses oleh file lain, kecuali jika kita secara sengaja menyatakannya terbuka.
- Ketergantungan Terkontrol: Sebuah file bisa meminjam (mengimpor) komponen dari file lain secara resmi dan teratur.
TypeScript mendukung penuh sistem module standar modern ES Modules (ECMAScript Modules) menggunakan kata kunci export (ekspor) dan import (impor).
Analogi Kehidupan Sehari-hari: Kompartemen Kotak Peralatan (Toolbox)
Section titled “Analogi Kehidupan Sehari-hari: Kompartemen Kotak Peralatan (Toolbox)”Bagaimana kamu merapikan alat-alat pertukangan?
Kotak Perkakas Tanpa Kompartemen (Satu File Raksasa)
Section titled “Kotak Perkakas Tanpa Kompartemen (Satu File Raksasa)”Kunci pas, obeng, sekrup, tang, palu dicampur aduk jadi satu di dalam satu wadah besar. Saat mencari sekrup kecil, kamu harus mengaduk-aduk seluruh isi kotak dengan susah payah.
Kotak Perkakas Modular (Module System)
Section titled “Kotak Perkakas Modular (Module System)”Setiap alat diletakkan pada kompartemen khusus:
- Kompartemen Obeng (Modul Obeng)
- Kompartemen Kunci Pas (Modul Kunci)
- Kotak Kecil Sekrup (Modul Sekrup)
Toolbox Besar (Project) ├── Kompartemen Obeng (Module A) ├── Kompartemen Kunci Pas (Module B) └── Kotak Kecil Sekrup (Module C)Jika kamu butuh obeng, kamu cukup membuka laci kompartemen obeng tanpa perlu mengganggu laci sekrup. Setiap kompartemen terisolasi dan rapi.
Visual Illustration: Hubungan Ketergantungan Module
Section titled “Visual Illustration: Hubungan Ketergantungan Module” [ siswa.ts (Module) ] ───┐ ├── ekspor ──► [ index.ts (Aplikasi Utama) ] [ guru.ts (Module) ] ────┘ (mengimpor & menggabungkan)Mengapa Harus Menggunakan Module?
Section titled “Mengapa Harus Menggunakan Module?”- Maintainability (Mudah Dirawat): Jika ada kesalahan pada logika data siswa, kamu tahu pasti harus membuka file
siswa.ts. Fileguru.tstidak perlu disentuh. - Reusability (Bisa Dipakai Ulang): Satu modul kalkulator matematika yang kamu buat bisa diimpor ke sepuluh file project berbeda tanpa perlu menulis ulang kodenya.
- Namespace Cleanliness: Menghindari bentrok nama variabel. Kamu boleh memiliki variabel bernama
namadisiswa.tsdan variabel bernamanamadiguru.tssecara bersamaan karena keduanya berada di lingkup file yang berbeda. - Team Collaboration: Developer A bisa bekerja fokus mengedit file
siswa.tsselagi Developer B mengedit fileguru.tstanpa saling menimpa pekerjaan.
Latihan
Section titled “Latihan”Tuliskan pendapatmu di file latihan: sebutkan apa saja masalah yang mungkin muncul ketika sebuah tim pengembang beranggotakan 10 orang mencoba mengedit satu file kode program yang sama secara bersamaan tanpa menggunakan module system.
Ringkasan
Section titled “Ringkasan”- Modul adalah satu file kode program terpisah yang mandiri dan terisolasi.
- Berfungsi membagi kode besar menjadi bagian-bagian kecil yang terorganisir.
- TypeScript menggunakan sistem modul modern ES Modules (
exportdanimport).