JSON: apa itu, struktur data dan prinsip kerja

Penulis: IT Sectr Diterbitkan: 2026-03-08 Waktu membaca: 8 mnt

JSON (JavaScript Object Notation) — adalah format teks ringan untuk pertukaran data, berdasarkan sintaks objek JavaScript. Ini digunakan di mana-mana: dari REST API dan file konfigurasi hingga penyimpanan data di database dan aplikasi mobile. Menurut situs resmi JSON, format ini tidak bergantung pada bahasa pemrograman dan didukung oleh hampir semua platform modern. JSON telah menjadi standar de facto untuk transmisi data antara klien dan server.

Poin utama

  • JSON — format teks ringan untuk data terstruktur berdasarkan sintaks JavaScript
  • Enam tipe data — string, angka, boolean, null, array dan objek untuk struktur apa pun
  • Universal — didukung oleh semua bahasa pemrograman dan platform
  • REST API — format utama pertukaran data di aplikasi web dan mobile
  • Keterbacaan — sintaks sederhana mudah dibaca dan diedit tanpa alat

Apa itu JSON?

JSON — adalah format teks untuk merepresentasikan data terstruktur, berdasarkan sintaks JavaScript. Meskipun berasal dari JavaScript, format ini sepenuhnya independen dari bahasa — parser dan serialiser ada untuk semua bahasa pemrograman populer.

Sejarah JSON dimulai pada awal tahun 2000-an, ketika Douglas Crockford memisahkan subset sintaks JavaScript untuk pertukaran data. Pada tahun 2013, format ini distandarisasi sebagai ECMA-404, dan kemudian sebagai ISO/IEC 21778:2017. Nama ini merupakan singkatan dari JavaScript Object Notation.

Keuntungan utama JSON adalah sintaksnya yang minimalis. Untuk mendeskripsikan data hanya digunakan enam tipe: string, angka, boolean, null, array dan objek. Ini cukup untuk merepresentasikan struktur data apa pun yang digunakan dalam aplikasi.

Di mana JSON digunakan

  • REST API — format utama untuk permintaan dan respons antara server dan klien
  • File konfigurasi — package.json, tsconfig.json, .prettierrc
  • Database — MongoDB, PostgreSQL (JSONB), Firebase Firestore
  • Aplikasi mobile — penyimpanan pengaturan, caching data
  • Teknologi web — WebSocket, Server-Sent Events, localStorage

Sintaks dan tipe data JSON

Sintaks JSON sangat sederhana: data direpresentasikan sebagai pasangan kunci-nilai, di mana kunci adalah string dalam tanda petik ganda, dan nilai adalah salah satu dari enam tipe dasar. Objek ditempatkan dalam kurung kurawal, array dalam kurung siku. String wajib menggunakan tanda petik ganda, tanda petik tunggal tidak diizinkan.

Angka dalam JSON bisa berupa bilangan bulat atau floating-point, positif atau negatif, dengan notasi eksponensial. Nilai boolean direpresentasikan dengan true dan false, dan ketiadaan nilai dengan null. Array berisi kumpulan nilai yang terurut dari jenis apa pun, termasuk array dan objek bersarang.

json
{
  "name": "JSON",
  "type": "text",
  "version": 2024,
  "flexible": true,
  "extensions": null,
  "languages": [
    "JavaScript",
    "Python",
    "Java"
  ],
  "nested": {
    "info": "dukungan untuk bersarang"
  }
}
Tipe Contoh Deskripsi
String “teks” Dalam tanda petik ganda, dengan urutan escape
Angka 42 Bilangan bulat, floating-point, eksponensial
Boolean true true atau false — tanpa tanda petik
null null Tidak ada nilai
Objek {} Kumpulan pasangan kunci-nilai tidak terurut
Array [] Daftar nilai terurut

JSON di REST API

JSON adalah format pertukaran data utama untuk REST API dalam pengembangan mobile dan web. Server mengirimkan JSON di body respons, klien — di body permintaan. Header Content-Type standar untuk JSON adalah application/json.

REST API modern menggunakan JSON untuk mengirimkan semua jenis data: dari daftar sederhana hingga struktur bersarang kompleks dengan hubungan antar entitas. Pustaka klien (misalnya Axios di JavaScript atau Retrofit di Android) secara otomatis melakukan serialisasi dan deserialisasi JSON, membebaskan pengembang dari parsing manual.

Keuntungan penting JSON di REST API adalah kemampuan transmisi data parsial (partial response) melalui parameter permintaan, serta dukungan untuk sumber daya bersarang tanpa permintaan tambahan ke server.

Parsing JSON di platform mobile

Parsing JSON di platform mobile dilakukan dengan alat bawaan. Android menggunakan pustaka Gson dari Google atau Moshi dari Square, iOS menggunakan protokol Codable dengan JSONDecoder. Setiap platform menyediakan alat yang nyaman untuk mengonversi JSON ke objek native dan sebaliknya.

JSON di Android (Kotlin)

Di Android, pendekatan dengan Gson atau Moshi populer. Cukup mendefinisikan data class dengan anotasi @SerializedName dan memanggil fromJson untuk deserialisasi. Pustaka secara otomatis mencocokkan nama bidang di JSON dengan bidang kelas.

kotlin
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName

data class User(
    @SerializedName("id") val id: Int,
    @SerializedName("name") val name: String,
    @SerializedName("email") val email: String
)

fun parseJson(jsonString: String): User {
    val gson = Gson()
    return gson.fromJson(jsonString, User::class.java)
}

JSON di iOS (Swift)

Di iOS digunakan protokol bawaan Codable dengan JSONDecoder. Struktur data dideklarasikan sebagai struct dengan protokol Codable, setelah itu JSON diparsing dengan satu baris. JSONEncoder melakukan serialisasi terbalik — mengonversi objek menjadi JSON untuk dikirim ke server.

swift
import Foundation

struct User: Codable {
    let id: Int
    let name: String
    let email: String
}

func parseJSON(from data: Data) throws -> User {
    let decoder = JSONDecoder()
    return try decoder.decode(User.self, from: data)
}

JSON vs XML: perbandingan format

JSON dan XML — dua format utama untuk mentransmisikan data terstruktur. JSON unggul dalam kesederhanaan dan kinerja, XML dalam ketelitian dan validasi. Pilihan di antara keduanya tergantung pada kebutuhan proyek: untuk REST API lebih sering dipilih JSON, untuk dokumen kompleks dengan skema — XML.

XML memerlukan tag penutup untuk setiap elemen, yang meningkatkan ukuran data 2-3 kali lipat dibandingkan JSON. Pada saat yang sama, XML mendukung ruang nama, skema XSD, atribut, dan transformasi XSLT, yang membuatnya lebih kuat untuk tugas alur dokumen dan integrasi sistem perusahaan.

Karakteristik JSON XML
Sintaks Minimalis, kunci-nilai Berbasis tag, tag pembuka dan penutup
Ukuran data Ringkas 2-3 kali lebih besar dari JSON
Tipe data Enam tipe dasar Hanya teks, tipe melalui skema
Validasi Tidak ada bawaan, melalui JSON Schema XSD — ketat dan matang
Ruang nama Tidak Dukungan penuh namespace
Kecepatan parsing Tinggi Lebih rendah karena kompleksitas

Contoh bekerja dengan JSON

Contoh mendemonstrasikan operasi tipikal dengan JSON dalam pengembangan mobile: parsing respons API, membuat JSON untuk dikirim, dan memproses struktur bersarang. Pemahaman pola ini penting bagi setiap pengembang aplikasi mobile.

Serialisasi objek ke JSON

Di JavaScript, JSON.stringify mengonversi objek menjadi string JSON. Argumen kedua dapat berupa array kunci untuk serialisasi selektif atau fungsi pengganti. Argumen ketiga menentukan indentasi untuk pemformatan.

typescript
interface Order {
  id: string;
  items: OrderItem[];
  total: number;
  createdAt: string;
}

const order: Order = {
  id: 'ord_001',
  items: [{ product: 'phone', quantity: 2 }],
  total: 1599.98,
  createdAt: '2026-07-03T10:00:00Z'
};

const jsonString = JSON.stringify(order, null, 2);

Parsing JSON bersarang

Di Kotlin dengan pustaka Moshi, objek JSON bersarang diproses melalui data class bersarang. Anotasi @Json menunjukkan nama bidang di JSON jika berbeda dari nama properti kelas. Array direpresentasikan sebagai List dengan tipe elemen.

kotlin
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory

data class ApiResponse(
    val status: String,
    val data: List<Product>,
    val pagination: Pagination
)

data class Product(
    val id: Int,
    val title: String,
    val price: Double
)

data class Pagination(
    val page: Int,
    val total: Int
)

val moshi = Moshi.Builder()
    .add(KotlinJsonAdapterFactory())
    .build()

JSON Schema: validasi struktur

JSON Schema — adalah bahasa untuk mendeskripsikan struktur dokumen JSON, analog dengan XSD untuk XML. Dengan JSON Schema, Anda dapat menetapkan bidang wajib, tipe data, rentang nilai, pola string, dan struktur bersarang. Validasi berdasarkan skema mendeteksi kesalahan data sebelum diproses di aplikasi.

JSON Schema banyak digunakan di OpenAPI (Swagger) untuk mendokumentasikan REST API, dalam formulir validasi input, dan dalam pengujian. File skema itu sendiri adalah dokumen JSON, memungkinkan penggunaan parser JSON standar untuk membacanya. Ada validator online dan pustaka untuk semua bahasa pemrograman populer.

Dalam pengembangan mobile, JSON Schema digunakan untuk memvalidasi respons server pada tahap pengujian dan untuk memeriksa file konfigurasi. Pustaka seperti network-validator di Android dan json-schema-validator memungkinkan penyematan validasi langsung ke dalam proses pengembangan, mencegah kesalahan pada tahap awal.

Pertanyaan yang sering diajukan

Tipe data apa saja yang didukung JSON?

JSON mendukung enam tipe: string (dalam tanda petik ganda), angka (bulat dan floating-point), boolean (true/false), null, objek (pasangan kunci-nilai dalam {}) dan array (daftar nilai dalam []). Ini cukup untuk semua struktur data dalam aplikasi.

Bisakah komentar digunakan di JSON?

Tidak, standar JSON tidak mendukung komentar. Jika Anda memerlukan komentar, gunakan JSON5 (JSON yang diperluas) atau tambahkan bidang dengan deskripsi, misalnya “_comment”: “penjelasan”. Beberapa alat, seperti VS Code, mendukung komentar di file JSON konfigurasi, tetapi ini adalah ekstensi non-standar.

Apa perbedaan JSON dengan JSONB di PostgreSQL?

JSONB — adalah format penyimpanan biner JSON di PostgreSQL. Tidak seperti JSON teks, JSONB diproses lebih cepat, mendukung pengindeksan (indeks GIN) dan menjamin keunikan kunci. Pada saat yang sama, JSONB memakan lebih banyak ruang disk karena metadata yang ditambahkan.

Bagaimana cara memeriksa validitas JSON?

Gunakan JSONLint (jsonlint.com) untuk pemeriksaan cepat, JSON.parse() bawaan di JavaScript dengan try-catch, atau plugin IDE. Validasi mencakup pemeriksaan kebenaran tanda petik, penutupan kurung, dan kesesuaian tipe. Untuk skema kompleks, gunakan JSON Schema Validator.

Berapa ukuran maksimum file JSON?

Tidak ada batasan dalam spesifikasi JSON. Dalam praktiknya, ukuran dibatasi oleh memori perangkat dan kemampuan parser. Untuk aplikasi mobile, disarankan tidak melebihi 1-2 MB per respons, dan untuk data besar menggunakan paginasi atau transmisi streaming.

Kesimpulan

  • JSON — format teks minimalis dengan enam tipe data untuk pertukaran informasi terstruktur
  • Independen bahasa — parser JSON ada untuk semua bahasa pemrograman populer
  • REST API menggunakan JSON sebagai format standar permintaan dan respons di aplikasi mobile
  • Parsing dilakukan dengan alat bawaan: Gson/Moshi di Android, Codable di iOS
  • JSON lebih ringkas daripada XML 2-3 kali, tetapi kalah dari Protobuf dalam kinerja
  • Keterbacaan — sintaks mudah dibaca dan di-debug tanpa alat khusus
  • JSON Schema — alat tambahan untuk validasi struktur dan tipe data

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga