Belajar Python untuk Data Analyst: Roadmap 12 Minggu dari Nol
TL;DR
Belajar Python untuk data analyst butuh sekitar 12 minggu kalau kamu konsisten 1 jam sehari, dengan urutan dasar bahasa, pandas, visualisasi, lalu proyek. Materi yang wajib dikuasai cuma empat: struktur data dasar, pandas buat olah tabel, matplotlib atau seaborn buat grafik, dan cara baca data dari CSV, Excel, dan database. Sisanya bisa dipelajari sambil jalan waktu ngerjain proyek.
Belajar Python untuk data analyst butuh sekitar 12 minggu kalau kamu konsisten sejam sehari. Bukan setahun, dan bukan seminggu.
Angka itu dari pola yang aku lihat berulang: yang berhasil bukan yang belajar paling lama, tapi yang paling cepat mulai ngerjain data beneran. Biasanya di minggu ke-5 atau ke-6.
Rencana di bawah ini nyusun 12 minggu itu jadi empat tahap, lengkap sama materi per minggu, latihan yang harus kamu kerjain, dan tiga proyek yang bisa langsung masuk portofolio.
Apa saja yang harus dipelajari data analyst di Python?
Cuma empat hal yang wajib. Pertama, struktur data dasar Python: list, dictionary, dan cara pakai perulangan. Kedua, pandas buat olah tabel. Ketiga, matplotlib atau seaborn buat bikin grafik. Keempat, cara narik data dari CSV, Excel, dan database. Sisanya, termasuk machine learning, bisa nyusul belakangan.
Yang bikin orang mandek biasanya bukan materinya kurang. Kebalikannya. Mereka belajar decorator, class, dan async padahal kerjaan analis sehari-hari ga nyentuh itu.
Jadi rencana ini sengaja motong banyak hal. Kalau nanti kamu butuh, gampang dipelajari belakangan.
Apa yang perlu disiapkan sebelum minggu pertama?
Tiga hal, dan semuanya gratis.
- Python dan Jupyter Notebook di laptop kamu. Panduan pemasangannya ada di cara install Python dan Jupyter Notebook. Sisihkan 30 menit buat ini.
- Satu dataset yang kamu peduli. Laporan penjualan kantor, catatan pengeluaran pribadi, atau data publik dari BPS. Belajar pakai data yang kamu ngerti isinya jauh lebih cepat nyantol.
- Jadwal tetap. Sejam sehari, jam yang sama. Lima hari seminggu cukup, dua hari sisanya buat istirahat atau ngejar ketinggalan.
Ga perlu beli kursus dulu. Dokumentasi resmi pandas gratis dan lengkap.
Minggu 1 sampai 4: dasar bahasa Python
Tujuan tahap ini bukan jadi programmer. Cukup sampai kamu bisa baca kode orang lain tanpa panik.
Minggu 1: tipe data dan operasi dasar
Materi: angka, teks, boolean, variabel, dan f-string buat nyusun teks.
omzet = 12_450_000
biaya = 8_300_000
margin = (omzet - biaya) / omzet
print(f"Margin bulan ini: {margin:.1%}")
# Margin bulan ini: 33.3%
Latihan minggu ini: hitung margin, diskon, dan PPN 11 persen dari lima angka penjualan yang kamu tulis manual.
Minggu 2: list, dictionary, dan perulangan
Materi: list buat urutan, dictionary buat pasangan kunci dan nilai, for buat ngulang, if buat percabangan.
penjualan = {"Jakarta": 45_200_000, "Bandung": 18_700_000, "Surabaya": 31_400_000}
for kota, nilai in penjualan.items():
status = "tercapai" if nilai >= 30_000_000 else "di bawah target"
print(f"{kota}: Rp {nilai:,.0f} ({status})")
Latihan: bikin dictionary 10 produk dengan harganya, lalu cetak yang harganya di atas rata-rata.
Minggu 3: fungsi dan penanganan error
Materi: bikin fungsi sendiri, argumen, nilai balik, dan try except buat nangkap error.
def hitung_margin(omzet, biaya):
if omzet == 0:
return None
return (omzet - biaya) / omzet
print(hitung_margin(12_450_000, 8_300_000)) # 0.3333...
print(hitung_margin(0, 500_000)) # None
Latihan: bikin fungsi yang nerima daftar transaksi dan balikin total, rata-rata, dan nilai terbesar.
Minggu 4: baca file dan kenalan sama NumPy
Materi: buka file CSV, dan dasar array NumPy yang jadi pondasi pandas. Detailnya ada di NumPy dasar untuk analis data.
Latihan: baca satu file CSV punyamu sendiri, cetak 5 baris pertama, hitung jumlah barisnya.
Patokan akhir tahap ini: kamu bisa nulis fungsi 10 baris tanpa nyontek, dan ngerti pesan error yang muncul.
Minggu 5 sampai 8: pandas dan pembersihan data
Ini tahap paling penting. Sekitar 70 persen kerjaan analis di Python itu pandas.
Minggu 5: DataFrame, seleksi, dan filter
import pandas as pd
df = pd.read_csv("toko_berkah_transaksi.csv", parse_dates=["tanggal"])
print(df.shape) # (4812, 8)
print(df.head())
print(df.dtypes)
# filter transaksi Jakarta di atas Rp 500 ribu
besar = df[(df["kota"] == "Jakarta") & (df["total"] > 500_000)]
print(len(besar))
Latihan: filter datamu sendiri pakai dua syarat sekaligus.
Minggu 6: groupby dan agregasi
Kalau kamu udah biasa pakai pivot table di Excel, groupby itu versi kodenya.
ringkasan = (
df.groupby(["kota", df["tanggal"].dt.to_period("M")])
.agg(omzet=("total", "sum"),
transaksi=("id_transaksi", "nunique"),
rata_nota=("total", "mean"))
.round(0)
.reset_index()
)
print(ringkasan.head())
Latihan: hitung total dan rata-rata per kategori di datamu, urutkan dari yang terbesar.
Minggu 7: gabung tabel dan bentuk ulang
Materi: merge buat gabungin dua tabel (mirip VLOOKUP di Excel, tapi lebih fleksibel), pivot_table, dan melt.
gabung = df.merge(produk, on="id_produk", how="left", validate="many_to_one")
print(gabung["nama_produk"].isna().sum()) # cek produk yang ga ketemu
Argumen validate itu penyelamat. Dia bakal error kalau relasinya ga sesuai dugaanmu, jadi kamu ga diam-diam bikin baris berlipat.
Minggu 8: bersihin data
Materi: nilai kosong, duplikat, tipe data yang salah, dan teks yang ga seragam.
df["kota"] = df["kota"].str.strip().str.title()
df = df.drop_duplicates(subset=["id_transaksi"])
df["total"] = pd.to_numeric(df["total"], errors="coerce")
print(df.isna().sum())
Tahap ini sering diremehkan, padahal di kerjaan nyata makan waktu paling banyak. Konsepnya dibahas di glossary data quality.
Patokan akhir tahap ini: kamu bisa ngambil file mentah berantakan dan ngeluarin tabel ringkasan yang siap dipakai, tanpa nyontek langkah demi langkah.
Minggu 9 sampai 10: visualisasi dan sumber data
Minggu 9: grafik
Materi: matplotlib buat kontrol penuh, seaborn buat grafik statistik cepat.
import matplotlib.pyplot as plt
bulanan = df.groupby(df["tanggal"].dt.to_period("M"))["total"].sum()
fig, ax = plt.subplots(figsize=(9, 4))
bulanan.plot(kind="line", marker="o", ax=ax)
ax.set_title("Omzet bulanan toko_berkah")
ax.set_ylabel("Rupiah")
ax.grid(alpha=0.3)
plt.tight_layout()
Aturan yang aku pegang: satu grafik, satu pesan. Kalau butuh dua pesan, bikin dua grafik.
Minggu 10: narik data dari Excel dan database
# dari Excel, sheet tertentu
df_xl = pd.read_excel("laporan.xlsx", sheet_name="Penjualan", skiprows=3)
# dari database
from sqlalchemy import create_engine
engine = create_engine("postgresql+psycopg2://user:sandi@host:5432/tokoberkah")
df_sql = pd.read_sql("SELECT * FROM transaksi WHERE tanggal >= '2025-01-01'", engine)
Kalau data kamu ada di database, SQL tetap wajib. Python ga gantiin SQL, dia melengkapi.
Minggu 11 sampai 12: tiga proyek portofolio
Dua minggu terakhir dipakai buat ngerjain proyek, bukan nambah materi. Pilih satu yang paling nyambung sama bidang kamu, atau kerjain ketiganya kalau sempat.
| Proyek | Yang dilatih | Hasil akhir |
|---|---|---|
| Analisis penjualan UMKM 12 bulan | groupby, merge, grafik tren | Notebook plus 3 temuan dengan angka |
| Pembersihan data survei 500 responden | str, nilai kosong, duplikat | File bersih plus catatan perubahan |
| Segmentasi pelanggan pakai RFM | agregasi, kuantil, visualisasi | Tabel segmen plus rekomendasi |
Yang bikin proyek dilirik itu bukan panjang kodenya. Tulis 3 sampai 5 kalimat temuan di paling atas notebook, lengkap sama angkanya. Rekruter baca bagian itu duluan.
Kesalahan yang bikin portofolio ditolak dibahas terpisah di 5 kesalahan portofolio data analyst.
Contoh kasus: berapa lama proyek pertama beneran selesai
Aku pernah ngukur waktu ngerjain proyek analisis penjualan pakai dataset latihan toko_berkah yang isinya 4.812 baris. Total 6 jam 20 menit sampai notebook rapi.
Rinciannya bikin kaget: baca dan bersihin data makan 3 jam 45 menit, atau 59 persen dari total waktu. Bikin grafik cuma 40 menit. Analisisnya sendiri 55 menit. Sisanya nulis penjelasan.
Jadi kalau kamu ngerasa kelamaan di tahap bersihin data, itu normal. Bukan kamu yang lambat.
Temuan dari proyek itu sendiri: 3 dari 6 kota nyumbang 71 persen omzet, dan rata-rata nota di Jakarta Rp 312 ribu, hampir dua kali lipat rata-rata kota lain yang Rp 168 ribu.
Apa kesalahan umum waktu belajar Python untuk analis?
- Nonton tutorial terus tanpa ngetik ulang. Rasanya paham, tapi begitu buka notebook kosong langsung buntu. Ketik ulang tiap contoh, jangan salin tempel.
- Belajar semua sintaks Python dulu baru pandas. Kelamaan. Empat minggu dasar udah cukup buat lanjut.
- Pakai dataset Titanic dan Iris terus. Ribuan orang pakai itu. Ganti pakai data yang kamu peduli, motivasinya beda jauh.
- Ngindarin error. Pesan error itu petunjuk paling jelas. Baca baris terakhirnya dulu, biasanya di situ jawabannya.
- Lompat ke machine learning di minggu ke-6. Model yang dibangun di atas data kotor cuma bikin angka yang salah dengan percaya diri.
- Ngerjain proyek tapi ga dipublikasikan. Notebook yang mengendap di laptop ga kehitung portofolio.
FAQ
Perlu bisa Python dulu atau SQL dulu buat jadi data analyst?
SQL dulu kalau kamu mau kerja secepatnya. Hampir semua lowongan data analyst di Indonesia minta SQL, sementara Python sering ditulis sebagai nilai tambah. SQL juga lebih cepat dikuasai, sekitar 4 sampai 6 minggu buat tingkat kerja. Habis itu baru masuk Python. Kombinasi keduanya yang bikin kamu bisa kerjain analisis dari ujung ke ujung.
Berapa jam sehari yang realistis buat belajar Python sambil kerja?
Satu jam sehari, lima hari seminggu. Itu yang paling kepakai buat orang yang kerja penuh waktu. Belajar 5 jam di akhir pekan doang kalah efektif, karena minggu depan kamu udah lupa separuhnya. Kalau cuma punya 30 menit, tetap jalan, cuma rencana 12 minggu ini jadi sekitar 20 minggu. Konsisten lebih penting dari durasi.
Apa Python bisa gantiin Excel di kerjaan analis?
Nggak sepenuhnya, dan ga perlu. Excel masih menang buat lihat data sekilas, hitung cepat, dan berbagi hasil ke orang non-teknis. Python menang kalau datanya lebih dari sejuta baris, kerjaannya berulang tiap minggu, atau butuh gabungin banyak sumber. Kebanyakan analis pakai dua-duanya. Pilih sesuai ukuran data dan seberapa sering kerjaannya diulang.
Library apa aja yang wajib buat data analyst pemula?
Empat aja: pandas buat olah tabel, NumPy buat operasi angka, matplotlib buat grafik dasar, dan seaborn buat grafik statistik yang lebih cepat dibikin. Tambahan yang berguna belakangan: openpyxl buat file Excel dan SQLAlchemy buat konek ke database. Sisanya nunggu sampai kamu punya masalah yang butuh library itu. Instal library yang belum jelas gunanya cuma bikin bingung.
Gimana cara tau kalau aku udah siap ngelamar kerja?
Ujinya sederhana. Kasih dirimu file CSV mentah yang belum pernah kamu lihat, lalu coba jawab tiga pertanyaan bisnis darinya dalam dua jam, tanpa nanya ke AI. Kalau bisa, kamu siap. Kalau masih buntu di tahap baca file, ulang minggu 5 sampai 8. Punya dua sampai tiga proyek yang bisa diakses publik juga jadi syarat praktisnya.
Langkah berikutnya
Rencana 12 minggu ini cuma kerangka. Yang nentuin hasilnya itu jam yang kamu setor tiap hari, dan seberapa cepat kamu pindah dari nonton ke ngetik.
Mulai minggu ini juga. Pasang Python lewat panduan install Python dan Jupyter, siapin satu dataset yang kamu peduli, lalu kerjain latihan minggu 1.
Dokumentasi resmi yang paling sering kamu buka nanti ada di panduan pengguna pandas. Simpan tautannya sekarang.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Pandas groupby: Agregasi Data ala Pivot di Python (2026)
groupby ngelompokin baris berdasarkan kolom, lalu ngitung ringkasan per grup kayak total atau rata-rata. Ini pivot-nya pandas.
Pandas to_excel: Ekspor DataFrame ke Excel (2026)
to_excel nyimpen DataFrame pandas jadi file Excel .xlsx. Ini cara pakainya, dari satu sheet sampai banyak sheet, plus setelan yang bikin hasilnya rapi.
Pandas read_excel: Baca File Excel di Python
pandas read_excel baca file Excel jadi DataFrame, bisa pilih sheet tertentu dan lompatin baris judul yang berantakan. Ini cara pakai plus parameter penting dengan contoh data toko.