Anda di halaman 1dari 35

Subscribe to DeepL Pro to translate larger documents.

Visit www.DeepL.com/pro for more information.

CSE 403
Desain dan Pembacaan Diagram Kelas

UML:
UML Distilled Ch. 3, oleh M. Fowler
Slide kuliah ini merupakan hak cipta (C) Marty Stepp, 2007. Slide ini tidak boleh disebarkan
ulang, dijual, atau dimodifikasi tanpa izin tertulis dari penulis. Semua hak
cipta dilindungi undang-undang.
1
Pertanyaan besar
◼ Apa itu UML?
◼ Mengapa saya harus repot-repot? Apakah orang-
orang benar-benar menggunakan UML?

◼ Apa yang dimaksud dengan diagram kelas UML?


◼ Informasi apa saja yang ada di dalamnya?
◼ Bagaimana cara membuatnya?
◼ Kapan saya harus membuatnya?
2
Fase desain
◼ desain: menentukan struktur bagaimana
sistem perangkat lunak akan ditulis dan
berfungsi, tanpa benar-benar menulis
implementasi yang lengkap

◼ transisi dari "apa" yang harus dilakukan oleh


sistem, menjadi "bagaimana" sistem akan
melakukannya
◼ Kelas apa saja yang kami perlukan untuk
mengimplementasikan sistem yang memenuhi
persyaratan kami?
◼ Bidang dan metode apa saja yang akan dimiliki oleh
setiap kelas?
◼ Bagaimana kelas-kelas tersebut akan berinteraksi satu
sama lain?

3
Bagaimana kita merancang

kelas?/ persyaratan proyek
identifikasi kelas dari spesifikasi
◼ kata benda adalah kelas potensial, objek, bidang
◼ kata kerja adalah metode atau tanggung jawab potensial dari
sebuah kelas

◼ Latihan kartu CRC


◼ menuliskan nama-nama kelas pada kartu indeks
◼ di samping setiap kelas, daftarkan yang berikut ini:
◼ tanggung jawab: masalah yang harus dipecahkan; frasa kata kerja
pendek
◼ kolaborator: kelas lain yang dikirimi pesan oleh kelas ini
(asimetris)

◼ Diagram UML
◼ diagram kelas (hari ini)
◼ diagram urutan
◼ ...
4
Pengantar ke UML
◼ UML: gambar-gambar sistem OO
◼ bahasa pemrograman tidak cukup abstrak untuk desain OO
◼ UML adalah standar terbuka; banyak perusahaan yang
menggunakannya

◼ Apa yang dimaksud dengan UML legal?


◼ bahasa deskriptif: sintaksis formal yang kaku (seperti
pemrograman)
◼ bahasa yang preskriptif: dibentuk oleh penggunaan dan
konvensi
◼ tidak masalah untuk menghilangkan sesuatu dari diagram
UML jika tidak diperlukan oleh tim/pengawas/instruktur
5
Penggunaan untuk UML
◼ sebagai sketsa: untuk mengkomunikasikan aspek-aspek
sistem
◼ desain ke depan: membuat UML sebelum membuat coding
◼ desain mundur: mengerjakan UML setelah pengkodean sebagai
dokumentasi
◼ sering dilakukan di papan tulis atau kertas
◼ digunakan untuk mendapatkan ide selektif kasar

◼ sebagai cetak biru: desain lengkap yang akan


diimplementasikan
◼ terkadang dilakukan dengan alat bantu CASE
(Computer-Aided Software Engineering)

◼ sebagai bahasa pemrograman: dengan alat yang tepat,


kode dapat dibuat secara otomatis dan dieksekusi dari
UML
◼ hanya bagus jika ini lebih cepat daripada pengkodean dalam
bahasa "nyata"
6
Diagram kelas UML
◼ Apa yang dimaksud dengan diagram kelas UML?
◼ Diagram kelas UML: gambaran kelas-kelas dalam
sistem OO, bidang dan metodenya, dan koneksi
antara kelas-kelas yang berinteraksi atau mewarisi
satu sama lain

◼ Apa saja hal-hal yang tidak direpresentasikan


dalam diagram kelas UML?
◼ rincian bagaimana kelas berinteraksi satu sama lain
◼ detail algoritmik; bagaimana perilaku tertentu
diimplementasikan

7
Diagram satu kelas
◼ nama kelas di bagian atas kotak
◼ tulis <<interface>> di atas nama antarmuka
◼ gunakan huruf miring untuk nama kelas abstrak

◼ atribut (opsional)
◼ harus menyertakan semua bidang objek

◼ operasi / metode (opsional)


◼ dapat menghilangkan metode trivial (get/set)
◼ tetapi jangan hilangkan metode apa pun dari antarmuka!
◼ tidak boleh menyertakan metode yang diwariskan

8
Atribut kelas
◼ atribut (bidang, variabel contoh)
◼ nama visibilitas : tipe [count] = nilai_default

◼ visibilitas: + publik
# dilindungi
- pribadi
~ paket (default)
/ berasal
◼ menggarisbawahi atribut statis

◼ atribut turunan: tidak disimpan, tetapi


dapat dihitung dari nilai atribut lainnya

◼ contoh atribut:
- keseimbangan: ganda = 0,00

9
Operasi / metode kelas
◼ operasi / metode
◼ nama visibilitas (parameter) : return_type

◼ visibilitas: + publik
# dilindungi
- pribadi
~ paket (default)
◼ menggarisbawahi metode statis
◼ tipe parameter yang terdaftar sebagai (nama: tipe)
◼ hilangkan return_type pada
konstruktor dan ketika tipe return
adalah void

◼ contoh metode:
+ jarak (p1: Titik, p2: Titik): ganda
10
Komentar
◼ direpresentasikan sebagai catatan terlipat,
dilampirkan pada kelas/metode/dll yang sesuai
dengan garis putus-putus
11
Hubungan btwn. kelas
◼ generalisasi: hubungan pewarisan
◼ pewarisan antar kelas
◼ implementasi antarmuka

◼ asosiasi: hubungan penggunaan


◼ ketergantungan
◼ agregasi
◼ komposisi

12
Hubungan generalisasi
◼ hubungan generalisasi (pewarisan)
◼ Hirarki yang digambar dari atas ke bawah dengan anak panah
menunjuk ke atas ke induk
◼ Gaya garis/panah berbeda, berdasarkan
apakah induknya adalah a(n):
◼ kelas:

garis padat, panah hitam


◼ kelas abstrak:

garis padat, panah putih


◼ antarmuka:

garis putus-putus, panah putih

◼ kita sering tidak menggambar


hubungan generalisasi yang
sepele/jelas, seperti menggambar
kelas Object sebagai induk
13
Hubungan asosiasi
◼ hubungan asosiasi (penggunaan)
1. multiplisitas (berapa banyak yang digunakan)
◼ * ⇒ 0, 1, atau lebih
◼ 1 ⇒ 1 tepat
◼ 2..4 ⇒ antara 2 dan 4, inklusif
◼ 3..* ⇒ 3 atau lebih
2. nama (hubungan apa yang dimiliki oleh objek-objek tersebut)
3. kemampuan navigasi (arah)

14
Banyaknya asosiasi
◼ satu-ke-satu
◼ setiap siswa harus membawa tepat satu kartu
identitas

◼ satu-ke-banyak
◼ satu daftar persegi panjang dapat berisi banyak persegi
panjang
15
i a
Jenis asosiasi m
p
n

l i
e n
◼ agregasi: "merupakan bagian dari" m t
◼ dilambangkan dengan berlian putih e r
bersih n i
t n
a s
◼ komposisi: "seluruhnya terbuat s i
dari" i k
,
◼ versi agregasi yang lebih kuat d
◼ bagian-bagiannya hidup dan mati b a
bersama keseluruhannya u r
◼ dilambangkan dengan berlian hitam k i
a
n s
◼ ketergantungan: "menggunakan t
b a
untuk sementara waktu" a t
◼ dilambangkan dengan garis putus-putus g u
◼ sering kali merupakan detail i s
objek tersebut Mobil

1
agregasi
1
Mesin

Buku

komposisi
1
*
Halama
n

ketergantun
gan
16
Contoh diagram kelas 1

17
Contoh diagram kelas 2
Banyaknya

Pelanggan
1 Sederhana
Kelas Agregasi

Kelas Faktur
Abstra Penyewaan
k
Barang Sewa 1..*
1 0..1
Komposisi Asosiasi
Generalisasi
Sederhana

Layar
Film DVD Film VHS Video Game
Pembayaran

18
Contoh diagram kelas 3

StudentBody Mahasi
1 100
swa: String
- nama_pertama
+ main (args : String[]) - Nama belakang : String
- rumahAlamat : Alamat
- sekolahAlamat : Alamat

+ toString() : String
Alamat
- alamat_jalan : String
- kota: String
- status: String
- zipCode : panjang

+ toString() : String

19
Alat untuk membuat diagram

UML.
Violet (gratis)
◼ http://horstmann.com/violet/

◼ Rasional Rose
◼ http://www.rational.com/

◼ Visual Paradigm UML Suite (uji coba)


◼ http://www.visual-paradigm.com/
◼ Tautan pengunduhan (hampir) langsung:
http://www.visual-paradigm.com/vp/download.jsp?product=vpuml&edition=ce

(masih banyak lagi yang lainnya, tetapi sebagian besar bersifat


komersial)
20
Latihan desain kelas
◼ Pertimbangkan sistem permainan poker Texas Hold 'em
ini:
◼ 2 hingga 8 pemain manusia atau komputer
◼ Setiap pemain memiliki nama dan tumpukan chip
◼ Pemain komputer memiliki pengaturan kesulitan: mudah,
sedang, sulit
◼ Rangkuman dari masing-masing tangan:
◼ Dealer mengumpulkan taruhan dari pemain yang sesuai,
mengocok kartu, dan memberikan setiap pemain 2 kartu dari
kartu tersebut.
◼ Ronde pertaruhan terjadi, diikuti dengan pembagian 3 kartu
bersama dari dek.
◼ Saat kartu dibagikan, lebih banyak ronde pertaruhan terjadi, di
mana setiap pemain dapat melipat, mengecek, atau menaikkan.
◼ Di akhir ronde, jika ada lebih dari satu pemain yang tersisa, tangan
para pemain akan dibandingkan, dan tangan terbaik akan
memenangkan pot dari semua chip yang dipertaruhkan.

◼ Kelas-kelas apa saja yang ada dalam sistem ini? Apa saja
tanggung jawab? Kelas mana yang berkolaborasi?
◼ Gambarkan diagram kelas untuk sistem ini. Sertakan hubungan
antar kelas (generalisasi dan asosiasi). 21

Anda mungkin juga menyukai