Python

Panduan Belajar Python: Paket Python yang Umum & Berguna

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, dan functools
  • Paket pihak ketiga umum untuk workflow HTTP dan data
  • Pola praktis menggunakan requests, pathlib, numpy, dan pandas
  • 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.txt atau 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 requests lalu simpan memakai pathlib.
  • 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

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.