algoritma dan pemrograman 2 - reezeki2011 · penentu pewarisan private • sifat: –semua anggota...
TRANSCRIPT
![Page 1: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/1.jpg)
ALGORITMA DAN PEMROGRAMAN 2
3 SKS By : Sri Rezeki Candra Nursari
![Page 2: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/2.jpg)
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
![Page 3: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/3.jpg)
INHERITANCE (PEWARISAN)
Pertemuan 11
3 SKS
![Page 4: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/4.jpg)
Inheritance• Inheritance (Pewarisan) adalah
sifat dari suatu kelas yang dapat mewariskan anggota data maupun fungsi anggota ke kelas lain
![Page 5: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/5.jpg)
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)
![Page 6: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/6.jpg)
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
![Page 7: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/7.jpg)
Penentu Inheritance/Pewarisan
• Terdiri dari 3 macam penentu pewarisan, yaitu :
1. Private2. Protected3. Public
![Page 8: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/8.jpg)
1. Penentu Pewarisan Private• Sintaks:
class NamaKelasTurunan : Private NamaKelasDasaratauclass NamaKelasTurunan : NamaKelasDasar
• Contoh:class OrangTua class Anak : Private OrangTua{ {… …
}; };
![Page 9: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/9.jpg)
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
![Page 10: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/10.jpg)
2. Penentu Pewarisan Protected• Sintaks:
class NamaKlsTurunan : Protected NamaKelasDasaratauclass NamaKelasTurunan : NamaKelasDasar
• Contoh:class OrangTua class Anak : Protected OrangTua{ {… …
}; };
![Page 11: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/11.jpg)
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
![Page 12: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/12.jpg)
Pewarisan
Contoh Soal 01:Menampilkan nilai X dan Y
![Page 13: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/13.jpg)
Programcontoh 01
![Page 14: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/14.jpg)
Algoritma.........?????Pseudocode.......??????
![Page 15: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/15.jpg)
3. Penentu Pewarisan Public• Sintaks:
class NamaKlsTurunan : Public NamaKelasDasaratauclass NamaKelasTurunan : NamaKelasDasar
• Contoh:class OrangTua class Anak : Public OrangTua{ {… …
}; };
![Page 16: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/16.jpg)
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
![Page 17: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/17.jpg)
Pewarisan
Contoh Soal 02:Menampilkan info basis/dasar dan info turunan “dijalankan”
![Page 18: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/18.jpg)
Programcontoh 02
![Page 19: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/19.jpg)
TugasAlgoritma.........?????
Pseudocode.......??????Dikumpulkan hari rabu, 27 Mei 2015
Apabila dikumpulkan hari rabu maka mendapat bonus +10
![Page 20: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/20.jpg)
Programcontoh 03
![Page 21: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/21.jpg)
Rangkuman PewarisanPenentu
PewarisanPenentu Akses di Kelas Dasar
Penentu Akses Barudi Kelas Turunan
privateprivate tidak diwariskanprotected privatepublic private
protectedprivate tidak diwariskanprotected protectedpublic protected
Public private tidak diwariskanprotected protectedpublic public
![Page 22: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/22.jpg)
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
protected2. Memanggil konstruktor kelas dasar
pada definisi konstruktor kelas turunan
![Page 23: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/23.jpg)
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
![Page 24: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/24.jpg)
Pewarisan Bertingkat• Pada pewarisan bertingkat, terdapat dua
atau lebih kelas turunan
![Page 25: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/25.jpg)
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
![Page 26: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/26.jpg)
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
![Page 27: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/27.jpg)
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()
![Page 28: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/28.jpg)
POLIFORFISME
Pertemuan 12
3 SKS
![Page 29: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/29.jpg)
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
![Page 30: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/30.jpg)
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
![Page 31: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/31.jpg)
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
![Page 32: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/32.jpg)
Polimorfisme• Polimorfisme berarti mempunyai banyak bentuk• Salah satu bentuk polimorfisme adalah overloading
terhadap fungsi dan operatorPolimorfisme 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
![Page 33: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/33.jpg)
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
![Page 34: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/34.jpg)
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;
![Page 35: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/35.jpg)
Kelas Dasar Virtual• Gambar pewarisan bertingkat
• Bisa terjadi masalah pada kelas Cucu bila pendeklarasian dilakukan seperti pada contoh didepan
OrangTua
Cucu
Anak2Anak1
![Page 36: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/36.jpg)
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
![Page 37: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/37.jpg)
TEMPLATE FUNGSI DAN KELAS
Pertemuan 13
3 SKS
![Page 38: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/38.jpg)
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
![Page 39: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/39.jpg)
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;
}
![Page 40: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/40.jpg)
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
![Page 41: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/41.jpg)
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
![Page 42: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/42.jpg)
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){…
}
![Page 43: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/43.jpg)
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;}
![Page 44: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/44.jpg)
Template Kelas• Template dalam kelas digunakan untuk
mendefinisikan anggota data dan fungsi anggota
• Sintaks:template <class NamaPengenal>class NamaKelas{..
};
![Page 45: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/45.jpg)
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);}
![Page 46: ALGORITMA DAN PEMROGRAMAN 2 - reezeki2011 · Penentu Pewarisan Private • Sifat: –Semua anggota data dan fungsi anggota yang bersifat public dan protected pada kelas dasar akan](https://reader031.vdocuments.pub/reader031/viewer/2022021811/5c8b3d7209d3f22e408d33fb/html5/thumbnails/46.jpg)
Template Kelastemplate <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;