Belajar Python - Modularisasi, Packaging Dasar & Virtual Environments
Episode 7 of 23

Belajar Python - Modularisasi, Packaging Dasar & Virtual Environments

Episode ini membawa kalian dari script menjadi project terstruktur: membuat package, menulis setup.cfg atau pyproject.toml minimal, memakai pip install -e untuk pengembangan, dan menjalankan workflow virtual environment yang benar.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Sampai di sini kalian menulis script tunggal. Episode 7 mengubah itu: kita membangun package yang terstruktur, mendeklarasikan metadata dengan pyproject.toml, dan menginstall package dalam mode editable untuk pengembangan.

Virtual environment yang kita bangun di episode 0 kini mendapat peran penuh. Setelah episode ini, project kalian akan punya fondasi yang sama seperti library profesional — siap untuk dependency management di episode 8 dan publikasi di episode 19.

Membuat Package

Struktur Direktori Package

Package adalah direktori berisi __init__.py. Struktur standar project Python:

Struktur package
belajar_kalkulator/
    belajar_kalkulator/
        __init__.py
        aritmetika.py
    pyproject.toml
    README.md

Direktori luar belajar_kalkulator adalah root project, dan direktori dalam adalah package. File __init__.py menandai direktori sebagai package. Mari buat:

Membuat struktur package
mkdir belajar_kalkulator
cd belajar_kalkulator
mkdir belajar_kalkulator
touch belajar_kalkulator/__init__.py

Perintah mkdir belajar_kalkulator membuat direktori project, lalu mkdir belajar_kalkulator membuat direktori package di dalamnya. touch __init__.py membuat file penanda package.

Isi package dengan modul dan ekspor fungsi melalui __init__.py:

PythonModul aritmetika.py
def tambah(a, b):
    return a + b
 
def kurang(a, b):
    return a - b
 
def kali(a, b):
    return a * b

File aritmetika.py berisi fungsi-fungsi murni. Agar bisa diimpor sebagai from belajar_kalkulator import tambah, ekspor di __init__.py:

PythonMengisi __init__.py
from belajar_kalkulator.aritmetika import tambah, kurang, kali
 
__all__ = ["tambah", "kurang", "kali"]

__all__ mendefinisikan apa yang diekspor saat from belajar_kalkulator import *. Dengan struktur ini, package sudah bisa dipakai secara lokal.

pyproject.toml Minimal

Format Metadata Modern

pyproject.toml adalah format standar metadata project Python (PEP 621). Berikut versi minimalnya:

pyproject.toml minimal
[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
 
[project]
name = "belajar-kalkulator"
version = "0.1.0"
description = "Package kalkulator untuk belajar Python"
requires-python = ">=3.12"

Bagian [project] mendeklarasikan nama, versi, dan deskripsi package. build-backend menentukan alat pembangun. requires-python memberi tahu versi Python minimum yang dibutuhkan.

Setup.cfg Alternatif

Sebelum pyproject.toml populer, setup.cfg adalah pilihan utama:

setup.cfg minimal
[metadata]
name = belajar-kalkulator
version = 0.1.0
description = Package kalkulator untuk belajar Python
 
[options]
packages = find:

Bentuk setup.cfg juga valid. Namun pyproject.toml kini menjadi standar dan akan kita perdalam di episode 19. Untuk series ini, kita fokus pada pyproject.toml.

pip install -e

Install dalam Mode Editable

Mode editable menginstall package sehingga perubahan kode langsung terlihat tanpa install ulang:

Install editable package
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .

pip install -e . menginstall package dari direktori saat ini dalam mode editable. Tanda -e berarti perubahan pada kode kalian langsung dipakai tanpa proses install ulang — sangat ideal untuk pengembangan.

Verifikasi Installasi

Uji bahwa package terinstall dengan benar:

Verifikasi package terinstall
python3 -c "from belajar_kalkulator import tambah; print(tambah(3, 4))"

Perintah python3 -c "from belajar_kalkulator import tambah" mengimpor package dan memanggil fungsi. Output 7 menandakan package berhasil terinstall. Dari mana pun kalian berada di dalam venv, package ini bisa diimpor.

Workflow Virtual Environment

Mengapa Selalu Menggunakan venv

Virtual environment mengisolasi dependency setiap project. Tanpa itu, install package ke system Python bisa merusak environment lain. Aturan utamanya:

  • Buat satu venv per project.
  • Aktifkan venv di setiap sesi kerja baru.
  • Jangan pernah install ke system Python secara global.

Mencatat Dependency

Seiring project tumbuh, dependency harus dicatat. Tambahkan ke pyproject.toml:

Menambah dependency
[project]
name = "belajar-kalkulator"
version = "0.1.0"
description = "Package kalkulator untuk belajar Python"
requires-python = ">=3.12"
dependencies = [
    "pytest>=8.0"
]

Menulis dependency di dependencies = [...] membuatnya terinstall otomatis saat pip install -e .. Ini menggantikan instalasi manual satu per satu dan menjadi dasar reproducible environment di episode 8.

Menjaga Kebiasaan

Satu kebiasaan wajib: periksa environment aktif sebelum menjalankan Python. Jalankan which python3 — output harus menunjuk ke .venv/bin/python3. Jika tidak, aktifkan venv dulu. Konsistensi ini akan menyelamatkan kalian dari banyak bug dependency.

Penutup

Inti yang harus dibawa pulang:

  • Package adalah direktori dengan init.py yang berisi modul-modul.
  • pyproject.toml adalah format metadata standar project Python.
  • pip install -e menginstall package dalam mode editable.
  • Virtual environment mengisolasi dependency setiap project.
  • Dependency dicatat di pyproject.toml agar reproducible.
  • Selalu verifikasi environment aktif dengan which python3.

Di episode 8 selanjutnya kita akan membahas dependency management dan reproducible environments — perbandingan requirements.txt dan pyproject.toml, Poetry dan Flit, lockfiles dengan pip-tools, pipx untuk CLI tools, dan best practice virtualenv. Project kalian akan menjadi benar-benar reproducible!