Selamat datang di Topik 3! Sejauh ini, semua kode yang kita tulis untuk server kita berada di dalam satu file saja, yaitu index.js
. Untuk proyek kecil, ini tidak masalah.
Tapi, bayangkan jika aplikasi kita tumbuh menjadi sangat besar seperti Instagram atau TikTok. Jika semua kode—untuk routing, logika, koneksi database, dan lainnya—ditumpuk di satu file, file tersebut bisa menjadi ribuan bahkan puluhan ribu baris panjangnya!
Ini seperti memiliki sebuah lemari raksasa di mana semua jenis pakaian, mulai dari kaus kaki, kemeja, hingga jaket musim dingin, dilempar begitu saja menjadi satu tumpukan. Mencari sepasang kaus kaki saja bisa memakan waktu berjam-jam.
Bagian 1: Masalah Menulis Semua Kode di Satu File
Menyimpan semua kode dalam satu file akan menimbulkan beberapa masalah serius seiring berjalannya waktu.
- Sulit Dibaca dan Dipahami: Saat file menjadi terlalu panjang, kita akan kesulitan untuk mengerti alur kerja aplikasi secara keseluruhan. Mencari satu fungsi spesifik saja akan seperti mencari jarum dalam tumpukan jerami.
- Sulit Dirawat (Maintenance): Memperbaiki bug atau menambahkan fitur baru menjadi sebuah mimpi buruk. Mengubah satu baris kode di satu bagian bisa jadi tanpa sengaja merusak fungsionalitas di bagian lain.
- Sulit untuk Bekerja Sama: Jika kamu bekerja dalam sebuah tim, mustahil beberapa orang bisa mengedit file yang sama secara bersamaan tanpa menimbulkan konflik dan kekacauan.
Bagian 2: Solusinya: Separation of Concerns
Untuk mengatasi masalah ini, para developer profesional menerapkan sebuah prinsip fundamental yang disebut Separation of Concerns (Pemisahan Tugas).
Konsepnya sangat sederhana: Jangan campur adukkan semua hal. Pisahkan kodemu ke dalam file dan folder yang berbeda berdasarkan fungsinya masing-masing.
- Satu laci hanya untuk kaus kaki.
- Satu laci hanya untuk kemeja.
- Satu laci hanya untuk celana.
Dalam konteks proyek Express.js kita, pemisahannya akan terlihat seperti ini:
- Semua kode yang berhubungan dengan definisi URL atau routing akan kita masukkan ke dalam folder
routes
. - Semua kode yang berisi logika inti (apa yang harus dilakukan saat sebuah URL diakses) akan kita masukkan ke dalam folder
controllers
. - File
index.js
utama kita akan menjadi lebih bersih, hanya berisi kode untuk konfigurasi awal dan “menghubungkan” semua bagian lainnya.
Dengan menerapkan prinsip ini, proyek kita akan menjadi lebih modular, rapi, dan mudah dikelola, tidak peduli seberapa besar ukurannya nanti. Di pelajaran selanjutnya, kita akan langsung mempraktikkan cara membuat struktur folder ini.