# Proyek Terrarium Bagian 1: Pengantar HTML ```mermaid journey title Your HTML Learning Journey section Foundation Create HTML file: 3: Student Add DOCTYPE: 4: Student Structure document: 5: Student section Content Add metadata: 4: Student Include images: 5: Student Organize layout: 5: Student section Semantics Use proper tags: 4: Student Enhance accessibility: 5: Student Build terrarium: 5: Student ``` ![Pengantar HTML](../../../../translated_images/webdev101-html.4389c2067af68e98280c1bde52b6c6269f399eaae3659b7c846018d8a7b0bbd9.id.png) > Sketchnote oleh [Tomomi Imura](https://twitter.com/girlie_mac) HTML, atau HyperText Markup Language, adalah dasar dari setiap situs web yang pernah Anda kunjungi. Pikirkan HTML sebagai kerangka yang memberikan struktur pada halaman web – HTML menentukan di mana konten berada, bagaimana konten diatur, dan apa yang diwakili oleh setiap bagian. Sementara CSS nantinya akan "mendandani" HTML Anda dengan warna dan tata letak, dan JavaScript akan menghidupkannya dengan interaktivitas, HTML menyediakan struktur penting yang membuat semuanya menjadi mungkin. Dalam pelajaran ini, Anda akan membuat struktur HTML untuk antarmuka terrarium virtual. Proyek praktis ini akan mengajarkan Anda konsep dasar HTML sambil membangun sesuatu yang menarik secara visual. Anda akan belajar cara mengatur konten menggunakan elemen semantik, bekerja dengan gambar, dan membuat dasar untuk aplikasi web interaktif. Pada akhir pelajaran ini, Anda akan memiliki halaman HTML yang berfungsi, menampilkan gambar tanaman dalam kolom yang terorganisir, siap untuk ditata pada pelajaran berikutnya. Jangan khawatir jika tampilannya sederhana pada awalnya – itulah yang seharusnya dilakukan HTML sebelum CSS menambahkan sentuhan visual. ```mermaid mindmap root((HTML Fundamentals)) Structure DOCTYPE Declaration HTML Element Head Section Body Content Elements Tags & Attributes Self-closing Tags Nested Elements Block vs Inline Content Text Elements Images Containers (div) Lists Semantics Meaningful Tags Accessibility Screen Readers SEO Benefits Best Practices Proper Nesting Valid Markup Descriptive Alt Text Organized Structure ``` ## Kuis Pra-Pelajaran [Kuis pra-pelajaran](https://ff-quizzes.netlify.app/web/quiz/15) > 📺 **Tonton dan Pelajari**: Lihat video ulasan yang bermanfaat ini > > [![Video Dasar-Dasar HTML](https://img.youtube.com/vi/1TvxJKBzhyQ/0.jpg)](https://www.youtube.com/watch?v=1TvxJKBzhyQ) ## Menyiapkan Proyek Anda Sebelum kita mulai dengan kode HTML, mari kita siapkan ruang kerja yang tepat untuk proyek terrarium Anda. Membuat struktur file yang terorganisir sejak awal adalah kebiasaan penting yang akan sangat membantu Anda sepanjang perjalanan pengembangan web. ### Tugas: Buat Struktur Proyek Anda Anda akan membuat folder khusus untuk proyek terrarium Anda dan menambahkan file HTML pertama Anda. Berikut dua pendekatan yang dapat Anda gunakan: **Opsi 1: Menggunakan Visual Studio Code** 1. Buka Visual Studio Code 2. Klik "File" → "Open Folder" atau gunakan `Ctrl+K, Ctrl+O` (Windows/Linux) atau `Cmd+K, Cmd+O` (Mac) 3. Buat folder baru bernama `terrarium` dan pilih folder tersebut 4. Di panel Explorer, klik ikon "New File" 5. Beri nama file Anda `index.html` ![Explorer VS Code menunjukkan pembuatan file baru](../../../../translated_images/vs-code-index.e2986cf919471eb984a0afef231380c8b132b000635105f2397bd2754d1b689c.id.png) **Opsi 2: Menggunakan Perintah Terminal** ```bash mkdir terrarium cd terrarium touch index.html code index.html ``` **Berikut yang dilakukan oleh perintah ini:** - **Membuat** direktori baru bernama `terrarium` untuk proyek Anda - **Masuk** ke direktori terrarium - **Membuat** file kosong `index.html` - **Membuka** file di Visual Studio Code untuk diedit > 💡 **Tips Pro**: Nama file `index.html` memiliki arti khusus dalam pengembangan web. Ketika seseorang mengunjungi sebuah situs web, browser secara otomatis mencari `index.html` sebagai halaman default untuk ditampilkan. Ini berarti URL seperti `https://mysite.com/projects/` akan secara otomatis menampilkan file `index.html` dari folder `projects` tanpa perlu menyebutkan nama file dalam URL. ## Memahami Struktur Dokumen HTML Setiap dokumen HTML mengikuti struktur tertentu yang diperlukan agar browser dapat memahami dan menampilkan dengan benar. Pikirkan struktur ini seperti surat resmi – memiliki elemen yang diperlukan dalam urutan tertentu yang membantu penerima (dalam hal ini, browser) memproses konten dengan benar. ```mermaid flowchart TD A[""] --> B[""] B --> C[""] C --> D[""] C --> E["<meta charset>"] C --> F["<meta viewport>"] B --> G["<body>"] G --> H["<h1> Heading"] G --> I["<div> Containers"] G --> J["<img> Images"] style A fill:#e1f5fe style B fill:#f3e5f5 style C fill:#fff3e0 style G fill:#e8f5e8 ``` Mari kita mulai dengan menambahkan dasar penting yang dibutuhkan setiap dokumen HTML. ### Deklarasi DOCTYPE dan Elemen Root Dua baris pertama dari file HTML mana pun berfungsi sebagai "pengantar" dokumen ke browser: ```html <!DOCTYPE html> <html></html> ``` **Memahami apa yang dilakukan kode ini:** - **Mendeklarasikan** jenis dokumen sebagai HTML5 menggunakan `<!DOCTYPE html>` - **Membuat** elemen root `<html>` yang akan berisi semua konten halaman - **Menetapkan** standar web modern untuk rendering browser yang tepat - **Memastikan** tampilan konsisten di berbagai browser dan perangkat > 💡 **Tips VS Code**: Arahkan kursor ke tag HTML mana pun di VS Code untuk melihat informasi bermanfaat dari MDN Web Docs, termasuk contoh penggunaan dan detail kompatibilitas browser. > 📚 **Pelajari Lebih Lanjut**: Deklarasi DOCTYPE mencegah browser memasuki "quirks mode," yang digunakan untuk mendukung situs web yang sangat lama. Pengembangan web modern menggunakan deklarasi sederhana `<!DOCTYPE html>` untuk memastikan [rendering yang sesuai standar](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). ### 🔄 **Pengecekan Pedagogis** **Berhenti dan Renungkan**: Sebelum melanjutkan, pastikan Anda memahami: - ✅ Mengapa setiap dokumen HTML membutuhkan deklarasi DOCTYPE - ✅ Apa yang terkandung dalam elemen root `<html>` - ✅ Bagaimana struktur ini membantu browser merender halaman dengan benar **Tes Diri Cepat**: Bisakah Anda menjelaskan dengan kata-kata Anda sendiri apa arti "rendering yang sesuai standar"? ## Menambahkan Metadata Dokumen Penting Bagian `<head>` dari dokumen HTML berisi informasi penting yang dibutuhkan browser dan mesin pencari, tetapi tidak langsung terlihat oleh pengunjung di halaman. Pikirkan ini sebagai informasi "di balik layar" yang membantu halaman web Anda berfungsi dengan baik dan tampil dengan benar di berbagai perangkat dan platform. Metadata ini memberi tahu browser cara menampilkan halaman Anda, karakter encoding apa yang digunakan, dan cara menangani berbagai ukuran layar – semua hal penting untuk membuat halaman web yang profesional dan dapat diakses. ### Tugas: Tambahkan Bagian Head Dokumen Masukkan bagian `<head>` ini di antara tag pembuka dan penutup `<html>` Anda: ```html <head> <title>Welcome to my Virtual Terrarium ``` **Memecah apa yang dilakukan setiap elemen:** - **Menetapkan** judul halaman yang muncul di tab browser dan hasil pencarian - **Menentukan** encoding karakter UTF-8 untuk tampilan teks yang benar di seluruh dunia - **Memastikan** kompatibilitas dengan versi modern Internet Explorer - **Mengonfigurasi** desain responsif dengan mengatur viewport agar sesuai dengan lebar perangkat - **Mengontrol** tingkat zoom awal untuk menampilkan konten dalam ukuran alami > 🤔 **Pikirkan Ini**: Apa yang akan terjadi jika Anda menetapkan tag meta viewport seperti ini: ``? Ini akan memaksa halaman selalu memiliki lebar 600 piksel, merusak desain responsif! Pelajari lebih lanjut tentang [konfigurasi viewport yang tepat](https://developer.mozilla.org/docs/Web/HTML/Viewport_meta_tag). ## Membangun Body Dokumen Elemen `` berisi semua konten yang terlihat dari halaman web Anda – segala sesuatu yang akan dilihat dan berinteraksi dengan pengguna. Sementara bagian `` memberikan instruksi kepada browser, bagian `` berisi konten aktual: teks, gambar, tombol, dan elemen lain yang membentuk antarmuka pengguna Anda. Mari tambahkan struktur body dan pahami bagaimana tag HTML bekerja bersama untuk menciptakan konten yang bermakna. ### Memahami Struktur Tag HTML HTML menggunakan tag berpasangan untuk mendefinisikan elemen. Sebagian besar tag memiliki tag pembuka seperti `

` dan tag penutup seperti `

`, dengan konten di antaranya: `

Halo, dunia!

`. Ini menciptakan elemen paragraf yang berisi teks "Halo, dunia!". ### Tugas: Tambahkan Elemen Body Perbarui file HTML Anda untuk menyertakan elemen ``: ```html Welcome to my Virtual Terrarium ``` **Berikut yang disediakan oleh struktur lengkap ini:** - **Menetapkan** kerangka dokumen HTML5 dasar - **Menyertakan** metadata penting untuk rendering browser yang tepat - **Membuat** body kosong yang siap untuk konten yang terlihat - **Mengikuti** praktik terbaik pengembangan web modern Sekarang Anda siap menambahkan elemen yang terlihat dari terrarium Anda. Kita akan menggunakan elemen `
` sebagai wadah untuk mengatur berbagai bagian konten, dan elemen `` untuk menampilkan gambar tanaman. ### Bekerja dengan Gambar dan Wadah Tata Letak Gambar memiliki keistimewaan dalam HTML karena menggunakan tag "self-closing". Tidak seperti elemen seperti `

` yang membungkus konten, tag `` berisi semua informasi yang dibutuhkan dalam tag itu sendiri menggunakan atribut seperti `src` untuk jalur file gambar dan `alt` untuk aksesibilitas. Sebelum menambahkan gambar ke HTML Anda, Anda perlu mengatur file proyek Anda dengan benar dengan membuat folder gambar dan menambahkan grafik tanaman. **Pertama, siapkan gambar Anda:** 1. Buat folder bernama `images` di dalam folder proyek terrarium Anda 2. Unduh gambar tanaman dari [folder solusi](../../../../3-terrarium/solution/images) (total 14 gambar tanaman) 3. Salin semua gambar tanaman ke folder `images` baru Anda ### Tugas: Buat Tata Letak Tampilan Tanaman Sekarang tambahkan gambar tanaman yang diatur dalam dua kolom di antara tag `` Anda: ```html
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
``` **Langkah demi langkah, berikut yang terjadi dalam kode ini:** - **Membuat** wadah halaman utama dengan `id="page"` untuk menampung semua konten - **Menetapkan** dua wadah kolom: `left-container` dan `right-container` - **Mengatur** 7 tanaman di kolom kiri dan 7 tanaman di kolom kanan - **Membungkus** setiap gambar tanaman dalam div `plant-holder` untuk posisi individu - **Menerapkan** nama kelas yang konsisten untuk penataan CSS pada pelajaran berikutnya - **Menetapkan** ID unik untuk setiap gambar tanaman untuk interaksi JavaScript nanti - **Menyertakan** jalur file yang benar yang menunjuk ke folder gambar > 🤔 **Pertimbangkan Ini**: Perhatikan bahwa semua gambar saat ini memiliki teks alt yang sama "plant". Ini tidak ideal untuk aksesibilitas. Pengguna pembaca layar akan mendengar "plant" diulang 14 kali tanpa mengetahui tanaman spesifik apa yang ditampilkan oleh setiap gambar. Bisakah Anda memikirkan teks alt yang lebih baik dan deskriptif untuk setiap gambar? > 📝 **Jenis Elemen HTML**: Elemen `
` adalah "block-level" dan mengambil lebar penuh, sedangkan elemen `` adalah "inline" dan hanya mengambil lebar yang diperlukan. Apa yang menurut Anda akan terjadi jika Anda mengganti semua tag `
` ini dengan tag ``? ### 🔄 **Pengecekan Pedagogis** **Memahami Struktur**: Luangkan waktu untuk meninjau struktur HTML Anda: - ✅ Bisakah Anda mengidentifikasi wadah utama dalam tata letak Anda? - ✅ Apakah Anda memahami mengapa setiap gambar memiliki ID unik? - ✅ Bagaimana Anda akan menjelaskan tujuan dari div `plant-holder`? **Inspeksi Visual**: Buka file HTML Anda di browser. Anda seharusnya melihat: - Daftar sederhana gambar tanaman - Gambar yang diatur dalam dua kolom - Tata letak sederhana tanpa gaya **Ingat**: Tampilan sederhana ini adalah apa yang seharusnya dilakukan HTML sebelum penataan CSS! Dengan markup ini ditambahkan, tanaman akan muncul di layar, meskipun belum terlihat menarik – itulah fungsi CSS pada pelajaran berikutnya! Untuk saat ini, Anda memiliki dasar HTML yang solid yang mengatur konten Anda dengan benar dan mengikuti praktik terbaik aksesibilitas. ## Menggunakan HTML Semantik untuk Aksesibilitas HTML semantik berarti memilih elemen HTML berdasarkan makna dan tujuannya, bukan hanya penampilannya. Ketika Anda menggunakan markup semantik, Anda mengkomunikasikan struktur dan makna konten Anda kepada browser, mesin pencari, dan teknologi bantu seperti pembaca layar. ```mermaid flowchart TD A[Need to add content?] --> B{What type?} B -->|Main heading| C["

"] B -->|Subheading| D["

,

, etc."] B -->|Paragraph| E["

"] B -->|List| F["

    ,
      "] B -->|Navigation| G["