Inheritance dan Polimorfisme

dokumen-dokumen yang mirip
TAMBAHAN MATERI BAB 15 BUKU DIKLAT PEMROGRAMAN KOMPUTER 2

Inheritance dan Polimorfisme

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

PEMROGRAMAN BERORIENTASI OBJEK OBJECT

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS

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

BAB 12 PEWARISAN SIFAT OBJEK

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

KELAS DAN OBJEK KELAS

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

Pointer dan Referensi

Pemrograman C++ BAGIAN II PEMROGRAMAN BERORIENTASI OBJEK

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

Object Oriented Programming LOGO

PEMROGRAMAN BERORIENTASI OBJEK

Sebagai contoh misalnya akan dibuat kelas turunan Silinder dari kelas dasar Lingkaran, maka dapat dituliskan :

MINGGU VI : PBO (LANJUTAN)

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

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

Penggunaan Private dan Public dalam C++

Kurikulum Qt. Chapter 8 - Polymorphism. Polimorfisme. Problema Pewarisan Tunggal (Single Inheritance)

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

PEMROGRAMAN BERORIENTASI OBJEK. Input / Output. Budhi Irawan, S.Si, M.T

PEMROGRAMAN BERORIENTASI OBJEK. Operator. Budhi Irawan, S.Si, M.T

Bahasa Pemrograman II Modul 1 : Pemrograman Berbasis Objek

Konsep Array dalam PBO

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

Komentar, Identifier, Konstanta dan Variabel

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

PENGENALAN DAN PENERAPAN OOP PADA C++

Modul Bahasa Pemrograman 1

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2016

PEMROGRAMAN BERORIENTASI OBJEK. Pengulangan. Budhi Irawan, S.Si, M.T

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

Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013

MINGGU VII : RELASI ANTAR KELAS

STRUKTUR DENGAN ARRAY DAN FUNCTION

PEMROGRAMAN BERORIENTASI OBJEK. Tipe Data. Budhi Irawan, S.Si, M.T

Bahasa Pemrograman :: Polimorfism and Abstraction

PEMROGRAMAN BERORIENTASI OBJEK

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

Praktikum Minggu VI 1 dan 2 Dasar-dasar Object Oriented Programming PHP

Pemrograman Berorientasi. Abstract & Interface

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

TUGAS RESUME C++ Dosen pembimbing : Taufiqurrahman. Di susun Oleh : Ahmad Faisal Akbar ( ) Ahmad Tarjianto ( )

Inheritance dan Kata Kunci static

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

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

MINGGU V : PBO (PEWARISAN)

PERTEMUAN 3 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O

Paradigma Pemrograman Berorientasi Objek

Pemrograman Berorientasi. Inheritance

BAB II TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT

Fungsi 2. Ekohariadi FT Unesa

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

BAB VIII CLASS ABSTRACT & CLASS INTERFACE. //abstract class bisa, kelas biasa bisa System.out.println("Ini nama");

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Pewarisan atau Inheritance

:: abstract class + interface. :: abstract class

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Pemograman Berorientasi Objek. Week 6 Relasi Antar Kelas

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

PEMROGRAMAN BERORIENTASI OBJEK. Percabangan. Budhi Irawan, S.Si, M.T

LAPORAN RESMI INHERITANCE

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

BAB III ANALISA DAN PERANCANGAN

Pemrograman Web. Pemrograman Berorientasi Objek. 8 Adam Hendra Brata

Inheritance (Pewarisan) Pengertian dasar inheritance

Class & Object 2. Imam Fahrur Rozi

Pemrograman Berorientasi Objek

Pertemuan 11 Object Oriented Program

Pemrograman Web. Pemrograman Berorientasi Objek. Adam Hendra Brata

JOBSHEET 8 INHERITANCE (PEWARISAN)

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

BAB X. Struct Dalam C++, kita dapat membuat sebuah tipe data baru. Maka penulisan variabel baru kita akan menjadi:

ABSTRACT CLASS DAN INTERFACE

Bahasa Pemrograman :: Object Oriented Programming

Pemrograman Berorientasi Objek INHERITANCE

Polymorphism (Polimorfisme)

Pemrograman Berorientasi Objek Danu Wira Pangestu

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

Pemrograman Berbasis Objek Inheritance

Variabel Class. Pertemuan 5

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

PRAKTIKUM OBJECT ORIENTED PROGRAMING

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

Employee employee=new Manager();

[Lanjutan] Nurochman

BAB III ANALISA DAN PERANCANGAN

subclass class manapun private default protected public package yang sama

PEMROGRAMAN BERORIENTASI OBJEK

Pewarisan Jamak Oleh : Agus Priyanto Priy, anto M.Kom M.K

Algoritma Alg dan Pemr P ograman emr 1 C++ Class & Object

PRAKTIKUM I Class dan Obyek

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

Transkripsi:

PEMROGRAMAN BERORIENTASI OBJEK Inheritance dan Polimorfisme Budhi Irawan, S.Si, M.T

PENDAHULUAN Salah satu ciri dari PBO adalah kemampuan suatu objek atau kelas untuk mewariskan sifat-sifat yang terdapat didalamnya ke kelas turunannya dan Hail ini dinamakan dengan proses pewarisan (inheritance). Konsep ini kelihatannya mudah, tapi sebenarnya banyak detail tersembunyi yang harus diperhatikan. Walaupun demikian hal yang paling utama ditekankan dalam proses penurunan sebuah kelas adalah pemberian hak akses terhadap kelas-kelas turunan.

KELAS DASAR & KELAS TURUNAN Kelas dasar adalah sebuah kelas yang dijadikan sebagai induk dari kelas lain. Kelas dasar ini lebih dikenal dengan istilah dalam bahasa asing adalah base class. Adapun kelas baru yang merupakan hasil dari proses penurunan tersebut disebut dengan kelas turunan atau sering juga disebut dengan derived class.

KELAS DASAR & KELAS TURUNAN Kelas Dasar Kelas Turunan 1 Kelas Turunan 2 Kelas Turunan N Kelas Turunan 1x Kelas Turunan 2x Kelas Turunan Nx...

MEMBUAT KELASTURUNAN Untuk membuat sebuah kelas turunan sebenarnya sama seperti pada saat kita membuat kelas-kelas biasa, perbedaanya hanya disini terdapat pendefinisian nama kelas yang dijadikan sebagai kelas dasar Berikut ini adalah bentuk umum dari penulisan kelas turunan : Class nama_kelas_turunan: hak_akses nama_kelas_dasar { // data dan fungsi-fungsi ;

MEMBUAT KELASTURUNAN #include <iostream> using namespace std; // Membuat kelas dasar dengan nama INDUK class INDUK { int X; public: void SetX(int XX) { X = XX; int GetX() { return X; ; // Membuat kelas turunan dengan nama TURUNAN class TURUNAN: public INDUK { int Y; public: void SetY(int YY) { Y = YY; int GetY() { return Y; ; // Fungsi utama int main() { // Melakukan instansiasi terhadap kelas INDUK INDUK A; // Memanggil fungsi-fungsi milik kelas INDUK dari kelas INDUK A.SetX(12); cout<<"nilai X yang dipanggil " <<"dari kelas INDUK: "; cout<<a.getx()<<endl; // Melakukan instansiasi terhadap kelas TURUNAN TURUNAN B; // Melakukan pemanggilan fungsi-fungsi yang terdapat pada kelas TURUNAN B.SetY(40); cout<<"nilai Y yang terdapat " <<"pada kelas TURUNAN : "; cout<<b.gety()<<endl; // Memanggil fungsi-fungsi milik kelas INDUK dari kelas TURUNAN B.SetX(35); cout<<"nilai X yang dipanggil "

MEMBUAT KELASTURUNAN Dari hasil diatas dapat kita simpulkan bahwa kelas TURUNAN mewarisi sifat-sifat yang diwakili oleh kelas INDUK. Sebagai bukti pernyataan ini, diatas kita dapat menggunakan fungsi setx() dan GetX() didalam objek B yang merupakan instance dari kelas TURUNAN, padahal fungsi-fungsi tersebut adalah milik kelas INDUK.

MEMBUAT KELASTURUNAN Hal ini menunjukan bahwa setelah proses penurunan kelas diatas, kelas INDUK akan mewariskan fungsi SetX() dan GetX() kepada kelas TURUNAN Ini berarti bahwa sekarang kelas TURUNAN juga telah mempunyai fungsi bernama SetX() dan GetX() Dalam program, hal inilah yang dinamakan dengan konsep pewarisan sifat objek.

#include <iostream> using namespace std; // Membuat kelas dasar dengan nama INDUK class INDUK { int X; public: void SetX(int XX) { MEMBUAT X = XX; KELASTURUNAN ; int GetX() { return X; // Membuat kelas turunan dari kelas INDUK dengan nama TURUNAN1 class TURUNAN1: public INDUK { int Y; public: void SetY(int YY) { Y = YY; int GetY() { return Y; ; // Membuat kelas turunan dari kelas TURUNAN1 dengan nama TURUNAN2 class TURUNAN2: public TURUNAN1 { int Z; public: void SetZ(int ZZ) { Z = ZZ; int GetZ() { return Z; ; // Fungsi utama int main() { // Melakukan instansiasi terhadap kelas TURUNAN2 TURUNAN2 A; // Menentukan nilai X, Y, dan Z melalui kelas TURUNAN2 A.SetX(20); A.SetY(30); A.SetZ(40); // Menampilkan nilai X, Y, dan Z melalui kelas TURUNAN2 cout<<"nilai X yang dipanggil " <<"dari kelas TURUNAN2: "; cout<<a.getx()<<endl;

MEMBUAT KELASTURUNAN Hasil diatas menunjukan bahwa kelas TURUNAN2 akan memiliki fungsi-fungsi yang dimiliki oleh kelas induknya (kelas TURUNAN1), yaitu fungsi SetY() dan GetY(). Namun perlu diperhatikan, disini kelas TURUNAN1 adalah turunan dari kelas INDUK, sehingga secara otomatis kelas TURUNAN2 juga akan memiliki fungsifungsi yang dimiliki oleh kelas INDUK yaitu fungsi SetX() dan GetX(). Walaupun demikian, sebuah kelas turunan tetap dapat mewarisi data atau fungsi-fungsi yang bersifat private dari kelas induknya.

HAK AKSES PADA PROSES PEWARISAN Dalam proses penurunan sebuah kelas, kita harus benar-benar pandai dalam memberikan hak akses data atau fungsi terhadap kelas turunan. Berikut ini hal-hal yang perlu diketahui dalam membuat sebuah kelas turunan adalah :

HAK AKSES PADA PROSES PEWARISAN Apabila kelas diturunkan dengan hak akses public dari kelas induknya, maka : 1. Bagian public yang terdapat pada kelas induk tetap akan menjadi bagian public pada kelas turunannya 2. Bagian protected yang terdapat pada kelas induk tetap akan menjadi bagian protected pada kelas turunannya 3. Bagian private yang terdapat pada kelas induk tetap tidak dapat diakses oleh kelas turunannya

HAK AKSES PADA PROSES PEWARISAN Apabila kelas diturunkan dengan hak akses private dari kelas induknya, maka : 1. Bagian public yang terdapat pada kelas induk tetap akan menjadi bagian private pada kelas turunannya 2. Bagian protected yang terdapat pada kelas induk tetap akan menjadi bagian private pada kelas turunannya 3. Bagian private yang terdapat pada kelas induk tetap tidak dapat diakses oleh kelas turunannya

HAK AKSES PADA PROSES PEWARISAN #include <iostream> using namespace std; // Membuat kelas dasar dengan nama INDUK class INDUK { int X; public: void SetX(int XX) { X = XX; int GetX() { return X; ; // Membuat kelas TURUNAN1 yang diturunkan sebagai public dari kelas INDUK class TURUNAN1: public INDUK { int Y; public: void SetY(int YY) { Y = YY; int GetY() { return Y; ; // Membuat kelas TURUNAN2 yang diturunkan sebagai public dari kelas TURUNAN1 class TURUNAN2: public TURUNAN1 { int Z; public: void SetZ(int ZZ) { Z = ZZ; int GetZ() { return Z; ; // Fungsi utama int main() { // Melakukan instansiasi terhadap kelas TURUNAN2 TURUNAN2 A; // Menentukan nilai X, Y, dan Z melalui kelas TURUNAN2 A.SetX(20); A.SetY(30); A.SetZ(40); // Menampilkan nilai X, Y, dan Z melalui kelas TURUNAN2 cout<<"nilai X yang dipanggil " <<"dari kelas TURUNAN2: "; cout<<a.getx()<<endl; cout<<"nilai Y yang dipanggil " <<"dari kelas TURUNAN2: "; cout<<a.gety()<<endl; cout<<"nilai Z yang dipanggil " <<"dari kelas TURUNAN2: "; cout<<a.getz()<<endl;

HAK AKSES PADA PROSES PEWARISAN Apabila kita analisis pada program diatas, bagian public dari kelas induk (yaitu fungsi SetX() dan GetX() tetap akn menjadi public pada kelas TURUNAN1, sedangkan variabel X yang terdapat pada bagian private tetap tidak dapat diakses oleh kelas TURUNAN1 Sampai disini berarti kelas TURUNAN1 telah mempunyai empat buah fungsi yang bersifat public (yaitu fungsi SetY(), GetY(), SetX() dan GetX()).

HAK AKSES PADA PROSES PEWARISAN Selanjutnya kelas TURUNAN1 akan diturunkan lagi secara public terhadap kelas TURUNAN2, hal ini menyebabkan bagian public yang terdapat pada kelas TURUNAN1 akan diwariskan semuanya kepada kelas TURUNAN2 sehingga kelas TURUNAN2 akan mempunyai enam buah fungsi yang bersifat public (yaitu fungsi SetZ(), GetZ(), SetY(), GetY(), SetX() dan GetX()). Itulah sebabnya pada program diatas kita dapat mengkses fungsi-fungsi yang terdapat pada kelas INDUK dan kelas TURUNAN1 melalui suatu objek (instance) dari kelas TURUNAN2.

FUNGSIVIRTUAL Fungsi Virtual adalah fungsi yang mendukung adanya polymorphic function, artinya fungsi tersebut dapat didefinisikan ulang pada kelaskelas turunannya. Fungsi virtual ini biasanya terdapat pada kelas-kelas dasar, tetapi bisa juga dideklarasikan pada kelas-kelas turunan yang akan dijadikan sebagai kelas dasar bagi kelaskelas lainnya.

FUNGSIVIRTUAL Dalam C++, untuk mendefinisikan fungsi sebagai fungsi virtual adalah dengan menggunakan keyword virtual, yaitu dengan menempatkan didepan pendeklarasian fungsi tersebut. Pendefinsian fungsi virtual yang terdapat pada kelas dasar biasanya tidak begitu berarti artinya kode-kode yang terdapat didalamnya masih bersifat umum.