Diagram UML**Unified Modeling Language** (**UML**) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak.

Pendahuluan
-----------

Unified Modeling Language (UML) adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya. UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat *tool* untuk mendukung pengembangan sistem tersebut. UML mulai diperkenalkan oleh *Object Management Group*, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP. UML merupakan dasar bagi perangkat (*tool*) desain berorientasi objek dari IBM.

UML adalah suatu bahasa yang digunakan untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi. UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian UML dapat digunakan untuk memahami dan mendokumentasikan setiap sistem informasi. Penggunaan UML dalam industri terus meningkat. Ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem.

UML
---

Sampai era tahun 1990 puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi booch, metodologi coad, metodologi OOSe, metodologi OMT, metodologi shlaer-mellor, metodologi wirfs-brock, dsb. Masa itu terkenal dengan masa perang metodologi (*method war*) dalam pendesainan berorientasi objek. Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerjasama dengan kelompok/perusahaan lain yang menggunakan metodologi yang berlainan.

Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang merupakan tiga tokoh yang boleh dikata metodologinya banyak digunakan mempelopori usaha untuk penyatuan metodologi pendesainan berorientasi objek. Pada tahun 1995 direlease draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG).

Diagram UML
-----------

UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu:

* *Use Case Diagram* untuk memodelkan proses bisnis.
* *Conceptual Diagram* untuk memodelkan konsep-konsep yang ada di dalam aplikasi.
* *Sequence Diagram* untuk memodelkan pengiriman pesan (*message*) antar *objects*.
* *Collaboration Diagram* untuk memodelkan interaksi antar *objects*.
* *State Diagram* untuk memodelkan perilaku *objects* di dalam sistem.
* *Activity Diagram* untuk memodelkan perilaku *Use Cases* dan *objects* di dalam *system*.
* *Class Diagram* untuk memodelkan struktur kelas.
* *Object Diagram* untuk memodelkan struktur *object*.
* *Component Diagram* untuk memodelkan komponen *object*.
* *Deployment Diagram* untuk memodelkan distribusi aplikasi.

Berikut akan dijelaskan 4 macam diagram yang paling sering digunakan dalam pembangunan aplikasi berorientasi object, yaitu *use case diagram, sequence diagram, collaboration diagram, dan class diagram*.

### *Use Case Diagram*

*Use case diagram* digunakan untuk memodelkan semua bisnis proses berdasarkan perspektif pengguna sistem. Use case diagram terdiri atas diagram untuk use case dan *actor*. *Actor* merepresentasikan orang yang akan mengoperasikan atau orang yang berinteraksi dengan sistem aplikasi.

Use case merepresentasikan operasi-operasi yang dilakukan oleh *actor*. Use case digambarkan berbentuk elips dengan nama operasi dituliskan di dalamnya.*Actor* yang melakukan operasi dihubungkan dengan garis lurus ke use case.

### *Sequence Diagram*

*Sequence Diagram* merupakan gabungan dari Diagram Class dan diagram Object yang memiliki suatu gambaran model statis.Namun ada juga yang bersifat dinamis, seperti Diagram Interaction.Diagram sequence merupakan salah satu diagram Interaction yang menjelaskan bagaimana suatu operasi itu dilakukan; *message* (pesan) apa yang dikirimdan kapan pelaksanaannya. Diagram ini diatur berdasarkan waktu. Objek-objek yang berkaitan dengan proses berjalannya operasi diurutkan dari kiri ke kanan berdasarkan waktu terjadinya dalam pesan yang terurut. Sequence Diagram memiliki beberapa komponen seperti *object*, *activation boxes*, *actors*, *lifeline*, *general* dan *control*

### *Collaboration Diagram*

*Collaboration diagram* dipakai untuk memodelkan interaksi antar object di dalam sistem. Berbeda dengan sequence diagram yang lebih menonjolkan kronologis dari operasi-operasi yang dilakukan, collaboration diagram lebih fokus pada pemahaman atas keseluruhan operasi yang dilakukan oleh object.

### *Class diagram*

*Class diagram* menggambarkan struktur statis class di dalam sistem. class merepresentasikan sesuatu yang ditangani oleh sistem. class dapat berhubungan dengan yang lain melalui berbagai cara: *associated* (terhubung satu sama lain), *dependent* (satu class tergantung/menggunakan class yang lain), *specialed* (satu class merupakan spesialisasi dari class lainnya), atau *package* (group bersama sebagai satu unit). sebuah sistem biasanya mempunyai beberapa class diagram.

Referensi
---------

1. 1 2 3 4 5  David M. Kroenke, *Database Processing Jilid 1 edisi 9*, halaman 60. Erlangga.
2. 1 2 3 4 5  Rama, Jones, *Sistem Informasi Akuntansi* halaman 78. Salemba.
3. 1 2 3 4 5 6 7  Sri Dharwiyanti (2003), *Pengantar Unified Modeling Language (UML)*, IlmuKomputer.Com.
4. 1 2 3 4 5 6 7 8 9  Ir. M. FARID AZIS, M. Kom, *Object Oriented Programming Php 5*, halaman 118. Elex Media Komputindo.
5. ↑  Clara, Ardita (2024-01-11). "Sequence Diagram: Pengertian dan Cara Membuatnya". *D3 Teknologi Komputer*. Diakses tanggal 2024-02-23.

Pranala luar
------------

* Situs resmi UML
* Situs resmi Object Management Group

| * l
* b
* s
Rekayasa perangkat lunak |
| --- |
| Bidang | 
* Analisis persyaratan
* Analisis sistem
* Desain perangkat lunak
* Pemrograman komputer
* Metode formal
* Pengujian perangkat lunak
* Penyebaran perangkat lunak
* Pemeliharaan perangkat lunak

 |
| Konsep | 
* Pemodelan data
* Arsitektur perusahaan
* Spesifikasi fungsional
* Bahasa pemodelan
* Paradigma pemrograman
* Perangkat lunak
* Arsitektur perangkat lunak
* Metodologi pengembangan perangkat lunak
* Proses pengembangan perangkat lunak
* Kualitas perangkat lunak
* Jaminan kualitas perangkat lunak
* Arkeologi perangkat lunak
* Analisis terstruktur

 |
| Orientasi | 
* Agile
* Berorientasi aspek
* Berorientasi objek
* Ontologi
* Orientasi layanan
* SDLC

 |
| Model | 

|  |  |
| --- | --- |
| Model pengembangan | 
* Agile
* Model perancangan
* RUP
* EUP
* Scrum
* Model spiral
* Model air terjun
* XP
* V-Model
* Model bertahap
* Model prototipe

 |
| Model lain | 
* Automotive SPICE
* CMMI
* Model data
* Model fungsi
* Model informasi
* Metamodeling
* Model objek
* Model sistem
* Model pandangan

 |
| Bahasa pemodelan | 
* IDEF
* UML
* SysML

 |

 |
| TeknisiPerangkat lunak | 
* Kent Beck
* Grady Booch
* Fred Brooks
* Barry Boehm
* Peter Chen
* Ward Cunningham
* Ole-Johan Dahl
* Tom DeMarco
* Martin Fowler
* C. A. R. Hoare
* Watts Humphrey
* Michael A. Jackson
* Ivar Jacobson
* James Martin
* Bertrand Meyer
* David Parnas
* Winston W. Royce
* Colette Rolland
* James Rumbaugh
* Niklaus Wirth
* Edward Yourdon
* Victor Basili

 |
| Bidang terkait | 
* Ilmu komputer
* Teknik komputer
* Rekayasa usaha
* Sejarah
* Manajemen
* Manajemen proyek
* Manajemen mutu
* Ergonomi perangkat lunak
* Rekayasa sistem

 |
| 
* Category **Kategori**
* **Commons**

 |