Setup Environment
Pengenalan Conda
Conda adalah package manager dan environment manager yang banyak digunakan dalam pengembangan Python, Data Science, dan Machine Learning.
Conda membantu kita dalam dua hal utama:
- Mengelola package/library
- Mengelola environment/project
Dalam project Machine Learning, kedua hal tersebut sangat penting karena setiap project dapat membutuhkan versi Python dan library yang berbeda.
Contohnya:
Project A
Python 3.11
scikit-learn 1.x
pandas 2.x
Project B
Python 3.12
scikit-learn versi berbeda
pandas versi berbeda
Jika semuanya dipasang pada satu environment global, kemungkinan terjadi konflik dependency akan semakin besar.
Dengan Conda, kita dapat membuat environment terpisah:
Conda
│
┌──────────┼──────────┐
│ │ │
▼ ▼ ▼
env-ml env-data env-web
│ │ │
Python Python Python
NumPy Pandas FastAPI
Pandas Jupyter Uvicorn
Sklearn Matplotlib
Setiap environment dapat memiliki konfigurasi package yang berbeda.
Apa Itu Package Manager?
Package manager adalah software yang digunakan untuk menginstal, menghapus, memperbarui, dan mengelola dependency sebuah aplikasi atau project.
Dalam Python terdapat beberapa package manager yang umum digunakan.
Contohnya:
pipcondauvpoetry
Dengan package manager kita tidak perlu mengunduh dan memasang library secara manual.
Contohnya menggunakan pip:
pip install pandas
Dengan Conda:
conda install pandas
Keduanya dapat digunakan untuk menginstal package Python, tetapi cara kerja dan ekosistemnya memiliki beberapa perbedaan.
Apa Itu Environment Manager?
Environment manager digunakan untuk membuat lingkungan terisolasi untuk sebuah project.
Misalnya kita mempunyai dua project:
Project Machine Learning
Python 3.11
scikit-learn
pandas
numpy
Project Computer Vision
Python 3.12
opencv
pytorch
numpy
Daripada memasang semuanya ke Python sistem, kita dapat membuat environment:
ml-project
computer-vision
Sehingga dependency masing-masing project terisolasi.
Conda vs pip
Conda dan pip sering digunakan bersama, tetapi keduanya bukan sesuatu yang sepenuhnya sama.
pip
pip adalah package installer untuk Python.
Contoh:
pip install numpy
pip install pandas
pip install scikit-learn
pip terutama mengelola package dari ekosistem Python Package Index atau PyPI.
Conda
Conda dapat mengelola:
- Python
- package Python
- package non-Python tertentu
- dependency
- environment
Contohnya:
conda create -n ml-env python=3.11
Kemudian:
conda activate ml-env
Lalu kita dapat memasang package:
conda install numpy pandas scikit-learn
Anaconda, Miniconda, dan Conda
Ketiga istilah ini sering membingungkan.
Conda
Conda adalah package manager dan environment manager.
Conda dapat digunakan untuk:
- membuat environment
- menghapus environment
- menginstal package
- menghapus package
- mengatur versi Python
- mengelola dependency
Anaconda
Anaconda adalah distribution yang menyediakan Conda beserta banyak package Data Science.
Anaconda biasanya menyediakan banyak package sejak awal.
Contohnya:
Anaconda
├── Conda
├── Python
├── NumPy
├── Pandas
├── Matplotlib
├── Jupyter
├── SciPy
└── berbagai package lainnya
Karena ukurannya cukup besar, Anaconda tidak selalu diperlukan untuk setiap project.
Miniconda
Miniconda adalah versi minimal dari Anaconda.
Miniconda biasanya hanya menyediakan komponen dasar seperti:
Miniconda
├── Conda
└── Python
Package lain dapat kita install sesuai kebutuhan.
Untuk pembelajaran Machine Learning, Miniconda sering menjadi pilihan yang menarik karena lebih ringan.
Kapan Menggunakan Conda?
Conda sangat berguna ketika:
- memiliki banyak project Python
- membutuhkan versi Python yang berbeda
- mengembangkan Machine Learning
- mengembangkan Data Science
- menggunakan banyak dependency
- membutuhkan environment terisolasi
- bekerja dengan library yang memiliki dependency kompleks
Contohnya:
Project ML
Python 3.11
Project Deep Learning
Python 3.12
Project Backend
Python 3.10
Ketiga project tersebut dapat menggunakan environment berbeda.
Kapan Tidak Harus Menggunakan Conda?
Conda bukan keharusan untuk semua project Python.
Untuk project sederhana, kita dapat menggunakan:
python -m venv .venv
Kemudian:
pip install requests
Untuk project kecil, venv + pip sering kali sudah cukup.
Jadi pemilihan tool sebaiknya disesuaikan dengan kebutuhan project.
Conda Environment
Conda environment adalah lingkungan Python yang terisolasi dari environment lainnya.
Misalnya:
Conda
│
├── base
│
├── machine-learning
│
├── data-analysis
│
└── web-api
Masing-masing environment dapat mempunyai:
- versi Python sendiri
- package sendiri
- dependency sendiri
Environment base
Ketika Conda pertama kali digunakan, biasanya terdapat environment bernama:
base
Contohnya:
(base) user@computer ~ %
Artinya terminal sedang berada di environment base.
Sebaiknya environment base tidak digunakan sebagai environment utama untuk semua project.
Lebih baik membuat environment khusus.
Contohnya:
base
machine-learning
data-analysis
fastapi-project
Membuat Conda Environment
Untuk membuat environment baru:
conda create -n machine-learning python=3.11
Penjelasan:
conda create
digunakan untuk membuat environment.
-n machine-learning
menentukan nama environment.
python=3.11
menentukan versi Python.
Mengaktifkan Environment
Setelah environment dibuat:
conda activate machine-learning
Jika berhasil, terminal biasanya akan berubah menjadi:
(machine-learning) user@computer
Sekarang Python yang digunakan berasal dari environment tersebut.
Mengecek Versi Python
Gunakan:
python --version
Contoh:
Python 3.11.9
Kita juga dapat menggunakan:
python -V
Mengecek Environment Aktif
Gunakan:
conda env list
Contoh:
# conda environments:
#
base /Users/user/miniconda3
machine-learning * /Users/user/miniconda3/envs/machine-learning
data-analysis /Users/user/miniconda3/envs/data-analysis
Tanda * menunjukkan environment yang sedang aktif.
Melihat Package yang Terpasang
Gunakan:
conda list
Perintah ini akan menampilkan package yang terpasang pada environment aktif.
Contoh:
numpy
pandas
scikit-learn
matplotlib
Menginstal Package
Package dapat diinstal menggunakan Conda.
Contoh:
conda install numpy pandas matplotlib scikit-learn
Atau satu package:
conda install pandas
Menggunakan pip di Conda Environment
Kita juga dapat menggunakan pip di dalam Conda environment.
Contohnya:
conda activate machine-learning
Kemudian:
pip install seaborn
Hal ini umum dilakukan ketika package yang dibutuhkan tidak tersedia atau lebih mudah dipasang melalui PyPI.
Namun sebaiknya jangan mencampur package manager secara sembarangan.
Pendekatan yang lebih aman:
- Buat Conda environment.
- Install dependency utama menggunakan Conda jika tersedia.
- Gunakan pip untuk package yang memang diperlukan dari PyPI.
- Hindari instalasi berulang dengan
condadanpipuntuk package yang sama.
Menonaktifkan Environment
Untuk keluar dari environment:
conda deactivate
Contohnya:
(machine-learning) user@computer
menjadi:
(base) user@computer
Jika ingin keluar dari Conda sepenuhnya, dapat menjalankan lagi:
conda deactivate
Menghapus Environment
Jika environment sudah tidak digunakan:
conda remove -n machine-learning --all
Perintah tersebut akan menghapus seluruh environment beserta package di dalamnya.
Hati-hati ketika menjalankan perintah ini karena data dan package di environment tersebut akan dihapus.
Membuat Environment dengan Versi Python Tertentu
Contoh menggunakan Python 3.10:
conda create -n project-python310 python=3.10
Python 3.11:
conda create -n project-python311 python=3.11
Python 3.12:
conda create -n project-python312 python=3.12
Dengan cara ini, beberapa project dapat menggunakan versi Python yang berbeda.
Menentukan Environment untuk Project
Idealnya setiap project mempunyai environment sendiri.
Contohnya:
projects/
│
├── machine-learning/
│ └── environment: ml-env
│
├── data-analysis/
│ └── environment: data-env
│
└── fastapi-api/
└── environment: api-env
Hal ini membantu mencegah konflik dependency.
Contoh Konflik Dependency
Misalnya:
Project A membutuhkan:
pandas versi tertentu
Project B membutuhkan:
pandas versi lain
Jika kedua project menggunakan environment yang sama:
Global Environment
├── pandas
├── numpy
├── scikit-learn
└── ...
bisa terjadi konflik.
Dengan environment terpisah:
ml-env
├── pandas versi A
├── numpy
└── scikit-learn
data-env
├── pandas versi B
├── numpy
└── matplotlib
kedua project dapat berjalan secara independen.
Setup Conda di Mac
Pada macOS, kita dapat menggunakan Miniconda atau Anaconda.
Untuk kebutuhan pembelajaran dan project, Miniconda merupakan pilihan yang ringan.
Memeriksa Arsitektur Mac
Sebelum melakukan instalasi, kita dapat mengecek arsitektur CPU.
Buka Terminal:
uname -m
Jika hasilnya:
arm64
berarti menggunakan Apple Silicon.
Contohnya:
- M1
- M2
- M3
- M4
Jika hasilnya:
x86_64
berarti menggunakan arsitektur Intel.
Instalasi Miniconda di Mac
Setelah installer yang sesuai diunduh, jalankan installer melalui Terminal.
Contoh untuk Apple Silicon:
bash Miniconda3-latest-MacOSX-arm64.sh
Untuk Mac Intel:
bash Miniconda3-latest-MacOSX-x86_64.sh
Ikuti instruksi installer sampai selesai.
Setelah instalasi selesai, tutup dan buka kembali Terminal.
Kemudian periksa:
conda --version
Contoh:
conda 25.x.x
Versi yang muncul dapat berbeda tergantung versi Conda yang digunakan.
Inisialisasi Conda di Mac
Jika perintah conda belum bekerja secara otomatis, jalankan:
conda init zsh
Kemudian restart Terminal.
Jika menggunakan Bash:
conda init bash
Untuk mengetahui shell yang digunakan:
echo $SHELL
Membuat Environment di Mac
Contoh:
conda create -n machine-learning python=3.11
Aktifkan:
conda activate machine-learning
Kemudian periksa:
python --version
Setup Conda di Windows
Pada Windows, kita dapat menggunakan:
- Anaconda
- Miniconda
- Miniforge
Untuk pembelajaran Python dan Machine Learning, Miniconda atau Miniforge dapat menjadi pilihan yang lebih ringan dibandingkan instalasi Anaconda penuh.
Memeriksa Windows Terminal
Conda dapat digunakan melalui beberapa terminal, misalnya:
- Anaconda Prompt
- PowerShell
- Command Prompt
- Windows Terminal
Setelah instalasi, cara paling sederhana untuk pemula adalah menggunakan Anaconda Prompt atau terminal yang sudah diinisialisasi oleh Conda.
Instalasi Miniconda di Windows
Setelah installer Windows diunduh, jalankan file installer.
Biasanya file memiliki format:
Miniconda3-latest-Windows-x86_64.exe
Ikuti proses instalasi sampai selesai.
Setelah itu buka terminal baru.
Kemudian jalankan:
conda --version
Jika berhasil, akan muncul versi Conda.
Inisialisasi Conda di Windows
Jika menggunakan PowerShell dan perintah conda belum tersedia, Conda dapat diinisialisasi:
conda init powershell
Setelah itu tutup dan buka kembali PowerShell.
Kemudian:
conda --version
Membuat Environment di Windows
Gunakan:
conda create -n machine-learning python=3.11
Aktifkan:
conda activate machine-learning
Kemudian:
python --version
Mengecek Lokasi Python di Windows
Gunakan:
where python
Contoh hasil:
C:\Users\User\miniconda3\envs\machine-learning\python.exe
Hal ini berguna untuk memastikan Python yang digunakan berasal dari environment yang benar.
Setup Conda di Linux
Pada Linux, Conda dapat digunakan melalui:
- Miniconda
- Anaconda
- Miniforge
Untuk server atau environment development yang ringan, Miniconda sering menjadi pilihan praktis.
Memeriksa Arsitektur Linux
Gunakan:
uname -m
Contoh:
x86_64
atau:
aarch64
Pemilihan installer harus disesuaikan dengan arsitektur sistem.
Instalasi Miniconda di Linux
Setelah installer diunduh, berikan permission:
chmod +x Miniconda3-latest-Linux-x86_64.sh
Kemudian jalankan:
./Miniconda3-latest-Linux-x86_64.sh
Ikuti instruksi instalasi sampai selesai.
Biasanya installer akan menanyakan apakah Conda akan diinisialisasi ke shell.
Pilih opsi yang sesuai jika ingin menggunakan Conda secara langsung dari terminal.
Mengaktifkan Conda di Linux
Setelah instalasi selesai, restart terminal.
Kemudian:
conda --version
Jika belum tersedia, shell dapat diinisialisasi menggunakan:
conda init bash
Jika menggunakan Zsh:
conda init zsh
Setelah itu restart terminal.
Membuat Environment di Linux
Contoh:
conda create -n machine-learning python=3.11
Aktifkan:
conda activate machine-learning
Periksa:
python --version
Struktur Environment Conda
Secara konseptual, environment dapat dibayangkan seperti berikut:
Miniconda / Anaconda
│
├── base
│ ├── Python
│ └── Conda
│
├── machine-learning
│ ├── Python
│ ├── NumPy
│ ├── Pandas
│ ├── Matplotlib
│ └── Scikit-Learn
│
├── data-analysis
│ ├── Python
│ ├── Pandas
│ ├── NumPy
│ └── Matplotlib
│
└── fastapi-project
├── Python
├── FastAPI
└── Uvicorn
Setiap environment memiliki dependency yang dapat dikelola secara terpisah.
Workflow Conda untuk Project Machine Learning
Workflow yang umum digunakan:
Install Conda
│
▼
Buat Environment
│
▼
Pilih Versi Python
│
▼
Aktifkan Environment
│
▼
Install Package
│
▼
Buat Project
│
▼
Kerjakan Project
│
▼
Export Environment
Contohnya:
conda create -n machine-learning python=3.11
Kemudian:
conda activate machine-learning
Install package:
conda install numpy pandas matplotlib scikit-learn
Membuat Environment dari File
Environment dapat disimpan ke dalam file.
Gunakan:
conda env export > environment.yml
Contoh struktur file:
name: machine-learning
channels:
- defaults
dependencies:
- python=3.11
- numpy
- pandas
- matplotlib
- scikit-learn
File tersebut dapat disimpan di repository project.
Contohnya:
machine-learning-project/
│
├── notebooks/
├── src/
├── data/
├── environment.yml
└── README.md
Membuat Environment dari environment.yml
Jika project memiliki file:
environment.yml
environment dapat dibuat menggunakan:
conda env create -f environment.yml
Kemudian aktifkan:
conda activate machine-learning
Cara ini sangat berguna ketika project dikerjakan oleh beberapa orang.
Memperbarui Environment dari File
Jika environment.yml berubah, gunakan:
conda env update -f environment.yml --prune
Option --prune dapat membantu menghapus dependency yang sudah tidak didefinisikan dalam environment file.
Export Environment untuk Reproduksi
Salah satu tujuan utama environment adalah reproducibility.
Misalnya project Machine Learning dibuat menggunakan:
Python 3.11
NumPy
Pandas
Scikit-Learn
Matplotlib
Konfigurasi tersebut dapat disimpan.
Orang lain kemudian dapat membuat environment yang sama:
conda env create -f environment.yml
Hal ini sangat berguna dalam:
- pembelajaran
- penelitian
- Machine Learning
- Data Science
- deployment
- kerja tim
Conda dan Jupyter Notebook
Conda sangat sering digunakan bersama Jupyter.
Misalnya kita membuat environment:
conda create -n machine-learning python=3.11
Aktifkan:
conda activate machine-learning
Kemudian install Jupyter:
conda install jupyter
Jalankan:
jupyter lab
Notebook yang dijalankan dari environment tersebut dapat menggunakan package yang telah dipasang pada environment.
Memastikan Jupyter Menggunakan Environment yang Benar
Untuk project Machine Learning, penting memastikan kernel Jupyter menggunakan environment yang benar.
Install ipykernel:
conda install ipykernel
Kemudian daftarkan environment:
python -m ipykernel install --user --name machine-learning --display-name "Python (machine-learning)"
Ketika membuka Jupyter, pilih:
Python (machine-learning)
Dengan demikian notebook akan menggunakan Python dari environment tersebut.
Conda Environment dan VS Code
Conda juga dapat digunakan bersama Visual Studio Code.
Contoh struktur:
machine-learning/
├── notebooks/
├── src/
├── data/
└── environment.yml
Setelah environment dibuat:
conda create -n machine-learning python=3.11
aktifkan:
conda activate machine-learning
Di VS Code, pilih Python interpreter dari environment:
machine-learning
Hal ini penting agar kode yang dijalankan oleh VS Code menggunakan dependency dari environment yang benar.
Perintah Conda yang Penting
Berikut beberapa perintah yang paling sering digunakan:
| Perintah | Fungsi |
|---|---|
conda --version | Melihat versi Conda |
conda info | Melihat informasi Conda |
conda env list | Melihat environment |
conda create | Membuat environment |
conda activate | Mengaktifkan environment |
conda deactivate | Menonaktifkan environment |
conda install | Menginstal package |
conda update | Memperbarui package |
conda remove | Menghapus package |
conda list | Melihat package |
conda env export | Export environment |
conda env create | Membuat environment dari file |
conda env update | Memperbarui environment |
conda clean | Membersihkan cache tertentu |
Contoh Workflow Lengkap
Misalnya kita ingin membuat project Machine Learning baru.
Membuat Project
mkdir machine-learning-project
cd machine-learning-project
Membuat Environment
conda create -n ml-project python=3.11
Mengaktifkan Environment
conda activate ml-project
Menginstal Library
conda install numpy pandas matplotlib scikit-learn
Jika membutuhkan Seaborn:
pip install seaborn
Memeriksa Python
python --version
Memeriksa Package
conda list
Menjalankan Jupyter
jupyter lab
Kesalahan yang Sering Terjadi
Conda Tidak Ditemukan
Jika muncul:
conda: command not found
atau Windows menampilkan pesan bahwa conda tidak dikenali, kemungkinan Conda belum masuk ke PATH atau shell belum diinisialisasi.
Solusinya dapat berupa:
conda init
Kemudian restart terminal.
Environment Belum Diaktifkan
Misalnya kita sudah membuat:
conda create -n machine-learning python=3.11
tetapi lupa:
conda activate machine-learning
Package kemudian mungkin terpasang pada environment yang tidak kita inginkan.
Biasakan memeriksa prompt terminal:
(machine-learning)
sebelum bekerja.
Python yang Digunakan Salah
Jika project seharusnya menggunakan Python 3.11 tetapi:
python --version
menunjukkan versi lain, periksa environment:
conda env list
Kemudian aktifkan:
conda activate machine-learning
Jupyter Menggunakan Kernel yang Salah
Jupyter dapat menggunakan kernel dari environment berbeda.
Pastikan environment sudah didaftarkan:
python -m ipykernel install --user --name machine-learning --display-name "Python (machine-learning)"
Kemudian pilih kernel yang sesuai di Jupyter.
Apakah Setiap Project Harus Memiliki Environment?
Untuk project yang serius, sangat disarankan setiap project memiliki environment sendiri.
Contohnya:
Project A
└── environment A
Project B
└── environment B
Project C
└── environment C
Tidak berarti setiap project harus selalu menggunakan Conda.
Pilihan dapat berupa:
Conda
venv
uv
Poetry
Yang paling penting adalah dependency project terisolasi dan dapat direproduksi.
Rekomendasi untuk Pembelajaran Machine Learning
Untuk pembelajaran Machine Learning menggunakan Python, struktur sederhana yang dapat digunakan:
machine-learning/
│
├── notebooks/
│ ├── 01-introduction.ipynb
│ ├── 02-data-preprocessing.ipynb
│ ├── 03-regression.ipynb
│ └── 04-classification.ipynb
│
├── data/
│
├── src/
│
├── models/
│
├── environment.yml
│
└── README.md
Environment:
conda create -n machine-learning python=3.11
Kemudian:
conda activate machine-learning
Package dasar:
conda install numpy pandas matplotlib scikit-learn jupyter
Jika membutuhkan Seaborn:
pip install seaborn
Checklist Setup Conda
Setelah instalasi, pastikan beberapa hal berikut sudah berhasil.
Conda
conda --version
Python
python --version
Environment
conda env list
Package
conda list
Aktivasi
conda activate machine-learning
Jupyter
jupyter lab
Jika seluruhnya berjalan dengan baik, environment sudah siap digunakan untuk pembelajaran Machine Learning.
Kesimpulan
Conda merupakan tool yang sangat berguna untuk mengelola environment dan dependency, terutama pada project Python yang melibatkan banyak library seperti Data Science dan Machine Learning.
Konsep utama yang perlu dipahami:
Conda
│
├── Package Management
│
├── Environment Management
│
├── Python Version Management
│
└── Dependency Management
Workflow dasar yang perlu dikuasai:
conda create -n machine-learning python=3.11
conda activate machine-learning
conda install numpy pandas matplotlib scikit-learn
Untuk project yang dapat digunakan kembali atau dikerjakan bersama orang lain, simpan konfigurasi environment:
conda env export > environment.yml
Kemudian environment dapat dibuat kembali menggunakan:
conda env create -f environment.yml
Dengan memahami Conda dan environment, kita dapat membangun workflow Python yang lebih terstruktur, terisolasi, dan reproducible.