Lewati ke konten utama

Cara Membaca Parallel Gateway (AND)

Parallel Gateway (AND) adalah gateway BPMN yang menjalankan semua jalur keluarnya secara bersamaan, tanpa kondisi apa pun. Kalau Exclusive Gateway setara dengan if/else, Parallel Gateway setara dengan fork-join di pemrograman asinkron: beberapa pekerjaan berjalan bersamaan, dan langkah berikutnya baru dimulai setelah semuanya selesai.

Template Reading Grammar

Split (memecah jadi beberapa jalur):

[Parallel Gateway, split] → "Secara bersamaan, {lane_A} melakukan {task_A}, dan {lane_B} melakukan {task_B}"

Join (menggabungkan kembali):

[Parallel Gateway, join] → "Setelah {task_A} dan {task_B} selesai, maka {next}"

Contoh Parallel Gateway: Order Diterima memecah jadi dua jalur lalu bergabung kembali

Diagram di atas dibaca:

"Setelah Order Diterima, secara bersamaan dilakukan Siapkan Kemasan dan Proses Pembayaran. Setelah keduanya selesai, maka proses berlanjut."

Ciri Khas yang Membedakan dari Exclusive

Dua hal yang wajib diperhatikan saat membaca Parallel Gateway:

  1. Tidak ada kondisi pada flow keluar. Kalau Anda melihat label seperti "Ya"/"Tidak" pada jalur keluar Parallel Gateway, itu adalah kesalahan — Parallel tidak pernah punya kondisi, karena semua jalur pasti dijalankan.
  2. Wajib berpasangan. Setiap Parallel Split harus ditemukan pasangan Parallel Join-nya sebelum alur berlanjut ke langkah yang sama. Split tanpa join menyebabkan proses berjalan ganda saat diimplementasikan.

Kenapa Split Tanpa Join Berbahaya

Ini salah satu anti-pattern paling sering ditemukan dan paling mudah terlewat secara visual. Bayangkan versi diagram yang salah: setelah split, kedua jalur ("Siapkan Kemasan" dan "Proses Pembayaran") sama-sama mengarah langsung ke task "Kirim Notifikasi" — tanpa join.

Coba terjemahkan dengan Reading Grammar:

"Setelah Siapkan Kemasan, maka Kirim Notifikasi." "Setelah Proses Pembayaran, maka Kirim Notifikasi."

Dua kalimat terpisah untuk task yang sama — ini sinyal bahwa "Kirim Notifikasi" akan dieksekusi dua kali kalau diagram ini diimplementasikan di mesin BPMS. Reading Grammar langsung membongkar masalah ini tanpa perlu menjalankan sistemnya dulu.

:::tip Aturan pasangan split-join Prinsip ini berlaku untuk semua jenis gateway, bukan hanya Parallel: jenis split harus sama dengan jenis join (AND dengan AND, XOR dengan XOR, dst). Baca aturan lengkapnya di Aturan Penamaan & Flow Gateway. :::

Parallel Gateway Biasanya Tidak Diberi Label

Berbeda dari Exclusive yang wajib berbentuk pertanyaan, Parallel Gateway umumnya tidak perlu diberi label — karena tidak ada keputusan yang diambil, semua jalur pasti jalan. Kalau Anda menemukan Parallel Gateway berlabel pertanyaan, itu tanda diagramnya salah menggunakan jenis gateway.

Analogi Sehari-hari: Dapur Restoran

Untuk pembaca non-teknis, bayangkan pesanan satu porsi nasi goreng plus es teh masuk ke dapur restoran. Koki mulai memasak nasi goreng, dan pada saat yang sama barista menyiapkan es teh — keduanya tidak saling menunggu. Tapi pelayan baru boleh mengantar ke meja setelah keduanya selesai: nasi goreng matang saja belum cukup kalau es tehnya belum jadi.

Momen "mulai bersamaan" itu adalah Parallel Split. Momen "pelayan menunggu keduanya lengkap" itu adalah Parallel Join. Kalau pelayan mengantar nasi goreng duluan lalu balik lagi mengantar es teh (dua kali antar), itulah yang terjadi pada proses dengan split tanpa join — pekerjaan hilir berjalan dua kali.

Contoh Kedua: Onboarding Karyawan Baru

Proses onboarding sering punya tiga pekerjaan paralel setelah kontrak ditandatangani:

JalurLaneTask
1ITSiapkan Laptop dan Akun
2HRDaftarkan BPJS dan Payroll
3FacilitySiapkan Meja Kerja

Dibaca dengan Reading Grammar:

"Setelah Kontrak Ditandatangani, secara bersamaan: IT menyiapkan Laptop dan Akun, HR mendaftarkan BPJS dan Payroll, dan Facility menyiapkan Meja Kerja. Setelah ketiganya selesai, maka Karyawan Mulai Bekerja."

Kalimat terakhir hanya valid kalau ada Parallel Join sebelum task "Karyawan Mulai Bekerja". Tanpa join, karyawan akan "mulai bekerja" tiga kali di sistem — sekali setiap jalur selesai — dan HR akan bingung kenapa ada tiga notifikasi hari pertama untuk orang yang sama.

Coba Sendiri

Sebuah diagram memiliki Parallel Split menuju dua task: "Verifikasi Identitas" dan "Verifikasi Alamat". Kedua jalur bertemu di sebuah gateway sebelum lanjut ke "Aktivasi Akun" — tapi gateway pertemuannya berbentuk belah ketupat dengan tanda X (bukan +). Apa yang akan terjadi, dan bagaimana membacanya?

Lihat Jawaban

Ini anti-pattern split-join tidak simetris: Parallel Split (+) dipasangkan dengan Exclusive Join (X). Exclusive Join tidak menunggu — begitu token pertama tiba (misalnya Verifikasi Identitas selesai duluan), ia langsung meneruskan ke "Aktivasi Akun". Beberapa saat kemudian token kedua (Verifikasi Alamat) tiba, dan Exclusive Join meneruskannya lagi — "Aktivasi Akun" berjalan dua kali.

Lebih buruk lagi: akun bisa aktif padahal verifikasi alamat belum selesai. Perbaikannya: ganti join menjadi Parallel Join (+) agar menunggu kedua verifikasi tuntas.

Pertanyaan Umum

Apakah Parallel Split dan Join harus dalam jumlah jalur yang sama? Ya — setiap jalur yang dipecah oleh split harus bermuara ke join yang sama (atau berakhir eksplisit di End Event masing-masing). Jalur yang "kabur" ke tempat lain membuat join menunggu selamanya: deadlock.

Bolehkah salah satu jalur paralel punya End Event sendiri? Boleh, asalkan disengaja dan join-nya hanya menunggu jalur yang memang menuju ke sana. Tapi pola ini rawan salah baca — lebih aman semua jalur kembali ke join, kecuali ada alasan bisnis yang jelas.

Bagaimana kalau salah satu pekerjaan paralel gagal? Itu ranah exception handling — pasang boundary event pada task yang bisa gagal, dan tentukan apakah kegagalan satu jalur membatalkan jalur lain (lihat Cara Membaca Exception dan Error Handling).


Lanjut ke Cara Membaca Inclusive Gateway, atau pelajari dasar notasinya di Parallel Gateway.

Artikel Terkait

💡

Sudah memahami konsep BPMN?

Wujudkan diagram Anda menjadi workflow automation nyata tanpa coding - dengan AlurKerja, platform BPM buatan Indonesia.