PM: Install Virtual Environment

From OnnoWiki
Jump to navigation Jump to search

Berikut langkah lengkap membuat virtualenv PM4Py di `~/Apps/PM4Py` untuk *process mining*. PM4Py resmi bisa di-install dengan `pip install -U pm4py`, dan saat ini mendukung Python 3.9–3.14. ([PyPI][1])

1. Install dependency sistem

sudo apt update
sudo apt install -y python3 python3-venv python3-pip graphviz

Keterangan singkat:

python3-venv

dibutuhkan untuk membuat virtual environment.

graphviz

dibutuhkan agar visualisasi proses seperti Petri net, BPMN, dan *process tree* bisa digambar dengan baik.


2. Buat folder kerja

mkdir -p ~/Apps/PM4Py
cd ~/Apps/PM4Py

3. Buat virtualenv

python3 -m venv venv

Aktifkan:

source venv/bin/activate

Kalau berhasil, prompt terminal biasanya berubah menjadi seperti:

(venv) onno@i3:~/Apps/PM4Py$

4. Upgrade pip dan tools dasar

python -m pip install --upgrade pip setuptools wheel

5. Install PM4Py + library pendukung

pip install -U \
  pm4py \
  pandas \
  numpy \
  matplotlib \
  seaborn \
  scikit-learn \
  scipy \
  networkx \
  graphviz \
  pyvis \
  jupyterlab \
  notebook \
  ipykernel \
  openpyxl \
  xlsxwriter

Library utama:

| Library                  | Fungsi                                     |
|  |  |
| `pm4py`                  | library utama *process mining*             |
| `pandas`, `numpy`        | olah data event log                        |
| `matplotlib`, `seaborn`  | visualisasi data                           |
| `scikit-learn`           | clustering, klasifikasi, anomaly detection |
| `networkx`, `graphviz`   | graph/process visualization                |
| `jupyterlab`, `notebook` | kerja lewat Jupyter                        |
| `openpyxl`, `xlsxwriter` | baca/tulis Excel                           |

6. Daftarkan kernel Jupyter

python -m ipykernel install --user --name pm4py --display-name "Python PM4Py"

Nanti di Jupyter pilih kernel:

Python PM4Py

7. Buat file requirements.txt

cat > requirements.txt << 'EOF'
pm4py
pandas
numpy
matplotlib
seaborn
scikit-learn
scipy
networkx
graphviz
pyvis
jupyterlab
notebook
ipykernel
openpyxl
xlsxwriter
EOF

Nanti kalau mau install ulang cukup:

pip install -r requirements.txt

8. Test instalasi PM4Py

Buat file test:

nano test_pm4py.py

Isi:

import pm4py
import pandas as pd

print("PM4Py version:", pm4py.__version__)

data = [
    {"case:concept:name": "1", "concept:name": "Register", "time:timestamp": "2026-01-01 08:00:00"},
    {"case:concept:name": "1", "concept:name": "Check",    "time:timestamp": "2026-01-01 09:00:00"},
    {"case:concept:name": "1", "concept:name": "Approve",  "time:timestamp": "2026-01-01 10:00:00"}, 

    {"case:concept:name": "2", "concept:name": "Register", "time:timestamp": "2026-01-02 08:00:00"},
    {"case:concept:name": "2", "concept:name": "Check",    "time:timestamp": "2026-01-02 09:00:00"},
    {"case:concept:name": "2", "concept:name": "Reject",   "time:timestamp": "2026-01-02 10:00:00"},
]

df = pd.DataFrame(data)
df["time:timestamp"] = pd.to_datetime(df["time:timestamp"])

print(df)
# Discover Directly-Follows Graph
dfg, start_activities, end_activities = pm4py.discover_dfg(df)

print("\nDirectly-Follows Graph:")
print(dfg)

print("\nStart activities:")
print(start_activities)

print("\nEnd activities:")
print(end_activities)

Jalankan:

python test_pm4py.py

Kalau sukses, akan keluar versi PM4Py dan hasil *Directly-Follows Graph*.


9. Test lewat Jupyter Notebook

Jalankan:

jupyter lab

Lalu buat notebook baru dengan kernel:

Python PM4Py

Cell test:

import pm4py
import pandas as pd

pm4py.__version__

Cell berikutnya:

data = [
    {"case:concept:name": "1", "concept:name": "A", "time:timestamp": "2026-01-01 08:00:00"},
    {"case:concept:name": "1", "concept:name": "B", "time:timestamp": "2026-01-01 09:00:00"},
    {"case:concept:name": "1", "concept:name": "C", "time:timestamp": "2026-01-01 10:00:00"},
    {"case:concept:name": "2", "concept:name": "A", "time:timestamp": "2026-01-02 08:00:00"},
    {"case:concept:name": "2", "concept:name": "B", "time:timestamp": "2026-01-02 09:00:00"},
    {"case:concept:name": "2", "concept:name": "D", "time:timestamp": "2026-01-02 10:00:00"},
]

df = pd.DataFrame(data)
df["time:timestamp"] = pd.to_datetime(df["time:timestamp"])

df

Cell process mining:

dfg, start_activities, end_activities = pm4py.discover_dfg(df)

dfg

10. Struktur folder yang disarankan

mkdir -p ~/Apps/PM4Py/{data,notebooks,scripts,output}

Struktur:

~/Apps/PM4Py/
├── venv/
├── data/
├── notebooks/
├── scripts/
├── output/
├── requirements.txt
└── test_pm4py.py

11. Cara pakai harian

Setiap mau kerja:

cd ~/Apps/PM4Py
source venv/bin/activate
jupyter lab

Keluar dari virtualenv:

deactivate

== 12. Kalau ada error Graphviz

Cek:

dot -V

Kalau belum ada:

sudo apt install -y graphviz

Lalu install ulang Python package-nya:

pip install -U graphviz

13. Versi ringkas semua command

sudo apt update
sudo apt install -y python3 python3-venv python3-pip graphviz

mkdir -p ~/Apps/PM4Py 
cd ~/Apps/PM4Py

python3 -m venv venv
source venv/bin/activate

python -m pip install --upgrade pip setuptools wheel

pip install -U \
  pm4py \
  pandas \
  numpy \
  matplotlib \
  seaborn \
  scikit-learn \
  scipy \
  networkx \
  graphviz \
  pyvis \
  jupyterlab \
  notebook \
  ipykernel \
  openpyxl \
  xlsxwriter

python -m ipykernel install --user --name pm4py --display-name "Python PM4Py"

mkdir -p data notebooks scripts output

python -c "import pm4py; print(pm4py.__version__)"
jupyter lab


[1]: https://pypi.org/project/pm4py/?utm_source=chatgpt.com "pm4py"