<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="id">
  <title>BapakGabut</title>
  <subtitle>Ngoding, main game, dan ngulik apa saja.</subtitle>
  <link href="https://www.bapakgabut.com/" rel="alternate" type="text/html"/>
  <link href="https://www.bapakgabut.com/atom.xml" rel="self" type="application/atom+xml"/>
  <id>https://www.bapakgabut.com/</id>
  <updated>2026-09-27T00:00:00.000Z</updated>
  <entry>
    <title>Mau Belajar Web Development? Pahami Dulu Cara Kerjanya</title>
    <link href="https://www.bapakgabut.com/posts/cara-kerja-aplikasi-web/" rel="alternate" type="text/html"/>
    <id>https://www.bapakgabut.com/posts/cara-kerja-aplikasi-web/</id>
    <published>2026-09-27T00:00:00.000Z</published>
    <updated>2026-09-27T00:00:00.000Z</updated>
    <summary>Memahami gambaran dasar bagaimana aplikasi web bekerja, dari halaman sederhana hingga frontend, backend, dan database.</summary>
    <content type="html"><![CDATA[<h1>Mau Belajar Web Development? Pahami Dulu Cara Kerjanya</h1>
<p>Halo, Gabuters!</p>
<p>Di tengah ramainya AI dan <em>vibe coding</em> sekarang, membuat aplikasi web
rasanya semakin mudah. Tinggal kasih instruksi seperti:</p>
<blockquote>
<p>"Buatkan saya aplikasi pencatatan keuangan yang punya halaman login,
dashboard, dan laporan bulanan."</p>
</blockquote>
<p>Tunggu sebentar, tahu-tahu sudah muncul aplikasi yang kelihatannya cukup
meyakinkan.</p>
<p>Keren? Tentu saja.</p>
<p>Tapi kemudian muncul pertanyaan: <strong>kalau AI sudah bisa membuat aplikasi
untuk kita, apakah kita masih perlu belajar ngoding dan memahami
bagaimana sebuah aplikasi bekerja?</strong></p>
<p>Menurut saya, masih.</p>
<p>Bukan berarti kita harus hafal semua syntax atau menolak menggunakan AI.
Saya sendiri justru melihat AI sebagai alat yang sangat membantu ketika
ngoding.</p>
<p>Tapi ada bedanya antara <strong>AI membantu kita membuat aplikasi</strong> dengan
<strong>kita sama sekali tidak tahu apa yang sebenarnya dibuat oleh AI</strong>.</p>
<p>Ibaratnya kita naik kendaraan. Kita memang tidak harus bisa membuat
mesin sendiri untuk bisa berkendara. Tapi paling tidak kita perlu tahu
mana gas, mana rem, dan apa yang harus dilakukan kalau tiba-tiba ada
lampu merah menyala di dashboard.</p>
<p>Begitu juga dengan web development.</p>
<p>Kita tidak harus menguasai semuanya terlebih dahulu sebelum menggunakan
AI. Tapi memahami dasarnya akan membantu kita memberikan instruksi yang
lebih baik, memahami apa yang dibuat, mengetahui bagian mana yang harus
diubah, dan yang tidak kalah penting: <strong>punya gambaran ketika sesuatu
tiba-tiba error.</strong></p>
<p>Nah, di tulisan ini kita belum akan banyak ngoding.</p>
<p>Saya ingin mengajak Gabuters melihat gambaran besarnya terlebih dahulu:
<strong>sebenarnya sebuah aplikasi web itu dibangun dari apa, dan bagaimana
bagian-bagiannya bekerja sama?</strong></p>
<p>Kita mulai dari bentuk yang paling sederhana.</p>
<h2>Kita Cuma Mau Menampilkan Tulisan</h2>
<p>Bayangkan kita ingin membuat sebuah halaman web sederhana.</p>
<p>Isinya cuma:</p>
<p><strong>BapakGabut</strong></p>
<p><em>Ngoding, main game, dan ngulik apa saja.</em></p>
<p>Belum ada tombol aneh-aneh, belum ada login, belum ada data pengguna.
Kita cuma ingin membuka browser dan melihat tulisan tersebut.</p>
<p>Untuk membuat halaman seperti ini, kita bisa memulainya hanya dengan
sebuah file bernama:</p>
<p><code>index.html</code></p>
<p>Nah, sekarang kita bertemu dengan istilah pertama: <strong>HTML</strong>.</p>
<p>HTML atau <strong>HyperText Markup Language</strong> digunakan untuk mendefinisikan
struktur dan isi sebuah halaman web.</p>
<pre><code>flowchart LR
    A[index.html] --&gt; B[Browser]
    B --&gt; C[Halaman Web]
</code></pre>
<p>Kita membuat file HTML, kemudian browser seperti Chrome, Firefox, Edge,
dan lainnya membaca file tersebut lalu menampilkannya sebagai halaman
web.</p>
<p>Di dalam HTML kita bisa menentukan bahwa bagian tertentu adalah judul,
paragraf, gambar, tombol, link, tabel, form, dan berbagai elemen lainnya.</p>
<p>Kalau dianalogikan dengan rumah, untuk sementara kita bisa menganggap
HTML sebagai <strong>struktur rumahnya</strong>.</p>
<p>Ada pintu di sini, jendela di sana, kamar di sebelah sini, dan ruang
tamu di sebelah sana.</p>
<p>Sebenarnya dengan ini saja kita sudah punya halaman web.</p>
<p>Masalahnya, tampilannya mungkin masih sangat sederhana.</p>
<p>Kita ingin menentukan warna, ukuran tulisan, posisi elemen, jarak
antarbagian, dan sebagainya.</p>
<p>Berarti kita membutuhkan sesuatu untuk mengatur <strong>tampilannya</strong>.</p>
<h2>Halamannya Sudah Ada, Sekarang Bikin Lebih Enak Dilihat</h2>
<p>Di sinilah kita bertemu dengan istilah berikutnya: <strong>CSS</strong>.</p>
<p>CSS atau <strong>Cascading Style Sheets</strong> digunakan untuk mengatur bagaimana
elemen-elemen halaman tadi ditampilkan.</p>
<p>Misalnya kita ingin:</p>
<ul>
<li>warna latar belakang tertentu;</li>
<li>tulisan BapakGabut dibuat lebih besar;</li>
<li>tombol diberi warna;</li>
<li>gambar memiliki sudut membulat;</li>
<li>beberapa elemen ditampilkan berdampingan;</li>
<li>tampilan tetap nyaman ketika dibuka dari HP.</li>
</ul>
<p>Hal-hal seperti itu bisa kita atur menggunakan CSS.</p>
<pre><code>flowchart LR
    HTML[HTML - Struktur] --&gt; Browser
    CSS[CSS - Tampilan] --&gt; Browser
    Browser --&gt; Page[Halaman Web]
</code></pre>
<p>Untuk sementara, gampangnya:</p>
<p><strong>HTML menentukan apa yang ada di halaman.</strong></p>
<p><strong>CSS menentukan bagaimana tampilannya.</strong></p>
<p>Sampai di sini sebenarnya kita sudah bisa membuat banyak jenis halaman
web.</p>
<p>Company profile sederhana, halaman informasi, landing page,
dokumentasi, blog statis, dan berbagai halaman lainnya bisa dibuat
dengan kombinasi keduanya.</p>
<p>Tapi kemudian kita mulai punya keinginan lain.</p>
<p>Bagaimana kalau ketika tombol diklik, sebuah menu terbuka?</p>
<p>Bagaimana kalau pengguna memilih kategori tertentu, kemudian isi halaman
berubah?</p>
<p>Atau bagaimana kalau kita ingin menghitung sesuatu secara otomatis?</p>
<p>Halaman kita sekarang tidak cukup hanya <strong>ada</strong> dan <strong>terlihat bagus</strong>.</p>
<p>Kita ingin halaman tersebut bisa <strong>melakukan sesuatu</strong>.</p>
<h2>Sekarang Kita Bikin Halamannya Bisa Bereaksi</h2>
<p>Di sinilah kita mulai berkenalan dengan <strong>JavaScript</strong>.</p>
<p>Untuk pengenalan awal ini, kita bisa menganggap JavaScript sebagai bagian
yang mengatur <strong>perilaku atau interaksi</strong> pada halaman.</p>
<p>Misalnya kita punya tombol:</p>
<p><strong>Tampilkan Produk</strong></p>
<p>Ketika tombol itu diklik, kita ingin daftar produk muncul.</p>
<p>JavaScript dapat mendeteksi bahwa pengguna menekan tombol tersebut,
kemudian menjalankan perintah yang sudah kita buat.</p>
<pre><code>flowchart LR
    HTML[HTML - Struktur] --&gt; Browser
    CSS[CSS - Tampilan] --&gt; Browser
    JS[JavaScript - Interaksi] --&gt; Browser
    Browser --&gt; Page[Halaman Interaktif]
</code></pre>
<p>Tentunya kemampuan JavaScript jauh lebih luas daripada sekadar menangani
tombol.</p>
<p>Tapi kita belum perlu membahas semuanya sekarang.</p>
<p>Untuk sementara, cukup pegang tiga gambaran sederhana:</p>
<p><strong>HTML → struktur</strong></p>
<p><strong>CSS → tampilan</strong></p>
<p><strong>JavaScript → interaksi</strong></p>
<p>Nanti kita akan mengulik masing-masing lebih dalam di tulisan tersendiri.</p>
<p>Sekarang halaman kita sudah punya struktur, tampilannya sudah bagus, dan
bahkan sudah bisa berinteraksi dengan pengguna.</p>
<p>Tapi kita akan menemukan masalah baru.</p>
<p><strong>Dari mana datanya?</strong></p>
<h2>Kalau Datanya Cuma Sedikit, Taruh Langsung Saja</h2>
<p>Anggap kita sedang membuat halaman daftar produk.</p>
<p>Untuk aplikasi sederhana, kita bisa saja menulis datanya langsung
seperti ini:</p>
<pre><code>const produk = [
  { nama: "Keyboard", harga: 300000 },
  { nama: "Mouse", harga: 150000 }
];
</code></pre>
<p>Tidak ada masalah.</p>
<p>Kita punya dua produk, kemudian JavaScript menampilkan keduanya ke
halaman.</p>
<p>Selesai.</p>
<p>Tapi bagaimana kalau aplikasinya mulai berkembang?</p>
<p>Produknya bukan dua, tetapi 10.000.</p>
<p>Ada produk baru.</p>
<p>Ada produk yang dihapus.</p>
<p>Harga berubah.</p>
<p>Stok berubah.</p>
<p>Ada pengguna baru.</p>
<p>Ada transaksi baru setiap hari.</p>
<p>Apakah setiap ada perubahan harga kita akan membuka kode aplikasi,
mencari produknya, mengganti nilainya, lalu menerbitkan ulang aplikasi?</p>
<p>Sepertinya kita mulai membutuhkan tempat yang memang dirancang untuk
<strong>menyimpan dan mengelola data</strong>.</p>
<h2>Kita Butuh Tempat untuk Menyimpan Data</h2>
<p>Nah, kebutuhan inilah yang membawa kita ke istilah berikutnya:
<strong>database</strong>.</p>
<p>Database digunakan untuk menyimpan dan mengelola data yang dibutuhkan
aplikasi.</p>
<p>Kalau sebelumnya kita menulis:</p>
<pre><code>const produk = [
  { nama: "Keyboard", harga: 300000 }
];
</code></pre>
<p>nantinya informasi produk tersebut bisa disimpan sebagai data di
database.</p>
<p>Bukan cuma produk.</p>
<p>Aplikasi bisa memiliki data pengguna, transaksi, pesanan, komentar,
artikel, dan berbagai data lainnya sesuai kebutuhan.</p>
<p>Ketika harga berubah, kita memperbarui datanya.</p>
<p>Ketika ada produk baru, kita menambahkan data baru.</p>
<p>Ketika pengguna membuka aplikasi, aplikasi bisa mengambil data yang saat
itu tersedia.</p>
<p>Sampai sini mungkin kelihatannya sederhana:</p>
<blockquote>
<p>"Kalau begitu halaman web tinggal mengambil data dari database, kan?"</p>
</blockquote>
<p>Nah, tidak sesederhana itu.</p>
<p>Kita masih membutuhkan satu bagian lagi.</p>
<h2>Siapa yang Mengambil Data dari Database?</h2>
<p>Bayangkan database kita berisi data pengguna.</p>
<p>Ada nama, email, password, transaksi, dan berbagai informasi lainnya.</p>
<p>Tentu kita tidak ingin browser pengguna bebas membuka database lalu
berkata:</p>
<blockquote>
<p>"Saya minta semua datanya, ya."</p>
</blockquote>
<p>😅</p>
<p>Selain mengambil data, aplikasi juga punya berbagai aturan.</p>
<p>Misalnya:</p>
<ul>
<li>apakah pengguna sudah login?</li>
<li>apakah pengguna boleh melihat data tersebut?</li>
<li>apakah data yang dikirim valid?</li>
<li>bagaimana transaksi harus diproses?</li>
<li>data mana yang boleh dikirim kembali?</li>
</ul>
<p>Kita membutuhkan bagian yang menangani proses-proses tersebut di
belakang layar.</p>
<p>Bagian inilah yang mulai memperkenalkan kita pada <strong>backend</strong>.</p>
<pre><code>flowchart LR
    User[Pengguna] --&gt; Browser
    Browser --&gt; Backend[Backend / API]
    Backend --&gt; DB[(Database)]
    DB --&gt; Backend
    Backend --&gt; Browser
</code></pre>
<p>Misalnya Gabuters membuka halaman produk.</p>
<p>Browser bisa meminta:</p>
<blockquote>
<p>"Tolong kasih saya daftar produk."</p>
</blockquote>
<p>Permintaan tersebut dikirim ke backend.</p>
<p>Backend memproses permintaan itu dan mengambil data yang diperlukan dari
database.</p>
<p>Database mengembalikan datanya ke backend.</p>
<p>Backend kemudian mengirimkan data yang diperlukan kembali ke browser.</p>
<p>Barulah browser menampilkannya kepada pengguna.</p>
<p>Bagian aplikasi yang berhubungan langsung dengan apa yang dilihat dan
digunakan pengguna biasanya kita sebut <strong>frontend</strong>.</p>
<p>Sementara bagian yang bekerja di belakang layar tadi kita sebut
<strong>backend</strong>.</p>
<p>Nanti kita akan bertemu lagi dengan istilah seperti server dan API.</p>
<p>Untuk sekarang belum perlu dipusingkan.</p>
<p>Yang penting Gabuters sudah punya gambaran:</p>
<p><strong>ada bagian yang dilihat pengguna, ada bagian yang bekerja di belakang,
dan ada tempat untuk menyimpan datanya.</strong></p>
<h2>Sekarang Kita Lihat Gambaran Besarnya</h2>
<p>Kita mulai tadi hanya dengan keinginan menampilkan sebuah tulisan.</p>
<p>Lalu kita membutuhkan struktur.</p>
<p>Kita bertemu <strong>HTML</strong>.</p>
<p>Kita ingin tampilannya lebih bagus.</p>
<p>Kita bertemu <strong>CSS</strong>.</p>
<p>Kita ingin halaman bisa melakukan sesuatu.</p>
<p>Kita bertemu <strong>JavaScript</strong>.</p>
<p>Kita mulai punya banyak data yang harus disimpan.</p>
<p>Kita bertemu <strong>database</strong>.</p>
<p>Dan ketika aplikasi perlu mengambil serta memproses data tersebut, kita
mulai mengenal <strong>backend</strong>.</p>
<pre><code>flowchart LR
    User[Pengguna] --&gt; Browser

    subgraph Frontend
        HTML[HTML]
        CSS[CSS]
        JS[JavaScript]
    end

    Browser --&gt; Frontend
    Frontend --&gt; API[Backend / API]
    API --&gt; DB[(Database)]
    DB --&gt; API
    API --&gt; Frontend
</code></pre>
<p>Gabuters membuka aplikasi melalui browser.</p>
<p>Di sisi frontend, HTML membentuk struktur halaman, CSS mengatur
tampilannya, dan JavaScript menangani berbagai interaksi serta logika di
sisi browser.</p>
<p>Ketika membutuhkan data atau proses dari server, frontend berkomunikasi
dengan backend.</p>
<p>Backend menjalankan proses yang diperlukan dan dapat berkomunikasi
dengan database.</p>
<p>Hasilnya kemudian dikembalikan ke frontend untuk ditampilkan kepada
pengguna.</p>
<p>Apakah semua aplikasi web di dunia persis seperti diagram tersebut?</p>
<p>Tentu tidak.</p>
<p>Ketika nanti belajar lebih jauh, Gabuters akan menemukan banyak istilah
dan teknologi lain.</p>
<p>Tapi tidak perlu buru-buru ke sana.</p>
<p>Untuk sekarang, kalau Gabuters sudah memahami gambaran di atas, itu
sudah cukup.</p>
<h2>Lalu, Belajarnya Mulai dari Mana?</h2>
<p>Setelah membaca sampai sini, istilah-istilah yang tadi belum kita kenal
mulai punya tempatnya masing-masing.</p>
<p>HTML.</p>
<p>CSS.</p>
<p>JavaScript.</p>
<p>Frontend.</p>
<p>Backend.</p>
<p>Database.</p>
<p>Nanti akan ada istilah lain lagi. Banyak malah. 😅</p>
<p>Tapi kita tidak perlu mempelajari semuanya sekaligus.</p>
<p>Saya lebih suka melihat proses belajar web development sebagai sebuah
perjalanan.</p>
<p>Dan perjalanan akan lebih mudah kalau kita punya peta.</p>
<pre><code>flowchart TD
    WEB[Belajar Web Development]
    WEB --&gt; HTML[HTML]
    WEB --&gt; CSS[CSS]
    WEB --&gt; JS[JavaScript]
    WEB --&gt; BE[Backend / API]
    WEB --&gt; DB[Database]
</code></pre>
<p>Detailnya tidak perlu dimasukkan ke diagram agar tetap mudah dibaca,
terutama dari HP.</p>
<h3>HTML — Membuat Struktur Halaman</h3>
<p>Yang nantinya akan kita ulik antara lain:</p>
<ul>
<li>struktur halaman;</li>
<li>tag dan atribut;</li>
<li>form;</li>
<li>semantic HTML.</li>
</ul>
<h3>CSS — Mempercantik Tampilan</h3>
<p>Yang nantinya akan kita ulik antara lain:</p>
<ul>
<li>selector;</li>
<li>box model;</li>
<li>Flexbox dan Grid;</li>
<li>responsive design.</li>
</ul>
<h3>JavaScript — Membuat Halaman Interaktif</h3>
<p>Yang nantinya akan kita ulik antara lain:</p>
<ul>
<li>variable dan tipe data;</li>
<li>function;</li>
<li>array dan object;</li>
<li>DOM;</li>
<li>mengambil data melalui API.</li>
</ul>
<h3>Backend / API — Memproses Permintaan</h3>
<p>Yang nantinya akan kita ulik antara lain:</p>
<ul>
<li>HTTP;</li>
<li>API;</li>
<li>Node.js;</li>
<li>authentication.</li>
</ul>
<h3>Database — Menyimpan dan Mengelola Data</h3>
<p>Yang nantinya akan kita ulik antara lain:</p>
<ul>
<li>table;</li>
<li>SQL;</li>
<li>CRUD;</li>
<li>relasi data.</li>
</ul>
<p>Tidak perlu dihafalkan.</p>
<p>Dan ini juga bukan checklist yang harus Gabuters selesaikan dalam
seminggu.</p>
<p>Anggap saja sebagai peta.</p>
<p>Kalau suatu saat kita sedang belajar JavaScript lalu bertemu istilah
API, kita sudah punya gambaran kira-kira API berada di bagian mana.</p>
<p>Begitu juga ketika suatu saat kita menemukan error database, setidaknya
kita tahu database bukan bagian yang mengatur warna tombol di halaman.</p>
<p>Kedengarannya sepele, tapi memahami batas-batas seperti ini akan sangat
membantu ketika aplikasi mulai membesar.</p>
<h2>Terus, Kalau Ada AI Ngapain Belajar Semua Ini?</h2>
<p>Sekarang kita kembali ke pertanyaan di awal.</p>
<p>Kalau AI sudah bisa membantu membuat aplikasi, buat apa kita belajar
cara kerjanya?</p>
<p>Justru menurut saya AI membuat pemahaman dasar menjadi semakin berguna.</p>
<p>Misalnya kita meminta AI membuat aplikasi dan kemudian muncul error.</p>
<p>Kalau kita sama sekali tidak memahami struktur aplikasi, mungkin yang
bisa kita lakukan hanya:</p>
<blockquote>
<p>"Masih error, tolong perbaiki."</p>
</blockquote>
<p>Masih error.</p>
<blockquote>
<p>"Belum bisa."</p>
</blockquote>
<p>Masih error lagi.</p>
<blockquote>
<p>"Coba perbaiki lagi."</p>
</blockquote>
<p>Kadang berhasil.</p>
<p>Kadang error-nya malah pindah ke tempat lain. 😅</p>
<p>Tapi setelah memahami gambaran yang baru saja kita bahas, kita setidaknya
bisa mulai mempersempit masalah.</p>
<p>Tampilannya berantakan?</p>
<p>Mungkin kita perlu melihat bagian yang mengatur tampilannya.</p>
<p>Tombol bisa diklik tapi tidak terjadi apa-apa?</p>
<p>Mungkin kita perlu melihat bagian yang menangani interaksinya.</p>
<p>Halaman sudah benar tetapi data tidak muncul?</p>
<p>Mungkin kita perlu melihat komunikasi ke backend.</p>
<p>Backend berjalan tetapi datanya salah?</p>
<p>Mungkin kita perlu melihat prosesnya atau data yang tersimpan.</p>
<p>Kita belum tentu langsung tahu cara memperbaikinya.</p>
<p><strong>Dan itu tidak masalah.</strong></p>
<p>Bedanya, sekarang kita punya gambaran harus mulai melihat ke mana.</p>
<p>AI tetap bisa membantu.</p>
<p>Bahkan mungkin AI akan menulis sebagian besar kode yang kita gunakan.</p>
<p>Tapi sekarang <strong>Gabuters punya peta untuk memahami apa yang sedang
dikerjakan bersama AI tersebut.</strong></p>
<p>Jadi menurut saya kita tidak perlu memilih antara:</p>
<p><strong>"belajar ngoding" atau "pakai AI".</strong></p>
<p>Kita bisa melakukan keduanya.</p>
<p>Gunakan AI untuk membantu dan mempercepat pekerjaan, tapi tetap pelajari
dasar-dasarnya supaya kita memahami apa yang sedang kita bangun.</p>
<h2>Kita Baru Mulai</h2>
<p>Kalau setelah membaca sampai sini Gabuters merasa:</p>
<blockquote>
<p>"Oh, ternyata kira-kira begitu bagian-bagian sebuah aplikasi web
saling terhubung."</p>
</blockquote>
<p>Berarti tujuan tulisan ini sudah tercapai.</p>
<p>Kita memang belum benar-benar belajar membuat HTML.</p>
<p>Belum mengatur tampilan dengan CSS.</p>
<p>Belum belajar JavaScript.</p>
<p>Belum membuat backend.</p>
<p>Dan belum menyimpan data ke database.</p>
<p>Itu memang disengaja.</p>
<p>Tulisan ini adalah <strong>peta awal</strong> sebelum kita mulai berjalan.</p>
<p>Di tulisan-tulisan berikutnya, kita akan mulai membongkar bagian-bagian
tersebut satu per satu. Mulai dari membuat halaman web sederhana,
mempercantik tampilannya, membuatnya interaktif, sampai akhirnya membuat
aplikasi yang bisa menyimpan dan mengambil data.</p>
<p>Tidak perlu buru-buru.</p>
<p>Kita ulik pelan-pelan.</p>
<p>Namanya juga <strong>BapakGabut</strong>. 😄</p>
]]></content>
    <author><name>BapakGabut</name></author>
    <category term="Programming"/>
  </entry>
  <entry>
    <title>HTML Itu Apa? Yuk Bikin Halaman Web Pertama</title>
    <link href="https://www.bapakgabut.com/posts/html-halaman-web-pertama/" rel="alternate" type="text/html"/>
    <id>https://www.bapakgabut.com/posts/html-halaman-web-pertama/</id>
    <published>2026-09-27T00:00:00.000Z</published>
    <updated>2026-09-27T00:00:00.000Z</updated>
    <summary>Belajar HTML dari nol dengan membuat halaman web pertama, mulai dari menyiapkan VS Code hingga memahami struktur dasar dokumen HTML.</summary>
    <content type="html"><![CDATA[<h1>HTML Itu Apa? Yuk Bikin Halaman Web Pertama</h1>
<p>Halo, Gabuters!</p>
<p>Di tulisan sebelumnya kita sudah melihat gambaran besar tentang bagaimana
sebuah aplikasi web bekerja.</p>
<p>Kita bertemu HTML, CSS, JavaScript, backend, sampai database.</p>
<p>Banyak?</p>
<p>Lumayan. 😅</p>
<p>Tapi tenang, kali ini kita tidak akan membahas semuanya.</p>
<p>Kita akan mulai dari satu target yang jauh lebih sederhana:</p>
<p><strong>membuat halaman web pertama kita sendiri.</strong></p>
<p>Tidak ada login.</p>
<p>Tidak ada database.</p>
<p>Bahkan belum ada warna-warni.</p>
<p>Target kita cuma satu. Ketika sebuah file dibuka menggunakan browser,
kita ingin muncul tulisan:</p>
<blockquote>
<p><strong>Halo, Gabuters!</strong></p>
<p>Ini halaman web pertama saya.</p>
</blockquote>
<p>Kedengarannya sederhana?</p>
<p>Memang.</p>
<p>Tapi dari halaman sesederhana inilah kita akan mulai memahami bagaimana
sebuah website dibuat.</p>
<h2>Sebelum Mulai, Kita Siapkan Alatnya Dulu</h2>
<p>Untuk mengikuti tulisan ini, sebenarnya kita tidak membutuhkan banyak
hal.</p>
<p>Cukup dua:</p>
<ol>
<li><strong>Browser</strong>, misalnya Chrome, Edge, Firefox, atau browser lain yang
biasa Gabuters gunakan.</li>
<li><strong>Code editor</strong>, yaitu aplikasi yang akan kita gunakan untuk menulis
kode.</li>
</ol>
<p>Untuk code editor, di seri ini saya akan menggunakan <strong>Visual Studio
Code</strong>, atau biasanya cukup disebut <strong>VS Code</strong>.</p>
<p>Kenapa VS Code?</p>
<p>Sebenarnya bukan karena membuat HTML wajib menggunakan VS Code.</p>
<p>Bahkan kalau mau nekat, kita bisa membuat HTML menggunakan Notepad. 😄</p>
<p>Tapi ketika nanti kode kita mulai bertambah, code editor akan memberikan
banyak kemudahan. Misalnya warna pada kode, bantuan penulisan, pencarian
file, sampai berbagai fitur tambahan yang akan kita temui pelan-pelan.</p>
<p>Jadi daripada nanti pindah-pindah, kita mulai menggunakan code editor
dari sekarang.</p>
<h3>Install VS Code</h3>
<p>Kalau VS Code sudah ada di komputer Gabuters, bagian ini bisa langsung
dilewati.</p>
<p>Kalau belum, buka halaman resmi Visual Studio Code:</p>
<p><a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a></p>
<p>Download versi yang sesuai dengan sistem operasi yang digunakan, lalu
jalankan installer-nya.</p>
<p>Untuk pengguna Windows, pada dasarnya kita bisa mengikuti pilihan
instalasi yang tersedia dan melanjutkannya sampai selesai.</p>
<p>Setelah terpasang, buka VS Code.</p>
<p>Tampilannya mungkin terlihat cukup ramai kalau baru pertama kali
melihatnya.</p>
<p>Tenang.</p>
<p>Kita belum perlu memahami semua tombol yang ada di sana.</p>
<p>Untuk sekarang, kita cuma membutuhkan tempat untuk membuat dan mengedit
file.</p>
<blockquote>
<p><strong>Catatan:</strong> Kita juga belum perlu memasang extension apa pun. VS Code
bawaan sudah cukup untuk mengikuti artikel ini.</p>
</blockquote>
<p>Nah, alat tempurnya sudah siap.</p>
<p>Sekarang kita bisa mulai membuat sesuatu.</p>
<h2>Buat Tempat untuk Belajar HTML</h2>
<p>Sebelum membuat file, buat sebuah folder baru di komputer.</p>
<p>Namanya bebas. Tapi supaya gampang mengikuti artikel ini, kita gunakan:</p>
<pre><code>belajar-html
</code></pre>
<p>Lokasinya juga bebas.</p>
<p>Boleh di Documents, Desktop, atau folder khusus tempat Gabuters
menyimpan project.</p>
<p>Setelah itu buka VS Code.</p>
<p>Pilih:</p>
<p><strong>File → Open Folder</strong></p>
<p>Kemudian pilih folder <code>belajar-html</code> yang baru saja dibuat.</p>
<p>Sekarang VS Code sedang membuka folder tersebut sebagai tempat kita
bekerja.</p>
<p>Foldernya masih kosong.</p>
<p>Wajar.</p>
<p>Kita memang belum membuat apa-apa. 😄</p>
<h2>Kita Cuma Butuh Satu File</h2>
<p>Sekarang buat sebuah file baru di dalam folder <code>belajar-html</code>.</p>
<p>Beri nama:</p>
<pre><code>index.html
</code></pre>
<p>Perhatikan bagian belakangnya:</p>
<pre><code>.html
</code></pre>
<p>Bagian tersebut memberi tahu bahwa file yang kita buat adalah sebuah
file HTML.</p>
<p>Sedangkan <code>index</code> hanyalah nama file.</p>
<p>Nanti kita akan sering bertemu file bernama <code>index.html</code>, tetapi untuk
sekarang tidak perlu terlalu memikirkan kenapa namanya sering <code>index</code>.</p>
<p>Yang penting kita sudah punya satu file:</p>
<pre><code>belajar-html/
└── index.html
</code></pre>
<p>Dan file inilah yang akan menjadi halaman web pertama kita.</p>
<h2>Tulis Sesuatu di Dalamnya</h2>
<p>Buka <code>index.html</code> di VS Code, kemudian tuliskan:</p>
<pre><code>&lt;h1&gt;Halo, Gabuters!&lt;/h1&gt;
&lt;p&gt;Ini halaman web pertama saya.&lt;/p&gt;
</code></pre>
<p>Simpan file tersebut.</p>
<p>Di Windows, kita bisa menggunakan:</p>
<pre><code>Ctrl + S
</code></pre>
<p>Sekarang buka folder <code>belajar-html</code> menggunakan File Explorer.</p>
<p>Double-click <code>index.html</code>.</p>
<p>Browser seharusnya terbuka dan menampilkan:</p>
<h1>Halo, Gabuters!</h1>
<p>Ini halaman web pertama saya.</p>
<p>Kalau tulisan tersebut sudah muncul di browser...</p>
<p><strong>selamat. 😄</strong></p>
<p>Memang belum cantik.</p>
<p>Bahkan mungkin kelihatannya seperti website tahun 90-an.</p>
<p>Tapi jangan diremehkan.</p>
<p><strong>Gabuters baru saja membuat sebuah halaman web.</strong></p>
<p>Tidak ada server.</p>
<p>Tidak ada framework.</p>
<p>Tidak ada proses instalasi yang aneh-aneh.</p>
<p>Untuk halaman sederhana ini, alurnya kira-kira seperti berikut:</p>
<pre><code>flowchart LR
    File[index.html] --&gt; Browser
    Browser --&gt; Page[Halaman Web]
</code></pre>
<p>Kita membuat file <code>index.html</code>, browser membacanya, kemudian browser
menampilkan hasilnya sebagai halaman web.</p>
<p>Sederhana, kan?</p>
<h2>Kok Browser Tahu Mana yang Judul?</h2>
<p>Sekarang coba kita lihat lagi kode yang tadi dibuat:</p>
<pre><code>&lt;h1&gt;Halo, Gabuters!&lt;/h1&gt;
&lt;p&gt;Ini halaman web pertama saya.&lt;/p&gt;
</code></pre>
<p>Kita menulis:</p>
<pre><code>&lt;h1&gt;Halo, Gabuters!&lt;/h1&gt;
</code></pre>
<p>dan browser menampilkannya sebagai sebuah heading atau judul.</p>
<p>Sedangkan:</p>
<pre><code>&lt;p&gt;Ini halaman web pertama saya.&lt;/p&gt;
</code></pre>
<p>ditampilkan sebagai paragraf.</p>
<p>Kok browser tahu?</p>
<p>Karena kita memberikan <strong>penanda</strong> pada tulisan tersebut.</p>
<p>Coba lihat bagian ini:</p>
<pre><code>&lt;h1&gt;
</code></pre>
<p>dan:</p>
<pre><code>&lt;/h1&gt;
</code></pre>
<p>Keduanya disebut <strong>tag</strong>.</p>
<p>Tag pertama membuka bagian tersebut:</p>
<pre><code>&lt;h1&gt;
</code></pre>
<p>Kemudian kita punya isinya:</p>
<pre><code>Halo, Gabuters!
</code></pre>
<p>dan tag berikutnya menutupnya:</p>
<pre><code>&lt;/h1&gt;
</code></pre>
<p>Gampangnya, kita sedang memberi tahu browser:</p>
<blockquote>
<p>“Browser, tulisan ini adalah heading utama.”</p>
</blockquote>
<p>Begitu juga ketika kita menulis:</p>
<pre><code>&lt;p&gt;Ini halaman web pertama saya.&lt;/p&gt;
</code></pre>
<p>Kita sedang memberi tahu browser:</p>
<blockquote>
<p>“Kalau yang ini sebuah paragraf.”</p>
</blockquote>
<p>Browser kemudian membaca struktur yang kita berikan dan menentukan
bagaimana bagian-bagian tersebut ditampilkan.</p>
<p>Dan sekarang kita mulai masuk ke inti pembahasan kita.</p>
<h2>Jadi, HTML Itu Apa?</h2>
<p>HTML adalah singkatan dari <strong>HyperText Markup Language</strong>.</p>
<p>HTML digunakan untuk memberikan <strong>struktur dan makna pada isi sebuah
halaman web</strong>.</p>
<p>Misalnya kita ingin mengatakan:</p>
<p>“Ini judul.”</p>
<p>“Ini paragraf.”</p>
<p>“Ini gambar.”</p>
<p>“Ini link.”</p>
<p>“Ini daftar.”</p>
<p>HTML menyediakan cara untuk memberi struktur tersebut.</p>
<p>Itulah kenapa HTML disebut sebagai <strong>markup language</strong> atau bahasa
markup.</p>
<p>Kita memberikan semacam penanda pada konten supaya browser memahami
struktur dokumennya.</p>
<p>Ada satu hal yang juga sering membingungkan ketika baru mulai belajar:</p>
<p><strong>HTML bukan bahasa pemrograman.</strong></p>
<p>HTML tidak kita gunakan untuk membuat logika seperti:</p>
<blockquote>
<p>“Kalau pengguna sudah login, tampilkan halaman ini.”</p>
</blockquote>
<p>atau:</p>
<blockquote>
<p>“Kalau total belanja lebih dari Rp500.000, berikan diskon.”</p>
</blockquote>
<p>Untuk hal-hal seperti itu nanti kita membutuhkan teknologi lain.</p>
<p>Untuk sekarang tugas HTML lebih sederhana:</p>
<p><strong>menentukan struktur dan makna dari konten halaman kita.</strong></p>
<h2>Tapi HTML Kita Belum Lengkap</h2>
<p>Kode yang kita buat tadi memang bisa dibuka oleh browser:</p>
<pre><code>&lt;h1&gt;Halo, Gabuters!&lt;/h1&gt;
&lt;p&gt;Ini halaman web pertama saya.&lt;/p&gt;
</code></pre>
<p>Tapi sebuah dokumen HTML biasanya memiliki struktur yang lebih lengkap.</p>
<p>Sekarang ubah isi <code>index.html</code> menjadi:</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang="id"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Website Pertama Saya&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt;Halo, Gabuters!&lt;/h1&gt;
    &lt;p&gt;Ini halaman web pertama saya.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>Kelihatannya langsung jauh lebih banyak. 😅</p>
<p>Tenang.</p>
<p>Kita tidak perlu menghafalnya.</p>
<p>Mari kita lihat gambaran besarnya saja.</p>
<h3><code>&lt;!DOCTYPE html&gt;</code></h3>
<pre><code>&lt;!DOCTYPE html&gt;
</code></pre>
<p>Bagian ini memberi tahu browser bahwa dokumen yang sedang dibaca
menggunakan HTML modern.</p>
<p>Untuk sekarang, cukup biasakan menaruhnya di bagian paling atas dokumen
HTML.</p>
<h3><code>&lt;html&gt;</code></h3>
<pre><code>&lt;html lang="id"&gt;
</code></pre>
<p>Bagian ini membungkus dokumen HTML kita.</p>
<p><code>lang="id"</code> memberi informasi bahwa bahasa utama halaman tersebut adalah
bahasa Indonesia.</p>
<p>Kita belum membahas bagian <code>lang="id"</code> secara detail karena itu
berkaitan dengan sesuatu yang disebut <strong>attribute</strong>.</p>
<p>Nanti kita akan bertemu dengannya lagi.</p>
<h3><code>&lt;head&gt;</code></h3>
<p>Kemudian ada:</p>
<pre><code>&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Website Pertama Saya&lt;/title&gt;
&lt;/head&gt;
</code></pre>
<p><code>head</code> berisi berbagai informasi mengenai halaman kita.</p>
<p>Sebagian besar informasi di dalamnya tidak tampil sebagai isi utama
halaman.</p>
<p>Contohnya:</p>
<pre><code>&lt;title&gt;Website Pertama Saya&lt;/title&gt;
</code></pre>
<p>Coba lihat tab browser setelah file disimpan dan browser di-refresh.</p>
<p>Seharusnya sekarang muncul tulisan:</p>
<p><strong>Website Pertama Saya</strong></p>
<p>Sedangkan:</p>
<pre><code>&lt;meta charset="UTF-8"&gt;
</code></pre>
<p>membantu browser memahami karakter teks yang digunakan oleh halaman
kita.</p>
<p>Untuk sekarang biarkan saja bagian itu seperti adanya.</p>
<p>Kita belum perlu nyemplung ke pembahasan encoding hanya karena ingin
menampilkan tulisan “Halo, Gabuters!”. 😄</p>
<h3><code>&lt;body&gt;</code></h3>
<p>Terakhir kita punya:</p>
<pre><code>&lt;body&gt;
    &lt;h1&gt;Halo, Gabuters!&lt;/h1&gt;
    &lt;p&gt;Ini halaman web pertama saya.&lt;/p&gt;
&lt;/body&gt;
</code></pre>
<p>Nah, bagian inilah yang berisi konten utama halaman kita.</p>
<p>Judul.</p>
<p>Paragraf.</p>
<p>Nantinya gambar, link, tombol, daftar, dan berbagai isi halaman lainnya
juga akan banyak berada di sini.</p>
<p>Kalau disederhanakan:</p>
<pre><code>HTML
├── head → informasi tentang halaman
└── body → isi halaman
</code></pre>
<p>Untuk artikel pertama ini, pemahaman tersebut sudah cukup.</p>
<h2>Sekarang Coba Ubah Sendiri</h2>
<p>Jangan cuma membaca kode saya.</p>
<p>Coba utak-atik sedikit. 😄</p>
<p>Ubah bagian:</p>
<pre><code>&lt;body&gt;
    &lt;h1&gt;Halo, Gabuters!&lt;/h1&gt;
    &lt;p&gt;Ini halaman web pertama saya.&lt;/p&gt;
&lt;/body&gt;
</code></pre>
<p>menjadi:</p>
<pre><code>&lt;body&gt;
    &lt;h1&gt;BapakGabut&lt;/h1&gt;
    &lt;p&gt;Ngoding, main game, dan ngulik apa saja.&lt;/p&gt;
&lt;/body&gt;
</code></pre>
<p>Kemudian:</p>
<p><strong>simpan file → kembali ke browser → refresh.</strong></p>
<p>Tulisan berubah?</p>
<p>Kalau iya, Gabuters sekarang sudah melakukan salah satu siklus yang akan
sangat sering dilakukan ketika membuat halaman web:</p>
<pre><code>flowchart LR
    Code[Ubah HTML] --&gt; Save[Simpan]
    Save --&gt; Refresh[Refresh Browser]
    Refresh --&gt; Result[Lihat Hasil]
    Result --&gt; Code
</code></pre>
<p>Ubah kode.</p>
<p>Simpan.</p>
<p>Refresh.</p>
<p>Lihat hasilnya.</p>
<p>Tidak sesuai?</p>
<p>Ubah lagi.</p>
<p>Simpan lagi.</p>
<p>Refresh lagi.</p>
<p>Begitu terus sampai tiba-tiba sadar sudah jam dua pagi. 😅</p>
<p>Selamat datang di dunia ngoding.</p>
<h2>Kok Halamannya Masih Jelek?</h2>
<p>Kalau sekarang Gabuters melihat halaman yang baru dibuat dan berpikir:</p>
<blockquote>
<p>“Kok cuma tulisan hitam dengan background putih?”</p>
</blockquote>
<p>Betul.</p>
<p>Memang begitu. 😄</p>
<p>Tapi itu bukan berarti HTML kita salah.</p>
<p>Ingat kembali pembahasan sebelumnya.</p>
<p>HTML bertugas memberikan <strong>struktur dan makna</strong> pada halaman.</p>
<p>Kalau kita ingin mengatur warna, ukuran, jarak, posisi, background, dan
berbagai urusan penampilan lainnya, kita akan membutuhkan sesuatu yang
lain.</p>
<p>Namanya <strong>CSS</strong>.</p>
<p>Tapi jangan buru-buru ke sana.</p>
<p>Untuk sekarang biarkan website kita jelek dulu.</p>
<p><strong>Kita masih belajar membangun rumahnya. Urusan cat tembok belakangan. 😄</strong></p>
<p>Sebelum mulai mempercantik halaman, masih ada beberapa hal tentang HTML
yang perlu kita pahami.</p>
<h2>Kita Baru Kenal Dua Tag</h2>
<p>Sampai sini kita sebenarnya baru benar-benar menggunakan beberapa tag
HTML.</p>
<p>Kita sudah tahu bahwa:</p>
<pre><code>&lt;h1&gt;Judul&lt;/h1&gt;
</code></pre>
<p>digunakan untuk heading utama.</p>
<p>Dan:</p>
<pre><code>&lt;p&gt;Paragraf&lt;/p&gt;
</code></pre>
<p>digunakan untuk paragraf.</p>
<p>Tapi sebuah halaman web tentunya tidak hanya berisi judul dan paragraf.</p>
<p>Bagaimana kalau kita ingin membuat link?</p>
<p>Menampilkan gambar?</p>
<p>Membuat daftar?</p>
<p>Atau memberikan informasi tambahan pada sebuah tag?</p>
<p>Untuk melakukan itu, kita perlu mengenal lebih banyak tag HTML.</p>
<p>Kita juga akan mulai bertemu dua istilah lain:</p>
<p><strong>element</strong> dan <strong>attribute</strong>.</p>
<p>Itulah yang akan kita ulik di tulisan berikutnya:</p>
<p><strong>Mengenal Tag, Elemen, dan Atribut HTML.</strong></p>
<p>Untuk sekarang tidak perlu buru-buru.</p>
<p>Kalau Gabuters sudah berhasil membuat <code>index.html</code>, membukanya di
browser, mengubah isinya, lalu melihat hasil perubahannya...</p>
<p>berarti target kita kali ini sudah tercapai.</p>
<p>Dari sebuah file kosong, sekarang kita sudah punya halaman web pertama.</p>
<p>Memang masih jelek.</p>
<p>Tapi setidaknya <strong>jelek buatan sendiri</strong>. 😄</p>
<p>Kita lanjutkan dari sini.</p>
]]></content>
    <author><name>BapakGabut</name></author>
    <category term="Programming"/>
  </entry>
  <entry>
    <title>Halo, BapakGabut!</title>
    <link href="https://www.bapakgabut.com/posts/hello-bapakgabut/" rel="alternate" type="text/html"/>
    <id>https://www.bapakgabut.com/posts/hello-bapakgabut/</id>
    <published>2026-09-26T00:00:00.000Z</published>
    <updated>2026-09-26T00:00:00.000Z</updated>
    <summary>Catatan pertama untuk memastikan struktur konten BapakGabut berjalan dengan baik.</summary>
    <content type="html"><![CDATA[<h1>Halo, BapakGabut!</h1>
<p>Ini adalah artikel pertama untuk menguji struktur konten BapakGabut.</p>
<p>Kalau tulisan ini muncul di kategori <strong>Programming</strong>, berarti sistem kategori sudah berjalan dengan benar.</p>
]]></content>
    <author><name>BapakGabut</name></author>
    <category term="Programming"/>
  </entry>
</feed>
