Menangani ekspansi
Ini merupakan lanjutan dari posting sebelumnya mengenai ekspensi (bagi yang belum baca silahkan disini), dari posting sebelumnya saya menjelaskan bila yang dimasukkan adalah angka nol (nol). Disini saya tambahkan bila yang diinputkan salah, yaitu berupa huruf / string…
waduw gmn lg tu jadinya..
mari kita bahas bersama..hoho.. 
Kita pakai program yang sama dengan posting sebelumnya aja biar g bingung ya.
Kita pakai program yang sama dengan posting sebelumnya aja biar g bingung ya.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include "iostream.h" #include "conio.h" bagi(double a, double b){ double c; c=a/b; return (c); } main(){ double x, y, z; x=10; cout<<"Menghitung x/y"<<endl; cout<<"Masukkan y : ";cin>>y; z=bagi(x,y); cout<<x<<"/"<<y<<"="<<z; getch(); } |
Jika program di atas dijalankan, dan coba y diisi dengan huruf bukan angka. Maka program akan berhenti, tidak percaya silahkan dicoba… Bagaimana donk??
Untuk menanganinya kita gunakan ekpensi juga, programnya menjadi :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include "iostream.h" #include "conio.h" bagi(double a, double b){ double c; if((b==0)||(!cin))throw 1; c=a/b; return (c); } main(){ double x, y, z; cout<<"Menghitung x/y"<<endl; cout<<"Masukkan y : ";cin>>y; cout<<"Masukkan x : ";cin>>x; try{ z=bagi(x,y); cout<<x<<"/"<<y<<"="<<z; } catch(int e){ cerr<<"Terjadi ekspensi. Kode : "<<e; } catch(char *s){ cerr<<"Terjadi ekspensi. Kode : "<<s; } getch(); } |
Pada penambahan source code :
1 2 3 | catch(int e){ cerr<<"Terjadi ekspensi. Kode : "<<e; } |
Untuk menampung ekspensi yang berupa string. Jadi source kode itu untuk berjaga jaga tampungan ekspensi string. Sudah paham kan..

Comments