Menggunakan Activity Diagram dan Contoh Activity Diagram


 

Saat kita melakukan analisa sebuah proses bisnis perusahaan, di dalamnya akan ada sebuah aktifitas yang melibatkan beberapa divisi. Aktifitas-aktifitas ini bisa sangat membingungkan karena setiap aktifitas bisa mempunyai banyak syarat dan aturan. Sebuah model berbasis objek yang disebut activity diagram digunakan untuk membantu kita memodelkan dan fokus aktifitas seorang actor/user dari awal hingga akhir dan berfokus pada sebuah aktifitas actor atau user tersebut saja. 

Namun, sedikit peringatan bagi kita semua yang menggambarkan activity diagram. Pertama, activity diagram ini diambil dari hasil fact finding yang kemudian direkomendasikan untuk menggambar use case agar kita bisa fokus menggambar activity diagram sesuai use case atau object yang ada dalam sistem. Peringatan yang akan selalu diingatkan bagi kita semua adalah :

Pertama, Jangan perfeksionis, namun jadilah realistis. Hal ini bermaksud 2 hal, ketika kita menganalisa sistem sebuah perusahaan maka akan ada hal-hal yang tidak sesuai dengan harapan kita atau hal yang standar sesuai yang harusnya terjadi. Hal ini dikarenakan banyak faktor yang kita mungkin tidak tahu, sehingga jangan mengejar kesempurnaan dan memaksakannya. Hal kedua adalah saat melakukan analisa kita tidak bisa menuntut analisa tersebut harus selesai dalam sekali analisa. Karena user/actor saat diwawancarai belum tentu mengingat semua aktifitas mereka dan akan ada banyak kasus-kasus khusus yang memerlukan penanganan khusus juga, di mana bila hal ini banyak macamnya, kita tidak mungkin menggambarkan semuanya dalam sebuah activity diagram

Kedua, dapatkan informasi dari sumber yang terpercaya. Carilah seseorang yang dipercaya oleh perusahaan dan sudah berpengalaman banyak untuk menjelaskan aktifitasnya padamu. Kemudian pastikan kamu tidak memperoleh informasi ini dari 1 orang saja. Lakukan konfirmasi dalam wawancara terpisah dengan orang lain dari divisi sama yang memiliki pekerjaan serupa.

Ketiga, semua model dalam object oriented bersifat kolaboratif. Sehingga tidak mungkin ada model yang berdiri sendiri. Maka dari itu di awal saya tulis bahwa activity diagram digambar sesuai use case. Tujuannya adalah agar fokus proyek ini tidak melebar ke mana-mana atau masuk ke dalam sebuah detil yang sebenarnya tidak signifikan atau tidak penting bagi perusahaan. 

Keempat, fokus pada proses bisnis yang spesifik dan lakukan analisa secara berulang, seperti yang disarankan pada peringatan kedua. Jangan melihat proses secara global, namun lakukan analisa dengan fokus pada 1 proses terlebih dahulu. Hal inilah yang akan jadi fokus utama pada activity diagram

Kelima, proses bisnis adalah sebuah realita yang abstrak. Seperti yang diperingatkan pada peringatan pertama dan ketiga, lakukan secara realistis saja dan jangan kejar harus sempurna sehingga kita masuk ke sebuah detil yang tidak signifikan. Karena akan ada banyak kasus khusus, yang tidak bisa kita telusuri satu per satu.

Elemen dari Activity Diagram

Sebuah activity diagram akan dimulai dengan notasi/simbol start yang dilambangkan dengan sebuah lingkaran hitam.

Lingkaran ini akan digunakan sebagai tanda dimulainya sebuah activity atau aktifitas dari seorang actor. Sehingga perlu diketahui siapa yang membuat sebuah aktifitas dimulai.

Kemudian ada 2 macam flow/garis di dalam activity diagram, Control Flow dan Object Flow.

Control Flow digambarkan dengan sebuah garis panah lurus. Dalam activity kita akan lebih banyak menggunakan control flow. Control flow digunakan untuk memodelkan alur eksekusi sebuah aktifitas di dalam proses bisnis. 
 
Object Flow digambarkan dengan sebuah garis panah dengan garis putus-putus. Object Flow ini digunakan untuk menggambarkan pergerakan sebuah objek dalam aktifitas yang dimiliki. Bedanya apa dengan sebuah Control Flow? Untuk menjelaskan bedanya kita pakai kasus sederhana.

Dalam sebuah klinik, saat kita ingin bertemu dengan dokter maka kita akan mendaftar dan data kita sebagai pasien akan diambil oleh pegawai, pegawai akan mengkonfirmasi pada kita mengenai data pasien yang dia ambil apakah benar miliki kita, bila benar maka akan dicek apakah ada perubahan data, kemudian kita disuruh melakukan pembayaran untuk jasa dokter dan setelah terbayar maka data pasien diberikan pada dokter.

Di sini kita akan menggambarkan activity pegawai dengan Control Flow sedangkan data pasien akan digambarkan menggunakan object flow.

Kemudian dalam sebuah aktifitas akan ada keputusan(Decision Node). Contohnya saat data pasien diambil dan jika data tersebut dikonfirmasi salah oleh pasien maka aktifitas selanjutnya dari pegawai adalah kembali mencari dan mengambil data yang benar. Maka untuk kasus seperti ini kita akan gunakan decision node.

Decision Node

Sebuah decision node dimulai dari control flow yang masuk ke dalam simbol wajik/diamond kemudian mengeluarkan sebuah panah control flow dengan sebuah tulisan kriteria di atas tanda panah tersebut.  Jadi di dalam kasus pasien yang diceritakan bila data benar maka akan melanjutkan ke aktifitas lain ini adalah kriteria pertama dan bila data pasien salah maka akan kembali ke aktiftas sebelumnya. Panah dari decision node ini bisa berakhir ke control flow sebelumnya juga.

Decision node bisa kembali ke flow sebelumnya atau activity sebelumnya

Berikutnya meskipun kedua jalur dari decision ini mengarah pada dua aktifitas yang berbeda pada akhirnya, ada kemungkinan mereka menjadi 1 aktifitas lagi. Untuk mengatasi hal ini kita bisa menggunakan sebuah merge node. Di mana panah dari decision kembali masuk ke dalam simbol wajik kemudian mengeluarkan hanya 1 panah saja.

Merge Node

Kemudian akan ada sebuah aktifitas yang harus dilakukan di saat bersamaan, misalkan setelah menerima pesanan dari customer maka aktifitas selanjutnya adalah membagi pesanan sesuai kategori dan mengirimkan pesanan makanan ke dapur sedangkan pesanan minuman ke barista. Kedua aktifitas ini dilakukan secara bersama-sama bukan secara urut. Untuk itu Activity Diagram juga memiliki Fork dan Join node yang dapat digunakan untuk menggambarkan kasus ini.

Fork dan Join adalah sebuah notasi yang bersifat sepasang, di mana saat kamu menggunakan fork, maka notasi join juga harus digambarkan.

fork node

Fork digambarkan dengan sebuah panah yang masuk menuju sebuah garis lalu terbagi menjadi 2 garis panah. Fork menandakan ada 2 macam aktifitas yang dikerjakan di saat yang bersamaan(paralel). Maka biasanya akan ada 2 actor berbeda yang mengerjakannya. Karena tidak masuk akal apabila seseorang mengerjakan dua aktifitas secara bersamaan, dia pasti akan mengerjakan secara urut.

Kemudian ada saat pengerjaan paralel ini berhenti, ketika pengerjaan ini berhenti maka kita akan menggunakan join node untuk menggabungkan kedua flow ini. Perlu diingat bahwa dalam activity diagram, kita hanya menggambarkan aktifitas utama yang berhubungan dengan objek yang dibahas. Misal dalam pemesanan makanan oleh customer tadi maka aktifitas yang kita gambar adalah membuat makanan dan minuman, masalah aktifitas mengecek bahan baku, melakukan pembelian bahan, memilih juru masak memang penting namun itu bukan aktifitas utama yang dibahas dalam activity diagram, sehingga tidak perlu digambar hingga sedetil itu. Pada bagian contoh penggunaan activity diagram akan lebih jelas dari maksud saya.

Join Node digambarkan dengan panah dari 2 control flow masuk ke dalam sebuah garis dan menjadi 1 control flow. Sekali lagi, maksud dari notasi/simbol ini adalah akhir dari aktifitas paralel atau pekerjaan yang dilakukan bersamaan oleh 2 actor/user/orang dan berfokus menjadi aktifitas yang dilakukan oleh 1 orang saja. Hal ini sering terjadi di dalam sebuah bisnis, karena sebuah divisi tidak mungkin akan berjalan sendiri dalam semua prosesnya. Akan ada sebuah aktifitas yang memerlukan partisipasi dari actor lain atau divisi lain.

Kemudian sebuah activity diagram memiliki 2 cara dalam mengakhiri sebuah aktifitas. Pertama adalah final-activity node yang digunakan sebagai tanda akhir dari semua aktifitas yang ada. Kedua adalah final-flow node yang digunakan untuk menandakan akhir aktifitas tertentu secara spesifik.

Final-activity node digambarkan dengan sebuah lingkaran dan ada sebuah bulatan hitam di dalamnya. Node ini berada di posisi paling akhir dari sebuah activity, gunanya adalah sebagai tanda bahwa seluruh kegiatan yang dijalankan telah berakhir.



Final flow node digambarkan dengan sebuah lingkaran dan ada tanda silang didalamnya. Node ini digunakan apabila sebuah control flow berhenti dan tidak dilanjutkan lagi.

Kapan final-flow node digunakan? Saat sebuah flow berakhir tapi tidak sesuai dengan aktifitas seharusnya. Contoh, dalam sebuah transaksi. Aktifitas yang normal adalah customer membeli, bawa ke kasir kemudian membayar, setelah itu kasir akan menaruh dalam kantong plastik dan memberikan nota pembayaran. Tetapi, di sana ada sebuah aktifitas yang di luar normal misalkan, customer ternyata tidak memiliki saldo yang cukup untuk membayar. Maka aktifitas berhenti saat itu juga. Saat aktifitas ini berhenti maka kita gunakan sebuah final-flow node, karena perhentian ini adalah perhentian yang di luar dugaan atau di luar aktifitas seharusnya.

Kemudian ada swimlane yang digunakan untuk memperjelas pemilik aktifitas atau siapa yg melakukakan aktifitas tersebut


Membuat Activity Diagram

Untuk membuat activity diagram, kita harus memilih sebuah proses bisnis terlebih dahulu. Saran saya, pilih salah dari use case yang sudah anda bangun.


Misalkan seorang actor memiliki 4 buah case, maka kita pilih salah satu terlebih dahulu dan buat activity diagram dari sana. dalam kasus ini saya akan menggunakan case "Memasukan Pegawai baru"

Adapun rangkaian aktifitas dari manajer tersebut adalah menerima dokumen pegawai baru, melakukan pengecekan apakah dokumen yang diberikan valid atau tidak. Bila tidak valid maka dokumen akan diberik keterangan dan dikembalikan. Bila dokumen tersebut sesuai dengan standar perusahaan maka data pegawai baru tersebut akan dimasukan dalam sistem, setelah itu manajer akan melakukan print tag id pegawai dan aktifitas selesai. Maka activity diagramnya akan menjadi seperti gambar berikut



Sangat sederhana, dan dari activity ini kita bisa lihat aktifitas yang terjadi dan dapat memutuskan kira-kira problem apa yang bisa kita selesaikan dengan sistem yang akan kita bangun. Untuk kejelasan node apa saja yang dipakai silahkan lihat dari gambar berikut. Keterangan-keterangan ini saya tuliskan agar kita bisa mempelajari bentuk dan penggunaan nodenya dan pada praktiknya tidak perlu ditulis sama sekali



Untuk yang berikutnya kita akan kembali melihat use case dari manajer dan akan membahas activity merubah jadwal. Karena merubah jadwal ini terhubung dengan actor lain maka kita akan menggunakan swimlane sebagai penanda siapa yang memiliki aktifitas. Aktifitas yang dilakukan oleh manajer adalah membuka pendaftaran untuk mengubah jadwal lalu saat jadwal ini dibuka maka dia akan mengumpulkan data jadwal yang lama, dan di sisi lain pegawai bisa mengubah jadwal mereka. Bila pegawai memutuskan untuk mengubah jadwal maka mereka akan mengganti jam dan mengganti hari. Setelah itu manajer akan menyusun jadwal baru. Maka activity diagram yang digambarkan adalah seperti ini.

Activity Diagram Merubah Jadwal

Di activity diagram ini karena ada 2 orang/actor yang terlibat maka kita gunakan swimlane untuk memperjelas siapa yang melakukan sebuah activity, kemudian karena ada 2 aktifitas yang dilakukan secara bersamaan maka kita gunakan fork dan join. Setelah kedua aktifitas ini selesai barulah manajer melanjutkan aktifitasnya yakni menyusun jadwal baru.

Maka inilah dasar dari membuat activity diagram. Tidak semua node atau notasi harus dipakai, gunakan seperlunya sesuai dengan hasil fact finding yang anda temukan di lapangan. Anggaplah begini, use case diagram adalah sebuah cara pandang dari jarak jauh, sedangkan activity diagram adalah langkah-langkah pengerjaannya. Maka keduanya saling melengkapi. Ada baiknya juga dalam proses fact finding kita juga mulai menggambarkan activity diagram secara kasar dan dikonfirmasi atau dilengkapi oleh rekan dari actor yang kita wawancara.

Hubungan Use Case dan Activity Diagram

Use case digunakan untuk menggambarkan kasus atau pekerjaan yang khusus dimiliki oleh actor. Semisal dalam sebuah use case ada seorang actor yang memiliki 4 use case maka dia akan memiliki setidaknya 4 activity diagram. 

Lalu bagaimana dengan sebuah extend yang ada di dalam use case, seperti yang ada di gambar berikut

Apakah ini artinya akan ada 2 activity yakni Activity Diagram Buat Janji Temu dan Activity Diagram Melakukan Pembayaran? Belum tentu, apabila activity di dalam sangat sederhana maka ada baiknya dibuat menjadi 1 activity sederhana saja. Namun, bila ternyata activity buat janji temu dan melakukan pembayaran sangat kompleks maka ada baiknya dibuat 2. 

Bagaimana menentukan sebuah activity kompleks atau tidak? Lihatlah dari sudut pandang orang lain, coba pikirkan apakah mereka mengerti diagram dan menangkap proses bisnis dari diagram yang kita buat atau tidak. Lagipula kemudahan dimengerti adalah tujuan utama kita membuat model ini.

Komentar