BAB II TINJAUAN PUSTAKA
2.5 Perancangan Sistem
2.5.3 Pengenalan Diagram dalam UML
2.5.3.4 Class Diagram
Class diagram digunakan untuk menampilkan kelas-kelas dan paket-paket
di dalam sistem. Class diagram memberikan gambaran sistem secara statis dan
relasi anatar mereka. Biasanya, dibuat beberapa class diagram untuk sistem
tunggal. Beberapa diagram akan menampilkan subset dari kelas-kelas dan
relasinya. Dpaat dibuat beberapa diagram sesuai dengan yang diinginkan untuk mendapatkan gambaran lengkap terhadap sistem yang dibangun.
Class diagram adalah alat perancangan terbaik untuk tim pengembang. Diagram tersebut membantu pengembang mendapatkan struktur sistem sebelum kode ditulis, membantu untuk memastikan bahwa sistem adalah desain terbaik.
Kelas
Kelas adalah sesuatu yang membungkus informasi dan perilaku. Secara tradisional, sistem dibangun dengan ide dasar bahwa akan meyimpan
informasi pada sisi basis data dan data perilaku pengolahnya pada sisi aplikasi. Salah satu perbedaan terstruktur dengan pendekatan berorientasi obyek adalah pada berorientasi obyek menggabungkan informasi dan perilaku pengolah informasi dan menyembunyikan semuanya ke dalam sesuatu yang disebut kelas. Dalam UML, kelas ditunjukkan menggunakan notasi sebagai berikut :
Class
Atribute Operati on()
Gambar 2.7 Notasi Class
Bagian paling atas pada notasi Class digunakan sebagai nama kelas,
dan secara opsional juga digunakan stereotype-nya. Bagian tengah
digunakan untuk menyimpan atribut, dan bagian paling bawah digunakan menyimpan operasi.
Menemukan Kelas
Cara yang baik untuk menemukan kelas-kelas adalah dimulai dari
memperhatikan aliran kejadian (flow of event) dari suatu use case.
Perhatikan kata benda di dalam aliran kejadian, mungkin merupakan salah satu dari empat hal berikut:
• Aktor
• Kelas
• Ekspresi, bukan aktor, bukan kelas, dan bukan attribut.
Dengan melakukan seleksi kata benda dalam aliran kejadian, dapat ditemukan kelas-kelas dalam sistem. Alternatif lainnya, dapat diuji
obyek-obyek dalam sequence diagram atau collaboration diagram.
Ada dua cara yang biasa dilakukan berkaitan dengan urutan
pendefinisian antar kelas-kelas dalam class diagram dan sequence
diagram atau collaboration diagram. Yang pertama, dengan membuat
sequence diagram atau collaboration diagram lebih dulu kemudian
melanjutkannya dengan membuat class diagram. Sebaliknya, yang kedua,
yaitu dengan menemukan kelas-kelas dan membuat class diagram terlebih
dulu, kemudian menggunakan kelas-kelas tersebut sebagai ”kamus”
obyek-obyek dan relasinya untuk membuat sequence diagram atau
collaboration diagram.
Stereotype pada Kelas
Stereotype adalah sebuah mekanisme yang digunakan untuk
mengkategorikan kelas-kelas. Misalnya, dapat dibuat stereotype form lebih
dulu, kemudian menentukan kelas-kelas di langkah selanjutnya. Fitur ini membantu untuk lebih memahami tanggung jawab terhadap masing-masing
kelas dalam model. Kelas-kelas dengan stereotype ’form’ bertanggung
jawab menampilkan informasi ke pemakai dan menerima informasi dari pemakai.
Bounda ryClass
Stereotype juga membantu dalam proses pembangkkitan kode. Ketika
proses pembangkitan kode, stereotype kelas menentukan tipe kelas yang
akan dibawa ke bahasa pemrograman.
Beberapa stereotype dapat digunakan sejak pada tahap proses analisis,
pada saat belum ditentukan bahasa pemrograman tertentu untuk
membangkitkan kode. Stereotype juga bisa tergantung pada bahasa
pemrograman yang dipilih dan digunakan pada tahap proses desain.
Ketika analisis, kelas-kelas dapat dikategorikan menurut fungsi yang
mereka lakukan. Ada 3 tipe stereotype kelas dalam UML yang digunakan
pada analisis, yaitu : pembatas (boundary), entitas (entity), dan kontrol.
a. Kelas-kelas pembatas
Kelas-kelas pembatas adalah kelas-kelas yang teletak di antara sistem dengan dunia sekelilingnya. Semua form, laporan-laporan, antar muka (interfaces) ke perangkat lunak seperti printer atau scanner, dan antar muka (interfaces) ke sistem lainnya adalah termasuk dalam kategori ini. UML mepresentasikan kelas pembatas sebagai berikut :
Gambar 2.8 Notasi Kelas Pembatas
Untuk menemukan dan mengidentifikasi kelas-kelas pembatas dapat
Ent ity Clas s
pembatas untuk setiap interaksi antara actor-use case. Kelas pembatas
adalah apa saja yang memungkinkan aktor berinteraksi dengan sistem.
Tidak perlu membuat kelas pembatas untuk setiap pasangan actor-use
case. Sebagai contoh, bila mempunyai dua aktor yang sama-sama
menginisialisasi use case yang sama untuk berkomunikasi dengan sistem.
a. Kelas-kelas entitas
Kelas-kelas entitas menangai informasi yang disimpan dalam peyimpanan tetap. Kelas entitas biasanya ditemukan dalam aliran
kejadian (flow of event) pada diagram interaksi. Mereka adalah
kelas-kelas yang sebagian besar bermakna terhadap pemakai dan secara tipikal diberikan nama menggunakan termonologi domain bisnisnya. Perhatikan kata benda dalam aliran kejadian. Beberapa kata benda akan menjadi kelas entitas dalam sistem. Cara lainnya adalah dengan memperhatikan struktur basis data. Jika rancangan basis data telah dibuat, perhatikan nama-nama tabel. Tabel-tabel
menangani beberapa record informasi secara permanen, sementara
kelas entitas, menangani informasi di dalam memori komputer saat komputer sedang dihidupkan. Dalam UML, notasi kelas entitas digambarkan sebagai berikut :
Control Cl ass
Dari rancangan basis data, dapat ditelusuri balik beberapa field pada basis data ke kebutuhan sistem. Kebutuhan sistem menentukan aliran kejadian (flow of event), dan aliran kejadian menentukan obyek-obyek, kelas-kelas, dan attribut-attribut dalam kelas. Masing-masing attribut dalam kelas entitas mungkin akan menjadi field dalam basis data.
b. Kelas-kelas Kontrol
Kelas kontrol bertanggung jawab untuk mengkoordinasikan kegiatan-kegiatan terhadap kelas lainnya. Kelas ini bersifat opsional, tetapi jika kelas kontrol ini digunakan, maka secara tipikal satu kelas kontrol untuk satu use case tersebut. Ada
kelas-kelas kontrol yang digunakan bersama oleh beberapa use case.
Dalam UML, notasi kelas entitas digambarkan sebagai berikut :
Gambar 2.10 Notasi Kelas Kontrol
Penamaan Kelas
Masing-masing kelas harus mempunyai nama yang unik. Sebagian besar organisasi mempunyai konvensi penamaan sendiri untuk
menamakan kelas-kelas yang dibuatnya.Umumnya, kelas-kelas
Nama kelas tidak menggunakan spasi, ini dilakukan karena alasan praktis, dimana beberapa bahasa pemrograman tidak membolehkan adanya spasi. Hal lainnya yang perlu diperhatikan adalah bahwa nama kelas hendaknya pendek, cukup untuk menjelaskan apa yang akan kelas lakukan.
Jadi penamaan kelas sangat tergantung pada organisasi kita. Jika kita mempunyai kelas yang digunakan dalam organisasi yang bersangkutan, tetapi yang jelas bahwa hal tersebut harus konsisten digunakan untuk keseluruhan kelas-kelas yang dibuatnya.
Visibilitas Kelas
Pilihan visibilitas menentukan dapat tidaknya sebuah kelas dilihat dari luar paket. Ada 3 pilihan visibilitas untuk sebuah kelas yaitu :
• Public
Menyatakan bahwa sebuah kelas dapat dilihat dari kelas-kelas lainnya dalam sistem.
• Protected atau Private
Menyatakan bahwa sebuah kelas dapat dilihat dari kelas-kelas majemuk (nested), friends, atau dari kelas itu sendiri.
• Package atau Implementation
Menyatakan bahwa sebuah kelas dapat dilihat hanya oleh kelas yang lain dalam paket yang sama.
Multiplicity Kelas
Multiplicity memberikan gambaran sejumlah instan yang akan ditampung dalam keas. Misalnya, dalam kelas Pegawai, kita mungkin mempunyai beberapa instan, satu untuk Ani, satu untuk Ina, satu untuk
Nana, dan seterusnya. Sehingga multiplicity untuk kelas Pegawai diset n.
Pada kelas kontrol, multiplicity diset 1 , karena pada saat aplikasi berjalan
hanya satu kelas.
Beberapa jenis multiplicity kelas :
Multiplicity Arti
n (default) Banyak
0..0 Nol
0..1 Nol atau satu
0..n Nol atau banyak
1..1 Tepat satu
1. . n Satu atau banyak
Atau dapat digunakan format tertentu sebagai berikut :
Format Arti
<Number> Tepat
<Number1>.. <Number2> Antara
<Numbern> .. Atau Nol
<Number1> , <Number2>
<Number1> , <Number2> .. <Number3>
Tepat <Number1> atau antara
<Number2> dan <Number3>
<Number1>.. <Number2> ,
<Number3>.. <Number4>
Antara <Number1> dan <Number2>
atau antara <Number1> dan
<Number2>
Tabel 2.12 Notasi multiplicity menggunakan kustomisasi
Paket
Paket digunakan untuk mengelompokkan kelas-kelas yang
mempunyai kesamaan. Dalam UML, digambarkan sebagai berikut :
Package
Ada beberapa cara mengelompokkan kelas-kelas dalam paket, tetapi bagaimanapun juga, kelas-kelas dapat dikelompokkan dalam paket yang sama tergantung dari keinginan kita sendiri. Salah satu pendekatan yang
dapat digunakan adalah berdasarkan stereotype-nya. Dengan pendekatan ini,
dapat dibuat satu paket untuk kelas entitas, dan satu kelas untuk kelas-kelas kontrol.
Pendekatan lainnya yang dapat digunakan adalah dengan
fungsionalitasnya. Misalnya, kita punya paket Security untuk kelas-kelas
yang digunakan menangani keamanan sistem.
Akhirnya, dapat digunakan kombinasi dua pendekatan di atas. Paket dapat dibuat bersarang, dimana satu paket mengandung beberapa paket lainnya. Pada level tertinggi, dapat dikelompokkan berdasarkan fungsionalitasnya, kemudian diikuti dengan sub fungsionalitas lainnya atau
dengan stereotype-nya
1. Untuk menambahkan attribute, klik kanan pada Class, lalu
2. Untuk menambahkan attribute , bisa juga dengan membuka
Specification, dengan cara klik kanan, Open Specification lalu pilih tab Attributes. Pada tab Attributes, klik kanan, lalu pilih insert.
3. Kemudian masukkan attribute dengan klik kanan, insert lalu