Use Case & Activity Diagram
Dalam proses pengembangan perangkat lunak, ada yang dinamakan dengan UML kepanjangannya Unified Modelling Language, nah dimana UML ini, merupakan bahasa yang memudahkan kita untuk menjelaskan bagaimana sistem yang akan kita buat. Jadi, ibarat kalau kita mau menjelaskan sistem kita, UML inilah digunakan untuk memudahkan atau menjelaskan gambaran besarnya tidak harus mendetail, tapi semua udah mencakup disini, jadi, UML ini dia lebih ke gambar atau diagram. UML (Unified Modeling Language) dimulai oleh Grady Booch, Ivar Jacobson, dan James Rumbaugh di Rational Software pada 1994–1995. Kenapa ada UML ini? UML ini sangat penting dalam proses pengembangan perangkat lunak, karena untuk menciptakan sistem yang baik dan sesuai kebutuhan, harus perlu rancangan atau pemodelan yang sesuai, jadi dibutuhkanlah ini untuk menggambarkan sistem kita, istilahnya ini lebih ke cara gampang untuk menjelaskan sistem kita ke klien atau stakeholder lainnya di proses kita. Selain itu, UML ini juga membantu kita menemukan kesalahan sebelum terjadi kesalahan besar di sistem kita, ini juga bisa jadi dokumentasi penting untuk sistem kita. UML ini lahir karena kebutuhan untuk membuat model atau rancangan sistem perangkat lunak yang kompleks agar mudah dipahami, dirancang, dan dipelihara.
Dalam proyek besar, struktur dan desain sistem yang baik mengurangi kesalahan, meningkatkan efisiensi, dan mempermudah perawatan di masa depan. Kalimat simpelnya, UML adalah bahasa gambar untuk otak programmer.
Nah, dalam UML ini adalah beberapa jenis diagram yang memudahkan kita untuk menggambarkan atau menjelaskan sistem kita, tapi yang akan saya bahas disini lebih ke Use Case Diagram dan Activity Diagram.
Pertama, Use Case Diagram. Use Case Diagram ini salah satu jenis UML yang lebih menggambarkan atau memodelkan kebutuhan fungsional pada suatu sistem. Dalam kehidupan kita, pasti kita pernah mempunyai ide yang masuk akal di kepala kita, tapi saat kita mencoba menjelaskannya kepada orang lain, orang itu malah bingung. Contohnya, saat kita punya ide untuk membuat dekorasi sebuah ruangan, dimana peletakan dan penggunaan fasilitas-fasilitas di ruangan itu, di kepala kita sudah ada desain dan ide yang bagus, saat kita jelaskan kepada orang dan kita suruh membuat sesuai yang kita jelaskan mereka malah bingung karena isi kepala kita dengan mereka tidak sesuai. Dalam hal seperti inilah, Use Case Diagram dibutuhkan.
Jadi, Use Case Diagram inilah yang menjelaskan interaksi antara pengguna dengan sistem dan respons sistem terhadap aksi pengguna. Use Case Diagram ini, menjelaskan gimana rangkaian interaksi antara pengguna dan sistem yang nantinya membantu pengguna untuk mencapai tujuan dari sistem yang mau dipakai. Dengan kata lain ini adalah model visual yang menggambarkan interaksi antara aktor eksternal dan sistem yang akan dibangun, serta fungsi-utama sistem dari sudut pandang pengguna.
Sebelum masuk ke contoh, kita perlu mengetahui bahwa di dalam Use Case Diagram, ada beberapa elemen penting :
1. Aktor ; ini merupakan individu, kelompok, atau sistem eksternal yang akan menggunakan atau berinterksi dengan sistem yang dibuat. Aktor bertindak di luar sistem tapi berkomunikasi dengan sistem untuk mencapai tujuan tertentu.
2. Use Case ; ini merupakan representasi dari fungsi atau layanan yag disediakan sistem untuk aktor, ini menggambarkan gimana aktor mencapai tujuannya dengan bantuan sistem.
3. System ; dalam UCD ini digambarkan sebagai batas sistem yang memisahkan sistem dari aktor-aktor eksternal, semua use case yang relevan berada di dalam batas ini.
Selain itu, ada beberapa jenis relasi didalamnya, seperti :
1. Association ; menggambarkan interaksi antara aktor dan use case, dibuat dalam bentuk garis lurus antara aktor dan use case.
2. Include ; menunjukkan bahwa use case selalu melibatkan use case lain dalam prosesnya.
3. Extend ; menggambarkan alur tambahan yang dimana ini digunakan untuk skenario yang tidak selalu terjadi
4. Generalization ; menggambarkan relasi umum spesifik antara use case atau antara aktor, yang memungkinkan beberapa use case atau aktor berbagi karateristik yang sama tapi dengan tindakan yang spesifik.
Untuk memahami lebih lanjut mengenai Use Case Diagram, saya membuat contoh mengenai hal yang sederhana, dimana kita membayangkan merencanakan akan membuat sebuah kafe baru yang dimana ada sistem Aplikasi Pemesanan Kopi Online, dimana aktor-aktor yang terlibat yaitu Pelanggan (yang pesan kopi), Barista (yang membuat kopi), dan Kasir (yang mencatat pembayaran). Use Case dalam contoh ini seperti Melihat menu, memesan kopi, membuat kopi, dan melakuakan pembayaran. Adapun system boundary nya yaitu Aplikasi Pemesanan Kopi Online. Sehingga bisa kita lihat relasinya :
- Association ; Pelanggan → “Melihat Menu” , Pelanggan → “Memesan Kopi” , Pelanggan → “Melakukan Pembayaran”, Barista → “Membuat Kopi” .
- Include ; “Memesan Kopi” include “Melakukan Pembayaran” (karena setiap kali memesan kopi pasti membayar)
- Extend ; “Melakukan Pembayaran” extend “Gunakan Voucher Diskon” (fitur ini cuman muncul kalau pelanggan punya voucher diskon)
- Generalization ; Aktor “Pelanggan” bisa dibagi dua: → “Pelanggan Terdaftar” dan “Pelanggan Tamu” (yang terdaftar bisa menyimpan riwayat pesanan, yang tamu tidak)
Jadi kalau digambarkan dalam diagram akan seperti ini :
Jadi, secara keseluruhan bisa kita simpulkan Use Case Diagram adalah cara visual untuk menjelaskan apa yang bisa dilakukan pengguna terhadap sistem dan bagaimana sistem merespons. Fokusnya bukan pada bagaimana sistem bekerja di dalam, tapi apa yang dilakukan sistem dari sudut pandang pengguna. Elemen-elemennya (aktor, use case, relasi) membantu mengorganisasi kebutuhan fungsional sistem dengan jelas dan mudah dipahami.
Yang menjadi pembahasan saya selanjutnya adalah Activity Diagram. Activity Diagram juga merupakan jenis UML. Pada Activity Diagram ini menjelaskan atau memodelkan proses yang terjadi pada sistemnya dimana runtutan prosesnya digambarkan secara vertikal. Acitivty ini pengembangan dari Use Case Diagram yang punya alur aktivitas, jadi memodelkan aliran dari satu aktivitas ke aktivitas lainnya. Activity Diagram menggambarkan alur dari awal, langkah-langkah, keputusan, hingga titik akhir. Activity Diagram digunakan untuk menggambarkan bagaimana sistem berjalan langkah demi langkah termasuk urutan aktivitas, percabangan keputusan, dan aktivitas yang bisa berjalan bersamaan.
Activity Diagram menjelaskan bagaimana aktivitas dikoordinasikan untuk menyediakan layanan yang dapat berada pada berbagai tingkat abstraksi dan cocok untuk memodelkan bagaimana kumpulan Use Case berkoordinasi untuk mempresentasekan alur kerja bisnis. Diagram ini juga perlu digunakan untuk menganalisis diagram use case dengan cara mendeskripsikan aktor, tindakan yang perlu dilakukan, dan kapan proses harus terjadi. Dengan kata lain jika use case diagram menjawab “apa yang sistem lakukan”, maka activity diagram lebih menjawab “bagaimana sistem melakukannya”.
Tujuan dari Activity Diagram dibuat untuk :
- Menjelaskan alur aktivitas atau proses dalam sistem
- Menunjukkan keputusan dan percabangan logika
- Memvisualisasikan proses yang kompleks supaya mudah dipahami
- Menganalisis efisiensi dan menemukan potensi masalah atau bottleneck
- Menghubungkan tahap analisis kebutuhan dengan desain sistem
Get debo_angelica’s stories in your inbox
Join Medium for free to get updates from this writer.
Serupa dengan Use Case Diagram, pada Activity Diagram juga terdapat beberapa elemen penting di dalamnya :
1. Action ; ini adalah unit terkecil dari aktivitas yang tidak dapat dipecah lagi. Action mewakili satu langkah atau tugas dalam alur kerja sistem. Action digunakan untuk menggambarkan langkah-langkah individual dalam proses yang lebih besar. Digambarkan dengan kotak persegi yang di isi deskripsi singkat tentang aksi tersebut.
2. Activity ; kumpulan dari aksi aksi yang saling berhubungan dan berkontribusi pada tujuan tertentu dalam suatu proses. Disini digambarkan proses yang lebih kompleks. Digambarkan dengan kotak besar yang berisi aksi lainnya.
3. Control Flow ; menunjukkan urutan eksekusi antar aksi dalam diagram, dimana dibuat untuk menunjukkan arah proses atau urutan langkah-langkah. Digambarkan dengan panah satu arah yang menghubungkan ke aksi lainnya.
4. Initial Node ; menunjukkan titik awal dari aktivitas dalam diagram aktivitas supaya jelas tempat proses dimulai, biasanya cuman ada satu initial node dalam satu activity diagram, digambarkan dengan lingkaran hitam kecil yang dibuat di sudut kiri atas diagram.
5. Final Activity Node ; menandakan titik akhir dari semua aliran pada aktivitas. Digambarkan sebagai lingkaran hitam yang dikelilingi lingkaran putih.
6. Object Node ; elemen yang mewakili objek yang mengalir melalui aktivitas. Ini memungkinkan kita melacak status perubahan selama proses. Digambarkan dengan persegi panjang yang di labeli nama kelas objeknya.
7. Object Flow ; menunjukkan perpindahan objek dari satu aksi ke aksi lainnya. Ini menghubungkan Object Node dengan aksi yang membutuhkan data tersebut. Digambarkan dengan panah satu arah dari satu onject node ke aksi lainnya.
8. Decision Node ; untuk menunjukkan percabangan berdasarkan kondisi tertentu. Mengarahkan aliran proses ke jalur yang berbeda tergantung hasil dari suatu kondisi. DIgambarkan dengan bentuk berlian dan label kondisi diatasnya dengan aliran kontrol keluar yang pilihannya berbeda.
9. Merge Node ; untuk emnggabungkan kembali jalur yang terpisah pada titik tertentu. Biasanya digunakan setelah percabangan. Digambarkan dengan berlian juga tapi tanpa kondisi.
10. Fork Node ; untuk membagi aliran proses menjadi beberapa aliran yang dijalankan secara paralel. Gunanya dalam proses yang bisa berjalan bersamaan. Digambarkan dengan garis tebal yang punya satu aliran masuk dan beberapa aliran keluar.
11. Join Node ; untuk menggabungkan beberapa aliran proses paralel menjadi satu. Dipakai saat aktivitas yang berjalan paralel perlu digabungkan kembali sebelum melanjutkan ke langkah berikutnya. Digambarkan dengan garis tebal dengan beberapa aliran masuk tapi satu aliran keluar.
12. Swimlanes ; digunakan untuk membagi aktivitas berdasarkan peran atau tanggung jawab. Setiap swimlane mewakili entitas atau peran tertentu dalam proses. Ini membuat kita gampang paham siapa yang bertanggung jawab untuk setiap bagian dalam proses. Digambarkan dengan area terpisah dan judul yang menujukkan entitas atau peran dan aktivitas yang relevan ditempatkan dalam lajur tersebut.
13. Loop ; menunjukkan aktivitas yang berulang sampai kondisi tertentu tercapai. Digambarkan dengan label kondisi yang kembali ke aksi sebelumnya dengan anotasi khusus.
Untuk memahami lebih lanjut, saya menggunakan contoh Aktivitas Pesan Makanan Online Lewat Aplikasi.
- Diawali dengan Start membuka aplikasi pesan makanan secara online seperti GoFood atau GrabFood.
- Activity yang dilakukan ; Login ke Aplikasi, cari restoran, pilih menu makanan.
- Decision Node ada pilihan punya voucher atau tidak, kalau iya lanjut masukkan kode voucher, kalau tidak langsung ke pembayaran.
- Activity masukkan alamat pengantaran, pilih metode pembayaran, lalu melakukan pembayaran.
- Setelah itu ada dua aktivitas bersamaan, yaitu resto menyiapkan pesanan dan driver menuju restoran.
- Setelah itu, sistem lanjut ke tahap berikutnya
- Activity driver mengantar pesanan ke pelanggan
- Decision Node lagi dimana pesanan berhasil atau tidak diterima pelanggan, jika ya pesanan selesai, jika tidak pesanan gagal.
-Final Node proses berakhir setelah pelanggan menerima makanan.
Kalau saya gambarkan, akan menunjukkan Activity Diagram seperti ini :
Jadi, secara keseluruhan Activity Diagram itu untuk menggambarkan bagaimana proses aktivitas yang terjadi di dalam sebuah sistem.
Dalam pengembangan perangkat lunak, kedua hal ini sangatlah penting, keduanya saling melengkapi untuk menghasilkan sistem yang sesuai dengan kebutuhan, dan sistem itu bisa dipahami oleh semua stakholder.
UML, melalui Use Case Diagram dan Activity Diagram, menjadi fondasi penting dalam rekayasa perangkat lunak modern karena membantu menjembatani komunikasi antara analis sistem, pengembang, dan pengguna. Dengan pemodelan yang jelas dan terstruktur, pengembangan perangkat lunak menjadi lebih terarah, efisien, dan mudah dipelihara.






