# RE605 - Setup Development Environment
Development environment yang akan digunakan untuk mata kuliah Machine Vision adalah sebagai berikut:
* Python 3.7.x (Anaconda)
* PyTorch 1.7.x
* OpenCV 4.5.x
* Tensorboard
* Scikit-learn
* Scikit-image
* Scipy
* Matplotlib
* Jupyter Notebook
## 1. Instalasi Anaconda dan Membuat Virtual Environment
**Instalasi pada Linux**
Ketikkan perintah berikut pada terminal
```bash=
sudo apt update && sudo apt upgrade -y
wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh
chmod +x Anaconda3-2020.11-Linux-x86_64.sh
./Anaconda3-2020.07-Linux-x86_64.sh
```
Lakukan proses instalasi diatas dengan pilihan default. Setelah proses instalasi selesai lakukan eksekusi terhadap file `~/.bashrc` dengan mengetikkan perintah berikut ini.
```bash=
source ~/.bashrc
```
Setelah mengeksekusi perintah tersebut, di terminal akan muncul environment default `base` yang sedang digunakan seperti berikut.
```
(base) username@machine-name:~$
```
**Membuat Virtual Environment**
Membuat virtual environment dapat dilakukan dengan dua cara:
1. Menggunakan `anaconda-navigator`
2. Menggunakan terminal
Jika menggunakan terminal, format perintah yang digunakan sebagai berikut.
```
conda create -n envname python=x.x anaconda
```
Contoh: membuat virtual environment dengan nama `re605` dan menggunakan Python versi 3.7.x.
```bash=
conda create -n re605 python=3.7 anaconda
```
**Mengaktifkan Virtual Environment**
Setelah membuat virtual environment, aktifkan virtual environment yang ingin digunakan dengan format perintah sebagai berikut.
```
conda activate envname
```
Contoh: mengaktifkan virtual environment `re605` yang telah dibuat.
```bash=
conda activate re605
```
Sekarang di terminal akan muncul nama environment yang aktif `re605` seperti berikut ini.
```
(re605) username@machine-name:~$
```
**Menonaktifkan Virtual Environment**
Untuk menonaktifkan virtual environment format perintah yang digunakan adalah sebagai berikut.
```
conda deactivate envname
```
Contoh: menonaktifkan virtual environment `re605`
```bash=
conda deactivate re605
```
Setelah menonaktifkan virtual environment `re605` maka secara default virtual environment yang digunakan adalah `base`. Jika ingin menonaktifkan virtual environment `base`, lakukan proses `deactivate` sekali lagi. Jika Anda melakukan `deactivate` pada environment `base`, maka tampilan pada terminal akan kembali seperti semua dimana tidak ada virtual environment yang aktif seperti berikut ini.
```
username@machine-name:~$
```
## 2. Instalasi Python Package Menggunakan Conda Package Manager
Untuk melakukan instalasi Python package/library disarankan menggunakan `conda package manager` dan menggunakan channel `conda-forge`. Dengan cara tersebut, package yang ter-*install* adalah yang **stable** dan **latest update**. Format perintah untuk melakukan instalasi python package dengan `conda package manager` adalah sebagai berikut.
```
conda install -c nama-channel nama-package
```
Contoh: menginstall package `matplotlib` menggunakan `conda package manager` dari channel `conda-forge`
```bash=
conda install -c conda-forge matplotlib
```
### 2.1 Instalasi PyTorch
Setelah Anda membuat virtual environment, lakukan instalasi PyTorch terlebih dahulu pada virtual environment yang digunakan. Silahkan merujuk ke link berikut ini [https://pytorch.org/](https://pytorch.org/) untuk melakukan instalasi PyTorch. Jika komputer Anda dilengkapi dengan NVIDIA GPU, sesuaikan PyTorch yang diinstall dengan versi CUDA yang digunakan.
### 2.2 Instalasi Package Lainnya
Instalasi package lainnya dapat menggunakan `conda package manager` dengan perintah yang terlah dijelaskan sebelumnya. Selain itu pastikan instalasi dilakukan pada virtual environment yang digunakan.
## 3. Verfikasi Python Package yang Terinstall
Untuk melakukan verfirikasi, jalankan jupyter notebook terlebih dahulu dengan mengetikkan perintah berikut ini pada terminal.
```bash=
jupyter notebook
```
Halaman Jupyter Notebook akan muncul pada browser. Buatlah notebook baru dengan cara klik kanan pada tombol **New** disebelah kanan, kemudian pilih **Python 3**

Tambahkan script berikut ini pada cell pertama di Jupyter Notebook.
```python=
import torch
import cv2
import matplotlib
import sklearn
import skimage
import scipy
import tensorboard
```

Eksekusi script diatas dengan cara menekan tombol **Shift + Enter** pada keyboard. Pastikan tidak ada pesan error ketika script dieksekusi.
**PyTorch dengan NVIDIA GPU**
Jika komputer dilengkapi dengan GPU, pastikan PyTorch mengenali GPU pada komputer. Caranya jalankan script berikut ini pada cell berikutnya
```python=
torch.cuda.current_device()
```
Jika PyTorch mengenali GPU, maka output dari script diatas akan menampilkan index dari GPU yang digunakan. Contoh seperti berikut ini.
