Latihan buat 18 HTTP dan Form. Konsep:
fetch, form dan field, dan menggabungkan keduanya. Jawaban di 18 Kunci Jawaban HTTP dan Form.
18.1 Negosiasi Konten
Minta URL yang sama dengan header Accept berbeda (text/plain, text/html, application/json) dan lihat server membalas format berbeda.
Petunjuk: panggil fetch(url, {headers: {Accept: "..."}}) beberapa kali, await resp.text() tiap kali, dan cetak hasilnya untuk membandingkan. Konsep di 18 HTTP dan Form > fetch.
→ Jawaban: 18 Kunci Jawaban HTTP dan Form > 18.1 Negosiasi Konten
18.2 Workbench JavaScript
Buat antarmuka kecil: satu <textarea> untuk kode, tombol untuk menjalankannya, dan tempat menampilkan hasil/error.
Kode awal (HTML):
<textarea id="kode" style="width:100%;height:8rem"></textarea>
<button id="jalankan">Run</button>
<pre id="hasil"></pre>Petunjuk: pada klik tombol, ambil textarea.value, jalankan dengan Function("return " + kode)() (atau tanpa return) di dalam try/catch, dan tampilkan hasil atau pesan error di elemen output. Konsep di 18 HTTP dan Form > Form.
→ Jawaban: 18 Kunci Jawaban HTTP dan Form > 18.2 Workbench JavaScript
18.3 Game of Life
Buat simulasi Conway’s Game of Life di grid, dengan tombol “generasi berikutnya”.
Petunjuk: simpan grid boolean. Untuk tiap sel, hitung tetangga hidup, terapkan aturan (sel hidup dengan 2–3 tetangga bertahan; sel mati dengan tepat 3 tetangga jadi hidup) untuk menghasilkan grid baru — jangan ubah grid lama di tengah perhitungan (bug klasik, ingat pesan immutable di bab-bab sebelumnya). Lalu gambar ulang. Konsep di 18 HTTP dan Form > Field.
→ Jawaban: 18 Kunci Jawaban HTTP dan Form > 18.3 Game of Life