JavaScript DOM
Target: Pemula yang sudah memahami dasar JavaScript (variabel, fungsi, array, dan object) serta ingin menguasai manipulasi halaman web secara dinamis menggunakan Document Object Model (DOM API). Versi: Modern DOM API / HTML5 Prasyarat: JavaScript Dasar Fokus modul pembelajaran ini: mental model DOM tree → document & node → modern selectors → manipulasi teks, atribut, & style → event handling & bubbling → event delegation → form & table manipulation → performa DocumentFragment → keamanan XSS → mini project.
Cara Belajar
🟢 Fundamental
→ wajib dipahami untuk mencari elemen, mengubah teks, atribut, style, dan penanganan dasar
🟡 Lanjutan
→ pelajari setelah fundamental nyaman: event delegation, form/table handling, template, & window
🔴 Advanced / Operasional
→ penting untuk optimasi performa rendering batching dan keamanan proteksi serangan XSSMental model interaksi JavaScript terhadap DOM Tree di Browser:
Dokumen HTML mentah (File .html)
│
▼
Browser Parsing Engine
│
▼
Pohon Objek di Memori (DOM Tree)
│
┌───────────────┼───────────────┐
▼ ▼ ▼
Selectors Mutations Events
(querySelector) (append/remove) (addEventListener)
│ │ │
└───────────────┼───────────────┘
│
▼
Tampilan Layar Ter-update Dinamis (Repaint)Hafalan:
DOM → Struktur data pohon objek di browser yang mewakili dokumen HTML
Node → Entitas dasar dalam pohon DOM (Element, Text, Comment, Document)
Element → Node khusus yang berbentuk tag HTML (<tag>)
Selector → Perintah pencarian elemen DOM menggunakan aturan CSS Selector
Event → Sinyal kejadian interaksi pengguna (klik, ketik, submit, scroll)Daftar Isi
🟢 Fundamental
- Pengenalan DOM & Mental Model Pohon Dokumen
- Menyiapkan Struktur HTML & File Script
- Tipe Data DOM (Document, Element, Node, NodeList, Event)
- Document Object (Pintu Masuk Utama DOM)
- Node & Hubungan Keluarga Node (Parent, Child, Sibling)
- Node Type & Node Constants
- Element vs Node & Membuat Elemen (createElement, append)
- Text Node & Text Content
- Selector Modern (querySelector & querySelectorAll)
- Selector Klasik (getElementById, getElementsByClassName, getElementsByTagName)
- NodeList vs HTMLCollection (Live vs Static Collection)
- Modifikasi Teks & Konten (textContent, innerText, innerHTML)
- Manipulasi Atribut (getAttribute, setAttribute, dataset)
- NamedNodeMap & Attr Object
- Manipulasi Style & Class CSS (style, classList)
🟡 Lanjutan
- Event Listener & Handler (addEventListener, removeEventListener)
- Event Object & Event Flow (Capturing, Bubbling, stopPropagation, preventDefault)
- Event Delegation (Pola Penanganan Event Skalabel)
- Window Object (Global Browser Context, innerHeight, scrollY, Dialogs)
- HTML Element & DOM Lifecycle (DOMContentLoaded vs load)
- HTML Form Element (Input, Select, Checkbox, Radio, FormData, Validation)
- HTML Table Element & Dinamis Table Manipulation (insertRow, insertCell)
- HTML Custom Elements & Template Element (