Pendamping Bab 18: Library, pip, dan Virtual Environment. Gunakan nomor contoh dan latihan yang sama dengan buku.
Tujuan Belajar
- Membuat dan mengaktifkan lingkungan proyek.
- Mengelola paket melalui interpreter yang tepat.
- Mencatat kebutuhan proyek dalam requirements.txt.
Persiapan
Gunakan terminal di komputer. Pembuatan lingkungan dan instalasi paket tidak dijalankan melalui IDE browser. Beberapa kegiatan membutuhkan koneksi internet; contoh pemeriksaan interpreter dapat dijalankan tanpa menginstal paket tambahan.
Program dengan tombol Coba di IDE dapat dijalankan di browser. Untuk program lokal, unduh sumber, ekstrak ZIP, lalu ikuti README.txt.
Pembahasan
Ikuti pembahasan pada buku, lalu gunakan kegiatan dan materi pendamping berikut untuk memeriksa pemahaman.
Studi Kasus
18-01 – Mengenali interpreter proyek
Baris pertama menunjukkan apakah Python berjalan dalam venv; baris kedua menunjukkan lokasi interpreter yang benar-benar dipakai. Path berbeda menurut komputer.
Unduh Sumberimport sys
print("Lingkungan virtual:", sys.prefix != sys.base_prefix)
print("Interpreter:", sys.executable)
Hasil yang diharapkan:
Lokasi interpreter dan status venv mengikuti lingkungan yang dipakai.Coba ubah: Jalankan sekali dari interpreter dasar dan sekali dari .venv, lalu bandingkan kedua hasil.
Rangkuman
venv memisahkan lingkungan paket proyek. python -m pip memakai pip milik interpreter yang dipilih. requirements.txt mencatat kebutuhan agar lingkungan dapat dibuat kembali. venv bukan sandbox keamanan.
Cek Pemahaman
Lima pertanyaan ini sama dengan pertanyaan di buku. Periksa jawaban di kuis untuk melihat skor dan pembahasan.
- Tujuan utama venv adalah …
- Mengapa memakai python -m pip?
- requirements.txt biasanya mencatat …
- Perintah untuk membuat lingkungan bernama .venv adalah …
- Apakah folder .venv perlu disalin sebagai cara utama membagikan proyek?
Latihan Mandiri
Latihan 18-L01 – Membuat lingkungan
Dasar. Buat folder latihan dan .venv. Jalankan Python dari lingkungan itu, lalu periksa apakah sys.prefix berbeda dari sys.base_prefix.
Unduh LatihanHasil yang diharapkan:
True bila dijalankan dalam venv; False pada interpreter dasar.
Lihat Petunjuk
Buat lingkungan dengan python -m venv .venv dan gunakan interpreter di dalamnya.
Lihat Solusi
import sys
print(sys.prefix != sys.base_prefix)
Perbedaan prefix menunjukkan interpreter berjalan dalam lingkungan virtual.
Unduh SolusiLatihan 18-L02 – Mencatat kebutuhan
Penerapan. Dalam lingkungan latihan, jalankan python -m pip freeze lalu simpan hasil ke requirements.txt. Jelaskan mengapa daftar dapat kosong.
Hasil yang diharapkan:
requirements.txt sesuai paket yang benar-benar terpasang.
Lihat Petunjuk
Gunakan terminal dan interpreter lingkungan yang sama.
Lihat Solusi
Perintah: python -m pip freeze > requirements.txt. Daftar dapat kosong jika belum ada paket yang dilaporkan freeze. Jangan menambahkan nama paket fiktif hanya agar file berisi.
Isi bergantung pada lingkungan; verifikasi dengan python -m pip list.
Latihan 18-L03 – Membangun ulang
Pengembangan. Buat lingkungan kedua lalu gunakan requirements.txt dari latihan sebelumnya untuk memasang kebutuhan. Bandingkan daftar paket.
Hasil yang diharapkan:
Lingkungan kedua dapat menjalankan program yang memerlukan paket tercatat.
Lihat Petunjuk
Kerjakan dalam folder latihan dan catat perintah yang dijalankan.
Lihat Solusi
Buat .venv-baru, aktifkan, lalu jalankan python -m pip install -r requirements.txt. Bandingkan python -m pip freeze dari kedua lingkungan.
Sumber dan daftar kebutuhan lebih mudah dipindahkan daripada folder lingkungan.
Pengembangan
Kegiatan Tambahan
Saatnya menguji pemahamanmu! Kerjakan latihan berikut.
Latihan 1: Proyek Lelucon dengan
pyjokes
- Buat direktori baru untuk proyek ini, misalnya
proyek-lelucon. - Masuk ke direktori tersebut.
- Buat virtual environment bernama
env_lelucon. - Aktifkan
env_lelucon. - Instal library
pyjokesmenggunakanpip. - Buat file Python bernama
buat_lelucon.py. - Dalam
buat_lelucon.py, impor librarypyjokesdan tulis code untuk mendapatkan serta menampilkan satu lelucon berbahasa Inggris (pyjokes.get_joke(language='en', category='neutral')). - Jalankan skripmu.
- Buat file
requirements.txtuntuk proyek ini. - Nonaktifkan environment.
Latihan 2: Mengelola Proyek dengan
requirements.txt
Buat direktori baru, misalnya
proyek-dari-reqs. Masuk ke dalamnya.Buat file
requirements.txtsecara manual di direktori ini dengan isi berikut:requests==2.28.1 colorama==0.4.6(Catatan: Kita sengaja menggunakan versi spesifik yang mungkin bukan terbaru untuk simulasi).
Buat virtual environment baru (misalnya
env_reqs) dan aktifkan.Instal library dari file
requirements.txtyang baru saja kamu buat.Verifikasi bahwa kedua library (
requestsdancolorama) beserta versi yang ditentukan telah terinstal dengan benar menggunakanpip listataupip show.Buat file Python kecil
tes_warna.pyyang mengimporcoloramadan mencoba mencetak teks berwarna. Contoh:from colorama import Fore, Back, Style, init init(autoreset=True) print(Fore.RED + 'Teks ini merah') teks_hijau = Back.GREEN + Fore.BLACK teks_hijau += 'Teks ini punya background hijau dan tulisan hitam' print(teks_hijau) teks_cyan = Style.BRIGHT + Fore.CYAN teks_cyan += 'Teks ini cyan dan terang!' teks_cyan += Style.RESET_ALL print(teks_cyan)Jalankan
tes_warna.py.Nonaktifkan environment.
Latihan 3 (Opsional): Eksplorasi Library QR Code
- Cari di pypi.org library Python untuk
membuat QR code (Quick Response code). Salah satu yang populer adalah
qrcode(yang mungkin butuhPillowsebagai dependensi). - Buat proyek baru dengan
venv. - Instal library yang kamu temukan. Pastikan juga dependensinya
terinstal (misalnya,
Pillowjika menggunakanqrcodestandar).pipbiasanya menangani ini secara otomatis. - Baca dokumentasi singkat atau contoh penggunaan library tersebut.
- Buat skrip Python sederhana yang menghasilkan file gambar QR code dari sebuah teks (misalnya, URL website favoritmu atau namamu).
- Simpan
requirements.txt.
Petunjuk dan Solusi Pengembangan
Solusi Latihan 1:
Langkah 1-4 (Terminal):
mkdir proyek-lelucon
cd proyek-lelucon
python -m venv env_lelucon
#### Untuk Windows PowerShell:
#### .\env_lelucon\Scripts\Activate.ps1
#### Untuk macOS/Linux:
#### source env_lelucon/bin/activate
(Setelah aktivasi, prompt akan berubah, misal
(env_lelucon) ...)
Langkah 5 (Terminal, venv aktif):
pip install pyjokes
Langkah 6-7 (Isi file buat_lelucon.py):
#### buat_lelucon.py
import pyjokes
try:
# category bisa berisi 'all', 'neutral', atau 'chuck'
lelucon = pyjokes.get_joke(language='en', category='all')
print("Ini dia lelucon untukmu:")
print(lelucon)
except Exception as e:
print(f"Tidak bisa mendapatkan lelucon: {e}")
Langkah 8 (Terminal, venv aktif, di dalam folder
proyek-lelucon):
python buat_lelucon.py
(Outputnya akan berupa lelucon acak)
Langkah 9 (Terminal, venv aktif):
pip freeze > requirements.txt
(File requirements.txt akan berisi
pyjokes==<versi_terinstal>)
Langkah 10 (Terminal):
deactivate
Solusi Latihan 2:
Langkah 1-2 (Buat folder dan file
requirements.txt):
mkdir proyek-dari-reqs
cd proyek-dari-reqs
#### Buat file requirements.txt dengan isi:
#### requests==2.28.1
#### colorama==0.4.6
(Kamu bisa menggunakan editor teks untuk membuat
requirements.txt)
Langkah 3 (Terminal):
python -m venv env_reqs
#### Aktifkan (sesuai OS)
#### Contoh PowerShell: .\env_reqs\Scripts\Activate.ps1
#### Contoh CMD: .\env_reqs\Scripts\activate.bat
#### Contoh macOS/Linux: source env_reqs/bin/activate
Langkah 4 (Terminal, venv aktif):
pip install -r requirements.txt
Langkah 5 (Terminal, venv aktif):
pip list
(Output harus menunjukkan requests versi
2.28.1 dan colorama versi 0.4.6
beserta dependensi lainnya)
Langkah 6 (Isi file tes_warna.py):
#### tes_warna.py
from colorama import Fore, Back, Style, init
#### Inisialisasi colorama agar bekerja di berbagai terminal
#### terutama Windows
#### autoreset=True agar style kembali normal setelah setiap print
init(autoreset=True)
print(Fore.RED + 'Teks ini seharusnya berwarna merah.')
print(Fore.GREEN + Back.YELLOW + 'Teks hijau dengan latar kuning.')
#### Reset manual jika tidak pakai autoreset
teks_biru = Style.BRIGHT + Fore.BLUE
teks_biru += 'Teks biru terang.'
teks_biru += Style.RESET_ALL
print(teks_biru)
print("Teks ini kembali normal.")
Langkah 7 (Terminal, venv aktif):
python tes_warna.py
(Kamu akan melihat teks berwarna di terminal jika terminalmu mendukungnya)
Langkah 8 (Terminal):
deactivate
Solusi Latihan 3 (Menggunakan library
qrcode):
Langkah 1-2 (Cari library, buat proyek &
venv): – Library: qrcode (seringkali
butuh Pillow untuk pembuatan gambar). – Buat folder
proyek-qrcode, masuk, buat venv (misal
env_qr), aktifkan.
Langkah 3 (Terminal, venv aktif):
pip install "qrcode[pil]"
(Sintaks [pil] memastikan dependensi
Pillow untuk pembuatan gambar ikut terinstal. Jika hanya
pip install qrcode, mungkin perlu
pip install Pillow secara terpisah).
Langkah 4-5 (Isi file buat_qr.py):
#### buat_qr.py
import qrcode
prompt1 = "Masukkan teks atau URL untuk dijadikan QR code: "
data_untuk_qr = input(prompt1)
prompt2 = "Masukkan nama file untuk menyimpan gambar QR "
prompt2 += "(misal: qr_saya.png): "
nama_file_qr = input(prompt2)
if not nama_file_qr.endswith('.png'):
nama_file_qr += '.png'
try:
# Buat objek QR code
# version: Kontrol ukuran (1-40), None untuk otomatis
# error_correction: Tingkat koreksi error (L, M, Q, H)
# box_size: Ukuran setiap kotak (pixel) dalam QR code
# border: Lebar border (jumlah kotak)
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(data_untuk_qr)
qr.make(fit=True)
# Buat gambar QR code dengan warna default
img = qr.make_image(fill_color="black", back_color="white")
# Simpan gambar
img.save(nama_file_qr)
pesan = "QR code berhasil dibuat dan disimpan "
pesan += f"sebagai '{nama_file_qr}'"
print(pesan)
except Exception as e:
print(f"Gagal membuat QR code: {e}")
Jalankan (Terminal, venv aktif):
python buat_qr.py
(Masukkan teks dan nama file, lalu periksa apakah file gambar QR code tercipta di folder proyek)
Langkah 6 (Terminal, venv aktif):
pip freeze > requirements.txt
(Nonaktifkan venv setelah selesai)
Referensi dan Materi Pendamping
Langkah Selanjutnya
Bab 19 membahas Proyek: Aplikasi Manajemen Kontak. Sebelum melanjutkan, pastikan kamu dapat menjelaskan tujuan belajar dan menyelesaikan tiga latihan inti bab ini.
Edisi September 2026. Nomor contoh, pertanyaan, dan latihan digunakan bersama pada buku dan halaman ini.
