Lewati ke konten utama

Flow — Aliran

Flow adalah elemen yang menghubungkan elemen-elemen lain dalam diagram BPMN. Tanpa Flow, diagram hanyalah kumpulan simbol yang tidak terhubung. Flow mendefinisikan urutan, arah, dan jenis komunikasi antar elemen.

BPMN memiliki tiga jenis Flow, masing-masing dengan tujuan yang berbeda dan aturan penggunaan yang ketat.


1. Sequence Flow

Tampilan: Panah solid dengan kepala panah terisi (→)
Warna: Biasanya hitam

Fungsi: Mendefinisikan urutan eksekusi aktivitas di dalam satu Pool. Sequence Flow menjawab pertanyaan: "Setelah ini, apa yang dilakukan selanjutnya?"

Aturan Sequence Flow

  • Hanya bisa menghubungkan elemen di dalam Pool yang sama
  • Tidak bisa melewati batas Pool
  • Setiap Activity (kecuali End Event) harus memiliki Sequence Flow keluar
  • Setiap Activity (kecuali Start Event) harus memiliki Sequence Flow masuk

Jenis Sequence Flow

Normal Flow
Panah biasa tanpa kondisi — selalu dieksekusi.

Conditional Flow
Panah dengan tanda berlian kecil di pangkalnya. Dieksekusi hanya jika kondisi terpenuhi. Digunakan keluar dari Activity (bukan dari Gateway).

Default Flow
Panah dengan tanda garis miring kecil di pangkalnya. Dieksekusi jika tidak ada kondisi lain yang terpenuhi. Harus selalu ada pada Exclusive dan Inclusive Gateway.

Contoh Penggunaan

[Start Event] → [Terima Permohonan] → [Verifikasi Data] → ◇ Gateway
◇ → [Data Lengkap] → [Proses Permohonan]
◇ → [Data Tidak Lengkap] → [Minta Kelengkapan] (conditional)
◇ → [Error] (default)

Kesalahan Umum

  • Sequence Flow antar Pool: tidak valid. Gunakan Message Flow untuk komunikasi antar Pool.
  • Task tanpa Sequence Flow keluar: diagram tidak lengkap (kecuali End Event).
  • Kondisi di Sequence Flow tanpa Gateway: lebih baik gunakan Exclusive Gateway daripada conditional flow langsung dari Activity.

2. Message Flow

Tampilan: Panah putus-putus dengan lingkaran kecil di pangkal dan kepala panah terbuka (○- - - →)
Warna: Biasanya hitam atau abu-abu

Fungsi: Merepresentasikan komunikasi (pengiriman pesan) antara dua Pool yang berbeda. Message Flow menjawab: "Informasi apa yang dikirimkan dari peserta A ke peserta B?"

Aturan Message Flow

  • Hanya bisa menghubungkan elemen di Pool yang berbeda
  • Tidak bisa berada di dalam satu Pool yang sama
  • Biasanya menghubungkan: Task/Event di Pool A → Task/Event di Pool B

Yang Bisa Dihubungkan dengan Message Flow

DariKe
Pool (sebagai pengirim)Pool (sebagai penerima)
Send Task / Message Throwing EventReceive Task / Message Start Event / Message Catching Event

Memberi Nama pada Message Flow

Selalu beri nama pada Message Flow untuk menjelaskan isi pesan. Tanpa nama, orang yang membaca diagram tidak tahu pesan apa yang dikirim.

Format nama yang baik: Gunakan nama dokumen atau data yang dikirim:

  • ✅ "Formulir Permohonan Kredit"
  • ✅ "Konfirmasi Pembayaran"
  • ✅ "Notifikasi Penolakan"
  • ❌ "Data" (terlalu umum)
  • ❌ "Pesan" (tidak informatif)

Contoh

Pool: Pelanggan Pool: Bank
[Kirim Formulir] ─── "Formulir Permohonan" ──→ [Terima Formulir]

...proses berjalan...

[Terima Keputusan] ←── "Surat Keputusan Kredit" ─── [Kirim Keputusan]

Perbedaan Mendasar: Sequence Flow vs. Message Flow

AspekSequence FlowMessage Flow
TampilanPanah solid →Panah putus-putus ○→
Arah komunikasiInternal (dalam Pool)Eksternal (antar Pool)
Maknanya"Lanjut ke langkah berikutnya""Kirim informasi ke peserta lain"
Bisa melewati Pool?✅ (hanya antar Pool)

3. Association

Tampilan: Garis titik-titik (···) tanpa kepala panah, atau dengan kepala panah untuk menunjukkan arah
Warna: Biasanya abu-abu

Fungsi: Menghubungkan Artifact (Data Object, Annotation, Group) ke elemen Flow lainnya. Association tidak mempengaruhi alur eksekusi — ini murni informasi tambahan.

Tiga Jenis Association

JenisSimbolArtinya
Undirected Association···Hubungan tanpa arah spesifik
Directed Association···→Data/informasi mengalir ke arah tertentu
Bidirectional Association←···→Data mengalir dua arah

Kapan Menggunakan Association

  1. Menghubungkan Data Object ke Task
    Menunjukkan bahwa Task menggunakan atau menghasilkan data/dokumen tertentu.

  2. Menghubungkan Text Annotation ke elemen
    Menambahkan penjelasan teks pada elemen tertentu.

  3. Menghubungkan Compensation Task
    Compensation Boundary Event dihubungkan ke Compensation Task menggunakan Association (bukan Sequence Flow).

Contoh

[Verifikasi KTP] ···→ 📄 Data Object: "KTP yang Diverifikasi"

[Task] ··· Annotation: "Verifikasi menggunakan API Dukcapil"

Panduan Cepat: Flow Mana yang Harus Dipakai?

SituasiFlow yang Tepat
Menghubungkan dua Task dalam proses yang samaSequence Flow
Menghubungkan Task ke GatewaySequence Flow
Bank mengirim dokumen ke nasabahMessage Flow
Sistem A memulai proses di Sistem BMessage Flow + Message Start Event
Menambahkan catatan pada sebuah TaskAssociation + Text Annotation
Menunjukkan dokumen yang digunakan TaskAssociation + Data Object
Menghubungkan CompensationAssociation

Kesalahan yang Paling Sering Terjadi

Sequence Flow Melewati Pool

Ini adalah kesalahan nomor satu dalam diagram BPMN pemula. Jika pelanggan "menyerahkan formulir" ke bank, bukan Sequence Flow dari Pool Pelanggan ke Pool Bank — melainkan Message Flow.

Salah: [Pelanggan: Kirim Formulir] → [Bank: Terima Formulir] (satu panah melewati batas Pool)
Benar: [Pelanggan: Kirim Formulir] ─ Message Flow ─→ [Bank: Terima Formulir]

Message Flow Di Dalam Pool

Message Flow hanya untuk komunikasi antar Pool. Di dalam Pool, gunakan Sequence Flow.

Association untuk Alur Eksekusi

Association tidak mengeksekusi apapun — ia hanya menambahkan informasi. Jangan gunakan Association untuk menghubungkan Task ke Task.


Selanjutnya: Artifact →