Memakai Events Di BPMN


Setiap bisnis memiliki proses bisnis (business process) yang terdiri atas rangkaian aktifitas untuk menghasilkan layanan atau produk bagi pelanggannya.  Bisnis yang berbeda dalam industri yang sama dapat memiliki proses bisnis yang berbeda karena mereka akan melakukan optimalisasi proses bisnis agar dapat bertahan dalam persaingan.   Saat akan membuat sistem (software) untuk bisnis, developer melakukan apa yang disebut sebagai otomatisasi proses bisnis (business process automation).  Tentunya agar dapat melakukan otomatisasi, developer harus memahami proses bisnis yang hendak diotomatiskan.  Pihak yang paling memahami proses bisnis adalah pihak yang menjalankan proses bisnis (seperti stakeholder dan manajernya).  Komunikasi yang baik antara developer dan pelaku proses bisnis  berperan penting dalam menghasilkan sistem yang sesuai dengan keinginan.  Salah satu cara untuk memperlancar komunikasi adalah dengan menuangkannya dalam bentuk diagram.

Proses bisnis dapat digambarkan dengan diagram seperti flowchart atau UML Activity Diagram.  Alternatif lainnya adalah dengan menggunakan BPMN (Business Process Model And Notation).  BPMN adalah notasi diagram yang sengaja dikembangkan khusus untuk menggambarkan proses bisnis.  BPMN cenderung lebih mudah dipahami oleh awam bila dibandingkan dengan UML Activity Diagram.  Sebagai contoh, saya akan mencoba menunjukkan sebuah elemen dalam BPMN yang tidak ditemukan di UML Activity Diagram yang disebut sebagai event.

Berdasarkan referensi dari spesifikasi BPMN 2.0 (yang dapat dibaca di www.omg.org/spec/BPMN/2.0/‎), sebuah event adalah sesuatu yang mungkin “terjadi” selama menjalankan proses.  Spesifikasi BPMN memakai istilah throw dan catch untuk menggambarkan perilaku event.  Sebuah event memicu suatu kejadian (throw) atau menunggu hingga kejadian tertentu terjadi (catch).

Sebagai contoh, saya akan membuat diagram BPMN dari proses bisnis untuk sebuah toko reparasi komputer:

Setelah komputer rusak diterima, teknisi akan memeriksa apakah komputer tersebut dapat diperbaiki atau tidak.   Bila tidak, teknisi akan menghubungi pelanggan untuk memberi tahu bahwa perbaikan tidak dapat dilakukan.   Proses perbaikan komputer meliputi perbaikan hardware, konfigurasi software, atau keduanya.   Setelah proses perbaikan, komputer akan diuji secara otomatis.   Bila selama pengujian ditemukan kesalahan, proses perbaikan perlu diulangi kembali.    Komputer kemudian dikembalikan ke pelanggan melalui jasa pengiriman.   Sebuah faktur juga dikirim ke pelanggan pada saat bersamaan.   Pelanggan kemudian membayar berdasarkan jumlah yang tertera di faktur.

Hasilnya akan terlihat seperti pada gambar berikut ini:

Gambar 1 - Proses Bisnis Toko Reparasi Komputer

Gambar 1 – Proses Bisnis Toko Reparasi Komputer

Pada BPMN, terdapat tiga jenis event, yaitu start event, end event dan intermediate event

Sebuah start event menunjukkan kapan proses akan dimulai.  Pada Gambar 1, start event menunjukkan bahwa proses akan dimulai saat komputer rusak diterima.  Sebaliknya, sebuah end event menunjukkan akhir dari sebuah proses.

Sebuah intermediate event dapat muncul selama alur eksekusi.  Bila intermediate event tersebut tidak berisi (tidak berwarna hitam), maka ia mewakili sebuah catch event yang akan menunggu hingga trigger terjadi.  Sebaliknya bila intermediate event tersebut berisi (berwarna hitam), maka ia mewakili sebuah throw event yang menunjukkan bahwa trigger telah terjadi.  Sebagai contoh, pada Gambar 1, terdapat sebuah catch intermediate event yang terlihat seperti berikut ini:

Contoh intermediate event

Contoh intermediate event

Gambar di atas menunjukkan bahwa setelah faktur dikirim ke pelanggan, maka proses akan menunggu hingga pembayaran diterima.  Sebelum pembayaran diterima, proses tidak akan lanjut ke langkah berikutnya.  Ini adalah salah satu contoh dimana BPMN terlihat lebih sederhana: bila memakai UML Activity Diagram, saya harus menggunakan gateway untuk menggambarkan kondisi ini.

Sebuah intermediate event juga dapat diletakkan dalam activity.  Event seperti ini disebuah intermediate boundary event.  Sebagai contoh, pada Gambar 1 terdapat intermediate boundary event seperti berikut ini:

Contoh intermediate boundary event

Contoh intermediate boundary event

Gambar di atas menunjukkan alur eksekusi yang akan ditempuh bila terjadi kesalahan (yang diwakili oleh intermediate boundary event bertipe error) selama mengerjakan aktifitas pengujian hasil perbaikan.

Sampai disini, saya sudah memakai dua jenis penanda event yaitu message dan error.  BPMN menyediakan masih banyak lagi jenis penanda event lainnya.  Penjelasan lebih lengkap dapat dijumpai di spesifikasi BPMN.  Sebagai referensi, saya akan mengutip tabel 10.93 dari spesifikasi BPMN 2.0 yang berisi daftar seluruh penanda event yang ada:

Daftar Jenis Event (Diambil Dari Spesifikasi BPMN 2.0)

Daftar Jenis Event (Diambil Dari Spesifikasi BPMN 2.0)

Saya menjumpai bahwa selain message dan error, saya cukup sering menggunakan event berjenis timer, seperti yang terlihat pada gambar berikut ini:

Contoh Penggunaan Event Timer

Contoh Penggunaan Event Timer

Gambar di atas menunjukkan sebuah proses yang akan selalu dikerjakan setiap hari Minggu pada jam 16:00.

Event escalation yang baru diperkenalkan di BPMN 2.0 dapat dipakai untuk menunjukkan eskalasi atau menghubungi pihak yang lebih tinggi (lebih berkepentingan).  Contoh penggunaan event escalation dapat dijumpai diagram yang dikutip dari katalog contoh BPMN (http://www.omg.org/cgi-bin/doc?dtc/10-06-02):

Contoh Event Escalation

Contoh Event Escalation

Condition event dapat dipakai untuk event yang di-throw atau men-catch kondisi tertentu.  Kondisi haruslah sesuatu yang pasti dan dapat dievaluasi.  Sebagai contoh, diagram berikut ini memakai condition event sebagai startup event:

Contoh Condition Event

Contoh Condition Event

Perihal Solid Snake
I'm nothing...

3 Responses to Memakai Events Di BPMN

  1. osha1990 mengatakan:

    Sangat bermanfaat sekali artikel ini.
    mau tanya itu contoh bpmn membuat pakai software apa y?
    thx

  2. Collapse Inc mengatakan:

    saya masih kurang paham dengan escalation, maksudnya jabatan yang lebih tinggi itu ” jabatan pekerjaan”?
    dan benarkah jika proses start bisa langsung menggunakan intruption semisalkan seperti order received?

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: