Cheat Sheet Python & Data
Ringkasan satu halaman: sintaks, pandas, dan SQL yang paling sering dipakai.
Cara pakai cheat sheet ini
Cheat sheet bukan untuk dihafal, tapi untuk mempercepat ingatan saat kerja. Setiap kelompok di bawah diawali catatan kapan dipakai, lalu snippet-nya, lalu satu contoh mini untuk kelompok yang paling sering dipakai. Simpan sebagai bookmark atau tempel di dinding.
Python inti: fondasi semua kode
Dipakai di: setiap script, untuk logika dasar sebelum menyentuh data.
# Variabel & konversi tipe
x = 10; y = 3.14; s = "teks"; ok = True
int("5"); float("5.5"); str(5)
# Kondisi & loop
if x > 5:
...
elif x > 0:
...
else:
...
for i in range(10): ...
for item in daftar: ...
# Fungsi
def sapa(nama, sapaan="Halo"):
return f"{sapaan}, {nama}"
# Struktur data
lst = [1, 2, 3]; lst.append(4); lst[0]
d = {"a": 1}; d["b"] = 2; d.keys()
t = (1, 2) # tuple: tidak bisa diubah
# String (pembersihan teks)
" Kopi Susu ".strip().lower() # 'kopi susu'
"a,b,c".split(",") # ['a', 'b', 'c']
",".join(["a", "b"]) # 'a,b'
f"Omzet: Rp{x * 1000:,}" # format angka pakai komaContoh mini: nama produk yang kapitalisasinya berantakan jadi rapi.
nama = " ES KOPI SUSU "
print(nama.strip().lower()) # 'es kopi susu'pandas: baca dan inspeksi
Dipakai di: langkah pertama setiap analisis, untuk berkenalan dengan data sebelum diutak-atik.
import pandas as pd
df = pd.read_csv("data.csv", parse_dates=["tanggal"])
df.head() # intip 5 baris pertama
df.info() # tipe data + missing value (wajib cek!)
df.describe() # statistik: mean, min, max (wajib cek!)
df.shape # (baris, kolom)
df.isna().sum() # hitung missing per kolomContoh mini: cek cepat apakah ada yang aneh sebelum analisis.
df = pd.read_csv("penjualan.csv", parse_dates=["tanggal"])
print(df.info())
print(df.describe()) # harga negatif atau jumlah 0 langsung kelihatan di sinipandas: pilih, saring, urutkan
Dipakai di: menjawab "data yang mana" sebelum dihitung.
df["kolom"] # satu kolom (Series)
df[["a", "b"]] # beberapa kolom (DataFrame)
df[df["x"] > 10] # filter baris
df[(df["x"] > 10) & (df["kota"] == "Jakarta")] # filter ganda (& bukan and!)
df.sort_values("x", ascending=False) # urutkan
df.drop_duplicates() # buang baris duplikatContoh mini: 3 transaksi terbesar di Jakarta.
top = df[df["kota"] == "Jakarta"].sort_values("omzet", ascending=False).head(3)pandas: groupby dan agregasi
Dipakai di: hampir semua pertanyaan bisnis ("total per...", "rata-rata per...").
df.groupby("k")["v"].sum() # total per grup
df.groupby("k")["v"].agg(["sum", "mean", "count"])
df["baru"] = df["a"] * df["b"] # kolom hasil hitunganContoh mini: omzet per kategori, urut dari terbesar.
print(df.groupby("kategori")["omzet"].sum().sort_values(ascending=False))pandas: gabung tabel
Dipakai di: saat data terpecah di beberapa file atau tabel (lihat modul JOIN).
gabung = pd.merge(penjualan, pelanggan, on="id_pelanggan", how="left")
# how: 'inner' (yang cocok saja), 'left' (semua baris kiri), 'outer' (semua)NumPy: hitungan cepat
Dipakai di: operasi matematika ke banyak angka sekaligus, atau generate data dummy untuk latihan.
import numpy as np
a = np.array([1, 2, 3])
a * 2; a.mean(); a.max(); a.std()
np.random.seed(42) # hasil acak bisa diulang
np.random.randint(1, 6, 500) # 500 angka acak 1-5SQL: ambil dan saring
Dipakai di: mengambil data dari database sebelum dianalisis di pandas.
SELECT tanggal, produk, jumlah
FROM penjualan
WHERE kota = 'Jakarta' AND jumlah > 2
ORDER BY jumlah DESC
LIMIT 10;Contoh mini: 10 transaksi beromzet terbesar bulan ini.
SELECT produk, jumlah * harga AS omzet
FROM penjualan
WHERE tanggal >= '2026-10-01'
ORDER BY omzet DESC
LIMIT 10;SQL: agregasi dan JOIN
Dipakai di: ringkasan per grup langsung di database (lebih cepat untuk data besar).
-- omzet per kategori, hanya yang di atas 1 juta
SELECT kategori, SUM(jumlah * harga) AS omzet
FROM penjualan
GROUP BY kategori
HAVING SUM(jumlah * harga) > 1000000;
-- gabung dengan tabel pelanggan dan produk
SELECT p.nama, SUM(pj.jumlah * pr.harga) AS belanja
FROM penjualan pj
JOIN pelanggan p ON pj.id_pelanggan = p.id
JOIN produk pr ON pj.id_produk = pr.id
GROUP BY p.nama;requests: ambil data dari API
Dipakai di: sumber data berupa API, bukan file (lihat modul API ke DataFrame).
import requests
try:
res = requests.get(url, timeout=10)
res.raise_for_status()
data = res.json()
except requests.RequestException as e:
print("Gagal:", e)
data = []
df = pd.DataFrame(data)matplotlib: grafik cepat
Dipakai di: visualisasi untuk laporan. Selalu beri judul dan label.
import matplotlib.pyplot as plt
df.groupby("bulan")["omzet"].sum().plot(kind="bar")
plt.title("Omzet Bulanan")
plt.ylabel("Rupiah")
plt.tight_layout()
plt.savefig("grafik.png") # simpan dulu
plt.show()Catatan teknis: Yang penting bukan menghafal semua snippet, tapi tahu polanya ada dan kapan mencarinya. Saat mentok, cari di sheet ini dulu pakai Ctrl+F sebelum buka Google. Itu bedanya analyst yang cepat dan yang lambat: bukan hafalan, tapi kecepatan menemukan pola yang tepat.
Tantangan
Uji kecepatan ingatan
Tanpa melihat cheat sheet di atas, tulis dari ingatan: (1) cara filter DataFrame, (2) cara groupby + sum, (3) query SQL top 5. Baru setelah itu cek jawabanmu dengan sheet.
Kuis Bab
Uji pemahamanmu: Bab 9: Proyek Nyata
Jawab 5 soal berikut, lalu tekan "Periksa Jawaban".
1.Setelah requests.get(url), langkah apa yang mengubah respons menjadi data Python?
2.Apa langkah pertama yang paling masuk akal saat menerima dataset baru?
3.Data API berupa list of dict. Cara tercepat menjadi DataFrame?
4.Kenapa cleaning (missing value, duplikat, tipe data) wajib sebelum menarik insight?
5.Apa tujuan utama EDA (Exploratory Data Analysis) dalam sebuah proyek?