Pendahuluan
Ikhtisar
UML 2.0 mengelompokkan diagram ke dalam dua kategori utama:
| Kategori | Tujuan |
|---|---|
| Diagram Struktural | Mencatat organisasi fisik elemen—bagaimana objek saling berhubungan |
| Diagram Perilaku | Berfokus pada bagaimana elemen berinteraksi, berubah keadaan, dan memproses perilaku seiring waktu |
💡 Prinsip Utama: Model UML terdiri dari satu atau lebih diagram. Setiap diagram mewakili suatu tampilan atau minat dalam sistem yang dimodelkan. Elemen-elemen individu sering muncul di berbagai diagram.
🔷 Diagram Struktural
Diagram struktural memodelkan arsitektur statis sistem Anda—‘apa yang’ bukan ‘bagaimana’.
1. Diagram Kelas
Tujuan: Kelas model, antarmuka, dan hubungan statis mereka.
Elemen Kunci:
-
Kelas dengan atribut dan operasi
-
Antarmuka dan hubungan realisasi
-
Asosiasi, agregasi, komposisi, dan generalisasi
-
Modifikator visibilitas (
+,-,#,~) -
Spesifikasi kelipatan (
1,0..*,1..5)
Contoh Penggunaan:Kapan Harus Digunakan:
Stereotip dan Jenis Kelas
Diagram ini menggunakan stereotip (ditandai dengan teks di dalam tanda kurung sudut, seperti <<entity>>) untuk mengkategorikan peran setiap kelas:
-
Kelas Batas (
<<batas>>): Ini menangani interaksi antara sistem dan aktor-aktornya (pengguna atau sistem eksternal). -
Contoh:
ConsoleWindowdanDialogBox. -
Kelas Kontrol (
<<kontrol>>): Ini mengelola koordinasi, transaksi, dan alur logika bisnis dari aplikasi. -
Contoh:
DrawingContextdanDataController. -
Kelas Entitas (
<<entitas>>): Ini mewakili data inti atau informasi yang tersimpan yang dilacak oleh sistem. -
Contoh:
Frame,Window,Event,Shape,Lingkaran,Persegi Panjang,Poligon, danTitik. -
Kelas Abstrak: The
Bentukkelas mewakili konsep abstrak. Ini berfungsi sebagai kerangka dasar untuk bentuk-bentuk tertentu dan tidak dapat dibuat secara langsung sendiri.
Anatomi Kelas
Kotak kelas UML standar dibagi menjadi kompartemen. Melihat Lingkaran kelas sebagai contoh:
-
Nama Kelas: Terletak di kompartemen atas (
Lingkaran). -
Atribut: Terletak di kompartemen tengah, mewakili bidang data.
-
-radius : float(Tanda minus-menunjukkan atribut pribadi). -
-center : unsigned int -
Operasi (Metode): Terletak di kompartemen bawah, mewakili perilaku atau fungsi.
-
+area(in radius : float) : double(Tanda tambah+menunjukkan metode publik). -
+circum(),+setCenter(), dan+setRadius().
Hubungan dan Tautan
Garis dan panah yang menghubungkan kelas menentukan bagaimana mereka berinteraksi dan saling tergantung satu sama lain:
Generalisasi (Pewarisan)
Ditunjukkan oleh garis padat dengan kepala panah kosong yang mengarah ke kelas induk. Ini menunjukkan hubungan ‘adalah-sebuah’ di mana kelas anak mewarisi atribut dan perilaku dari kelas induk.
-
Windowmewarisi dariFrame. -
ConsoleWindowdanDialogBoxmewarisi dariWindow. -
Lingkaran,Persegi Panjang, danPoligonmewarisi kelas abstrakBentuk(contoh, Lingkaran adalah Bentuk).
Agregasi
Ditampilkan dengan garis padat dengan berlian kosong di ujung wadah. Ini menunjukkan hubungan “memiliki” yang longgar atau hubungan seluruh-bagian di mana anak dapat ada secara mandiri dari induknya.
-
JendelamengagregasiBentuk(multiplicity1ke*). SebuahJendeladapat berisi beberapa (*) bentuk, tetapi jika jendela ditutup, bentuk-bentuk tersebut tetap dapat secara konseptual ada dalam memori atau konteks lain.
Komposisi
Ditampilkan dengan garis padat dengan berlian terisi (hitam) di ujung wadah. Ini menunjukkan hubungan “memiliki” yang kuat dengan masa hidup yang bersamaan—jika wadah dihancurkan, bagian-bagiannya juga akan dihancurkan.
-
Lingkaranterdiri dariTitikobjek (multiplicity1ke*). Sebuah lingkaran tidak dapat ada tanpa pusatnya atau titik-titik batasnya; menghancurkan lingkaran akan menghancurkan referensi titik-titik tertentu ini.
Ketergantungan
Ditunjukkan oleh sebuah panah putus-putus. Ini menunjukkan bahwa satu kelas bergantung pada kelas lain, artinya perubahan pada kelas target dapat memengaruhi kelas sumber.
-
Jendelamemiliki ketergantungan terhadapPeristiwa(ditunjukkan oleh panah putus-putus yang mengarah kePeristiwa). Jendela bergantung pada pemicu peristiwa untuk menjalankan operasi sepertihandleEvent().
Asosiasi
Ditunjukkan oleh garis padat sederhana. Ini menunjukkan hubungan struktural di mana objek-objek dari satu kelas terhubung dengan objek-objek dari kelas lain.
-
KotakDialogterasosiasi denganControllerData, artinya mereka saling berkomunikasi untuk saling bertukar informasi atau mengkoordinasikan perilaku.
Elemen Dokumentasi
-
Catatan: Diagram ini menampilkan kotak catatan dengan sudut yang terlipat yang terhubung melalui garis putus-putus ke
Jendelakelas. Ini memberikan konteks yang dapat dibaca manusia: “Jendela utama aplikasi.”

-
Merancang arsitektur perangkat lunak berorientasi objek
-
Mendokumentasikan model domain
-
Menghasilkan kerangka kode
2. Diagram Komponen
Tujuan: Menunjukkan organisasi dan ketergantungan unit implementasi.
Elemen Kunci:
-
Komponen (dilabeli sebagai
«komponen») -
Antarmuka yang disediakan/dibutuhkan (notasi bola dan soket)
-
Konektor perakitan dan hubungan ketergantungan
-
Artifak (hasil kompilasi: JAR, DLL, eksekusi)
Contoh Penggunaan:Kapan Harus Digunakan:
Komponen dan Batas Modular
Di inti diagram ini adalah konsep komponen, unit otonom dan modular dari suatu sistem yang mengemas isi internalnya dan menunjukkan perilakunya melalui antarmuka yang bersih. Batas luar yang besar mewakili keseluruhan Terminal komponen, yang berfungsi sebagai subsistem atau wadah. Di dalam wadah ini terdapat komponen internal yang lebih kecil dan khusus—yaitu InspeksiKeselamatan, Staf, Kekurangan, dan Peta. Setiap unit internal ini mewakili bagian modular perangkat lunak atau logika manajemen data yang bekerja sama untuk memenuhi tanggung jawab Terminal.
Antarmuka sebagai Kontrak
Komponen tidak mengekspos logika internalnya secara langsung; sebaliknya, mereka berinteraksi melalui antarmuka yang jelas dan terdefinisi dengan baik yang berfungsi sebagai kontrak arsitektur.
-
Antarmuka yang Disediakan: Dihubungkan dengan simbol ‘permen lollipop’ atau lingkaran, ini menunjukkan layanan, data, atau operasi yang diimplementasikan oleh suatu komponen dan ditawarkan ke lingkungannya. Sebagai contoh, komponen Terminal luar mengungkapkan antarmuka yang disediakan secara eksternal seperti Status, Rincian, dan Item Pemeriksaan, yang menunjukkan apa yang dapat diminta klien eksternal dari komponen tersebut.
-
Antarmuka yang Diperlukan: Dihubungkan dengan simbol ‘soket’ atau setengah lingkaran, ini menentukan layanan atau data yang dibutuhkan suatu komponen dari entitas lain agar dapat berfungsi dengan baik. Di sisi kanan diagram, komponen Terminal secara eksplisit mengungkapkan antarmuka yang diperlukan untuk Akun dan ID Pemeriksaan, yang menunjukkan ketergantungannya pada subsistem eksternal.
Port dan Kabel Internal
Untuk mengelola aliran data dan kontrol sambil mempertahankan enkapsulasi, sistem menggunakan port dan hubungan delegasi.
-
Port: Persegi kecil yang berada di batas komponen mewakili port. Mereka berfungsi sebagai titik interaksi yang terpisah di mana struktur internal komponen terhubung dengan dunia luar. Port memungkinkan komponen untuk memisahkan kabel internalnya dari lingkungan eksternal, artinya komponen internal dapat diganti atau dimodifikasi tanpa mengubah tampilan komponen induk terhadap dunia luar.
-
Delegasi dan Perakitan: Di dalam Terminal, garis menghubungkan antarmuka ini untuk membentuk perakitan struktural. Antarmuka yang disediakan pada port luar mendelegasikan permintaan masuk langsung ke antarmuka yang disediakan oleh komponen internal (seperti yang terlihat pada jalur Status dan Rincian yang menuju ke PemeriksaanKeselamatan). Sebaliknya, komponen internal menghubungkan antarmuka soket yang dibutuhkan secara langsung ke antarmuka permen lollipop yang disediakan oleh komponen tetangga. Sebagai contoh, komponen PemeriksaanKeselamatan bergantung pada antarmuka Pemeriksa yang disediakan oleh Staf, yaitu Rincian cacat antarmuka yang disediakan oleh Cacat, dan Lokasi antarmuka yang disediakan oleh Peta, menciptakan ekosistem internal yang terkoordinasi erat tetapi terhubung longgar.

-
Merencanakan arsitektur sistem modular
-
Mengelola ketergantungan pembuatan
-
Mendokumentasikan perpustakaan komponen yang dapat digunakan kembali
3. Diagram Struktur Komposit(Ditambahkan pada UML 2.0)
Elemen Kunci:
-
Bagian (properti dengan hubungan seluruh-bagian)
-
Port (titik interaksi dengan antarmuka yang disediakan/dibutuhkan)
-
Konektor (tautan runtime antar bagian)
-
Kejadian kolaborasi
Contoh Penggunaan: Memodelkan sebuah Mobil:
Klasifikasi yang Mengandung (Kelas)
Persegi panjang luar mewakili klasifikasi yang mengandung, dalam hal ini, Mobilkelas. Dalam diagram struktur komposit, batas ini berfungsi sebagai wadah yang mengandung konfigurasi runtime internal sistem. Ini menentukan konteks di mana instans individu bekerja sama untuk mencapai tujuan perilaku yang lebih luas, menyembunyikan kompleksitas cara kerja ‘Mobil’ secara internal dari entitas eksternal.
Bagian (Struktur Internal)
Persegi panjang internal dalam batas Mobil mewakili Bagian. Bagian menjelaskan peran yang dimainkan oleh sekumpulan instans selama eksekusi klasifikasi yang mengandungnya. Alih-alih menunjukkan hubungan statis pada waktu kompilasi (seperti diagram kelas standar), bagian-bagian ini menunjukkan instans waktu runtime yang mengisi slot arsitektur tertentu:
-
-t : Transmisi: Sebuah instans yang memainkan peran sistem transmisi. -
-e : Mesin: Sebuah instans yang memainkan peran sumber daya mesin. -
-s : Sistem Kemudi: Sebuah instans yang memainkan peran mekanisme kemudi.
Notasi titik dua menunjukkan bahwa ini adalah peran struktural yang diberi tipe oleh kelas masing-masing, yang menentukan secara tepat komponen apa saja yang harus ada di dalam Mobil yang beroperasi.
Port dan Batas
Persegi kecil yang tertanam pada batas klasifikasi luar dan batas bagian internal mewakili Port. Port adalah titik interaksi yang berbeda yang memisahkan struktur internal suatu klasifikasi dari lingkungan eksternalnya.
-
Port eksternal pada batas Mobil—seperti
: Roda,: Tuas Gas, dan: Roda Kemudi—menunjukkan bagaimana Mobil berinteraksi dengan dunia luar atau lingkungan fisik tanpa mengungkapkan bagian manabagian internal yang menangani interaksi tersebut. -
Port pada bagian internal (seperti port pada blok Transmisi atau Mesin) mengatur bagaimana sistem bawah ini berkomunikasi satu sama lain atau dengan batas induk.
Konektor dan Kabel Internal
Garis padat yang menghubungkan port satu sama lain mewakili Konektor. Konektor mendefinisikan jalur komunikasi antar bagian atau antara bagian dan port eksternal pada waktu runtime.
-
Konektor Delegasi: Menghubungkan port luar dari wadah langsung ke port dalam dari suatu bagian. Sebagai contoh, port eksternal
: Rodaport mengarah langsung ke Transmisi, dan bagian luar: Kemudimengarah langsung ke Sistem Kemudi. Ini memastikan bahwa rangsangan eksternal ditugaskan secara mulus ke aktor internal yang tepat. -
Konektor Perakitan: Menghubungkan bagian-bagian internal untuk memungkinkan kolaborasi. Konektor antara Transmisi dan Mesin menunjukkan bahwa kedua peran runtime yang berbeda ini secara langsung bertukar sinyal, data, atau gaya mekanik untuk membuat mobil berfungsi sebagai satu kesatuan yang utuh.

Kapan Harus Menggunakan:
-
Mendokumentasikan pola desain
-
Memodelkan kolaborasi internal yang kompleks
-
Menjembatani desain kelas dan implementasi komponen
4. Diagram Penempatan
Tujuan: Memetakan artefak perangkat lunak ke lingkungan eksekusi perangkat keras.
Elemen Kunci:
-
Node (perangkat, lingkungan eksekusi)
-
Artefak (unit yang dapat dideploy)
-
Jalur komunikasi antar node
-
Spesifikasi penempatan (rincian konfigurasi)
Contoh Penggunaan:Kapan Digunakan:
Node dan Infrastruktur Fisik
Berbeda dengan diagram desain logis yang memodelkan tata letak kode atau struktur kelas, diagram penempatan berfokus pada topografi perangkat keras. Blok pembangun utamanya adalah Node, yang digambarkan secara visual sebagai kubus tiga dimensi. Node menggambarkan sumber daya komputasi fisik atau lingkungan eksekusi tempat elemen perangkat lunak sebenarnya berjalan:
-
<<processor>>Node: Kubus yang diberi stereotip dengan<<processor>>(seperti Server Penyimpanan Sementara, Server Utama, dan umum Server blok) mewakili node dengan kapasitas komputasi, memori, dan kekuatan pemrosesan yang mampu menjalankan biner perangkat lunak. -
<<jaringan>>Node: Kubus memanjang yang bertanda Jaringan Lokal mewakili jalur komunikasi atau infrastruktur routing, bukan komputer individu. Ini menandakan rangkaian fisik yang memungkinkan prosesor yang terhubung bertukar aliran paket data. -
Node Perangkat: Node tanpa stereotip seperti Internet dan Bank Modem mewakili komponen perangkat keras batas atau infrastruktur fisik eksternal yang diperlukan untuk mengarahkan lalu lintas eksternal ke lingkungan sistem inti.
Asosiasi dan Jalur Komunikasi
Garis padat yang menghubungkan kubus tiga dimensi mewakili Asosiasi. Dalam diagram penempatan, asosiasi ini memetakan jalur komunikasi fisik, tautan jaringan, atau koneksi perangkat keras antar simpul.
-
Garis antara Internet dan Modem Bankmenggambarkan titik masuk data publik eksternal ke dalam tumpukan perangkat keras.
-
Asosiasi yang memanjang dari Modem Bankke bawah ke dalam Server Penyimpanan Sementaramemetakan rute fisik lalu lintas masuk hingga lapisan penyimpanan sementara tepi.
-
Asosiasi yang menghubungkan Server Penyimpanan Sementara dan lapisan dasar Server Utama klaster ke Jaringan Lokalmenetapkan bagaimana komponen internal berkomunikasi melalui infrastruktur bus lokal berkecepatan tinggi atau switch jaringan bersama.
Lapisan Topologis dan Redundansi
Penataan simpul dalam diagram secara eksplisit menunjukkan topologi penempatan dan pilihan desain arsitektur untuk ketersediaan tinggi dan distribusi beban.
-
Lapisan Penyimpanan Sementara Tepi:Ditempatkan tepat di bawah perangkat keras modem titik masuk adalah dua node Server Penyimpanan Sementaranode. Konfigurasi ini secara visual menunjukkan lapisan tepi yang redundan yang dirancang untuk mendistribusikan beban lalu lintas masuk dan menyimpan aset sebelum permintaan mencapai infrastruktur dalam.
-
Pertanian Server Internal:Ditempatkan di bagian bawah tumpukan, terhubung melalui Jaringan Lokal, adalah klaster server inti. Perbedaan antara Server Utama dan generik yang bersebelahan Server node secara visual memetakan tata letak arsitektur master-replica atau primer-sekunder, memastikan kelangsungan data dan beban kerja komputasi berat di koordinasikan dengan aman dalam lingkungan pusat data internal.
Tujuan: Model struktur internal klasifikasi dan pola-pola kompleks.
-
Perencanaan infrastruktur sistem
-
Dokumentasi arsitektur terdistribusi
-
Menentukan strategi failover dan redundansi
5. Diagram Paket
Tujuan: Mengorganisasi dan mengelola namespace melalui pengelompokan logis.
Elemen Kunci:
-
Paket (persegi panjang dengan tab)
-
Hubungan impor/akses (
«impor»,«akses») -
Hubungan penggabungan (
«gabung») -
Visibilitas (
+publik,-pribadi)
Contoh Penggunaan:
Batasan Subsistem dan Paket
Diagram ini sangat bergantung pada notasi “folder” untuk mewakili pengelompokan logis dari elemen desain.
-
Subsistem: Folder luar besar yang diserialkan sebagai
<<subsystem>> Penyusunanmewakili unit perilaku utama yang terenkapsulasi dari sistem fisik. Ini berfungsi sebagai wadah tingkat tinggi yang mengelompokkan komponen dan paket terkait yang diperlukan untuk menjalankan manajemen pesanan. -
Paket: Folder kecil di dalam dan di luar subsistem (seperti UI, Pemrosesan Pesanan, dan GUIManager) adalah paket standar. Mereka digunakan untuk mengatur elemen ke dalam kelompok yang dapat dikelola, menetapkan ruang nama, dan menentukan batas visibilitas dalam arsitektur.
Ketergantungan dan Lapisan
Panah bergaris putus-putus menunjukkan Ketergantungan, yang menunjukkan bahwa perubahan pada satu paket (target) dapat memengaruhi fungsi dari paket asal (sumber).
-
Ketergantungan Internal: Di dalam subsistem Penyusunan, lapisan arsitektur dari atas ke bawah yang jelas terlihat. Paket UI bergantung pada Pemrosesan Pesanan, yang pada gilirannya bergantung pada Kalkulator Harga dan Penyimpanan Eksternal. Ini mewakili aliran arsitektur di mana elemen tampilan tingkat tinggi bergantung pada logika bisnis inti dan lapisan akses data.
-
Ketergantungan pada Paket Eksternal: Paket juga dapat bergantung pada elemen di luar batas subsistem mereka yang langsung. Sebagai contoh, paket UI paket memiliki ketergantungan pada eksternal GUIManager. Demikian pula, paket Random Storage dan Stream Storage paket di bagian bawah melintasi batas subsistem untuk bergantung pada struktur data eksternal, menyoroti bagaimana subsistem terintegrasi ke dalam ekosistem perangkat lunak yang lebih besar.
Abstraksi dan Pewarisan (Generalisasi)
Diagram ini menggunakan gaya khusus dan panah hubungan untuk menunjukkan pola desain abstrak yang diterapkan pada arsitektur modular.
-
Paket Abstrak vs. Paket Konkret: Paket yang berisi elemen abstrak atau mendefinisikan struktur mirip antarmuka direpresentasikan dengan nama miring (seperti External Storage dan StorageManagement). Sebaliknya, paket yang berisi implementasi kode operasional, seperti Repository dan FileStorage, menggunakan teks standar untuk menunjukkan bahwa mereka adalah paket konkret.
-
Generalisasi: Direpresentasikan oleh garis padat dengan segitiga terbuka dan kosong yang mengarah ke paket induk. Ini menunjukkan hubungan pewarisan atau implementasi. Di dalam subsistem, Random Storage dan Stream Storage mengkhususkan atau mengimplementasikan antarmuka abstrak External Storage antarmuka. Di luar subsistem, paket konkret Repository dan FileStorage paket-paket menggeneralisasi ke atas menjadi abstrak ManajemenPenyimpanan paket, menunjukkan bagaimana perilaku polimorfik dan klasifikasi struktural dapat dimodelkan pada tingkat paket.

-
Kapan Menggunakan:
-
Mengelola basis kode besar
-
Menentukan batas modul
-
Mengendalikan ketergantungan kompilasi
6. Diagram Objek
Tujuan: Menunjukkan tampilan saat itu dari instans dan tautannya pada saat tertentu.
Elemen Kunci:
-
Objek (nama yang digarisbawahi:
myCar:Car) -
Tautan antar instans objek
-
Nilai atribut saat runtime
Contoh Penggunaan:
Objek dan Instans Konkret
Berbeda dengan diagram kelas yang menunjukkan konfigurasi abstrak tingkat cetak biru, diagram objek menangkap instans aktual yang hidup dalam memori. Objek direpresentasikan dengan persegi panjang, dan nama-namanya selalu digarisbawahi untuk menunjukkan instansiasi.
-
Objek Berlabel: Ini mengikuti sintaks
namaInstans : NamaKelas. Sebagai contoh,c : Perusahaanmewakili instans perusahaan tertentu yang bernama “c”, danp : Orangmewakili instans individu tertentu yang bernama “p”. -
Objek Anonim: Ketika pengidentifikasi instans tertentu diabaikan atau tidak relevan terhadap skenario, hanya nama kelas yang disediakan, diberi awalan tanda titik dua (misalnya,
: InformasiKontak). Ini menentukan bahwa sebuah instans konkret dari informasi kontak ada dan terhubung ke struktur, tetapi tidak perlu memiliki nama variabel unik dalam konteks ini.
Status dan Nilai Atribut
Kompartemen bawah dari persegi panjang objek berisi status khususnya, yang didefinisikan oleh nilai-nilai eksplisit yang ditetapkan pada atributnya pada saat tertentu. Alih-alih hanya mencantumkan tipe data, entri-entri ini menggunakan format penugasan atribut = nilai format penugasan untuk mencerminkan kenyataan:
-
Instans departemen
d1menyimpan nilai atributnama = Penjualan. -
Instans departemen lain yang berbeda
d2menyimpan nilainama = R&D. -
Instans orang
pmenyimpan seluruh kumpulan data status, yang menggambarkan profil tertentu:nama = Derek,IDKaryawan = D-12821, danjabatan = Manajer.
Tautan dan Hubungan
Garis-garis padat yang menghubungkan objek mewakili Tautan. Sebuah tautan adalah contoh konkret dari asosiasi yang didefinisikan antara kelas. Jika diagram kelas menyatakan bahwa Perusahaan memiliki Departemen, diagram objek menunjukkan koneksi runtime aktual antara keduanya.
-
Contoh perusahaan
csecara aktif terhubung ke contoh departemend1(Penjualan) dand2(R&D). -
Diagram ini juga menunjukkan koneksi instans hierarkis, di mana
d1 : Departemen(Penjualan) terhubung ke bawah ke contoh sub-departemen yang juga bertipe Departemen (nama = Penjualan AS). -
Akhirnya, contoh orang
p(Derek) terhubung ke contoh departemen Penjualan AS, sementara secara bersamaan mempertahankan koneksi ke contoh anonim: InformasiKontakyang berisi alamat fisiknya.

Kapan Menggunakan:
-
Memvalidasi desain diagram kelas
-
Meng-debug hubungan objek yang kompleks
-
Menunjukkan contoh keadaan runtime
🔶 Diagram Perilaku
Diagram perilaku memodelkan aspek dinamis—bagaimana sistem berperilaku seiring waktu.
7. Diagram Aktivitas
Tujuan: Memodelkan alur kerja, proses bisnis, dan logika algoritmik.
Elemen Kunci:
-
Aksi (persegi panjang melengkung)
-
Node kontrol: awal, keputusan, penggabungan, cabang, pertemuan, akhir
-
Node objek dan pin
-
Partisi (swimlanes) untuk penugasan tanggung jawab
-
Penanganan pengecualian dan wilayah yang dapat dihentikan
Contoh Penggunaan: Alur Kerja Pemesanan
Organisasi Struktural (Swimlanes dan Partisi)
Diagram disusun secara vertikal menjadi kolom-kolom besar yang dikenal secara bergantian sebagaiSwimlanes atau Partisi. Batas-batas ini mengelompokkan tanggung jawab untuk tindakan-tindakan yang terkandung di dalamnya, memetakan langkah-langkah ke peran atau unit bisnis tertentu:
-
Antarmuka Penjualan Pelanggan: Menangani siklus hidup yang berhadapan dengan pelanggan, menangani inisialisasi klien, penjadwalan alternatif, dan presentasi akhir.
-
Pemilik Proposal: Mengelola perencanaan inti, analisis operasional, dan pengumpulan struktur data proposal formal.
-
Pemilik Kutipan: Fokus murni pada penilaian keuangan dan menyiapkan metrik kutipan tertentu.
Aliran Kontrol dan Status Aksi
Eksekusi prosedural langkah demi langkah diarahkan oleh node kontrol dan jalur yang ditentukan.
-
Node Awal: Digambarkan oleh lingkaran hitam pejal di bagian atas, ini menunjukkan titik awal dari seluruh alur kerja aktivitas.
-
Aksi: Persegi panjang melengkung (misalnya, Inisialisasi Kontak, Cari Alternatif, dan Kumpulkan Informasi Tambahan) mewakili langkah atau tugas tunggal yang tidak dapat diuraikan lebih lanjut dalam urutan eksekusi.
-
Aliran Kontrol: Panah padat yang menghubungkan elemen-elemen menentukan kemajuan urutan alur kerja, menunjukkan secara tepat tindakan mana yang harus selesai sebelum tindakan berikutnya dimulai.
-
Node Akhir Aktivitas: Simbol bullseye (lingkaran padat di dalam cincin kosong) di bagian bawah menandai titik akhir mutlak dari seluruh eksekusi proses.
Pengalihan dan Logika Terkendali (Node Keputusan)
Simbol berbentuk berlian mewakiliNode Keputusan, yang memodelkan percabangan bersyarat dalam alur kerja.
-
Jalur kontrol masuk dibagi menjadi beberapa jalur keluar yang saling eksklusif berdasarkan input tertentu.
-
Kondisi yang menentukan jalur mana yang harus diambil dikelilingi tanda kurung siku, dikenal sebagai kondisi pengaman (seperti
[diterima],[ditolak], dan[bergabung dengan pemasok lain atau ubah persyaratan]). Proses mengevaluasi kondisi-kondisi ini saat runtime untuk mengarahkan eksekusi ke jalur fungsional yang sesuai.
Pemrosesan Paralel (Node Fork dan Join)
Batang hitam padat dalam diagram berfungsi sebagai titik sinkronisasi untuk mengelola aliran eksekusi bersamaan atau paralel.
-
Node Fork (diberi label sebagai Node Aliran dalam penunjuk diagram): Aliran kontrol masuk tunggal memasuki batang dan terbagi menjadi beberapa thread eksekusi independen dan bersamaan. Di sini, setelah membuat rencana proyek, proses bercabang agar Pemilik Proposal dapat menjalankan analisis dan perencanaan pengiriman sementara Pemilik Penawaran secara bersamaan menangani persiapan penawaran.
-
Node Join: Batang sinkronisasi yang menggabungkan beberapa jalur bersamaan kembali menjadi satu aliran kontrol. Proses tidak dapat melampaui Node Join hinggasemua aliran paralel masuk telah berhasil mencapai batang, memastikan bahwa kompilasi penawaran dan penyusunan proposal sepenuhnya selesai sebelum melanjutkan ke kompilasi paket akhir.
Integrasi Data (Node Objek)
Persegi panjang standar menandakanNode Objek, yang memperkenalkan aliran data ke dalam diagram aktivitas yang berorientasi kontrol.
-
Node objek mewakili contoh data khusus atau artefak fisik yang dihasilkan atau dikonsumsi oleh tindakan, menggunakan
namaInstance : NamaKelaskonvensi (misalnya,sebuahProposal : ProposaldansebuahRencana : Rencana Proyek Pengiriman). -
Ditandai secara eksplisit
buatpanah menunjukkan secara tepat kapan suatu tindakan menginstansiasi atau memperbarui struktur data, menunjukkan bagaimana data mengalir dari tugas ke tugas bersamaan dengan eksekusi operasional.

Kapan Menggunakan:
-
Mendokumentasikan proses bisnis
-
Memodelkan realisasi use case
-
Menentukan algoritma yang kompleks
8. Diagram Mesin Status (Statecharts)
Tujuan: Memodelkan siklus hidup dan perilaku tergantung status objek.
Elemen Kunci:
-
Status (persegi panjang melengkung dengan aktivitas masuk/keluar/lakukan)
-
Transisi (pemicu[penjaga]/efek)
-
Pseudostatus: awal, pilihan, cabang, gabung, riwayat, berhenti
-
Status komposit dan wilayah ortogonal
Contoh Penggunaan: pengaturan telepon
Status dan Kondisi Sistem
Diagram ini menangkap perilaku suatu sistem—khususnya pengaturan telepon—dengan memetakan berbagai situasi atau kondisi diskrit yang dimilikinya.
-
Status: Persegi panjang melengkung mewakili status (misalnya, Tidak Aktif, DialTone, Menelepon, Terhubung, dan Terhubung). Sebuah status mewakili periode dalam siklus hidup suatu objek di mana ia memenuhi kondisi tertentu, menjalankan aktivitas, atau menunggu suatu peristiwa.
-
Status Pseudo Awal: Lingkaran hitam pekat di sebelah kiri mewakili titik awal mesin status. Ini adalah status pseudo, bukan status sejati, yang berfungsi hanya sebagai penunjuk ke status aktif default saat objek diinstansiasi (Menganggur).
-
Status Akhir: Simbol bullseye di sebelah kanan mewakili penghentian eksekusi mesin status, menunjukkan bahwa objek telah menyelesaikan siklus hidupnya.
Transisi dan Pengalihan Berbasis Peristiwa
Garis berarah yang menghubungkan status-status tersebut adalah Transisi, yang mewakili perpindahan dari satu status ke status lain sebagai respons terhadap pemicu tertentu.
-
Transisi Standar: Dipicu oleh peristiwa tertentu, seperti tindakan pengguna atau respons sistem, yang dicatat sepanjang garis. Sebagai contoh, berpindah dari Menganggur ke DialTone terjadi ketika peristiwa
onHookdipicu, dan berpindah dari DialTone ke Menelepon terjadi ketika sebuahdigit(n)event diterima. -
Transisi Diri: Panah transisi yang keluar dari suatu keadaan dan kembali langsung ke keadaan yang sama (seperti terlihat pada Dialing keadaan dengan
digit(n)ini menunjukkan bahwa event diproses dan memperbarui konteks keadaan internal (misalnya, mencatat digit yang baru diputar) tanpa menyebabkan objek keluar atau mengubah keadaan operasional utamanya.
Jalur Alternatif dan Penanganan Kesalahan
Mesin keadaan unggul dalam menunjukkan logika perilaku dan cabang kesalahan berdasarkan kondisi yang berbeda selama eksekusi.
-
Jalur Eksekusi yang Berhasil: Saluran horizontal pusat memetakan jalur optimal: Idle $rightarrow$ DialTone $rightarrow$ Dialing $rightarrow$ Connecting $rightarrow$ Ringing $rightarrow$ Connected $rightarrow$ Disconnected.
-
Keadaan Penanganan Eksplisit dan Kesalahan: Sistem mempertimbangkan kegagalan atau penundaan dengan beralih ke keadaan penanganan khusus. Jika nomor sedang sibuk saat terhubung, sistem akan memicu
numberBusytransisi untuk memasuki BusyTone keadaan. Jika pengguna berhenti terlalu lama saat menekan tombol, sebuahtimeoutacara menggeser sistem ke dalam Peringatan atau Timeout keadaan. Jika urutan yang salah terdeteksi, sebuahinvalidNumberpemicu mengarahkan sistem ke dalam Pesan Terrekam keadaan, memastikan sistem menangani semua kasus tepi dunia nyata dengan aman.

Kapan Harus Menggunakan:
-
Memodelkan sistem tertanam atau implementasi protokol
-
Menentukan manajemen status antarmuka pengguna
-
Mendokumentasikan aturan siklus hidup objek
9. Diagram Interaksi
Empat jenis diagram menekankan aspek-aspek berbeda dari kolaborasi objek:
a) Diagram Urutan (Paling Umum)
Tujuan: Menunjukkan pertukaran pesan yang diurutkan menurut waktu antara jalur hidup.
Elemen Kunci:
-
Jalur Hidup (garis putus-putus vertikal)
-
Pesan (panah padat/putus-putus dengan label)
-
Kejadian eksekusi (batang aktivasi)
-
Fragmen digabungkan:
alt,opt,loop,par,break
Contoh Penggunaan:
Lifeline dan Konteks Eksekusi
Diagram dibaca dari kiri ke kanan untuk menentukan peserta, dan dari atas ke bawah untuk menunjukkan perjalanan waktu.
-
Lifeline: Kotak-kotak di bagian atas yang terhubung dengan garis vertikal putus-putus mewakili lifeline. Mereka memodelkan peserta individu dalam interaksi, mengikuti konvensi
namaInstansi : NamaKelaskonvensi (misalnya,jendela : UI,aChain : RantaiHotel, danaHotel : Hotel). Garis putus-putus melacak keberadaan peserta tersebut sepanjang urutan. -
Batas Aktivasi: Persegi panjang vertikal tipis berwarna yang berada di atas lifeline menunjukkan Aktivasi (atau kejadian eksekusi). Batas ini menunjukkan secara tepat kapan suatu objek sedang aktif mengeksekusi operasi atau menunggu kembalinya pemanggilan bawah yang bersarang.
-
Dihentikan: Simbol “X” besar di bagian bawah dari
jendela : UIlifeline menunjukkan destruksi atau terminasi, menunjukkan bahwa siklus hidup partisipan tertentu telah berakhir dan sumber dayanya dilepaskan.
Jenis Pesan dan Komunikasi
Komunikasi antar partisipan dimodelkan melalui panah horizontal yang mewakili pesan, diurutkan secara berurutan menggunakan sistem penomoran hierarkis (misalnya, 1, 1.1, 1.1.1).
-
Pesan Sinkron:Garis padat dengan kepala panah padat (seperti
1: makeReservationdan1.1: makeReservation) menunjukkan pemanggilan sinkron. Pengirim menghentikan eksekusi dan menunggu objek penerima menyelesaikan pemrosesannya. -
Pesan Diri:Sebuah lingkaran pesan yang dimulai dan berakhir pada batang aktivasi yang sama (seperti
1.1.1: available(roomId, date): isRoomdieksekusi olehaHotel) mewakili sebuah Pesan Diri. Ini menunjukkan eksekusi metode internal di mana sebuah objek memanggil salah satu operasinya sendiri. -
Pesan Pembuatan:Garis putus-putus dengan kepala panah terbuka yang mengarah langsung ke kotak objek (seperti pesan
1.1.2:mengarah keaReservation : Reservation) mewakili pembuatan objek. Ini menunjukkan bahwa instanceaHotelsecara dinamis membuat instance objekaReservationpada saat tepat dalam urutan runtime.
Fragmen Gabungan dan Alur Kontrol
Kotak persegi panjang besar yang mengelilingi bagian-bagian urutan adalah Fragmen Gabungan, yang menggunakan operator interaksi untuk mengelola logika kompleks, percabangan, dan iterasi.
-
Fragment Loop: Kotak luar yang bertanda
loopdengan kondisi penjaga[setiap hari]mewakili iterasi. Semua interaksi yang terkandung dalam kotak ini akan berulang terus-menerus untuk setiap hari yang ditentukan dalam permintaan reservasi. -
Fragment Gabungan Alternatif (Alt): Terdapat di dalam loop adalah sebuah
altfragment (diberi keterangan sebagai “Jika” pada penunjuk diagram), yang menangani percabangan bersyarat. Ia mengevaluasi kondisi penjaga[isRoom = true]. Jika kondisi terpenuhi, urutan akan menjalankan jalur khusus di dalam blok tersebut—menciptakan instanceaReservationdan selanjutnya memicu pesan2:untuk membuat instanceaNotice : Konfirmasi. Jika kondisi salah, maka jalur alternatif (atau tidak ada tindakan) akan diambil.
b) Diagram Komunikasi
Tujuan: Menekankan hubungan objek daripada waktu pesan.

Elemen Kunci:
-
Objek sebagai simpul
-
Tautan dengan pesan bernomor dan berarah
-
Fokus pada “siapa berbicara kepada siapa”
c) Diagram Gambaran Interaksi
Tujuan: Alur kontrol tingkat tinggi menggunakan notasi diagram aktivitas.

Elemen Kunci:
-
Terjadinya interaksi sebagai node aktivitas
-
Keputusan/gabungan untuk percabangan
-
Fork/gabung untuk paralelisme
d) Diagram Waktu
Tujuan: Model batasan waktu yang tepat (sistem waktu nyata).

Elemen Kunci:
-
Garis waktu status untuk setiap lifeline
-
Skala waktu dan batasan
-
Panah pesan dengan penanda durasi
Kapan Menggunakan Interaksi:
-
Menentukan realisasi use case
-
Mengoreksi aliran pesan yang kompleks
-
Mendokumentasikan pola penggunaan API
-
Memodelkan waktu protokol waktu nyata
10. Diagram Use Case
Tujuan: Menangkap kebutuhan fungsional dari perspektif aktor eksternal.
Elemen Kunci:
-
Use case (oval atau persegi panjang klasifikasi)
-
Aktor (gambar figur batang atau klasifikasi)
-
Asosiasi (aktor ↔ use case)
-
Hubungan:
«include»,«memperluas», generalisasi -
Kotak batas sistem
Contoh Penggunaan: Sistem ATM

Kapan Digunakan:
-
Elicitasi kebutuhan dengan pemangku kepentingan
-
Menentukan cakupan dan batas sistem
-
Merencanakan skenario pengujian
🎯 Memilih Diagram yang Tepat: Panduan Keputusan
| Tujuan | Diagram yang Direkomendasikan |
|---|---|
| Desain struktur kelas | Kelas, Objek, Paket |
| Model interaksi saat runtime | Urutan, Komunikasi |
| Dokumentasikan alur kerja bisnis | Aktivitas, Kasus Penggunaan |
| Tentukan siklus hidup objek | Mesin Status |
| Merencanakan penyebaran sistem | Penyebaran, Komponen |
| Model pola internal yang kompleks | Struktur Komposit |
| Tangkap batasan waktu nyata | Diagram Waktu |
| Tentukan kebutuhan | Kasus Penggunaan, Aktivitas |
🔑 Prinsip-prinsip Pemodelan Utama
-
Mulai dengan sederhana: Mulailah dengan jenis diagram yang paling sesuai dengan tujuan Anda saat ini.
-
Iterasi: Sempurnakan model seiring pemahaman yang semakin dalam—tidak ada diagram yang “akhir” pada draft pertama.
-
Pertimbangkan audiensnya: Sesuaikan tingkat detail dengan pembaca (pengembang vs. pemangku kepentingan).
-
Gabungkan pandangan: Gunakan beberapa diagram untuk menceritakan cerita yang lengkap (misalnya, Use Case → Sequence → Class).
-
Perluas secara bijak: Gunakan stereotip, nilai bertanda, dan profil untuk kebutuhan khusus domain—tetapi dokumentasikan konvensi yang digunakan.
-
Jaga agar mudah dibaca: Hindari detail yang tidak relevan; gunakan catatan untuk konteks tambahan.
📌 Ingat: “UML adalah bahasa, bukan metodologi.” Ini menyediakan notasi—bukan proses. Pilih diagram yang memperjelas komunikasi, bukan yang hanya untuk mengisi kotak.
Kesimpulan
This post is also available in English, Español, فارسی, Français, English and 日本語.







