Bahasa Pemrograman 2 Class Diagram Class Diagram
[email protected]
What is UML ? What is UML ? • Sebuah bahasa pemodelan terstandar untuk pemrograman g berorientasi obyek y bahasa p • UML UML merupakan k perpaduan d d i tiga dari i paradigma pemodelan sistem object oriented: – OMT (James Rumbaugh) – OOSE (Ivan Jacobson) OOSE (Ivan Jacobson) – Booch (Grady Booch)
What is UML ? What is UML ? • UML bukan alat untuk membuat software, UML membantu membuat model dari software yang akan dibuat • UML berupa gambar, berisi notasi‐notasi untuk membuat software blueprints (rancangan)
Why is UML Important Why is UML Important • UML UML untuk t k membuat b t software blueprints bagi ft bl i t b i analysts, designers dan programmers • UML merupakan bahasa “universal” untuk pihak‐ pihak yang terlibat yang terlibat dalam pembuatan suatu software • Pada OO, modelling merupakan bagian yang sangat penting. UML membantu penting UML membantu proses modelling tersebut
What is UML goals ? What is UML goals ? • Menyediakan seperangkat notasi dan tools pemodelan software dengan g untuk melakukan p sederhana dan mudah digunakan • UML bersifat independen dari bahasa pemrograman tertentu, UML bukan bahasa pemrograman, UML hanya berupa notasi pemrograman, UML hanya untuk pemodelan software
Who is need UML ? Who is need UML ? • SSemua pihak ih k yang terlibat t lib t dalam d l pembuatan b t software • System Analysts, Programmers, Business Designer dsb Designer, dsb • UML UML berupa b notasi‐notasi t i t i yang berupa b gambar b sehingga mudah untuk dipelajari, selain itu UML juga tidak terkait pada bahasa pemrograman tertentu
UML Diagrams UML Diagrams • Ti Tipe diagram pada di d UML dibagi UML dib i menjadi j di 2 kategori 2k t i yaitu : • Structure Diagrams : Di Diagram yang menggambarkan b k aspekk statis i dari d i system yang kita buat • Behavior Diagrams Diagram yang menggambarkan b k aspekk dinamis d dari system yang kita buat
Class Diagram Class Diagram z
Apa yang ada pada class diagram z
z z
z
Class dan interface beserta atribut dan operasinya Relasi yang terjadi antar objek Relasi yang terjadi antar objek Constraint terhadap objek‐objek yang saling berhubungan Inheritance untuk organisasi class yang lebih baik
Class Diagrams Class Diagrams
Tools • Free Solution: F S l ti • • • • • • •
Dia (Gnome) ( ) IBM Rational Modeler Kivio (KDE) Netbeans Umbrello UML Modeller (KDE) StarUML ArgoUML
Tools • Proprietary Solution : • • • •
Microsoft Visio Rational Software Architects Enterprise Architects Enterprise Architects Poseidon for UML
Class Diagrams g • Notasi Notasi class digambarkan dengan kotak seperti class digambarkan dengan kotak seperti contoh berikut:
Class Diagrams g
• Bagian atas adalah nama class • Bagian tengah adalah list attribute/field • Bagian bawah adalah list methods
Class Diagrams g
• Modifier akses dilambangkan dengan 3 macam notasi: – (+) Æ public – (‐) Æ private – (#) Æ protected
Class Diagrams g z
Notasi dari atribut z
z
visibility name: type multiplicity = default {property‐string}
Contoh z z z
z
‐ name: String [1] = "Untitled" {readOnly} + berarti public, ‐ b ti bli berarti private, # berarti protected b ti i t # b ti t t d “Untitled” adalah nilai yang diberikan secara default jika tidak ditentukan saat objek dibuat {readOnly} adalah properti tambahan dari atribut, y p p dimana disini berarti tidak bisa dimodifikasi
Class Diagrams g z
N t id i Notasi dari operations ti z
z
Parameter pada parameter Parameter pada parameter‐list list dinotasikan dinotasikan seperti pada seperti pada atribut z z
z
visibility name (parameter‐list) : return‐type {property‐string}
direction name: type = default value direction bisa berupa: in, out, atau inout
Contoh z
+ balanceOn b l O (in date: Date) (i d t D t ) : Money M
• Bagaimana dengan constructor? • Sama dengan methods S d h d – visibility name_constructor([parameter-list])
Class Diagrams g • Contoh: Buatlah class diagram dari program java di bawah ini: class Anjing { public Anjing() { System.out.println("Anjing tercipta"); } public String bersuara() { System.out.println("Guk y p ( g guk g guk"); ) } public void makan(String makanan) { System out println("Sedang makan "+makanan); System.out.println("Sedang } }
Class Diagrams g • Bagaimana kalau class tersebut merupakan abstract class? • Bagaimana dengan abstract methods? Bagaimana dengan abstract methods? • Bagaimana kalau ada beberapa kelas g p dimasukkan dalam satu package? • Bagaimana dengan interface? B i d i f ?
Class Diagrams g • Bagaimana kalau ada hubungan antar class seperti inheritance, agrregation, composition, dsb.? • Inheritance:
Generalization
Class Diagrams g • Association:
Class Diagrams g • Composition:
Class Diagrams g • Whole‐part (aggregation):
Composition z
'has a' or 'contains a' relationship (whole‐part) z
z
Kampus memiliki fakultas CS atau kampus terdiri p p dari fakultas CS (salah satunya) Jika tidak ada fakultas tidak mungkin ada kampus Jika tidak ada fakultas, tidak mungkin ada kampus
Aggregation z z
Sebuah ruangan memiliki meja dan kursi Tanpa kehadiran ruang, meja dan kursi bisa Tanpa kehadiran ruang, meja dan kursi bisa tetap ada
Class diagram Example Class diagram Example
Class diagram Example Class diagram Example
NEXT • JAR dan JDBC