Media Belajar Coding untuk Developer Indonesia

Ruang Coding

Media belajar online bareng untuk mengembangkan keahlianmu di bidang pemrograman web dan aplikasi smartphone.

138+Member Aktif
5+Artikel & Tutorial
16+Project Siap Pakai
Free

Python Menengah: OOP, File Handling, Exception & Library Populer untuk Proyek Nyata

Kelas ini dirancang untuk kamu yang sudah menguasai dasar Python dan siap naik level ke pola pemrograman yang lebih production-like. Kamu akan belajar OOP secara mendalam, penanganan file dan error yang robust, hingga memanfaatkan library populer seperti requests untuk membangun komponen nyata di dunia kerja.

1Modul
9Menit baca
PythonKategori
1

Setup Environment Menengah: Virtual Environment, Dependency Management, dan Struktur Proyek Profesional

9 menit baca

Kenapa Setup Environment Ini Penting?

Di level pemula, mungkin kamu terbiasa menulis satu file .py, install library langsung ke sistem, lalu jalankan begitu saja. Pendekatan ini cepat rusak ketika kamu mengerjakan lebih dari satu proyek: versi library saling bentrok, environment jadi kotor, dan kolaborasi dengan developer lain jadi berantakan karena tidak ada standar yang jelas. Modul ini akan membenahi fondasi tersebut sebelum kita masuk ke OOP dan topik-topik yang lebih berat.

1. Virtual Environment: Isolasi Dependency per Proyek

Virtual environment (venv) membuat "kotak terpisah" berisi interpreter Python dan library khusus untuk satu proyek, tanpa mencampuri instalasi Python global di komputer. Ini krusial ketika Proyek A butuh requests==2.28 sementara Proyek B butuh requests==2.31 — tanpa venv, keduanya akan rebutan versi yang sama di sistem.

# Membuat virtual environment bernama "venv"
python -m venv venv

# Mengaktifkan (Windows)
venv\Scripts\activate

# Mengaktifkan (Mac/Linux)
source venv/bin/activate

# Menonaktifkan
deactivate

Setelah aktif, biasanya prompt terminal kamu akan menampilkan awalan (venv). Semua perintah pip install setelah ini hanya berlaku di dalam kotak tersebut, tidak menyentuh sistem global.

2. Dependency Management dengan requirements.txt

Saat proyek dibagikan ke tim atau di-deploy ke server lain, orang lain perlu tahu persis library apa saja yang dipakai beserta versinya. Di sinilah requirements.txt berperan sebagai "resep" dependency proyekmu.

# Menyimpan semua library yang terinstall ke file
pip freeze > requirements.txt

# Menginstall ulang dari file tersebut (misal di komputer/server lain)
pip install -r requirements.txt

Praktik yang baik: pin versi spesifik (misal requests==2.31.0) alih-alih membiarkan versi bebas. Ini mencegah bug "kerja di laptop saya tapi error di server" akibat perbedaan minor version yang ternyata mengubah behavior.

Pip vs Tools Modern

Selain pip + venv, ada tools seperti pipenv atau poetry yang menggabungkan dependency management dan virtual environment dalam satu alur kerja, plus fitur lock file untuk memastikan versi benar-benar identik di semua environment. Untuk kelas ini kita fokus ke pip dan venv karena paling universal dan wajib kamu pahami sebelum lompat ke tools yang lebih otomatis.

3. Struktur Proyek Profesional

Satu file panjang berisi ratusan baris kode akan menyulitkan maintenance begitu proyek membesar. Struktur folder yang jelas memisahkan tanggung jawab tiap bagian kode, memudahkan navigasi, testing, dan kolaborasi tim.

nama_proyek/
│
├── venv/                  # virtual environment (jangan di-commit ke git)
├── src/
│   ├── __init__.py
│   ├── main.py            # entry point aplikasi
│   ├── models/             # class-class OOP
│   │   └── __init__.py
│   ├── services/           # logika bisnis, pemanggilan API, dll
│   │   └── __init__.py
│   └── utils/               # fungsi bantu, helper
│       └── __init__.py
├── tests/                  # unit test
├── .gitignore
├── requirements.txt
└── README.md

Struktur ini bukan aturan baku yang wajib ditiru persis, tapi menggambarkan prinsip umum: pisahkan model data, logika bisnis, dan utilitas ke folder masing-masing. Nantinya di modul OOP, class-class yang kita buat akan hidup rapi di dalam folder models/.

Jangan Lupa .gitignore

Folder venv/ berisi ribuan file library yang tidak perlu ikut di-commit ke Git — ukurannya besar dan bisa di-generate ulang kapan saja dari requirements.txt. Tambahkan baris berikut ke file .gitignore:

venv/
__pycache__/
*.pyc

Studi Kasus: Menyiapkan Proyek "Klien Cuaca"

Bayangkan kamu baru bergabung ke tim untuk mengembangkan aplikasi yang mengambil data cuaca dari API eksternal (ini akan jadi proyek yang kita bangun sedikit demi sedikit sepanjang kelas ini, dan disempurnakan di modul terakhir). Tugas pertamamu: siapkan fondasi proyek yang rapi sebelum menulis satu baris logic pun.

Langkah yang bisa kamu praktikkan sendiri:

  • Buat folder klien-cuaca/, masuk ke dalamnya, lalu jalankan python -m venv venv dan aktifkan.
  • Install library requests dengan pip install requests, lalu generate requirements.txt dengan pip freeze > requirements.txt.
  • Buat struktur folder: src/main.py, src/services/, src/models/, dan src/utils/, masing-masing dengan file __init__.py kosong agar dikenali sebagai package.
  • Buat file .gitignore berisi venv/, __pycache__/, dan *.pyc.
  • Tulis README.md singkat berisi cara setup: cara membuat venv, mengaktifkannya, dan menginstall dependency dari requirements.txt.
  • Uji hasilnya: hapus folder venv/, lalu coba buat ulang dari nol hanya berbekal requirements.txt dan instruksi di README-mu. Jika berhasil berjalan tanpa kebingungan, environment-mu sudah "portable" dan siap dipakai tim lain.

Fondasi ini akan langsung kita pakai di modul berikutnya ketika mulai merancang class-class OOP untuk merepresentasikan data cuaca dan pemanggilan API-nya.

Ini modul terakhir yang sudah tersedia — modul berikutnya segera menyusul.
2

Modul berikutnya

Segera hadir — 11 modul lagi menyusul
Progresmu
0 dari 1 modul selesai
  • Setup Environment Menengah: Virtual Environment, Dependency Management, dan Struktur Proyek Profesional
  • Modul berikutnya (segera)
Tentang Kelas Ini

Modul baru ditambahkan secara berkala hingga kelas ini lengkap. Simpan halaman ini dan kembali lagi untuk lanjut belajar.

Copyright © 2026 — Made with by Ruang Coding