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 Sumber
import 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.

  1. Tujuan utama venv adalah …
  2. Mengapa memakai python -m pip?
  3. requirements.txt biasanya mencatat …
  4. Perintah untuk membuat lingkungan bernama .venv adalah …
  5. Apakah folder .venv perlu disalin sebagai cara utama membagikan proyek?
Kerjakan Kuis

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 Latihan

Hasil 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 Solusi

Latihan 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

  1. Buat direktori baru untuk proyek ini, misalnya proyek-lelucon.
  2. Masuk ke direktori tersebut.
  3. Buat virtual environment bernama env_lelucon.
  4. Aktifkan env_lelucon.
  5. Instal library pyjokes menggunakan pip.
  6. Buat file Python bernama buat_lelucon.py.
  7. Dalam buat_lelucon.py, impor library pyjokes dan tulis code untuk mendapatkan serta menampilkan satu lelucon berbahasa Inggris (pyjokes.get_joke(language='en', category='neutral')).
  8. Jalankan skripmu.
  9. Buat file requirements.txt untuk proyek ini.
  10. Nonaktifkan environment.

Latihan 2: Mengelola Proyek dengan requirements.txt

  1. Buat direktori baru, misalnya proyek-dari-reqs. Masuk ke dalamnya.

  2. Buat file requirements.txt secara 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).

  3. Buat virtual environment baru (misalnya env_reqs) dan aktifkan.

  4. Instal library dari file requirements.txt yang baru saja kamu buat.

  5. Verifikasi bahwa kedua library (requests dan colorama) beserta versi yang ditentukan telah terinstal dengan benar menggunakan pip list atau pip show.

  6. Buat file Python kecil tes_warna.py yang mengimpor colorama dan 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)
  7. Jalankan tes_warna.py.

  8. Nonaktifkan environment.

Latihan 3 (Opsional): Eksplorasi Library QR Code

  1. Cari di pypi.org library Python untuk membuat QR code (Quick Response code). Salah satu yang populer adalah qrcode (yang mungkin butuh Pillow sebagai dependensi).
  2. Buat proyek baru dengan venv.
  3. Instal library yang kamu temukan. Pastikan juga dependensinya terinstal (misalnya, Pillow jika menggunakan qrcode standar). pip biasanya menangani ini secara otomatis.
  4. Baca dokumentasi singkat atau contoh penggunaan library tersebut.
  5. Buat skrip Python sederhana yang menghasilkan file gambar QR code dari sebuah teks (misalnya, URL website favoritmu atau namamu).
  6. 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.

Bab 17 | Bab 19