150 likes | 300 Vues
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.
E N D
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. TPT-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 TPT-2
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. TPT-2
Listing Program #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); } TPT-2
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); } TPT-2
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. TPT-2
// 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 }; TPT-2
Array1::Array1(int jumlah) { if (jumlah) x = new int (jumlah); else x=0; } Array1::~Array1 () { delete [ ] x; } TPT-2
Lanjutan Program // array untuk bilangan real class Array2 { protected: double* x; public: Array2 ( int = 0); // konstruktor array bilangan real ~Array2 (); //destructor array bilangan real //anggota kelas lain }; TPT-2
Array2::Array2(int jumlah) { if (jumlah) x = new double (jumlah); else x=0; } Array1::~Array1 () { delete [ ] x; } TPT-2
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 }; TPT-2
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; } TPT-2
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. TPT-2
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 TPT-2
Keyword Catch • Berhubungan dengan sebuah blok yang terletak di bawah blok try, yang isinya adalah pernyataan-pernyataan untuk menangani kesalahan yang timbul. TPT-2