Contoh program c dengan include iostream h template

  • Slides: 11
Download presentation
// Contoh program c++ dengan #include <iostream. h> template <class T> void Swap (T

// Contoh program c++ dengan #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 Swap( x, y); cout << "X = " << x << " Y int p = 25, q = 10; cout << "P = " << p << " Q Swap( p, q); cout << "P = " << p << " Q } fungsi template = " << y << endl; = " << q << endl; 1

Template fungsi dengan argument lebih dari satu Template argumen bisa lebih dari satu jika

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> 2

// Contoh fungsi GTSum int GTSum(int *Data, long x, int size) { long sum

// 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; for (int i=0; i < size; i++) sum += Data[i]; return ((sum > x) ? 1 : 0); } 3

// Dapat ditulis dengan template: template <class A, class B> int GTSum(A *Data, B

// 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); } 4

// contoh program dengan template lebih dari satu tipe #include <iostream. h> template <class

// 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 Data 1[5] = {2, 3, 4, 5, 6}; float Data 2[4] = {1. 5, 2. 6, 3. 2, 5. 1}; if ( GTSum(Data 1, 20, 5) ) cout << “Total nilai Data 1 lebih dari 20” << endl; else cout << “Total nilai Data 1 tidak lebih dari 20 n”; if ( GTSum(Data 2, 10. 5, 4) ) cout << “Total nilai Data 2 lebih dari 10. 5 n”; else cout << “Total nilai Data 2 tidak lebih dari 10. 5”; 5 }

Template Class Template juga dapat diterapkan pada class dengan format: template <class T> class

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

// program template pada class stack #include <iostream. h> #include <stdlib. h> #include <conio.

// 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 Count. Data; public: Stack(int Size = 25); ~Stack(); void Push (T nilai); T Pop(); int stack. Empty(); int stack. Full(); }; 7

template <class T> Stack<T> : : Stack( int Size ) { //constructor Stack: :

template <class T> Stack<T> : : Stack( int Size ) { //constructor Stack: : Size = Size; Count. Data = 0; Data = new T [Size]; } template <class T> Stack<T> : : ~Stack() { // destructor delete [ ] Data; } template <class T> int Stack<T> : : stack. Empty() { return ( (Count. Data == 0)? 1: 0 ); } template <class T> int Stack<T> : : stack. Full () { return ( (Count. Data == Size)? 1: 0 ); } 8

template <class T> void Stack<T> : : Push (T nilai) { if ( !stack.

template <class T> void Stack<T> : : Push (T nilai) { if ( !stack. Full() ) Data[Count. Data++] = nilai; else cerr << “Stack penuh” << endl; } template <class T> T Stack<T> : : Pop() { if ( stack. Empty() ) { cerr << “Stack kosong” << endl; exit(1); } return ( Data[--Count. Data] ); } 9

void main() { clrscr(); Stack<float> s 1; s 1. Push(10. 85); s 1. Push(25.

void main() { clrscr(); Stack<float> s 1; s 1. Push(10. 85); s 1. Push(25. 2); cout << "Isi stack bilangan real: "<< endl; cout << "s 1 ->1 = " << s 1. Pop() << endl; cout << "s 1 ->2 = " << s 1. Pop() << endl; Stack<int> s 2; s 2. Push(100); s 2. Push(10); s 2. Push(5); cout << "Isi stack bilangan bulat: "<< endl; cout << "s 2 ->1 = " << s 2. Pop() << endl; cout << "s 2 ->2 = " << s 2. Pop() << endl; cout << "s 2 ->3 = " << s 2. Pop() << endl; } 10

Penutup • Untuk dapat merancang sebuah program dengan menggunakan template, mahasiswa membahas tugas pertemuan

Penutup • Untuk dapat merancang sebuah program dengan menggunakan template, mahasiswa membahas tugas pertemuan ini no 1, 2, dan 3. (diskusikan dalam kelompok) 11