Class Diagram

Class diagram adalah diagram yang menggambarkan struktur dari sistem dari sudut pandang susunan class. Class diagram bertujuan untuk mengetahui tujuan tiap class , relasi setiap class, ketergantungan dengan class lain dan attribute - attributenya.Class Diagram dibuat agar programmer dapat dengna mudah membuat class untuk program.
Gambar 1 : Contoh Class Diagram.
Pada class diagram ada 2 komponen utama yaitu komponen class yang berbentuk persegi panjang dan komponen association yang menghubungkan tiap - tiap class.

Komponen class

Pada simbol class digambarkan dengan persegi panjang. Diatasnya terdapat nama class dan biasanya disertai dengan jenis class (jenis class akan dijelaskan dibawah). Dibawahnya terdapat attribute yang ada didalam class. penamaan attribut ditulis dengan nama attribut dilanjutkan dengna tipe datanya. pada awal penamaan attribut biasanya digambarkan simbol dari jenis attribut untuk menunjukan jenis attribut.
attribute memiliki 3 jenis yaitu :
Private : menunjukan bahwa attribut hanya bisa diakses oleh class itu sendiri. Disimbolkan dengan "-".
Protected : menunjukan bahwa attribut hanya bisa diakses oleh class itu sendiri dan turunannya. Disimbolkan dengan "#".
Public : menunjukan bahwa attribut bisa diakses oleh class lain. Disimbolkan dengan "+".

Gambar 2 : Komponen class beserta penamaan attribute pada class

Jenis - jenis class

Class dapat dibagi menjadi 3 bagian. yaitu :

Boundary : class yang berhubungan langsung dengan user. class ini biasanya merupakan class yang bertanggung jawab dengan user interface.
Entity : class yang berhubungan dengan database. class ini biasanya yang bertanggung jawab untuk operasi pada database.
Controller : class yang menghubungkan class boundary dan class entity.

Jenis - jenis association

Association menunjukan hubungan antar class. Artinya association menggambarkan class yang memiliki attribute dengan class lain atau class yang harus mengetahui keberadaan class lain. untuk jenis association standard digambarkan dengan garis lurus biasa. Selain itu terdapat beberapa jenis association yang lain yaitu :

Dependency : Menunjukan bahwa suatu class keberadaanya memerlukan//bergantung dengan class lain. Contohnya adalah class detail nota bergantung pada class header nota. Dependency digambarkan dengan garis putus - putus dengan anak panah yang mengarah dari kelas yang bergantung ke klass yang sumber.

Generalisasi : Menunjukan bahwa suatu class merupakan bentuk umum dari class - class turunannya yang berbentuk khusus. Sehingga, class turunannya juga mempunya sifat dengan class induk yang memiliki bentuk umum. Generalis juga disebut dengan inheritance(turunan) pada OOP. Contohnya adalah class kendaraan dengan klass mobil. Generalisasi digambarkan dengan garis utuh dengan tanda panah utuh dimana tanda panah menunjuk ke class bentuk umum/class induk

Agregation dan Composition :Menunjukan bahwa suatu class memiliki hubungan "has a" atau memiliki class lain atau dengan kata lain suatu class yang memiliki atribute berupa class lain. Pada Agregation, jika semisal class A memiliki class B dan class A dihapus, maka class B tetap dapat berdiri sendiri. Lain halnya dengan Composition, jika semisal class A memiliki class B dan class A dihapus, maka class B tidak dapat berdiri sendiri karena keberadaan class B tergantung dengan class A. Agregation digambarkan dengan garis dengan gambar diamond diujungnya sedangkan Compotiion digambarkan dengan garis dengan gambar diamond  yang diarsir pada ujungnya.
Gambar 3: Contoh Association
Gambar 4 : Contoh Dependency

Gambar 5 : Contoh Generalization
Gambar 7 : Contoh Compotition

Gambar 6 : Contoh Agregation






Multiplicity

Multiplicity menunjukan jumlah class yang bisa berhubungan dengan class yang lainnya. Multiplicity digambarkan dengan angka pada ujung garis asociation. Multiplicity hampir sama dengan mandatory di ERD.
Gambar 7 : Penggunaan multiplicity



Referensi : 

https://www.uml-diagrams.org/class-diagrams-overview.html

https://www.uml-diagrams.org/association.html?context=class-diagrams

https://www.uml-diagrams.org/aggregation.html?context=class-diagrams

https://www.uml-diagrams.org/composition.html?context=class-diagrams

https://www.uml-diagrams.org/multiplicity.html?context=class-diagrams

https://dzone.com/articles/uml2-class-diagram-java

https://pccontrol.wordpress.com/2013/01/21/pengetahuan-dasar-dan-contoh-diagram-kelas-class-diagram/

Komentar