# Projek Terrarium Bahagian 1: Pengenalan kepada 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 ``` ![Pengenalan kepada HTML](../../../../translated_images/webdev101-html.4389c2067af68e98280c1bde52b6c6269f399eaae3659b7c846018d8a7b0bbd9.ms.png) > Sketchnote oleh [Tomomi Imura](https://twitter.com/girlie_mac) HTML, atau HyperText Markup Language, adalah asas kepada setiap laman web yang pernah anda lawati. Fikirkan HTML sebagai rangka yang memberikan struktur kepada halaman web – ia menentukan di mana kandungan diletakkan, bagaimana ia diatur, dan apa yang setiap bahagian wakili. Walaupun CSS nanti akan "menghias" HTML anda dengan warna dan susunan, dan JavaScript akan menghidupkannya dengan interaktiviti, HTML menyediakan struktur penting yang menjadikan segalanya mungkin. Dalam pelajaran ini, anda akan mencipta struktur HTML untuk antara muka terrarium maya. Projek praktikal ini akan mengajar anda konsep asas HTML sambil membina sesuatu yang menarik secara visual. Anda akan belajar bagaimana mengatur kandungan menggunakan elemen semantik, bekerja dengan imej, dan mencipta asas untuk aplikasi web interaktif. Pada akhir pelajaran ini, anda akan mempunyai halaman HTML yang berfungsi memaparkan imej tumbuhan dalam lajur yang teratur, sedia untuk dihias dalam pelajaran seterusnya. Jangan risau jika ia kelihatan asas pada mulanya – itulah yang sepatutnya dilakukan oleh HTML sebelum CSS menambah 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 ``` ## Kuiz Pra-Pelajaran [Kuiz pra-pelajaran](https://ff-quizzes.netlify.app/web/quiz/15) > 📺 **Tonton dan Belajar**: Lihat video ringkasan yang berguna ini > > [![Video Asas HTML](https://img.youtube.com/vi/1TvxJKBzhyQ/0.jpg)](https://www.youtube.com/watch?v=1TvxJKBzhyQ) ## Menyediakan Projek Anda Sebelum kita mula dengan kod HTML, mari kita sediakan ruang kerja yang sesuai untuk projek terrarium anda. Membuat struktur fail yang teratur dari awal adalah tabiat penting yang akan membantu anda sepanjang perjalanan pembangunan web anda. ### Tugasan: Cipta Struktur Projek Anda Anda akan mencipta folder khusus untuk projek terrarium anda dan menambah fail HTML pertama anda. Berikut adalah dua pendekatan yang boleh anda gunakan: **Pilihan 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. Cipta folder baru bernama `terrarium` dan pilihnya 4. Dalam panel Explorer, klik ikon "New File" 5. Namakan fail anda `index.html` ![Explorer VS Code menunjukkan penciptaan fail baru](../../../../translated_images/vs-code-index.e2986cf919471eb984a0afef231380c8b132b000635105f2397bd2754d1b689c.ms.png) **Pilihan 2: Menggunakan Perintah Terminal** ```bash mkdir terrarium cd terrarium touch index.html code index.html ``` **Apa yang dicapai oleh perintah ini:** - **Mencipta** direktori baru bernama `terrarium` untuk projek anda - **Navigasi** ke dalam direktori terrarium - **Mencipta** fail kosong `index.html` - **Membuka** fail dalam Visual Studio Code untuk penyuntingan > 💡 **Tip Pro**: Nama fail `index.html` adalah istimewa dalam pembangunan web. Apabila seseorang melawat laman web, pelayar secara automatik mencari `index.html` sebagai halaman lalai untuk dipaparkan. Ini bermakna URL seperti `https://mysite.com/projects/` akan secara automatik memaparkan fail `index.html` dari folder `projects` tanpa perlu menentukan nama fail dalam URL. ## Memahami Struktur Dokumen HTML Setiap dokumen HTML mengikuti struktur tertentu yang diperlukan oleh pelayar untuk memahami dan memaparkan dengan betul. Fikirkan struktur ini seperti surat rasmi – ia mempunyai elemen yang diperlukan dalam susunan tertentu yang membantu penerima (dalam kes ini, pelayar) memproses kandungan dengan betul. ```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 mulakan dengan menambah asas penting yang diperlukan oleh setiap dokumen HTML. ### Deklarasi DOCTYPE dan Elemen Root Dua baris pertama mana-mana fail HTML berfungsi sebagai "pengenalan" dokumen kepada pelayar: ```html <!DOCTYPE html> <html></html> ``` **Memahami apa yang dilakukan oleh kod ini:** - **Mengisytiharkan** jenis dokumen sebagai HTML5 menggunakan `<!DOCTYPE html>` - **Mencipta** elemen root `<html>` yang akan mengandungi semua kandungan halaman - **Menetapkan** piawaian web moden untuk paparan pelayar yang betul - **Memastikan** paparan konsisten di pelbagai pelayar dan peranti > 💡 **Tip VS Code**: Letakkan kursor pada mana-mana tag HTML dalam VS Code untuk melihat maklumat berguna daripada MDN Web Docs, termasuk contoh penggunaan dan butiran keserasian pelayar. > 📚 **Ketahui Lebih Lanjut**: Deklarasi DOCTYPE menghalang pelayar daripada memasuki "quirks mode," yang digunakan untuk menyokong laman web yang sangat lama. Pembangunan web moden menggunakan deklarasi `<!DOCTYPE html>` yang mudah untuk memastikan [paparan yang mematuhi piawaian](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). ### 🔄 **Pemeriksaan Pedagogi** **Berhenti dan Renungkan**: Sebelum meneruskan, pastikan anda memahami: - ✅ Mengapa setiap dokumen HTML memerlukan deklarasi DOCTYPE - ✅ Apa yang terkandung dalam elemen root `<html>` - ✅ Bagaimana struktur ini membantu pelayar memaparkan halaman dengan betul **Ujian Kendiri Cepat**: Bolehkah anda menerangkan dengan kata-kata anda sendiri apa maksud "paparan yang mematuhi piawaian"? ## Menambah Metadata Dokumen Penting Bahagian `<head>` dalam dokumen HTML mengandungi maklumat penting yang diperlukan oleh pelayar dan enjin carian, tetapi yang tidak dilihat secara langsung oleh pelawat di halaman. Fikirkan ia sebagai maklumat "di belakang tabir" yang membantu laman web anda berfungsi dengan betul dan muncul dengan betul di pelbagai peranti dan platform. Metadata ini memberitahu pelayar bagaimana untuk memaparkan halaman anda, kod pengekodan watak yang hendak digunakan, dan bagaimana untuk mengendalikan saiz skrin yang berbeza – semua ini penting untuk mencipta laman web yang profesional dan boleh diakses. ### Tugasan: Tambah Bahagian Kepala Dokumen Masukkan bahagian `<head>` ini di antara tag pembuka dan penutup `<html>` anda: ```html <head> <title>Welcome to my Virtual Terrarium ``` **Memecahkan apa yang dicapai oleh setiap elemen:** - **Menetapkan** tajuk halaman yang muncul di tab pelayar dan hasil carian - **Menentukan** pengekodan watak UTF-8 untuk paparan teks yang betul di seluruh dunia - **Memastikan** keserasian dengan versi moden Internet Explorer - **Mengkonfigurasi** reka bentuk responsif dengan menetapkan viewport untuk sepadan dengan lebar peranti - **Mengawal** tahap zum awal untuk memaparkan kandungan pada saiz semula jadi > 🤔 **Fikirkan Ini**: Apa yang akan berlaku jika anda menetapkan tag meta viewport seperti ini: ``? Ini akan memaksa halaman sentiasa menjadi 600 piksel lebar, memecahkan reka bentuk responsif! Ketahui lebih lanjut tentang [konfigurasi viewport yang betul](https://developer.mozilla.org/docs/Web/HTML/Viewport_meta_tag). ## Membina Badan Dokumen Elemen `` mengandungi semua kandungan yang boleh dilihat di laman web anda – segala-galanya yang pengguna akan lihat dan berinteraksi. Walaupun bahagian `` memberikan arahan kepada pelayar, bahagian `` mengandungi kandungan sebenar: teks, imej, butang, dan elemen lain yang mencipta antara muka pengguna anda. Mari kita tambah struktur badan dan fahami bagaimana tag HTML bekerjasama untuk mencipta kandungan yang bermakna. ### Memahami Struktur Tag HTML HTML menggunakan tag berpasangan untuk menentukan elemen. Kebanyakan tag mempunyai tag pembuka seperti `

` dan tag penutup seperti `

`, dengan kandungan di antara: `

Hello, world!

`. Ini mencipta elemen perenggan yang mengandungi teks "Hello, world!". ### Tugasan: Tambah Elemen Badan Kemas kini fail HTML anda untuk memasukkan elemen ``: ```html Welcome to my Virtual Terrarium ``` **Inilah yang disediakan oleh struktur lengkap ini:** - **Menetapkan** rangka kerja dokumen HTML5 asas - **Termasuk** metadata penting untuk paparan pelayar yang betul - **Mencipta** badan kosong yang sedia untuk kandungan yang boleh dilihat - **Mengikuti** amalan terbaik pembangunan web moden Sekarang anda sudah bersedia untuk menambah elemen yang boleh dilihat pada terrarium anda. Kita akan menggunakan elemen `
` sebagai bekas untuk mengatur bahagian kandungan yang berbeza, dan elemen `` untuk memaparkan imej tumbuhan. ### Bekerja dengan Imej dan Bekas Susun Atur Imej adalah istimewa dalam HTML kerana ia menggunakan tag "penutup sendiri". Tidak seperti elemen seperti `

` yang membungkus kandungan, tag `` mengandungi semua maklumat yang diperlukan dalam tag itu sendiri menggunakan atribut seperti `src` untuk laluan fail imej dan `alt` untuk kebolehaksesan. Sebelum menambah imej ke HTML anda, anda perlu mengatur fail projek anda dengan betul dengan mencipta folder imej dan menambah grafik tumbuhan. **Pertama, sediakan imej anda:** 1. Cipta folder bernama `images` di dalam folder projek terrarium anda 2. Muat turun imej tumbuhan dari [folder penyelesaian](../../../../3-terrarium/solution/images) (14 imej tumbuhan keseluruhan) 3. Salin semua imej tumbuhan ke dalam folder `images` baru anda ### Tugasan: Cipta Susun Atur Paparan Tumbuhan Sekarang tambahkan imej tumbuhan yang diatur dalam dua lajur di antara tag `` anda: ```html
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
``` **Langkah demi langkah, inilah yang berlaku dalam kod ini:** - **Mencipta** bekas halaman utama dengan `id="page"` untuk memegang semua kandungan - **Menetapkan** dua bekas lajur: `left-container` dan `right-container` - **Mengatur** 7 tumbuhan dalam lajur kiri dan 7 tumbuhan dalam lajur kanan - **Membungkus** setiap imej tumbuhan dalam div `plant-holder` untuk kedudukan individu - **Menggunakan** nama kelas yang konsisten untuk penggayaan CSS dalam pelajaran seterusnya - **Menetapkan** ID unik kepada setiap imej tumbuhan untuk interaksi JavaScript kemudian - **Termasuk** laluan fail yang betul menunjuk ke folder imej > 🤔 **Pertimbangkan Ini**: Perhatikan bahawa semua imej kini mempunyai teks alt yang sama "plant". Ini tidak ideal untuk kebolehaksesan. Pengguna pembaca skrin akan mendengar "plant" diulang 14 kali tanpa mengetahui tumbuhan spesifik yang ditunjukkan oleh setiap imej. Bolehkah anda memikirkan teks alt yang lebih baik dan deskriptif untuk setiap imej? > 📝 **Jenis Elemen HTML**: Elemen `
` adalah "block-level" dan mengambil lebar penuh, manakala elemen `` adalah "inline" dan hanya mengambil lebar yang diperlukan. Apa yang anda fikir akan berlaku jika anda menukar semua tag `
` ini kepada tag ``? ### 🔄 **Pemeriksaan Pedagogi** **Memahami Struktur**: Luangkan masa untuk menyemak struktur HTML anda: - ✅ Bolehkah anda mengenal pasti bekas utama dalam susun atur anda? - ✅ Adakah anda memahami mengapa setiap imej mempunyai ID unik? - ✅ Bagaimana anda akan menerangkan tujuan div `plant-holder`? **Pemeriksaan Visual**: Buka fail HTML anda dalam pelayar. Anda sepatutnya melihat: - Senarai asas imej tumbuhan - Imej yang diatur dalam dua lajur - Susun atur yang mudah dan tidak bergaya **Ingat**: Penampilan asas ini adalah apa yang sepatutnya kelihatan sebelum penggayaan CSS! Dengan markup ini ditambah, tumbuhan akan muncul di skrin, walaupun ia belum kelihatan menarik – itulah tujuan CSS dalam pelajaran seterusnya! Buat masa ini, anda mempunyai asas HTML yang kukuh yang mengatur kandungan anda dengan betul dan mengikuti amalan terbaik kebolehaksesan. ## Menggunakan HTML Semantik untuk Kebolehaksesan HTML semantik bermaksud memilih elemen HTML berdasarkan makna dan tujuannya, bukan hanya penampilannya. Apabila anda menggunakan markup semantik, anda menyampaikan struktur dan makna kandungan anda kepada pelayar, enjin carian, dan teknologi bantuan seperti pembaca skrin. ```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["