Delapan isian menunggu kita, dan semuanya berangkat lewat satu elemen form. Bagian ini menulis kerangka src/index.html — head lengkap, header berisi estimasi waktu, pengantar, form dengan action dan method, serta tiga fieldset kosong — sekaligus keputusan paling menentukan proyek: ke mana data dikirim, dan dengan moda apa.
Head dan Header Halaman #
Ketik baris berikut sebagai awal src/index.html — sama persis dengan baris 1-13 berkas final:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Survei Kepuasan — Dapur Siti</title>
<meta name="description" content="Survei kepuasan pelanggan Dapur Siti: lima menit untuk menceritakan kunjungan Anda, dari frekuensi berkunjung sampai saran perbaikan.">
</head>
<body>
<header>
<p><strong>Dapur Siti</strong> — warung masakan rumahan</p>
<p><small>Survei kepuasan pelanggan, kurang lebih 5 menit</small></p>
</header>Mari kita bedah baris demi baris:
title(baris 6): jenis halaman dulu, pemiliknya kemudian — “Survei Kepuasan — Dapur Siti”. Tab browser menyebut halaman ini berbeda dari tab lain yang dibuka pengguna.meta description(baris 7): ringkasan isi untuk cuplikan hasil pencarian; durasi lima menit ikut disebut sebagai janji waktu kepada calon responden.- Nama usaha, bukan heading (baris 11): nama warung dan jenis usahanya dibungkus
pber-strong— pola proyek sebelumnya; satu-satunyah1disimpan untuk judul isi dimain. - Tujuan dan estimasi waktu (baris 12): baris kedua menyebut apa yang diminta dan berapa lama — keputusan yang dibedah di bagian akhir halaman ini.
Form, Pengantar, dan Tiga Fieldset #
Sisa halaman tinggal satu main. Ketik kerangka berikut — komentar di dalam tiap fieldset penanda kerja yang diganti kontrol sungguhan mulai Bagian 2:
<main>
<h1>Survei Kepuasan Pelanggan</h1>
<p>Terima kasih sudah makan di Dapur Siti. Lima menit waktu Anda membantu kami menentukan menu pekan depan dan memperbaiki layanan. Sebagian kolom wajib diisi; browser akan menandai kolom yang terlewat saat tombol kirim ditekan.</p>
<form action="https://example.com/survei" method="post">
<fieldset>
<legend>Identitas</legend>
<!-- kontrol identitas diisi pada Bagian 2 -->
</fieldset>
<fieldset>
<legend>Kebiasaan berkunjung</legend>
<!-- pertanyaan survei diisi pada Bagian 3 -->
</fieldset>
<fieldset>
<legend>Umpan balik</legend>
<!-- saran dan persetujuan diisi pada Bagian 4 -->
</fieldset>
<button type="submit">Kirim Survei</button>
</form>
<p><small>Data survei hanya dipakai untuk memperbaiki layanan Dapur Siti, tidak dibagikan ke pihak lain, dan tidak dipakai untuk kiriman promosi.</small></p>
</main>Bedah potongan ini:
h1tunggal (baris 2): judul isi satu-satunya — nama warung sudah menjadi teks header, tidak perlu diulang sebagai judul.- Paragraf pengantar (baris 3): menyebut durasi lagi beserta aturan mainnya — sebagian kolom wajib, browser menandai yang terlewat; instruksi di muka mencegah kejutan pesan galat.
formber-actiondanmethod(baris 4): alamat tujuan fiktifhttps://example.com/survei;method="post"mengirim data di badan permintaan — alasannya di bagian “Mengapa post, bukan get” di bawah.- Tiga
fieldsetber-legend(baris 5-17): tiap kelompok satufieldsetdenganlegendanak pertama, urutannya sengaja — identitas (siapa), kebiasaan berkunjung (fakta), umpan balik (pendapat). Komentarnya hanya penanda kerja. - Tombol kirim (baris 18):
button type="submit"— type ditulis eksplisit sesuai kebiasaan chapter Button. - Catatan privasi (baris 20):
pber-smalldi bawahform, di luarform— janji kepada responden, bukan data yang ikut terkirim.
Mengapa post, bukan get #
Chapter Action dan Method membedah dua moda pengiriman; untuk survei ini pilihan jatuh ke post:
| Pertimbangan | get | post |
|---|---|---|
| Tempat data | menempel di URL setelah tanda ? | berada di badan permintaan |
| Panjang isian | URL memanjang mengikuti jawaban | saran sampai 500 karakter tetap muat |
| Jejak di perangkat | URL lengkap tercatat di riwayat browser | data tidak membekas di address bar |
Survei mengumpulkan nama dan email — data pribadi. Dengan get, keduanya menempel pada URL dan tercatat di riwayat browser serta bookmark; post menutup pintu itu. Jawaban juga tidak selalu pendek — saran bisa 500 karakter, dan URL sepanjang itu rentan terpotong. Dua alasan itulah form pengumpulan data nyaris selalu post.
Jujur Menyebut Durasi #
Estimasi “kurang lebih 5 menit” tercantum di header dan diulang di pengantar — dua tempat yang pasti dibaca sebelum pengguna menyentuh satu pun kontrol: responden memutuskan mengisi atau tidak justru pada detik itu. Survei tanpa estimasi terasa seperti komitmen terbuka; survei yang lebih panjang dari janjinya ditinggalkan di tengah. Delapan isian — tiga kolom identitas, tiga pertanyaan pilihan, satu kolom teks, satu persetujuan — memang cukup ditempuh lima menit; angka itu dihitung dari isi form, bukan ditebak.
Hasil pada Browser #
Tab menampilkan judulnya; di halaman tampak nama warung, estimasi waktu, judul, pengantar, tiga kotak kelompok (masih kosong), tombol kirim, dan catatan privasi. Tekan tombolnya: belum ada required di mana pun, jadi browser langsung mengirim dan membuka example.com — penahan pengiriman baru muncul mulai Bagian 2.
Inilah keadaan halaman pada akhir Bagian 1 — kerangka berdiri utuh dengan tiga fieldset kosong; tekan tombol Kirim Survei-nya dan lihat sendiri bahwa tidak ada satu pun penahan:
Ringkasan Bagian 1 #
- Kerangka berdiri:
headlengkap,headerberisi tujuan dan estimasi waktu,mainberisi satuformdengan tigafieldsetber-legend. - Data dikirim ke
actionfiktif memakaimethod="post"— data pribadi tidak menempel di URL. - Estimasi waktu disebut jujur dua kali: di header dan di paragraf pengantar.
Bagian berikutnya mengisi fieldset Identitas dengan tiga kontrol pertama: nama, email, dan usia.