# Fungsi Enviroment

<figure><img src="https://1537830120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwx2jsHS2MYXinLjkOHv9%2Fuploads%2FQEDlbLXAHSnGfbBHYST8%2Fimage.png?alt=media&#x26;token=8e654f96-f6d2-41d1-b5c0-9b3380595d27" alt=""><figcaption></figcaption></figure>

#### **Fungsi Environment dalam Python**

Environment dalam Python, seperti **Virtual Environment (`venv`)** atau **Conda Environment**, memiliki beberapa fungsi utama:

***

### **1. Mengisolasi Proyek Python**

* Setiap proyek memiliki dependensinya sendiri, sehingga **tidak ada konflik** antara library yang digunakan dalam proyek berbeda.
* Misalnya, satu proyek menggunakan **Django 2.0**, sementara proyek lain menggunakan **Django 1.15**. Dengan environment, keduanya bisa berjalan tanpa masalah.

***

### **2. Mengelola Versi Python Secara Terpisah**

* Virtual Environment memungkinkan setiap proyek menggunakan **versi Python yang berbeda**.
* Misalnya, proyek A bisa menggunakan **Python 3.9**, sedangkan proyek B menggunakan **Python 3.11** tanpa mengganggu satu sama lain.

***

### **3. Memudahkan Pengelolaan Dependency**

* Environment menyimpan dan mengelola **library atau package spesifik** yang dibutuhkan proyek.
* Kita bisa menggunakan `pip freeze > requirements.txt` untuk menyimpan daftar dependency dan menginstalnya di environment lain dengan `pip install -r requirements.txt`.

***

### **4. Mencegah Perubahan Library di Sistem Utama**

* Jika kita menginstal library langsung ke **sistem utama** (tanpa environment), library bisa berubah atau diperbarui yang bisa menyebabkan **proyek lama tidak berjalan dengan benar**.
* Dengan environment, kita bisa **mengontrol versi library** tanpa mengganggu sistem utama.

***

### **Kesimpulan**

✅ **Mengisolasi proyek** dari satu sama lain.\
✅ **Menghindari konflik versi Python dan library.**\
✅ **Memudahkan instalasi ulang dependensi di perangkat lain.**\
✅ **Memastikan proyek berjalan stabil dan dapat direproduksi.**\
✅ **Mencegah perubahan library yang dapat merusak proyek lama.**
