๐ŸŽจ Phase 2 โ€” CSS
P08 ยท Pertemuan 8 dari 20

Pengenalan CSS & Selector

Mengenal CSS, cara menghubungkan stylesheet, dan menguasai berbagai jenis selector dari dasar hingga kombinasi dan pseudo-selector.

Phase
Phase 2 โ€” CSS
Topik
CSS Fundamentals
Durasi
90 Menit
Deadline Tugas
Sebelum Pertemuan Berikutnya โ€” Pukul 23.59 WIB
๐ŸŽฏTujuan Pembelajaran
  • 01Menghubungkan CSS ke HTML: inline, internal, external
  • 02Menggunakan selector: element, class (.), id (#)
  • 03Menerapkan selector kombinasi: descendant, child (>), sibling (+, ~)
  • 04Menggunakan pseudo-selector: :first-child, :last-child, :nth-child(n)
  • 05Memahami specificity dan cascade
  • 06Mengenal inheritance CSS
๐Ÿ“–Sub-topik & Materi
  • 01Cara menghubungkan CSS: inline, internal, external (rekomendasi)
  • 02Selector dasar: element, class (.), id (#)
  • 03Selector kombinasi: descendant, child (>), adjacent sibling (+), general sibling (~)
  • 04Pseudo-class: :first-child, :last-child, :nth-child(n), :hover, :focus
  • 05Specificity: ID > Class > Element
  • 06Cascade dan inheritance
๐Ÿ’กPenjelasan Konsep
Konsep 1
Tiga Cara Menulis CSS
CSS bisa ditulis 3 cara: Inline (langsung di atribut style tag HTML โ€” hindari), Internal (di dalam tag <style> di <head> โ€” untuk halaman tunggal), External (di file .css terpisah yang di-link โ€” TERBAIK karena satu file CSS bisa dipakai banyak halaman). Selalu gunakan external CSS untuk project nyata.
html
<!-- 1. Inline: hindari ini -->
<p style="color: red; font-size: 16px;">Teks merah</p>

<!-- 2. Internal: di dalam <head> -->
<style>
  p { color: blue; }
</style>

<!-- 3. External: file terpisah (TERBAIK) -->
<link rel="stylesheet" href="style.css">
Konsep 2
Selector CSS: Element, Class, ID
Selector menentukan elemen HTML mana yang akan di-styling. Element selector (p, h1) berlaku untuk SEMUA elemen tersebut. Class selector (.nama-kelas) bisa dipakai berkali-kali di banyak elemen. ID selector (#nama-id) hanya untuk SATU elemen unik per halaman. Kombinasikan untuk hasil yang lebih spesifik.
css
/* Element selector */
p { color: gray; }

/* Class selector (didahului titik) */
.tombol { background: blue; color: white; }

/* ID selector (didahului #) */
#header { background: black; }

/* Kombinasi: <;p class="penting"> */
p.penting { font-weight: bold; }

/* Descendant: <;div><p>...</p></div> */
div p { margin: 0; }
Konsep 3
Specificity โ€” Prioritas CSS
Ketika beberapa aturan CSS berlaku pada elemen yang sama, specificity menentukan mana yang menang. ID paling kuat, lalu class, lalu element. Hitung dengan format (ID, Class, Element): h1 = (0,0,1), .judul = (0,1,0), #header = (1,0,0). Yang lebih tinggi selalu menang.
css
/* (0,0,1) โ€” paling lemah */
p { color: black; }

/* (0,1,0) โ€” lebih kuat */
.teks { color: blue; }

/* (1,0,0) โ€” paling kuat */
#konten { color: red; }

/* Elemen dengan semua class di atas: */
/* <p class="teks" id="konten"> */
/* Warna akhir = red (ID menang) */
Konsep 4
Pseudo-class dan Pseudo-element
Pseudo-class (:hover, :focus, :first-child) memilih elemen berdasarkan STATE atau POSISI. Pseudo-element (::before, ::after, ::first-line) memilih BAGIAN dari elemen. Notasi pseudo-class satu titik dua (:hover), pseudo-element dua titik dua (::before).
css
/* Pseudo-class: state */
a: hover { color: orange; }
input: focus { border-color: blue; outline: none; }
li: first-child { font-weight: bold; }
li: nth-child(2n) { background: #f0f0f0; } /* baris genap */

/* Pseudo-element: bagian elemen */
p: :first-line { font-variant: small-caps; }
.card: :before { content: "โ˜… "; color: gold; }
๐Ÿ’ปContoh Kode Lengkap
css
/* === Selector Dasar === */
h1 { color: #1A4A8A; }          /* Element selector */
.kartu { padding: 20px; }        /* Class selector */
#header { background: #fff; }    /* ID selector */

/* === Selector Kombinasi === */
nav a { text-decoration: none; } /* Descendant */
ul > li { color: #333; }         /* Direct child */
h1 + p { margin-top: 0; }        /* Adjacent sibling */
h2 ~ p { color: gray; }          /* General sibling */

/* === Pseudo-class === */
li: first-child { font-weight: bold; }
li: last-child { border-bottom: none; }
li: nth-child(2n) { background: #f5f5f5; }

/* === Pseudo-class Interaktif === */
a: hover { color: #F4A300; }
input: focus { border-color: #1A4A8A; outline: none; }
โšกLatihan Kelas ยท Berikan warna latar, warna teks, dan ukuran font pada elemen-elemen halaman profil
1
Buat file style.css dan hubungkan ke halaman Mini Project P06
2
Styling elemen dasar: body, h1, h2, p, a menggunakan element selector
3
Tambahkan class pada beberapa elemen dan styling dengan class selector
4
Buat efek hover pada semua link navigasi
5
Gunakan :nth-child untuk warna zebra pada list atau tabel
๐Ÿ“ Tugas 3.1 โ€” CSS Selector
โฐ Deadline: Sebelum Pertemuan Berikutnya โ€” Pukul 23.59 WIB

Styling halaman profil (P01/P02) menggunakan minimal 5 jenis selector berbeda. Harus ada: element, class, id, pseudo-class (:hover), dan minimal 1 selector kombinasi. Simpan CSS di file eksternal.

Kriteria PenilaianPoin
CSS disimpan di file eksternal (.css) dan ter-link dengan benar20
Minimal 5 jenis selector berbeda digunakan30
Pseudo-class :hover digunakan pada minimal 2 elemen25
Warna dan ukuran font konsisten di seluruh halaman25
Total100
โš ๏ธKesalahan yang Sering Dibuat
Salah selector: menulis .#nama (gabungan titik dan #) โ€” class pakai titik, ID pakai #
Lupa titik koma (;) setelah setiap properti โ€” CSS akan gagal dari titik koma yang hilang
Salah tulis nama properti: "font-colour" harusnya "color", "backround" harusnya "background"
Conflict specificity: class tidak bisa override ID tanpa !important โ€” desain ulang selector
Tidak menyambungkan file CSS: lupa tag <link rel="stylesheet" href="style.css"> di HTML
๐Ÿ’ก Tips Instruktur
External CSS selalu lebih baik dari inline atau internal
Specificity: ID (1-0-0) > Class (0-1-0) > Element (0-0-1)
!important hanya untuk override darurat, hindari penggunaan rutin
DevTools (F12 > Elements) untuk melihat CSS yang berlaku pada elemen
๐Ÿ“‹ Checklist Belajar
Pahami konsep sebelum latihan
Coba kode sendiri tanpa copy-paste
Kerjakan tugas sebelum deadline
Tanya instruktur jika ada yang belum jelas
Parelabs Academy - Kursus Bahasa Inggris Terbaik Offline & Online