Pertemuan 10 Inheritance Lanjutan

Slides:



Advertisements
Presentasi serupa
Pertemuan 4.  Perintah yang digunakan untuk mengeluarkan hasil proses komputer sehingga bisa dibaca oleh si pemakai (user). Salah satu untuk menampilkan.
Advertisements

1.Overloading method 2.Konstruktor 3.Overloading konstruktor 1.Overloading method 2.Konstruktor 3.Overloading konstruktor.
Inheritance (pewarisan)
PEWARISAN ( INHERITANCE)
OBJECT ORIENTED PROGRAMMING in JAVA
BAB V – KONSTRUKTOR DAN DESTRUKTOR
BAB III – CLASS (1) DIKTAT PBO Oleh: Adam Mukharil B. S.Kom.
di OBJECT ORIENTED PROGRAMMING [OOP] Oleh H. SUMIJAN, Ir, M.Sc
Struktur.
Inheritance (Pewarisan)
PENGENALAN c++ DAN STRUKTUR DASAR C++
Departemen Ilmu Komputer FMIPA IPB 2013
KONSTRUKTOR & DESTRUKTOR
Structure Data - Array Pertemuan 7 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Friend. Adalah fungsi bukan anggota kelas yg dapat mengakses anggota kelas. Secara umum friend berguna jika terdapat suatu operasi yg hendak mengakses.
1 Pertemuan 6 Encapsulation Lanjutan Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Bab 05 Tipe Data dan Mengisi Variabel
Pemrograman Berorientasi Obyek (PBO)
1 Pertemuan 9 Inheritance Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Pertemuan 6 PEWARISAN AND POLYMORPHISM
1 Pertemuan 18 Template Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Matakuliah : T0044/Pemrograman Berorientasi Obyek
1 Pertemuan 5 Encapsulation Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Pertemuan 10 Constructor dan Destructor
INHERITANCE (PEWARISAN)
1 Pertemuan 16 Multiple Inheritance Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
1 Pertemuan 8 Array & Pointer of Class Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
1 Pertemuan 12 Template Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
// Contoh program c++ dengan fungsi template
1 Pertemuan 10 Pemrograman Berorientasi Objek Matakuliah: >/ > Tahun: > Versi: >
Kontrak Kuliah Pengenalan OOP
ARRAY Array merupakan struktur data yang sering digunakan dalam pemrograman untuk menyimpan data yang akan diolah.
STRUKTUR.
INHERITANCE & POLIMORPHISME Pertemuan Inheritance
4. File Data Structure + Algorithm = Program UNIV. INDONUSA Esa Unggul.
File & Stream - Yessy Asri
I Gusti Agung Made Wirautama, S.Kom
Object Oriented Programming
Pertemuan 4 Abstract Data Type
Inheritance Pertemuan 8
Pewarisan Disusun Oleh: Reza Budiawan Untuk:
Pertemuan 1 KONSEP PEMROGRAMAN BERORIENTASI OBJEK
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
File & Stream - Yessy Asri
Constructor dan Destructor Pertemuan 17
INHERITANCE (PEWARISAN)
Inheritance Pertemuan 21
PERNYATAAN DASAR DALAM C++.
Struktur.
Class dan Objek Lanjutan Pertemuan 18
C++ static.
Sumber : repository.binus.ac.id/content/T0454/T ppt
Pemrograman Berorientsi Objek Pertemuan 15
Contoh Aplikasi Sederhana
Object Oriented Programming
Inheritance lanjutan Pertemuan 22
Pemrograman Terstruktur
Generic Data Type Pertemuan 25
CLASS.
Matakuliah : M0074/PROGRAMMING II Tahun : 2005 Versi : 1/0
Materi 9 Pembahasan CLASS Dalam C++
STRUCTURE Struktur (Structure = struct) merupakan suatu struktur data yang terdiri dari satu atau lebih variabel yang bertipe data.
BAHASA PEMROGRAMAN II DEDED RAMAD KAMDA, S. KOM.
array Array merupakan tipe data yang menampung
Pertemuan 3 Input/output Statement Assignment Statement
Pemrograman Berbasis Objek
Inheritance (pewarisan)
- PERTEMUAN 2- CONSTRUCTOR
File & Stream - Yessy Asri
Pemrograman Berorientasi Obyek (PBO) Disusun oleh : Khairan Marzuki, M.Kom Fakultas Teknik dan Kesehatan, Universitas Bumigora.
Transcript presentasi:

Pertemuan 10 Inheritance Lanjutan Matakuliah : T0044/Pemrograman Berorientasi Obyek Tahun : 2005 Versi : 1.0 Pertemuan 10 Inheritance Lanjutan

Membuat diagram / skema class berdasarkan konsep Inheritance Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Membuat diagram / skema class berdasarkan konsep Inheritance

Class Diagram Hierarchy Outline Materi Multiple Inheritance Class Diagram Hierarchy

Multiple Inheritance Pewarisan Ganda (Multiple Inheritance) adalah sebuah klas yang diturunkan dari beberapa klas induk. Klas turunan tersebut dapat mewarisi karakteristik yang dimiliki oleh klas-klas induknya. Beberapa bentuk hirarki klas yang merupakan contoh pewarisan ganda (multiple inheritance) dapat dilihat seperti di bawah ini:

C++ Syntax for multiple inheritance Setiap klas induk yang diwarisi dipisahkan dengan tanda koma, dan masing-masing klas induk harus didahului dengan jenis akses (private, protected, public). class Turunan : jenis_akses Induk1, jenis_akses Induk2 { <Anggota_klas> };

Contoh Program Multiple Inheritance class Pegawai { protected: char NIP[10], Nama[30]; }; class Pendidikan char Tingkat[20], Sekolah[80]; class Manajer : public Pegawai, public Pendidikan { private: char Titel[20], Telpon[20]; class Peneliti : public Pegawai, public Pendidikan int Publikasi; class Satpam : public Pegawai { };

Program - Multiple Inheritance #include <iostream.h> #include <stdio.h> #include <conio.h> class Pegawai { protected: char NIP[11], Nama[40]; void Masuk_Data (); void Tampil_Data (); }; class Pendidikan {protected: char Tingkat[20], Sekolah[80]; void Masuk_Pendidikan (); void Tampil_Pendidikan (); class Manager : public Pegawai, public Pendidikan { private: char Titel[20], Telpon[20]; public: class Peneliti : public Pegawai, public Pendidikan { private: int Publikasi; public: void Masuk_Data (); void Tampil_Data (); }; class Satpam : public Pegawai { public: void Masuk_Data () { Pegawai :: Masuk_Data (); } void Tampil_Data () { Pegawai :: Tampil_Data (); } void Pegawai :: Masuk_Data() { cout << "Masukkan Nomor Induk Pegawai : "; cin >> NIP; cout << "Masukkan Nama Pegawai : "; gets( Nama ); } void Pegawai :: Tampil_Data() { cout << "Nomor Induk Pegawai = " << NIP << endl; cout << "Nama Pegawai = " << Nama << endl;

Program - Multiple Inheritance (Lanjutan) void Pendidikan :: Masuk_Pendidikan() { cout << "Masukkan Tingkat Pendidikan : "; gets( Tingkat ); cout << "Masukkan Nama Sekolah : "; gets( Sekolah ); } void Pendidikan :: Tampil_Pendidikan() { cout << "Tingkat Pendidikan = " << Tingkat << endl; cout << "Nama Sekolah = " << Sekolah << endl; void Manager :: Masuk_Data () { Pegawai :: Masuk_Data (); Pendidikan :: Masuk_Pendidikan (); cout << "Masukkan Titel : "; gets( Titel ); cout << "Masukkan Nomor Telpon : "; gets( Telpon ); void Manager :: Tampil_Data () { Pegawai :: Tampil_Data (); Pendidikan :: Tampil_Pendidikan (); cout << "Titel = " << Titel << endl; cout << "Telpon = " << Telpon << endl; void Peneliti :: Masuk_Data () { cout << "Masukkan Nomor Publikasi : "; cin >> Publikasi; void Peneliti :: Tampil_Data () { cout << "Nomor Publikasi = " << Publikasi << endl; void main() { Manager M1, M2; Peneliti P1; Satpam S1; // memasukan data cout << "\nMasukkan data manager 1 : \n"; M1.Masuk_Data(); cout << "\nMasukkan data manager 2 : \n"; M2.Masuk_Data(); cout << "\nMasukkan data peneliti 1 : \n"; P1.Masuk_Data(); cout << "\nMasukkan data satpam 1 : \n"; S1.Masuk_Data(); // menampilkan data cout << "\nData dari manager 1 = "; M1.Tampil_Data(); cout << "\nData dari manager 2 = "; M2.Tampil_Data(); cout << "\nData dari peneliti 1 = "; P1.Tampil_Data(); cout << "\nData dari satpam 1 = "; S1.Tampil_Data(); getch(); }

Konstruktor dan Destructor Klas Turunan Konstruktor untuk klas turunan perlu dibuat untuk melakukan inisialisasi klas itu sendiri dan klas induknya. Jika konstruktor klas induk memiliki parameter (argument), maka parameter konstruktor klas induk tersebut harus dimasukkan dalam konstruktor klas turunan. Destruktor klas turunan dijalankan dengan urutan berbalikan dengan urutan konstruktor, yaitu destruktor klas turunan dijalankan dahulu baru destruktor klas induknya. Apabila klas turunan memiliki lebih dari satu klas induk, setelah menjalankan destruktor klas turunan kemudian destruktor klas induk terakhir dijalankan sampai destruktor klas induk pertama dijalankan (sesuai dengan urutan terbalik dari penurunan klas-klas induk di dalam definisi klas turunan tersebut).

Syntax Constructor for Derived class konstuktor_turunan (argumen ) : konstruktor_induk1 (argumen ), konstruktor_induk1 (argumen ), … { blok_pernyataan; } Contoh : class Induk { protected: int A; public: Induk ( int a ) { A = a ; } // konstruktor_Induk ~ Induk ( ) { } // destruktor_Induk }; class Turunan : public Induk { protected: int B; public: Turunan ( int b ) : Induk ( a ) { } //konstruktor_Turunan ~ Turunan ( ) { } //destruktor_Turunan

Program – Mekanisme Constructor & Destructor class Turunan #include <iostream.h> #include <conio.h> class Induk1 { public: Induk1 ( ) { cout << "Konstruktor klas Induk1 dijalankan !. \n"; } ~Induk1 ( ) { cout << "Destruktor klas Induk1 dijalankan !. \n"; } }; class Induk2 Induk2 ( ) { cout << "Konstruktor klas Induk2 dijalankan !. \n"; } ~Induk2 ( ) { cout << "Destruktor klas Induk2 dijalankan !. \n"; } class Anak1 : public Induk1, public Induk2 Anak1 ( ) {cout << "Konstruktor klas Anak1 dijalankan !. \n"; } ~Anak1 ( ) { cout << "Destruktor klas Anak1 dijalankan !. \n"; } class Anak2 : public Induk2, public Induk1 { public: Anak2 ( ) { cout << "Konstruktor klas Anak2 dijalankan !. \n"; } ~Anak2 ( ) { cout << "Destruktor klas Anak2 dijalankan !. \n"; } }; void main ( ) { //Create objek 'A1' dari klas turunan 'Anak1' Anak1 A1; cout << endl; //Create objek 'A2' dari klas turunan 'Anak2' Anak2 A2; getch(); }

Program – konstruktor turunan #include <iostream.h> #include <stdio.h> #include <string.h> #include <conio.h> class Kendaraan {protected: char Kode[10], Jenis[30]; public: Kendaraan(); Kendaraan( char *kd, char *jns ); void Tampil_Kendaraan(); }; class Mobil : public Kendaraan { protected: char Warna[10]; float Harga; Mobil() : Kendaraan() { } Mobil( char *kd, char *jns ) : Kendaraan( kd, jns ) { } void Masuk_Mobil(); void Tampil_Mobil(); void Mobil :: Masuk_Mobil() { cout << “Masukkan warna mobil : “; cin >> Warna; cout << “Masukkan harga mobil : “; cin >> Harga; } void Mobil :: Tampil_Mobil() { cout << “Warna mobil : “ << Warna << endl; printf ( “Harga mobil = Rp. %15.2f \n”, Harga ); Kendaraan :: Kendaraan() { strcpy ( Kode, “P01” ); strcpy ( Jenis, “Mobil Keluarga” ); Kendaraan :: Kendaraan( char *kd, char *jns ) { strcpy ( Kode, kd ); strcpy ( Jenis, jns ); void Kendaraan :: Tampil_Kendaraan() { cout << “\n\n”; cout << “Kode = “ << Kode << endl; cout << “Jenis = “ << Jenis << endl; void main() { Mobil M1, M2( “A01”, “Mobil Angkot” ); // Memasukkan data M1.Masuk_Mobil(); M2.Masuk_Mobil(); // Menampilkan data M1.Tampil_Kendaraan(); M1.Tampil_Mobil(); M2.Tampil_Kendaraan(); M2.Tampil_Mobil(); getch();

Tugas 10 Tugas 10A: Mahasiswa membuat ringkasan tentang multiple inheritance sesuai petunjuk dosen Tugas 10B: Mahasiswa Membuat diagram class dan mencari output program inheritance Tugas 10C: Mahasiswa membuat program sederhana dengan Multiple Inheritance