Mini Project HTML: Membuat Halaman Profil Sederhana
Kalau Gabuters mengikuti series ini dari awal, kita sudah belajar cukup banyak.
Kita sudah:
- membuat halaman HTML pertama;
- mengenal tag, elemen, dan atribut;
- membuat form;
- mengenal Semantic HTML.
Di artikel sebelumnya kita bahkan sudah mulai memikirkan apakah sebuah bagian halaman lebih cocok menjadi <header>, <main>, <article>, <section>, atau sekadar <div>.
Kalau bagian itu masih terasa asing, Gabuters bisa membaca dulu Semantic HTML: Jangan Semua Dibungkus <div>.
Sekarang saya tidak mau menambah banyak teori baru.
Sudah cukup. 😄
Kali ini kita akan membuat sesuatu.
Kita akan menggabungkan materi yang sudah dipelajari menjadi sebuah halaman profil sederhana.
Target akhirnya kurang lebih mempunyai struktur:
Nama KitaDeskripsi Singkat
Navigasi--------------------------------
Tentang SayaFotoPerkenalan
Yang Sedang Saya Pelajari- HTML- CSS- JavaScript
Link Favorit- BapakGabut- GitHub
Hubungi SayaNamaEmailPesan[Kirim]
--------------------------------CopyrightJangan berharap tampilannya seperti website profesional dulu.
Belum.
Kita bahkan belum belajar CSS.
Tapi setelah artikel ini selesai, Gabuters akan punya sebuah halaman web yang dibuat sendiri dari nol.
Mari kita mulai.
Buat Folder Project
Kita mulai dengan membuat folder baru.
Namanya bebas.
Misalnya:
profil-sayaDi dalam folder tersebut, buat file:
index.htmlJadi struktur project kita sekarang sangat sederhana:
profil-saya/└── index.htmlKalau lupa bagaimana membuat dan membuka file HTML, Gabuters bisa melihat kembali artikel pertama dalam series ini.
Sekarang buka index.html menggunakan VS Code.
Mulai dari Struktur Dasar
Isi file dengan struktur HTML dasar:
<!DOCTYPE html><html lang="id"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Profil Saya</title></head><body>
</body></html>Simpan.
Lalu buka index.html di browser.
Masih kosong?
Bagus.
Bukan error.
Memang belum kita isi apa-apa. 😄
Sekarang kita mulai membangun halaman tersebut sedikit demi sedikit.
Buat Bagian Pembuka
Kita ingin bagian paling awal memperkenalkan siapa pemilik halaman.
Di dalam <body>, tambahkan:
<header> <h1>BapakGabut</h1>
<p> Ngoding, main game, dan ngulik apa saja. </p></header>Silakan ganti:
BapakGabutdengan nama Gabuters sendiri.
Deskripsinya juga bebas.
Misalnya:
<p> Suka ngoding, main game, dan minum kopi.</p>Atau:
<p> Programmer pemula yang masih sering bertanya kenapa kodenya tidak jalan.</p>Halaman profil ya harus terasa seperti punya kita sendiri.
Jangan cuma menyalin punya BapakGabut. 😄
Tambahkan Navigasi
Halaman kita nanti memiliki beberapa bagian.
Supaya lebih mudah dinavigasi, kita tambahkan menu sederhana.
Masih di dalam <header>, setelah paragraf tadi, tambahkan:
<nav> <a href="#tentang">Tentang</a> <a href="#belajar">Sedang Dipelajari</a> <a href="#kontak">Kontak</a></nav>Perhatikan nilai:
#tentang#belajar#kontakKali ini link kita tidak menuju website lain.
Link tersebut akan menuju elemen pada halaman yang memiliki id yang sesuai.
Sebentar lagi kita buat.
Struktur header kita sekarang menjadi:
<header> <h1>BapakGabut</h1>
<p> Ngoding, main game, dan ngulik apa saja. </p>
<nav> <a href="#tentang">Tentang</a> <a href="#belajar">Sedang Dipelajari</a> <a href="#kontak">Kontak</a> </nav></header>Coba klik link-nya sekarang.
Mungkin belum terasa melakukan apa-apa.
Karena tujuannya memang belum kita buat.
Buat Konten Utama
Setelah </header>, tambahkan:
<main>
</main>Semua konten utama halaman profil kita akan berada di sini.
Sekarang kita mulai dari bagian Tentang Saya.
Bagian Tentang Saya
Di dalam <main>, buat:
<section id="tentang"> <h2>Tentang Saya</h2>
<p> Halo! Saya BapakGabut. Saat ini saya sedang belajar membuat website menggunakan HTML. </p>
<p> Saya suka ngulik programming, main game, dan mempelajari hal-hal menarik lainnya. </p></section>Nah, sekarang kita punya:
id="tentang"Ingat navigasi tadi?
<a href="#tentang">Tentang</a>Sekarang coba klik Tentang.
Browser akan membawa kita menuju elemen dengan:
id="tentang"Jadi pasangan sederhananya:
href="#tentang" │ ▼id="tentang"Kita baru saja membuat navigasi di dalam halaman tanpa JavaScript.
HTML saja sudah bisa melakukan ini.
Tambahkan Foto Profil
Halaman profil rasanya agak aneh kalau tidak punya foto.
Siapkan sebuah gambar.
Misalnya:
foto-profil.jpgSimpan di folder yang sama dengan index.html.
Struktur project menjadi:
profil-saya/├── index.html└── foto-profil.jpgKemudian di dalam section Tentang Saya, tambahkan:
<img src="foto-profil.jpg" alt="Foto profil BapakGabut" width="200">Silakan sesuaikan alt dengan foto yang Gabuters gunakan.
Kalau fotonya tidak muncul, periksa lagi:
- nama file;
- ekstensi file;
- lokasi gambar;
- nilai
src.
Komputer cukup patuh.
Kalau kita menulis:
foto-profil.jpgsementara nama filenya:
foto-profil.JPGatau ternyata berada di folder lain, browser tidak akan menebak maksud kita. 😄
Apa yang Sedang Dipelajari?
Sekarang kita buat section kedua.
Setelah section Tentang Saya, tambahkan:
<section id="belajar"> <h2>Yang Sedang Saya Pelajari</h2>
<ul> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ul></section>Di sini kita menggunakan list.
<ul> berarti unordered list.
Sedangkan setiap item dibuat menggunakan:
<li>Ini sedikit materi baru, tapi konsepnya masih sama dengan nesting yang sudah kita pelajari.
Strukturnya:
<ul>│├── <li>HTML</li>├── <li>CSS</li>└── <li>JavaScript</li>Silakan ganti isinya.
Tidak harus programming.
Misalnya:
<ul> <li>HTML</li> <li>Main Go</li> <li>Masak nasi goreng</li></ul>Ini halaman Gabuters.
Isinya tidak harus terlihat seperti CV perusahaan. 😄
Tambahkan Link Favorit
Masih di dalam <main>, kita buat section lagi:
<section> <h2>Link Favorit</h2>
<ul> <li> <a href="https://www.bapakgabut.com"> BapakGabut </a> </li>
<li> <a href="https://github.com"> GitHub </a> </li> </ul></section>Sekarang kita kembali menggunakan atribut:
hrefyang sudah pernah kita pelajari.
Kalau Gabuters punya website, profil GitHub, atau halaman lain yang ingin ditampilkan, silakan ganti link tersebut.
Untuk link eksternal pada latihan ini, tidak perlu menambahkan atribut lain yang belum kita pelajari.
Fokus kita tetap pada dasar HTML.
Tambahkan Form Kontak
Sekarang kita gunakan kembali materi form dari artikel sebelumnya.
Tambahkan:
<section id="kontak"> <h2>Hubungi Saya</h2>
<form> <label for="nama">Nama</label> <input type="text" id="nama" name="nama" required >
<label for="email">Email</label> <input type="email" id="email" name="email" required >
<label for="pesan">Pesan</label> <textarea id="pesan" name="pesan" required ></textarea>
<button type="submit"> Kirim </button> </form></section>Kita tidak akan membahas ulang setiap elemennya.
Karena Gabuters sudah pernah membuatnya.
Kalau lupa, itu normal.
Developer juga tidak menghafal semua hal.
Lihat dokumentasi, buka kode lama, baca artikel sebelumnya, lalu lanjut lagi.
Yang penting sekarang kita mulai bisa mengenali:
labelinputtextareabuttontanpa merasa semuanya seperti bahasa alien.
Form ini juga masih belum mengirim data ke backend.
Kita hanya menggunakan kembali struktur form HTML yang sudah dipelajari.
Tutup dengan Footer
Setelah </main>, tambahkan:
<footer> <p>© 2026 BapakGabut</p></footer>Ganti namanya dengan nama Gabuters.
Sekarang kita sudah punya:
header│├── judul├── deskripsi└── nav
main│├── section Tentang├── section Yang Dipelajari├── section Link Favorit└── section Kontak
footerMulai terlihat seperti struktur halaman sungguhan, kan?
Gabungkan Semuanya
Sekarang index.html lengkap kita kurang lebih menjadi:
<!DOCTYPE html><html lang="id"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Profil Saya</title></head><body> <header> <h1>BapakGabut</h1>
<p> Ngoding, main game, dan ngulik apa saja. </p>
<nav> <a href="#tentang">Tentang</a> <a href="#belajar">Sedang Dipelajari</a> <a href="#kontak">Kontak</a> </nav> </header>
<main> <section id="tentang"> <h2>Tentang Saya</h2>
<img src="foto-profil.jpg" alt="Foto profil BapakGabut" width="200" >
<p> Halo! Saya BapakGabut. Saat ini saya sedang belajar membuat website menggunakan HTML. </p>
<p> Saya suka ngulik programming, main game, dan mempelajari hal-hal menarik lainnya. </p> </section>
<section id="belajar"> <h2>Yang Sedang Saya Pelajari</h2>
<ul> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ul> </section>
<section> <h2>Link Favorit</h2>
<ul> <li> <a href="https://www.bapakgabut.com"> BapakGabut </a> </li>
<li> <a href="https://github.com"> GitHub </a> </li> </ul> </section>
<section id="kontak"> <h2>Hubungi Saya</h2>
<form> <label for="nama">Nama</label> <input type="text" id="nama" name="nama" required >
<label for="email">Email</label> <input type="email" id="email" name="email" required >
<label for="pesan">Pesan</label> <textarea id="pesan" name="pesan" required ></textarea>
<button type="submit"> Kirim </button> </form> </section> </main>
<footer> <p>© 2026 BapakGabut</p> </footer></body></html>Tidak perlu langsung copy-paste bagian ini kalau Gabuters tadi sudah membuatnya sedikit demi sedikit.
Justru coba bandingkan dengan kode sendiri.
Apakah strukturnya sama?
Kalau berbeda sedikit, belum tentu salah.
Yang penting kita memahami kenapa setiap bagian dibuat.
Coba Halamannya
Simpan file.
Buka index.html di browser.
Sekarang coba:
- klik navigasi Tentang;
- klik Sedang Dipelajari;
- klik Kontak;
- buka salah satu link;
- isi form;
- kosongkan field
requiredlalu tekan Kirim; - periksa apakah foto muncul.
Kalau semuanya bekerja, berhenti sebentar dan lihat halaman yang baru saja Gabuters buat.
Memang tampilannya masih…
ya…
HTML banget. 😄
Teks hitam.
Background putih.
Form standar browser.
Link biru.
Tapi coba lihat dari sisi lain.
Kita sudah membuat:
- struktur dokumen HTML;
- heading dan paragraf;
- gambar;
- link;
- navigasi dalam halaman;
- list;
- form;
- Semantic HTML.
Dan semuanya berada dalam satu halaman yang kita buat sendiri.
Itu sudah jauh berbeda dibanding ketika kita memulai series ini dengan file HTML kosong.
Jangan Berhenti di Versi Saya
Mini project akan jauh lebih berguna kalau Gabuters mengubahnya menjadi halaman sendiri.
Coba modifikasi:
- nama;
- deskripsi;
- foto;
- daftar minat;
- link;
- isi form;
- judul section.
Boleh juga menambahkan section baru.
Misalnya:
<section> <h2>Game Favorit</h2>
<ul> <li>Zelda</li> <li>Mario Kart</li> <li>Minecraft</li> </ul></section>Atau:
<section> <h2>Target Belajar</h2>
<ol> <li>Menyelesaikan HTML</li> <li>Belajar CSS</li> <li>Belajar JavaScript</li> </ol></section>Di sini kita bertemu <ol>.
Kalau <ul> adalah unordered list, <ol> adalah ordered list.
Browser akan memberi nomor pada setiap item.
Tidak perlu menghafal.
Coba saja.
Lihat hasilnya.
Ubah lagi.
Kalau Rusak, Bagus
Saat mencoba memodifikasi halaman sendiri, sangat mungkin sesuatu akan rusak.
Gambar tidak muncul.
Link salah tujuan.
Elemen masuk ke tempat aneh.
Ada tag yang lupa ditutup.
Itu bukan tanda bahwa Gabuters gagal belajar HTML.
Justru di situlah latihan sebenarnya mulai terjadi.
Kalau semua yang kita lakukan hanya copy-paste kode yang sudah benar, kita memang melihat hasilnya.
Tapi belum tentu memahami kenapa hasil tersebut bisa muncul.
Jadi silakan rusakkan halaman ini.
Lalu coba perbaiki lagi. 😄
Kita Sudah Sampai Mana?
Coba ingat artikel pertama series ini.
Saat itu target kita sederhana:
<h1>Halo, dunia!</h1>Sekarang kita sudah bisa membaca kode seperti:
<section id="kontak"> <h2>Hubungi Saya</h2>
<form> <label for="email">Email</label> <input type="email" id="email" name="email" required >
<button type="submit"> Kirim </button> </form></section>dan kurang lebih memahami apa yang sedang terjadi.
Itulah progres yang kita cari.
Bukan menghafal semua tag HTML.
Bukan bisa menulis seluruh dokumentasi HTML dari kepala.
Tapi ketika melihat struktur HTML, kita sudah tidak merasa sedang melihat kode misterius.
HTML-nya Sudah Ada. Kok Masih Jelek?
Sekarang ada satu masalah yang cukup jelas.
Halaman profil kita bekerja.
Strukturnya juga sudah lumayan.
Tapi tampilannya masih menggunakan gaya bawaan browser.
Kalau kita ingin:
- mengganti warna;
- mengatur ukuran teks;
- memberi jarak;
- membuat card;
- mengatur posisi elemen;
- membuat halaman lebih nyaman dilihat;
HTML bukan alat utamanya.
Kita membutuhkan sesuatu yang memang bertugas mengatur tampilan halaman.
Namanya:
CSS.
Kalau HTML membantu kita menentukan:
Ini judul.Ini paragraf.Ini navigasi.Ini form.Ini footer.CSS nantinya membantu menentukan:
Judulnya sebesar apa?Warnanya apa?Jaraknya berapa?Posisinya di mana?Tampilannya seperti apa?Dan halaman profil yang baru kita buat akan menjadi bahan latihan yang bagus untuk itu.
Untuk sekarang, simpan project ini.
Jangan dibuang.
Karena ketika kita mulai belajar CSS, kita sudah punya sesuatu yang bisa dipercantik.
Sampai sini, fondasi HTML kita sudah terbentuk.
Dan yang paling penting:
Gabuters sudah membuat halaman web sendiri.
HTML
SelesaiBagikan Artikel
Buat poster berbagi atau salin tautan artikel ini.
Lanjut membaca
Coba jalur lain
Pilihan konsisten dari artikel lain
Terakhir diperbarui pada , 31 hari yang lalu
Sebagian konten mungkin sudah tidak berlaku