Perbedaan JSON dan XML

JSON dan XML itu dua format data yang dipakai buat pertukaran data antar sistem, terutama di web API. di dunia REST API modern, JSON jauh lebih dominan, dan kalian bisa langsung praktik bikinnya di belajar REST API PHP.
di project yang pernah saya kerjakan, dua-duanya pernah saya pakai: JSON buat API internal yang butuh kecepatan, XML buat integrasi sama sistem lama yang cuma terima format itu. jadi daripada debat mana yang “lebih baik”, artikel ini bakal jelasin perbedaan teknisnya dan kapan masing-masing masuk akal dipakai.
1. Apa Itu JSON dan XML?
sebelum bandingin, kenalan dulu singkat:
- JSON (JavaScript Object Notation) lahir tahun 2001 dari kebutuhan javascript, formatnya pasangan
key: valueyang persis kayak object javascript. sejak itu jadi standar de facto buat API web. - XML (eXtensible Markup Language) lahir tahun 1998, lebih tua. formatnya tag buka tutup kayak HTML, awalnya dirancang buat dokumen yang bisa dibaca mesin dan manusia sekaligus.
2. Contoh Langsung
data yang sama, dua cara penulisan yang beda jauh:
JSON:
{
"nama": "Andi",
"umur": 25,
"hobi": ["coding", "membaca"],
"alamat": {
"kota": "Jakarta",
"provinsi": "DKI Jakarta"
}
}
XML:
<user>
<nama>Andi</nama>
<umur>25</umur>
<hobi>
<item>coding</item>
<item>membaca</item>
</hobi>
<alamat>
<kota>Jakarta</kota>
<provinsi>DKI Jakarta</provinsi>
</alamat>
</user>
lihat bedanya? JSON cuma butuh kurung dan koma, XML harus nulis nama tag dua kali, buka dan tutup. itu alasan utama kenapa file XML hampir selalu lebih besar.
3. Perbandingan Lengkap
| Aspek | JSON | XML |
|---|---|---|
| Syntax | Ringkas, mirip object JS | Berat, pakai tag buka tutup |
| Ukuran file | Lebih kecil, sekitar 30 persen lebih ringan | Lebih besar |
| Kecepatan parsing | Cepat | Lebih lambat |
| Dukungan bahasa | Native di JS, library di semua bahasa | Butuh library tambahan |
| Array | Native | Perlu tag wrapper |
| Atribut di tag | Tidak ada | Ada |
| Komentar | Tidak ada (JSONC/JSON5 ada tapi bukan standar) | Ada |
| Namespace | Tidak ada | Ada |
| Validasi | JSON Schema (komunitas, lebih muda) | XSD (lebih ketat dan mature, built-in) |
| Tipe data | String, number, boolean, null, array, object | Semuanya string, harus dikonversi manual |
| Streaming besar | Harus load semua (kecuali JSON Lines) | Parser streaming bisa proses tanpa load penuh |
satu hal yang sering bikin bingung pemula: di XML, semua nilai itu teks. angka 25 di contoh atas sebenarnya string "25" sampai parser kalian yang mengkonversinya jadi number. di JSON, angka ya angka, boolean ya boolean. perlu diingat juga payload JSON biasanya 30 sampai 50 persen lebih kecil, dan parsing JSON 2 sampai 3 kali lebih cepat untuk data object, tapi untuk dokumen raksasa XML streaming bisa lebih hemat memori dan kompresi gzip bisa perkecil bedanya.
4. Kelebihan JSON
- lebih ringan dan cepat diparsing
- native di javascript, langsung jadi object lewat
JSON.parse() - sintaks lebih pendek dan gampang dibaca manusia
- dominan di REST API modern, dukungan library ada di semua bahasa
- tipe data jelas tanpa konversi manual
contoh parsing JSON di dua bahasa:
// JavaScript
const data = JSON.parse('{"nama": "Andi", "umur": 25}');
console.log(data.umur); // 25, langsung number
<?php
// PHP
$data = json_decode('{"nama": "Andi", "umur": 25}');
echo $data->umur; // 25
5. Kelebihan XML
- mendukung atribut di dalam tag:
<nilai type="uts">90</nilai> - mendukung komentar di dalam data
- namespace buat menghindari konflik nama antar sistem
- schema XSD buat validasi struktur yang sangat ketat
- masih dipakai di SOAP API, RSS dan Atom feed, SVG, serta file office seperti docx dan xlsx
XML memang terasa kuno, tapi justru fitur metadata dan validasinya yang bikin dia bertahan di dunia enterprise, perbankan, dan pemerintahan yang butuh kontrak data super ketat.
6. Format Ketiga: YAML
sekarang muncul format ketiga yang makin populer, YAML, yang sering bikin bingung karena dibanding-bandingkan juga:
nama: Andi
umur: 25
hobi:
- coding
- membaca
YAML pakai indentasi tanpa kurung atau tag, paling enak dibaca manusia, tapi parsing-nya paling lambat dan sensitif sama spasi. makanya YAML jarang dipakai buat API, tapi dominan buat file konfigurasi kayak docker-compose.yml dan workflow GitHub Actions.
7. Kapan Menggunakan yang Mana?
pilih JSON untuk:
- REST API baru
- aplikasi mobile dan web
- pertukaran data ringan antar service
- konfigurasi project Node.js atau Python
pilih XML untuk:
- SOAP web services
- RSS dan Atom feed
- dokumen dengan metadata kompleks
- integrasi enterprise dengan sistem lama
- data yang butuh validasi XSD ketat
pilih YAML untuk:
- file konfigurasi yang sering dibaca dan diedit manusia
- docker-compose, CI/CD pipeline, Ansible
aturan praktis yang saya pegang: kalau bikin API baru, JSON tanpa mikir. XML cuma kalau lawan bicaranya sistem lama yang maksa. YAML buat file config, bukan buat API.
8. Studi Kasus: Integrasi Dua Sistem
gambaran nyata yang pernah saya alami: aplikasi e-commerce internal pakai JSON buat komunikasi frontend ke backend, cepat dan ringan. tapi pas harus kirim laporan transaksi ke sistem akuntansi lawas milik klien, sistem itu cuma terima XML dengan XSD tertentu. jadi satu project, dua format, dua peran:
// API internal, respons ke frontend
{ "order_id": 1001, "total": 250000, "status": "paid" }
<!-- laporan ke sistem akuntansi lawas -->
<order id="1001">
<total currency="IDR">250000</total>
<status>paid</status>
</order>
pelajaran yang saya ambil: format data itu bukan soal mana yang paling modern, tapi mana yang cocok sama sistem yang diajak bicara. paham dua-duanya bikin kalian fleksibel di lapangan.
Kesimpulan
- JSON itu modern, ringan, dan cepat, cocok buat REST API, mobile, dan web
- XML itu matang, lebih berat, tapi punya atribut, namespace, dan validasi XSD yang tidak dimiliki JSON
- YAML itu alternatif buat konfigurasi yang paling enak dibaca, bukan buat API
- default-nya, pakai JSON buat API baru, dan XML kalau integrasi memang butuh fitur yang cuma XML punya
Baca Juga Mengenai :
Pertanyaan yang Sering Diajukan
Apa perbedaan utama JSON dan XML?
JSON itu ringkas, pakai pasangan key dan value kayak object javascript, dan lebih ringan. XML pakai tag buka tutup seperti HTML, lebih bertele-tele tapi punya fitur atribut, komentar, dan namespace yang tidak ada di JSON.
Mana yang lebih cepat, JSON atau XML?
JSON lebih cepat. ukurannya sekitar 30 persen lebih kecil buat data yang sama, dan parsing-nya lebih ringan. di javascript, JSON.parse langsung jadi object tanpa library tambahan.
Kenapa XML masih dipakai sampai sekarang?
karena fitur yang tidak dimiliki JSON: atribut di dalam tag, komentar, namespace, dan validasi ketat lewat XSD. XML masih dominan di SOAP API, RSS feed, dokumen office seperti docx, dan integrasi sistem enterprise atau perbankan.
Kapan sebaiknya pakai JSON?
pakai JSON buat REST API baru, aplikasi mobile dan web, pertukaran data ringan, dan konfigurasi project. hampir semua bahasa pemrograman modern punya dukungan native untuk JSON.
Kapan sebaiknya pakai XML?
pakai XML kalau integrasi sama sistem lama yang hanya terima XML, butuh metadata kompleks atau namespace, validasi ketat lewat XSD, atau format dokumen kayak SVG, RSS, dan file office.
Apa bedanya JSON, XML, dan YAML?
YAML itu format ketiga yang lebih manusiawi karena pakai indentasi tanpa kurung atau tag. YAML populer buat file konfigurasi seperti docker-compose dan GitHub Actions, tapi jarang dipakai buat API karena parsing-nya lebih lambat.

