Pemograman Berorientasi Objek. Week 6 Relasi Antar Kelas

dokumen-dokumen yang mirip
MINGGU VII : RELASI ANTAR KELAS

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

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

Pemograman Berorientasi Objek

Pemograman Berorientasi Objek. Week 3 Abstrak dan Interface dalam suatu kelas

BAB II LANDASAN TEORI

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

* Banyak 0 Nol 1 Satu, bisa ditulis bisa tidak 0..* Antara nol sampai banyak 1..* Antara satu sampai banyak 0..1 Nol atau 1 1..

Bahasa Pemrograman 2.

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

PERTEMUAN 13 PERANCANGAN BERORIENTASI OBJEK UNTUK MULTI KELAS

Modul 4: Lebih Dalam lagi tentang Class, Objek dan Method

Parent dan Child di Java

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

ENKAPSULASI. 1. Kompetensi Setelah kegiatan perkuliahan selesai, mahasiswa diharapkan dapat:

MODUL 5 COMPONENT DIAGRAM

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

Oleh : Rahmady Liyantanto

Membuat dan Menggunakan Class

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

Pemrograman Berorientasi Objek (PBO) By : Jeffry Montolalu, ST PERTEMUAN XII KELAS DAN OBYEK

Bahasa Pemrograman II Modul 1 : Pemrograman Berbasis Objek

Bahasa Pemrograman 2.

Pemrograman Berorientasi. Class Diagram

ABSTRACT CLASS DAN INTERFACE

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

Bahasa Pemrograman :: Java Class Library

UNIFIED MODELING LANGUAGE

KONSEP OOP: PEWARISAN / INHERITANCE

DAFTAR SIMBOL. Notasi Keterangan Simbol. Actor adalah pengguna sistem. Actor. tidak terbatas hanya manusia saja, jika

PEMROGRAMAN JAVA. Yoannita, S.Kom. Class & Method sederhana Konsep Pemrograman Berorientasi Objek. Company LOGO

BAB III METODOLOGI PENELITIAN

Pemrograman Berorientasi. Package & Hubungan Antar Kelas

UML (Unified Modelling Language)

Jobsheet 09. Overloading and Overriding Method

KONSEP OBJEK ORIENTASI PROGRAM

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

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

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

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

Citra Noviyasari, S.Si, MT SI - UNIKOM

Notasi dalam UML. Actor

Modul Bahasa Pemrograman 1

Pertemuan6. Class Diagram

PEWARISAN D E W I S A R T I K A, M. K O M

DAFTAR SIMBOL. Notasi Keterangan Simbol. Titik awal, untuk memulai suatu aktivitas. Titik akhir, untuk mengakhiri aktivitas.

Pewarisan atau Inheritance

Inheritance dan Kata Kunci static

BAB II LANDASAN TEORI

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

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

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

Kebutuhan dan Spesifikasi Perangkat Lunak

Object Oriented Programming LOGO

BAB II TINJAUAN PUSTAKA. yang ditandai dengan saling berhubungan dan mempunyai satu fungsi atau tujuan

Pemograman Berorientasi Objek

BAB II LANDASAN TEORI

KONSEP OOP: PEWARISAN / INHERITANCE

Keyword this untuk memanggil private String pengarang; private String judul;

Pewarisan(Inheritance) Oleh: Mike Yuliana PENS-ITS

IKG2I4 / Software Project I

Chapter 6 Konsep OOD with Java

Pewarisan (Inheritance)

Ismail Wibi Wicaksono

Pemrograman Berorientasi

DAFTAR ISI. ABSTRAK... i. ABSTRACT... ii. KATA PENGANTAR... iii. DAFTAR ISI... v. DAFTAR GAMBAR... xvi. DAFTAR TABEL... xxiii. DAFTAR SIMBOL...

MODUL 1 PRAKTIKUM PEMROGRAMAN BERORIENTASI OBYEK(PBO) KELAS DAN OBJEK. TGL PRAKTIKUM : 24 September 2012 :ACHMAD FAJAR NORULLAH NRP :

Pengenalan pemrograman berorientasi obyek

Pemrograman Berorientasi. Inheritance

Konsep Pemrograman Berbasis Obyek

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

PertemuanI. Object Oriented

Konsep Lanjut Pemrograman Objek

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

CLASS DIAGRAM (ANALISIS DAN PERANCANGAN BERORINTASI OBJEK) Annisa Paramitha F., S.Kom.,M.Kom.

MINGGU VI : PBO (LANJUTAN)

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

public class B extends A {... }

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

Inheritance dan Polimorfisme

Array Sebagai Parameter Method

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

Pemrograman Berorientasi. Polimorfisme dan Binding

SUMBER BELAJAR PENUNJANG PLPG

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs

Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs.

Pemrograman Berbasis Objek Inheritance

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

Unified Modelling Language UML

IKG2I4 / Software Project I

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

ANALISA & PERANCANGAN SISTEM INFORMASI. Sufajar Butsianto, M.Kom

BAB 2 LANDASAN TEORI

Pemrograman Lanjut Review Class dan Object PTIIK

Percabangan & Perulangan

MINGGU II : DASAR C# Tujuan Pembelajaran. Materi

Inheritance dan Polimorfisme

Transkripsi:

Pemograman Berorientasi Objek c# Week 6 Relasi Antar Kelas

Relasi Antar Kelas Dalam paradigma pemrograman berorientasi objek, sebuah aplikasi dibangun dengan menggabungkan beberapa kelas. Kelas-kelas tersebut saling bekerjasama untuk menyelesaikan suatu masalah. Dalam aplikasi yang berukuran yang cukup kompleks, banyak kelaskelas yang terlibat dalam aplikasi tersebut. Maka untuk aplikasi yang kompleks tersebut dibutuhkan pemodelan kelas untuk menggambarkan aplikasi yang dibangun. Tools yang digunakan untuk memodelkan kelas-kelas dalam PBO adalah UML (Unified Modelling Language). 2

Unified Modelling Language (UML) merupakan spesifikasi pemodelan yang paling banyak digunakan untuk memodelkan struktur dan perilaku aplikasi. UML juga digunakan untuk memodelkan perilaku dan arsitektur aplikasi. UML memiliki banyak jenis diagram yang dapat digunakan untuk memodelkan aplikasi. Namun pembahasan UML disini dibatasi hanya pada kelas diagram saja. Kelas diagram merupakan diagram UML yang digunakan untuk memodelkan kelas-kelas dalam PBO. Kelas diagram ini termasuk dalam kategori pemodelan struktur aplikasi dalam UML. 3

Class Diagram Kelas dalam UML dimodelkan dalam bentuk persegi yang terdiri dari 3 bagian yaitu Nama Kelas, properti dan method yang dimiliki oleh kelas tersebut. Contoh kelas diagram dapat dilihat pada gambar dibawah ini. Contoh diatas merupakan kelas diagram untuk kelas Mobil yang memiliki 2 buah properti yaitu mesin dan status. Tipe data mesin adalah Engine dan tipe data status adalah integer. Tanda didepan properti merupakan akses level masing-masing properti. 4

Simbol tersebut adalah No Simbol Arti 1. + Public 2. - Private 3. # Protected Method yang dimiliki oleh kelas Mobil ada 3 yaitu Start(), Run(), dan Stop(). Masing-masing method tidak membutuhkan argumen dan tipe data kembalian dari method tersebut adalah void. 5

Jenis-jenis Relasi Antar Kelas Seperti yang telah dinyatakan sebelumnya, bahwa sebuah aplikasi yang dibangun dengan menggunakan paradigma OOP akan menggunakan banyak kelas. Kelas-kelas tersebut saling berhubungan antara satu dengan yang lainnya. Hal ini menimbulkan relasi antar kelas. Pembahasan selanjutnya akan membahas tentang relasi antar kelas. Terdapat beberapa macam relasi antar kelas yaitu : - Inheritance - Realization - Dependency - Aggregation - Composition 6

Inheritance Inheritance merupakan relasi turunan dimana sebuah kelas diciptakan berdasarkan kelas lainnya. Kelas yang diciptakan disebut dengan kelas anak dan kelas asalnya disebut dengan kelas induk. Kelas anak akan mewarisi seluruh method an property yang dimiliki oleh kelas induknya. Pembahasan tentang inheritance ini telah dibahas pada pertemuan sebelumnya. Simbol UML untuk relasi inheritance dapat dilihat pada gambar berikut ini. Pada gambar tersebut kelas Sedan merupakan turunan dari kelas Mobil. Relasi turunan sering juga disebut dengan relasi IS-A. 7

Sedan turunan dari Mobil bisa juga disebut Sedan IS A Mobil Mobil + mesin : Engine + states : int + Start() : void + Run():void + Stop(): void Sedan + Merek : String + tahunproduksi : int 8

Realization Realization merupakan relasi yang terjadi akibat implementasi dari interface. Dalam relasi realization, sebuah kelas yang mengimplementasikan interface tertentu, harus mendefinisikan/ mengimplementasikan seluruh method yang dideklarasikan dalam interface. Pembahasan tentang interface telah dibahas pada pembahasan sebelumnya. 9

Diagram kelas untuk realization dapat dilihat pada gambar dibawah ini. Pada gambar dibawah ini dapat dinyatakan bahwa kelas Engine mengimplementasikan interface IEngine. <<interface>> Engine Association + on () : void + off () : void Engine + cc : int + merk : String + on() : void + off():void 10

Dependency Dependency merupakan relasi antar kelas dimana satu kelas membutuhkan atau tergantung kepada kelas lainnya. Tapi ketergantungan tersebut tidak timbal balik. Relasi dependency ini digambarkan dengan panah yang dari satu kelas ke kelas lainnya. Arah panah menunjukkan kelas yang dibutuhkan. Contoh pada kelas Mobil dan Engine. 11

Mobil membutuhkan Engine sehingga relasi kelas Mobil dan Mesin dapat dilihat pada Gambar dibawah ini. Mobil + mesin : Engine + status : int + Start() : void + Run():void + Stop(): void Pada contoh diatas dapat dilihat bahwa kelas Mobil membutuhkan objek dari kelas Engine. Hal ini bisa dilihat dari method Start dan Stop yang dimiliki oleh kelas Mobil. Kedua method tersebut membutuhkan argumen berupa objek dari kelas Engine. Objek tersebut selanjutnya nanti digunakan dalam method tersebut dengan mengeksekusi method yang ada dalam objek Engine. Engine + cc : int + merk : String + on() : void + off():void class Engine { public int cc; public String merek; public void On() { Console.WriteLine("Mesin ON ) public void Off() { Console.WriteLine("Mesin OFF"); class Mobil { public int status; public void Start(Engine e) { e.on(); public void Run() { Console.WriteLine("Run...!"); public void Stop(Engine e) { e.off(); 12

Aggregation Relasi aggregation merupakan bentuk khusus dari relasi dependency. Pada relasi dependency tidak ada dinyatakan kepemilikan kelas Engine. Pada relasi aggregation, terdapat kepemilikan kelas Engine semisal terdapat sebuah properti yang memiliki tipe Engine. Namun pada relasi ini tidak diatur siklus hidup dari kelas Engine. Objek dari kelas Engine dimiliki oleh kelas Mobil dan disimpan dalam properti yang memiliki tipe Engine ini. Relasi aggregation sering juga disebut relasi HAS-A. 13

Contoh relasi aggregation pada antara Mobil dan Engine dapat dilihat pada gambar dibawah ini. Mobil + status : int - mesin : Engine + setengine (e.engine) + Start() : void + Run():void + Stop(): void Pada contoh diatas, dapat dilihat bahwa kelas Mobil memiliki properti mesin yang bertipe Engine. Objek dari kelas Engine nantinya akan disimpan dalam properti mesin tersebut. Contoh diatas terlihat bahwa kelas Mobil memiliki kelas Engine. Pada contoh diatas objek dari kelas Engine dibuat di luar kelas Mobil. Artinya siklus hidup dari kelas Engine tidak tergantung pada kelas Mobil. Engine + cc : int + merk : String + on() : void + off() : void class Engine { public int cc; public String merek; public void On() { Console.WriteLine("Mesin ON ) public void Off() { Console.WriteLine("Mesin OFF"); class Mobil { private Engine mesin; public int status; public void setengine(engine e) { mesin=e; public void Start() { mesin.on(); public void Run() { Console.WriteLine( Run! ); public void Stop() { mesin.off(); class Program { static void Main(string[] args) { Engine engine = new Engine(); Mobil mobil = new Mobil(); mobil.setengine(engine); 14

Composition Composition merupakan relasi yang lebih spesifik dari relasi aggregation. Pada relasi ini suatu kelas tidak hanya dimiliki oleh kelas lainnya, tapi juga siklus hidup kelas tersebut juga ditentukan oleh kelas yang memilikinya. Pada relasi ini biasanya objek dari kelas yang dimiliki diciptakan di dalam kelas yang memilikinya. 15

Contoh relasi composition dapat dilihat pada gambar dibawah ini. Pada gambar dibawah ini dapat dilihat bahwa kelas Engine dimiliki dan dikontrol sepenuhnya oleh kelas Mobil. Relasi composition ini digambarkan dengan tanda diamond bold. Ujung diamond bold menunjukkan bahwa kelas tersebut memiliki kelas yang ada diujung lainnya. Mobil + status : int - mesin : Engine + Mobil() + Start() : void + Run():void + Stop(): void Engine + cc : int + merk : String + on() : void + off() : void class Engine { public int cc; public String merek; public void On() { Console.WriteLine("Mesin ON ) public void Off() { Console.WriteLine("Mesin OFF"); class Mobil { private Engine mesin; public int status; public Mobil() { mesin=new Engine(); public void Start() { mesin.on(); public void Run() { Console.WriteLine( Run! ); public void Stop() { mesin.off(); class Program { static void Main(string[] args) { Mobil mobil = new Mobil(); 16

Association - Aggregation - Composition Jika disimpulkan antara relasi association, aggregation dan composition maka dapat disimpulkan hubungan ketiga jenis relasi tersebut dapat digambarkan melalui gambar berikut ini. Diagram tersebut menggambarkan bahwa relasi Composition merupakan bentuk khusus dari relasi aggregation dan relasi aggregation merupakan bentuk khusus dari relasi association. 17

Notasi UML Class Diagram 18