Class Diagram
Materi :
• Pendahuluan
• Konsep Object dan Class
• Menggambar Class
• Class Diagram
• Study Kasus
Class Diagram
• Class adalah sebuah spesifikasi yang jika di-instansiasi akan menghasilkan
sebuah objek dan merupakan inti dari pengembangan dan desain
berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu
sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan
tersebut (metoda/fungsi).
• Class diagram menggambarkan struktur dan deskripsi class, package dan
objek beserta hubungan satu sama lain seperti containment, pewarisan,
asosiasi, dan lain-lain.
• Diagram Class memberikan pandangan secara luas dari suatu sistem
dengan menunjukan kelas-kelasnya dan hubungan mereka. Diagram Class
bersifat statis; menggambarkan hubungan apa yang terjadi bukan apa
yang terjadi jika mereka berhubungan.
• Class diagram dapat membantu dalam memvisualisasikan struktur kelas-
kelas dari suatu sistem dan merupakan tipe diagram yang paling ditemui
dalam pemodelan system berbasis object-oriented. Class Diagram
memperlihatkan sekumpulan class, interface, dan collaborations dan relasi
yang ada didalamnya.
• Selama proses analisa, class diagram memperhatikan aturan-aturan dan
tanggung jawab entitas yang menentukan perilaku sistem. Selama tahap
desain, class diagram berperan dalam menangkap struktur dari semua
kelas yang membentuk arsitektur sistem yang dibuat. Kita memodelkan
class diagram untuk memodelkan static design view dari suatu system.
•
Object
• Object adalah gambaran dari entity, baik dunia nyata atau konsep
dengan batasan-batasan yang tepat.
• Object bisa mewakili sesuatu yang nyata dalam domain problem kita
seperti komputer, barang, konsumen, dapat berupa konsep seperti
proses penarikan uang, pembayaran, pengembalian buku dan lain-
lain.
• Dari object-object ini kita bisa mengabstraksikan candidate class yang
mungkin terlibat.
Karakteristik Object
1. State, merupakan suatu kondisi / keadaan dari object yang mungkin
ada. Status dari object akan berubah setiap waktu dan ditentukan
oleh sejumlah property dan relasi dengan object lainnya.
2. Behavior (sifat) menentukan bagaimana object merespon
permintaan dari object lain dan melambangkan setiap hal yang
dapat dilakukan. Sifat ini diimplementasikan dengan sejumlah
operasi untuk object.
3. Identity (identitas) artinya setiap object yang ada dalam suatu
system adalah “unik”.
Cara menemukan Object
1. Pengelompokan berdasarkan kata/frasa benda pada skenario /
dokumentasi use case
2. Berdasarkan daftar kategori objek, antara lain:
• Objek fisik : pesawatTelepon
• Spesifikasi/rancangan/deskripsi : deskripsiPesawat
• Tempat : gudang
• Transaksi : penjualan
• Butir yang terlibat pada transaksi : barang jualan
• Peran : pelanggan
• Wadah : pesawatTerbang
• Benda yang diwadahi : penumpang
• Organisasi : departemen
• Kejadian : pendaratan
• Proses : reservasi
• Aturan atau kebijakan : aturanDiskon
• Katalog atau rujukan : daftarPelanggan
Candidate Class
• Candidate class dapat kita tentukan dengan melihat skenario use case
yang telah kita buat. Candidate class tersebut dapat diambil dari kata
benda yang muncul pada skenario use case.
Class
• Class adalah deskripsi sekelompok object dari property (atribut), sifat
(operasi), relasi antar object dan semantik yang umum.
• class merupakan blueprint / template / cetakan dari satu atau lebih
object.
• Setiap object merupakan contoh dari beberapa class dan object tidak
dapat menjadi contoh lebih dari satu class.
Notasi Class
• Penamaan class menggunakan kata benda tunggal yang merupakan
abstraksi yang terbaik.
• Pada UML, class digambarkan dengan segi empat yang dibagi.
• Bagian atas merupakan nama dari class. Bagian yang tengah
merupakan struktur dari class (atribut) dan bagian bawah merupakan
sifat dari class (operasi).
Struktur Class
• Class memiliki tiga area pokok : Nama (dan stereotype), Atribut, dan
Metoda (operasi)
• Atribut dan metoda dapat memiliki salah satu sifat berikut:
• Private, tidak dapat dipanggil dari luar class yang bersangkutan
• Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak
yang mewarisinya
• Public, dapat dipanggil oleh siapa saja
Nama
Atribut
Operasi
Instance
Penamaan Class
• Setiap kelas harus memiliki sebuah nama yang dapat digunakan untuk
membedakannya dari kelas lain.
• Penamaan class menggunakan kata benda tunggal yang merupakan
abstraksi yang terbaik.
• Nama kelas dapat dituliskan dengan 2 cara :
1. Hanya menuliskan nama dari kelas (simple name).
2. Nama kelas diberi prefix nama package letak class tersebut (path name).
• Penulisan nama kelas, huruf pertama dari setiap kata pada nama
kelas ditulis dengan menggunakan huruf kapital. Contohnya,
Customer dan FraudAgent.
Contoh penamaan Class
Attribute
• Sebuah class mungkin memiliki beberapa attribute atau tidak sama
sekali.
• Atribut merepresentasikan beberapa property dari sesuatu yang kita
modelkan, yang dibagi dengan semua object dari semua class yang
ada.
• Contohnya, setiap tembok memiliki tinggi, lebar dan ketebalan
• Untuk penulisan atribut kelas, biasanya huruf pertama dari tiap kata
merupakan huruf kapital, kecuali untuk huruf awal. Contoh :
birthDate, length.
Cara menemukan atribut
1. Dari dokumentasi use case.
• Contoh : “Pemakai memasukkan nm pegawai, alamat, no ktp
• Di apotik “ Penjualan memasukkan data obat meliputi kode, nama, jenis”
2. Dari memeriksa struktur basisdata
Methods / Operasi
• Methods / Operasi adalah abstraksi dari segala sesuatu yang dapat
kita lakukan pada sebuah object dan ia berlaku untuk semua object
yang terdapat dalam class tersebut.
• Class mungkin memiliki beberapa operasi atau tanpa operasi sama
sekali.
• Contohnya adalah sebuah class Kotak dapat dipindahkan, diperbesar
atau diperkecil.
• Biasanya, pemanggilan operasi pada sebuah object akan mengubah
data atau kondisi dari object tersebut.
Visibility / Sifat Class
• Visibility merupakan property yang sangat penting dalam
pendefinisian atribut dan operasi pada suatu class.
• Visibility menspesifikasikan apakah atribut/operasi tersebut dapat
digunakan/diakses oleh class lain. UML menyediakan 3 buah tingkat
visibility, yaitu:
• Private (-), tidak dapat dipanggil dari luar class yang bersangkutan
• Protected (#), hanya dapat dipanggil oleh class yang bersangkutan dan anak-
anak yang mewarisinya
• Public (+), dapat dipanggil oleh siapa saja
Contoh sifat Class
Menggambar Class
• Ketika menggambarkan sebuah class kita tidak perlu menampilkan
seluruh atribut atau operasi.
• Karena dalam sebagian besar kasus kita tidak dapat menampilkannya
dalam sebuah gambar, karena terlalu banyaknya atribut atau
operasinya, bahkan terkadang tidak perlu karena kurang relevannya
atribut atau operasi yang akan ditampilkan.
• Sehingga kita dapat menampilkan atribut dan operasinya hanya
sebagian atau tidak sama sekali. Kosongnya tempat pengisian bukan
berarti tidak ada. Karena itu kita dapat menambahkan tanda ellipsis
(…) pada akhir daftar yang menunjukkan bahwa masih ada atribut
atau operasi yang lain.
Stereotype Class
• Stereotype adalah sebuah mekanisme yang digunakan untuk
mengkategorikan sebuah class. Misal, kita ingin mencari form dalam
model. Kita dapat menciptakan Form stereotype, dan dapat
menemukan seluruh form dalam stereotype Form. Fitur ini
memudahkan kita dalam mengorganisasi responsibility dari tiap-tiap
class. Sebagai contoh, beberapa class yang memiliki stereotype Form
memiliki responsibility untuk menampilkan dan menerima informasi
dari user.
• Terdapat 3 stereotype utama dalam UML, yaitu boundary, entity dan
control.
Boundary Class
• Boundary class adalah class yang terdapat batasan sistem dan dunia
nyata. Hal ini mencakup semua form, report, hardware interface
seperti printer atau scanner.
• Boundary class dapat diidentifikasi dari Use Case Diagram. Minimal
terdapat satu buah boundary class dalam relasi actor dengan use
case. Boundary class adalah yang mengakomodasi interaksi antara
actor dengan sistem.
4_Class Diagram.pdf
Entity Class
• Entity class menyimpan informasi yang mungkin akan disimpan ke
sebuah storage. Class dengan stereotype entity dapat ditemukan di
flow of event (scenario dari use-case diagram) dan interaction
diagram.
• Entity class dapat diidentifikasi dengan mencari kata benda (noun)
yang ada pada flow of events. Selain itu, dapat juga diidentifikasi dari
struktur database (dilihat dari nama-nama tabelnya). Sebuah entity
class mungkin perlu dibuat untuk sebuah tabel. Bila sebuah table
menyimpan informasi secara permanen, maka entity class akan
menyimpan informasi pada memory ketika sistem sedang running.
4_Class Diagram.pdf
Control Class
• Control class bertanggung jawab dalam mengatur kelas-kelas yang
lain. Seperti yang terlihat pada gambar di bawah, control class
bertanggung jawab dalam mendelegasikan responsibility kepada kelas
lain.
• Control class juga bertanggung jawab dalam mengetahui dan
menyampaikan business rule dari sebuah organisasi. Class ini
menjalankan alternate flow dan mampu mengatasi error. Karena
alasan ini control class sering disebut sebagai manager class.
4_Class Diagram.pdf
Relationship
• Relasi atau relationship menghubungkan beberapa objek sehingga
memungkinkan terjadinya interaksi dan kolaborasi diantara objek-
objek yang terhubung.
• Dalam pemodelan class diagram, terdapat tiga buah relasi utama
yaitu association, agregation dan generalization.
Bentuk Relationships
Diagram Class mempunyai 3 macam relationships (hubungan):
• Association. Suatu hubungan antara bagian dari dua kelas. Terjadi
association antara dua kelas jika salah satu bagian dari kelas mengetahui
yang lainnya dalam melakukan suatu kegiatan. Di dalam diagram, sebuah
association adalah penghubung yang menghubungkan dua kelas.
• Aggregation. Suatu association dimana salah satu kelasnya merupakan
bagian dari suatu kumpulan. Aggregation memiliki titik pusat yang
mencakup keseluruhan bagian. Sebagai contoh : OrderDetail merupakan
kumpulan dari Order.
• Generalization. Suatu hubungan turunan dengan mengasumsikan satu
kelas merupakan suatu superClass dari kelas yang lain. Generalization
memiliki tingkatan yang berpusat pada superClass. Contoh : Payment
adalah superClass dari Cash, Check, dan Credit.
Asosiasi
• Relasi asosiasi merupakan relasi structural yang menspesifikasikan
bahwa satu objek terhubung dengan objek lainnya. Relasi ini tidak
menggambarkan aliran data, sebagaimana yang terdapat pada
pemodelan desain pada analisa terstruktur.
• Relasi asosiasi dapat dibagi menjadi 2(dua) jenis, yaitu
uni-directional association dan bi-directional association
Uni-directional
• Objek pilot memiliki uni-directional association dengan objek
pesawat.
• Relasi uni-directional diatas memungkinkan objek pilot untuk
memanggil property dari objek pesawat. Namun tidak berlaku
sebaliknya. Objek pesawat tidak dapat mengakses property dari objek
pilot.
PILOT PESAWAT
Bi-directional
• Objek pilot dapat memanggil property yang dimiliki oleh objek
pesawat. Begitu juga sebaliknya, objek pesawat juga dapat memanggil
property dari objek pilot.
PILOT PESAWAT
Asosiasi
• Hubungan association mempunyai 2 titik. Salah satu titik bisa
memiliki label untuk menjelaskan association tersebut. Contoh :
OrderDetail adalah line Item untuk setiap permintaan.
• Panah navigability (pengatur alur arah) dalam suatu association
menggambarkan arah mana association dapat ditransfer atau
disusun.
• Seperti dalam contoh : OrderDetail dapat disusun dari item-nya,
namun tidak bisa sebaliknya. Panah ini juga menjelaskan siapa
“memiliki” implementasi dari association; dalam kasus ini OrderDetail
memiliki Item. Association tanpa arah panah merupakan bidirectional
(bolak-balik).
Aggregation
• Aggregation merupakan bentuk khusus dari asosiasi dimana induk
terhubung dengan bagian-bagiannya.
• Aggregation merepresentasikan relasi “has-a”, artinya sebuah class
memiliki/terdiri dari bagian-bagian yang lebih kecil.
• Dalam UML, relasi agregasi digambarkan dengan open diamond pada
sisi yang menyatakan induk (whole)
4_Class Diagram.pdf
4_Class Diagram.pdf
Multiplicity
• Multiplicity menentukan/mendefinisikan banyaknya object yang
terhubung dalam suatu relasi.
• Indikator multiplicity terdapat pada masing-masing akhir garis relasi,
baik pada asosiasi maupun agregasi
Multiplicity
• Multiplicity dari suatu titik association adalah angka kemungkinan
bagian dari hubungan kelas dengan single instance (bagian) pada titik
yang lain.
• Multiplicity berupa single number (angka tunggal) atau range number
(angka batasan). Pada contoh, hanya bisa satu ‘Customer’ untuk
setiap ‘Order’, tapi satu ‘Customer’ hanya bisa memiliki beberapa
‘Order’.
4_Class Diagram.pdf
Dependency
• Dependency merupakan sebuah relasi yang menyebutkan bahwa
perubahan pada satu class (misal class event), maka akan
mempengaruhi class lain yang menggunakannya (misal class
window), tetapi tidak berlaku sebaliknya.
• Pada umumnya, relasi dependency dalam konteks Class Diagram,
digunakan apabila terdapat satu class yang menggunakan / meng-
instance class lain sebagai argumen dari sebuah method.
• Perhatikan contoh dibawah, bila spesifikasi dari class Channel
berubah, maka method playOn pada class FilmClip juga akan
berubah.
4_Class Diagram.pdf
Inheritance
• Inheritance merupakan salah satu karakteristik dalam pemrograman
berorientasi objek, dimana sebuah class mewarisi / inherit sifat-sifat
(dalam hal ini atribut & operasi) dari class lain yang merupakan parent dari
class tadi. Class yang menurunkan sifat-sifatnya disebut superclass,
sedangkan class yang mewarisi sifat dari superclass disebut subclass.
• Inheritance disebut juga hierarki “is-a” (adalah sebuah) atau “kind-of”
(sejenis). Subclass dapat memiliki atau menggunakan atribut & operasi
tambahan yang hanya berlaku pada tingkat hierarkinya.
• Karena inheritance relationship bukan merupakan relationship diantara
objek yang berbeda, maka relationship ini tidak diberi nama. Begitu pula
dengan penamaan role dan multiplicity
Generalization
• Abstract class: jika satu class hanya diperlukan sebagai template untuk class-class yang
lebih spesifik (dalam sistem tidak akan ada object dari class tsb)
• Tidak memiliki instance
• Dalam notasi namanya dituliskan huruf miring (italic)
4_Class Diagram.pdf
• class person
merupakan
generalisasi, class
doctor dan class
patient adalah
spesialisasi.
• class yang menjadi
superclass (dalam hal
ini adalah class person)
dinamakan abstract
class, sedangkan class
yang menjadi subclass
(class doctor dan class
patient) dinamakan
concrete class
4_Class Diagram.pdf
Simbol Class Diagram
Simbol Deskripsi
package
package
package merupakan sebuah
bungkusan dari satu atau lebih kelas
kelas
nama_kelas
+atribut
+operasi()
kelas pada struktur sistem
antarmuka / interface
nama_interface
sama dengan konsep interface dalam
pemrograman berorientasi objek
asosiasi / association relasi antar kelas dengan makna
umum, asosiasi biasanya juga disertai
dengan multiplicity
asosiasi berarah / directed association relasi antar kelas dengan makna
kelas yang satu digunakan oleh kelas
yang lain, asosiasi biasanya juga
disertai dengan multiplicity
Simbol (2)
asosiasi berarah / directed association relasi antar kelas dengan makna
kelas yang satu digunakan oleh kelas
yang lain, asosiasi biasanya juga
disertai dengan multiplicity
generalisasi relasi antar kelas dengan makna
generalisasi-spesialisasi (umum
khusus)
kebergantungan / dependency relasi antar kelas dengan makna
kebergantungan antar kelas
agregasi / aggregation relasi antar kelas dengan makna
semua-bagian (whole-part)
Contoh class diagram
• Setiap diagram Class memiliki Class (kelas), association, dan
multiplicity. Sedangkan navigability (alur arah) dan role (kegiatan)
merupakan optional (tidak diharuskan).
Package Diagram
• Untuk mengatur pengorganisasian diagram Class yang kompleks,
dapat dilakukan pengelompokan kelas-kelas berupa package (paket).
• Package adalah kumpulan elemen-elemen logika UML.
• Gambar di bawah ini mengenai model bisnis dengan pengelompokan
kelas-kelas dalam bentuk paket-paket :
Case (1) : Perpustakaan
peminjaman
pengembalian
Pustakawan
penambahan buku baru
penggantian buku
denda
<<extend>>
<<extend>>
Login
<<include>>
<<include>>
<<include>>
Mahasiswa
Pencarian buku
<<include>>
4_Class Diagram.pdf
Case (2) : Penjualan Online
4_Class Diagram.pdf
Case (3) : Rental Film System
Operator
Tambah Pelanggan baru
Update Pelanggan
Hapus Pelanggan
Cari Pelanggan
Tambah Film Baru
Cek Judul Film
Hapus Film
Update Film
Cari Film
Daftar Sewa
Sewa Film
Cek Pelanggan
Cek Stok Film
Update Stok
Kembalikan Film
Olah Pelanggan
Olah Film
Transaksi Peminjaman
Cek Ketersedian Film
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
Pelanggan
<<include>>
<<include>>
<<include>>
UISewa
<<boundary>>
+Sewa()
CariPelanggan,
<<control>>
+Pelanggan
+CariPelanggan()
Pelanggan.
<<entity>>
+id_Pelanggan
+Nama
+Alamat
+No_hp
+getPelanggan()
+TambahPelanggan()
+UpdatePelanggan()
+hapusPelanggan()
OlahPenyewaan
<<control>>
+Sewa
+Sewa()
CariFilm
<<control>>
+Film
+CariFilm()
KategoriFilm
<<entity>>
+Id_Kategori
+Kategori
+getKategoriFilm()
Film.,
<<entity>>
+Id_film
+Kategori
+Sinopsis
+Judul
+Pemain
+Format_Film
+Jumlah_Copy
+Jumlah_sewa
+Biaya_sewa
+Original
+GetFilm()
+TambahFilm()
+UpdateFilm()
+hapusFilm()
TSewa Film
<<entity>>
+no_notaSewa
+TanggalSewa
+Id_Pelanggan
+TambahSewaFilm()
DetilSewaFilm
<<entity>>
+Id_detilSewa
+no_notasewa
+Id_Film
+Copy ke
+Tanggal
+tambahDetilSewa()
1
*
*
1
*
1 1
*
MenuPelanggan.
<<boundary>>
+startInterFace()
+cekKetersediaanFilm()
UIFilm
<<boundary>>
+StartIntarFace()
+TambahFilm()
+UpdateFilm()
+HapusFilm()
Olah Film
<<control>>
+Tambah()
+Hapus()
UIPelanggan
<<boundary>>
+StartInterface()
+TambahPelangganBaru()
+UpdatePelanggan()
+Hapus Pelanggan()
OlahPelanggan
<<control>>
+Pelanggan
+Tambah()
+Update()
+Hapus()
Referensi
• Catur Iswahyudi + Edhy Sutanta, UML, Class Diagrams
• http://www.agilemodeling.com/
• http://www.visual-parActivity Diagramigm.com/VPGallery/diagrams/index.html

More Related Content

PPTX
Pert.2 proteksi perangkat keras
PPTX
Pemrograman Konsep Routing
PDF
Keamanan dan proteksi sistem operasi (sim)
PPT
Jaringan Komputer Pertemuan 6-ip-addresssubnetting
DOC
Pengertian fiber optik
PPTX
Konsep Routing - v2.pptx
PPT
chapter- 6 network layer of computer network
PPT
SUBSTANSI GENETIKA.ppt
Pert.2 proteksi perangkat keras
Pemrograman Konsep Routing
Keamanan dan proteksi sistem operasi (sim)
Jaringan Komputer Pertemuan 6-ip-addresssubnetting
Pengertian fiber optik
Konsep Routing - v2.pptx
chapter- 6 network layer of computer network
SUBSTANSI GENETIKA.ppt

What's hot (18)

PPTX
Biokimia DNA
PPT
Mutasi kromosom
PPT
inheritance
PDF
Interaksi Manusia Dan Komputer Soal + Jawaban
PPT
Pola_hereditas.ppt
PPT
Pertemuan 12 subnetting cara cepat
PDF
Java OOP Programming language (Part 6) - Abstract Class & Interface
PDF
Data Mining Clustering
PPTX
Program turunan numerik
PDF
MK Keamanan Komputer - Sesi 2 : Attack - Threat - Vulnerability
PDF
Modul praktikum java pemrograman berorientasi objek
PPT
Ip addressing
DOCX
Laporan PBO Pratikum 3
PPT
Pengantar jaringan wireless
PPTX
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
DOCX
Cara instalasi program aplikasi
DOCX
Type header file in c++ and its function
PPT
Pengertian sistem komunikasi
Biokimia DNA
Mutasi kromosom
inheritance
Interaksi Manusia Dan Komputer Soal + Jawaban
Pola_hereditas.ppt
Pertemuan 12 subnetting cara cepat
Java OOP Programming language (Part 6) - Abstract Class & Interface
Data Mining Clustering
Program turunan numerik
MK Keamanan Komputer - Sesi 2 : Attack - Threat - Vulnerability
Modul praktikum java pemrograman berorientasi objek
Ip addressing
Laporan PBO Pratikum 3
Pengantar jaringan wireless
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Cara instalasi program aplikasi
Type header file in c++ and its function
Pengertian sistem komunikasi
Ad

Similar to 4_Class Diagram.pdf (20)

PPT
P6_Class-Diagram yang diperlukan untuk merancang .ppt
PPTX
Pertemuan 5 Pemodelan Struktural FIX .pptx
PDF
RPL-5.OOAD UML(2).pdf
PDF
[RPL2] Class Diagram dan Konsep Object Oriented (1)
PDF
04 class diagram-uml-netbeans
PDF
Pertemuan 6 Rekayasa Perangkat Lunak
PDF
04 class diagram-uml-netbeans
PPT
12655598.ppt
ODP
Tugas 3 ADBO-Class, Object, State, dan Activity Diagram
PPTX
Diagram Class dan Diagram Object presentasi
PDF
Class diagram
PDF
Class Diagram
PPTX
class-diagram.pptx
PPTX
UML (Unified Modeling Language) - Rekayasa Perangkat Lunak
PPT
PERANCANGAN BERORIENTASI OBJEK (Object Oriented Programing)
PPT
1. Pengantar Objek.ppt
PDF
Bab 9 class dan object diagram 2010
PDF
Konsep-Object-dan-Class dalam pemrograman.pdf
PPT
perancangan berorientasi objek
PPTX
8. konsep class, object dan method
P6_Class-Diagram yang diperlukan untuk merancang .ppt
Pertemuan 5 Pemodelan Struktural FIX .pptx
RPL-5.OOAD UML(2).pdf
[RPL2] Class Diagram dan Konsep Object Oriented (1)
04 class diagram-uml-netbeans
Pertemuan 6 Rekayasa Perangkat Lunak
04 class diagram-uml-netbeans
12655598.ppt
Tugas 3 ADBO-Class, Object, State, dan Activity Diagram
Diagram Class dan Diagram Object presentasi
Class diagram
Class Diagram
class-diagram.pptx
UML (Unified Modeling Language) - Rekayasa Perangkat Lunak
PERANCANGAN BERORIENTASI OBJEK (Object Oriented Programing)
1. Pengantar Objek.ppt
Bab 9 class dan object diagram 2010
Konsep-Object-dan-Class dalam pemrograman.pdf
perancangan berorientasi objek
8. konsep class, object dan method
Ad

Recently uploaded (20)

PDF
514341.514341.pdf514341.pdf514341.pdf514341.pdf514341.pdf
PPTX
pengantarBencana.pptxbvdfrjhkhvfkvhkfvbhfkdhvdkkkkkkkkkkkkkkkkkbvfmnvvvvvvvvv...
PPT
Modul-Projek-JAJANAN-PASAR-YANG-MENGHASILKAN-RUPIAH-Fase-C.ppt
PPTX
ANALISIS DATA FUNGSI INFORMATIKA SMP.pptx
PDF
811848831-PPT-TES-DESKRIPShhhhhhhhhI.pdf
PPTX
KEL 8_PEMBELAJARAN Ilmu Pengetahuan Alam DI SD.pptx
PPTX
Gagal Ginjal Akut GHINA SELVIRA .pptx
PPTX
Miskonsepsi Umum tentang Koding dan Kecerdasan Artifisial.pptx
PDF
c3oYi7NNpW3omVenymVtXLtqfSi2hzugUlVYbGlQ.pdf
PDF
Spesial Perencanaan dan analisisi bag 1
PDF
pengenalan_Iot perangkatcerdasmasdepan.pdf
PPTX
materi abimtek aplikasi ehdw bagi kader pembangunan manusia tahun 2025
DOCX
proposal nurul 2.docx Fix dokumen yang penting
PPTX
Flowchart Pengaplikasian Sistem Arduino.pptx
PPTX
PERENCANAAN MEP PERUM.MULTI CIPTA PERMAI_Type 36.pptx
DOCX
PROPOSAL PENGARUH PEMBERIAN MIKRONUTRIEN TERHADAP PENINGKATAN INDEKS MASA TUB...
PPTX
Presentasi Pengenalan Sel smp kelas VII semester I.pptx
PDF
BAHAN PELAJARAN PELAYANAN ANAK GKE 2025.pdf
PDF
6754aa176b39b (1).pdf data analisis acara
PPTX
Pelatihan_Model_Pembinaan_Gen_Z_Dasar_Menengah.pptx
514341.514341.pdf514341.pdf514341.pdf514341.pdf514341.pdf
pengantarBencana.pptxbvdfrjhkhvfkvhkfvbhfkdhvdkkkkkkkkkkkkkkkkkbvfmnvvvvvvvvv...
Modul-Projek-JAJANAN-PASAR-YANG-MENGHASILKAN-RUPIAH-Fase-C.ppt
ANALISIS DATA FUNGSI INFORMATIKA SMP.pptx
811848831-PPT-TES-DESKRIPShhhhhhhhhI.pdf
KEL 8_PEMBELAJARAN Ilmu Pengetahuan Alam DI SD.pptx
Gagal Ginjal Akut GHINA SELVIRA .pptx
Miskonsepsi Umum tentang Koding dan Kecerdasan Artifisial.pptx
c3oYi7NNpW3omVenymVtXLtqfSi2hzugUlVYbGlQ.pdf
Spesial Perencanaan dan analisisi bag 1
pengenalan_Iot perangkatcerdasmasdepan.pdf
materi abimtek aplikasi ehdw bagi kader pembangunan manusia tahun 2025
proposal nurul 2.docx Fix dokumen yang penting
Flowchart Pengaplikasian Sistem Arduino.pptx
PERENCANAAN MEP PERUM.MULTI CIPTA PERMAI_Type 36.pptx
PROPOSAL PENGARUH PEMBERIAN MIKRONUTRIEN TERHADAP PENINGKATAN INDEKS MASA TUB...
Presentasi Pengenalan Sel smp kelas VII semester I.pptx
BAHAN PELAJARAN PELAYANAN ANAK GKE 2025.pdf
6754aa176b39b (1).pdf data analisis acara
Pelatihan_Model_Pembinaan_Gen_Z_Dasar_Menengah.pptx

4_Class Diagram.pdf

  • 2. Materi : • Pendahuluan • Konsep Object dan Class • Menggambar Class • Class Diagram • Study Kasus
  • 3. Class Diagram • Class adalah sebuah spesifikasi yang jika di-instansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). • Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. • Diagram Class memberikan pandangan secara luas dari suatu sistem dengan menunjukan kelas-kelasnya dan hubungan mereka. Diagram Class bersifat statis; menggambarkan hubungan apa yang terjadi bukan apa yang terjadi jika mereka berhubungan.
  • 4. • Class diagram dapat membantu dalam memvisualisasikan struktur kelas- kelas dari suatu sistem dan merupakan tipe diagram yang paling ditemui dalam pemodelan system berbasis object-oriented. Class Diagram memperlihatkan sekumpulan class, interface, dan collaborations dan relasi yang ada didalamnya. • Selama proses analisa, class diagram memperhatikan aturan-aturan dan tanggung jawab entitas yang menentukan perilaku sistem. Selama tahap desain, class diagram berperan dalam menangkap struktur dari semua kelas yang membentuk arsitektur sistem yang dibuat. Kita memodelkan class diagram untuk memodelkan static design view dari suatu system. •
  • 5. Object • Object adalah gambaran dari entity, baik dunia nyata atau konsep dengan batasan-batasan yang tepat. • Object bisa mewakili sesuatu yang nyata dalam domain problem kita seperti komputer, barang, konsumen, dapat berupa konsep seperti proses penarikan uang, pembayaran, pengembalian buku dan lain- lain. • Dari object-object ini kita bisa mengabstraksikan candidate class yang mungkin terlibat.
  • 6. Karakteristik Object 1. State, merupakan suatu kondisi / keadaan dari object yang mungkin ada. Status dari object akan berubah setiap waktu dan ditentukan oleh sejumlah property dan relasi dengan object lainnya. 2. Behavior (sifat) menentukan bagaimana object merespon permintaan dari object lain dan melambangkan setiap hal yang dapat dilakukan. Sifat ini diimplementasikan dengan sejumlah operasi untuk object. 3. Identity (identitas) artinya setiap object yang ada dalam suatu system adalah “unik”.
  • 7. Cara menemukan Object 1. Pengelompokan berdasarkan kata/frasa benda pada skenario / dokumentasi use case 2. Berdasarkan daftar kategori objek, antara lain: • Objek fisik : pesawatTelepon • Spesifikasi/rancangan/deskripsi : deskripsiPesawat • Tempat : gudang • Transaksi : penjualan • Butir yang terlibat pada transaksi : barang jualan • Peran : pelanggan • Wadah : pesawatTerbang • Benda yang diwadahi : penumpang
  • 8. • Organisasi : departemen • Kejadian : pendaratan • Proses : reservasi • Aturan atau kebijakan : aturanDiskon • Katalog atau rujukan : daftarPelanggan
  • 9. Candidate Class • Candidate class dapat kita tentukan dengan melihat skenario use case yang telah kita buat. Candidate class tersebut dapat diambil dari kata benda yang muncul pada skenario use case.
  • 10. Class • Class adalah deskripsi sekelompok object dari property (atribut), sifat (operasi), relasi antar object dan semantik yang umum. • class merupakan blueprint / template / cetakan dari satu atau lebih object. • Setiap object merupakan contoh dari beberapa class dan object tidak dapat menjadi contoh lebih dari satu class.
  • 11. Notasi Class • Penamaan class menggunakan kata benda tunggal yang merupakan abstraksi yang terbaik. • Pada UML, class digambarkan dengan segi empat yang dibagi. • Bagian atas merupakan nama dari class. Bagian yang tengah merupakan struktur dari class (atribut) dan bagian bawah merupakan sifat dari class (operasi).
  • 12. Struktur Class • Class memiliki tiga area pokok : Nama (dan stereotype), Atribut, dan Metoda (operasi) • Atribut dan metoda dapat memiliki salah satu sifat berikut: • Private, tidak dapat dipanggil dari luar class yang bersangkutan • Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya • Public, dapat dipanggil oleh siapa saja Nama Atribut Operasi
  • 14. Penamaan Class • Setiap kelas harus memiliki sebuah nama yang dapat digunakan untuk membedakannya dari kelas lain. • Penamaan class menggunakan kata benda tunggal yang merupakan abstraksi yang terbaik. • Nama kelas dapat dituliskan dengan 2 cara : 1. Hanya menuliskan nama dari kelas (simple name). 2. Nama kelas diberi prefix nama package letak class tersebut (path name). • Penulisan nama kelas, huruf pertama dari setiap kata pada nama kelas ditulis dengan menggunakan huruf kapital. Contohnya, Customer dan FraudAgent.
  • 16. Attribute • Sebuah class mungkin memiliki beberapa attribute atau tidak sama sekali. • Atribut merepresentasikan beberapa property dari sesuatu yang kita modelkan, yang dibagi dengan semua object dari semua class yang ada. • Contohnya, setiap tembok memiliki tinggi, lebar dan ketebalan • Untuk penulisan atribut kelas, biasanya huruf pertama dari tiap kata merupakan huruf kapital, kecuali untuk huruf awal. Contoh : birthDate, length.
  • 17. Cara menemukan atribut 1. Dari dokumentasi use case. • Contoh : “Pemakai memasukkan nm pegawai, alamat, no ktp • Di apotik “ Penjualan memasukkan data obat meliputi kode, nama, jenis” 2. Dari memeriksa struktur basisdata
  • 18. Methods / Operasi • Methods / Operasi adalah abstraksi dari segala sesuatu yang dapat kita lakukan pada sebuah object dan ia berlaku untuk semua object yang terdapat dalam class tersebut. • Class mungkin memiliki beberapa operasi atau tanpa operasi sama sekali. • Contohnya adalah sebuah class Kotak dapat dipindahkan, diperbesar atau diperkecil. • Biasanya, pemanggilan operasi pada sebuah object akan mengubah data atau kondisi dari object tersebut.
  • 19. Visibility / Sifat Class • Visibility merupakan property yang sangat penting dalam pendefinisian atribut dan operasi pada suatu class. • Visibility menspesifikasikan apakah atribut/operasi tersebut dapat digunakan/diakses oleh class lain. UML menyediakan 3 buah tingkat visibility, yaitu: • Private (-), tidak dapat dipanggil dari luar class yang bersangkutan • Protected (#), hanya dapat dipanggil oleh class yang bersangkutan dan anak- anak yang mewarisinya • Public (+), dapat dipanggil oleh siapa saja
  • 21. Menggambar Class • Ketika menggambarkan sebuah class kita tidak perlu menampilkan seluruh atribut atau operasi. • Karena dalam sebagian besar kasus kita tidak dapat menampilkannya dalam sebuah gambar, karena terlalu banyaknya atribut atau operasinya, bahkan terkadang tidak perlu karena kurang relevannya atribut atau operasi yang akan ditampilkan. • Sehingga kita dapat menampilkan atribut dan operasinya hanya sebagian atau tidak sama sekali. Kosongnya tempat pengisian bukan berarti tidak ada. Karena itu kita dapat menambahkan tanda ellipsis (…) pada akhir daftar yang menunjukkan bahwa masih ada atribut atau operasi yang lain.
  • 22. Stereotype Class • Stereotype adalah sebuah mekanisme yang digunakan untuk mengkategorikan sebuah class. Misal, kita ingin mencari form dalam model. Kita dapat menciptakan Form stereotype, dan dapat menemukan seluruh form dalam stereotype Form. Fitur ini memudahkan kita dalam mengorganisasi responsibility dari tiap-tiap class. Sebagai contoh, beberapa class yang memiliki stereotype Form memiliki responsibility untuk menampilkan dan menerima informasi dari user. • Terdapat 3 stereotype utama dalam UML, yaitu boundary, entity dan control.
  • 23. Boundary Class • Boundary class adalah class yang terdapat batasan sistem dan dunia nyata. Hal ini mencakup semua form, report, hardware interface seperti printer atau scanner. • Boundary class dapat diidentifikasi dari Use Case Diagram. Minimal terdapat satu buah boundary class dalam relasi actor dengan use case. Boundary class adalah yang mengakomodasi interaksi antara actor dengan sistem.
  • 25. Entity Class • Entity class menyimpan informasi yang mungkin akan disimpan ke sebuah storage. Class dengan stereotype entity dapat ditemukan di flow of event (scenario dari use-case diagram) dan interaction diagram. • Entity class dapat diidentifikasi dengan mencari kata benda (noun) yang ada pada flow of events. Selain itu, dapat juga diidentifikasi dari struktur database (dilihat dari nama-nama tabelnya). Sebuah entity class mungkin perlu dibuat untuk sebuah tabel. Bila sebuah table menyimpan informasi secara permanen, maka entity class akan menyimpan informasi pada memory ketika sistem sedang running.
  • 27. Control Class • Control class bertanggung jawab dalam mengatur kelas-kelas yang lain. Seperti yang terlihat pada gambar di bawah, control class bertanggung jawab dalam mendelegasikan responsibility kepada kelas lain. • Control class juga bertanggung jawab dalam mengetahui dan menyampaikan business rule dari sebuah organisasi. Class ini menjalankan alternate flow dan mampu mengatasi error. Karena alasan ini control class sering disebut sebagai manager class.
  • 29. Relationship • Relasi atau relationship menghubungkan beberapa objek sehingga memungkinkan terjadinya interaksi dan kolaborasi diantara objek- objek yang terhubung. • Dalam pemodelan class diagram, terdapat tiga buah relasi utama yaitu association, agregation dan generalization.
  • 30. Bentuk Relationships Diagram Class mempunyai 3 macam relationships (hubungan): • Association. Suatu hubungan antara bagian dari dua kelas. Terjadi association antara dua kelas jika salah satu bagian dari kelas mengetahui yang lainnya dalam melakukan suatu kegiatan. Di dalam diagram, sebuah association adalah penghubung yang menghubungkan dua kelas. • Aggregation. Suatu association dimana salah satu kelasnya merupakan bagian dari suatu kumpulan. Aggregation memiliki titik pusat yang mencakup keseluruhan bagian. Sebagai contoh : OrderDetail merupakan kumpulan dari Order. • Generalization. Suatu hubungan turunan dengan mengasumsikan satu kelas merupakan suatu superClass dari kelas yang lain. Generalization memiliki tingkatan yang berpusat pada superClass. Contoh : Payment adalah superClass dari Cash, Check, dan Credit.
  • 31. Asosiasi • Relasi asosiasi merupakan relasi structural yang menspesifikasikan bahwa satu objek terhubung dengan objek lainnya. Relasi ini tidak menggambarkan aliran data, sebagaimana yang terdapat pada pemodelan desain pada analisa terstruktur. • Relasi asosiasi dapat dibagi menjadi 2(dua) jenis, yaitu uni-directional association dan bi-directional association
  • 32. Uni-directional • Objek pilot memiliki uni-directional association dengan objek pesawat. • Relasi uni-directional diatas memungkinkan objek pilot untuk memanggil property dari objek pesawat. Namun tidak berlaku sebaliknya. Objek pesawat tidak dapat mengakses property dari objek pilot. PILOT PESAWAT
  • 33. Bi-directional • Objek pilot dapat memanggil property yang dimiliki oleh objek pesawat. Begitu juga sebaliknya, objek pesawat juga dapat memanggil property dari objek pilot. PILOT PESAWAT
  • 34. Asosiasi • Hubungan association mempunyai 2 titik. Salah satu titik bisa memiliki label untuk menjelaskan association tersebut. Contoh : OrderDetail adalah line Item untuk setiap permintaan. • Panah navigability (pengatur alur arah) dalam suatu association menggambarkan arah mana association dapat ditransfer atau disusun. • Seperti dalam contoh : OrderDetail dapat disusun dari item-nya, namun tidak bisa sebaliknya. Panah ini juga menjelaskan siapa “memiliki” implementasi dari association; dalam kasus ini OrderDetail memiliki Item. Association tanpa arah panah merupakan bidirectional (bolak-balik).
  • 35. Aggregation • Aggregation merupakan bentuk khusus dari asosiasi dimana induk terhubung dengan bagian-bagiannya. • Aggregation merepresentasikan relasi “has-a”, artinya sebuah class memiliki/terdiri dari bagian-bagian yang lebih kecil. • Dalam UML, relasi agregasi digambarkan dengan open diamond pada sisi yang menyatakan induk (whole)
  • 38. Multiplicity • Multiplicity menentukan/mendefinisikan banyaknya object yang terhubung dalam suatu relasi. • Indikator multiplicity terdapat pada masing-masing akhir garis relasi, baik pada asosiasi maupun agregasi
  • 39. Multiplicity • Multiplicity dari suatu titik association adalah angka kemungkinan bagian dari hubungan kelas dengan single instance (bagian) pada titik yang lain. • Multiplicity berupa single number (angka tunggal) atau range number (angka batasan). Pada contoh, hanya bisa satu ‘Customer’ untuk setiap ‘Order’, tapi satu ‘Customer’ hanya bisa memiliki beberapa ‘Order’.
  • 41. Dependency • Dependency merupakan sebuah relasi yang menyebutkan bahwa perubahan pada satu class (misal class event), maka akan mempengaruhi class lain yang menggunakannya (misal class window), tetapi tidak berlaku sebaliknya. • Pada umumnya, relasi dependency dalam konteks Class Diagram, digunakan apabila terdapat satu class yang menggunakan / meng- instance class lain sebagai argumen dari sebuah method. • Perhatikan contoh dibawah, bila spesifikasi dari class Channel berubah, maka method playOn pada class FilmClip juga akan berubah.
  • 43. Inheritance • Inheritance merupakan salah satu karakteristik dalam pemrograman berorientasi objek, dimana sebuah class mewarisi / inherit sifat-sifat (dalam hal ini atribut & operasi) dari class lain yang merupakan parent dari class tadi. Class yang menurunkan sifat-sifatnya disebut superclass, sedangkan class yang mewarisi sifat dari superclass disebut subclass. • Inheritance disebut juga hierarki “is-a” (adalah sebuah) atau “kind-of” (sejenis). Subclass dapat memiliki atau menggunakan atribut & operasi tambahan yang hanya berlaku pada tingkat hierarkinya. • Karena inheritance relationship bukan merupakan relationship diantara objek yang berbeda, maka relationship ini tidak diberi nama. Begitu pula dengan penamaan role dan multiplicity
  • 44. Generalization • Abstract class: jika satu class hanya diperlukan sebagai template untuk class-class yang lebih spesifik (dalam sistem tidak akan ada object dari class tsb) • Tidak memiliki instance • Dalam notasi namanya dituliskan huruf miring (italic)
  • 46. • class person merupakan generalisasi, class doctor dan class patient adalah spesialisasi. • class yang menjadi superclass (dalam hal ini adalah class person) dinamakan abstract class, sedangkan class yang menjadi subclass (class doctor dan class patient) dinamakan concrete class
  • 48. Simbol Class Diagram Simbol Deskripsi package package package merupakan sebuah bungkusan dari satu atau lebih kelas kelas nama_kelas +atribut +operasi() kelas pada struktur sistem antarmuka / interface nama_interface sama dengan konsep interface dalam pemrograman berorientasi objek asosiasi / association relasi antar kelas dengan makna umum, asosiasi biasanya juga disertai dengan multiplicity asosiasi berarah / directed association relasi antar kelas dengan makna kelas yang satu digunakan oleh kelas yang lain, asosiasi biasanya juga disertai dengan multiplicity
  • 49. Simbol (2) asosiasi berarah / directed association relasi antar kelas dengan makna kelas yang satu digunakan oleh kelas yang lain, asosiasi biasanya juga disertai dengan multiplicity generalisasi relasi antar kelas dengan makna generalisasi-spesialisasi (umum khusus) kebergantungan / dependency relasi antar kelas dengan makna kebergantungan antar kelas agregasi / aggregation relasi antar kelas dengan makna semua-bagian (whole-part)
  • 50. Contoh class diagram • Setiap diagram Class memiliki Class (kelas), association, dan multiplicity. Sedangkan navigability (alur arah) dan role (kegiatan) merupakan optional (tidak diharuskan).
  • 51. Package Diagram • Untuk mengatur pengorganisasian diagram Class yang kompleks, dapat dilakukan pengelompokan kelas-kelas berupa package (paket). • Package adalah kumpulan elemen-elemen logika UML. • Gambar di bawah ini mengenai model bisnis dengan pengelompokan kelas-kelas dalam bentuk paket-paket :
  • 52. Case (1) : Perpustakaan peminjaman pengembalian Pustakawan penambahan buku baru penggantian buku denda <<extend>> <<extend>> Login <<include>> <<include>> <<include>> Mahasiswa Pencarian buku <<include>>
  • 54. Case (2) : Penjualan Online
  • 56. Case (3) : Rental Film System Operator Tambah Pelanggan baru Update Pelanggan Hapus Pelanggan Cari Pelanggan Tambah Film Baru Cek Judul Film Hapus Film Update Film Cari Film Daftar Sewa Sewa Film Cek Pelanggan Cek Stok Film Update Stok Kembalikan Film Olah Pelanggan Olah Film Transaksi Peminjaman Cek Ketersedian Film <<include>> <<include>> <<include>> <<include>> <<include>> <<include>> Pelanggan <<include>> <<include>> <<include>>
  • 57. UISewa <<boundary>> +Sewa() CariPelanggan, <<control>> +Pelanggan +CariPelanggan() Pelanggan. <<entity>> +id_Pelanggan +Nama +Alamat +No_hp +getPelanggan() +TambahPelanggan() +UpdatePelanggan() +hapusPelanggan() OlahPenyewaan <<control>> +Sewa +Sewa() CariFilm <<control>> +Film +CariFilm() KategoriFilm <<entity>> +Id_Kategori +Kategori +getKategoriFilm() Film., <<entity>> +Id_film +Kategori +Sinopsis +Judul +Pemain +Format_Film +Jumlah_Copy +Jumlah_sewa +Biaya_sewa +Original +GetFilm() +TambahFilm() +UpdateFilm() +hapusFilm() TSewa Film <<entity>> +no_notaSewa +TanggalSewa +Id_Pelanggan +TambahSewaFilm() DetilSewaFilm <<entity>> +Id_detilSewa +no_notasewa +Id_Film +Copy ke +Tanggal +tambahDetilSewa() 1 * * 1 * 1 1 * MenuPelanggan. <<boundary>> +startInterFace() +cekKetersediaanFilm() UIFilm <<boundary>> +StartIntarFace() +TambahFilm() +UpdateFilm() +HapusFilm() Olah Film <<control>> +Tambah() +Hapus() UIPelanggan <<boundary>> +StartInterface() +TambahPelangganBaru() +UpdatePelanggan() +Hapus Pelanggan() OlahPelanggan <<control>> +Pelanggan +Tambah() +Update() +Hapus()
  • 58. Referensi • Catur Iswahyudi + Edhy Sutanta, UML, Class Diagrams • http://www.agilemodeling.com/ • http://www.visual-parActivity Diagramigm.com/VPGallery/diagrams/index.html