kodingup.camp

Beranda/Bekal Wajib: Cara Kerja Web, Tools, Git & Cara Belajar

Cara Belajar, Riset & Bertanya

Modul 9 dari 97 menit bacaLearning, Research and Soft Skills

Isi modul

    Kenapa ini penting

    Teknologi web berubah terus. Framework yang populer hari ini bisa tergeser dalam beberapa tahun, dan tidak ada kursus yang bisa mengajarkan semuanya. Skill yang paling menentukan bukan hafalan sintaks, melainkan kemampuan belajar sendiri, mencari jawaban, bertanya dengan baik, dan bekerja bersama orang lain. MDN menaruh soft skills di modul paling awal kurikulumnya karena alasan ini. Developer senior pun setiap hari membuka dokumentasi dan mencari pesan error; bedanya, mereka tahu cara mencari dengan cepat. Modul ini juga membahas cara memakai asisten AI dengan benar, supaya AI mempercepat belajarmu, bukan menggantikan otakmu.

    Konsep inti

    Pola pikir belajar terus-menerus

    Membaca dokumentasi

    Dokumentasi resmi adalah sumber paling akurat. Struktur halaman MDN untuk sebuah fitur biasanya: deskripsi singkat, Syntax (bentuk penulisan), Parameters dan Return value, Examples, Specifications, dan Browser compatibility. Strategi membaca: baca paragraf pertama, lompat ke Examples, coba jalankan contohnya, lalu kembali ke detail parameter kalau butuh. Untuk tool (Git, npm, framework), selalu cek dokumentasi untuk versi yang kamu pakai, karena API bisa berubah antar versi.

    Membaca pesan error

    Pesan error punya struktur yang bisa dibaca: jenis error, pesan, dan lokasi (file dan nomor baris). Contoh:

    Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')
        at main.js:3:30
    

    Artinya: jenis TypeError, kamu mencoba memakai addEventListener pada sesuatu yang bernilai null (elemen tidak ditemukan), di file main.js baris 3 kolom 30. Langkah membaca error:

    1. Baca baris pertama dengan pelan, terjemahkan kalau perlu.
    2. Lihat file dan nomor baris, buka lokasi itu.
    3. Tanyakan: nilai apa yang tidak sesuai harapan? Cek dengan console.log.
    4. Kalau masih bingung, salin bagian pesan yang umum (tanpa nama file atau variabelmu) ke mesin pencari.

    Cara googling seperti developer

    Stack Overflow, forum, dan komunitas

    Stack Overflow adalah situs tanya-jawab programmer. Cara memakainya dengan benar: lihat jawaban yang diterima (tanda centang) dan jawaban dengan suara terbanyak, baca komentar di bawahnya (sering berisi koreksi), perhatikan tanggal, dan pahami kodenya sebelum menyalin. Selain itu ada GitHub Issues (untuk masalah library tertentu), forum resmi framework, dan komunitas lokal (grup Discord/Telegram, meetup). Bergabung dengan komunitas membuatmu tidak belajar sendirian.

    Bertanya yang baik

    Sebelum bertanya, lakukan rubber duck debugging: jelaskan masalahmu baris demi baris ke benda mati (bebek karet, boneka). Sering kali kamu menemukan jawabannya sendiri saat menjelaskan. Kalau tetap buntu, pertanyaan yang baik memuat:

    1. Tujuan: apa yang ingin kamu capai.
    2. Yang sudah dicoba: apa saja langkahmu dan hasilnya.
    3. Hasil yang diharapkan vs yang terjadi.
    4. Pesan error lengkap (sebagai teks, bukan foto layar dari HP).
    5. Kode minimal yang bisa mereproduksi masalah (minimal reproducible example), bukan seluruh proyek.
    6. Lingkungan: OS, browser, versi Node/library.

    Jangan bertanya "Ada yang bisa bantu?" lalu menunggu. Langsung tulis pertanyaannya. Setelah masalah selesai, tulis solusinya di thread yang sama supaya orang lain terbantu, dan ucapkan terima kasih.

    Memakai asisten AI dengan benar

    Asisten AI (ChatGPT, Claude, Copilot, dan lainnya) bisa menjelaskan konsep, memberi contoh, dan membantu mencari bug. Tetapi MDN mengingatkan: alat ini sering memberi jawaban yang salah atau menyesatkan dengan nada yakin, jadi hasilnya harus diverifikasi dengan sumber lain. Aturan sehat untuk pemula:

    Lakukan Hindari
    Minta AI menjelaskan konsep atau pesan error dengan bahasa sederhana Menyalin kode yang tidak kamu pahami ke proyek
    Coba selesaikan sendiri dulu 20 sampai 30 menit, baru minta petunjuk Meminta AI mengerjakan seluruh latihan
    Minta petunjuk, bukan jawaban: "Beri saya hint, jangan solusinya" Percaya versi/API yang disebut AI tanpa cek dokumentasi
    Verifikasi di MDN/dokumentasi resmi, lalu jalankan dan uji kodenya Menempelkan password, token, atau data pribadi ke chat AI
    Minta AI me-review kode yang kamu tulis sendiri Mematikan otak karena "nanti AI yang mikir"

    Tes sederhana apakah kamu bergantung: bisakah kamu menjelaskan setiap baris kode di proyekmu dan menulis ulang tanpa bantuan? Kalau tidak, kamu belum belajar, kamu baru menyalin. Saat wawancara kerja dan live coding, yang dinilai adalah pemahamanmu sendiri.

    Portofolio dan kerja tim

    Contoh kode

    Membaca dan menyelesaikan error nyata. Kode di bawah sengaja salah:

    <!DOCTYPE html>
    <html lang="id">
    <head>
      <meta charset="UTF-8">
      <title>Debug</title>
      <script src="main.js"></script> <!-- masalah: script dijalankan sebelum tombol ada -->
    </head>
    <body>
      <button id="tombol">Klik</button>
    </body>
    </html>
    
    // main.js
    const tombol = document.querySelector("#tombol");
    console.log(tombol);
    // → null   (petunjuk: elemen belum ada saat kode ini jalan)
    tombol.addEventListener("click", () => alert("Halo!"));
    // → Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')
    

    Setelah membaca error dan console.log, ditemukan bahwa tombol belum ada karena script dimuat di <head>. Solusinya: tambahkan atribut defer supaya script menunggu HTML selesai dibaca.

    <script src="main.js" defer></script>
    
    // Setelah memakai defer:
    const tombol = document.querySelector("#tombol");
    console.log(tombol);
    // → <button id="tombol">Klik</button>
    tombol.addEventListener("click", () => alert("Halo!"));
    // → klik tombol: muncul alert "Halo!"
    

    Template pertanyaan yang baik untuk forum, grup, atau mentor:

    **Tujuan:** Saat tombol "Klik" ditekan, muncul alert "Halo!".
    
    **Yang terjadi:** Halaman tampil, tapi Console menunjukkan error:
    Uncaught TypeError: Cannot read properties of null (reading 'addEventListener') at main.js:3
    
    **Yang sudah saya coba:**
    - console.log(tombol) menghasilkan null
    - Sudah cek id di HTML dan JS sama-sama "tombol"
    
    **Kode minimal:** (HTML 10 baris + main.js 3 baris, ditempel sebagai teks)
    
    **Lingkungan:** macOS, Chrome terbaru, dibuka dengan Live Server.
    

    Kesalahan umum

    Latihan

    1. Mudah, Cari di MDN halaman Array.prototype.includes(). Tuliskan sintaksnya, nilai kembaliannya, dan jalankan satu contohnya di Console.
    2. Sedang, Ambil error ini: Uncaught ReferenceError: totl is not defined at main.js:5. Jelaskan jenis error, kemungkinan penyebab, dan baris yang harus dicek. Lalu tulis query pencarian Google yang baik untuknya.
    3. Menantang, Pilih satu masalah dari latihanmu sebelumnya. Tulis pertanyaan lengkap memakai template di atas. Lalu minta asisten AI memberi petunjuk saja, verifikasi petunjuk itu di MDN, dan tulis satu paragraf: bagian mana dari jawaban AI yang benar, mana yang perlu dikoreksi.
    Lihat solusi
    1. Sintaks includes(searchElement) atau includes(searchElement, fromIndex), mengembalikan true atau false.
    const buah = ["apel", "jeruk", "mangga"];
    console.log(buah.includes("jeruk"));  // → true
    console.log(buah.includes("durian")); // → false
    
    1. Jenis ReferenceError: kode memakai nama variabel yang tidak dikenal. Hampir pasti salah ketik: totl seharusnya total. Cek main.js baris 5 dan bandingkan dengan nama saat variabel dibuat.
    const total = 10 + 5;
    console.log(totl);  // → ReferenceError: totl is not defined
    console.log(total); // → 15  (setelah salah ketik diperbaiki)
    

    Query yang baik: "is not defined" ReferenceError javascript. Karena totl adalah nama milikmu sendiri, jangan dimasukkan ke query.

    1. Jawaban bervariasi. Contoh prompt ke AI: "Saya pemula. Kode saya error 'Cannot read properties of null'. Jangan beri solusi lengkap, beri satu petunjuk saja." Lalu cek petunjuknya di MDN (misalnya halaman defer pada elemen <script> atau event DOMContentLoaded). Paragraf refleksi menyebut bagian yang terbukti benar setelah diuji, dan bagian yang tidak sesuai dokumentasi atau tidak relevan.

    Ringkasan

    Kuis pemahaman

    Pilih satu jawaban per soal. Penjelasan muncul setelah kamu menjawab.