Diagram-diagram UML dalam Analisis Berorientasi Objek

Artikel Terkait Ilmu Komputer
Jika belum mengetahui mengenai UML dan konsep berorientasi objek silahkan ikuti tautan tersebut untuk membaca postingannya.

Semakin kompleks bentukan sistem yang akan dibangun, maka semakin sulit komunikasi antara orang-orang yang terkait dalam pembuatan pengembangan piranti lunak. Untuk memecahkan masalah utama khususnya dari object oriented dengan menggunakan UML dengan menggambarkan dalam bentuk model. Model adalah gambaran abstrak dari suatu dasar masalah atau solusi yang mengandung objek-objek yang beraktifitas dengan saling mengirimkan messages atau pesan.

Dalam menggambarkan model dalam bentuk bagan atau diagram pada UML dapat didefiniskan dalam diagram-diagram berikut :
  1. Use case diagram
  2. Class diagram
  3. Statechart diagram
  4. Activity diagram
  5. Sequence diagram
  6. Collaboration diagram
  7. Component diagram
  8. Deployment diagram

Use Case Diagram

Use case diagram merupakan penggambaran fungsionalitas yang diharapkan dari sebuah sistem dengan merepresantasikan sebuah interaksi antara aktor dengan sistem. Use case diagram dekat kaitanya dengan kejadian atau scenario interaksi dengan sisstem. Sebuah aktor adalah entitas dari manusia atau mesin yang berinteraksi dengan sistem dalam melakukan pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat membantu dalam menyusun sebuah requirement sebuah sistem. Untuk memperjelas scenario use case diagram lihat gambaran suatu peristiwa dalam sebuah klinik di bawah ini :

“Seorang pasien menghubungi klinik kesehatan untuk membuat janji dalam rangka medical checkup. Resepsionis mendapatkan tangga dan waktu yang luang di buku penjadwalan dan memasukan janji tersebut ke dalam waktu yang tersedia itu.

Use case klinik kesehatan
Use case klinik kesehatan

Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam use casenya dengan memanggil use case yang di-include setiap kali use yang meng-include dieksekusi. Dan juga sebuah use case dapat di include lebih dari satu use case lain sehingga meminimalisir fungsionalitas yang sama.

Sebuah use case juga dapat meng-extend use case lain dengan kebiasaanya sendiri. Sedangkan hubungan generalisasi antar sesama use case yang satu merupakan spesialisasi dari yang lain.

cocntoh use case
Contoh Use Case

Class Diagram

Class merupakan spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari perancangan dan desain berorientasi objek. Class menggambarkan sebuah keadaan atribut/properi pada suatu sistem sekaligus layanan metode/fungsi dalam memanipulasi keadaan tersebut. Class memiliki tiga area pokok yaitu nama, atribut dan metode.

Struktur pokok class
Struktur pokok class


Class diagram menggambarkan struktur dan deskripsi class, package dan objek berserta hubungan satu sama lain seperti pewarian, asosiasi dan lain-lain. Class diagram memberikan pandangan sistem dengan menunjukan kelas-kelasnya dan hubungan mereka, class diagram menekankan pada hal menggambarkan hubungan apa yang terjadi bukan apa yang terjadi jika mereka berhubungan.

Relationship Class Diagram
Class diagram memiliki tiga macam jenis hubungan (relationship) sebagai berikut :

  1. Association, merupakan penghubung untuk hubungan statis antara dua kelas yang apabila salah satu bagian dari kelas mengetahui yang lainya dalam melakukan suatu aktifitas. Hubungan association lumrahnya menggambarkan class yang mempunyai atribut berupa class lain atau sebuah class yang mesti mengetahui eksistensi class lain.
  2. Aggregation, merupakan hubungan yang menyatakan bagian yang “terdiri atas”, adapun yang memilki titik pusat yang mencakup keseluruhan bagian. Misalkan “DetailPesan” merupakan bagian kumpulan dari “Pesan”.
  3. Generalization, merupakan hubungan yang hirarkis atau turunan antar class dengan mengasumsikan satu kelas merupakan sebuah superClass (kelas super) dari kelas lain. Class dapat diturunkan dari class lain dan juga mewarisi semua atribut dan metoda kelas class asalnya. Sebagai contoh “Pembayaran” adalah superClass dari “Tunai” dan “Credit”.

Dalam hubungan dapat memiliki dua titik yakni titik yang digunakan oleh panah navigability (pengatur alur arah) merupakan opsional dan titik multiplicity. Multiplicity dari suatu titik association adalah angka kemungkinan bagian dari suatu hubungan kelas pada titik yang lain.  Multiplicity berupa single number (angka tunggal) atau range number (angka batasan). Sebagai contoh, hanya dapat satu “Pelangga” untuk setiap “Pemesanan”, tapi satu “Pelanggan” hanya bisa memiliki beberapa “Pemesanan”.

Tabel Multiplicity Class
Tabel Multiplicity Class

Class Diagram
Contoh Class Diagram

Seiiringan dengan perkembangan model class, class dapat dikelompokan menjadi package dan object. Untuk mengatur pengorganisasian diagram class yang kompleks dapat dilakukan dengan mengelompokan kelas-kelas berupa package (paket). Kita juga dapat membuat diagram class yang terdiri atas package

Package Diagram Class
Contoh Package Diagram Class

Diagram object merupakan jenis khusus dari diagram class yang berguna untuk penjelasan yang sedikit dengan relasi yang sulit, khususnya relasi rekursif. Misalkan diagram class kecil menunjukan bahwasanya “Departemen” dapat mengandung banyak “departemen” yang lain.

Object Diagram Class
Contoh Object Diagram Class

Statechart Diagram

Statechart diagram merupakan penggambaran transisi dan perubahan keadaan (dari suatu state ke state yang lainnya) suatu objek pada sistem akibat dari stimuli timbal balik yang diterima. Statechart diagram menunjukan kemungkinan dari keadaan objek dan proses yang mengakibatkan perubahan pada keadaannya. Umumnya statechart diagram menggambarkan class tertentu (satu class dapat mempunyai lebih dari satu statechart diagram).
Proses peralihan atau perpindahan digambarkan dengan panah dari satu state ke state yang lain. Event (peristiwa) atau condition (keadaan) yang menyebabkan perubahan ditulis pada samping panah.
Start atau keadaan awal digambarkan dengan lingkaran penuh merupakan model untuk memulai action (kegiatan).
Keadaan akhir digambarkan dengan lingkaran penuh yang berada dalam lingkaran merupakan model untuk menghentikan kegiatan.
Action atau aksi yang terjadi sebagai hasil dari suatu peristiwa digambarkan dalam bentuk /namaaction. Jika objek tidak menunggu peristiwa dari luar untuk menyebabkan suatu perubahan maka sebagai gantinya melakukan activity. Hasil dari aktivitas tersebut yang menentukan keadaan berikutnya dari objek tersebut.

statechart diagram
Contoh statechart diagram


Dari contoh statechart login dari sistem bank online, logging in dapat dibagi menjadi empat tahapan proses, yaitu Getting SSN (Masukan SSN), GETTING IN (masukan PIN), Validating (periksa kesalahan) dan Rejecting (keluar)

Activity Diagram

Activity diagram merupakan penggambaran berbagai aliran aktivitas dalam suatu sistem, bagaimana masing-masing aktivitas beraal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Dan juga activity diagram dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram berhubungan dengan statechart diagram jika statechart diagram fokus pada objek dalam suatu proses atau proses menjadi suatu objek, sedangkan activity diagram fokus pada aktivitas-aktivitas yang terjadi dan terkait dalam suatu proses tunggal. Dengan kata lain menunjukan bagaimana aktivitas-aktivitas tersebut bergantung satu sama lain.

Activity diagram dapat dibagi menjadi beberapa jalur kelompok yang menunjukan objek yang mana bertanggung jawab dalam suatu aktivitas. Transisinya tunggal dari setiap adanya activity yang saling menhubungi pada aktivitas berikutnya. Sebuah transisi dapat membuat cabang kedua atau lebih percabangan. Percabangan digambarkan dengan bentuk menyerupai intan sedangkan transisi bercabang beberapa aktivitas paralel yang disebut fork digambarkan berbentuk solid bar (batang penuh). Dan yang menerangkan keluaran (output) dari percabangan disebut label guard expression (digambarkan dalam bentuk [namaoutput]).

Sebagai contoh, perhatikan proses yang terjadi pada pengambilan uang dari bank melauli mesin ATM. Terdapat tiga aktivitas kelas yang terkait yaitu Mesin ATM, Customer, dan Bank. Proses awal digambarkan dalam bentuk lingkaran di atas dan berakhir di bawah digambarkan dengan lingkaran solid dalam lingkaran. Untuk aktivitas digambarkan dalam bentuk kotak persegi.

Activity diagram
Contoh Activity diagram

 

Sequence Diagram

Sequence diagram merupakan diagram yang menjelaskan bagaimana suatu operasi itu dilakukan (pesan apa yang dikirim dan kapan pelaksanaanya), diagram ini digambarkan berdasarkan waktu. Objek yang berkaitan dengan proes berjalannya operasi diurutkan dari kiri ke kanan berdasarkan waktu terjadinya dalam pesan yang terurut.

Sequence diagram dapat dipergunakan untuk menggambarkan skenario yang dilakukan sebagai respon dari sebuah event dalam menghasikan output tertentu. Berawal dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi dan output yang dihasilkan.

Sebagai contoh di bawah ini adalah sequence diagram untuk pembuatan reservasi hotel.

sequence diagram
Contoh sequence diagram


‘Reservation window’ mengirim pesan makeReservation() ke ‘HotelChain’. Kemudian ‘HotelChain’ mengirim pesan yang sama ke ‘Hotel’. Bila ‘Hotel’ punya kamar kosong, maka dibuat ‘Reservation’ dan ‘Confirmation’.
Lifeline adalah  garis  dot (putus-putus) vertikal pada gambar, menerangkan waktu terjadinya suatu obyek. Setiap panah yang ada adalah pemanggilan suatu pesan. Panah berasal dari pengirim ke bagian paling atas dari batang kegiatan (activation bar) dari suatu pesan  pada lifeline penerima. Activation  bar menerangkan  lamanya  suatu pesan diproses.
Pada gambar diagram , terlihat bahwa ‘Hotel’ telah melakukan pemanggilan diri sendiri untuk pemeriksaan jika ada kamar kosong. Bila benar, maka ‘Hotel’ membuat ‘Reservation’ dan ‘Confirmation’. Pemanggilan diri sendiri disebut dengan iterasi. Expression yang dikurung dengan “[ ]”, adalah condition (keadaan kondisi).
Pada diagram dapat  dibuat note (catatan). Pada  gambar,  terlihat seperti selembar kertas yang berisikan teks. Note bisa diletakan dimana saja pada diagram UML.

Collaboration Diagram

Collaboration diagram membawa informasi yang sama dengan sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan waktu penyampaian pesan melainkan dari waktu pesan itu dikirimkan. Setiap pesan mempunyai sequence number, yang dimana pesan dari level tertinggi memiliki nomor 1. pesan dari level yang sama mempunyai prefiks number yang sama namun suffix berbeda bergantung pada posisinya. Kotak kegiatan diberi label dengan nama kelas atau objek, untuk nama kelas dibatasi dengan simbol colons atau titik dua (:).

Collaboration diagram
Contoh Collaboration diagram

Component Diagram

Component diagram merupakan penggambaran struktur dan hubungan antar komponen piranti lunak termasuk ketergantungan (dependency).

Komponen piranti lunak merupakan modul yang berisi code, baik itu berupa source code maupun binary code atau library dan executable serta yang tampil saat compile time, link time maupun run time. Pada umumnya komponen terbentuk dari class atau package, tapi dapat juga terbentuk dari komponen-komponen yang lebih kecil maupun berupa interface yaitu kumpulan layanan yang disediakan sebuah komponen untuk keperluan komponen lain.

component diagram
Contoh component diagram

Deployment Diagram

Deployment diagram atau bisa disebut physical diagram merupakan penggambaran detail bagaimana komponen di deploy dalam insfratruktur sistem, dimana komponen akan terletak pada mesin, server, atau piranti keras apa. Dan bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server dan hal-hal lainnya yang bersifat fisik.

Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini.

Deployment diagram
Contoh Deployment diagram


Component diagram dan deployment diagram juga dapat disatukan menjadi component deployment diagram seperti pada gambar diagram dibawah ini :

Component Deployment Diagram
Contoh Component Deployment Diagram


Rekomendasi Web Hosting
  1. 20rb perbulan. Diskon hingga 40% kode kupon: MCP Daftar disini (apache).
  2. 10rb perbulan. Diskon hingga 75% kode kupon: MCP Daftar disini (litespeed).
  3. 10rb perbulan. Diskon hingga 70% kode kupon: aff-MCP Daftar disini (apache).