DIPERBARUI: 2026-11-06
[B3-M2]Menengahā± 40 Mnt Baca + 60 Mnt Praktik

Persistensi Data, Pemodelan Skema Database & Transaksi

Dari Penyimpanan File JSON Menuju Database Relasional Terindeks

BAGIKAN MODUL:
[KONTRAK HASIL BELAJAR // B3-M2]Standar Kompetensi Industri
ā± 40 Mnt Bacaā€¢āš” 60 Mnt Praktik•Lulus: ≄ 80/100 Poin

01. Target Pembelajar & Prasyarat

Backend developer dan full-stack engineer.

02. Kompetensi Konseptual (Level 1–2)

  • āœ“Menjelaskan 4 sifat ACID dalam transaksi database.

03. Kompetensi Praktis & Artefak Nyata (Level 3–4)

  • āœ“Membangun skema penyimpanan data pesanan terindeks.
Artefak yang Dibangun: Modul persistence layer `orders-storage.mjs`.

04. Aplikasi Nyata & Verifikasi

Penerapan Industri: Sistem penyimpanan `data/orders.json` di Z-Automation.

Metode Verifikasi: Menguji penulisan konkuren 5 transaksi secara bersamaan.

[BAGIAN 01 // MASALAH & URGENSI ARSITEKTURAL]

Mengapa Subjek Ini Krusial dalam Rekayasa Nyata?

Pelajari pemodelan data relasional, pengindeksan untuk pencarian cepat, transaksi ACID, dan mitigasi concurrency race conditions.

Dalam lingkungan produksi, kegagalan memahami batas-batas arsitektur sistem sering kali menyebabkan bug yang sulit dilacak, pemborosan biaya komputasi, atau antarmuka yang lambat bagi pengguna.

[BAGIAN 02 // MEKANISME DI BALIK LAYAR]

Bagaimana Sistem Sebenarnya Bekerja di Tingkat Protokol

Mengapa Transaksi ACID Sangat Penting

Atomicity, Consistency, Isolation, Durability. Empat kata ini menjamin bahwa uang pelanggan tidak terdebit jika proses pembuatan faktur gagal di tengah jalan. Seluruh transaksi berhasil serempak, atau dibatalkan serempak.

[DIAGRAM TEKNIS SVG INTERAKTIF // DIAG-02]

Alur Arsitektur Sistem Otonom & Runtime

LANGKAH 1 DARI 4
ENTITAS AKTIF:User -> Sistem
01
02
03
04

Pesan bahasa alami diterima melalui antarmuka web atau webhook chat.

[LIVE PAYLOAD INSPECTOR]JSON 2026
{
  "input": "Berapa estimasi biaya pembuatan landing page bisnis?"
}
[BAGIAN 03 // MATRIKS KESALAHPAHAMAN]

Koreksi Asumsi Umum vs Realitas Rekayasa

ƗASUMSI KELIRU

ā€œPenyimpanan file JSON cukup untuk seluruh skala trafik produksi.ā€

āœ“REALITAS SISTEM

File JSON hanya cocok untuk prototipe lokal atau data read-only kecil. Trafik nyata membutuhkan database dengan concurrency locking.

[BAGIAN 04 // LABORATORIUM PRAKTIS & KODE]

Implementasi Langkah-demi-Langkah

Hasil akhir yang diharapkan: Penyimpanan data aman dengan penulisan atomik.

STRUKTUR PROYEK DIREKOMENDASIKAN:
lab-b3-m2/
└── atomic-store.mjs

1Implementasi Penulisan File Atomik

Menulis ke file sementara lalu me-rename untuk mencegah data korup.

atomic-store.mjs•javascript
āœ“Tested Successfully
LINGKUNGAN TERUJI: Node.js v20.10.011 BARIS KODE
1// atomic-store.mjs
2import fs from 'fs/promises';
3
4async function simpanDataAtomik(filePath, dataObj) {
5 const tempPath = filePath + '.tmp.' + Date.now();
6 await fs.writeFile(tempPath, JSON.stringify(dataObj, null, 2), 'utf8');
7 await fs.rename(tempPath, filePath);
8 console.log('Data tersimpan secara atomik di:', filePath);
9}
10
11await simpanDataAtomik('./test-data.json', { status: 'OK', updatedAt: new Date().toISOString() });
KEPUTUSAN ARSITEKTURAL UTAMA:
• Menggunakan fs.rename untuk atomicity: Di sistem operasi POSIX dan NTFS, rename adalah operasi atomik pada tingkat sistem file.
PERINTAH EKSEKUSI TERMINAL:
$ node atomic-store.mjs
OUTPUT YANG DIHARAPKAN:
Data tersimpan secara atomik di: ./test-data.json
[BAGIAN 05 // PANDUAN TROUBLESHOOTING & TANTANGAN]

Mengantisipasi Masalah Umum & Tantangan Ekstensi

Pesan Error: File tmp tertinggal
Penyebab: Error saat write sebelum rename
Solusi Eksak: Bungkus dalam try/finally untuk menghapus tempPath jika gagal.
⚔ TANTANGAN EKSTENSI MANDIRI:

Tambahkan in-memory mutex lock untuk mencegah konkurensi tulis simultan.

[RUBRIK EVALUASI KOMPETENSI 100 POIN // B3-M2]

Uji Kompetensi Mandiri & Verifikasi Hasil

Standar kelulusan Z-Automation mewajibkan skor minimum 80 / 100 Poin dengan komponen Implementasi Praktis minimal 21 / 35 Poin (60%). Jawab soal diagnostik dan centang hasil pengujian praktis Anda.

BAGIAN A // PERTANYAAN DIAGNOSTIK KONSEPTUAL & TEKNIS (40 POIN)

01.Apa arti sifat 'Atomicity' pada transaksi database?

BAGIAN B // DAFTAR PERIKSA HASIL IMPLEMENTASI PRAKTIS (35 POIN — MIN. 21 POIN)

Centang item di bawah ini hanya jika Anda telah menjalankan kode di komputer Anda dan mengamati output yang benar:

Lanjutkan Menggulir
untuk Eksplorasi
Edukasi & Lab
Halaman Selanjutnya