KONSEP OOP DIAGRAM UML

dokumen-dokumen yang mirip
Pemrograman Berorientasi. Class Diagram

SYLLABUS DAN PENDAHULUAN. Astrid Lestari Tungadi, S.Kom., M.TI.

Pemrograman Lanjut Tipe Data dan Constructor PTIIK

Selama tahap analisis, Perancang Sistem memusatkan perhatian pada pemahaman kepada Requirements Document untuk menghasilkan sebuah spesifikasi

Bahasa Pemrograman 2.

Adam Hendra Brata Teknik Informatika FILKOM UB Semester Genap 2015/2016

UNIFIED MODELING LANGUAGE

Pemrograman Lanjut. Interface

Sistem Informasi OOAD dengan UML (1) Teknik Informatika UNIKOM

Konsep Dasar Pemrograman Berorientasi Objek

Pemrograman Lanjut Review Class dan Object PTIIK

KONSEP OOP: POLYMORPHISM

INTRODUCTION OBJECT ORIENTED ANALYSIS & DESIGN

KONSEP OOP: POLYMORPHISM

Yuli Purwati, M.Kom USE CASE DIAGRAM

Class Diagram Class diagram mendeskripsikan jenis-jenis objek dalam system dan berbagai macam hubungan statis yang terdapat di antara mereka.

ENKAPSULASI Data Hiding

Teknik Informatika S1

Pendahuluan Rekayasa Perangkat Lunak II. Alif Finandhita. Teknik Informatika UNIKOM

REKAYASA PERANGKAT LUNAK II

UNIFIED MODELLING LANGUAGE. Rekayasa Perangkat Lunak

ABSTRAK. Kata kunci: diagram kelas, xml, java, kode sumber, sinkronisasi. v Universitas Kristen Maranatha

Pemodelan Berorientasi Objek

Pemrograman Berorientasi. Inheritance

Class Diagram (Class, Association,Aggregation,Compositon,Generalization,Multiplicity)

Konsep Objek Oriented

DAFTAR ISI. KATA PENGANTAR... i. DAFTAR ISI... iii. DAFTAR GAMBAR... xi. DAFTAR TABEL... xvii. DAFTAR SIMBOL... xx BAB I PENDAHULUAN...

Object Oriented Analysis and Design -Pendahuluan- Nisa ul Hafidhoh

LEMBARAN SOAL ULANGAN KENAIKAN KELAS Tahun 2014/ Komunikasi Paket Keahlian

Rahmady Liyantanto Blog : liyantanto.wordpress.com

OOAD (Object Oriented Analysis and Design) UML part 2 (Activity diagram, Class diagram, Sequence diagram)

Sistem Basis Data. Pertemuan 3 : Modeling Data in Organization Andronicus Riyono, M.T.

MATERI 3a Pemrograman Berorientasi Objek (S3)

PERTEMUAN 13 PERANCANGAN BERORIENTASI OBJEK UNTUK MULTI KELAS

ENKAPSULASI PEMROGRAMAN LANJUT. Dr. Eng. Herman Tolle. Teknik Informatika PTIIK UB Semester Genap 2015/2016

Program Design Method Rangkuman UAS. Diagram Use Case ( Use Case Diagram ) Use Case. Actor. Administrator. Relationship. Boundary

Algoritma Pemrograman [BS204]

Pemrograman Lanjut Class and Object PTIIK

Inheritance (Pewarisan) Pengertian dasar inheritance

Pemodelan Visual dengan UML

Pemrograman Web. Object Oriented Programming in PHP 5

Teknik Informatika S1

DESIGN SYSTEM WITH UML

Teknik Informatika S1

Inheritance dan Kata Kunci static

06/03/2018. Tidak memiliki parameter. Melakukan inisialisasi semua variabel private dengan nilai awal.

RANCANGAN PEMBELAJARAN

Jobsheet 09. Overloading and Overriding Method

MEMAHAMI PENGGUNAAN UML

KONSTRUKTOR PEMROGRAMAN LANJUT. Dr. Eng. Herman Tolle, ST., MT. Sistem Informasi FILKOM UB Semester Genap 2016/2017

7. Analisis Kebutuhan - 1 (System Actors & System Use Cases )

CSG2H3 Object Oriented Programming. Inheritance -RSM-

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

UML UNIFIED MODELLING LANGUAGE

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

Oleh : RAHMADY LIYANTANTO

Adam Hendra Brata Teknik Informatika FILKOM UB Semester Genap 2015/2016

Pengantar Analisis dan Desain Berbasis Obyek. Object Oriented Analysis and Design

Pengantar Analisis dan Desain Berbasis Obyek (Object Oriented Analysis and Design)

Unified Modelling Language UML

Pengenalan UML dan Diagram Use Case. Alif Finandhita. Teknik Informatika UNIKOM

Teknik Informatika S1

RENCANA PEMBELAJARAN SEMESTER (RPS)

MINGGU VII : RELASI ANTAR KELAS

ABSTRAK. Kata Kunci: Sistem Informasi, Penjualan, Mobile, Android, HTML 5. Universitas Kristen Maranatha

Object Oriented Programming (Class, Inheritance, Encapsulation dan Interface)

KONSEP Pemrograman Berorientasi Objek KARMILASARI

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA SILABUS PENGEMBANGAN SISTEM BERORIENTASI OBJEK

PEMBANGUNAN APLIKASI PENCATATAN PENANGANAN GANGGUAN PT. TELKOM REGIONAL BANDUNG

Pemograman Berorientasi Objek

Pemrograman Berorientasi. Abstract & Interface

Bahasa Pemograman II. Object Oriented Programming

Lebih Jauh Tentang CLASS & OBJEK pada Object Oriented Programming

MAKALAH ANALISIS & PERANCANGAN SISTEM II USE CASE DIAGRAM

UML : Class Diagram 23/11/ Area Pokok Class. Kaidah Penulisan Nama Class. Class Diagram (1) Contoh Class. Class Diagram (2) SHINTA P.

ABSTRAK. Kata kunci: Android, Dosen, E-Learning, Kuliah, Mahasiswa, Mobile. vi Universitas Kristen Maranatha

ANALISIS DAN PERANCANGAN SISTEM (APS) Konsep Pemodelan

ABSTRAK. vii. Kata kunci: satuan mobil penumpang, volume kendaraan, dan klasifikasi kendaraan.

UML (Unified Modelling Language)

ABSTRAK. Kata kunci : penjualan, pembelian, aplikasi desktop, C#, Microsoft SQL. Server

Pemograman Berorientasi Objek. Week 6 Relasi Antar Kelas

BAB II LANDASAN TEORI

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

Unified Modeling Language

Gambar L.37 Form Print Laporan Absensi Harian Gambar L.38 Form Print Laporan Absensi Periode

SISTEM INFORMASI PEMBERITAHUAN KEGIATAN ACARA DESA BERBASIS SMS GATEWAY DI KECAMATAN MEJOBO KUDUS

BAB II LANDASAN TEORI

(INHERITANCE) Nurochman

MODUL 2. UML, Generalization, and Specialization UML. 2.1 Pengertian UML. 2.2 Diagram-Diagram yang Ada Dalam UML TUJUAN PRAKTIKUM LANDASAN TEORI

Konsep dan Arsitektur Basis Data. IKI20410 Basis Data Aniati Murni Fakultas Ilmu Komputer Universitas Indonesia

Daftar Isi. Abstract... Abstrak... Kata Pengantar... Daftar Isi... Daftar Tabel... Daftar Gambar... Daftar Simbol... Daftar Lampiran...

Information Systems Analysis and Design

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

PEMODELAN BERORIENTASI OBYEK

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Other OOP Basic. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

Pemograman Berorientasi Objek

Transkripsi:

PEMROGRAMAN LANJUT Sistem Informasi PTIIK UB Semester Genap 2014/2015 KONSEP OOP DIAGRAM UML Dr. Eng. Herman Tolle Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya

Materi Pemrograman Lanjut 1. Review Pemrograman Dasar 2. Konsep OOP, 3. Class dan object, 4. UML Class Diagram 5. Fungsi overloading dan konstruktor, 6. Enkapsulasi, 7. Inheritance/pewarisan, 8. Polymorphism Pemrograman Berorientasi Objek

Relasi Antar Kelas Suatu class dapat dibangun dari ataupun memiliki keterkaitan dengan kelas yang lain Secara umum relasi antar class adalah: Depedensi ( uses-a ); (relasi menggunakan) Agregasi ( has-a ); (relasi mempunyai ) Inheritance ( is-a ); (relasi adalah)

Relasi antar Kelas 1. Asosiasi Multiplicity Directed Assosiation Reflexive Association 2. Aggregasi Komposisi 3. Inheritance / Generalisasi 4. Realization

Association Association A---->B Composition A-----<filled>B Aggregation A-----<>B

Aggregation In transportation systems Car has many Passenger, relationship between them is Aggregation. public class Car { private Person[] Penumpang; } public class Person { private String name; }

Composition Composition : Since Engine is part-of Car, relationship between them is Composition. public class Car { private final Engine engine; public Car() { engine = new Engine(); } } class Engine { private String type; }

Composition vs Aggregation Jika suatu objek adalah bagian dari (part-of) objek lain, misalnya Engine is part of Car, maka asosiasi atau relationship diantara keduanya disebut Composition (Komposisi). Jika suatu objek memiliki objek lain maka ini disebut Aggregation (Agregasi). Aggregation (many-to-one relationships) Whole Part ( Composition) Containership Collection Group

Composition Komposisi adalah bentuk khusus dari Agregasi (disebut juga death relationship ). Child Object (Objek yang digunakan dalam objek induknya) tidak memiliki lifecycle. Jika objek induknya dihapus maka objek anaknya juga akan terhapus. Misalnya: House -----<filled> Rooms House can contain multiple rooms there is no independent life of room and any room can not belong to two different houses. If we delete the house - room will automatically be deleted. Questions -----<filled> options. Single questions can have multiple options and option can not belong to multiple questions. If we delete questions options will automatically be deleted.

Relasi Relasi 1 to 1 (one to one): satu objek A hanya memiliki pasangan 1 objek B Relasi 1 to N atau 1.. * (one to many) : satu objek A bisa memiliki minimal 1 atau banyak objek B Relasi 0 to N atau 0..* (zero to many): satu objek A bisa memiliki banyak objek B atau tidak ada sama sekali Relasi M to M atau N.. N (many to many): objek A dan objek B bisa muncul lebih dari 1x

Aggregation Hierarchy "weak has-a" - where there is more of a peer-to-peer relationship between abstractions (association) ex: Instructor has students, Students have instructor Community Schools Businesses Residents School Faculty Students Administrators Classrooms Classroom Tables Chairs Students Instructor

Inheritance Hierarchy an "is-a" relationship Inheritance for type - a re-use of common interface for class - a re-use of common interface and implementation Person Name Student Name Attendence Current Grade

Class Diagram Visibility Attributes normally should be private, methods invoked by clients should be public Visibility markers in UML A plus sign (+) indicates public visibility A minus sign (-) indicates private visibility A sharp sign (#) indicates protected visibility Navigability Navigability arrows indicate in which direction an association can be traversed Bidirectional navigability Associations with navigability arrows at both ends or no navigability arrows at all can be traversed in either direction 15

Contoh Class Diagram

Comparison of Functional vs. OO Views Register Student Students Students Submit Grade Grades Student/Grades Student Register( ) Submit Score( ) Print Transcript( ) 0..* Score Name Value Print Transcript

Addition of a New Student Type Register Student Students/ Pass Fail Students Submit Grade Grades/PF Student Register( ) Submit Score( ) Print Transcript( ) 0..* Score Name Value Students Student/Grades/PF Impact Areas Print Transcript PassFail Student Print Transcript( ) function override Changes in data types cause significant impact to functional approaches OO approaches allow new object types to re-define functionality

Addition of New Report Type Register Student Students Students Submit Grade Grades Impact Areas Student Register( ) Submit Score( ) Print Transcript( ) Print Report Card( 0..* Score Name Value Student/Grades/PF Student/Grades/PF Print Transcript Print Report Card PassFail Student Print Transcript( ) Print Report Card( Changes in functionality based on stable data causes significant impact across objects Functional approaches allow new functions to augment functionality

Re-organization of OO Abstractions Transcript Print( ) 0..1 Student Register( ) Submit Score( ) 0..* Score Name Value Transcript Print( ) 0..1 Student Register( ) Submit Score( ) Determine Grade( ) 0..* Score Name Value Transcript Print( ) Report Card 0..1 0..1 Student Register( ) Submit Score( ) Determine Grade( ) 0..* Score Name Value PassFail Student Determine Grade( ) Print( ) PassFail Student Determine Grade( ) Data dependent behavior handled by derived classes New functionality handled by new associated classes ("wrappers", "adapters", "views")

Diagram UML The Unified Modeling Language (UML) is a general-purpose modeling language in the field of software engineering. Provides a set of graphic notation techniques to create visual models of object-oriented softwareintensive systems. Developed by Grady Booch, Ivar Jacobson and James Rumbaugh at Rational Software in the 1990s

SYSTEM MODELS (in UML notation) Functional Model use case diagrams (synthesized from scenarios from phenomena and concepts) Object Model class diagrams (representing object structures as objects, attributes, associations, and operations) Dynamic Model sequence diagrams, statechart diagrams and activity diagrams (describe the internal behavior or finite state machine of the system). SD are inter-object messaging and interactions, while SC-diagrams depict the finite state machine description of an object s behavior

Case Study: ATM System 24 Fig. 8.24 Class diagram with visibility markers.

25 Fig. 8.25 Class diagram with navigability arrows.

Starting to Program the Classes of the ATM System Implementing the ATM system from its UML design (for each class) Declare a public class with the name in the first compartment and an empty no-argument constructor Declare instance variables based on attributes in the second compartment Declare references to other objects based on associations described in the class diagram Declare the shells of the methods based on the operations in the third compartment Use the return type void if no return type has been specified 26

27 Fig. 8.24 Class diagram with visibility markers.

1 // Class Withdrawal represents an ATM withdrawal transaction 2 public class Withdrawal 3 { 4 // no-argument constructor 5 public Withdrawal() 6 { 7 } // end no-argument Withdrawal constructor Class for Withdrawal Empty no-argument constructor Outline 28 withdrawal.ja va 8 } // end class Withdrawal

29 Fig. 8.24 Class diagram with visibility markers.

1 // Class Withdrawal represents an ATM withdrawal transaction 2 public class Withdrawal 3 { 4 // attributes 5 private int accountnumber; // account to withdraw funds from 6 private double amount; // amount to withdraw 7 8 // no-argument constructor 9 public Withdrawal() 10 { 11 } // end no-argument Withdrawal constructor 12 } // end class Withdrawal Declare instance variables Outline 30 withdrawal.ja va

31 Fig. 8.25 Class diagram with navigability arrows.

1 // Class Withdrawal represents an ATM withdrawal transaction 2 public class Withdrawal 3 { 4 // attributes 5 private int accountnumber; // account to withdraw funds from 6 private double amount; // amount to withdraw 7 8 // references to associated objects 9 private Screen screen; // ATM s screen 10 private Keypad keypad; // ATM s keypad 11 private CashDispenser cashdispenser; // ATM s cash dispenser 12 private BankDatabase bankdatabase; // account info database 13 14 // no-argument constructor 15 public Withdrawal() 16 { 17 } // end no-argument Withdrawal constructor 18 } // end class Withdrawal Declare references to other objects Outline 32 withdrawal.ja va

33 Fig. 8.24 Class diagram with visibility markers.

1 // Class Withdrawal represents an ATM withdrawal transaction 2 public class Withdrawal 3 { 4 // attributes 5 private int accountnumber; // account to withdraw funds from 6 private double amount; // amount to withdraw 7 8 // references to associated objects 9 private Screen screen; // ATM s screen 10 private Keypad keypad; // ATM s keypad 11 private CashDispenser cashdispenser; // ATM s cash dispenser 12 private BankDatabase bankdatabase; // account info database 13 14 // no-argument constructor 15 public Withdrawal() 16 { 17 } // end no-argument Withdrawal constructor 18 19 // operations 20 public void execute() 21 { 22 } // end method execute 23 } // end class Withdrawal Declare shell of a method with return type void Outline 34 withdrawal.ja va

Studi Kasus: Sistem Penggajian Pegawai Employee -fullname: string; - birthdate: date; -hiredate: date; -salary: Salary; -numberofemployee: int static +employee(name, birth) +getname(): string +getbirthdate(); date -day: int; - month: int; - year int; + date(d,m,y); + setdate(d, m, y); Salary - gajipokok + hitunggaji()

Tugas 3 Studi Kasus: Pegawai & Gaji Harian Pengembangan dari tugas sebelumnya, dengan menambahkan atribut baru (birthday, hiredate, salary) Rule baru: 1. Jika masa kerja > 3 bulan maka Gaji Pokok lebih besar z% atau x rupiah 2. Jika umur > y tahun maka dapat Tunjangan Lain-lain sebesar w rupiah

Laporan Soal (Kasus, Rules, Konstanta) Diagram Class beserta relasinya Buat implementasi class Buat program implementasi class (min 3 pegawai) Screenshot Deadline: 21 April 2014, Dikirim ke email dosen. Dicetak dan dikumpulkan tgl 22 April 2014

Modular Programming Memisahkan data dengan proses Contoh: menggunakan konstanta final static int gajipokok = 5000; final static int minkerja = 3; final static double gajinaik = 0.2; Rules: If (lamakerja > minkerja) gajipokokpegawai = gajipokok * (1 + gajinaik);