Panduan ini untuk siapa
- Pembelajar yang telah menyelesaikan fundamental Python dan ingin tooling praktis
- Developer yang membutuhkan library andal untuk tugas HTTP, path, dan data
- Siapa pun yang membangun script, API, atau workflow analytics di Python
Apa yang akan Anda pelajari
- Cara memilih package berdasarkan tugas dan tingkat kematangan
- Standard library module penting:
collections,itertools, danfunctools - Paket pihak ketiga umum untuk workflow HTTP dan data
- Pola praktis menggunakan
requests,pathlib,numpy, danpandas - Cara menghindari package bloat dan risiko dependency
Mengapa topik ini penting
Python produktif karena ekosistemnya. Anda jarang perlu menciptakan ulang tugas umum seperti HTTP calls, pemrosesan CSV, atau operasi path. Memilih package yang tepat menghemat waktu development dan mengurangi bug.
Namun, lebih banyak package juga berarti tanggung jawab lebih besar. Anda perlu tahu kapan standard library sudah cukup, kapan tool pihak ketiga layak dipakai, dan bagaimana menjaga dependency tetap minimal serta mudah dirawat.
Konsep inti
Mulai dari standard library
Banyak masalah bisa diselesaikan tanpa dependency eksternal.
from collections import Counter
words = ["python", "api", "python", "data", "api", "python"]
counts = Counter(words)
print(counts)
Expected output:
Counter({'python': 3, 'api': 2, 'data': 1})
Tool standard library stabil, terdokumentasi, dan tersedia secara default.
Contoh itertools (utilitas kombinatorik dan iterasi):
from itertools import combinations
items = ["A", "B", "C"]
print(list(combinations(items, 2)))
Expected output:
[('A', 'B'), ('A', 'C'), ('B', 'C')]
Contoh functools (helper fungsional seperti reduce):
from functools import reduce
numbers = [1, 2, 3, 4]
product = reduce(lambda acc, n: acc * n, numbers, 1)
print(product)
Expected output:
24
Gunakan package pihak ketiga yang fokus untuk domain umum
Contoh populer:
- HTTP client:
requests - Data analysis:
numpy,pandas - HTML parsing:
beautifulsoup4 - Visualisasi:
matplotlib,seaborn - Starter ML:
scikit-learn
Contoh HTTP:
import requests
response = requests.get("https://httpbin.org/get", timeout=10)
print(response.status_code)
print(response.json()["url"])
Gunakan kemampuan package daripada menangani detail low-level secara manual.
Utamakan penanganan path bawaan modern
pathlib biasanya lebih baik daripada operasi path berbasis string manual.
from pathlib import Path
data_file = Path("data") / "report.csv"
print(data_file)
print(data_file.suffix)
Pendekatan ini lebih bersih, ramah lintas platform, dan lebih mudah dirawat daripada konkatenasi string.
Panduan langkah demi langkah
Langkah 1 — Instal hanya yang dibutuhkan project
Di dalam virtual environment aktif, tambahkan package yang benar-benar diperlukan.
python -m pip install requests numpy pandas
python -m pip freeze > requirements.txt
Ini menjaga dependency tetap eksplisit dan reproducible.
Langkah 2 — Bangun satu script kecil per tujuan package
Buat script yang mengerjakan satu tugas jelas dengan tiap package.
import requests
from pathlib import Path
url = "https://httpbin.org/uuid"
result = requests.get(url, timeout=10).json()
Path("output.json").write_text(str(result), encoding="utf-8")
print("Saved response")
Script kecil yang fokus sangat ideal untuk mempelajari batas kemampuan library.
Langkah 3 — Evaluasi nilai dan risiko package
Sebelum mempertahankan sebuah package, tanyakan:
- Apakah standard library sudah menyelesaikan ini?
- Apakah package ini aktif dipelihara?
- Apakah API-nya stabil dan terdokumentasi baik?
Kebiasaan ini mencegah masalah maintenance jangka panjang.
Contoh praktis
Contoh 1 — Analisis tabel cepat dengan pandas
import pandas as pd
data = pd.DataFrame(
{
"name": ["A", "B", "C"],
"score": [80, 92, 75],
}
)
print(data["score"].mean())
print(data.sort_values("score", ascending=False))
Expected output (simplified):
82.33333333333333
name score
1 B 92
0 A 80
2 C 75
Contoh 2 — Penemuan file dengan pathlib
from pathlib import Path
python_files = list(Path(".").glob("*.py"))
print([f.name for f in python_files])
Expected output (sample):
['main.py', 'utils.py', 'analysis.py']
Ini lebih bersih daripada penelusuran direktori manual untuk banyak tugas umum.
Ide package per domain:
- Dashboard visualisasi data ->
matplotlib,seaborn,plotly - Baseline machine learning ->
scikit-learn - Pipeline web scraping ->
beautifulsoup4,lxml
Kesalahan umum dan cara menghindarinya
- Menginstal banyak package “untuk jaga-jaga” -> Tambahkan dependency hanya saat benar-benar diperlukan.
- Mengabaikan solusi standard library -> Cek built-in dulu (
pathlib,json,csv,collections). - Tidak mem-pin versi dependency -> Gunakan
requirements.txtatau lock file untuk reproducibility. - Mengimpor library berat pada script kecil tanpa perlu -> Jaga script tetap ringan jika memungkinkan.
Latihan cepat
- Tulis script yang mengambil JSON dari API dengan
requestslalu simpan memakaipathlib. - Bangun penghitung frekuensi sederhana dengan
collections.Counter. - Buat DataFrame dengan pandas lalu hitung min, max, dan mean untuk satu kolom numerik.
Ringkasan utama
- Produktivitas Python datang dari kombinasi fundamental kuat dan library yang tepat.
- Standard library menyelesaikan lebih banyak hal daripada yang sering dibayangkan pemula.
- Package pihak ketiga harus dipilih dengan sengaja dan dikelola secara reproducible.
- Jaga jejak dependency tetap kecil, jelas, dan mudah dirawat.
Langkah berikutnya
Lanjut ke [10. Kualitas Kode & Developer Tools](./10-code-quality-and-developer-tools-ID.md). Di panduan berikutnya, Anda akan menyiapkan formatting, linting, type checking, dan workflow pre-commit untuk kualitas kode tingkat profesional.
No Comments