Bab 04

📁 Ketika Satu File Tidak Cukup

Andi udah bisa bikin satu halaman. Tapi project nyata butuh lebih dari satu file — dan di sinilah ChatGPT mulai kewalahan.

Andi senyum-senyum sendiri. Dalam dua minggu terakhir, dia udah bikin beberapa halaman HTML pakai ChatGPT dan Gemini Canvas. Halaman profil. Landing page sederhana. Bahkan halaman "Tentang Kami" buat ide startup dia.

Tapi malam ini, ada yang berbeda. Andi lagi scroll referensi website startup lain — Ula, Grab, Ruangguru — dan dia perhatiin satu hal.

Semua website itu punya banyak halaman. Ada halaman utama, halaman produk, halaman kontak. Ada navbar yang sama di setiap halaman. Warna dan font konsisten dari halaman satu ke halaman lain.

Andi buka project dia. Satu file index.html. Isinya campur aduk — HTML, CSS inline di mana-mana, warna gak konsisten, gak ada navbar yang nyambung antar halaman.

Andi
"Oke, gue udah bisa bikin satu halaman. Tapi gimana caranya bikin project yang beneran? Yang ada banyak halaman, navbar, styling yang rapi? Gimana caranya biar semua halaman punya tampilan yang sama?"

Andi langsung buka ChatGPT. Dia ketik:

Andi
"Buatkan project website startup saya. Ada 3 halaman: Home, Produk, Kontak. Sama navbar dan styling yang konsisten. Kasih semua kodenya."

ChatGPT menjawab. Panjang. Ada kode buat index.html, terus style.css, terus produk.html, terus kontak.html. Satu jawaban super panjang yang isinya semua kode dicampur jadi satu.

Andi bengong.

Andi
"Tunggu... ini mana yang file mana? Ada tiga blok kode di sini. Yang pertama HTML, kedua CSS, ketiga HTML lagi. Gue harus simpen masing-masing ke mana? Nama file-nya apa? Terus CSS-nya di-link gimana?"

Dia coba copy-paste satu per satu. Yang pertama disimpen sebagai index.html. Yang kedua sebagai style.css. Tapi pas dibuka di browser — navbar gak muncul. Warna gak berubah. Layout berantakan.

Andi cek lagi. Ternyata dia salah copy. Bagian CSS kecampur sama potongan HTML. Atau sebaliknya. Dia balik ke ChatGPT, minta penjelasan. ChatGPT kasih penjelasan, tapi tetap dalam format teks — satu blok panjang.

Andi
"Ini gak efektif. Gue habis 2 jam cuma buat nyortir kode yang ChatGPT kasih. Setengahnya salah copy, setengahnya lagi gue gak tau taruh di mana. Folder-nya juga belum ada — semua file numpuk di satu tempat."

Andi istirahat. Tutup laptop. Minum kopi. Mikir.

🏗️ Kenapa Project Nyata Butuh Banyak File?

Sebelum lanjut, kita perlu ngerti kenapa satu file gak cukup. Bayangin kamu lagi bikin rumah. Kamu gak bisa semuanya jadi satu — ada yang namanya pembagian tugas.

1

HTML = Kerangka Rumah

HTML itu struktur. Dinding, pintu, jendela, atap. Tanpa HTML, gak ada rumah. HTML nentuin apa yang ada di halaman — judul, paragraf, gambar, tombol, form.

2

CSS = Cat, Furniture & Dekorasi

CSS itu tampilan. Warna dinding, jenis lantai, posisi kursi. CSS nentuin gimana rumah keliatan — warna, ukuran font, jarak antar elemen, layout responsif.

3

JavaScript = Saklar, Pintu Otomatis & Alarm

JS itu interaksi. Saklar lampu yang nyala saat ditekan, pintu geser otomatis, alarm yang bunyi. JS nentuin apa yang terjadi kalau user melakukan sesuatu — klik tombol, scroll, submit form.

Kenapa harus dipisah? Karena kalau dicampur jadi satu, hasilnya berantakan dan susah di-maintain. Coba bayangin: kamu mau ganti warna tombol. Kalau CSS-nya inline di setiap halaman, kamu harus ubah di 3 tempat. Tapi kalau CSS-nya di file terpisah, cukup ubah di satu tempat — semua halaman otomatis berubah.

Ini bukan soal "cara yang benar". Ini soal praktis. Project yang rapi = project yang gampang diubah, gampang dikembangin, dan gampang dimengerti orang lain.

📂 Struktur Folder: Tempat yang Benar untuk Setiap File

Setiap file punya tempatnya masing-masing. Gak boleh sembarangan. Ini struktur folder standar yang dipakai hampir semua project web:

project-andi/
├── index.html          ← halaman utama (home)
├── produk.html         ← halaman produk
├── kontak.html         ← halaman kontak
├── style.css           ← semua styling di sini
├── script.js           ← semua interaksi di sini
└── images/
    ├── logo.png
    ├── hero-banner.jpg
    └── produk-1.jpg

Penjelasan:

Di setiap file HTML, kamu perlu link ke CSS dan JS:

<!-- Di dalam <head> -->
<link rel="stylesheet" href="style.css">

<!-- Sebelum </body> -->
<script src="script.js"></script>

Cuma dua baris itu. Itu cara HTML bilang: "Hei, styling-nya ada di file ini, interaksinya ada di file itu."

⚠️ Batasan ChatGPT & Gemini Canvas

ChatGPT dan Gemini Canvas gak bisa bikin file. Mereka cuma bisa kasih kode dalam bentuk teks. Kamu yang harus copy-paste, bikin folder, bikin file, dan nge-link semuanya sendiri. Satu kesalahan copy-paste = project rusak. Dan kalau kamu minta revisi, mereka kasih seluruh kode lagi dari awal — bukan edit file yang udah ada.

🧩 Masalah Inti: Output Teks vs File Management

Ini yang bikin Andi frustrasi. Dan ini masalah yang sama dialami semua orang yang mulai bikin project multi-file pakai ChatGPT atau Gemini Canvas.

1

Output cuma teks

ChatGPT kasih kode dalam blok kode. Kamu harus copy, bikin file sendiri, paste ke sana. Kalau ada 5 file, kamu harus copy-paste 5 kali. Dan harus tau urutan yang benar.

2

Gak bisa bikin folder

ChatGPT gak bisa bikin folder images/ di laptop kamu. Dia cuma bisa bilang "buat folder images". Kamu yang harus bikin manual.

3

Gak bisa edit file yang udah ada

Mau ubah warna di style.css? ChatGPT kasih seluruh file CSS lagi. Kamu harus replace semua. Gak bisa edit satu baris aja.

4

Gak bisa lihat konteks project

ChatGPT gak tau file apa aja yang udah ada di project kamu. Dia gak bisa baca index.html kamu terus edit yang perlu diubah. Setiap chat dimulai dari nol.

Hasilnya? Kamu habis lebih banyak waktu ngatur file daripada bangun project. Dan itu kebalikan dari tujuan vibecoding.

💡 Insight Penting

Batasan ini bukan salah AI-nya. ChatGPT dan Gemini memang didesain sebagai chatbot, bukan file manager. Mereka luar biasa buat brainstorming, belajar konsep, dan bikin kode satu file. Tapi begitu project kamu butuh banyak file yang saling terhubung, kamu butuh tool yang lebih tepat.

Andi duduk di kamar kos, laptop terbuka, tapi dia gak lagi ngetik. Dia lagi mikir.

Selama ini, dia ngerasa ChatGPT itu segalanya. Minta kode, dapat kode. Tapi sekarang dia sadar ada celah besar antara mendapat kode dan mengelola project.

Andi
"ChatGPT bisa kasih gue kode. Tapi gue butuh sesuatu yang bisa nulis langsung ke file. Yang bisa bikin folder, edit file yang udah ada, dan ngerti project gue secara keseluruhan. Bukan cuma kasih teks terus gue yang urus sendiri."

Andi chat Raka lagi.

Andi
"Rak, gue udah nyoba minta ChatGPT bikin project multi-file. Hasilnya berantakan. Gue copy-paste salah terus. Ada solusi gak?"
Raka
"Lo butuh VS Code, Di. Install VS Code, terus pasang extension Cline. AI-nya jalan di dalam editor — dia bisa bikin file, edit file, bikin folder, semuanya langsung. Lo gak perlu copy-paste lagi."
Andi
"Jadi AI-nya bukan cuma kasih kode, tapi langsung nulis ke file?"
Raka
"Bener. Itu game-changer. Lo bilang mau bikin apa, Cline yang bikin semua filenya. Lo tinggal review."

Andi langsung googling "VS Code". Dan dia nemuin bab berikutnya.

🌉 Apa yang Akan Datang di Bab 5?

Kamu sekarang udah ngerti kenapa project web butuh banyak file, dan kenapa ChatGPT/Gemini Canvas gak ideal buat mengelola itu semua.

Di bab selanjutnya, kita akan:

Ini lompatan besar. Dari "AI kasih kode" ke "AI bikin project". Dan kamu gak perlu jago coding buat ngelakuinnya.

← Bab 3: Gemini Canvas Bab 5: VS Code + Cline →