BPMN vs UML Activity Diagram — Apa Bedanya?
Jawaban singkat: UML Activity Diagram adalah alat pemodelan alur kerja untuk developer dan arsitek perangkat lunak — ia menggambarkan bagaimana komponen sistem berinteraksi secara internal. BPMN adalah bahasa pemodelan proses bisnis yang dirancang untuk analis bisnis dan bisa dieksekusi langsung oleh mesin. Keduanya terlihat sangat mirip secara visual, tapi berbeda fundamental dalam semantik, audiensi, dan tujuan.
Jika UML Activity Diagram adalah "blueprint sistem untuk engineer", maka BPMN adalah "blueprint proses bisnis yang bisa langsung dijalankan".
Mengapa Keduanya Sering Tertukar?
BPMN dan UML Activity Diagram memang terlihat hampir identik di permukaan: keduanya menggunakan kotak membulat untuk aktivitas, diamond untuk percabangan, dan panah untuk alur. Keduanya juga mendukung swimlane untuk mengelompokkan tanggung jawab.
Kemiripan visual ini bukan kebetulan — BPMN memang terinspirasi dari notasi flowchart yang juga menjadi fondasi UML Activity Diagram. Sebuah studi akademis (Peixoto & Batista, 2008) bahkan menemukan bahwa mahasiswa yang belum terlatih tidak menemukan perbedaan signifikan antara keduanya dalam hal keterbacaan — bukti nyata betapa misleading-nya kemiripan ini.
Di balik tampilannya, keduanya memiliki semantik, aturan, dan ekosistem yang sangat berbeda.
Latar Belakang: Dua Standar dari Satu Organisasi
Yang menarik: OMG (Object Management Group) mengelola keduanya — dan ini disengaja.
UML (Unified Modeling Language) dikembangkan oleh Grady Booch, James Rumbaugh, dan Ivar Jacobson — dikenal sebagai "The Three Amigos" — yang bergabung di Rational Software antara 1994–1995. UML 1.0 diadopsi OMG pada November 1997. Activity Diagram pertama kali hadir di UML 1.x sebagai varian dari state machine diagram, lalu dirombak total di UML 2.0 (2005) dengan semantik berbasis token flow yang terinspirasi dari Petri nets.
BPMN lahir dari BPMI (Business Process Management Initiative) yang berdiri tahun 2000, dan bergabung ke OMG pada Juni 2005 — tahun yang sama dengan rilis UML 2.0. OMG tidak menggabungkan keduanya menjadi satu standar. Itu keputusan strategis: UML untuk pemodelan teknis perangkat lunak, BPMN untuk proses bisnis yang bisa dieksekusi.
Perbandingan Menyeluruh
| Aspek | UML Activity Diagram | BPMN |
|---|---|---|
| Audiensi utama | Developer, arsitek sistem | Analis bisnis, pemilik proses, developer |
| Tujuan | Memodelkan alur kerja internal sistem | Memodelkan dan mengeksekusi proses bisnis |
| Kemampuan eksekusi | Tidak (kecuali ekstensi fUML) | Ya — BPMN 2.0 dirancang untuk eksekusi |
| Jumlah tipe Event | ~5 (sinyal, panggilan, waktu) | 60+ tipe Event terstandar |
| Penanganan eksepsi | Interruptible activity region | Error/Escalation Boundary Event terstruktur |
| Pemisahan peserta | Partition — hanya pengelompokan visual | Pool — memiliki aturan alur yang ketat |
| Aliran data | Object flow (terintegrasi dengan alur kontrol) | Data Association (terpisah dari alur kontrol) |
| Jenis percabangan | Decision/Merge, Fork/Join | XOR, OR, AND, Event-Based Gateway |
| Standar ISO | ISO/IEC 19501 | ISO/IEC 19510 |
| Tools utama | Enterprise Architect, StarUML, PlantUML, Papyrus | Camunda, Flowable, Signavio, bpmn.io |
Lima Perbedaan Teknis yang Paling Penting
1. Event: Sederhana vs Kaya Semantik
UML Activity Diagram mengenal jenis event yang terbatas — hanya sinyal (send/receive signal action), panggilan operasi, dan event waktu implisit. Tidak ada konsep "proses dimulai karena menerima pesan dari sistem luar", "eskalasi otomatis setelah 3 hari", atau "kompensasi ketika transaksi dibatalkan".
BPMN memiliki lebih dari 60 tipe Event, diorganisir dalam tiga posisi (Start, Intermediate, End) dan dua peran (Catching/Throwing):
| Tipe Event BPMN | Contoh Penggunaan |
|---|---|
| Timer | "Kirim pengingat jika tidak direspons dalam 48 jam" |
| Message | "Proses dimulai saat email permohonan masuk" |
| Error | "Batalkan proses jika kartu kredit ditolak" |
| Escalation | "Eskalasi ke manajer jika staf tidak merespons" |
| Compensation | "Batalkan pemesanan tiket jika pembayaran gagal" |
| Signal | "Terima sinyal dari sistem lain bahwa kiriman tiba" |
UML: Sinyal masuk → [Receive Signal Action] → lanjut
(tidak bisa bedakan Timer vs Message vs Error)
BPMN: (⊙ Timer: 48 jam) → [Eskalasi ke Supervisor] → lanjut
(●✉ Message Start) → [Proses Permohonan]
(⊗ Error Boundary) → [Tangani Kegagalan Pembayaran]
2. Swimlane: Visual vs Aturan Ketat
Ini perbedaan yang paling sering diabaikan — dan paling berdampak dalam praktik.
UML Partition (Activity Partition) hanya pengelompokan visual. Ia menunjukkan "aksi ini tanggung jawab siapa", tapi tidak ada aturan yang membatasi alur antar partisi. Sequence flow bisa melintas bebas dari Partisi A ke Partisi B.
BPMN Pool berbeda secara fundamental: ia merepresentasikan peserta yang terpisah (organisasi atau sistem berbeda). Ada aturan keras — Sequence Flow tidak boleh melewati batas Pool. Komunikasi antar Pool hanya bisa melalui Message Flow.
UML (boleh):
┌─── Partition: Tim A ───┐ ┌─── Partition: Tim B ───┐
│ [Buat Laporan] ────────────────→ [Review Laporan] │
└────────────────────────┘ └────────────────────────┘
(Sequence Flow bebas melintas partisi — valid)
BPMN (tidak boleh):
┌─── Pool: Perusahaan A ─┐ ┌─── Pool: Vendor B ─────┐
│ [Kirim PO] ────────────────→ [Terima PO] │
└────────────────────────┘ └────────────────────────┘
❌ SALAH — Sequence Flow tidak bisa melintas Pool
✅ BENAR — harus pakai Message Flow:
│ [Kirim PO] ·····················→ [Terima PO] │
(Message Flow — panah putus-putus)
Implikasinya besar: di BPMN, pemisahan Pool bukan soal estetika — ia mencerminkan batas organisasi yang nyata dan menentukan jenis komunikasi yang diperbolehkan.
3. Percabangan: Satu Simbol vs Empat Tipe
UML hanya punya dua simbol percabangan:
- Decision Node (diamond) — satu masuk, banyak keluar, dengan guard condition
- Fork/Join Node (batang tebal) — untuk konkurensi
BPMN memiliki empat jenis Gateway dengan perilaku yang berbeda secara eksplisit:
| Gateway BPMN | Simbol | Perilaku |
|---|---|---|
| Exclusive (XOR) | ✕ | Tepat satu jalur diambil |
| Parallel (AND) | + | Semua jalur berjalan serentak |
| Inclusive (OR) | ○ | Satu atau lebih jalur aktif |
| Event-Based | ⬡ | Jalur ditentukan oleh event yang datang pertama |
Dalam UML, jika Anda ingin mengekspresikan "kerjakan A dan B secara paralel" vs "kerjakan A atau B tergantung kondisi", keduanya memakai bentuk diamond yang sama — pembaca harus membaca guard condition dengan teliti. Di BPMN, perbedaan itu langsung terlihat dari simbolnya.
4. Kemampuan Eksekusi
UML Activity Diagram adalah alat pemodelan — tidak dirancang untuk dieksekusi langsung oleh mesin. Ada ekstensi bernama fUML (Foundational UML) yang distandarisasi OMG pada 2008 untuk menambahkan semantik eksekusi ke UML, namun ekosistemnya terbatas (terutama dipakai di riset akademis dan simulasi, bukan produksi).
BPMN 2.0 dirancang dari awal untuk eksekusi. Standar ini mendefinisikan format XML yang bisa dibaca dan dijalankan langsung oleh Business Process Management System (BPMS):
BPMN 2.0 XML (disederhanakan):
<process id="persetujuanAnggaran" isExecutable="true">
<startEvent id="mulai"/>
<userTask id="reviewManajer" name="Review Anggaran"
camunda:assignee="${manajer}"/>
<exclusiveGateway id="keputusan"/>
<sequenceFlow sourceRef="keputusan" targetRef="prosesDana"
conditionExpression="${disetujui == true}"/>
</process>
→ File ini langsung dapat di-deploy ke Camunda atau Flowable
dan langsung berjalan sebagai proses di sistem.
| UML Activity Diagram | BPMN 2.0 | |
|---|---|---|
| Standar dapat dieksekusi | Tidak (butuh fUML) | Ya |
| Engine produksi | Tidak ada ekosistem matang | Camunda, Flowable, Activiti, IBM BPM |
| Monitoring proses berjalan | Tidak | Ya (dashboard, audit log) |
| Deployment ke sistem | Tidak | Ya |
5. Penanganan Data
UML menggunakan Object Flow — data mengalir terintegrasi dengan alur kontrol. Sebuah objek bisa "memblokir" eksekusi aksi berikutnya jika belum tersedia, mirip dengan mekanisme token di Petri nets.
BPMN memisahkan data dari alur kontrol. Data Object dan Data Store dihubungkan ke aktivitas melalui Data Association — panah putus-titik yang tidak mempengaruhi urutan eksekusi. Alur kontrol dan alur data berjalan independen.
UML (data terintegrasi dengan alur):
[Validasi Formulir] ──[Formulir Tervalidasi]──→ [Simpan ke Database]
(Object Node)
(objek harus ada sebelum aksi berikutnya bisa mulai)
BPMN (data terpisah dari alur):
[Validasi Formulir] ──→ [Simpan ke Database] ──→ [End]
↑ ↓
{Data: Formulir} {Data Store: DB Arsip}
(Data Association — tidak mempengaruhi Sequence Flow)
Ketika Diagram Terlihat Sama Tapi Beda Semantik
Ini jebakan yang paling sering dialami praktisi yang berpindah antara dua notasi:
Jebakan 1: Decision Node vs Exclusive Gateway
UML Decision Node: BPMN Exclusive Gateway:
◇ ◇X
[Ya]/ \[Tidak] [Ya]/ \[Tidak]
Terlihat identik. Tapi di UML, guard condition dievaluasi dan jika tidak ada yang cocok, token hilang begitu saja (undefined behavior). Di BPMN, Anda wajib mendefinisikan default flow — jika tidak ada kondisi yang terpenuhi, proses tidak boleh macet tanpa penanganan eksplisit.
Jebakan 2: Swimlane yang Berbeda Aturan
Banyak praktisi yang terbiasa dengan UML Partition — di mana alur bebas melintas — membuat kesalahan fatal di BPMN: menggunakan Sequence Flow untuk menghubungkan Task di dua Pool berbeda. Ini tidak valid dalam BPMN dan akan menyebabkan error di execution engine.
Jebakan 3: Fork/Join vs Parallel Gateway
UML Fork/Join: BPMN Parallel Gateway:
━━━━━━ ◇+
↙ ↓ ↘ ↙ ↓ ↘
[A] [B] [C] [A] [B] [C]
↘ ↓ ↙ ↘ ↓ ↙
━━━━━━ ◇+
Lagi-lagi terlihat sama. Tapi UML Fork menduplikasi token secara implisit menggunakan mekanisme Petri nets, sementara BPMN Parallel Gateway (AND-split) mengaktifkan semua jalur keluar. Jika seseorang merancang diagram di UML lalu "menerjemahkannya" langsung ke BPMN tanpa pemahaman ini, perilaku sistem bisa berbeda.
Panduan: Kapan Pakai UML Activity Diagram, Kapan Pakai BPMN?
Gunakan UML Activity Diagram ketika:
✅ Anda memodelkan alur kerja internal sistem perangkat lunak — bukan proses bisnis
✅ Audiensi utama adalah developer atau arsitek sistem
✅ Anda perlu integrasi dengan diagram UML lain (Class Diagram, Component Diagram, Sequence Diagram)
✅ Anda mendokumentasikan logika method atau algoritma dalam kelas
✅ Anda butuh Object Flow untuk menunjukkan tipe data yang mengalir antar komponen
✅ Organisasi sudah menggunakan toolchain UML (Enterprise Architect, StarUML)
Contoh konkret:
- Memodelkan alur internal modul Payment Processing dalam sistem e-commerce — bagaimana
PaymentService,FraudDetectionService, danLedgerServiceberkoordinasi - Mendokumentasikan logika algoritma validasi data sebelum diimplementasikan
- Menggambarkan behavior operasi
placeOrder()dalam arsitektur OOP
Gunakan BPMN ketika:
✅ Proses melibatkan lebih dari satu peran, departemen, atau organisasi
✅ Diagram perlu dipahami oleh stakeholder bisnis non-teknis
✅ Proses akan diimplementasikan di BPMS (Camunda, Flowable, Activiti)
✅ Ada berbagai jenis kejadian yang perlu dibedakan (timer, pesan, error, eskalasi)
✅ Anda butuh audit trail dan monitoring proses yang berjalan
✅ Proses melibatkan komunikasi antar organisasi yang harus diformalkan
✅ Diagram digunakan sebagai spesifikasi untuk compliance atau regulasi
Contoh konkret:
- Memodelkan proses pengajuan kredit yang melibatkan Nasabah, Petugas Loket, Analis Kredit, dan Komite
- Mendefinisikan proses onboarding vendor yang melibatkan tim Procurement, Legal, dan Finance
- Merancang alur layanan publik yang akan diotomasi dan dimonitor
Tabel Keputusan
| Pertanyaan | Jawaban Ya | Jawaban Tidak |
|---|---|---|
| Apakah ini proses bisnis yang melibatkan lebih dari satu departemen? | BPMN | UML |
| Apakah diagram perlu dieksekusi oleh process engine? | BPMN | UML |
| Apakah audiensi utama adalah developer yang akan mengimplementasikan sistem? | UML | — |
| Apakah ada batas organisasi yang perlu diformalkan (Pool)? | BPMN | — |
| Apakah Anda butuh integrasi dengan Class atau Sequence Diagram? | UML | — |
| Apakah ada 5+ jenis event berbeda yang perlu dibedakan? | BPMN | — |
| Apakah diagram harus divalidasi untuk audit atau sertifikasi? | BPMN | — |
Bolehkah Digunakan Bersama?
Ya — dan ini adalah praktik yang cukup umum di organisasi yang matang secara teknis.
BPMN digunakan untuk mendefinisikan alur bisnis dari sudut pandang proses — siapa melakukan apa, kapan, dan dengan data apa. Ini adalah lapisan yang bisa dikomunikasikan ke pimpinan bisnis.
UML Activity Diagram digunakan untuk mendefinisikan detail implementasi teknis dari sebuah Service Task atau Script Task di dalam proses BPMN — misalnya bagaimana komponen sistem secara internal menjalankan "Validasi KTP" atau "Hitung Skor Kredit".
Proses BPMN (level bisnis):
... → [Service Task: Hitung Skor Kredit] → ...
↓ "bagaimana ini diimplementasikan?"
UML Activity Diagram (level teknis):
[Ambil Data Nasabah] → [Panggil Scoring API] → ◇ Respons OK?
├─→ [Parse Skor]
└─→ [Handle Error]
Dengan cara ini, BPMN memberikan gambaran "apa yang terjadi dari perspektif bisnis", sementara UML Activity Diagram mendeskripsikan "bagaimana sistem mengeksekusinya secara teknis". Keduanya saling melengkapi, bukan bersaing.
Ringkasan
BPMN dan UML Activity Diagram bukan alat yang salah satunya "lebih baik" — mereka dirancang untuk lapisan yang berbeda dalam pemodelan sistem dan proses.
Gunakan UML Activity Diagram ketika Anda bekerja di lapisan teknis: memodelkan perilaku internal sistem, mendokumentasikan alur logika untuk developer, atau mengintegrasikan dengan artefak UML lainnya.
Gunakan BPMN ketika Anda bekerja di lapisan bisnis: memodelkan proses yang melibatkan banyak pihak, perlu dieksekusi oleh mesin, atau perlu dikomunikasikan ke stakeholder non-teknis.
OMG menjaga keduanya tetap terpisah bukan karena belum sempat menggabungkannya — tapi karena mereka memang dirancang untuk menjawab pertanyaan yang berbeda.
Selanjutnya: Notasi BPMN → — pelajari elemen-elemen BPMN yang membuatnya lebih dari sekadar diagram alur.
Sudah memahami konsep BPMN?
Wujudkan diagram Anda menjadi *workflow automation* nyata tanpa *coding* — dengan **AlurKerja**, platform BPM buatan Indonesia.