Class Diagram oleh : Bambang Hermawan, S.Si
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 (pengurungan/penspesifikasian), pewarisan, asosiasi, dan relasi yang lain.
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. Sebagai contoh, jika ada interface remote control TV yang dapat menambah, mengurangi volume atau mengganti channel (beberapa metoda dalam 1 interface). Tapi pengimplementasian’nya dapat di berbagai macam class TV berdasarkan merek TV tersebut.
“ Class diagrams describe three different perspectives when designing a system, conceptual, specification, and implementation. ” Konseptual disini mengajarkan bahwa secara konsep yang kita dapat itu bisa beraneka ragam, dan banyak bentuk pengerjaan saat kita memulai dari awal pembuatan sistem. Spesifikasi disini menjelaskan bahwa untuk menerangkan suatu sistem yang akan kita bangun, akan semakin spesifik dari setiap tahap yang sudah dilewati oleh pembuat / pengembang sistem. Semakin kita membuat suatu rincian alur program untuk mendapatkan hasil yang maksimal, supaya dapat dimengerti oleh user, maka spesifikasi design sistem kita akan semakin terlihat.
Implementasi disini menjelaskan bahwa pada waktu implementasi sistem yang sudah kita gambarkan secara abstrak di “tool” yang sudah kita gunakan, ini dapat membantu “paling tidak” dapat menjelaskan alur sistem yang sedang dibangun. Hubungan antar objek yang kita gambarkan dalam Class Diagram akan membantu dalam implementasi sistem di “lokasi” serta kita dapat menjelaskan lebih detail apa yang sudah kita rancang. Akan tetapi tidak menutup kemungkinan adanya “enginnering change” (perubahan rancang bangun) sistem.
Nama Class Atribut Class Operation
MAHASISWA + NIM:String + NAMA:String + ALAMAT:String + TGLLAHIR:Date tambahMhs() updateMhs() hapusMhs() Nama Class Attribut Class Behaviour Class NIM : 2 digit pertama adalah tahun, digit 3 dan 4 adalah angkatan, digit 5 adalah jenjang Keterangan (tambahan / option)
RELATION – CLASS DIAGRAM MAHASISWA + NIM:String + NAMA:String + ALAMAT:String + TGLLAHIR:Date tambahMhs() updateMhs() hapusMhs() selectWLY(kdPos) WILAYAH +kdPos:String +nmWilayah:String tambahWLY() updateWLY() hapusWLY() 1..* 1 INDIKATOR
Agregasi (Aggregation) Kunci Gabungan (Composite Key) Turunan (Inheritance) Specialisasi/Generalisasi Ralasi (Relation) Dependencies Realizations