Oleh :
Andri Kurnaedi 10507454
MI-10 2007
JURUSAN MANAJEMEN INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIKOM
BANDUNG
2009
RESUME, ANALYZE, DAN DESIGN
DAFTAR ISI
B. CLASS DIAGRAM
Class Diagram adalah diagram yang paling umum dijumpai pada pemodelan
berbasis UML. Didalam Class Diagram terdapat class dan interface beserta atribut dan
operasinya, relasi yang terjadi antar objek, constraint terhadap objek-objek yang saling
berhubungan, inheritance untuk organisasi class yang lebih baik. Selain itu Class
Diagram merupakan static view dari elemen pembangun sistem.
Class Diagram mampu membantu proses pembuatan sistem dengan
memanfaatkan konsep forward/reverse engineering. Class Diagram memiliki 2
komponen penting, yaitu :
1. Atribut – Ciri pembeda antar object
2. Method – Tingkah laku atau kegiatan yang mampu dilakukan object
Atribut dan method 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.
Atribut
Notasi dari atribut :
visibility name: type multiplicity = default {property-string}
Contoh :
- name: String [1] = "Untitled" {readOnly}
Ket :
+ berarti public, - berarti private, # berarti protected
“Untitled” adalah nilai yang diberikan secara default jika tidak ditentukan saat
objek dibuat.
{readOnly} adalah properti tambahan dari atribut, dimana disini berarti tidak
bisa dimodifikasi.
Method
Notasi dari Method :
visibility name (parameter-list) : return-type {property-string}
Contoh :
+ balanceOn (date: Date) : Money
Ket :
+ berarti public, - berarti private, # berarti protected
direction name : type = default value
Direction bisa berupa : in, out, atau inout.
Multiplicity
Indikasi berapa banyak objek yang bisa mengisi properti.
1 (pasti 1)
0..1 (0 atau 1)
* (Tidak ada batasan, bisa 0, 1, ..., n)
Multiplicity biasanya didefinisikan batas bawah dan atas, kecuali untuk yang
pasti bernilai 1, mirip dengan konsep one-to-one dan one-to-many pada relational
database.
Dependency
Dependency adalah perubahan pada salah satu elemen yang mengakibatkan
perubahan pada elemen yang lain. Semakin kompleks sistem, maka dependency
menjadi sesuatu yang harus dipertimbangkan. Dependency hanya berlaku satu arah.
Bisa diperjelas dengan penggunaan keyword, seperti <<parameter>>, <<use>>,
<<call>> dengan notasi anak panah dan garis putus-putus. Aturan umum dependency
adalah kurangi dependency antar modul (low coupling).
Generalization
Generalization adalah inheritance pada UML dimana sub class mewarisi feature
dari super classnya. Sub class mampu overriding metode super classnya. Generalization
dinotasikan dengan anak panah mengacu ke super class.
Constraints
Constraints adalah aturan yang harus dipenuhi sebagai syarat yang bisa
disebutkan secara eksplisit dengan { }.
Dari gambar di atas sudah tergambar secara langsung bahwa Order hanya
dilakukan oleh satu Customer dan Corporate Customers memiliki credit limits tetapi
tidak bagi Personal Customers.
Abstract Class
Abstract Class digunakan pada class yang tidak bisa diinstantiasi, harus
diturunkan kedalam class non-abstract. Memiliki satu atau lebih metode abstract
Class Diagram Biro Perjalanan | 5
RESUME, ANALYZE, DAN DESIGN
Interface
Class yang tidak memiliki implementasi sama sekali, semua featurenya bersifat
abstract. Class yang menerapkan interface harus mengimplementasikan feature-feature
abstract sebagai kontrak untuk mendapatkan fungsi yang konsisten, meskipun
implementasinya bisa berbeda-beda. Dinotasikan dengan keyword: <<interface>>
Enumeration
Enumeration digunakan untuk menampilkan sekumpulan nilai yang bersifat
statik, misalnya warna. Ditandai dengan keyword <<enumeration>>
Associations
Associations menggambarkan hubungan antar class. Ditandai dengan anak
panah yang seringkali ditambahkan label dan multiplicity untuk memperjelas
hubungan.
Bidirectional Associations
Bidirectional Associations adalah sepasang properti yang dihubungkan sebagai
inverse. Mirip konsep primary/foreign key. Jika diketahui salah satu, maka bisa
didapatkan informasi pihak yang lain.
Contoh :
Class Car : owner:Person[1]
Class Person : cars:Car[*]
Aggregation
Part-of relationship (bagian dari | terdiri dari) dan jika dipisah tidak merubah
makna. Dinotasikan dengan diamond “kosong”. Contoh :
Mobil memiliki mesin dan roda sebagai bagian dari mobil
Klub terdiri dari banyak orang
Komputer terdiri dari CPU, VGA, dan Sound Card, jika VGA dilepas, maka
komputer akan tetap berupa komputer
Composition
Whole-part relationship : Bagian yang tidak boleh dipisahkan
Contoh :
Class Person dan Class Head
Menghapus person berarti juga menghapus kepalanya dan orang tidak bisa hidup tanpa
kepala. Dengan kata lain orang dan Kepala harus ada bersamaan.
Buku terdiri dari halaman, jika halaman diambil maka buku pun tidak akan berbentuk.
Contoh 1.
Contoh 2.
Identify Generalizations
Pada pendekatan pertama, kita mencari class yang berpasangan, apakah
memiliki hubungan generalisasi atau tidak.
Pada pendekatan kedua, kita memilih dan melihat dari class apakah memiliki
hubungan generalisasi. Jika ada dibuat subclass yang baru.
Pada pendekatan ketiga, kita melihat dari class - class yang ada, apakah perlu
dibuat class yang baru.
Identify Aggregations
Pada pendekatan pertama, kita memeriksa setiap pasang class untuk dilihat
apakah objek dari satu class tersebut merupakan bagian dari objek class yang
lain. Contoh class yang dimiliki A, B, C , D , E maka hubungannya
A C
| |
B D
Pada pendekatan kedua kita menentukan apakah dari class yang berhubungan
tersebut bisa dibuat class yang baru. Hubungan yang terjadi : Z memiliki
subclass A dan B
Pada pendekatan ketiga kita menentukan apakah dari class yang ada perlu
dibuat class turunan yang baru.
Identify Assosiations :
Kita melihat hubungan antar class yang tersisa apakah mereka dapat
dihubungkan secara langsung
Identify Clusters :
Kita melihat apakah ada kemiripan sifat dan karakter dari satu class dengan
class yang lain, apabila ada maka dikelompokan di dalam satu cluster.
Explore Patterns
Penerapan pattern dapat digunakan dengan melihat hubungan antar class yang
ada. Dimana Objek Oriented menyediakan sumber dari inspirasi, yang mana
mengkomplemen kandidat dari sistematik generalisasi untuk hubungan strukturalnya.
Sebuah pattern merupakan gambaran generalisasi dari sebuah masalah dan solusinya.
The Role Pattern :
Kita melihat hubungan antar class yang ada, apakah peran yang ada bersifat
agregasi dan generalisasi
The Relation Pattern :
Kita melihat hubungan antar class yang ada, apakah peran yang ada bersifat
agregasi dan asosiasi
The Hierarchy Pattern :
Kita melihat hubungan antar class yang ada, apakah peran yang ada bersifat
agregasi dan agregasi
The Item-Descriptor Pattern :
Kita melihat hubungan antar class yang ada, apakah peran yang ada bersifat
agregasi.
D. CONTOH SOAL
E. PENYELESAIAN