# Struktur Data Python

Pilih struktur data Python yang tepat untuk pipeline data: dict untuk record, list untuk batch, set untuk deduplikasi, dan tuple untuk baris yang bentuknya tetap.

Buka →
# Fungsi dan Modul

Bangun fungsi murni untuk transformasi data, kumpulkan dalam modul transformasi.py dengan fungsi bersih_harga(), lalu pakai lewat import dan kemas sebagai package minimal.

Buka →
# Pemrosesan File

Baca dan tulis berkas dengan benar di Python: mode open(), pathlib, modul csv dan json, newline, serta encoding utf-8, diuji lewat konversi CSV transaksi menjadi JSON.

Buka →
# Exception Handling

Kendalikan kegagalan pipeline dengan try/except/else/finally, exception spesifik seperti ValueError dan FileNotFoundError, serta custom exception DataValidationError untuk baris CSV kotor.

Buka →
# Logging

Catat kejadian pipeline dengan level INFO, WARNING, dan ERROR, basicConfig, serta logger per modul — dan pahami mengapa print() tidak cukup untuk pipeline produksi.

Buka →
# Pemrograman Berorientasi Objek

Rapikan pipeline dengan OOP: dataclass Transaksi untuk record, class PipelineStep untuk langkah, dan komposisi class Pipeline yang menjalankan daftar langkah berurutan.

Buka →
# Type Hints

Tuliskan kontrak tipe pada fungsi pipeline: anotasi dasar, Optional, list[dict[str, Any]], fungsi generik, dan pemeriksaan statis dengan mypy.

Buka →
# Iterators dan Generators

Pelajari iterator, generator, dan lazy evaluation untuk memproses file berjuta baris tanpa memuat seluruh data ke memori.

Buka →
# Context Managers

Pelajari blok with, context manager custom dengan __enter__ dan __exit__, serta contextlib.contextmanager untuk menjaga resource pipeline selalu dibersihkan.

Buka →
# Concurrent Processing

Pelajari GIL, ThreadPoolExecutor untuk beban I/O, dan ProcessPoolExecutor untuk beban CPU, beserta panduan memilih model konkurensi yang tepat.

Buka →
# Asynchronous Programming

Pelajari coroutine async/await, asyncio.gather untuk ingestion dari banyak endpoint, serta perbedaan async dibanding threading.

Buka →
# Pemrosesan Data Skala Besar

Pelajari chunking, streaming transform, dan pola map-reduce sederhana di Python murni, serta kapan waktu yang tepat berpindah ke pandas, DuckDB, atau Spark.

Buka →
# Pengujian Kode Python

Pelajari pytest untuk menguji pipeline data: test function, assert, fixture, parametrize, serta struktur test file untuk proyek data engineering.

Buka →