templates dan stl

15
TPT-2 1 TEMPLATES dan STL 1.Konsep Template dan Class Template 2.Namespace 3.Assertion 4.Exception 5.Throwing dan Catching * Templates * Teknik membuat tipe data yang berupa parameter, artinya data tersebut dapat berubah - ubah tergantung parameter yang di berikan saat inisialisasi.

Upload: thor

Post on 05-Jan-2016

42 views

Category:

Documents


0 download

DESCRIPTION

TEMPLATES dan STL. 1.Konsep Template dan Class Template 2.Namespace 3.Assertion 4.Exception 5.Throwing dan Catching * Templates * Teknik membuat tipe data yang berupa parameter, artinya data tersebut dapat berubah - ubah tergantung parameter yang di berikan saat inisialisasi. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: TEMPLATES dan STL

TPT-2 1

TEMPLATES dan STL

1.Konsep Template dan Class Template

2.Namespace3.Assertion4.Exception5.Throwing dan Catching

* Templates *Teknik membuat tipe data yang berupa parameter, artinya data tersebut dapat berubah - ubah tergantung parameter yang di

berikan saat inisialisasi.

Page 2: TEMPLATES dan STL

TPT-2 2

Contoh Template

Terdapat sebuah cetakan patung yang terbuat dari logam.

Bila seseorang ingin membuat sebuah patung yang terbuat dari gips, masukkan gips ke dalam cetakan.

Bila menginginkan patung lilin maka ia harus memasukan lilin ke dalam cetakan.

Arti Template

Tipe data yang dapat berubah-ubah tergantung kebutuhan. Bila diinginkan tipe data int, maka

Page 3: TEMPLATES dan STL

TPT-2 3

tipe data yang dijadikan template akan ber -ubah menjadi int.Bila diinginkan tipe data berupa kelas X, maka tipe data tersebut ber -ubah menjadi kelas X.

Template Fungsi

Artinya sebuah fungsi dapat memiliki tipe data parameter yang dapat ber -ubah-ubah tergantung kebutuhan.

Contoh: Fungsi untuk menukar dua buah variabel membutuhkan argumen yang tergantung tipe data variable tersebut

Jika variabel yang akan ditukar bertipe int, maka dibuat fungsi dengan argumen int.Jika yang akan ditukar bertipe double, maka dibuat fungsi dengan argumen double.

Page 4: TEMPLATES dan STL

TPT-2 4

#include <iostream.h>void Tukar (char & a, char& b){char temp = a;a = b;b = temp;}void Tukar (long& a, long& b){long temp = a;a=b;b=temp;}Void Tukar (double & a, double & b){double temp=a;

a=b;b=temp;}void main (){long x = 10;long y=20;Tukar(x,y);

char a=‘A’;char b= ‘B’;Tukar (a,b);

double d1=3.14;double d2=2.78;Tukar (d1,d2);}

Listing Program

Page 5: TEMPLATES dan STL

TPT-2 5

Listing Program Konsep Template

#include <iostream.h>template <class T>void Tukar(T& a, T& b){

T temp = a; a = b;

b= temp;}void main (){long x= 10;long y = 20;Tukar(x,y);

char a = ‘A’;char b=‘B’;Tukar(a,b);

double d1 = 3.14;double d2 = 2.78;Tukar (d1, d2);}

Page 6: TEMPLATES dan STL

TPT-2 6

Class Template

• Contoh kasus: Seorang programmer ingin membuat kelas array.

• Cara Umum: Membuat pointer

• Masalah yang timbul: Bagaimana jika array yang akan dibuat tsb memiliki elemen bukan hanya bilangan tetapi string atau struct atau bahkan kelas

Solusi Pada Pemrograman Biasa

Contoh: deklarasi 2 buah kelas array. Kelas I u/ array dengan elemen bilangan bulat, kelas II u/ array dengan elemen bilangan real.

Page 7: TEMPLATES dan STL

TPT-2 7

// array untuk bilangan bulat class

Array1{protected:

int* x;

public:Array1 ( int = 0);

// konstruktor array bilangan bulat

~Array1 ();//destructor array

bilangan bulat //anggota kelas lain};

Page 8: TEMPLATES dan STL

TPT-2 8

Array1::Array1(int jumlah){

if (jumlah) x = new int (jumlah);

else x=0;

}Array1::~Array1 (){ delete [ ] x;}

Page 9: TEMPLATES dan STL

TPT-2 9

Lanjutan Program

// array untuk bilangan realclass Array2{protected:

double* x;

public:Array2 ( int = 0);

// konstruktor array bilangan real

~Array2 ();//destructor array

bilangan real //anggota kelas lain};

Page 10: TEMPLATES dan STL

TPT-2 10

Array2::Array2(int jumlah){

if (jumlah) x = new double (jumlah);

else x=0;

}Array1::~Array1 (){ delete [ ] x;}

Page 11: TEMPLATES dan STL

TPT-2 11

Program C++ Template

Template <class T> // perhatikan cara pendeklarasian //kelas menggunakan keyword template//diikuti tipe data parameter

class Tbarang{protected; Tbarang (const----------belom selesai //perhatikan tipe data double atau int diganti //dengan tipe data parameter, dalam hal ini adalah T //( sesuai deklarasi di atas)public: Array (int=0); // konstruktor array ~array(); // destruktor array //anggota kelas yang lain u menangani array};

Page 12: TEMPLATES dan STL

TPT-2 12

Penanganan Kesalahan (Exception Handling)

• Program handal ==> tahan banting, tidak mudah jatuh karena kesalahan apapun.

• Baik kesalahan kompiler dan kesalahan logika pemrograman.

• Contoh : #include <iostream.h>#include <math.h>

void main(){double x = -1;cout <<sqrt(x) <<endl;cout <<log(x) << endl;double y= x / 0.0;}

Page 13: TEMPLATES dan STL

TPT-2 13

Kesalahan:

- alokasi memori yang terlalu besar

- terjadi pembagian dengan nol

- melakukan operasi algoritma pada

bilangan negatif

Penaganan Kesalahan • Langsung menghentikan program(u/ kesalahan sangat fatal)• Memberi tahu kepada user, tetapi program tetap dilanjutkan.• Mengambil langkah-langkah tertentu untuk mengatasi hal tersebut(u/ kesalahan ringan)• Yang paling baik : Memberi tahu kepada user bahwa terjadi kesalahan, tetapi program tetap dilanjutkan.

Page 14: TEMPLATES dan STL

TPT-2 14

Exception Handling

• Cara penanganan kesalahan yang baik di C++ disebut exception handling.

• Tiga keyword baru:– try– catch– Throw

* Keyword Try *• Berhubungan dengan sebuah

blok yang berisi pernyataan-pernyataan yang mungkin menyebabkan terjadinya kesalahan.

• Misalnya blok untuk mengalokasikan sejumlah memori. Blok ini sering mengakibatkan program berhenti karena memori yang di komputer sudah habis

Page 15: TEMPLATES dan STL

TPT-2 15

Keyword Catch

• Berhubungan dengan sebuah blok yang terletak di bawah blok try, yang isinya adalah pernyataan-pernyataan untuk menangani kesalahan yang timbul.