pythoncheat-sheetreferensiMahir3 mnt baca

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.

python
# 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 koma

Contoh mini: nama produk yang kapitalisasinya berantakan jadi rapi.

python
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.

python
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 kolom

Contoh mini: cek cepat apakah ada yang aneh sebelum analisis.

python
df = pd.read_csv("penjualan.csv", parse_dates=["tanggal"])
print(df.info())
print(df.describe())  # harga negatif atau jumlah 0 langsung kelihatan di sini

pandas: pilih, saring, urutkan

Dipakai di: menjawab "data yang mana" sebelum dihitung.

python
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 duplikat

Contoh mini: 3 transaksi terbesar di Jakarta.

python
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...").

python
df.groupby("k")["v"].sum()                 # total per grup
df.groupby("k")["v"].agg(["sum", "mean", "count"])
df["baru"] = df["a"] * df["b"]             # kolom hasil hitungan

Contoh mini: omzet per kategori, urut dari terbesar.

python
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).

python
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.

python
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-5

SQL: ambil dan saring

Dipakai di: mengambil data dari database sebelum dianalisis di pandas.

sql
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.

sql
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).

sql
-- 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).

python
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.

python
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?