CSV dan JSON adalah dua format data tabular yang paling umum dalam perangkat lunak modern, dan berpindah antar keduanya secara andal adalah salah satu tugas rekayasa data yang paling sering dilakukan pada proyek apa pun. CSV adalah lingua franca spreadsheet, ekspor analitik, dan sistem lama; JSON adalah standar untuk API web, saluran data modern, dan database dokumen. Bagian di bawah ini menjelaskan kasus-kasus kecil yang menyebabkan konverter naif tersandung, kapan harus memilih setiap format, dan cara menafsirkan output Data Inspector untuk mengetahui masalah kualitas sebelum mencapai produksi.
Kasus Tepi yang Menyandung Pengonversi Naif
Pengurai CSV yang naif membagi setiap baris pada karakter pembatas dan menyebutnya sehari, namun file CSV di dunia nyata berisi beberapa kasus tepi yang mematahkan pendekatan tersebut. Bidang yang diberi tanda kutip adalah yang paling umum: sel seperti `"Smith, John"` berisi koma yang merupakan bagian dari nilai, bukan pemisah bidang, dan parser harus melacak status kutipan saat ia melewati baris tersebut. Baris baru yang tersemat di dalam bidang yang dikutip adalah sah menurut RFC 4180 tetapi sering kali salah diuraikan — baris CSV dapat mencakup beberapa baris fisik ketika sel yang dikutip digabungkan. Tanda kutip ganda yang lolos di dalam kolom tanda kutip direpresentasikan sebagai dua tanda kutip ganda berturut-turut (`"Dia berkata ""halo"""`), yang harus diciutkan menjadi satu tanda kutip di keluaran. Unicode BOM (tanda urutan byte) muncul di awal file yang disimpan oleh Excel di Windows dan membuat byte sampah yang tidak terlihat di nama bidang pertama kecuali jika dihapus. Sistem yang berbeda menggunakan akhiran baris yang berbeda (LF di Unix, CRLF di Windows, terkadang CR kosong di file Mac lama), dan parser harus menangani ketiganya untuk menghindari baris tambahan yang kosong. Konverter ini menangani semua kasus ini dengan benar, namun jika Anda membuat konverter sendiri, jangan gunakan parser Anda sendiri — gunakan pustaka yang telah teruji seperti Papa Parse dalam JavaScript, modul csv dengan Python, atau yang setara.
Kapan Memilih CSV vs JSON
Pilihan format bergantung pada konsumen dan bentuk data, bukan pada sumbernya. Pilih CSV ketika data pada dasarnya berbentuk tabel (barisan catatan homogen), ketika konsumen adalah alat spreadsheet (Excel, Google Sheets, Numbers), saluran ETL lama, atau analis mana pun yang akan membuka file untuk melihatnya. CSV tidak memiliki overhead struktural — representasi data tabular sekecil mungkin — yang penting ketika file mencapai ukuran gigabyte. Kelemahannya: CSV tidak memiliki sistem tipe (semuanya berupa string), tidak ada dukungan untuk struktur bertingkat (data hierarki harus diratakan), dan tidak ada cara formal untuk merepresentasikan null (biasanya string kosong atau penjaga seperti `NULL`). Pilih JSON ketika rekaman bersifat heterogen (bentuk per rekaman berbeda), ketika data memiliki kumpulan alami (pesanan dengan item baris, pengguna dengan alamat), atau ketika konsumen adalah API modern, aplikasi JavaScript, atau database dokumen. JSON mempertahankan tipe dan struktur asli. Kelemahannya adalah ukuran (JSON dengan kunci berulang berukuran 2–5× lebih besar dari CSV yang setara) dan biaya penguraian (JSON memerlukan parser penuh sementara CSV dapat dialirkan). JSONL menghubungkan kumpulan data yang sangat besar dan bersifat hierarkis — setiap baris dapat diurai secara independen, sehingga memungkinkan streaming yang sebenarnya tanpa menyimpan seluruh file di memori.
Menggunakan Pemeriksa Data untuk Menangkap Masalah
Tab Data Inspector menampilkan masalah kualitas data yang hanya akan muncul di bagian hilir jika terjadi kerusakan. Sinyal yang paling penting adalah rasio pengisian per kolom — persentase baris yang memiliki nilai bukan nol di setiap kolom. Kolom dengan pengisian 100% terisi penuh; kolom dengan pengisian 50% memiliki separuh barisnya kosong, yang mungkin benar (bidang opsional) atau mungkin menunjukkan kerusakan data upstream. Periksa kolom dengan isian di bawah 80% sebelum mengirim data ke tempat penting. Ketik inferensi melaporkan apakah kolom konsisten numerik, konsisten string, atau campuran. Kolom tipe campuran biasanya merupakan bug di sumbernya — biasanya kolom numerik dengan beberapa entri teks menyimpang yang akan menyebabkan kesalahan tipe pada konsumen hilir yang diketik secara ketat. Jumlah nilai unik menangkap kunci duplikat: jika kolom kunci utama Anda seharusnya memiliki nilai unik yang lebih sedikit dibandingkan total baris, data sumber memiliki duplikat yang memerlukan deduplikasi sebelum diimpor. Nilai sampel memberi Anda pemeriksaan kewarasan cepat bahwa beberapa nilai pertama di setiap kolom terlihat masuk akal — tanggal yang diuraikan sebagai string, angka dengan simbol mata uang masih terpasang, atau spasi tambahan yang akan menyebabkan pencocokan string gagal. Secara keseluruhan, diagnostik ini menangkap sekitar 90% masalah kualitas data CSV/JSON di dunia nyata sebelum masalah tersebut hilang dari alat ini.