CSV (Comma-Separated Values) adalah format tabular teks biasa di mana setiap baris merupakan satu record data dan kolom dalam sebuah record dipisahkan oleh pembatas, biasanya koma. CSV telah menjadi format pertukaran standar sejak era awal komputasi personal, yang diformalkan dalam RFC 4180. Spreadsheet, basis data, dan alat ekspor data semuanya menghasilkan CSV karena formatnya sederhana, ringkas, dan dapat dibaca oleh hampir setiap bahasa pemrograman.
JSON (JavaScript Object Notation) merepresentasikan data terstruktur sebagai pasangan kunci-nilai dan array berurutan. Tidak seperti CSV, JSON mendukung objek bersarang, nilai bertipe (angka, boolean, null), dan record dengan panjang variabel. Karena JSON dipahami secara native oleh mesin JavaScript, JSON menjadi format dominan untuk pertukaran data antara browser dan server serta respons REST API. Sifat-sifat ini menjadikan JSON format bawaan untuk API web, file konfigurasi, dan basis data NoSQL seperti MongoDB dan CouchDB.
Mengonversi CSV ke JSON berarti memetakan setiap baris tabel menjadi objek JSON, menggunakan baris header sebagai nama properti dan nilai sel sebagai nilai properti. Hasilnya biasanya berupa JSON array dari objek-objek. Konversi ini diperlukan setiap kali Anda perlu memasukkan data tabular flat ke dalam sistem yang mengharapkan input JSON terstruktur, seperti REST API, komponen tabel data frontend, atau basis data berorientasi dokumen.
Mengapa Menggunakan Alat Ini?
Konverter ini mengurai CSV Anda di browser, menghasilkan output JSON secara instan, dan tidak pernah mengirim data Anda ke server.
⚡
Konversi Instan
Tempel CSV dan dapatkan output JSON segera. Tidak ada penantian untuk bolak-balik ke server atau unggahan file. Konversi berlangsung saat Anda mengetik.
🔒
Pemrosesan Mengutamakan Privasi
Data Anda tetap berada di tab browser Anda. Tidak ada yang dikirimkan melalui jaringan. Aman untuk dataset internal, kredensial, atau data pribadi yang tidak boleh meninggalkan perangkat Anda.
🔀
Deteksi Pembatas Otomatis
Alat ini mengenali pembatas koma, tab, titik koma, dan pipa. Anda juga dapat mengatur pembatas secara manual jika file Anda menggunakan pemisah yang tidak umum.
📋
Salin atau Unduh
Salin hasil JSON ke clipboard dengan satu klik atau unduh sebagai file .json. Siap digunakan langsung dalam kode, klien API, atau impor basis data Anda.
Kasus Penggunaan CSV ke JSON
Pengembangan Frontend
Konversi ekspor CSV dari alat desain atau spreadsheet menjadi JSON untuk digunakan sebagai data mock pada komponen React, Vue, atau Angular selama prototyping.
Seeding API Backend
Ubah dump basis data CSV menjadi payload JSON untuk seeding REST atau GraphQL API. Banyak ORM dan alat migrasi menerima fixture JSON untuk pemuatan data awal.
Konfigurasi DevOps
Konversi daftar inventaris CSV atau matriks lingkungan menjadi JSON untuk digunakan dalam playbook Ansible, file variabel Terraform, atau konfigurasi pipeline CI/CD.
Persiapan Data Uji QA
Ubah matriks uji berbasis spreadsheet menjadi JSON array yang dapat digunakan oleh kerangka pengujian seperti Jest, pytest, atau Playwright untuk pengujian berbasis data.
Pipeline Data Engineering
Konversi output CSV dari kueri SQL atau ekspor ETL menjadi JSON untuk dimuat ke penyimpan dokumen seperti MongoDB, Elasticsearch, atau mode ingest JSON BigQuery.
Proyek Mahasiswa dan Pembelajaran
Konversi cepat dataset CSV contoh (Kaggle, portal data terbuka pemerintah) menjadi JSON untuk digunakan dalam tugas pengembangan web, tutorial, atau proyek pribadi.
Referensi Pembatas CSV
File CSV tidak selalu menggunakan koma. Pembatas bergantung pada lokal, aplikasi pengekspor, dan konten data. Berikut adalah empat pembatas yang paling umum beserta kapan masing-masing biasanya digunakan:
Pembatas
Standar
Ekstensi
Catatan
Comma (,)
RFC 4180 default
.csv
Most common; Excel default export
Tab (\t)
TSV variant
.tsv
Avoids quoting fields that contain commas
Semicolon (;)
European locale CSV
.csv
Used where comma is the decimal separator (DE, FR, BR)
Pipe (|)
Fixed-width alternative
.csv
Rare in field values, good for messy data
CSV vs JSON: Perbedaan Struktural
Perbedaan antara kedua format inilah yang membuat pemetaan header, inferensi tipe, dan penanganan nilai yang hilang memerlukan keputusan eksplisit selama konversi.
CSV
Format flat berorientasi baris. Setiap record memiliki jumlah kolom yang sama. Semua nilai berupa string kecuali konsumen menyimpulkan tipenya. Tidak ada dukungan untuk nesting atau record dengan panjang berbeda. Baris header bersifat opsional menurut RFC 4180, tetapi diperlukan untuk konversi JSON yang bermakna.
JSON
Format terstruktur pohon yang mendeskripsikan dirinya sendiri. Setiap objek dapat memiliki kunci yang berbeda. Nilai bertipe: string, angka, boolean, null, objek, atau array. Mendukung kedalaman nesting yang bebas. Urutan properti tidak dijamin oleh spesifikasi JSON (ECMA-404), meskipun sebagian besar parser mempertahankan urutan penyisipan.
Contoh Kode
Cara mengonversi CSV ke JSON secara terprogram dalam bahasa dan alat CLI yang populer:
import csv, json, io
csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""
reader = csv.DictReader(io.StringIO(csv_string))
data = [row for row in reader]
print(json.dumps(data, indent=2))
# → [{"name": "Alice", "age": "30", "city": "Berlin"}, ...]
# With type coercion (age as int)
import pandas as pd
df = pd.read_csv(io.StringIO(csv_string))
print(df.to_json(orient="records", indent=2))
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
Go
package main
import (
"encoding/csv"
"encoding/json"
"fmt"
"strings"
)
func main() {
input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
r := csv.NewReader(strings.NewReader(input))
records, _ := r.ReadAll()
headers := records[0]
var result []map[string]string
for _, row := range records[1:] {
obj := make(map[string]string)
for i, h := range headers {
obj[h] = row[i]
}
result = append(result, obj)
}
out, _ := json.MarshalIndent(result, "", " ")
fmt.Println(string(out))
// → [{"age":"30","city":"Berlin","name":"Alice"}, ...]
}
CLI (jq + Miller)
# Using Miller (mlr) — handles quoting, types, and edge cases
mlr --icsv --ojson cat data.csv
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
# Using csvjson from csvkit (Python-based)
csvjson data.csv
# Using jq with @csv (reverse: JSON → CSV)
# For CSV → JSON, pipe through Miller or Python
cat data.csv | python3 -c "
import csv, json, sys
reader = csv.DictReader(sys.stdin)
json.dump(list(reader), sys.stdout, indent=2)
"
Pertanyaan yang Sering Diajukan
Bagaimana konverter menangani file CSV tanpa baris header?
Jika CSV Anda tidak memiliki baris header, konverter menggunakan kunci yang dibuat otomatis seperti "field1", "field2", dan seterusnya. Untuk hasil terbaik, tambahkan baris header sebelum mengonversi, atau ganti nama kunci dalam output JSON setelahnya.
Apa yang terjadi pada kolom yang mengandung koma atau baris baru?
Parser mengikuti aturan pengapit RFC 4180. Kolom yang dibungkus tanda kutip ganda dapat mengandung koma, baris baru, bahkan tanda kutip ganda (di-escape sebagai ""). Konverter menghapus tanda kutip luar dan mempertahankan konten di dalamnya sebagai satu nilai string JSON.
Apakah konversi mempertahankan tipe data seperti angka dan boolean?
CSV adalah format tanpa tipe; semua nilai sel berupa string. Konverter ini menghasilkan nilai string secara default untuk menghindari kehilangan data. Jika Anda membutuhkan output bertipe, parse hasil JSON di aplikasi Anda dan konversi kolom secara eksplisit. Pustaka seperti Papa Parse (JavaScript) dan pandas (Python) menawarkan opsi penentuan tipe dinamis selama parsing.
Bisakah saya mengonversi CSV dengan titik koma atau tab sebagai ganti koma?
Ya. Alat ini mendukung pembatas koma, tab, titik koma, dan pipa. Pilih pembatas yang benar dari dropdown, atau biarkan deteksi otomatis mengidentifikasinya. Titik koma umum digunakan dalam ekspor CSV dari Excel dengan lokal Eropa, di mana koma berfungsi sebagai pemisah desimal.
Apakah ada batasan ukuran file untuk input CSV?
Karena pemrosesan berjalan sepenuhnya di browser Anda, batas praktisnya bergantung pada memori yang tersedia di perangkat Anda. File hingga 10–20 MB biasanya dapat dikonversi tanpa masalah pada perangkat modern. Untuk file yang sangat besar (ratusan MB), gunakan parser streaming seperti Papa Parse di Node.js atau modul csv Python, yang memproses data baris per baris tanpa memuat semuanya ke memori.
Bagaimana cara menangani baris CSV dengan jumlah kolom yang berbeda-beda?
CSV tidak teratur (baris dengan lebih sedikit atau lebih banyak kolom dari header) umum terjadi dalam ekspor dunia nyata. Konverter ini mengisi kolom yang hilang dengan string kosong dan mengabaikan kolom ekstra di luar jumlah header. Jika data Anda secara konsisten tidak teratur, periksa file sumber untuk pembatas yang tidak di-escape atau tanda kutip yang hilang.
Apa perbedaan antara output JSON array dan JSON objek?
JSON array dari objek-objek adalah output standar: setiap baris CSV menjadi satu objek dalam array, dengan nama header sebagai kunci. Beberapa alat juga menawarkan output "berorientasi kolom" di mana setiap header menjadi kunci dengan array semua nilai dalam kolom tersebut. Format array-dari-objek lebih umum untuk API, basis data, dan pengikatan data frontend.