UML Diagram: Panduan Lengkap untuk System Analyst
Pendahuluan
UML (Unified Modeling Language) adalah bahasa visual standar untuk memodelkan, merancang, dan mendokumentasikan sistem perangkat lunak. Bagi seorang System Analyst, UML bukan sekadar gambar — ini adalah alat komunikasi utama antara tim bisnis, developer, dan stakeholder.
Artikel ini membahas jenis-jenis UML diagram, kapan menggunakannya, dan contoh praktis yang bisa langsung diterapkan.
Kategori UML Diagram
UML diagram terbagi menjadi dua kategori besar:
1. Structural Diagram (Statis)
Menggambarkan struktur sistem — apa saja komponen dan relasinya.
- Class Diagram — Struktur class, atribut, method, dan relasi antar class
- Object Diagram — Instance spesifik dari class pada suatu waktu
- Component Diagram — Arsitektur komponen sistem dan dependensinya
- Deployment Diagram — Infrastruktur fisik dan distribusi komponen
- Package Diagram — Organisasi dan grouping elemen sistem
2. Behavioral Diagram (Dinamis)
Menggambarkan perilaku sistem — bagaimana sistem bekerja dari waktu ke waktu.
- Use Case Diagram — Interaksi aktor dengan sistem
- Sequence Diagram — Urutan pesan antar objek dalam satu skenario
- Activity Diagram — Alur proses bisnis atau logic
- State Machine Diagram — Perubahan state suatu objek
- Communication Diagram — Interaksi antar objek dengan fokus pada relasi
Kapan Menggunakan Diagram Tertentu?
Contoh: Use Case Diagram (E-Commerce)
Use Case Diagram memetakan siapa melakukan apa terhadap sistem:
flowchart LR
Customer(["👤 Customer"])
Admin(["👤 Admin"])
System["🛒 E-Commerce System"]
Customer -->|"Browse Produk"| System
Customer -->|"Tambah ke Keranjang"| System
Customer -->|"Checkout & Bayar"| System
Customer -->|"Lihat Status Order"| System
Admin -->|"Kelola Produk"| System
Admin -->|"Kelola Order"| System
Admin -->|"Lihat Laporan"| System
Contoh: Class Diagram (Order Management)
Class Diagram menunjukkan struktur data dan relasi antar entitas:
classDiagram
class User {
+int id
+String name
+String email
+String role
+login()
+register()
}
class Order {
+int orderId
+Date orderDate
+String status
+float totalAmount
+createOrder()
+cancelOrder()
}
class OrderItem {
+int itemId
+int quantity
+float unitPrice
+getSubtotal()
}
class Product {
+int productId
+String name
+float price
+int stock
+updateStock()
}
class Payment {
+int paymentId
+String method
+float amount
+String status
+processPayment()
+refund()
}
User "1" --> "*" Order : places
Order "1" --> "*" OrderItem : contains
OrderItem "*" --> "1" Product : references
Order "1" --> "1" Payment : has
Contoh: Sequence Diagram (Checkout Flow)
Sequence Diagram menunjukkan urutan interaksi antar komponen saat checkout:
sequenceDiagram
participant U as User
participant FE as Frontend
participant API as API Server
participant DB as Database
participant PG as Payment Gateway
U->>FE: Klik "Checkout"
FE->>API: POST /api/orders
API->>DB: Validate stock & create order
DB-->>API: Order created (orderId: 456)
API-->>FE: Order summary + payment URL
FE->>U: Tampilkan halaman pembayaran
U->>FE: Pilih metode & konfirmasi
FE->>API: POST /api/payments
API->>PG: Create payment request
PG-->>API: Payment token
API-->>FE: Redirect to payment page
PG->>API: Webhook: payment success
API->>DB: UPDATE order status = "paid"
DB-->>API: Updated
API->>FE: Push notification: order confirmed
FE->>U: Tampilkan konfirmasi order
Contoh: Activity Diagram (Order Processing)
Activity Diagram memetakan alur proses bisnis dari awal hingga akhir:
flowchart TD
Start(["Order Masuk"]) --> Validate{"Validasi Stock"}
Validate -->|Stock tersedia| Process["Proses Order"]
Validate -->|Stock habis| Notify["Notifikasi: Out of Stock"]
Notify --> Cancel["Cancel Order"]
Cancel --> End(["Selesai"])
Process --> Payment{"Pembayaran"}
Payment -->|Berhasil| Packing["Packing & Shipping"]
Payment -->|Gagal / Timeout| Retry{"Retry?"}
Retry -->|Ya| Payment
Retry -->|Tidak| Cancel
Packing --> Deliver["Dalam Pengiriman"]
Deliver --> Received{"Diterima?"}
Received -->|Ya| Complete["Order Complete"]
Received -->|Tidak / Retur| Return["Proses Retur"]
Return --> End
Complete --> End
style Complete fill:#4CAF50,color:#fff
style Cancel fill:#F44336,color:#fff
Contoh: State Machine Diagram (Order Status)
State Machine Diagram menggambarkan lifecycle sebuah order:
stateDiagram-v2
[*] --> Pending : Order dibuat
Pending --> Confirmed : Pembayaran berhasil
Pending --> Cancelled : Timeout / user cancel
Confirmed --> Processing : Admin proses
Processing --> Shipped : Barang dikirim
Shipped --> Delivered : Sampai tujuan
Delivered --> Completed : User konfirmasi
Delivered --> Returned : User ajukan retur
Returned --> Refunded : Retur disetujui
Cancelled --> [*]
Completed --> [*]
Refunded --> [*]
Decision Tree: Memilih UML Diagram
flowchart TD
Start(["Apa yang ingin dimodelkan?"]) --> Q1{"Struktur atau Perilaku?"}
Q1 -->|Struktur| Q2{"Level detail?"}
Q2 -->|"Data & relasi entitas"| A1["Class Diagram"]
Q2 -->|"Arsitektur komponen"| A2["Component Diagram"]
Q2 -->|"Infrastruktur deploy"| A3["Deployment Diagram"]
Q1 -->|Perilaku| Q3{"Fokus pada?"}
Q3 -->|"Siapa melakukan apa"| B1["Use Case Diagram"]
Q3 -->|"Urutan interaksi detail"| B2["Sequence Diagram"]
Q3 -->|"Alur proses / workflow"| B3["Activity Diagram"]
Q3 -->|"Lifecycle satu objek"| B4["State Machine Diagram"]
style A1 fill:#2196F3,color:#fff
style A2 fill:#2196F3,color:#fff
style A3 fill:#2196F3,color:#fff
style B1 fill:#E040FB,color:#fff
style B2 fill:#E040FB,color:#fff
style B3 fill:#E040FB,color:#fff
style B4 fill:#E040FB,color:#fff
Tips UML untuk System Analyst
- Fase requirement → Mulai dari Use Case + Activity Diagram
- Fase design → Tambahkan Class + Sequence Diagram
- Fase handoff → Lengkapi dengan Component/Deployment jika diperlukan
- Gunakan tools seperti Mermaid, draw.io, atau PlantUML untuk mempercepat pembuatan
- Iterasi — Diagram akan berubah seiring pemahaman bertambah, jangan tunggu sempurna
Kesimpulan
UML Diagram adalah skill fundamental bagi System Analyst. Memahami kapan dan bagaimana menggunakan setiap jenis diagram mempercepat komunikasi, mengurangi miskomunikasi, dan menghasilkan dokumentasi sistem yang terstruktur.
Kunci utamanya: pilih diagram yang tepat untuk konteks yang tepat, bukan menggunakan semua diagram sekaligus.
Ditulis oleh Dadang Kriswanto — System Analyst & Blogger di dadang.kriswanto.my.id
test test