JavaScript
Inti segalanya: dari variabel sampai async, testing, dan API nyata.
±120 jam · 0/69 selesai (0%)
Modul 1: Dasar JavaScript
Fondasi berpikir seperti programmer: nilai, keputusan, dan pengulangan.
8 bab dalam modul ini
- 1.1Variabel: let, const (dan kenapa var ditinggalkan)
- 1.2Tipe data primitif: string, number, boolean, null, undefined
- 1.3Operator aritmetika, perbandingan (== vs ===), logika
- 1.4Template literal & manipulasi string dasar
- 1.5Kondisi: if/else, ternary, switch
- 1.6Loop: for, while, for...of
- 1.7Truthy/falsy — sumber bug klasik
- 1.8Type coercion & konversi eksplisit
Modul 2: Fungsi
Unit terkecil kode yang bisa dipakai ulang — dan konsep scope yang menentukan segalanya.
8 bab dalam modul ini
- 2.1Deklarasi fungsi, parameter, return
- 2.2Arrow function & perbedaannya
- 2.3Default parameter & rest parameter
- 2.4Scope: global, function, block
- 2.5Closure — dijelaskan tanpa mistis, dengan kasus nyata
- 2.6Callback: fungsi sebagai argumen
- 2.7Pure function vs side effect
- 2.8Hoisting & temporal dead zone
Modul 3: Array & Object
Struktur data yang kamu pakai setiap hari kerja — kuasai method-methodnya sampai refleks.
9 bab dalam modul ini
- 3.1Array: push/pop, slice/splice, indexOf/includes
- 3.2map, filter, reduce — trio yang muncul di setiap interview
- 3.3find, some, every, sort (dan jebakan sort default)
- 3.4Object: property, method, this dasar
- 3.5Destructuring array & object
- 3.6Spread & rest untuk copy dan merge
- 3.7Reference vs value — kenapa objectmu 'berubah sendiri'
- 3.8JSON: parse & stringify
- 3.9Map & Set — kapan lebih tepat dari object/array
- ‹›Array dan aksesnyaPraktek
- ‹›map: mengubah setiap elemenPraktek
- ‹›filter: menyaring elemenPraktek
- ‹›reduce: meringkas jadi satu nilaiPraktek
- ‹›Object dan aksesnyaPraktek
- ‹›DestructuringPraktek
- ‹›Spread: menyalin tanpa merusakPraktek
- ‹›find dan includesPraktek
- ‹›sort dan Jebakan UrutannyaPraktek
- ?Kuis: Array & ObjectKuis
Modul 4: DOM: JavaScript Bertemu HTML
Membuat halaman hidup: seleksi elemen, event, dan manipulasi.
8 bab dalam modul ini
- 4.1document.querySelector & querySelectorAll
- 4.2Mengubah teks, atribut, class (classList), dan style
- 4.3createElement, append, remove — membangun UI dari data
- 4.4addEventListener: click, input, submit
- 4.5Event object, preventDefault, dan event delegation
- 4.6Form handling: membaca nilai & validasi custom
- 4.7dataset (data-* attribute)
- 4.8Merender list dari array — pola dasar semua framework
Modul 5: JavaScript Modern (ES6+)
Sintaks yang dipakai codebase modern — wajib lancar sebelum React.
7 bab dalam modul ini
- 5.1Module: import/export, default vs named
- 5.2Optional chaining (?.) & nullish coalescing (??)
- 5.3Short-circuit && || untuk conditional
- 5.4Enhanced object literal & computed property
- 5.5Array/object method modern: at, flat, structuredClone
- 5.6Iterator & generator (pengenalan)
- 5.7Tooling ringkas: npm, bundler, dan kenapa mereka ada
Modul 6: Asynchronous & Fetch API
Materi yang paling sering keluar di interview junior — dari callback hell sampai async/await.
9 bab dalam modul ini
- 6.1Event loop: kenapa JS tidak 'menunggu'
- 6.2setTimeout/setInterval & callback pattern
- 6.3Promise: then, catch, finally, chaining
- 6.4async/await & try/catch
- 6.5fetch: GET, POST, header, body JSON
- 6.6Menangani response: status code, ok, json()
- 6.7Promise.all / allSettled / race untuk request paralel
- 6.8Loading & error state — pola UI yang benar
- 6.9Konsumsi REST API publik nyata
Modul 7: Error Handling & Debugging
Skill kerja yang jarang diajarkan: membaca error, melacak bug, memakai DevTools.
7 bab dalam modul ini
- 7.1Jenis error: SyntaxError, TypeError, ReferenceError
- 7.2Membaca stack trace dari bawah ke atas
- 7.3try/catch/finally & throw — kapan melempar error sendiri
- 7.4console di luar log: table, group, time, trace
- 7.5Breakpoint & step debugging di DevTools
- 7.6Network tab: memeriksa request yang gagal
- 7.7Strategi debugging sistematis (reproduce → isolate → fix)
Modul 8: OOP & Functional Programming Dasar
Dua paradigma yang membentuk kode di dunia nyata — cukup untuk membaca codebase apa pun.
7 bab dalam modul ini
- 8.1Class: constructor, method, field
- 8.2Inheritance & extends — plus kapan menghindarinya
- 8.3this: aturan yang sebenarnya, bind/call/apply
- 8.4Prototype: apa yang terjadi di balik class
- 8.5Getter, setter, static
- 8.6Immutability & kenapa framework menyukainya
- 8.7Komposisi fungsi & higher-order function
Modul 9: Browser API
Kemampuan bawaan browser yang dipakai fitur nyata: penyimpanan, URL, dan observer.
7 bab dalam modul ini
- 9.1localStorage & sessionStorage (dan batasnya)
- 9.2URL & URLSearchParams — parsing query string
- 9.3History API dasar
- 9.4Timer & requestAnimationFrame
- 9.5IntersectionObserver: lazy load & infinite scroll
- 9.6Clipboard, geolocation (pengenalan)
- 9.7FormData untuk upload
Modul 10: Testing Dasar
Pembeda di interview junior: bisa menulis unit test dengan Vitest.
7 bab dalam modul ini
- 10.1Kenapa test ada: regresi & refactoring dengan percaya diri
- 10.2Anatomi test: describe, it/test, expect
- 10.3Matcher penting: toBe, toEqual, toThrow, toContain
- 10.4Arrange–Act–Assert
- 10.5Menguji edge case: input kosong, null, angka negatif
- 10.6Mock dasar: vi.fn dan kapan mock berlebihan
- 10.7TDD ringan: test dulu untuk fungsi murni