TL;DR
Virtual environment adalah folder terpisah berisi Python dan library khusus untuk satu proyek, jadi library proyek A nggak saling menimpa dengan proyek B. Bikinnya pakai perintah bawaan python -m venv .venv, lalu diaktifkan dengan source .venv/bin/activate di macOS dan Linux atau .venv\Scripts\activate di Windows. Daftar library yang terpasang disimpan ke requirements.txt lewat pip freeze, dan dipasang ulang di komputer lain lewat pip install -r requirements.txt.
Virtual environment adalah folder terpisah yang nyimpen Python dan library khusus buat satu proyek.
Gunanya satu: bikin library proyek A nggak numpuk dan nimpa library proyek B.
Ini masalah yang sering nyerang analis data. Kamu install versi pandas baru buat proyek yang lagi jalan, terus notebook analisis bulan lalu tiba-tiba error. Nggak ada yang berubah di kode kamu, tapi hasilnya beda.
Bikin environment terpisah cuma butuh dua perintah. Di bawah ini caranya, plus alur kerja lengkap dari bikin sampai bagi ke rekan tim.
Karena Python cuma punya satu tempat penyimpanan library secara default. Waktu kamu jalankan pip install, paketnya masuk ke tempat yang sama buat semua proyek. Kalau proyek lama butuh pandas 1.5 dan proyek baru butuh pandas 2.2, satu di antaranya bakal rusak.
Tiga masalah nyata yang muncul kalau kamu nggak pakai environment terpisah:
Pakai modul bawaan venv. Perintahnya python -m venv .venv, dijalankan dari dalam folder proyekmu. Modul ini sudah ikut di Python sejak versi 3.3, jadi kamu nggak perlu install apa pun dulu.
# 1. Masuk ke folder proyek
cd ~/proyek/analisis-toko-berkah
# 2. Bikin environment bernama .venv
python -m venv .venv
Setelah itu muncul folder .venv. Isinya salinan Python dan tempat kosong buat library. Nama .venv itu kesepakatan umum, editor kayak VS Code otomatis ngenalin nama itu.
Kalau perintah python nggak dikenali, coba python3. Di Windows, coba py -m venv .venv.
Perintah aktivasinya beda antar sistem operasi. Setelah aktif, nama environment muncul dalam kurung di depan baris terminal kamu.
# macOS dan Linux
source .venv/bin/activate
# Windows (Command Prompt)
.venv\Scripts\activate.bat
# Windows (PowerShell)
.venv\Scripts\Activate.ps1
Tanda berhasil:
(.venv) bima@laptop:~/proyek/analisis-toko-berkah$
Buat keluar, ketik deactivate. Nggak perlu pindah folder.
Di PowerShell, kadang muncul penolakan soal execution policy. Jalankan Set-ExecutionPolicy -Scope CurrentUser RemoteSigned sekali, lalu ulangi aktivasinya. Detail lengkapnya ada di dokumentasi resmi modul venv.
Pastikan environment sudah aktif, lalu jalankan pip seperti biasa. Semua paket masuk ke folder .venv, bukan ke Python sistem.
python -m pip install --upgrade pip
python -m pip install pandas openpyxl matplotlib seaborn jupyter
Aku selalu pakai bentuk python -m pip, bukan pip polos. Bedanya kelihatan kalau kamu punya beberapa versi Python di komputer yang sama. Bentuk panjang itu mastiin paketnya masuk ke Python yang lagi aktif.
Cek isinya kapan saja:
python -m pip list
requirements.txt adalah file teks berisi daftar library beserta versinya yang dipakai proyekmu. File ini yang kamu bagikan ke rekan tim, bukan folder .venv. Bikinnya satu perintah lewat pip freeze.
python -m pip freeze > requirements.txt
Isinya kira-kira begini:
matplotlib==3.9.2
numpy==2.1.1
openpyxl==3.1.5
pandas==2.2.3
seaborn==0.13.2
Di komputer lain, pemasangannya jadi tiga baris:
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
Tanda == ngunci versinya persis. Itu yang bikin hasil analisismu bisa diulang bulan depan dengan angka yang sama.
python -m venv .venvsource .venv/bin/activate.venv/ supaya folder itu nggak ikut ke repositori.python -m pip freeze > requirements.txt, ulangi tiap kali kamu install paket baru.python -m pip install ipykernel
python -m ipykernel install --user --name=toko-berkah \
--display-name="Python (toko-berkah)"
Setelah itu, di Jupyter kamu bisa milih kernel bernama "Python (toko-berkah)" dari menu Kernel. Ini langkah yang paling sering kelewat, dan akibatnya notebook tetap pakai library sistem walau environment-nya sudah aktif di terminal.
Aku pernah gagal ngejalanin ulang skrip laporan penjualan bulanan yang terakhir dipakai delapan bulan sebelumnya.
Skripnya baca 12 file Excel, gabungin, lalu bikin ringkasan per cabang. Waktu dijalankan ulang, muncul error di baris df.append(). Fungsi itu dihapus di pandas 2.0, sementara skripnya ditulis waktu pandas masih versi 1.4.
Cari penyebabnya makan waktu sekitar dua jam, sebagian besar buat mastiin bukan datanya yang berubah. Perbaikannya sendiri cuma ganti append jadi pd.concat, lima menit.
Kalau waktu itu ada requirements.txt dengan baris pandas==1.4.2, pemulihan environment-nya cuma butuh tiga perintah. Dua jam itu jadi tiga menit.
Sekarang setiap folder proyek analisis di laptopku punya .venv sendiri. Total ada 11 folder, dan tiga di antaranya masih pakai pandas versi lama karena skripnya belum sempat diperbarui. Ketiganya tetap jalan.
which python di macOS dan Linux, atau where python di Windows.Perlu, dan di situ dampaknya paling terasa. Notebook lama sering berhenti jalan setelah kamu install library baru buat proyek lain. Dengan environment terpisah, notebook lama tetap pakai versi yang sama.
venv sudah ikut di Python sejak 3.3, jadi nggak perlu install. virtualenv paket terpisah yang sedikit lebih cepat. conda ngatur juga library sistem, cocok buat paket ilmiah yang susah dikompilasi.
Jangan. Isinya besar dan khusus buat sistem operasimu. Cukup unggah requirements.txt, dan tambahkan baris .venv/ ke file .gitignore.
Biasanya environment-nya belum aktif waktu kamu install. Cek lokasi Python yang aktif, lalu pasang ulang pakai python -m pip install nama_library.
Hapus foldernya lalu bikin ulang. Isinya sekali pakai dan nggak nyimpen kode kamu, jadi nggak ada yang hilang. Pasang ulang dari requirements.txt, biasanya di bawah dua menit.
Tiga kebiasaan yang paling ngefek: satu folder proyek satu .venv, perbarui requirements.txt tiap install paket baru, dan daftarkan kernel Jupyter-nya.
Setelah environment-mu siap, lanjut ke cara baca file Excel di Python buat masukin data, lalu visualisasi pakai Seaborn.
Buat yang masih sering bolak-balik antara spreadsheet dan Python, fungsi kayak SUMIFS dan XLOOKUP di NgulikSheet bisa nutup kebutuhan pengolahan cepat sebelum datanya masuk ke Python. Konsep ETL yang rapi juga dimulai dari environment yang bisa diulang.
Bikin satu environment buat proyek yang lagi kamu kerjakan sekarang, lalu jalankan pip freeze. Lihat berapa banyak library yang ternyata kepasang tanpa kamu sadari.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Kolom datetime nyimpen tanggal, jam, hari, semuanya nempel jadi satu. Accessor .dt di pandas ngeluarin tiap bagian jadi kolom sendiri buat dianalisa.
Nama toko ketik campur huruf besar-kecil, spasi nyasar di ujung, atau kode produk nempel jadi satu. Accessor .str di pandas ngerapiin semua itu tanpa loop.
Model machine learning cuma ngerti angka, bukan teks kayak merah atau biru. get_dummies ngubah kolom kategori jadi kolom 0/1 dalam satu baris kode.