Setiap halaman yang rapi dibangun dari kerangka yang sama: doctype yang jujur, head yang informatif, dan body yang tertata. Pada Bagian 1 ini kita menyiapkan kerangka tersebut untuk halaman profil Dewi Lestari. Delapan baris metadata yang kita tulis terlihat sepele, tetapi justru baris-baris itulah yang dibaca browser paling awal — sebelum satu paragraf bio pun dirender, judul tab, encoding, dan skala viewport sudah diputuskan.
Struktur Berkas #
Proyek ini hanya membutuhkan satu berkas HTML dan satu folder untuk gambar:
profil-penulis/
└── src/
├── index.html
└── assets/
└── foto.svg (kita buat sendiri pada Bagian 2)Berkas index.html memuat seluruh halaman, sedangkan folder assets/ menampung berkas pendukung agar tetap terpisah dari berkas utama. Pola src/ plus assets/ inilah yang kita pelajari pada chapter Struktur File dan Folder dan Mengelola Assets. Nama index.html dipilih karena server web mengenalinya sebagai berkas bawaan sebuah folder — kebiasaan yang baik sejak proyek pertama.
Head: Metadata yang Dibaca Pertama #
Ketik delapan baris berikut sebagai awal berkas. Potongan ini sama persis dengan baris 1–8 pada berkas index.html, dan isinya tidak akan berubah lagi sampai proyek selesai:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Dewi Lestari — Penulis dan Editor</title>
<meta name="description" content="Profil Dewi Lestari, penulis cerita pendek dan novel dari Yogyakarta: biografi, daftar publikasi, dan cara menghubungi.">
</head>Mari kita bedah tugas setiap baris:
<!DOCTYPE html>: memberi tahu browser memakai mode standar modern. Tanpa doctype, browser turun ke mode quirks dan hasil render sulit diprediksi.<html lang="id">: menyatakan bahasa konten adalah Indonesia. Pembaca layar memakai nilai ini untuk memilih suara pengucapan yang tepat, dan mesin pencari memakainya untuk mengenali bahasa halaman.<meta charset="UTF-8">: menetapkan encoding karakter. Tanda hubung em pada judul dan nama-nama Indonesia tampil benar hanya bila baris ini ada — dan ia harus berada pada 1024 byte pertama berkas.<meta name="viewport" ...>: mengatur lebar viewport mengikuti layar perangkat. Halaman kita tetap terbaca di ponsel tanpa zoom manual.<title>: judul halaman yang tampil di tab browser dan sebagai baris utama hasil pencarian. Format nama — peran membuat judul ini informatif di keduanya.<meta name="description" ...>: ringkasan satu-dua kalimat untuk mesin pencari. Tulis deskripsi yang benar-benar meringkas isi halaman, bukan tumpukan kata kunci.
Body: Rencana Susunan #
Setelah </head>, elemen <body> membuka area konten. Susunannya kita rencanakan sejak sekarang agar tiga bagian berikutnya tinggal mengisi:
body
├── header — nama dan tagline
├── main
│ ├── section Tentang — biografi dan foto
│ ├── section Publikasi — daftar karya
│ └── section Kontak — email dan tautan
└── footer — hak ciptaKerangka ini adalah pola halaman semantik yang kita kenal pada Section Semantic HTML: satu header pembuka, satu main sebagai konten utama, dan satu footer penutup. Untuk membantu navigasi di dalam berkas, setiap anak body ditandai komentar singkat:
<!-- Bagian: tentang -->Komentar tidak dirender browser — ia hanya penanda bagi kita pembaca kode. Pakai secukupnya: satu komentar per blok besar sudah cukup, seperti dibahas pada chapter Menggunakan Komentar Seperlunya.
Hasil di Tahap Ini #
Simpan berkas, lalu buka index.html di browser. Layar masih kosong — belum ada satu elemen body pun yang terisi — tetapi dua hal sudah bisa diperiksa: tab browser kini tercetak Dewi Lestari — Penulis dan Editor, dan halaman langsung tampil pada skala yang tepat di ponsel. Buka menu View Page Source (pintasan Ctrl+U atau Cmd+Option+U) untuk memastikan seluruh metadata tersimpan persis seperti di atas.
Tahap ini memang tidak menghasilkan demo render: seluruh kerja delapan baris tadi terjadi di tab judul dan viewport — bukan di area halaman yang masih kosong — jadi periksa langsung pada berkas milikmu.
Ringkasan Bagian 1 #
Kerangka berdiri: folder proyek tertata, head memuat doctype, bahasa, charset, viewport, judul, dan deskripsi, sementara body telah direncanakan menjadi header, main, dan footer yang ditandai komentar. Bagian 2 mulai mengisi konten pertama: identitas penulis di header beserta biografi dan foto pada section Tentang.