Setiap kali Anda membuka aplikasi cuaca, memesan ojek online, atau mengecek saldo dompet digital, ada dua pihak yang saling bertukar data di balik layar: aplikasi di ponsel Anda dan server di pusat data. Keduanya berjalan di sistem yang berbeda, ditulis dengan bahasa pemrograman yang berbeda pula. Supaya percakapan itu nyambung, keduanya membutuhkan satu format data yang sama-sama dipahami.

Di sinilah peran format yang akan kita bahas. JSON adalah singkatan dari JavaScript Object Notation, yaitu format pertukaran data berbasis teks yang ringan, mudah dibaca manusia, dan mudah diproses oleh mesin. Hampir semua layanan digital yang Anda pakai hari ini — dari media sosial sampai internet banking — mengirim dan menerima data dalam format ini.

Artikel ini membahas pengertian JSON, fungsinya, cara membaca sintaksnya simbol demi simbol, sampai kesalahan penulisan yang paling sering membuat pemula frustrasi.

Apa Itu JSON dan dari Mana Asalnya?

JSON adalah format untuk merepresentasikan data terstruktur dalam bentuk teks biasa (plain text). Karena berupa teks, file JSON bisa dibuka di editor apa pun, dikirim lewat jaringan dengan mudah, dan dibaca oleh hampir semua bahasa pemrograman. File JSON disimpan dengan ekstensi .json dan dikirim antar sistem dengan tipe konten (MIME type) application/json.

Format ini dipopulerkan oleh Douglas Crockford bersama Chip Morningstar pada awal 2000-an. Menariknya, Crockford tidak mengaku menciptakan JSON — ia menyebut dirinya "menemukan" format tersebut. Alasannya, sintaks JSON memang sudah ada sebelumnya: ia adalah bagian kecil (subset) dari sintaks objek JavaScript yang dibakukan dalam standar ECMAScript edisi ke-3 tahun 1999. Situs resminya, json.org, diluncurkan pada 2002.

Seiring waktu, JSON dibakukan secara formal melalui dua standar: ECMA-404 pada tahun 2013 dan RFC 8259 pada tahun 2017. Dua dokumen inilah yang menjadi rujukan resmi cara menulis JSON yang valid sampai sekarang.

Satu hal yang sering disalahpahami: meskipun namanya mengandung kata "JavaScript", JSON tidak terikat pada JavaScript. JSON bersifat language-independent (netral bahasa) — Python, PHP, Java, Go, dan puluhan bahasa lain punya kemampuan bawaan untuk membaca dan menulis JSON. Situs json.org mencatat implementasinya tersedia di lebih dari 70 bahasa pemrograman.

Fungsi JSON: Untuk Apa Format Ini Dipakai?

Fungsi JSON yang paling utama adalah menjadi "bahasa perantara" saat dua sistem bertukar data. Dalam praktiknya, Anda akan menemukan JSON di empat tempat berikut:

  1. Pertukaran data lewat API: Saat aplikasi meminta data ke server melalui API (Application Programming Interface), khususnya REST API, jawabannya hampir selalu berformat JSON. Daftar produk di toko online, prakiraan cuaca, hasil pencarian — semuanya dikirim sebagai teks JSON, lalu diubah aplikasi menjadi tampilan yang Anda lihat.
  2. File konfigurasi: Banyak aplikasi menyimpan pengaturan dalam file JSON. Contoh paling terkenal adalah package.json yang dipakai npm untuk mencatat identitas dan dependensi proyek Node.js. Editor teks seperti VS Code juga menyimpan pengaturannya dalam format serupa.
  3. Penyimpanan dokumen di database: Database dokumen seperti MongoDB menyimpan data dalam struktur ala JSON. Database relasional modern pun ikut menyesuaikan — PostgreSQL misalnya, punya tipe kolom JSONB untuk menyimpan dokumen JSON langsung di dalam tabel.
  4. Format keluaran sistem AI: Layanan AI generatif modern menyediakan mode structured output, yaitu jawaban yang dikembalikan dalam format JSON supaya bisa langsung diproses program lain. Format tua ini justru semakin relevan di era AI.

Dari keempatnya, pertukaran data lewat API adalah yang paling sering Anda temui. Oleh karena itu, kemampuan membaca JSON menjadi bekal dasar sebelum belajar membangun atau memakai API.

Membaca Sintaks JSON: Arti Setiap Simbol

Bagi banyak pemula, tampilan JSON terasa menakutkan karena penuh simbol: kurung kurawal, kurung siku, tanda kutip, dan titik dua. Padahal aturannya sedikit dan konsisten. Perhatikan contoh JSON berikut, yang menggambarkan data satu pesanan:

JSON
{
  "nomor_pesanan": "INV-2026-0715",
  "pelanggan": "Rahmat Hidayat",
  "total": 275000,
  "lunas": true,
  "kupon": null,
  "item": [
    { "nama": "Domain", "jumlah": 1 },
    { "nama": "Sertifikat SSL", "jumlah": 2 }
  ]
}

Mari kita bedah simbol-simbol tersebut satu per satu.

Diagram anatomi sintaks JSON dengan penjelasan komponen utama.Diagram anatomi sintaks JSON dengan penjelasan komponen utama.

  1. Kurung kurawal { } — pembungkus object: Sepasang kurung kurawal menandai sebuah object, yaitu kumpulan data dalam bentuk pasangan key-value (kunci dan nilai). Pada contoh di atas, seluruh data pesanan terbungkus dalam satu object besar.
  2. Tanda kutip ganda " " — pembungkus key dan teks: Setiap key wajib ditulis dalam tanda kutip ganda, misalnya "pelanggan". Nilai berupa teks juga wajib memakai kutip ganda. Kutip tunggal (' ') tidak sah dalam JSON.
  3. Titik dua : — pemisah key dan value: Di kiri titik dua ada nama datanya (key), di kanan ada isinya (value). "total": 275000 dibaca: key total bernilai 275000.
  4. Koma , — pemisah antar item: Koma memisahkan pasangan key-value satu dengan berikutnya. Item terakhir tidak boleh diikuti koma — aturan kecil ini yang paling sering dilanggar.
  5. Kurung siku [ ] — pembungkus array: Sepasang kurung siku menandai array, yaitu daftar nilai yang berurutan. Pada contoh di atas, key item berisi array dengan dua object di dalamnya: pesanan domain dan sertifikat SSL.

Enam Tipe Nilai yang Dikenal JSON

Value dalam JSON hanya boleh berupa salah satu dari enam tipe data berikut:

  1. String: teks dalam kutip ganda, contoh "Rahmat Hidayat".
  2. Number: angka tanpa tanda kutip, contoh 275000 atau 19.5. JSON hanya mengenal angka desimal — format oktal dan heksadesimal tidak diizinkan.
  3. Boolean: nilai true atau false, ditulis tanpa kutip. Cocok untuk data ya/tidak seperti "lunas": true.
  4. Null: nilai null menandakan data sengaja dikosongkan, seperti "kupon": null untuk pesanan tanpa kupon.
  5. Object: object bisa berada di dalam object lain, sehingga data bertingkat bisa direpresentasikan.
  6. Array: daftar nilai berurutan; isinya boleh string, number, bahkan campuran object.

Perlu diperhatikan, true, false, dan null wajib huruf kecil semua. Menulis True atau NULL akan membuat JSON tidak valid.

Object vs Array: Kapan Pakai yang Mana

Aturan praktisnya sederhana. Gunakan object ketika setiap data punya nama atau label — seperti kartu identitas yang tiap barisnya jelas artinya. Gunakan array ketika Anda punya banyak data sejenis yang jumlahnya bisa berubah — seperti daftar belanja.

Dalam praktik nyata, keduanya hampir selalu dikombinasikan. Bentuk yang paling sering muncul di respons API adalah array berisi kumpulan object: daftar produk, daftar transaksi, atau daftar artikel, yang tiap itemnya punya struktur key-value lengkap.

Kesalahan Penulisan JSON yang Paling Sering Terjadi

Aturan JSON ketat: satu karakter salah, seluruh file gagal diproses dan program menampilkan error parsing. Empat kesalahan berikut penyebab yang paling umum:

  1. Koma setelah item terakhir (trailing comma): {"nama": "Budi", "kota": "Bandung",} — koma setelah "Bandung" membuat JSON tidak valid. Kebiasaan ini sering terbawa dari JavaScript yang mengizinkannya.
  2. Memakai kutip tunggal: {'nama': 'Budi'} sah di JavaScript dan Python, tetapi tidak sah di JSON. Semua kutip harus kutip ganda.
  3. Key tanpa tanda kutip: {nama: "Budi"} juga kebiasaan dari JavaScript. Dalam JSON, setiap key wajib dibungkus kutip ganda.
  4. Menambahkan komentar: JSON murni tidak mendukung komentar // maupun /* */. Kalau Anda pernah melihat komentar di file pengaturan VS Code, itu karena file tersebut sebenarnya berformat JSONC (JSON with Comments) — varian yang lebih longgar, bukan JSON standar.

Alur pengecekan saat JSON Anda ditolak program bisa diringkas seperti ini:

Diagram alur perbaikan kesalahan JSON.Diagram alur perbaikan kesalahan JSON.

Untuk pengecekan cepat, tempelkan JSON Anda ke JSON validator online seperti jsonlint.com, atau manfaatkan editor modern — VS Code otomatis menggarisbawahi bagian yang tidak valid beserta letak barisnya.

JSON Dibandingkan XML: Mana yang Lebih Baik?

Sebelum JSON populer, pertukaran data antar sistem umumnya memakai XML (eXtensible Markup Language), format berbasis tag yang dirilis W3C pada 1998. Perbandingan keduanya bisa dirangkum begini:

AspekJSONXML
KeterbacaanRingkas, mirip catatan biasaPenuh tag pembuka-penutup
Ukuran dataLebih kecil untuk data yang samaLebih besar karena tag berulang
Cara memprosesFungsi bawaan di hampir semua bahasaButuh parser khusus
Validasi strukturLewat JSON Schema (terpisah)Skema bawaan (DTD/XSD) lebih matang
Tipe data6 tipe dasarSemua teks, tipe diatur skema

Untuk API dan aplikasi web modern, JSON praktis sudah menjadi pilihan baku: lebih ringkas, lebih cepat diproses, dan langsung dipahami JavaScript di browser. XML masih bertahan di dunia dokumen dan sistem enterprise lama — misalnya format dokumen Office dan standar pertukaran data perbankan tertentu. Jadi keduanya bukan saling menggantikan sepenuhnya, melainkan berbagi wilayah.

Kelemahan JSON dan Hal yang Perlu Anda Pertimbangkan

Meski dominan, JSON bukan format yang sempurna untuk semua situasi. Ada beberapa kelemahan yang perlu Anda ketahui sejak awal:

  1. Tidak mendukung komentar: Anda tidak bisa menyisipkan catatan di dalam file JSON murni. Untuk file konfigurasi yang butuh banyak penjelasan, ini terasa menyulitkan — itulah mengapa muncul varian seperti JSONC dan JSON5.
  2. Tidak ada validasi bawaan: JSON tidak bisa memaksa "key total harus berupa angka positif". Validasi semacam itu membutuhkan lapisan tambahan bernama JSON Schema, yang harus dipasang dan dikelola terpisah.
  3. Presisi angka besar: banyak program membaca number JSON sebagai floating point 64-bit. Angka bulat yang sangat besar — di atas kira-kira 9 kuadriliun (2^53) — bisa berubah nilainya saat diproses. Karena itu, ID transaksi yang panjang lebih aman dikirim sebagai string.
  4. Tidak efisien untuk data biner: gambar, audio, atau file lain harus dikodekan dulu (misalnya Base64) sebelum masuk JSON, dan ukurannya membengkak sekitar 33%. Untuk kebutuhan seperti ini, format biner seperti Protocol Buffers lebih tepat.

Untuk kebutuhan umum — API, konfigurasi, penyimpanan dokumen — kelemahan di atas jarang menjadi penghalang. Anda cukup mewaspadainya saat berurusan dengan angka ID yang panjang atau data biner berukuran besar.

FAQ Seputar JSON

JSON singkatan dari apa?

JSON adalah singkatan dari JavaScript Object Notation. Meski mengandung kata JavaScript, JSON adalah format netral yang bisa dipakai semua bahasa pemrograman.

Apakah harus menguasai JavaScript untuk memakai JSON?

Tidak. JSON hanya meminjam sintaks objek JavaScript. Anda bisa membaca dan menulis JSON dari Python, PHP, Java, atau bahasa lain — masing-masing punya fungsi bawaan untuk mengubah JSON menjadi struktur data di bahasanya.

Apa bedanya file .json dengan file teks biasa?

Isinya sama-sama teks. Bedanya, file .json mengikuti aturan sintaks JSON yang ketat sehingga bisa langsung diproses program. Ekstensi .json juga memberi tahu editor dan sistem bahwa isinya data terstruktur, bukan tulisan bebas.

Apa itu JSONL?

JSONL (JSON Lines) adalah varian yang menaruh satu object JSON per baris file. Format ini populer untuk data log dan dataset pelatihan AI karena bisa diproses baris demi baris tanpa memuat seluruh file ke memori.

Kesimpulan

JSON adalah format pertukaran data berbasis teks yang ringan, terstruktur lewat pasangan key-value dan array, serta dipahami hampir semua bahasa pemrograman. Aturannya sedikit — enam tipe nilai dan lima simbol utama — tetapi ketat, sehingga memahami sintaksnya sejak awal akan menghemat banyak waktu debugging.

Setelah ini, coba perhatikan file package.json di proyek Node.js, respons API di tab Network browser, atau file pengaturan editor Anda. Ketiganya adalah JSON yang selama ini bekerja diam-diam di sekitar Anda. Semoga artikel ini membantu.