Tantangan Pengembangan (Challenge) — BAB 11
Tujuan Pembelajaran
Section titled “Tujuan Pembelajaran”Setelah menyelesaikan challenge ini, kamu diharapkan dapat:
- Menambahkan fitur-fitur lanjutan secara mandiri pada project SIAKAD.
- Mengembangkan pemikiran analisis untuk menstrukturkan data baru.
- Menyiapkan project konsol agar memiliki kapabilitas penyimpanan data permanen.
Pendahuluan
Section titled “Pendahuluan”Setelah berhasil membangun aplikasi dasar, langkah terbaik untuk menguji keahlianmu adalah dengan menyelesaikan berbagai tantangan pengembangan mandiri (challenge) tanpa panduan kode langsung.
Penjelasan
Section titled “Penjelasan”Di halaman ini, kamu ditantang untuk memperluas fitur aplikasi siakad-final milikmu. Kamu harus menambahkan 10 fitur lanjutan berikut satu per satu. Cobalah merancang tipe data dan logikanya terlebih dahulu sebelum menuliskan kodenya di file projectmu.
Analogi Kehidupan Sehari-hari: Lomba Keterampilan Siswa (LKS) SMK
Section titled “Analogi Kehidupan Sehari-hari: Lomba Keterampilan Siswa (LKS) SMK”Menyelesaikan challenge seperti mengikuti Lomba Keterampilan Siswa (LKS) tingkat nasional:
Tantangan LKS:- Modifikasi mesin motor agar irit bahan bakar (Tantangan 1)- Pasangkan sensor GPS pelacak lokasi motor (Tantangan 2)Juri tidak membantumu memasangkan kabel. Juri hanya menilai hasil akhir apakah motor berjalan lancar dengan fitur baru tersebut. Challenge ini melatih kemandirian dan rasa percaya dirimu sebagai programmer sejati.
Visual Illustration: Flowchart Ekspor JSON
Section titled “Visual Illustration: Flowchart Ekspor JSON”Database Siswa (Array) ──► JSON.stringify() ──► fs.writeFileSync() ──► file siswa.jsonLive Coding: Simulasi Tulis File Permanen (Helper)
Section titled “Live Coding: Simulasi Tulis File Permanen (Helper)”Berikut adalah contoh fungsi dasar menulis data ke file menggunakan modul bawaan Node.js fs (File System):
import * as fs from "fs";
function simpanKeFile(namaFile: string, data: any): void { const teksJSON = JSON.stringify(data, null, 2); fs.writeFileSync(namaFile, teksJSON, "utf8"); console.log(`✓ Data berhasil disimpan ke ${namaFile}`);}
simpanKeFile("test-simpan.json", { status: "Sukses", kode: 200 });Output
Section titled “Output”Hasil eksekusi program tulis file di atas di terminal:
✓ Data berhasil disimpan ke test-simpan.jsonPenjelasan Baris per Baris
Section titled “Penjelasan Baris per Baris”import * as fs from "fs": Mengimpor modul bawaan Node.js untuk operasi file system.JSON.stringify(data, null, 2): Mengonversi objek menjadi string teks JSON rapi dengan spasi indentasi 2.fs.writeFileSync(...): Menuliskan teks string tersebut ke harddisk secara sinkron.
Common Mistakes
Section titled “Common Mistakes”- Lupa menangani folder tidak ada: Menulis file ke folder kustom yang belum dibuat. Pastikan file ditulis sejajar dengan
package.jsonuntuk kemudahan akses awal.
Ringkasan
Section titled “Ringkasan”- Ada 10 tantangan perluasan fitur aplikasi SIAKAD.
- Penyimpanan data permanen menggunakan modul bawaan Node.js
fs(File System). - Menghindari copy-paste melatih pemikiran analitis penyusunan data.
Latihan
Section titled “Latihan”Pilih minimal dua tantangan dari daftar berikut untuk kamu implementasikan di projectmu:
- Ekspor Data ke JSON: Simpan data siswa ke
siswa.jsonsaat keluar aplikasi. - Impor Data dari JSON: Baca file
siswa.jsonsaat awal aplikasi dijalankan. - Sistem Ranking: Urutkan dan tampilkan 3 siswa nilai tertinggi.
- Pencarian Kelas: Tampilkan siswa berdasarkan filter kelas tertentu.
- Wali Kelas Kehadiran: Hitung persentase kehadiran guru.
- Login Admin: Tambahkan menu verifikasi password sebelum masuk menu utama.