Class
adalah sebuah spesifikasi yang jika diinstansiasi 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.
Class
memiliki tiga area pokok :
Nama (dan
stereotype)
Atribut
Metoda
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
Class
dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang
hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi
harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface
mendukung resolusi metoda pada saat run-time.
Sesuai
dengan perkembangan class model, class dapat dikelompokkan menjadi package.
Kita juga dapat membuat diagram yang terdiri atas package.
Hubungan Antar
Class
Asosiasi,
yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki
atribut berupa class lain, atau class yang harus mengetahui eksistensi class
lain. Panah navigability menunjukkan arah query antar class.
Agregasi,
yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
Pewarisan,
yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan
mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas
baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari
pewarisan adalah generalisasi.
Hubungan
dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada
class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence
diagram yang akan dijelaskan kemudian.
Contoh class
diagram :