POLYMORPHISM. Oleh: Rasim Ilkom- FPMIPA Universitas Pendidikan Indonesia

dokumen-dokumen yang mirip
ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

INHERITANCE. Oleh: Rasim ILKOM-FPMIPA-UPI

Inheritance dan Polimorfisme

OBJEK LANJUT. Oleh : Rasim Ilkom UPI

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

BAB VII PEWARISAN FUNGSI VIRTUAL

BAB VII PEWARISAN. Dengan demikian, kesalahan indeks dalam program berikut akan terdeteksi:

STRUKTUR DENGAN ARRAY DAN FUNCTION

OVERLOADING OPERATOR. Oleh: Rasim Ilkom - UPI

MODUL VI OBJECT ORIENTED PROGRAMMING (OOP)

Overriding. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuan: subclass memiliki tingkah laku yang lebih

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

Jobsheet 09. Overloading and Overriding Method

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

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

Inheritance (Pewarisan) Pengertian dasar inheritance

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel

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

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

Pemrograman Berorientasi. Polimorfisme dan Binding

Pewarisan atau Inheritance

Pertemuan 11 Object Oriented Program

pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x.

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

C V.S. C++ Oleh : Rasim

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

Modul Bahasa Pemrograman 1

Pewarisan (Inheritance)

Bahasa Pemrograman :: Object Oriented Programming

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

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

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

Function Template Pertama - tama mari kita membahas tentang function template.untuk itu marilah kita perhatikan contoh berikut.

Pewarisan(Inheritance) Oleh: Mike Yuliana PENS-ITS

Object Oriented Programming LOGO

INTERAKSI ANTAR OBJECT

MODUL 7 FUNGSI A. Tujuan. B. Petunjuk. C. Dasar Teori

BAB VI OBYEK DAN KELAS

BAB VI OBYEK DAN KELAS

Penggunaan Private dan Public dalam C++

P3 Dasar Struktur Data TIF42/SIF42

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA

POINTER. Pemrograman Bahasa C++

Daftar lsi... :;.:;:(:;;::t

Konsep Dasar Pemrograman Berorientasi Objek

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

Bahasa Pemrograman 2.

BAB IV HASIL PENELITIAN DAN PENERAPAN

FENOMENA ALAM DI DALAM DIMENSI PEMBUATAN PROGRAM DENGAN MENGGUNAKAN OBJECT ORIENTED PROGRAMMING

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

Michael Lionardi

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

OBJECT ORIENTED PROGRAMMINGS

Konsep Dasar Pemrograman Dan Pengenalan C++

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

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

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

ABSTRACT DATA TYPE (ADT) Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc

Classes. class class_name { permission_label_1: member1; permission_label_2: member2;... } object_name;

PEMROGRAMAN BERORIENTASI OBJEK

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

Class & Object 2. Imam Fahrur Rozi

Object Oriented Programming (OOP) --Polimorphisme-- Saniati STMIK Teknokrat, Bandar Lampung

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

Chapter 9 Operator Types dan Operator Overloading

Overriding, Overloading, Polymorphism. Pertemuan 10 Pemrograman Berbasis Obyek Dr. Rodiah

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

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

Paradigma Pemrograman Berorientasi Objek

Object Oriented Programming (OOP) --Inheritance- Saniati STMIK Teknokrat, Bandar Lampung

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

LIST. Dewi Sartika, M.Kom

Bahasa Pemrograman 2.

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

BAB VIII SUB PROGRAM : Fungsi Tanpa Pengembalian Nilai

int fungsi_2() { int main() { fungsi_1(); fungsi_2(); return 0;

Bab 8. Dasar-Dasar OOP

Selection / Pemilihan PEMILIHAN

OPERATOR, PERULANGAN DAN SELEKSI KONDISI

KELAS DAN OBJEK KELAS

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

KONSEP OOP: POLYMORPHISM

Game Technology Design Course College of Multi Media Yogyakarta Spring Tri Anggraeni, S.Kom., M.Sc.

MODUL 1 Alur Seleksi dengan C++

Dasar Pemrograman. Visual Studio Program C++ Sederhana. Yoannita, S.Kom.

Untuk mengurangi pengulangan program yang sama agar program menjadi terstruktur, rapi dan lebih mudah dikembangkan.

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

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

FUNGSI II. Variabel Statis. Sifat variabel statis: Sintaks: static tipe_data nama_variabel; Contoh: static int angka;

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

Inheritance dan Polimorfisme

Polymorohism in Java. Adharul Muttaqin Teknik Elektro Universitas Brawijaya Malang

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

Pengenalan pemrograman berorientasi obyek

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

Pertemuan 7. REVIEW dan QUIS

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Alpro & Strukdat 1 C++ (Sub Program) Dwiny Meidelfi, S.Kom., M.Cs.

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

Transkripsi:

POLYMORPHISM Oleh: Rasim Ilkom- FPMIPA Universitas Pendidikan Indonesia

Fungsi Virtual Dasar dari Polymorphism Suatu fungsi anggota dari suatu kelas dapat dijadikan sebagai kelas virtual, dengan cara: mendeklarasikan fungsi tsb pada kelas turunan dan suatu pointer mennjuk kelas induk. Pointer dapat memilih object yang tepat pada saat fungsi anggota tsb dipanggil via pointer

Pointer didefinisikan menunjuk kelas induk Pointer Kelas induk Pointer dapat menunjuk ke object berkelas turunan Kelas Turunan 1 Kelas Turunan 2

Class Mahluk{ public: void info(){ cout << Informasi() pada mahluk. << endl; virtual void keterangan(){ cout << Keterangan () pada mahluk << endl; ; Class Mamalia: public Mahluk{ public: void info(){ cout << Informasi () pada Mamalia. << endl; void keterangan(){ cout<< Keterangan() pada Mamalia <<endl; ;

Class Sapi: public Mamalia{ public: void info(){ cout << Informasi() pada Sapi. << endl; void keterangan(){ cout << Keterangan () pada Sapi << endl; ; Void Main() { Mamalia mamalia; Sapi sapi_sumba; Mahluk *binatang; Binatang = &sapi_sumba; binatang=&mamalia; binatanginfo(); binatangketerangan(); cout<< ---------------------- <<endl; Binatanginfo(); Binatangketerangan(); ;

Pointer didefinisikan menunjuk kelas induk Fungsi Virtual Mamalia binatang Binatangketerangan() Virtual keterangan() Kelas induk Sapi_Sumba binatang Binatangketerangan() Object : Mamalia Virtual keterangan() Object : sapi_sumba Virtual keterangan() Kelas Turunan 1 Kelas Turunan 2

Pointer didefinisikan menunjuk kelas induk Fungsi Bukan Virtual Mamalia binatang Binatangketerangan() Virtual keterangan() Kelas induk Sapi_Sumba binatang Binatangketerangan() Virtual keterangan() Object : sapi_sumba Virtual keterangan() Kelas Turunan 1 Kelas Turunan 2

Selayang Polymorphism Akibat dari pewarisan, dapat menimbulkan polymorphism Artinya: pada saat yang sama sebuah reference dapat mengacu ke object yang berbeda kelasnya (namun harus se-keturunan) Jika dideklarasikan: P : Poligon; R : Rectangle; // Rectangle adalah poligon T : Triangle; // Triangle adalah poligon

Selayang Polymorphism Polymorphism dapat beroperasi pada 2 aras: Saat kompilasi Saat Eksekusi Overloading fungsi dan operator adalah polymorphism saat kompilasi Polymorphism pada C++ adalah polymorphism saat eksekusi (late binding/ dynamic binding) Bentuk ini dapat menangani dua atau lebih bentuk object sesuai dengan lingkungan object bersangkutan

Karena kecocokan type antara induk dan turunannya, maka P = R; // valid P = T; // valid P R

Fungsi Virtual Murni & Class Abstrak Fungsi virtual yang tidak dipakai dalam program karena fungsi tersebut dipakai oleh objek yang ditunjuk Dari contoh virtual void keterangan() pada class mahluk. Oleh sebab itu dapat disingkirkan dengan cara: Virtual void keterangan()=0; Fungsi virtual murni biasanya dipakai sebagai kelas abstrak

Kelas Abstrak Adalah kelas yang dideklarasikan idak untuk menciptakan object. Cirinya: Mengandung paling tidak sebuah fungsi virtual murni Sehingga: Mahluk binatang Mahluk *binatang Tidak boleh Boleh

Class Mahluk{ public: virtual void keterangan(){ cout << Keterangan () pada mahluk << endl; ; Class Mamalia: public Mahluk{ public: void keterangan(){ cout<< Keterangan() pada Mamalia <<endl; ; Class Sapi: public Mamalia{ public: void keterangan(){ cout << Keterangan () pada Sapi << endl; ; Void Main() { Mamalia mamalia; Sapi sapi_sumba; Mahluk *binatang; binatang=&mamalia; binatanginfo(); binatangketerangan(); binatang = &sapi_sumba; binatanginfo(); binatangketerangan(); ;

Kelas Dasar Virtual Induk Anak 1 Anak 2 Gabungan Deklarasi kelas tersebut adalah

Class induk{ protected: char nama[25]; ; Class anak1: public induk{ ; Class anak2: public induk{ Tambahkan kata virtual Tambahkan kata virtual ; Class gabungan: public anak1, public anak2{ public: void info_nama(){ cout << Nama Induk : << nama << endl; Nama didapat dari anak1 dan anak2, karena itu menjadi salah

Destruktor Virtual Fungsi yang dapat dijadikan virtual adalah: Fungsi anggota Destruktor Destruktor virtual dipakai kalau kelas perlu untuk menghapus object dari kelas turunan berdasarkan pointer yang menunjuk ke kelas induk

Class trah_keluarga{ protected: char *nama_keluarga; public: trah_keluarga(char *nama){ nama= new char[strlen(nama)+1]; strcpy(nama_keluarga, nama); virtual ~trah_keluarga(){ cout<< Destruktor di trah keluarga. << endl; delete [ ] nama_keluarga; virtual void info() = 0; ;

Class keturunan: public trah_keluarga{ char *nama_depan; public: keturunan(char *nama_awal, char *nama_kel): trah_keluarga(nama_kel){ nama_depan= new char[strlen(nama_depan)+1]; strcpy(nama_depan, nama_awal); ~keturunan(){ cout<< Destruktor di keturunan <<endl; delete [ ] nama_depan; void info(){ cout<< Nama depan : << nama_depan << endl; ; Void main(){ trah_keluarga *anak_pertama= new keturunan( Umar, Bakri ); anak_pertamainfo(); delete anak_pertama ;