Tabel CSV (.csv)

RFC Standar

Comma-Separated Values (CSV) adalah format teks biasa yang digunakan secara luas untuk data tabel. Setiap baris mewakili satu catatan data dan kolom dipisahkan oleh karakter pemisah.

Konversi XLSX ke CSV

Konverter XLSX ke CSV gratis yang berjalan di peramban. Konversikan berkas secara instan di perangkat Anda.

Kompres CSV Secara Daring

Privat - file tidak pernah meninggalkan perangkat Anda

Pemeriksaan & Metadata

Sistem operasi dan penganalisis file mengenali file CSV dengan memeriksa urutan byte biner di bagian awal:

Pilih atau letakkan berkas di sini

Privat - file tidak pernah meninggalkan perangkat Anda

atau tempel Ctrl+V
Jaminan Privasi Tanpa Transmisi Jaringan: 0 byte diunggah ke server eksternal. Semua pemrosesan berlangsung secara lokal di sandbox browser Anda.

Tanda Tangan Header per Byte (Byte Penanda)

Sistem operasi dan penganalisis file mengenali file CSV dengan memeriksa urutan byte biner di bagian awal:

TANDA TANGAN HEX (OFFSET 0):

Tidak memiliki tanda tangan tetap

REPRESENTASI ASCII: Byte teks; pengodean bervariasi (sering kali UTF-8)

Standardisasi: RFC 4180 / IETF

Spesifikasi Teknis

Arsitektur KontainerFile teks datar dengan delimiter yang merepresentasikan baris dan kolom tabel
KompresiGzip / Deflate mencapai kompresi 85%-95% pada data tabel yang berulang
Urutan ByteAliran teks UTF-8 (opsional UTF-8 BOM EF BB BF digunakan oleh Excel)
Ruang WarnaTidak berlaku
Saluran & StrukturBaris dipisahkan dengan CRLF dan kolom dipisahkan dengan koma
Dimensi MaksimumTanpa batas; dapat dialirkan hingga ukuran gigabita tanpa memuat seluruh file ke dalam memori
TransparansiTidak berlaku
Streaming & ProgresifPemrosesan aliran baris demi baris bawaan didukung oleh semua alur data

Perbandingan Teknis CSV dengan Pesaing

Atribut TeknisCSV (Saat Ini)Excel (XLSX)ParquetJSON
Jenis FileTabel datar teks biasaLembar kerja XML terkompresiPenyimpanan kolom binerTeks hierarkis
Beberapa LembarTidak (hanya satu tabel datar)Ya (beberapa buku kerja dan lembar)Penyimpanan berbasis partisiArray dan objek bertingkat
Jenis DataTeks mentah tanpa tipeSel bertipe, rumus, pemformatanTipe kolom biner ketatTipe primitif (string, angka, boolean)
Analitik Big DataLambat (setiap baris harus dibaca secara berurutan)Tidak cocok untuk data besarSangat cepat (pemilihan kolom & penerapan predikat lebih awal)Sedang

Pola Kerusakan Umum dan Panduan Pemulihan Hex

Kolom bergeser ke kanan atau jumlah baris tidak sesuai.

Penyebab Utama: Bidang teks yang berisi koma tanpa karakter escape dan tanpa tanda kutip di sekelilingnya.

Pemulihan: RFC 4180 mengharuskan bidang yang berisi koma dibungkus dengan tanda kutip ganda: "Smith, John".

Karakter beraksen muncul sebagai simbol aneh (mojibake seperti é alih-alih é) di Excel.

Penyebab Utama: Excel membuka CSV UTF-8 dengan asumsi pengodean karakter Windows ANSI/CP1252 lama.

Pemulihan: Tambahkan Byte Order Mark (BOM) UTF-8 3-byte (0xEF 0xBB 0xBF) di awal file.

Analisis Keamanan & Vektor Serangan Parser

File CSV dapat langsung dibuka di perangkat lunak lembar kerja seperti Excel dan Google Sheets, sehingga pengguna rentan terhadap serangan injeksi rumus (injeksi CSV).

Vektor Serangan yang Diketahui

  • Injeksi rumus: sel yang diawali dengan '=', '+', '-', atau '@' menjalankan makro lembar kerja atau perintah DDE (misalnya '=cmd|' /C calc'!A0').
  • Eksfiltrasi data melalui rumus HYPERLINK() yang mengirimkan data sel sensitif ke server penyerang jarak jauh saat diklik.

Praktik Terbaik Defensif: Saat mengekspor data pengguna ke CSV, tambahkan tanda kutip tunggal (') atau tab ke sel apa pun yang diawali dengan '=', '+', '-', atau '@' untuk memaksa tampilan teks biasa di Excel.

Asal-Usul & Tonggak Sejarah

2015W3C menstandarkan Model Data Tabular dan Metadata di Web untuk CSV di Web (CSVW) dengan deskriptor metadata JSON-LD.
2005IETF menerbitkan RFC 4180, yang menetapkan spesifikasi formal untuk file CSV.
1972Kompiler IBM Fortran (H Extended) menerapkan masukan/keluaran yang dibatasi koma.

Keunggulan & Kelebihan Utama

  • Sangat sederhana: dapat dibaca di editor teks apa pun dan diimpor ke semua basis data serta lembar kerja.
  • Pemrosesan aliran baris demi baris yang sangat cepat tanpa membangun DOM lengkap di memori.
  • Overhead minimal: tanpa sintaks tag yang panjang atau definisi skema.

Keterbatasan Teknis & Kekurangan

  • Tidak ada tipe data standar: angka, tanggal, boolean, dan teks semuanya disimpan sebagai string mentah.
  • Tidak ada dukungan untuk beberapa lembar, pemformatan sel, rumus, atau metadata.
  • Konflik pembatas (koma di dalam teks, koma desimal di wilayah Eropa) sering menyebabkan kesalahan penguraian.

Fakta Teknis Menarik

  • Di banyak negara Eropa yang menggunakan koma sebagai tanda desimal, titik koma (;) digunakan sebagai pemisah CSV pengganti koma.
  • Microsoft Excel secara historis memerlukan BOM UTF-8 (0xEF 0xBB 0xBF) agar dapat menampilkan karakter beraksen non-ASCII dengan benar.
  • Layanan Kesehatan Nasional Inggris (NHS) terkenal kehilangan hampir 16.000 catatan pelacakan kontak COVID-19 pada tahun 2020 karena data diimpor ke lembar sebar Excel versi lama yang membatasi jumlah baris hingga 65.536.

Pertanyaan Teknis yang Sering Diajukan

Apa itu RFC 4180?

RFC 4180 adalah standar IETF resmi untuk CSV. Standar ini mewajibkan bidang yang berisi koma, pemisah baris, atau tanda kutip ganda diapit dengan tanda kutip ganda, dan tanda kutip di dalam bidang digandakan untuk meng-escape-nya ("").

Mengapa file CSV terbuka dengan karakter rusak di Excel?

Versi lama Microsoft Excel secara bawaan menggunakan code page Windows lokal (seperti Windows-1252) alih-alih UTF-8 saat membuka file CSV secara langsung. Menambahkan BOM (Byte Order Mark) UTF-8 di awal file memaksa Excel mendekode UTF-8 dengan benar.

Apa itu Injeksi CSV (Injeksi Rumus)?

Injeksi CSV terjadi saat input pengguna yang tidak tepercaya dan diawali pemicu rumus ('=', '+', '-', '@') diekspor ke file lembar kerja. Saat dibuka di perangkat lunak seperti Excel, lembar kerja otomatis menjalankan rumus atau perintah pertukaran data dinamis (DDE), yang dapat menjalankan perintah sistem atau mengirim data ke luar sistem.