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

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

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

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

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

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

Inheritance dan Polimorfisme

Inheritance dan Polimorfisme

POLYMORPHISM. Oleh: Rasim Ilkom- FPMIPA Universitas Pendidikan Indonesia

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

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

BAB VII PEWARISAN FUNGSI VIRTUAL

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

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

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

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

PEMROGRAMAN BERORIENTASI OBJEK

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

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

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

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

Inheritance dan Kata Kunci static

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

STRUKTUR DENGAN ARRAY DAN FUNCTION

Memudahkan dalam pengembangan program Menghemat ukuran program

INTERAKSI ANTAR OBJECT

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

Pertemuan 11 Object Oriented Program

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

Pewarisan atau Inheritance

Object Oriented Programming LOGO

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

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

Pemrograman Berorientasi. Polimorfisme dan Binding

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

PEMROGRAMAN BERORIENTASI OBJEK

Jobsheet 09. Overloading and Overriding Method

Bahasa Pemrograman 2.

INHERITANCE. Oleh: Rasim ILKOM-FPMIPA-UPI

Bab 1 Pengantar Struktur Data

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

Praktikum 6 Abstract, Interface, Overloading, Overriding, dan Package

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Bahasa Pemrograman 2.

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

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

Parent dan Child di Java

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA

Penggunaan Private dan Public dalam C++

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

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

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

Michael Lionardi

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

Modul II Object Oriented Programming

Pemrograman Berorientasi. Abstract & Interface

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

subclass class manapun private default protected public package yang sama

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

DEVAL GUSRION, S.KOM, M.KOM MATAKULIAH BAHASA PEMOGRAMAN JAVA LANJUTAN III

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

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

OVERLOADING OPERATOR. Oleh: Rasim Ilkom - UPI

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

PRAKTIKUM I Class dan Obyek

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

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Fungsi. Fungsi. Dasar Komputer & Pemrograman 1. dipecah Sub Program. Program. Dasar Komputer & Pemrograman TC22052 Kartika Firdausy - UAD

Tabel 1. Instruksi untuk menampilkan teks No. Bahasa Pemrograman Instruksi 1. Pascal WRITE ( Bahasa pemrograman itu mudah );

Bag 4.4 Bagian ini sudah cukup menjelaskan dan memberikan gambaran yang tepat tentang JVM (Java Virtual Machine).

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

Pemrograman Berbasis Objek Inheritance

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

Inheritance (Pewarisan) Pengertian dasar inheritance

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Object Oriented Programming 1

Modul Bahasa Pemrograman 1

Bahasa Pemrograman 2.

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

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

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

5. Fungsi. S. Indrianii L, M.T

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

Praktikum Modul Praktikum ke Judul Materi Tujuan / Sasaran Waktu (lama) Aplikasi yang digunakan

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

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

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

SILABUS MATA KULIAH PEMROGRAMAN JAVA

Konsep Pemrograman Berorientasi Pada Objek Dengan. Java Netbeans

Modul program di dalam C++ disebut fungsi (function)

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

ABSTRACT CLASS DAN INTERFACE

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Inheritance. Topik 5/17/2013

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

IKG2I4 / Software Project I

OBJEK LANJUT. Oleh : Rasim Ilkom UPI

PEMROGRAMAN I. By : Sri Rezeki Candra Nursari

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Transkripsi:

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

MATERI Teks/string Pointer File Struktur Kelas/Class Konstruktor dan Destruktor Kelas dan Obyek Overloading Operator Inheritance (Pewarisan) Polimorfisme Template Fungsi dan Kelas Sort Search

INHERITANCE (PEWARISAN) Pertemuan 11 3 SKS

Inheritance Inheritance (Pewarisan) adalah sifat dari suatu kelas yang dapat mewariskan anggota data maupun fungsi anggota ke kelas lain

Inheritance Kelas yang mewarisi sifat dari kelas lain disebut dengan kelas turunan (derived class) Kelas yang mewariskan sifat ke kelas lain disebut dengan kelas dasar (base class)

Inheritance Keuntungan dari inheritance adalah memungkinkan penggunaan kembali kode yang sudah teruji benar, sehingga tidak perlu membuat kode yang sama setiap kali membuat program baru

Penentu Inheritance/Pewarisan Terdiri dari 3 macam penentu pewarisan, yaitu : 1. Private 2. Protected 3. Public

1. Penentu Pewarisan Private Sintaks: class NamaKelasTurunan : Private NamaKelasDasar atau class NamaKelasTurunan : NamaKelasDasar Contoh: class OrangTua class Anak : Private OrangTua { { }; };

1. Penentu Pewarisan Private Sifat: Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan diwariskan ke kelas turunan dengan sifat private Anggota data dan fungsi anggota pada kelas dasar yang bersifat private tidak diwariskan Konstruktor dan destruktor tidak diwariskan

2. Penentu Pewarisan Protected Sintaks: class NamaKlsTurunan : Protected NamaKelasDasar atau class NamaKelasTurunan : NamaKelasDasar Contoh: class OrangTua class Anak : Protected OrangTua { { }; };

2. Penentu Pewarisan Protected Sifat: Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan diwariskan ke kelas turunan dengan sifat protected Anggota data dan fungsi anggota pada kelas dasar yang bersifat private tidak diwariskan Konstruktor dan destruktor tidak diwariskan

Pewarisan Contoh Soal 01: Menampilkan nilai X dan Y

Program contoh 01

Algoritma...????? Pseudocode...??????

3. Penentu Pewarisan Public Sintaks: class NamaKlsTurunan : Public NamaKelasDasar atau class NamaKelasTurunan : NamaKelasDasar Contoh: class OrangTua class Anak : Public OrangTua { { }; };

3. Penentu Pewarisan Public Sifat: Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan diwariskan ke kelas turunan tanpa perubahan (protected diwariskan menjadi protected, public diwariskan menjadi public) Anggota data dan fungsi anggota pada kelas dasar yang bersifat private tidak diwariskan Konstruktor dan destruktor tidak diwariskan

Pewarisan Contoh Soal 02: Menampilkan info basis/dasar dan info turunan dijalankan

Program contoh 02

Tugas Algoritma...????? Pseudocode...?????? Dikumpulkan hari rabu, 27 Mei 2015 Apabila dikumpulkan hari rabu maka mendapat bonus +10

Program contoh 03

Rangkuman Pewarisan Penentu Pewarisan private protected Public Penentu Akses di Kelas Dasar private protected public private protected public private protected public Penentu Akses Baru di Kelas Turunan tidak diwariskan private private tidak diwariskan protected protected tidak diwariskan protected public

Akses ke Anggota Data yang bersifat Private Agar dapat mengakses anggota data pada kelas dasar yang bersifat private, ada dua cara yang bisa dilakukan: 1. Mengubah penentu akses menjadi protected 2. Memanggil konstruktor kelas dasar pada definisi konstruktor kelas turunan

Akses ke Anggota Data yang bersifat Private 1. Mengubah penentu akses menjadi protected Dengan mengubah penentu akses menjadi protected, maka anggota data bisa diakses dari kelas turunan Digunakan jika anggota data dipakai dalam proses selanjutnya di kelas turunan 2. Memanggil konstruktor kelas dasar pada definisi konstruktor kelas turunan Penentu akses di kelas dasar tetap private Dipakai jika anggota data tidak dipakai pada proses selanjutnya di kelas turunan. Misal hanya dicetak melalui kelas dasar

Pewarisan Bertingkat Pada pewarisan bertingkat, terdapat dua atau lebih kelas turunan

Pewarisan Bertingkat Dalam kasus nama fungsi anggota ketiga kelas sama, maka harus menggunakan operator resolusi lingkup (::) untuk menyatakan kepemilikan Contoh: OrangTua::lihat() fungsi lihat() milik kelas OrangTua

Pewarisan Berganda Dalam pewarisan berganda, sebuah kelas dapat mewarisi sifat lebih dari satu kelas Contoh: Kelas Anak mewarisi sifat dari kelas Ayah dan kelas Ibu

Pewarisan Berganda Dalam kasus nama fungsi anggota pada kedua kelas dasar sama, maka untuk mengakses harus menggunakan operator resolusi lingkup (::) yang menandakan kepemilikan Contoh: Fungsi anggota di kelas Ayah dan Ibu sama yaitu lihat(). Cara memanggil fungsi: Anak anak1; anak1.ayah::lihat(); anak1.ibu::lihat()

POLIFORFISME Pertemuan 12 3 SKS

Fungsi Virtual Fungsi virtual adalah fungsi anggota yang dideklarasikan dengan menggunakan keyword Virtual Guna fungsi virtual: Misal pada kelas dasar terdapat fungsi virtual. Kemudian fungsi tersebut dideklarasikan lagi pada kelas turunan. Misalnya lagi sebuah pointer diciptakan untuk menunjuk ke kelas dasar. Selanjutnya pointer dapat memilih obyek yang tepat kalau fungsi anggota virtual tersebut dipanggil melalui pointer

Keterangan Fungsi Virtual Fungsi virtual halo() didefinisikan di kelas OrangTua (kelas dasar) Fungsi halo() juga didefinisikan di kelas Anak dan kelas Cucu Sebuah pointer ot1 diciptakan yang bertipe OrangTua Pointer kemudian diatur untuk menunjuk ke obyek anak1 yang bertipe Anak

Keterangan Fungsi Virtual Ketika fungsi anggota lihat() dipanggil dari pointer, ternyata yang muncul adalah fungsi lihat() dari kelas OrangTua Ketika fungsi anggota halo() dipanggil dari pointer, ternyata yang muncul adalah fungsi halo() dari kelas Anak Hal ini terjadi karena halo() adalah fungsi virtual Hal serupa juga terjadi ketika pointer menunjuk ke obyek cucu1

Polimorfisme Polimorfisme berarti mempunyai banyak bentuk Salah satu bentuk polimorfisme adalah overloading terhadap fungsi dan operator Polimorfisme semacam ini disebut polimorfisme saat kompilasi (compile time polimorphism) Bentuk polimorfisme lainnya adalah polimorfisme saat eksekusi (execution time polimorphism), disebut juga late binding atau dynamic binding Polimorfisme macam ini mampu menangani dua atau lebih obyek pada saat eksekusi dengan menyesuaikan terhadap lingkungan obyek yang bersangkutan

Fungsi Virtual Murni Fungsi virtual pada kelas dasar tidak pernah diakses sehingga tidak berguna Hal ini karena tidak pernah ada penciptaan obyek dari kelas dasar Contoh: Fungsi halo() pada kelas OrangTua tidak pernah diakses karena obyek berkelas OrangTua tidak pernah diciptakan Karena tidak berguna, isi fungsi virtual bisa dihapus dengan cara menambahkan = 0 setelah tanda () Contoh: virtual void halo() = 0; Fungsi virtual tanpa isi disebut dengan fungsi virtual murni

Kelas Abstrak Kelas Abstrak adalah kelas yang dideklarasikan namun tidak untuk menciptakan obyek Ciri kelas abstrak: Mengandung paling tidak satu fungsi virtual murni Contoh: Kelas OrangTua pada contoh program merupakan kelas abstrak Kelas abstrak tidak dapat dipakai untuk menciptakan obyek, sehingga pernyataan berikut tidak diperkenankan: OrangTua ot1; Namun penciptaan pointer bertipe kls abstrak dpt dilakukan OrangTua *ot1;

Kelas Dasar Virtual Gambar pewarisan bertingkat OrangTua Anak1 Anak2 Bisa terjadi masalah pada kelas Cucu bila pendeklarasian dilakukan seperti pada contoh didepan Cucu

Kelas Dasar Virtual Contoh: Misal pada kelas OrangTua terdapat anggota data nama bertipe protected. Anggota data ini akan diwariskan ke Anak1 dan Anak2. Karena kelas Cucu merupakan gabungan dari kelas Anak1 dan Anak2, maka akan terdapat dua anggota data nama pada kelas Cucu. Cara mengatasi : dengan menggunakan keyword virtual pada saat pendeklarasian kelas turunan Contoh: class Anak1 : virtual public OrangTua{}; class Anak2 : virtual public OrangTua{}; Dengan menggunakan keyword virtual, hanya akan terdapat satu anggota data untuk kedua kelas turunan

TEMPLATE FUNGSI DAN KELAS Pertemuan 13 3 SKS

Pendahuluan Template mirip dengan overloading, yaitu digunakan pada fungsi-fungsi yang menangani tugas yang sama tapi berbeda tipe data dan jumlah parameternya Bedanya: pada overloading, kode harus ditulis disetiap fungsi pada template, kode hanya ditulis sekali yaitu di template

Template Fungsi Sintaks membuat template: template <class NamaPengenal> TipeNilaiBalik NamaFungsi(NamaPengenal parameter, ) { } Contoh: template <class T> void tukar(t &x, T &y) { T tmp; tmp = x; x = y; y = tmp; }

Template Fungsi Setelah membuat template, prototipe fungsi harus dibuat Prototipe fungsi harus sama persis dengan definisi fungsi pada template termasuk tipe nilai balik, jumlah dan tipe parameter Contoh: void tukar(int &x, int &y); void tukar(double &x, double &y); Seperti pada overloading, template akan bekerja sesuai dengan jumlah dan tipe parameter dari fungsi yang memanggilnya

Tugas Apa yang Anda diketahui tentang NILAI BALIK Dikumpulkan hari rabu, 27 Mei 2015 Apabila jawaban Anda sama maka yang sama nilainya kan dibagi sejumlah jawaban yang sama Apabila dikumpulkan hari rabu maka mendapat bonus +10

Template dengan Bermacam Tipe Sintaks: template <class NamaPengenal1, class NamaPengenal2> TipeNilaiBalik NamaFungsi(NamaPengenal1 parameter1, NamaPengenal2 parameter2) { } Contoh: template <class A, class B> int lebih_dari(a data[], B x, int jumdata) { }

Overloading terhadap Template Fungsi Cara overloading terhadap template fungsi sama dengan overloading terhadap fungsi Caranya: membuat bermacam template dengan nama sama tapi berbeda kegunaannya, berbeda jumlah dan tipe parameternya Contoh: template <class T> void tukar(t &x, T &y) {T tmp; tmp = x; x = y; y = tmp;} template <class T> void tukar(t x) {cout << "Nilai x : " << x << endl;} template <class T> void tukar(t *x) {cout << "Isi kata : " << x << endl;}

Template Kelas Template dalam kelas digunakan untuk mendefinisikan anggota data dan fungsi anggota Sintaks: template <class NamaPengenal> class NamaKelas { };..

Template Kelas Contoh: template <class Templ> class Aritmatika { public: Templ penjumlahan(templ x, Templ y); Templ pengurangan(templ x, Templ y); }; template <class Templ> Templ Aritmatika<Templ>::penjumlahan(Templ x, Templ y) { return(x + y); }

Template Kelas template <class Templ> Templ Aritmatika<Templ>::pengurangan(Templ x, Templ y) { return(x - y); } Contoh pembuatan obyek: Aritmatika<int> jum_int; Aritmatika<float> jum_float; Aritmatika<int> kur_int; Aritmatika<float> kur_float;