Generic Data Type Pertemuan 25

Slides:



Advertisements
Presentasi serupa
Silahkan Salin Jawaban Anda DiKertas Sertakan : NIM. : Nama. : Kelas
Advertisements

Fungsi Friend Dalam bahasa C++ kita dapat membuat suatu fungsi yang berada di luar kelas (class) dan dapat meng-ak-ses bagian private suatu kelas. Fungsi.
Template.
Template. Templates Teknik membuat tipe data yang berupa arameter, artinya data tersebut dapat berubah - ubah tergantung parameter yang di berikan saat.
PENGENALAN c++ DAN STRUKTUR DASAR C++
PEMROGRAMAN SISTEM PERNYATAAN DASAR PILIHAN Pertemuan V
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
METHOD Object Oriented Programming with JAVA 2011/2012.
#include //bagian modul int hitung(x,y) { return(x+y); } //bagian utama main() { int jumlah,a,b; a=8; b=2; jumlah=hitung(a,b); cout
1 Pertemuan 14 Operator Overloading Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Operator Overloading Pertemuan 20 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
1 Pertemuan 4 ELEMEN DASAR C++ Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Function User Function.
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.
STREAM INPUT/OUPUT Pertemuan 4 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
FUNCTIONS Pertemuan 9 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
1 Pertemuan 17 Polymorphism Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
1 Pertemuan 9 Inheritance Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Class and Object Matakuliah : XXXX / Algoritma dan Metode Object Oriented Programming II Pertemuan : 2 Tahun : 2008 Versi : 1/0.
1 Pertemuan 2 Function & Pointer Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
OPERASI JUMP DAN EXCEPTION HANDLING
PERNYATAAN PERULANGAN
Fungsi, Array dan String
1 Pertemuan 8 Structure Data Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
METHODS Matakuliah: T0974 / Algoritma dan Metode Object Oriented Programming I Tahun: 2008 Versi: 1/0.
1 Pertemuan 18 Template Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Struktur Kendali Pengulangan Pertemuan 6 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Pertemuan 10 Constructor dan Destructor
Matakuliah : T0456 / Algoritma dan Metode Object
Algoritma sorting dasar (lanjutan) Pertemuan 11
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.
Template 1. Learning Outcomes Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat merancang sebuah program dengan menggunakan template 2.
// Contoh program c++ dengan fungsi template
Kontrak Kuliah Pengenalan OOP
VARIABEL DAN JENISNYA A. Ridwan Siregar.
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
Pengertian FUNGSI.
Pengertian Algoritma Pemrograman Pertemuan 1
Pertemuan 10 Inheritance Lanjutan
5. Fungsi S. Indriani L, M.T 5. Fungsi.
Method & Constructor METHOD.
S T R U K T U R.
TYPE DATA ,VARIABEL &KONSTANTA Dalam C++
Polymorphism Pertemuan 23-24
FUNCTION Fungsi (Function) merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama. Fungsi digunakan.
Constructor dan Destructor Pertemuan 17
Inheritance Pertemuan 21
Struktur.
Operator overloading.
Class dan Objek Lanjutan Pertemuan 18
Pertemuan 9 Pemrograman Berbasikan Objek
Sumber : repository.binus.ac.id/content/T0454/T ppt
Pemrograman Berorientsi Objek Pertemuan 15
Elemen-elemen Dasar Pada Bahasa C++
Structure Data - Struct Pertemuan 8
Review Materi Java Fundamental
Operator dan Operasi Input Output pada C++ Pertemuan 11
Inheritance lanjutan Pertemuan 22
S. Indriani Lestariningati, M.T
~ PERTEMUAN 4 KONSEP TIPE DATA ~
Pemograman Berorientasi Object Sistem Informasi Semster III
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.
PERTEMUAN V F U N G S I Tujuan membuat suatu fungsi
Teknik Pemrog. Terstruktur 2
STRUKTUR KONTROL PERCABANGAN DAN STRUKTUR KONTROL LOMPATAN
Transcript presentasi:

Generic Data Type Pertemuan 25 Matakuliah : T0456 / Algoritma dan Metode Object Oriented Programming Tahun : 2007 Generic Data Type Pertemuan 25

Pada akhir pertemuan ini, diharapkan: Learning Outcomes Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat menguraikan konsep generic data type pada class dan function. Buku Referensi: C++ - How to program, Deitel & Deitel, Prentice Hall, 2001. Websites: http://www.deitel.com 3 Bina Nusantara

Outline Materi Pengertian Generic data type Manfaat template Fungsi Template Class Template Contoh program template 4 Bina Nusantara

Template C++ mendukung penggunaan kembali kode program dengan berbagai cara, seperti inheritance, composition (nested object) merupakan metode penggunaan kembali kode object. Template merupakan fasilitas C++ yang mendukung penggunaan kembali kode program. Bina Nusantara

Template Template dapat diartikan sebagai blanko merupakan teknik membuat tipe data yang berupa parameter, artinya tipe data tersebut dapat berubah-ubah tergantung parameter yang diberikan pada saat inisialisasi. Contoh pada dunia nyata: cetakan patung logam -> gips, lilin Gunting -> benang, kertas Bina Nusantara

Template Fungsi Dengan overloading terhadap fungsi dapat diciptakan beberapa fungsi dengan nama sama yang menangani proses dengan tipe data yang berlainan. Contoh fungsi tukar bilangan bulat: void Tukar(int &x, int &y) { int temp = x; x = y; y = temp; } Bina Nusantara

Template Fungsi Untuk menukar bilangan real perlu Menuliskan: void Tukar(double &x, double &y){ double temp = x; x = y; y = temp; } Demikian juga jika diinginkan untuk menukar karakter atau data lainnya, maka harus dituliskan kembali definisi dari fungsi tukar tsb. Bina Nusantara

Template Fungsi Kekurangan overloading adalah kode dari sejumlah fungsi dengan nama yang sama tersebut harus dituliskan. Dengan template, hal tersebut tidak perlu dilakukan, sehingga program menjadi lebih sederhana. Template fungsi sangat bermanfaat untuk fungsi-fungsi yang menangani tugas yang sama dan hanya berbeda pada tipe data. Bina Nusantara

Contoh template <class T> void Swap (T &x, T &y) { T temp = x; x = y; y = temp; } Bina Nusantara

Pengenal T ini biasa disebut sebagai template argument. Kata kunci template memberitahukan pada compiler bahwa pernyataan setelah kata ini merupakan template. Sesudah kata class dalam tanda < > terdapat pengenal T, yang digunakan sebagai penganti tipe data. Pengenal T ini biasa disebut sebagai template argument. Pengenal T tidak harus berupa karakter tunggal dan biasanya dituliskan dengan huruf besar. Bina Nusantara

Contoh Program Tempalte Function // Contoh program c++ dengan fungsi template #include <iostream.h> template <class T> void Swap (T &x, T &y) { T temp = x; x = y; y = temp; } void main() { double x = 4.50, y = 7.54; cout << "X = " << x << " Y = " << y << endl; Swap( x, y); int p = 25, q = 10; cout << "P = " << p << " Q = " << q << endl; Swap( p, q); Bina Nusantara

Template fungsi dengan argument lebih dari satu Template argumen bisa lebih dari satu jika menggunakan tipe data lebih dari satu Template yang menggunakan lebih dari satu tipe data dapat didefinisikan dengan menuliskannya pada tanda < >. Misalkan: template <class A, class B> Bina Nusantara

int GTSum(int *Data, long x, int size) { long sum = 0; // Contoh fungsi GTSum int GTSum(int *Data, long x, int size) { long sum = 0; for (int i=0; i < size; i++) sum += Data[i]; return ((sum > x) ? 1 : 0); } int GTSum(float *Data, double x, int size) { double sum = 0; Bina Nusantara

// Dapat ditulis dengan template: template <class A, class B> int GTSum(A *Data, B x, int size) { B sum = 0; for (int i=0; i < size; i++) sum += Data[i]; return ((sum > x) ? 1 : 0); } Bina Nusantara

// contoh program dengan template lebih dari satu tipe #include <iostream.h> template <class A, class B> int GTSum(A *Data, B x, int size) { B sum = 0; for (int i=0; i < size; i++) sum += Data[i]; return ((sum > x) ? 1 : 0); } void main() { int Data1[5] = {2, 3, 4, 5, 6}; float Data2[4] = {1.5, 2.6, 3.2, 5.1}; if ( GTSum(Data1, 20, 5) ) cout << “Total nilai Data1 lebih dari 20” << endl; else cout << “Total nilai Data1 tidak lebih dari 20 \n”; if ( GTSum(Data2, 10.5, 4) ) cout << “Total nilai Data2 lebih dari 10.5 \n”; cout << “Total nilai Data2 tidak lebih dari 10.5”; Bina Nusantara

Template Class Template juga dapat diterapkan pada class dengan format: template <class T> class nama_class { // deklarasi class }; Bina Nusantara

// program template pada class stack #include <iostream.h> #include <stdlib.h> #include <conio.h> // template definition template <class T> class Stack { private: T *Data; int Size; int CountData; public: Stack(int Size = 25); ~Stack(); void Push (T nilai); T Pop(); int stackEmpty(); int stackFull(); }; Bina Nusantara

template <class T> Stack<T> :: Stack( int Size ) { //constructor Stack::Size = Size; CountData = 0; Data = new T [Size]; } Stack<T> :: ~Stack() { // destructor delete [ ] Data; int Stack<T> :: stackEmpty() { return ( (CountData == 0)? 1: 0 ); int Stack<T> :: stackFull () { return ( (CountData == Size)? 1: 0 ); Bina Nusantara

template <class T> void Stack<T> :: Push (T nilai) { if ( !stackFull() ) Data[CountData++] = nilai; else cerr << “Stack penuh” << endl; } T Stack<T> :: Pop() { if ( stackEmpty() ) { cerr << “Stack kosong” << endl; exit(1); return ( Data[--CountData] ); Bina Nusantara

Stack<float> s1; s1.Push(10.85); s1.Push(25.2); void main() { clrscr(); Stack<float> s1; s1.Push(10.85); s1.Push(25.2); cout << "Isi stack bilangan real: "<< endl; cout << "s1 ->1 = " << s1.Pop() << endl; cout << "s1 ->2 = " << s1.Pop() << endl; Stack<int> s2; s2.Push(100); s2.Push(10); s2.Push(5); cout << "Isi stack bilangan bulat: "<< endl; cout << "s2 ->1 = " << s2.Pop() << endl; cout << "s2 ->2 = " << s2.Pop() << endl; cout << "s2 ->3 = " << s2.Pop() << endl; } Bina Nusantara

Diskusi dan Tanya Jawab Latihan soal 22 Bina Nusantara