HTML (HyperText Markup Language) adalah bahasa standar untuk membuat dan menyusun halaman web. HTML bukanlah bahasa pemrograman, melainkan bahasa markup yang menggunakan tag untuk mendefinisikan elemen-elemen dalam halaman web.
Sejarah HTML
1991 - HTML 1.0 (Tim Berners-Lee)
1995 - HTML 2.0
1997 - HTML 3.2
1999 - HTML 4.01
2014 - HTML5 (Versi terkini)
Mengapa Harus Belajar HTML?
🌐 Fondasi Web - Semua website menggunakan HTML
📱 Mudah Dipelajari - Sintaks yang mudah dipahami
🎨 Kreatif - Batas kreativitas sangat luas
💼 Demand Tinggi - Profesi front-end developer
Persiapan Lingkungan Kerja
<!-- Alat yang dibutuhkan: -->1. Text Editor: VS Code (recommended), Sublime Text, Notepad++2. Browser: Chrome, Firefox, Edge3. Ekstensi VS Code: Live Server, Prettier<!-- Struktur folder proyek: -->
proyek-website/
├── index.html
├── style.css
├── script.js
└── images/
└── logo.png
Struktur Dasar HTML
<!DOCTYPE html><htmllang="id"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Judul Halaman</title></head><body><!-- Konten website ada di sini --><h1>Hello, World!</h1><p>Ini paragraf pertama saya</p></body></html>
Penjelasan Setiap Tag
Tag
Fungsi
<!DOCTYPE html>
Deklarasi dokumen HTML5
<html>
Root element HTML
<head>
Informasi meta halaman
<body>
Konten yang ditampilkan
<title>
Judul di tab browser
📹 Video Tutorial Bagian 1:
🏷️ Bagian 2: Tag HTML Dasar
Heading (Judul)
HTML menyediakan 6 level heading, dari <h1> (paling besar) hingga <h6> (paling kecil).
<h1>Judul Utama (H1)</h1><h2>Sub Judul (H2)</h2><h3>Sub Sub Judul (H3)</h3><h4>Judul Level 4</h4><h5>Judul Level 5</h5><h6>Judul Level 6</h6>
Paragraf dan Text Formatting
<!-- Paragraf -->
Ini adalah paragraf yang berisi beberapa kalimat.
<!-- Text Formatting --><b>Teks Bold</b><strong>Teks Penting (Bold)</strong><i>Teks Italic</i><em>Teks Emphasis (Italic)</em><u>Teks Underline</u><s>Teks Strikethrough</s><mark>Teks Highlight</mark><sup>Superscript (x²)</sup><sub>Subscript (H₂O)</sub>
Link (Hyperlink)
<!-- Link ke website lain --><ahref="https://google.com">Klik untuk ke Google</a><!-- Link membuka di tab baru --><ahref="https://youtube.com"target="_blank">Buka YouTube (Tab Baru)</a><!-- Link ke halaman lain di website --><ahref="tentang.html">Tentang Kami</a><!-- Link ke bagian tertentu (anchor) --><ahref="#bagian1">Ke Bagian 1</a>
Gambar
<!-- Gambar dari folder lokal --><imgsrc="images/logo.png"alt="Logo Website"><!-- Gambar dari internet --><imgsrc="https://example.com/foto.jpg"alt="Foto Contoh"width="300"height="200"><!-- Gambar sebagai link --><ahref="https://google.com"><imgsrc="logo.png"alt="Logo Google"></a>
List (Daftar)
<!-- Unordered List (Bullet) --><ul><li>Apel</li><li>Jeruk</li><li>Mangga</li></ul><!-- Ordered List (Angka) --><ol><li>Langkah pertama</li><li>Langkah kedua</li><li>Langkah ketiga</li></ol><!-- Description List --><dl><dt>HTML</dt><dd>HyperText Markup Language</dd><dt>CSS</dt><dd>Cascading Style Sheets</dd></dl>
<formaction="proses.php"method="POST"><!-- Field form akan diletakkan di sini --><label>Nama:</label><inputtype="text"name="nama"required><buttontype="submit">Kirim</button></form>
Jenis-Jenis Input
<!-- Text Input --><label>Nama Lengkap:</label><inputtype="text"name="nama"placeholder="Masukkan nama"><!-- Email --><inputtype="email"name="email"placeholder="email@example.com"><!-- Password --><inputtype="password"name="password"><!-- Number --><inputtype="number"name="usia"min="1"max="100"><!-- Date --><inputtype="date"name="tanggal"><!-- Color --><inputtype="color"name="warna"><!-- File --><inputtype="file"name="berkas"><!-- Checkbox --><inputtype="checkbox"name="hobi"value="coding"> Coding
<inputtype="checkbox"name="hobi"value="gaming"> Gaming
<!-- Radio Button --><inputtype="radio"name="jk"value="laki"> Laki-laki
<inputtype="radio"name="jk"value="perempuan"> Perempuan
<!-- Required (Wajib diisi) --><inputtype="text"required><!-- Panjang minimum --><inputtype="text"minlength="3"><!-- Panjang maksimum --><inputtype="text"maxlength="50"><!-- Pattern (Regex) --><inputtype="tel"pattern="[0-9]{4}-[0-9]{4}-[0-9]{4}"placeholder="0812-3456-7890">
📹 Video Tutorial Bagian 3:
🎨 Bagian 4: Pengenalan CSS
Apa itu CSS?
CSS (Cascading Style Sheets) adalah bahasa yang digunakan untuk mengatur tampilan dan format halaman web. Dengan CSS, Anda dapat mengubah warna, font, layout, dan lainnya.
.kotak {
width: 100px;
height: 100px;
background: blue;
/* Transition: property duration timing-function */transition: all 0.3s ease;
}
.kotak:hover {
width: 200px;
background: red;
transform: rotate(45deg);
}
/* Timing Functions *//* ease - Mulai lambat, cepat, akhir lambat *//* linear - Kecepatan tetap *//* ease-in - Mulai lambat, akhir cepat *//* ease-out - Mulai cepat, akhir lambat *//* ease-in-out - Mulai dan akhir lambat */
Bootstrap adalah framework CSS paling populer untuk membuat website responsif dan mobile-first. Bootstrap menyediakan komponen UI siap pakai seperti navbar, card, modal, dan lain-lain.
Mengapa Menggunakan Bootstrap?
🎨 Mudah Digunakan - Tidak perlu menulis CSS dari nol
Sass (Syntactically Awesome Style Sheets) adalah CSS preprocessor yang memperluas kemampuan CSS dengan fitur seperti variabel, nesting, mixins, dan inheritance. Sass membantu menulis CSS yang lebih modular dan mudah dikelola.
Mengapa Menggunakan Sass?
📦 Variabel - Simpan nilai untuk digunakan kembali
🧩 Nesting - Tulis selector bersarang seperti HTML
🔄 Mixins - Kumpulan style yang bisa digunakan ulang
📊 Operator - Lakukan perhitungan matematika
🔨 Modular - Pisahkan file menjadi bagian-bagian kecil
Instalasi Sass
<!-- Install Sass via npm -->
npm install -g sass
<!-- Compile file sass ke css -->
sass input.scss output.css
<!-- Watch mode - auto compile saat ada perubahan -->
sass --watch input.scss output.css
<!-- Compile seluruh folder -->
sass --watch styles/scss:styles/css
// CSS Biasa
nav ul {
margin: 0;
padding: 0;
list-style: none;
}
nav ul li {
display: inline-block;
}
nav ul li a {
text-decoration: none;
color: blue;
}
// Dengan Sass (Nesting)
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
li {
display: inline-block;
a {
text-decoration: none;
color: blue;
&:hover {
color: red;
}
}
}
}
}
Responsive Design adalah pendekatan desain web yang memastikan tampilan website optimal di berbagai ukuran layar, mulai dari smartphone hingga desktop.
Strategi Responsive Design
📐 Mobile-First - Desain dari ukuran terkecil dulu
🔄 Fluid Layout - Gunakan persentase, bukan fixed pixel
🖼️ Responsive Images - Gambar menyesuaikan ukuran layar
📊 Media Queries - Atur style berdasarkan kondisi tertentu
Breakpoints yang Direkomendasikan
/* Extra small devices (phones) */@mediamax-width: 575px {
.container { width: 100%; }
}
/* Small devices (landscape phones) */@mediamin-width: 576px and max-width: 767px {
.container { width: 540px; }
}
/* Medium devices (tablets) */@mediamin-width: 768px and max-width: 991px {
.container { width: 720px; }
}
/* Large devices (desktops) */@mediamin-width: 992px and max-width: 1199px {
.container { width: 960px; }
}
/* Extra large devices (large desktops) */@mediamin-width: 1200px {
.container { width: 1140px; }
}
SEO (Search Engine Optimization) adalah teknik mengoptimalkan website agar muncul di posisi tinggi di hasil pencarian Google. SEO membantu meningkatkan traffic organik ke website Anda.
Mengapa SEO Penting?
🔎 Visibilitas - Website lebih mudah ditemukan
📈 Traffic - Tingkatkan kunjungan organik
💰 Biaya Efektif - Gratis dibanding iklan
⏰ Kredibilitas - Website di halaman pertama dipercaya lebih
On-Page SEO Elements
<!-- Title Tag - Sangat Penting! --><head><title>Judul Halaman yang Optimasi SEO | Nama Website</title></head><!-- Meta Description --><metaname="description"content="Deskripsi singkat tentang halaman ini. Include kata kunci utama. Panjang ideal 150-160 karakter."><!-- Meta Keywords (tidak terlalu penting sekarang) --><metaname="keywords"content="tutorial html, belajar css, pemrograman web"><!-- Canonical URL - Hindari konten duplikat --><linkrel="canonical"href="https://example.com/halaman-utama"><!-- Viewport untuk Mobile-Friendly --><metaname="viewport"content="width=device-width, initial-scale=1.0">
Struktur Heading yang Benar
<!-- Hanya satu H1 per halaman --><h1>Judul Utama Halaman (Menggunakan Kata Kunci)</h1><h2>Sub Judul (Subtopik Utama)</h2><h3>Sub-sub Judul (Detail)</h3><h3>Sub-sub Judul Lainnya</h3><h4>Detail Lebih Spesifik</h4><!-- Contoh Struktur Blog Post --><article><h1>Cara Belajar Pemrograman untuk Pemula</h1><pclass="lead">Artikel lengkap tentang...</p><h2>1. Mengapa Belajar Pemrograman?</h2><h3>1.1 Benefits of Programming</h3><h2>2. Cara Memulai</h2><h3>2.1 Pilih Bahasa Pemrograman</h3><h3>2.2 Ikut Kursus Online</h3></article>
Optimasi Gambar untuk SEO
<!-- Alt Text yang Deskriptif --><imgsrc="gambar-laptop-coding.jpg"alt="Seseorang sedang belajar coding dengan laptop di cafe"width="800"height="600"><!-- Lazy Loading - Loading lebih cepat --><imgsrc="gambar.jpg"alt="Deskripsi"loading="lazy"><!-- Responsive Images dengan srcset --><imgsrc="small.jpg"srcset="small.jpg 500w, medium.jpg 1000w, large.jpg 1500w"sizes="(max-width: 600px) 100vw, 50vw"alt="Contoh gambar responsif"><!-- Nama File yang Deskriptif -->❌ img_001.jpg✅ cara-belajar-html-untuk-pemula.jpg
Internal Linking
<!-- Link ke halaman lain dengan anchor text yang relevan --><ahref="/tutorial-css"title="Tutorial CSS Lengkap">
Pelajari juga tutorial CSS kami
</a><!-- Breadcrumb Navigation --><navaria-label="breadcrumb"><olclass="breadcrumb"><liclass="breadcrumb-item"><ahref="/">Home</a></li><liclass="breadcrumb-item"><ahref="/tutorial">Tutorial</a></li><liclass="breadcrumb-item active">HTML</li></ol></nav>
✅ ON-PAGE SEO CHECKLIST:1. Title Tag - Panjang 50-60 karakter - Gunakan kata kunci di awal - Unique untuk setiap halaman2. Meta Description - Panjang 150-160 karakter - Gunakan call-to-action - Include kata kunci3. Heading Structure - Satu H1 per halaman - Gunakan H2-H6 secara berurut4. URL Structure - Short & descriptive - Gunakan hyphen sebagai separator - Include kata kunci5. Image Optimization - Alt text untuk semua gambar - Kompres ukuran file - Gunakan lazy loading6. Mobile-Friendly - Responsive design - Test dengan Google Mobile-Friendly Test7. Page Speed - Optimize images - Minify CSS/JS - Use CDN