AI Skill Report Card

Crafting HTML5 Web Apps

B+78·Sep 3, 2026·Source: Web
12 / 15

Ketika pengguna meminta web app (misal "buatkan to-do list app"), jangan langsung menulis kode. Ikuti alur:

  1. Analisis kebutuhan → identifikasi ambiguitas → tanyakan jika krusial (fitur inti tidak jelas), lanjutkan dengan asumsi wajar jika ambiguitas minor.
  2. Ajukan 3 pendekatan desain/arsitektur berbeda, bandingkan, pilih satu.
  3. Tulis kode HTML5 semantik + CSS3 + JS vanilla, berkomentar jelas.
  4. Jalankan checklist validasi internal sebelum menyajikan hasil.
  5. Sajikan output dalam tiga blok kode terpisah + penjelasan + saran pengembangan.
Recommendation
Description is in Indonesian while best practice examples in official docs use English; consider whether target audience/consistency matters, and ensure description remains third-person (it currently is, which is good) — but tighten it: it's a bit long-winded and could be more concise about triggers.
14 / 15

Progress:

  • Langkah 1: Klarifikasi kebutuhan (fitur wajib, target pengguna, gaya visual, batasan teknis)
  • Langkah 2: Brainstorm 3 pendekatan (misal: SPA vanilla JS vs multi-page vs component-based tanpa framework)
  • Langkah 3: Pilih pendekatan optimal dengan justifikasi singkat
  • Langkah 4: Tulis HTML semantik (header, main, nav, section, footer sesuai konteks)
  • Langkah 5: Tulis CSS3 responsif (mobile-first, flexbox/grid, media queries, custom properties)
  • Langkah 6: Tulis JavaScript murni (event delegation, error handling, state management sederhana)
  • Langkah 7: Validasi HTML (tag tertutup, atribut wajib: lang, alt, type, for/id pairing)
  • Langkah 8: Cek aksesibilitas (ARIA roles/labels, kontras warna WCAG AA minimum 4.5:1, navigasi keyboard/tab order, focus states)
  • Langkah 9: Uji edge case JS (input kosong, input ekstrem, localStorage penuh/tidak tersedia, race condition async)
  • Langkah 10: Cek kompatibilitas lintas browser (fallback untuk fitur CSS/JS modern, vendor prefix bila perlu)
  • Langkah 11: Sajikan hasil akhir dengan penjelasan fitur, cara kerja, dan saran pengembangan lanjutan
Recommendation
The two examples in 'Contoh Interaksi' describe outputs abstractly (e.g., 'Kode HTML (form input, tabel...)') rather than showing actual concrete code snippets; add at least one fully realized code example with real HTML/CSS/JS to demonstrate the expected output format.

Contoh 1: Input: "Buatkan aplikasi pencatat pengeluaran harian sederhana." Output:

  • Klarifikasi singkat: "Apakah perlu penyimpanan data (localStorage) atau cukup sesi sekali pakai? Apakah perlu kategori pengeluaran?"
  • 3 pendekatan: (a) Single-page form + tabel dinamis + localStorage, (b) Dashboard dengan grafik ringkas via Canvas API, (c) Multi-tab (harian/mingguan/bulanan) dengan filter.
  • Pilihan: (a) karena paling sesuai untuk kebutuhan "sederhana" dan cepat diimplementasi.
  • Kode HTML (form input, tabel semantik <table> dengan <thead>/<tbody>, tombol hapus per baris) + CSS (grid layout, warna kontras tinggi) + JS (fungsi tambah/hapus/hitung total, validasi input angka, simpan ke localStorage dengan try-catch).
  • Checklist validasi dilaporkan singkat: "✓ HTML valid, ✓ ARIA label pada tombol hapus, ✓ Kontras 7:1, ✓ Tested edge case: input kosong/negatif ditolak."
  • Saran lanjutan: tambah kategori, ekspor CSV, grafik pie.

Contoh 2: Input: "Buat landing page untuk kedai kopi." Output: Klarifikasi (gaya: minimalis/rustic? perlu form reservasi?), 3 pendekatan (single-scroll storytelling, tab-based menu showcase, hero+parallax minimal JS), pilih single-scroll untuk landing page (SEO & load time lebih baik), kode lengkap dengan <header>, <nav> sticky, <section> hero/menu/testimoni/kontak, CSS animasi scroll ringan tanpa library, JS untuk smooth scroll dan validasi form kontak, laporan validasi, saran (integrasi peta, lazy-load gambar).

  • Selalu gunakan elemen semantik (<header>, <nav>, <main>, <article>, <section>, <footer>) alih-alih <div> generik.
  • Tulis komentar penjelas di setiap blok logika penting, bukan di setiap baris trivial.
  • Gunakan CSS custom properties (:root { --primary-color: ... }) untuk konsistensi tema dan kemudahan maintenance.
  • Terapkan mobile-first dengan min-width media queries.
  • Sertakan alt deskriptif pada gambar, aria-label/aria-live pada elemen dinamis, dan pastikan urutan tab logis.
  • Gunakan try-catch untuk operasi yang bisa gagal (localStorage, JSON.parse, fetch).
  • Uji kontras warna secara eksplisit (sebutkan rasio perkiraan) sebelum finalisasi palet warna.
  • Jika permintaan ambigu pada aspek non-kritis (misal warna, jumlah item demo), buat asumsi wajar dan sebutkan asumsi tersebut alih-alih menghentikan proses.
  • Batasi jumlah pendekatan alternatif pada 3 agar analisis tetap fokus dan tidak membingungkan pengguna.
  • Jangan langsung menulis kode tanpa menyebutkan analisis kebutuhan dan pilihan pendekatan, meski singkat — ini menghilangkan nilai proses berlapis.
  • Jangan gunakan library eksternal (jQuery, Bootstrap, dll.) kecuali pengguna secara eksplisit memintanya.
  • Jangan lupa menutup tag, memberi id/for yang berpasangan pada label-input, atau mengabaikan atribut lang pada <html>.
  • Jangan mengklaim "sudah divalidasi lintas browser" tanpa benar-benar menjelaskan potensi masalah kompatibilitas (misal :has(), backdrop-filter) dan fallback-nya.
  • Jangan menyajikan kode dalam satu blok campur aduk — pisahkan HTML, CSS, JS secara jelas kecuali diminta dalam satu file.
  • Jangan mengabaikan edge case JS seperti input kosong, karakter khusus, atau kegagalan localStorage (mode private browsing).
  • Jangan berlebihan bertanya klarifikasi untuk hal-hal trivial yang bisa diasumsikan secara wajar — ini memperlambat tanpa menambah nilai.
0
Grade B+AI Skill Framework
Scorecard
Criteria Breakdown
Quick Start
12/15
Workflow
14/15
Examples
15/20
Completeness
17/20
Format
13/15
Conciseness
12/15