🎯 📘 Bagian 2 (Lanjutan & Penerapan) • Modul 12 100% Standar Industri & Vokasi

Serialisasi JSON & HTTP Client REST API

Modul pembelajaran Serialisasi JSON & HTTP Client REST API.

⚡ Pemrograman DART

14. Serialisasi JSON & HTTP Client REST API

1. Parsing JSON dengan Library dart:convert

JSON (JavaScript Object Notation) adalah standar transmisi data paling populer antara aplikasi frontend mobile/web dan backend server.

jsonDecode() (String JSON → Map)

Mengubah teks mentah JSON menjadi objek Map Dart yang dapat diakses kuncinya.

jsonEncode() (Object/Map → String JSON)

Mengonversi objek atau Map Dart menjadi string teks JSON untuk dikirim ke server.

2. Pola Desain Data Model (fromJson & toJson)

import 'dart:convert';

class SiswaModel {
  final int id;
  final String nama;
  final String jurusan;
  final int nilai;

  SiswaModel({
    required this.id,
    required this.nama,
    required this.jurusan,
    required this.nilai,
  });

  // Factory Constructor untuk mem-parsing dari Map JSON
  factory SiswaModel.fromJson(Map<String, dynamic> json) {
    return SiswaModel(
      id: json['id'],
      nama: json['nama'],
      jurusan: json['jurusan'],
      nilai: json['nilai'],
    );
  }

  // Method untuk mengubah object kembali ke Map JSON
  Map<String, dynamic> toJson() {
    return {
      'id': id,
      'nama': nama,
      'jurusan': jurusan,
      'nilai': nilai,
    };
  }
}

void main() {
  String jsonMentah = '{"id": 1, "nama": "Rizky Fauzi", "jurusan": "TJKT", "nilai": 95}';
  
  // 1. Decode String ke Map
  Map<String, dynamic> mapData = jsonDecode(jsonMentah);
  
  // 2. Instansiasi Data Model
  SiswaModel siswa = SiswaModel.fromJson(mapData);
  print("Siswa: ${siswa.nama} | Jurusan: ${siswa.jurusan}");
  
  // 3. Encode kembali ke String JSON
  String jsonHasil = jsonEncode(siswa.toJson());
  print("JSON Siap Kirim: $jsonHasil");
}