Jarang
sekali sebuah
program dibuat dapat berjalan dengan sukses pada saat pertama sekali
dijalankan. Kesalahan sering terjadi pada saat perancangan atau perograman.
Kesalahan tersebut dikategorikan menjadi
tiga bagian, yaitu :
· Syntax errors – mengakibatkan kesalahan kompilasi.
· Semantic errors – program menghasilkan keluaran
yang tidak sesuai dengan harapan.
· Runtime errors – kebanyakan mengakibatkan
terminasi program secara tidak normal atau bahkan sistem crash.
Berikut ini merupakan contoh runtime error.
· Pembagian bilangan dengan nol.
· Akses elemen yang berada di luar indeks array.
· Menggunakan nilai negatif untuk ukuran array.
Setiap program dalam berada dapat suatu
kondisi yang tidak normal – Error Conditions. Program yang ‘baik’ harus dapat
menangani kondisi ini. Exception merupakan suatu keadaan yng disebabkan oleh
runtime error dalam program. Memungkinkan kesalahan ditangani tanpa harus
‘mengotori’ program (dengan rutin yang menangani kesalahan). Memungkinkan
pemisahan penanganan kesalahan dengan program utama (main business logic).
Suatu fungsi
dapat memberi tanda suatu kesalahan dengan melempar suatu exception – throws. Fungsi pemanggil dapat
menyerahkan kendali ke exception handler dengan menangkap (catching) exception
– try, catch. Berikut ini merupakan blok try – catch.
try{
instruksi yang berpotensi menghasilkan exception
}
catch (tipe_exception e){
instruksi untuk menangani exception
{
Seperti bahasa tingkat tinggi yang lain, C++
memiliki beberapa operator +, -, \, *, <<, >>, &, [], =, dll.
Operator ini telah didefinisikan (pre –
defined) dan digunakan untuk tipe tertentu. Misal : operator ‘+’ hanya
dapat digunakan untuk tipe dasar seperti integer, float, dll. Kadang – kadang
diperlukan untuk meredefinisi operator ini untuk digunakan untuk tipe bentukan.
Misalnya Kelas Complex a dan b, apakah bisa dilakukan a + b ? Manipulasi
bilangan kompleks lebih mudah apabila dapat memperlakukannya seperti pada tipe
dasar. Sehingga dapat dilakukan, hal – hal seperti
· Complex a (2, 4);
· Complex b (4, 5);
· . . .
· Complex c = a + b;
Bukannya
· Complex a (2, 4);
· Complex b (4, 5);
· . . .
· Complex c = a.tambah (b);
Operator yang digunakan pada kelas dalam C++
dinyatakan daam pemanggilan fungsi. Jenis operator ada dua yaitu operatoruner
dan operatorbiner. Operator uner hanya membutuhkan satu argument, misalnya ++,
--, ~. Operator biner membutuhkan dua argument, misalnya +, -, /, *.
Operator dalam C++ diimplementasikan dengan
pemanggilan fungsi. User dapat
meredefinisi arti suatu operator pada suatu operator pada suatu kelas dengan
melakukan redefinisi method yang berkaitan dengan operator tersebut. Tidak
semua operator bisa di – overload. Ada
batasan – batasan yang bisa dilakukan dalam operator overloading.
contoh program : Kalkulator Sederhana
#include
#include
#include
main()
{
int pilihan;
double a, b, hasil, pembagian;
cout<<"-------MENU KALKULATOR-------";
cout<<"\n 1. PENJUMLAHAN";
cout<<"\n 2. PENGURANGAN";
cout<<"\n 3. PERKALIAN";
cout<<"\n 4. PEMBAGIAN";
cout<<"\n 5. LEBIH DARI";
cout<<"\n 6. KURANG DARI";
cout<<"\n-----------------------------"<
cout<<"\nPilih Menu ke : ";
cin>>pilihan;
switch(pilihan)
{
case 1:
cout<<"Masukkan Operand 1 : ";
cin>>a;
cout<<"Masukkan Operand 2 : ";
cin>>b;
hasil=a+b;
cout<<"Hasil Penjumlahan = "
<< hasil;break;
case 2:
cout<<"Masukkan Operand 1 : ";
cin>>a;
cout<<"Masukkan Operand 2 : ";
cin>>b;
hasil=a-b;
cout<<"\n Hasil Pengurangan = "
<< hasil;break;
case 3:
cout<<"Masukkan Operand 1 : ";
cin>>a;
cout<<"Masukkan Operand 2 : ";
cin>>b;
hasil=a*b;
cout<<"\n Hasil Perkalian = "
<< hasil;break;
case 4:
try {cout<<"Masukkan Operand 1 : ";
cin>>a;
cout<<"Masukkan Operand 2 : ";
cin>>b;
hasil=a/b;}
catch (int e )
{"Pesan ada kesalahan, tidak boleh dibagi
dengan 0";};
cout<<"\n Hasil Pembagian =
"<< hasil;break;
case 5:
cout<<"Masukkan Operand 1 : ";
cin>>a;
cout<<"Masukkan Operand 2 : ";
cin>>b;
if (a > b)
{
hasil=a;
}
else
{
hasil=b;
};
cout<
case 6:
cout<<"Masukkan Operand 1 : ";
cin>>a;
cout<<"Masukkan Operand 2 : ";
cin>>b;
if (a < b)
{
hasil=a;
}
else
{
hasil=b;
};
cout<
}
getch();
}
Tidak ada komentar:
Posting Komentar