Baik Anda mengonfigurasi aplikasi web, bertukar data antar layanan, menganalisis ekspor spreadsheet, atau membaca respons API, Anda akan menemukan data yang disimpan dalam format teks terstruktur. Empat yang paling umum adalah JSON, YAML, CSV, dan XML.
Setiap format dirancang dengan tujuan berbeda, dan memilih yang tepat tergantung pada kasus penggunaan Anda. Artikel ini menjelaskan apa setiap format, seperti apa bentuknya, kapan menggunakannya, dan bagaimana perbandingannya.
JSON — JavaScript Object Notation
JSON telah menjadi format pertukaran data dominan di web. Meskipun namanya, ia independen dari bahasa pemrograman dan digunakan di mana-mana.
Contoh sintaks:
{
"name": "Alice Martin",
"age": 34,
"skills": ["Python", "SQL", "Docker"],
"address": {
"city": "Lyon",
"country": "France"
}
}
Karakteristik utama:
- Pasangan key-value dengan sintaks yang bersih dan mudah dibaca
- Mendukung string, number, boolean, array, object, dan null
- Tidak mengizinkan komentar dalam JSON standar
- Sintaks ketat — trailing comma dan single quote adalah error
Kasus penggunaan umum: REST API, file konfigurasi (package.json, tsconfig.json), database NoSQL (MongoDB), pertukaran data antara frontend dan backend.
Perlu diketahui. Sintaks ketat JSON adalah kekuatan sekaligus kelemahan. Ia membuat parsing menjadi andal dan tidak ambigu, tapi juga berarti satu koma yang hilang atau kelebihan akan merusak seluruh file.
YAML — YAML Ain't Markup Language
YAML dirancang untuk menjadi format serialisasi data yang paling mudah dibaca manusia. Ia menggunakan indentasi alih-alih tanda kurung dan sangat populer untuk file konfigurasi.
Contoh sintaks:
name: Alice Martin
age: 34
skills:
- Python
- SQL
- Docker
address:
city: Lyon
country: France
Karakteristik utama:
- Struktur berbasis indentasi (tanpa tanda kurung siku atau kurung kurawal)
- Mendukung komentar dengan
# - Mendukung semua tipe data JSON plus lebih (tanggal, string multiline)
- Sensitif terhadap whitespace — indentasi yang salah merusak file
Kasus penggunaan umum: File Docker Compose, manifest Kubernetes, pipeline CI/CD (GitHub Actions, GitLab CI), Ansible playbook, konfigurasi Hugo/Jekyll.
YAML adalah superset dari JSON, artinya dokumen JSON yang valid juga merupakan YAML yang valid. Namun, fleksibilitas YAML bisa menjadi pedang bermata dua — type coercion implisitnya (misalnya, yes diinterpretasikan sebagai boolean true, atau 3.10 menjadi 3.1) telah menyebabkan banyak bug halus.
CSV — Comma-Separated Values
CSV adalah format data terstruktur yang paling sederhana. Ia menyimpan data tabular sebagai teks biasa, dengan setiap baris adalah satu row dan nilai dipisahkan oleh koma (atau kadang titik koma, tab, atau delimiter lain).
Contoh sintaks:
name,age,city,country
Alice Martin,34,Lyon,France
Bob Dupont,28,Paris,France
Carol Smith,41,London,UK
Karakteristik utama:
- Sangat sederhana — hanya teks dengan delimiter
- Tidak ada tipe data — semuanya adalah string
- Tidak ada cara standar untuk merepresentasikan data bersarang
- Tidak ada standar universal resmi (RFC 4180 ada tapi tidak diikuti secara universal)
- Ukuran file sangat kecil
Kasus penggunaan umum: Ekspor spreadsheet, impor/ekspor database, analisis data (pandas, R), pertukaran data sederhana, file log.
Kesederhanaan CSV adalah kekuatan terbesar sekaligus keterbatasan terbesarnya. Ia sempurna untuk data tabular datar tapi tidak bisa merepresentasikan struktur hierarkis. Kasus-kasus tepi (koma dalam nilai, field multiline, masalah encoding) membuat parsing lebih kompleks dari yang terlihat.
XML — Extensible Markup Language
XML adalah format pertukaran data dominan sebelum JSON mengambil alih. Ia menggunakan sintaks berbasis tag mirip HTML dan mendukung fitur kompleks seperti schema, namespace, dan transformasi.
Contoh sintaks:
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name>Alice Martin</name>
<age>34</age>
<skills>
<skill>Python</skill>
<skill>SQL</skill>
<skill>Docker</skill>
</skills>
<address>
<city>Lyon</city>
<country>France</country>
</address>
</person>
Karakteristik utama:
- Struktur berbasis tag dengan tag pembuka dan penutup
- Mendukung atribut, namespace, schema (XSD), dan transformasi (XSLT)
- Mendukung komentar
- Sangat verbose dibandingkan format lain
- Standar yang didefinisikan dengan sangat baik dengan validasi ketat
Kasus penggunaan umum: Layanan web SOAP, integrasi enterprise, format dokumen (DOCX, SVG, RSS), file konfigurasi di ekosistem Java/.NET, pertukaran data pemerintah dan keuangan.
XML lebih verbose dari JSON atau YAML, tapi kemampuan validasi schemanya menjadikannya sangat berharga dalam konteks di mana integritas data dan kontrak formal antar sistem sangat penting.
Perbandingan Berdampingan
| Fitur | JSON | YAML | CSV | XML |
|---|---|---|---|---|
| Keterbacaan | Baik | Sangat baik | Baik (tabular) | Cukup |
| Verbositas | Rendah | Rendah | Sangat rendah | Tinggi |
| Komentar | Tidak | Ya | Tidak | Ya |
| Data bersarang | Ya | Ya | Tidak | Ya |
| Tipe data | Dasar | Kaya | Tidak ada (semua string) | Via schema |
| Validasi schema | JSON Schema | Tidak ada standar | Tidak | XSD |
| Ukuran file | Kecil | Kecil | Terkecil | Besar |
| Kecepatan parsing | Cepat | Sedang | Cepat | Sedang |
| Domain utama | Web API | Konfigurasi DevOps | Data/spreadsheet | Enterprise |
Kapan Menggunakan Yang Mana
- Pilih JSON saat membangun web API, menyimpan konfigurasi untuk proyek JavaScript/TypeScript, atau bertukar data antar layanan. Ini adalah pilihan default untuk sebagian besar aplikasi modern.
- Pilih YAML saat menulis file konfigurasi yang akan sering dibaca dan diedit manusia. Keterbacaan dan dukungan komentarnya menjadikannya ideal untuk DevOps dan infrastructure-as-code.
- Pilih CSV saat bekerja dengan data tabular, mengimpor/mengekspor dari spreadsheet atau database, atau ketika ukuran file harus minimal. Hindari untuk apa pun yang hierarkis.
- Pilih XML saat bekerja dengan sistem enterprise, SOAP API, atau konteks yang memerlukan validasi schema formal. Ia juga pilihan yang tepat ketika Anda membutuhkan markup berorientasi dokumen (seperti SVG atau RSS).
Mengonversi Antar Format
Mengonversi antar format ini adalah tugas yang umum. Beberapa hal yang perlu diingat:
- JSON ke YAML (dan sebaliknya) biasanya lossless karena YAML adalah superset dari JSON.
- CSV ke JSON/YAML bekerja baik untuk data datar tapi memerlukan keputusan tentang struktur untuk output bersarang.
- XML ke JSON dapat kehilangan informasi (atribut, namespace, urutan) karena JSON tidak memiliki konsep yang setara.
- Format apa pun ke CSV hanya bekerja jika data datar atau dapat di-flatten secara bermakna.
Tips. Saat mengonversi antar format, selalu verifikasi outputnya. Konversi otomatis dapat kehilangan data secara diam-diam, terutama dengan atribut XML, type coercion YAML, atau kasus tepi encoding CSV.
Pelajari Lebih Lanjut
ToolK.io menyediakan alat gratis untuk mengonversi antara JSON, YAML, CSV, dan XML, memformat dan memvalidasi data Anda, dan menjelajahi tutorial terkait untuk bekerja dengan data terstruktur dalam proyek Anda.
