======================================================================
 mb::JSON Lembar Panduan                         [ID] Bahasa Indonesia
======================================================================

[ Pemetaan Tipe Data ]
  JSON       -> Perl
  -----------------------------------------------
  "teks"     -> skalar string
  123        -> skalar angka
  3.14       -> skalar desimal
  true       -> mb::JSON::Boolean (bernilai 1)
  false      -> mb::JSON::Boolean (bernilai 0)
  null       -> undef
  [...]      -> referensi array
  {...}      -> referensi hash

[ 1. Memuat Modul ]
  use mb::JSON;

[ 2. decode: JSON -> Perl ]
  my $data = mb::JSON::decode($teks_json);
  my $data = mb::JSON::decode();           # menggunakan $_

[ 3. parse: alias dari decode() ]
  my $data = mb::JSON::parse($teks_json);

[ 4. encode: Perl -> JSON ]
  my $json = mb::JSON::encode($data);

[ 5. stringify: Perl -> JSON  (alias kompatibel JavaScript) ]
  my $json = mb::JSON::stringify($data);
  # stringify() dan encode() menghasilkan output yang identik

[ 6. Nilai Boolean ]
  mb::JSON::true   -> JSON: true
  mb::JSON::false  -> JSON: false
  Angka 1 atau 0   -> JSON: angka (bukan boolean)

[ 7. null dan undef ]
  undef  -> null (saat encode)
  null   -> undef (saat decode)

[ 8. Kunci hash diurutkan secara alfabetis ]
  encode({b=>2,a=>1}) -> '{"a":1,"b":2}'

[ 9. String UTF-8 ditulis apa adanya (tidak di-escape ke \uXXXX) ]
  decode: "\uXXXX"           -> UTF-8
  decode: "\uD83D\uDE00"     -> 4-byte UTF-8 (emoji)

[ 10. Contoh Penggunaan ]
  my $h = mb::JSON::decode('{"nama":"Budi","usia":30}');
  print $h->{nama};   # Budi

  my $j = mb::JSON::encode({
      nama  => 'Budi',
      aktif => mb::JSON::true,
      nilai => undef,
  });
  # -> {"aktif":true,"nama":"Budi","nilai":null}

  my $j = mb::JSON::stringify({
      nama  => 'Budi',
      aktif => mb::JSON::true,
  });
  # -> {"aktif":true,"nama":"Budi"}

  # bolak-balik (roundtrip)
  my $data   = mb::JSON::decode($json);
  my $kembali = mb::JSON::encode($data);
