Alur Kerja Sistem Berorientasi Objek - Pemodelan Perangkat Lunak
Sebelum menulis kode, programmer yang baik biasanya memetakan dulu apa yang akan dikerjakan sistemnya. Peta itu bisa berupa diagram, dan salah satu diagram paling berguna untuk menggambarkan alur kerja adalah activity diagram dari UML. Artikel ini merapikan kembali penjelasan tentang alur kerja dan activity diagram, lengkap dengan contoh dan tool modern yang bisa langsung kamu pakai.
Apa itu alur kerja
Alur kerja atau workflow adalah rangkaian langkah kerja yang dilakukan untuk menciptakan atau menambah nilai. Setiap tahap biasanya bergantung pada tahap sebelumnya, sehingga urutannya penting. Saat merancang alur kerja, ada empat pertanyaan kunci yang harus terjawab: pekerjaan apa yang dilakukan, siapa yang bertanggung jawab, kapan dikerjakan, dan apa syaratnya. Jawaban atas empat pertanyaan inilah yang nanti divisualkan menjadi diagram.
Apa itu activity diagram
Activity diagram (diagram aktivitas) adalah diagram UML yang menggambarkan aktivitas dan tindakan dalam suatu alur kerja, termasuk pilihan dan pengulangan di dalamnya. Dalam UML, diagram ini bisa menjelaskan aktivitas yang dilakukan komputer maupun alur kerja sebuah organisasi, dan fokusnya adalah menggambarkan alur kontrol secara garis besar.
Satu hal yang sering disalahpahami: activity diagram bukan menggambarkan aktivitas aktor, melainkan aktivitas yang bisa dilakukan oleh sistem. Aktor boleh muncul sebagai penanggung jawab langkah, tapi diagramnya sendiri bercerita tentang apa yang terjadi di dalam sistem.
Bedanya dengan flowchart
Sekilas activity diagram memang mirip flowchart, tapi ada satu pembeda penting: activity diagram dirancang untuk menunjukkan aliran paralel, bercabang, dan bersamaan, bukan hanya alur tunggal yang lurus. Kalau prosesmu punya dua pekerjaan yang jalan barengan lalu bertemu lagi di satu titik, flowchart biasa akan kesulitan menggambarkannya, sedangkan activity diagram punya simbol khusus untuk itu.
Tujuan activity diagram
Secara umum, activity diagram dipakai untuk beberapa keperluan berikut:
- Menggambarkan proses bisnis dan urutan aktivitas dalam sistem.
- Digunakan dalam business modeling untuk memetakan cara kerja organisasi.
- Membantu semua pihak memahami proses yang sama dengan bahasa visual yang sama.
- Menunjukkan aliran paralel, bercabang, dan bersamaan dalam satu gambar.
Simbol-simbol activity diagram
Berikut komponen utama yang perlu kamu hafal. Perhatikan gambar panduannya di bawah karena bentuk tiap simbol punya makna baku yang disepakati.
- Start point (titik awal): lingkaran hitam solid. Setiap diagram dimulai dari sini, hanya satu.
- Activity (aktivitas): kotak dengan sudut membulat. Berisi satu langkah atau proses yang dilakukan.
- Action flow (alur aksi): panah yang menghubungkan satu aktivitas ke aktivitas berikutnya, menunjukkan arah aliran.
- Decision (keputusan): belah ketupat. Dipakai saat alur bercabang berdasarkan kondisi, dengan label seperti [Ya] dan [Tidak] di tiap cabangnya.
- Synchronization, fork dan join (sinkronisasi): bar tebal horizontal atau vertikal. Fork memecah satu alur menjadi beberapa alur paralel, join menggabungkannya kembali.
- Merge event (penggabungan): belah ketupat juga, tapi fungsinya menggabungkan kembali beberapa alur tanpa sinkronisasi.
- Swimlane (jalur renang): pembagian kolom atau baris yang menunjukkan siapa penanggung jawab tiap aktivitas, misalnya kolom Pembeli, Sistem, dan Kurir.
- Final state (titik akhir): lingkaran bullseye. Menandai alur telah selesai, bisa lebih dari satu.
Contoh: swimlane pada alur login dan pengiriman
Swimlane sangat membantu saat satu proses dikerjakan banyak pihak. Pada contoh di bawah, alur login dan pengiriman barang dibagi ke tiga kolom: Pembeli mengisi data login, Sistem memverifikasi, dan Kurir mengantar paket. Kalau data tidak valid, alur kembali ke langkah isi login. Pembagian seperti ini membuat jelas siapa mengerjakan apa tanpa perlu penjelasan panjang.
Manfaat activity diagram
- Mendemonstrasikan logika sebuah algoritme secara visual.
- Menggambarkan langkah langkah dalam sebuah use case.
- Menggambarkan proses bisnis antara pengguna dan sistem.
- Menyederhanakan proses yang kompleks menjadi gambar yang mudah dibaca.
- Memodelkan elemen arsitektur perangkat lunak seperti fungsi, metode, dan operasi.
Tool modern: Mermaid dan PlantUML
Zaman sekarang kamu tidak perlu menggambar diagram manual di aplikasi desain. Ada tool berbasis teks yang mengubah tulisan menjadi diagram otomatis, cocok untuk dokumentasi yang disimpan di Git.
Mermaid adalah yang paling populer karena terintegrasi langsung di GitHub, GitLab, dan banyak editor Markdown. Kamu cukup menulis sintaks seperti ini di blok kode bertanda mermaid:
stateDiagram-v2
[*] --> PilihBarang
PilihBarang --> CekStok
state CekStok <<choice>>
CekStok --> Bayar : Stok ada
CekStok --> BeriTahu : Stok habis
Bayar --> [*]
BeriTahu --> [*]
Alternatifnya, PlantUML memakai sintaks yang lebih mirip pseudocode dan sangat ekspresif untuk activity diagram:
@startuml
start
:Pilih Barang;
if (Stok tersedia?) then (Ya)
:Proses Pembayaran;
:Kirim Barang;
else (Tidak)
:Beri Tahu Pembeli;
endif
stop
@enduml
Kedua tool ini gratis dan hasilnya bisa diunduh sebagai gambar. Untuk kebutuhan cepat, Mermaid biasanya cukup. Untuk diagram UML yang lebih formal dan lengkap, PlantUML pilihannya.
Kapan activity diagram paling berguna
Tidak semua proses butuh digambar. Activity diagram paling bersinar saat kamu menghadapi alur yang bercabang atau melibatkan banyak pihak, misalnya alur checkout e-commerce, proses pendaftaran dengan verifikasi, atau alur persetujuan berjenjang. Sebaliknya, untuk alur lurus yang hanya tiga langkah tanpa percabangan, menuliskannya sebagai daftar biasa justru lebih cepat dan sama jelasnya. Aturan praktisnya: kalau kamu mulai bingung menjelaskan alur dengan kata-kata, saat itulah diagram layak dibuat.
Penutup
Activity diagram adalah cara paling ringkas untuk menjawab pertanyaan bagaimana sistem bekerja dari awal sampai akhir. Hafalkan simbolnya, pahami bedanya dengan flowchart, dan biasakan menggambar alur sebelum menulis kode. Kebiasaan kecil ini menghemat banyak waktu debugging di kemudian hari, karena kesalahan logika jauh lebih murah diperbaiki di atas kertas daripada di dalam kode yang sudah jadi.
Gabung dalam percakapan