0% menganggap dokumen ini bermanfaat (0 suara)
95 tayangan9 halaman

Diagram Class & Relasi UML

Pertemuan 5 dan 6 membahas diagram kelas (class relationship) yang meliputi asosiasi, agregasi, komposisi, dan implementasi kode. Diagram kelas merupakan notasi grafis UML yang digunakan untuk memodelkan objek dan hubungan antar objek dalam sistem perangkat lunak.

Diunggah oleh

Arnes Sembiring
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
95 tayangan9 halaman

Diagram Class & Relasi UML

Pertemuan 5 dan 6 membahas diagram kelas (class relationship) yang meliputi asosiasi, agregasi, komposisi, dan implementasi kode. Diagram kelas merupakan notasi grafis UML yang digunakan untuk memodelkan objek dan hubungan antar objek dalam sistem perangkat lunak.

Diunggah oleh

Arnes Sembiring
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Pertemuan 5 dan 6 Diagram Class (Class Relationship)

Materi yang akan dipelajari di sesi ini adalah:


1. Diagram Class (Class Relationship)
2. Association, aggregation, composition
3. Implementation codes
Catatan: Pendalaman materi akan dilakukan melalui penugasan.

1. Class Diagram
Class Diagram merupakan notasi grafis dari UML. Diagram ini terdiri dari elemen-
elemen seperti kelas, antarmuka, objek dan kolaborasi yang mewakili pemodelan
berorientasi objek dan berbagai jenis perilaku yang dapat diterapkan pada Class Diagram.
Anda dapat menggunakannya untuk memodelkan objek yang menyusun sistem, untuk
menampilkan hubungan antar objek, dan untuk mendeskripsikan apa yang dilakukan
objek tersebut. Class Diagram memungkinkan kita memodelkan dan menjelaskan prilaku
perangkat lunak dalam abstraksi tingkat tinggi tanpa harus melihat kode sumbernya.
Pada tahap analisis, Class dapat membantu Anda memahami masalah dan
mengidentifikasi komponen-komponennya. Kemudian, Anda dapat menyempurnakan
analisis awal dan model konseptual ke dalam diagram kelas yang menunjukkan bagian
tertentu dari sistem, antarmuka pengguna, implementasi logika, dan seterusnya.
Fungsi utamanya adalah untuk membangun tampilan statis dari sebuah sistem atau
aplikasi. Diagram ini adalah satu-satunya diagram yang banyak digunakan untuk
konstruksi dan dapat tergambarkan dengan bahasa berorientasi objek. Berikut ini adalah
fungsi dari class diagram:
1. Menganalisis dan mendesain tampilan statis dari sebuah sistem atau aplikasi
2. Menggambarkan tugas utama dari suatu sistem
3. Memberikan gambaran umum terkait pemodelan data
4. Membantu menjelaskan secara visual pada kebutuhan spesifik dari sebuah sistem
5. Mampu membantu proses pembuatan sistem dengan memanfaatkan konsep
forward/reverse engineering
2. Class Diagram dan Bagian Penyusunnya
Class memiliki 3 area pokok yaitu Nama, Atribut dan Metode. Nama setiap kelas
harus memiliki nama yang dapat digunakan untuk membedakannya dari kelas lain.
Attribut merupakan variabel data yang berguna untuk memberikan informasi sebuah
keadaan dimana objek dari suatu kelas mempunyai nilai tersendiri. Method prosedur
merupakan fungsi yang menjadi perilaku kelas & objek yang mana menjadi tanggung
jawab pada objek tersebut. Untuk atribut dan method dapat mempunyai salah satu sifat
yaitu:
1. (-) private yang tidak dapat dipanggil dari luar class bersangkutan
2. (#) protected yang mana hanya dapat dipanggil oleh class yang bersangkutan
3. (+) public yang dapat dipanggil oleh siapa saja

Gambar 1. Contoh sebuah class diagram

Di bawah ini adalah kode sumber untuk kelas bernama Person yang memiliki dua
atribut kelas yaitu nama dan umur. Dalam diagram kelas, suatu kelas diwakili oleh sebuah
persegi panjang dengan nama kelas tertulis di atasnya. Garis di bawah nama kelas
membagi nama dari daftar atribut (nama dan tipe variabel kelas). Atributnya ditulis satu
atribut per baris.

Pada kode sumber berikut, ditambahkan konstruktor untuk kelas Person. Dalam
diagram kelas, kami mencantumkan konstruktor (dan semua metode lainnya) di bawah
atribut. Sebuah baris di bawah daftar atribut memisahkannya dari daftar metode. Metode
ditulis dengan +/- (tergantung visibilitas metode), nama metode, parameter, dan tipenya.
Konstruktor di atas ditulis+Person(initialName:String). Parameter ditulis dengan cara yang
sama seperti atribut kelas — "parameterName: parameterType".

Berikutnya ditambahkan metode printPerson() yang mengembalikan void ke


kelas Person. Dalam diagram kelas, dicantumkan semua metode kelas termasuk
konstruktornya, konstruktor dicantumkan terlebih dahulu dan kemudian semua metode
kelas. Return type dari metode juga ditulis dalam diagram kelas.
Selanjutnya ditambahkan sebuah metode (getter) getName ke kelas Person yang
mengembalikan nama Person.

3. Koneksi antar kelas


Dalam diagram kelas, hubungan antar kelas ditampilkan sebagai panah. Panah
juga menunjukkan arah sambungan. Di bawah ini kita memiliki kelas Buku. Jika kita
menambahkan variabel penulis, tipenya adalah Person, dalam kode sumber variabel
tersebut dideklarasikan seperti semua variabel kelas lainnya. Dalam diagram kelas,
variabel yang merujuk ke objek lain tidak ditulis bersama atribut kelas lainnya, namun
ditampilkan sebagai hubungan antar kelas. Dalam diagram kelas di bawah ini kita memiliki
kelas Person dan Book, dan hubungan di antara keduanya.
Panah menunjukkan arah sambungan. Kaitan di atas menunjukkan bahwa suatu
Book mengetahui pengarangnya (author) tetapi Pearson tidak mengetahui tentang Book
yang dia menjadi pengarangnya. Kita juga dapat menambahkan label pada panah untuk
mendeskripsikan koneksi. Dalam diagram di atas, panah memiliki label yang
menyertainya (author) yang memberi tahu kita bahwa sebuah Book mempunyai penulis.
Jika sebuah buku memiliki beberapa penulis, penulisnya akan disimpan ke dalam
daftar. Dalam diagram kelas, situasi ini digambarkan dengan menambahkan bintang di
ujung panah yang menunjukkan hubungan antar kelas. Bintang memberi tahu kita bahwa
sebuah buku dapat memiliki jumlah penulis antara 0 dan tidak terbatas. Di bawah ini kami
belum mengubah label untuk menggambarkan banyaknya koneksi.

Berikutnya di bawah ini ditambahkan metode getAuthorsdan addAuthor ke kelas


Book.
Kita bisa menambahkan tipe elemen di ArrayList ArrayList<Person> dan label
yang menjelaskan koneksi "penulis" ke diagram kelas di atas. Jika tidak ada mata panah
dalam suatu koneksi, kedua kelas saling mengetahui satu sama lain. Di bawah ini adalah
contoh di mana sebuah buku mengetahui tentang penulisnya dan seseorang mengetahui
tentang buku yang telah mereka tulis.

Seperti yang dapat dilihat, secara default — jika tidak ada bintang pada koneksi —
koneksinya berbentuk tunggal. Kelas-kelas di atas menarik, karena seseorang hanya boleh
memiliki satu buku.
Jika seseorang dapat memiliki banyak buku dan sebuah buku dapat memiliki
banyak penulis, kami menambahkan bintang pada kedua ujung koneksi:

Sekarang kelas Pearson-nya adalah sebagai berikut:


4. Warisan (Inheritance)
Dalam diagram kelas, pewarisan digambarkan dengan panah berkepala segitiga.
Segitiga menunjuk ke kelas yang diwarisi. Dalam contoh di bawah ini, Mesin mewarisi
kelas Part.

Dalam contoh di bawah ini, diagram kelas menjelaskan kelas-kelas dari latihan
gudang Produk. Kelas ProductWarehouseWithHistory mewarisi kelas ProductWarehouse,
yang selanjutnya mewarisi kelas Warehouse. ChangeHistory adalah kelas terpisah yang
terhubung ke ProductWarehouse. ProductWarehouseWithHistory mengetahui tentang
ChangeHistory tetapi ChangeHistory tidak mengetahui tentang
ProductWarehouseWithHistory.
Pewarisan kelas abstrak digambarkan dengan cara yang hampir sama dengan kelas
reguler. Namun kami menambahkan deskripsi <<abstract>>di atas nama kelas. Nama
kelas dan metode abstraknya juga ditulis kursif.

Anda mungkin juga menyukai