Konversi JSON ke CSV – Panduan pemula

By Help2Code Editorial Team Published 16 Jun 2026 Updated 22 Oct 2026 1,190 words
Also available in: 🇵🇹 PT 🇬🇧 EN

Konversi JSON ke CSV adalah tugas yang umum ketika Anda perlu menganalisis data JSON di aplikasi spreadsheet. JSON (JavaScript Object Notation) menjadi format dominan untuk API dan penyimpanan data karena mendukung struktur bersarang serta berbagai tipe data. Sebaliknya, CSV (Comma-Separated Values) adalah format universal untuk spreadsheet, basis data, dan alat analisis data. Mengonversi di antara keduanya menjembatani kesenjangan antara pertukaran data terstruktur dan analisis dalam bentuk tabel.

Mengapa Mengonversi JSON ke CSV?

Ada beberapa alasan praktis untuk mengubah data JSON menjadi format CSV:

Mengimpor Data ke Excel atau Google Sheets

Aplikasi spreadsheet dapat membuka file CSV secara langsung dengan kolom dan baris yang tersusun rapi. Sebaliknya, file JSON tampil sebagai teks mentah dan perlu diuraikan secara manual. Dengan mengonversi ke CSV, Anda bisa memanfaatkan fitur filter, pengurutan, grafik, dan pivot table di Excel tanpa menulis kode sama sekali.

Menggunakan Alat Analisis Data

Alat seperti Tableau, Power BI, R, dan pandas di Python semuanya bekerja secara alami dengan data CSV. Meskipun alat-alat tersebut dapat mengurai JSON, CSV biasanya lebih cepat dimuat dan lebih mudah diperiksa secara visual. Jika pipeline data science Anda mengharapkan input dalam bentuk tabel, mengonversi JSON ke CSV adalah langkah pertamanya.

Berbagi Data dengan Rekan Non-Teknis

File CSV dapat dibuka oleh siapa saja yang memiliki perangkat lunak spreadsheet, terlepas dari latar belakang teknisnya. Mengirim file JSON kepada orang yang bukan developer sering menimbulkan kebingungan. Dengan mengonversi ke CSV, data Anda langsung dapat diakses oleh seluruh anggota tim.

Mengurangi Ukuran File untuk Dataset Besar

Sintaks JSON yang panjang menambah overhead cukup besar melalui key, kurung, koma, dan tanda kutip yang berulang. CSV menghilangkan sebagian besar redundansi tersebut. Untuk dataset besar, pengurangan ukuran file bisa cukup signifikan, sering kali mencapai 30 hingga 50 persen atau lebih. Hal ini membuat file CSV lebih cepat dikirim, disimpan, dan diproses.

Memahami Persyaratan Struktur Data

Sebelum melakukan konversi, Anda perlu memahami satu batasan penting: CSV adalah format datar dua dimensi. Format ini mendukung baris dan kolom, tetapi tidak mendukung objek atau array bersarang. Jika data JSON Anda mengandung struktur bersarang, Anda harus meratakannya (flatten) saat konversi. Strategi perataan yang umum digunakan antara lain:

  • Notasi titik (dot notation): Ubah {"address": {"city": "Paris"}} menjadi kolom bernama address.city.
  • Ekspansi array: Jika sebuah field berisi array, buat beberapa baris untuk setiap elemen array, dengan menduplikasi field lainnya.
  • Serialisasi: Simpan objek bersarang sebagai string JSON di dalam satu kolom CSV.

Alat Online

Alat Konverter JSON ke CSV mengubah array JSON menjadi format CSV dengan opsi yang dapat disesuaikan. Berikut cara menggunakannya:

  1. Tempelkan array JSON Anda ke area input. Alat ini mengharapkan array objek di mana setiap objek mewakili satu baris.
  2. Atur pemisah (koma, titik koma, atau tab) dan karakter pembungkus.
  3. Pilih apakah akan menyertakan header (diambil dari key objek).
  4. Klik tombol konversi lalu unduh file CSV yang dihasilkan.

Alat ini juga menangani objek bersarang dengan meratakannya menggunakan notasi titik, serta menampilkan pratinjau beberapa baris pertama agar Anda dapat memeriksa hasilnya sebelum mengunduh.

Konversi dengan JavaScript

Jika Anda bekerja di lingkungan browser atau Node.js, Anda dapat mengonversi JSON ke CSV secara programatik menggunakan JavaScript. Berikut implementasi yang cukup tangguh:

function jsonToCsv(json, delimiter = ',') {
  const items = typeof json === 'string' ? JSON.parse(json) : json;
  if (!items || !items.length) return '';

  // Ambil header dari objek pertama, sekaligus tangani key bersarang
  const getKeys = (obj, prefix = '') => {
    return Object.keys(obj).reduce((keys, key) => {
      const fullKey = prefix ? `${prefix}.${key}` : key;
      if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {
        return keys.concat(getKeys(obj[key], fullKey));
      }
      return keys.concat(fullKey);
    }, []);
  };

  const headers = getKeys(items[0]);
  const escapeField = (value) => {
    const str = value === null || value === undefined ? '' : String(value);
    if (str.includes(delimiter) || str.includes('"') || str.includes('\n')) {
      return '"' + str.replace(/"/g, '""') + '"';
    }
    return str;
  };

  const csv = [
    headers.join(delimiter),
    ...items.map(item => {
      const getValue = (obj, key) => {
        const keys = key.split('.');
        let value = obj;
        for (const k of keys) {
          if (value === null || value === undefined) return '';
          value = value[k];
        }
        return escapeField(value);
      };
      return headers.map(h => getValue(item, h)).join(delimiter);
    })
  ];

  return csv.join('\n');
}

Implementasi ini menangani objek bersarang, melakukan escape dengan benar pada field yang mengandung pemisah atau tanda kutip, serta menangani nilai yang hilang tanpa error.

Konversi dengan Python

Pustaka standar Python sudah menyertakan semua yang Anda butuhkan untuk konversi JSON ke CSV. Modul json mengurai input, sedangkan modul csv menulis output dengan escape dan tanda kutip yang tepat.

import json
import csv

def json_to_csv(input_file, output_file):
    with open(input_file, 'r', encoding='utf-8') as f:
        data = json.load(f)

    if not data:
        print("No data found in input file")
        return

    # Ambil header dari objek pertama
    headers = list(data[0].keys())

    with open(output_file, 'w', newline='', encoding='utf-8') as f:
        writer = csv.DictWriter(f, fieldnames=headers)
        writer.writeheader()
        writer.writerows(data)

    print(f"Successfully converted {len(data)} rows to {output_file}")

# Penggunaan
json_to_csv('data.json', 'output.csv')

Untuk data JSON bersarang, Anda dapat meratakan strukturnya menggunakan fungsi rekursif sebelum menulis ke CSV. Pustaka pandas juga menyediakan cara praktis dalam satu baris: pandas.read_json('data.json').to_csv('output.csv', index=False).

Baris Perintah dengan jq

Bagi Anda yang lebih suka menggunakan baris perintah, utilitas jq adalah pemroses JSON yang ampuh dan dapat mengonversi array JSON ke CSV hanya dengan satu perintah:

# Konversi dasar
jq -r '(.[0] | keys_unsorted) as $keys | $keys, map([.[ $keys[] ]])[] | @csv' data.json

# Pemisah kustom
jq -r '(.[0] | keys_unsorted) as $keys | $keys, map([.[ $keys[] ]])[] | @tsv' data.json

# Tangani objek bersarang dengan memilih field tertentu
jq -r '.[] | [.id, .name, .email] | @csv' data.json

Format string @csv dan @tsv secara otomatis melakukan escape pada field yang mengandung koma, tanda kutip, atau baris baru. Untuk file berukuran besar, jq sangat cepat karena memproses JSON secara streaming tanpa memuat seluruh file ke dalam memori.

Jebakan Umum dan Solusinya

Objek Bersarang

Tantangan terbesar dalam konversi JSON ke CSV adalah menangani objek bersarang. Karena CSV tidak dapat merepresentasikan data hierarkis, Anda harus memilih strategi perataan. Pendekatan yang paling umum adalah notasi titik, di mana setiap field bersarang menjadi kolom terpisah dengan nama bertitik.

Array di Dalam Objek

Ketika sebuah objek memiliki field berupa array, ada tiga pilihan yang bisa Anda ambil:

  • Ekspansi baris: Buat satu baris untuk setiap elemen array, dengan menduplikasi field lainnya.
  • Penggabungan: Gabungkan elemen array dengan sebuah pemisah lalu simpan dalam satu kolom.
  • Beberapa kolom: Buat kolom terpisah untuk setiap indeks array jika Anda mengetahui panjang maksimumnya.

Tipe Data Campuran

Array JSON dapat berisi objek dengan struktur yang berbeda-beda. CSV menuntut skema yang seragam di semua baris. Pendekatan terbaik adalah mengambil gabungan (union) semua key dari seluruh objek, lalu menggunakan nilai kosong untuk key yang tidak ada.

Kesimpulan

Mengonversi JSON ke CSV adalah proses yang lugas setelah Anda memahami perbedaan struktur antara kedua format tersebut. Baik Anda memilih konverter online, bahasa pemrograman, maupun alat baris perintah, tersedia banyak pilihan yang bisa digunakan. Untuk konversi sekali pakai yang cepat, alat online Konverter JSON ke CSV adalah pilihan paling mudah. Untuk alur kerja otomatis, contoh JavaScript, Python, dan jq di atas memberikan fondasi yang kuat untuk Anda kembangkan.


About this article

Pelajari cara mengonversi data JSON ke CSV dengan alat online gratis dan kode.


Related Articles


Related Tools