Difference between revisions of "Pm4py: contoh minimal dari csv"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) (Created page with "Berikut adalah '''minimal source code''' untuk menggunakan ['''PM4Py'''](https://pm4py.fit.fraunhofer.de/) — library Python yang digunakan untuk '''Process Mining''', biasan...") |
Onnowpurbo (talk | contribs) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
==Contoh Format File Input (`event_log.csv`):== | ==Contoh Format File Input (`event_log.csv`):== | ||
− | case_id,activity,timestamp | + | case_id,activity,timestamp |
− | 1,Start,2024-01-01 08:00:00 | + | 1,Start,2024-01-01 08:00:00 |
− | 1,Check,2024-01-01 08:15:00 | + | 1,Check,2024-01-01 08:15:00 |
− | 1,Approve,2024-01-01 08:45:00 | + | 1,Approve,2024-01-01 08:45:00 |
− | 2,Start,2024-01-01 09:00:00 | + | 2,Start,2024-01-01 09:00:00 |
− | 2,Check,2024-01-01 09:10:00 | + | 2,Check,2024-01-01 09:10:00 |
− | 2,Reject,2024-01-01 09:30:00 | + | 2,Reject,2024-01-01 09:30:00 |
Kolom wajib: | Kolom wajib: | ||
Line 17: | Line 17: | ||
* `activity`: nama aktivitas | * `activity`: nama aktivitas | ||
* `timestamp`: waktu aktivitas dilakukan | * `timestamp`: waktu aktivitas dilakukan | ||
+ | |||
+ | =='''Persiapan'''== | ||
+ | |||
+ | pip install pandas pm4py graphviz | ||
=='''Minimal Source Code (PM4Py with CSV)'''== | =='''Minimal Source Code (PM4Py with CSV)'''== | ||
Line 25: | Line 29: | ||
from pm4py.visualization.petrinet import visualizer as pn_visualizer | from pm4py.visualization.petrinet import visualizer as pn_visualizer | ||
from pm4py.objects.log.util import dataframe_utils | from pm4py.objects.log.util import dataframe_utils | ||
+ | |||
+ | # csv_filename='Insurance_claims_event_log.csv' | ||
+ | # csv_filename='Business Travel Permits.csv' | ||
+ | # csv_filename='Parent-Child Union Output.csv' | ||
+ | # csv_filename='PM4PY_Dummy_Event_Log_100_Cases_pm4py.csv' | ||
+ | # csv_filename='PM4Py_Dummy_Event_Log-congested-business-process.csv' | ||
# 1. Load CSV event log | # 1. Load CSV event log | ||
− | df = pd.read_csv( | + | df = pd.read_csv(csv_filename) |
+ | # df = pd.read_csv(csv_filename,sep=';') | ||
+ | # print(df.head()) | ||
# 2. Format timestamps properly | # 2. Format timestamps properly |
Latest revision as of 11:57, 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 pm4py 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 # csv_filename='Insurance_claims_event_log.csv' # csv_filename='Business Travel Permits.csv' # csv_filename='Parent-Child Union Output.csv' # csv_filename='PM4PY_Dummy_Event_Log_100_Cases_pm4py.csv' # csv_filename='PM4Py_Dummy_Event_Log-congested-business-process.csv' # 1. Load CSV event log df = pd.read_csv(csv_filename) # df = pd.read_csv(csv_filename,sep=';') # print(df.head()) # 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")