Struktur menyatakan bagaimana data tersusun secara logis; format menyatakan bagaimana data diwujudkan menjadi berkas di penyimpanan. Tabel transaksi Toko Kopi Kita yang sama bisa disimpan sebagai CSV di lampiran email, sebagai lembar Excel untuk pemilik toko, sebagai JSON hasil ekspor aplikasi kasir, atau sebagai Parquet di gudang data. Format yang tepat bergantung pada siapa yang membaca, seberapa besar datanya, dan apakah tipe datanya perlu dijaga. Chapter ini membedah lima format yang paling sering dijumpai beserta kelebihan dan kekurangannya.
CSV: Format Pertukaran Paling Universal #
CSV (comma-separated values) menyimpan tabel sebagai teks biasa: satu baris data per baris teks, nilai dipisah delimiter (default koma; varian lain memakai titik koma atau tab). Kelebihannya nyata: bisa dibuka semua alat, dari editor teks sampai spreadsheet, dan ukurannya ringkas. Kelemahannya mengikuti: semua nilai pada dasarnya teks sehingga tipe harus ditebak ulang saat dibaca, struktur bertingkat tidak didukung, dan nilai yang mengandung delimiter (misalnya produk “kopi, extra shot”) wajib dibungkus tanda kutip agar tidak terpotong. Untuk data berbahasa Indonesia, selalu simpan dengan encoding UTF-8 agar tulisan kita utuh di alat mana pun.
JSON untuk Data Bertingkat #
JSON cocok untuk data semi-terstruktur: setiap catatan membawa nama medannya sendiri dan boleh bertingkat. Format ini menjadi bahasa utama API — saat aplikasi kasir daring Toko Kopi Kita mengirim transaksi ke server, wujud yang dikirim hampir pasti JSON. Kelemahannya: tabel besar terasa bertele-tele karena nama medan diulang di setiap catatan, dan pembacaan manusia untuk data lebar lebih melelahkan daripada CSV.
Excel: Lembar Kerja untuk Manusia #
Berkas Excel (.xlsx) unggul di sisi manusia: satu berkas memuat banyak sheet, ada formula, dan format tampilannya enak dilihat. Bagi analis, kelemahannya justru di situ: tipe kolom sering berubah diam-diam (kode produk “001” menjadi angka 1), baris judul dan catatan kaki tercampur di area data, dan sel gabungan membuat pembacaan program tersendat. Excel tetap wajib dikuasai sebagai format input nyata — hampir semua pemilik toko mengelola datanya di sana — tetapi biasanya kita segera mengonversinya ke format yang lebih disiplin sebelum analisis.
Parquet untuk Data Besar #
Parquet menyimpan data per kolom (columnar), bukan per baris. Dengan susunan ini, membaca dua kolom dari tabel berisi puluhan kolom tidak perlu menyentuh sisanya, dan kompresi menjadi jauh lebih hemat karena satu kolom berisi data sejenis. Parquet juga menjaga tipe kolom — datetime tetap datetime, bilangan tetap bilangan. Konsekuensinya: format ini tidak bisa dibuka di editor teks dan ditujukan untuk alat analisis. Parquet adalah pilihan standar saat data tumbuh besar dan diproses berulang.
SQL Dump: Salinan Utuh Basis Data #
SQL dump adalah berkas teks berisi perintah SQL — CREATE TABLE, INSERT baris demi baris — untuk membangun ulang basis data di mesin lain. Format ini andal untuk backup dan pemindahan server, tetapi bukan format pertukaran untuk analisis: membacanya berarti menjalankannya sebagai basis data. Sebagai analis kita biasanya berpisah darinya lewat koneksi query, lalu hasil query itulah yang disimpan ke format lain.
Tabel berikut merangkum kapan memakai apa:
| Format | Penyimpanan | Tipe terjaga | Ukuran | Kapan dipakai |
|---|---|---|---|---|
| CSV | per baris, teks | tidak | kecil | pertukaran antar alat, arsip sederhana |
| JSON | per objek, teks | sebagian | sedang | data bertingkat, komunikasi API |
| Excel | per sheet, biner | tidak selalu | sedang | konsumsi manusia, input dari bisnis |
| Parquet | per kolom, biner | ya | hemat | data besar, pipeline berulang |
| SQL dump | skrip SQL, teks | ya | besar | backup dan pemulihan basis data |
Praktik: Menulis lalu Membaca CSV #
Kita tutup dengan siklus paling dasar: menulis DataFrame ke CSV lalu membacanya kembali, memakai folder sementara agar latihan ini tidak meninggalkan berkas percobaan di proyek:
import pandas as pd
import tempfile
from pathlib import Path
df = pd.DataFrame({
"tanggal": ["2026-01-15", "2026-01-16"],
"produk": ["kopi susu", "teh tawar"],
"jumlah": [12, 8],
})
with tempfile.TemporaryDirectory() as folder:
berkas = Path(folder) / "penjualan.csv"
df.to_csv(berkas, index=False, encoding="utf-8")
print("Isi berkas CSV:")
print(berkas.read_text(encoding="utf-8"), end="")
df_baca = pd.read_csv(berkas)
print("Bentuk setelah dibaca:", df_baca.shape)
print("Identik dengan data awal:", df.equals(df_baca))Output yang Dihasilkan:
Isi berkas CSV:
tanggal,produk,jumlah
2026-01-15,kopi susu,12
2026-01-16,teh tawar,8
Bentuk setelah dibaca: (2, 3)
Identik dengan data awal: TrueMari kita telaah baris-baris kode di atas:
df.to_csv(berkas, index=False, encoding="utf-8")menulis DataFrame ke berkas. Argumenindex=Falsemembuang kolom nomor baris otomatis pandas — tanpa argumen ini, berkas akan memuat kolom ekstraUnnamed: 0saat dibaca kembali;encoding="utf-8"menjaga teks tersimpan dengan aman.berkas.read_text()memperlihatkan wujud asli berkas: teks polos dengan koma sebagai pemisah — persis gambaran CSV di awal chapter.pd.read_csv(berkas)mengurai teks tersebut kembali menjadi DataFrame, lengkap dengan penetapan tipe: kolomjumlahkembali menjadi bilangan bulat.df.equals(df_baca)membandingkan isi tabel awal dengan hasil baca ulang;Truemenutup siklus dengan bukti bahwa penulisan dan pembacaan tidak merusak apa pun.
Rangkuman #
- Format adalah wujud berkas; pilihannya menimbang sisi pembaca (manusia vs mesin), ukuran data, dan kebutuhan menjaga tipe.
- CSV unggul sebagai bahasa pertukaran universal dengan biaya tipe yang harus ditebak ulang; JSON unggul untuk data bertingkat dan API.
- Excel melayani manusia, Parquet melayani mesin pada data besar, SQL dump melayani pemulihan basis data.
- Siklus tulis-baca dengan
to_csv()danread_csv()adalah pola kerja harian;index=Falsedanencoding="utf-8"adalah dua argumen yang paling sering menyelamatkan.
Berapa pun formatnya, sebuah berkas data tanpa keterangan hanya setengah berharga — kita tidak tahu dari mana asalnya, siapa pemiliknya, dan apa arti tiap kolomnya. Keterangan tersebut adalah data juga, dan namanya metadata — pokok chapter berikutnya, Metadata .