Sebelum satu pertanyaan dapat dijawab, data harus ditemukan lebih dahulu, dan tempat data berada menentukan bentuk pekerjaannya. Topik ini memetakan empat sumber yang paling sering dipakai, yaitu berkas, API, basis data, dan log, beserta pertukaran harga antara kemudahan akses, kebaruan data, dan biaya perawatannya. Setelah membacanya, pertanyaan “data ini ada di mana” memiliki peta jawaban yang jelas beserta konsekuensinya.
Empat pintu yang paling sering dibuka#
Sumber data yang ditemui seorang praktisi hampir selalu berasal dari empat kelompok, dan tabel berikut merangkum wujud, kekuatan, serta harganya.
| Sumber | Wujud | Kekuatan | Harga yang dibayar |
|---|---|---|---|
| Berkas | CSV, Excel, JSON, Parquet | Paling mudah dibuka dan dibagikan | Mudah usang, sering tanpa dokumentasi |
| API | Permintaan HTTP berformat JSON | Data terkini, akses terprogram | Bergantung jaringan dan kuota penyedia |
| Basis data | Tabel SQL di server | Data besar, konsisten, dapat diquery ulang | Butuh kredensial dan izin akses |
| Log | Berkas teks per peristiwa | Rekaman mentah yang jujur | Volume besar dan struktur yang sering berubah |
Tabel tersebut bukan peringkat mutu, melainkan peta harga. Berkas paling cocok untuk analisis sekali jalan, API untuk data yang harus selalu segar, basis data untuk pertanyaan yang diulang pada data yang besar, dan log untuk mengurai peristiwa yang tidak pernah direkam sistem lain. Jalur ini mempraktikkan keempatnya pada modul mendapatkan data, mulai dari kasus tepi CSV sampai penguraian halaman web.
Berkas sebagai titik masuk#
Berkas adalah titik masuk yang paling ramah karena tidak membutuhkan server, kredensial, maupun jaringan. Satu berkas CSV dapat dibuka dengan satu baris pandas, dan seluruh jalur ini berjalan di atas berkas demikian. Harganya muncul kemudian, yaitu berkas tidak memiliki pemilik yang jelas, versi yang terkunci, atau definisi kolom yang terdokumentasi, sehingga berkas yang sama dapat dibaca berbeda oleh dua orang.
Kebiasaan yang menolong adalah mencatat asal berkas sejak awal, yaitu dari mana berkas diperoleh, pada tanggal apa, dan siapa yang menghasilkannya. Catatan kecil ini menjadi dasar dokumentasi EDA pada modul eksplorasi, dan menyelamatkan analisis saat berkas yang sama diperbarui diam-diam oleh pemiliknya.
API dan basis data#
API mengganti berkas dengan permintaan. Alih-alih menerima potongan data yang dikirim seseorang, program meminta data yang dibutuhkan pada saat itu, dan penyedia menjawab dengan JSON yang terstruktur. Bentuknya lebih segar dan lebih dapat diandalkan, dengan dua harga yang wajib dihormati, yaitu batas laju (rate limit) dan kemungkinan bentuk respons yang berubah tanpa pemberitahuan.
Basis data berada satu tingkat di atasnya, yaitu data yang besar dan diquery ulang dipindahkan ke dekat tempat data itu disimpan. Alih-alih menarik seluruh tabel ke memori, query meminta agregasi dihitung server, dan konsep ini yang disebut query pushdown dibahas pada modul mendapatkan data serta diperdalam pada modul SQL. Harganya adalah izin akses dan disiplin membaca model data sebelum menulis query.
Log sebagai rekaman mentah#
Log adalah kelompok yang paling mentah, yaitu baris teks yang ditulis sistem pada setiap peristiwa, dengan format JSON Lines atau pola teks bebas. Kekuatan log adalah kejujurannya, karena peristiwa yang tidak terduga pun tetap tertulis. Skrip berikut menunjukkan bentuk terkecil dari pembacaannya.
"""Membaca dua entri log layanan sebagai titik masuk memahami data log.
Log berformat JSON Lines, yaitu satu objek JSON per baris, dan sering menjadi
sumber data yang tidak pernah disentuh spreadsheet.
"""
import json
log_mentah = """
{"waktu": "2026-03-01T08:05:00", "stasiun": "A", "sensor": "pm25", "nilai": 34.0}
{"waktu": "2026-03-01T09:05:00", "stasiun": "A", "sensor": "pm25", "nilai": 41.5}
"""
entri = [json.loads(baris) for baris in log_mentah.strip().split("\n")]
print(f"Jumlah entri : {len(entri)}")
print(f"Kunci tiap entri: {sorted(entri[0].keys())}")
print(f"Nilai pm25 : {[e['nilai'] for e in entri]}")Jumlah entri : 2
Kunci tiap entri: ['nilai', 'sensor', 'stasiun', 'waktu']
Nilai pm25 : [34.0, 41.5]Dua baris log menghasilkan dua kamus Python yang kolomnya dapat diperiksa sebelum analisis dibangun. Pada skala nyata, log dengan jutaan baris dikerjakan dengan pola yang sama, hanya dibantu pustaka yang membaca berkas secara bertahap.
Kesalahan umum#
Kesalahan pertama adalah menganggap semua sumber setara sehingga memilih berkas untuk data yang seharusnya diambil dari API, atau sebaliknya membangun pipeline ke API untuk pertanyaan yang cukup dijawab satu berkas arsip. Pilihan sumber mengikuti pertanyaan dan umur data yang dibutuhkan.
Kesalahan kedua adalah membaca basis data produksi tanpa memikirkan bebannya. Query agregasi pada tabel yang sangat besar bisa berat bagi layanan yang sedang dipakai pengguna lain, sehingga kebiasaan yang baik adalah bertanya dulu ada replika baca atau tidak.
Kesalahan ketiga adalah memperlakukan log sebagai data bersih. Log ditulis untuk diagnostik sistem, bukan untuk analisis, sehingga formatnya berubah saat aplikasi diperbarui. Pemeriksaan skema ringan sebelum penguraian besar adalah kebiasaan yang disiplin.
Ringkasan#
- Empat pintu data yang paling sering dipakai adalah berkas, API, basis data, dan log, masing-masing dengan pertukaran harga yang berbeda.
- Berkas paling ramah untuk analisis sekali jalan, tetapi tanpa pemilik dan versi yang jelas.
- API memberi data segar dengan batas laju, sedangkan basis data menangani data besar dengan biaya izin dan pemahaman skema.
- Log jujur dan mentah, sehingga pemeriksaan formatnya selalu mendahului penguraian besar.
Referensi#
- API Design Guide — Google Cloud — konvensi desain API yang menjelaskan pola pagination dan error pada umumnya.
- Input/Output tools — pandas documentation — dokumentasi resmi pembacaan berkas CSV, Excel, dan JSON pada pandas.
- The json Module — Python documentation — dokumentasi resmi penguraian JSON pada pustaka standar Python.