Difference between revisions of "Pm4py: contoh minimal dari csv"
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
Onnowpurbo (talk | contribs)  | 
				Onnowpurbo (talk | contribs)   | 
				||
| Line 22: | Line 22: | ||
  pip install pandas  |   pip install pandas  | ||
  pip install pm4py  |   pip install pm4py  | ||
| + |  pip install graphviz  | ||
=='''Minimal Source Code (PM4Py with CSV)'''==  | =='''Minimal Source Code (PM4Py with CSV)'''==  | ||
Revision as of 05:45, 30 March 2025
Berikut adalah minimal source code untuk menggunakan [PM4Py](https://pm4py.fit.fraunhofer.de/) — library Python yang digunakan untuk Process Mining, biasanya dengan input berupa event logs. PM4Py umumnya menggunakan file input dalam format XES, CSV, atau Parquet.
Contoh Minimal: Menggunakan PM4Py dengan File CSV
Contoh Format File Input (`event_log.csv`):
case_id,activity,timestamp 1,Start,2024-01-01 08:00:00 1,Check,2024-01-01 08:15:00 1,Approve,2024-01-01 08:45:00 2,Start,2024-01-01 09:00:00 2,Check,2024-01-01 09:10:00 2,Reject,2024-01-01 09:30:00
Kolom wajib:
- `case_id`: ID proses unik (setiap satu proses memiliki banyak aktivitas)
 - `activity`: nama aktivitas
 - `timestamp`: waktu aktivitas dilakukan
 
Persiapan
pip install pandas pip install pm4py pip install graphviz
Minimal Source Code (PM4Py with CSV)
import pandas as pd
from pm4py.objects.conversion.log import converter as log_converter
from pm4py.algo.discovery.alpha import algorithm as alpha_miner
from pm4py.visualization.petrinet import visualizer as pn_visualizer
from pm4py.objects.log.util import dataframe_utils
# 1. Load CSV event log
df = pd.read_csv("event_log.csv")
# 2. Format timestamps properly
df['timestamp'] = pd.to_datetime(df['timestamp'])
# 3. Ensure column names match PM4Py expectations
df = dataframe_utils.convert_timestamp_columns_in_df(df)
# 4. Convert to event log object
event_log = log_converter.apply(df, parameters={
    log_converter.Variants.TO_EVENT_LOG.value.Parameters.CASE_ID_KEY: 'case_id'
})
# 5. Discover process model using Alpha Miner
net, initial_marking, final_marking = alpha_miner.apply(event_log)
# 6. Visualize Petri Net
gviz = pn_visualizer.apply(net, initial_marking, final_marking)
pn_visualizer.view(gviz)
Cara Install PM4Py
pip install pm4py
> Jika kamu pakai Jupyter atau Google Colab, tambahkan `!pip install pm4py` di atas cell.
Kalau kamu mau pakai format lain seperti XES, tinggal ubah bagian `pd.read_csv(...)` menjadi:
from pm4py.objects.log.importer.xes import factory as xes_importer
log = xes_importer.apply("your_log.xes")