UML (Unified Modeling Language)
Mustaziri., S.T., M.Kom
Pengertian UML
UML (Unified Modelling Language) adalah suatu metode dalam pemodelan
secara visual yang digunakan sebagai sarana perancangan sistem
berorientasi objek..
UML juga dapat didefinisikan sebagai suatu bahasa standar visualisasi,
perancangan, dan pendokumentasian sistem, atau dikenal juga sebagai
bahasa standar penulisan blueprint sebuah software.
UML diharapkan mampu mempermudah pengembangan piranti lunak (RPL)
serta memenuhi semua kebutuhan pengguna dengan efektif, lengkap, dan
tepat. Hal itu termasuk faktor-faktor scalability, robustness, security, dan
sebagainya.
UML adalah bahasa pemodelan visual yang digunakan untuk merancang dan
memodelkan sistem perangkat lunak.
Menurut Grady Booch, salah satu ahli yang terlibat dalam pengembangan
Unified Modeling Language, UML adalah “bahasa pemodelan visual yang
dapat digunakan untuk merepresentasikan sistem perangkat lunak yang
berbeda, mulai dari sistem yang sederhana hingga sistem yang kompleks.”
Unified Modeling Language terdiri dari berbagai diagram yang masing-masing
merepresentasikan aspek tertentu dari sistem. Beberapa diagram Unified
Modeling Language yang paling umum digunakan termasuk class diagram,
activity diagram, dan lain sebagainya.
Sejarah UML
Pada tahun 1996, Request for Proposal (RFP) yang dikeluarkan oleh Object
Management Group (OMG) menyediakan perantara untuk organisasi-
organisasi lain untuk bergabung untuk menghasilkan respons RFP bersama.
Rational membentuk konsorsium mitra UML bersama beberapa organisasi
yang bersedia mendedikasikan sumber daya mereka untuk menginisiasi UML
1.0. Para kontributor pada UML 1.0 ini adalah Digital Equipment Corp, HP,
i-Logix, IntelliCorp, IBM, ICON Computing, MCI Systemhouse, Microsoft,
Oracle, Rational, TI, dan Unisys. UML versi 1.0 ini diajukan oleh OMG pada
Januari 1997 sebagai respons dari RFP awal.
Pada Januari 1997, IBM, ObjectTime, Platinum Energy, Ptech, Taskon, Reich
Technology, dan Softeam juga mengajukan RFP terpisah pada OMG.
Perusahaan-perusahaan ini bergabung untuk mengkontribusikan idenya di
versi terbaru, yaitu UML 1.1. UML 1.1 dirilis sebagai versi terbaru dari UML
1.0 dan memasukkan kontribusi dari mitra-mitra baru.
UML 1.1 diajukan ke OMG sebagai pertimbangan mereka dan diadopsi pada
musim gugur tahun 1997. Dari versi 1.0 kemudian ditingkatkan menjadi 1.1
dan ke 1.5, dan kemudian diperbarui lagi menjadi UML 2.1 dari 01 ke 06
(saat ini versi terbaru dari UML adalah UML 2.5). Pada tahun 2005, UML
diumumkan sebagai standar oleh International Organization for
Standardization (ISO).
Fungsi UML
Berikut adalah beberapa fungsi UML yang perlu Anda ketahui. Simak
penjelasan di bawah ini!
1. Memodelkan Sistem Perangkat Lunak
Unified Modeling Language digunakan untuk merepresentasikan sistem
perangkat lunak dari berbagai aspek, termasuk struktur, perilaku, dan
interaksi antara objek.
Dengan begitu, para pengembang dapat memperjelas dan
menyederhanakan pemodelan sistem yang rumit.
2. Meningkatkan Komunikasi dan Kolaborasi
Unified Modeling Language memberikan notasi grafis yang dapat
digunakan untuk menyajikan ide dan konsep yang rumit secara visual.
Hal ini mempermudah para pengembang untuk berkomunikasi secara
efektif dan menyederhanakan pemodelan sistem yang rumit.
3. Meningkatkan Kualitas Perangkat Lunak
Dalam pengembangan perangkat lunak, Unified Modeling Language
membantu para pengembang untuk mengurangi kesalahan dan
meningkatkan kualitas produk akhir.
Dengan memodelkan sistem secara visual, para pengembang dapat
mengidentifikasi masalah dan kesalahan sebelum produk akhir
diimplementasikan.
4. Meningkatkan Efisiensi Pengembangan Perangkat Lunak
Dengan menggunakan Unified Modeling Language, para pengembang
dapat merancang sistem perangkat lunak dengan lebih efisien.
Unified Modeling Language membantu mengurangi kompleksitas dan
meningkatkan pemahaman sistem secara keseluruhan, sehingga
memudahkan pengembang untuk mengembangkan perangkat lunak
dengan cepat dan efisien.
5. Memastikan Kepuasan Klien
Dalam pengembangan perangkat lunak, membantu untuk memastikan
bahwa produk akhir sesuai dengan kebutuhan dan persyaratan klien.
Dengan menggunakan Unified Modeling Language, para pengembang
dapat memperjelas dan menyederhanakan pemodelan sistem, sehingga
memastikan bahwa produk akhir sesuai dengan kebutuhan dan
persyaratan klien.
UML juga menggunakan class dan operation dalam konsep dasarnya, maka UML
lebih cocok untuk pemodelan perangkat lunak berorientasi objek seperti :
1. Java
2. C#
3. C++
4. VB.NET
5. dan lainnya
UML merupakan standar bahasa model yang terdiri dari kumpulan-kumpulan
diagram, dikembangkan untuk membantu para pengembang sistem dan
software agar bisa menyelesaikan tugas-tugas seperti :
1. Spesifikasi
2. Visualisasi
3. Desain arsitektur
4. Konstruksi
5. Simulasi dan testing
6. Dokumentasi
UML memiliki beberapa kategori yaitu terdiri dari benda/things,
hubungan/relationship dan diagram seperti yang di ilustrasikan dalam gambar
di bawah ini,
UML Category UML Elements Specific UML Details
Things Structural Things Classes
Interfaces
Collaborations
Use Cases
Active Classes
Components
Nodes
Behavioral Things Interactions
State Machines
Grouping Things Packages
Annotational Things Notes
Relationship Structural Relationships Dependencies
Aggregations
Association
Generalization
Behavioral Relationship Communicates
Includes
Extends
Generalizes
Diagrams Structural Diagrams Class Diagram
Component Diagram
Deployment Diagram
Use Case Diagram
Sequence Diagram
Communication Diagram
Statechart Diagram
Activity Diagram
Benda/Things
Benda/Things Adalah hal yang sangat mendasar dalam model UML, juga
merupakan bagian paling statik dari sebuah model, serta menjelaskan
elemenelemen lainnya dari sebuah konsep dan atau fisik. Bentuk dari
beberapa benda/thing adalah sebagai berikut:
1. Classes, yang diuraikan sebagai sekelompok dari object yang
mempunyai atribute, operasi, hubungan yang semantik. Sebuah kelas
mengimplementasikan 1 atau lebih interfaces. Sebuah kelas dapat
digambarkan sebagai sebuah persegi panjang, yang mempunyai sebuah
nama, atribute, dan metoda pengoperasiannya.
2. Interfaces, merupakan sebuah antar-muka yang menghubungkan dan
melayani antar kelas dan atau elemen. ‘Interface’ / antar-muka
mendefinisikan sebuah set / kelompok dari spesifikasi pengoperasian,
umumnya digambarkan dengan sebuah lingkaran yang disertai dengan
namanya. Sebuah antar-muka berdiri sendiri dan umumnya merupakan
pelengkap dari kelas atau komponen.
3. Collaboration, yang didefinisikan dengan interaksi dan sebuah kumpulan
/ kelompok dari kelas-kelas/elemen-elemen yang bekerja secara
bersama-sama. Collaborations mempunyai struktur dan dimensi.
Pemberian sebuah kelas memungkinkan berpartisipasi didalam
beberapa collaborations dan digambarkan dengan sebuah ‘elips’ dengan
garis terpotong-potong.
4. Use cases, adalah rangkaian/uraian sekelompok yang saling terkait dan
membentuk sistem secara teratur yang dilakukan atau diawasi oleh
sebuah aktor. ‘use case’ digunakan untuk membentuk tingkah-laku
benda/ things dalam sebuah model serta di realisasikan oleh sebuah
collaboration. Umumnya ‘use case’ digambarkan dengan sebuah ‘elips’
dengan garis yang solid, biasanya mengandung nama.
5. Nodes, merupakan fisik dari elemen-elemen yang ada pada saat
dijalankannya sebuah sistem, contohnya adalaha sebuah komputer,
umumnya mempunyai sedikitnya memory dan processor. Sekelompok
komponen mungkin terletak pada sebuah node dan juga mungkin akan
berpindah dari node satu ke node lainnya. Umumnya node ini
digambarkan seperti kubus serta hanya mengandung namanya.
Bagan/Diagram
UML sendiri terdiri atas pengelompokkan diagram-diagram sistem menurut
aspek atau sudut pandang tertentu. Diagram adalah yang menggambarkan
permasalahan maupun solusi dari permasalahan suatu model. UML
mempunyai 9 diagram, yaitu; use-case, class, object, state, sequence,
collaboration, activity, component, dan deployment diagram.
1. Use Case Diagram, menggambarkan sekelompok use cases dan aktor
yang disertai dengan hubungan diantaranya. Diagram use cases ini
menjelaskan dan menerangkan kebutuhan / requirement yang
diinginkan/ dikehendaki user/pengguna, serta sangat berguna dalam
menentukan struktur organisasi dan model dari pada sebuah sistem.
2. Class Diagram, yang memperlihatkan struktur statis dari kelas actual
didalam sistem.
3. Object Diagram, yang merupakan varian dari kelas diagram yang
memperlihatkan lebih detail banyaknya obyek yang mengintantiasi
(instances) kelas.
4. State Diagram, yang memperliatkan semua keadaan (state) yang dapat
dimiliki oleh kelas dan event yang dapat merubah keadaan tersebut.
5. Sequence Diagram, yang memperlihatkan kolaborasi dinamik antara
objek-objek dengan suatu urutan pesan (a sequence of message) antar
objek tersebut.
6. Collaboration Diagram, yang memperlihatkan kolaborasi dinamik antar
objek tanpa memperhatikan aspek waktu.
7. Activity Diagram, yang memperlihatkan aliran urutan aktifitas.
7. Component Diagram, yang memperlihatkan struktur fisik dari source code
dalam terminology code components. Komponen berisi informasi tentang
logical class dapat berupa komponen source code, komponen biner atau
komponen yang dapat dieksekusi.
8. Deployment Diagram, yang memperlihatkan arsitektur fisik dari hardware
dan software pada sistem.
Area Penggunaan UML
UML digunakan paling efektif pada domain seperti :Sistem Informasi
Perusahaan
1. Sistem Perbankan dan Perekonomian
2. Bidang Telekomunikasi
3. Bidang Transportasi
4. Bidang Penerbangan
5. Bidang Perdagangan
6. Bidang Pelayanan Elekronik
7. Bidang Pengetahuan
8. Bidang Pelayanan Berbasis Web Terdistribusi
Manfaat UML untuk Programmer
Manfaat membuat pemodelan menggunakan UML Yaitu :
1. Memudahkan dalam membuat sistem yang akan dirancang
2. Memudahkan untuk mengetahui flow atau alur sebuah sistem
3. Memudahkan untuk mengetahui perangkat apa saja yang dibutuhkan
dalam sistem yang akan dibuat
4. Memudahkan app developer dalam mengimplementasikan program
atau aplikasi yang telah dibuat
Kelebihan Menggunakan UML Saat Membuat Program
Kelebihan menggunakan UML yaitu :
5. UML menyediakan bahasa pemodelan yang ekspresif dan siap pakai
untuk mengembangkan dan pertukaran model-model yang berarti
6. Menyediakan mekanisme perluasan dan spesialisasi untuk memperluas
konsep-konsep inti
7. Mendukung spesifikasi independen bahasa pemrograman dan proses
pengembangan tertentu
8. Menyediakan basis formal untuk bahasa pemodelan
9. Menyediakan kemampuan untuk merepresentasikan semua konsep yang
relevan untuk sistem perangkat lunak
10. Menyediakan fleksibilitas yang diperlukan bagi konsep-konsep perangkat
lunak yang baru
5 Aplikasi atau Tools untuk Membuat UML
Aplikasi UML dapat memudahkan untuk merancang pemodelan visual.
Aplikasi-aplikasi tersebut di antaranya sebagai berikut :
1. ClickCharts Diagram Flowchart
2. StarUML
3. ArgoUML
4. BOUML
5. Modelio
3 Jenis UML dan Contohnya
ada beberapa jenis dari UML, di antaranya yaitu :
6. Use Case Diagram
7. Activity Diagram
8. Sequence Diagram
1. Use Case Diagram
Use Case Diagram merupakan diagram yang digunakan untuk membuat
model semua bisnis proses berdasarkan perspektif pengguna sistem.
Diagram ini terdiri dari use case dan actor.
Actor merepresentasikan user yang akan mengoperasikan sistem atau bisa
juga diartikan orang yang berinteraksi dengan sistem aplikasi yang dibuat.
Sedangkan use case merepresentasikan operasi yang dilakukan oleh actor.
Simbol- simbol Use Case Diagram
2. Activity Diagram
Activity Diagram merupakan bentuk visual dari alir kerja yang berisi aktivitas
dan tindakan user dalam sebuah sistem aplikasi. Diagram ini dibuat untuk
menjelaskan aktivitas komputer maupun alur aktivitas organisasi. Secara
garis besar diagram ini menggambarkan alur dalam sebuah sistem aplikasi.
Simbol-simbol Activity Diagram :
3. Sequence Diagram
Diagram ini adalah gabungan dari diagram class dan object yang memiliki
suatu gambaran model statis. Tapi ada juga yang bersifat dinamis.
Diagram ini menjelaskan bagaimana suatu operasi dilakukan, pesan apa
yang akan dikirim, dan kapan pelaksanaannya.
Diagram yang diatur berdasarkan waktu ini memiliki objek-objek yang
berkaitan dengan proses berjalannya operasi yang diurutkan dari kiri ke
kanan.
Simbol-simbol Use Case Diagram :
Selain diagram-diagram di atas masih ada beberapa lainnya, yaitu :
1. Collaboration Diagram
2. Class Diagram
3. Object Diagram
4. Component Diagram
5. Deployment Diagram
5 Tahapan UML
Ada beberapa tahapan yang akan dilalui pads proses pembuatan model
diagram ini, yaitu :
1. Membuat Functional Requirement
Pada tahapan yang pertama ini kita bisa membuat tulisan yang
mendeskripsikan tentang sistem apa yang akan dibuat.
Deskripsi sistem bisa berupa tulisan tangan atau ketikan di Word Prosesor,
jadi tidak harus formal. Bebepera yang harus dideskripsikan yaitu sistem
apa yang akan dibuat dan bagaimana alur program tersebut?
Contoh :
Membuat aplikasi web untuk sistem informasi pembayaran mahasiswa :
a. Menginput data pembayaran mahasiswa
b. Membuat laporan data pembayaran
c. dan lain sebagainya
.2. Membuat Use Case Diagram
Setelah itu kita buat Use Case diagram. Di mana pada diagram ini kita
tentukan actor dan use casenya. Untuk actornya sendiri dari tahapan
satu yaitu : Mahasiswa dan Administrator/ Bagian Keuangan.
3. Membuat Class Diagram
Selanjutnya buat class diagram. Di sini kita akan mengklasifikasikan
class-class dan attribute yang akan dibuat. Class nantinya digunakan
untuk proses coding sebuah program.
4. Membuat Sequence Diagram
Di bagian ke empat ini kita lanjutkan ke tahap pembuatan Sequence
Diagram.
Diagram ini bisa dibilang model yang lebih detail dari tahap satu sampai
tiga. Di sini kita akan memasukan hal-hal yang bersifat kea rah teknis.
Tiap-tiap scenario dibuat sequencenya. Contohnya kita memiliki dua
scenario :
1. Skenario traksaksi pembayaran mahasiswa
2. Skenario cetak kwitansi
5. Membuat Activity Diagram
Terakhir adalah membuat diagram aktivitas. Diagram ini sangat mirip
dengan flowchart. Sehingga mudah sekali untuk dibaca.
Bagian-bagian UML
Bagian-bagian utama dari UML adalah view, diagram, model element, dan
general mechanism.
View Digunakan untuk melihat sistem yang dimodelkan dari beberapa aspek
yang berbeda. Beberapa Jenis view dalam UML antara lain :.
1. Use case View
Mendeskripsikan fungsionalitas sistem yang seharusnya dilakukan sesuai
yang diinginkan external actors. Actor yang berinteraksi dengan sistem
dapat berupa user atau sistem lainnya.
View ini digambarkan dalam use case diagrams dan kadang-kadang
dengan activity diagrams. View ini digunakan terutama untuk
pelanggan,perancang (designer), pengembang(developer), dan penguji
sistem(tester).
2. Logical View
Mendeskripsikan bagaimana fungsionalitas dari sistem, struktur statis
(class, object, dan relationship ) dan kolaborasi dinamis yang terjadi ketika
object mengirim pesan ke object lain dalam suatu fungsi tertentu. View ini
digambarkan dalam class diagrams untuk struktur statis dan dalam state,
sequence, collaboration, dan activity diagram untuk model dinamisnya.
View ini digunakan untuk perancang (designer) dan pengembang
(developer).
3. Component View
Mendeskripsikan implementasi dan ketergantungan modul. Komponen
yang merupakan tipe lainnya dari code module diperlihatkan dengan
struktur dan ketergantungannya juga alokasi sumber daya komponen dan
informasi administrative lainnya. View ini digambarkan dalam component
view dan digunakan untuk pengembang (developer).
4. Concurrency View
Membagi sistem ke dalam proses dan prosesor. View ini digambarkan
dalam diagram dinamis (state, sequence, collaboration, dan activity
diagrams) dan diagram implementasi (component dan deployment
diagrams) serta digunakan untuk pengembang (developer), pengintegrasi
(integrator), dan penguji (tester).
5. Deployment View
Mendeskripsikan fisik dari sistem seperti komputer dan perangkat (nodes)
dan bagaimana hubungannya dengan lainnya. View ini digambarkan
dalam deployment diagrams dan digunakan untuk pengembang
(developer), pengintegrasi (integrator), dan penguji (tester).
Diagram
Diagram berbentuk grafik menunjukkan simbol elemen model yang disusun
untuk mengilustrasikan bagian atau aspek tertentu dari sistem. Sebuah
diagram merupakan bagian dari suatu view tertentu dan ketika digambarkan
biasanya dialokasikan untuk view tertentu. Adapun jenis diagram antara lain :
1. Use Case Diagram
Menggambarkan sejumlah external actors dan hubungannya ke use case
yang diberikan oleh sistem. Use case adalah deskripsi fungsi yang
disediakan oleh sistem dalam bentuk teks sebagai dokumentasi dari use
case symbol namun dapat juga dilakukan dalam activity diagrams. Use
case digambarkan hanya yang dilihat dari luar oleh actor (keadaan
lingkungan sistem yang dilihat user) dan bukan bagaimana fungsi yang
ada di dalam sistem.
2. 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 (grup bersama
sebagai satu unit). Sebuah sistem biasanya mempunyai beberapa class
diagram.
3. State Diagram
Menggambarkan semua state (kondisi) yang dimiliki oleh suatu object
dari suatu class dan keadaan yang menyebabkan state berubah.
Kejadian dapat berupa object lain yang mengirim pesan. State class tidak
digambarkan untuk semua class, hanya yang mempunyai sejumlah state
yang terdefinisi dengan baik dan kondisi class berubah oleh state yang
berbeda.
4. Sequence Diagram
Menggambarkan kolaborasi dinamis antara sejumlah object. Kegunaanya
untuk menunjukkan rangkaian pesan yang dikirim antara object juga
interaksi antara object, sesuatu yang terjadi pada titik tertentu dalam
eksekusi sistem.
5. Collaboration Diagram
Menggambarkan kolaborasi dinamis seperti sequence diagrams. Dalam
menunjukkan pertukaran pesan, collaboration diagrams menggambarkan
object dan hubungannya (mengacu ke konteks). Jika penekannya pada
waktu atau urutan gunakan sequence diagrams, tapi jika penekanannya
pada konteks gunakan collaboration diagram.
6. Activity Diagram
Menggambarkan rangkaian aliran dari aktivitas, digunakan untuk
mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga
dapat juga digunakan untuk aktifitas lainnya seperti use case atau
interaksi.
7. Component Diagram
Menggambarkan struktur fisik kode dari komponent. Komponent dapat
berupa source code, komponent biner, atau executable component.
Sebuah komponent berisi informasi tentang logic class atau class yang
diimplementasikan sehingga membuat pemetaan dari logical view ke
component view.
8. Deployment Diagram
Menggambarkan arsitektur fisik dari perangkat keras dan perangkat lunak
sistem, menunjukkan hubungan komputer dengan perangkat (nodes) satu
sama lain dan jenis hubungannya. Di dalam nodes, executeable
component dan object yang dialokasikan untuk memperlihatkan unit
perangkat lunak yang dieksekusi oleh node tertentu dan ketergantungan
komponen.
Terima Kasih