Apa Itu JSON? Panduan Sederhana dengan Contoh
JSON (JavaScript Object Notation) adalah format teks sederhana untuk menuliskan data terstruktur — hal-hal seperti pelanggan, pesanan, atau daftar produk — sebagai pasangan nama dan nilai. Format ini mudah dibaca manusia dan mudah dibuat serta diurai oleh program. Ketika aplikasi dan layanan saling bertukar data lewat web, JSON adalah format yang paling umum digunakan.
Mengapa JSON penting saat membangun dengan AI
Anda akan sering bertemu JSON, bahkan jika Anda tidak pernah menulis kode:
- API. Ketika layar aplikasi Anda memuat data dari backend, atau backend Anda memanggil layanan pembayaran, email, atau AI, datanya biasanya berpindah sebagai JSON. Lihat apa itu API.
- File pengaturan. Banyak file konfigurasi proyek berbentuk JSON — misalnya
package.json, yang mendaftar dependensi sebuah proyek JavaScript. - Database. Postgres bisa menyimpan JSON di sebuah kolom (tipe
jsonb) untuk data yang tidak cocok dengan baris dan kolom yang rapi. Lihat apa itu Postgres. - Output AI. Ketika Anda ingin model AI mengembalikan sesuatu yang bisa dipakai program — daftar tag, atau field yang diekstrak dari faktur — biasanya Anda meminta JSON.
- Pesan error dan log. Banyak error datang dalam bentuk JSON, dan membacanya sering kali menjadi cara tercepat untuk mengetahui apa yang salah.
Dengan bisa membaca JSON, Anda bisa memeriksa apa yang sebenarnya diterima aplikasi Anda, melihat field yang hilang, dan menjelaskan masalah dengan tepat kepada pembuat aplikasi AI Anda.
Analogi sehari-hari
Bayangkan formulir kertas: Nama: ____, Telepon: ____, Newsletter: ☐ ya ☐ tidak. Setiap isian adalah label dengan nilai di sebelahnya. JSON adalah formulir itu ditulis sebagai teks, dengan tata letak yang ketat sehingga komputer bisa membacanya tanpa menebak. Dan seperti formulir, JSON bisa memiliki bagian di dalam bagian (blok alamat dengan jalan, kota, dan kode pos) serta daftar (beberapa nomor telepon).
Seperti apa JSON itu
Berikut satu booking dalam JSON:
{
"id": 5001,
"customer": "Lena Park",
"service": "Haircut",
"startsAt": "2026-10-03T14:00:00Z",
"price": 35.5,
"paid": false,
"notes": null,
"extras": ["beard trim", "hot towel"],
"contact": {
"email": "lena@example.com",
"phone": "+44 20 7946 0000"
}
}
Cara membacanya:
- Kurung kurawal
{ }membungkus sebuah objek — sekumpulan pasangan nama/nilai. - Setiap pasangan berbentuk
"name": nilai, dipisahkan dengan koma. - Kurung siku
[ ]membungkus sebuah array — daftar berurutan. - Objek dan array bisa berada di dalam satu sama lain, seperti
contactdanextras.
Enam jenis nilai
JSON hanya memiliki enam jenis nilai. Daftar kecil itu adalah salah satu alasan mengapa JSON bisa dipakai di mana saja.
| Tipe | Contoh | Catatan |
|---|---|---|
| String (teks) | "Lena Park" | Selalu tanda kutip ganda |
| Number (angka) | 35.5, -2, 1e6 | Tanpa tanda kutip; tanpa simbol mata uang |
| Boolean | true, false | Huruf kecil, tanpa tanda kutip |
| Null | null | Artinya “tidak ada nilai” |
| Object (objek) | { "city": "Leeds" } | Nilai yang diberi nama |
| Array | [1, 2, 3] | Daftar berurutan; item boleh bertipe apa pun |
Tidak ada tipe tanggal. Tanggal ditulis sebagai string, biasanya dengan format ISO 8601 seperti contoh di atas (2026-10-03T14:00:00Z, di mana Z berarti UTC). Menyepakati format itu mencegah sekelompok bug zona waktu.
Aturan ketat (tempat munculnya error)
JSON lebih tidak toleran daripada kelihatannya. Semua contoh berikut tidak valid:
{ name: "Lena" } ← key tanpa tanda kutip ganda
{ 'name': 'Lena' } ← tanda kutip tunggal
{ "a": 1, "b": 2, } ← koma di akhir
{ "a": 1 "b": 2 } ← koma yang hilang
{ "a": 1 // comment } ← komentar tidak diizinkan
Sebagian besar error "Unexpected token" yang akan Anda temui termasuk salah satu dari ini. Validator atau formatter JSON akan menunjukkan baris yang tepat.
Contoh nyata: JSON melalui sebuah aplikasi
Seorang pelanggan memesan potong rambut di aplikasi salon. Berikut tempat JSON muncul:
- Formulir booking mengirim ini ke backend aplikasi:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
- Backend menyimpan booking di database dan membalas dengan status
201 Createdserta:
{ "id": 5001, "status": "confirmed" }
- Jika jamnya sudah terisi, ia mungkin membalas dengan status
409 Conflictdan:
{ "error": "slot_taken", "message": "That time was just booked. Please pick another." }
Halaman membaca status atau error dan menampilkan pesan yang tepat. Jika halaman malah menampilkan layar kosong, membuka developer tools browser (tab Network) akan menampilkan JSON ini — sering kali itu petunjuk tercepat tentang apa yang salah.
Istilah kunci
| Istilah | Arti |
|---|---|
| Key | Nama dalam pasangan nama/nilai, seperti "email". |
| Parse | Mengubah teks JSON menjadi data yang bisa dipakai program. |
| Serialize / stringify | Mengubah data menjadi teks JSON untuk dikirim atau disimpan. |
| Payload | Data yang dikirim dalam sebuah permintaan atau respons. |
| Schema | Deskripsi bentuk yang seharusnya dimiliki data — field apa saja, dengan tipe apa. JSON Schema adalah standar untuk menuliskannya. |
| JSONB | Tipe kolom JSON biner milik Postgres, yang bisa diindeks dan di-query. |
| NDJSON / JSON Lines | Satu objek JSON per baris, umum untuk log dan streaming. |
Kesalahpahaman umum
- “JSON adalah JavaScript.” Formatnya berasal dari sintaks JavaScript, tetapi ia tidak terikat bahasa; Python, Java, C#, Go, dan lainnya semuanya bisa membacanya.
- “Angka dalam tanda kutip tidak masalah.”
"35"adalah string, bukan angka. Mencampurnya menyebabkan bug seperti"35" + "5"menjadi"355". Uang sering lebih baik disimpan sebagai bilangan bulat dalam sen (3550) untuk menghindari masalah pembulatan. - “JSON aman karena hanya data.” JSON bisa membawa apa saja, termasuk rahasia. Jangan memasukkan API key ke dalam JSON yang dikirim ke browser.
- “Simpan semuanya di kolom JSON.” Praktis untuk tambahan yang fleksibel, tetapi data yang Anda cari, filter, atau gabungkan biasanya lebih baik berada di kolom yang sesungguhnya.
- “AI selalu mengembalikan JSON yang valid.” Model bisa menambahkan teks ekstra atau merusak format. Banyak penyedia menawarkan mode output terstruktur; kode Anda tetap perlu memeriksa apa yang dikembalikan.
Yang sebaiknya Anda tanyakan ke pembuat aplikasi AI
- “Tunjukkan contoh JSON yang dikembalikan endpoint ini.”
- “Kembalikan error sebagai JSON dengan kode
errordanmessageyang bisa dibaca manusia.” - “Simpan tanggal sebagai string ISO 8601 dalam UTC dan konversikan ke waktu lokal hanya di layar.”
- “Simpan harga sebagai bilangan bulat dalam sen.”
- “Validasi JSON yang masuk di server dan tolak permintaan yang field-nya hilang atau bertipe salah.”
- “Ketika memanggil model AI, minta JSON dengan bentuk persis seperti ini dan periksa sebelum digunakan.”
JSON di Mythex
Anda tidak perlu menulis JSON dengan tangan di Mythex — Anda menjelaskan apa yang Anda inginkan dan agent menulis kode yang mengirim dan membacanya. Tetap berguna untuk mengenalinya, meskipun: ketika ada yang rusak, menempelkan error JSON ke chat memberi agent petunjuk yang tepat. Resep backend REST API di dokumentasi meminta “error JSON yang jelas” sejak awal, dan resep integrasi API apa pun membahas pemanggilan layanan luar. Untuk gambaran yang lebih besar, lihat REST vs GraphQL dan cara men-debug aplikasi buatan AI.
Pertanyaan
Apa itu JSON dengan bahasa sederhana?
JSON (JavaScript Object Notation) adalah format teks biasa untuk menuliskan data terstruktur sebagai nama dan nilai, seperti "name": "Lena". Hampir semua web API memakainya untuk mengirim data bolak-balik, dan banyak aplikasi menggunakannya untuk pengaturan dan data tersimpan.
Apakah JSON adalah bahasa pemrograman?
Bukan. JSON adalah format data, bukan bahasa. Ia tidak bisa melakukan apa pun sendiri — ia hanya mendeskripsikan data. Meskipun berasal dari JavaScript, hampir semua bahasa pemrograman bisa membaca dan menulisnya.
Apa perbedaan antara JSON dan objek JavaScript?
Keduanya terlihat mirip, tetapi JSON lebih ketat. Di JSON, setiap key harus diapit tanda kutip ganda, string memakai tanda kutip ganda, tidak ada komentar, tidak ada koma di akhir, dan nilainya terbatas pada string, angka, true, false, null, objek, dan array.
Mengapa JSON saya dikatakan tidak valid?
Penyebab yang paling umum adalah koma di akhir item terakhir, tanda kutip tunggal alih-alih tanda kutip ganda, koma yang hilang di antara item, kurung yang tidak ditutup, atau komentar. Tempelkan ke validator JSON dan validator itu akan menunjuk baris yang bermasalah.