WORKSHOP BAB 2 OPERATOR OVERLOADING
1. Buatlah program yang meminta user memasukkan jam,menit, dan detik kemudian menampilkannya dengan format jam:menit:detik. Deklarasikan jam dan menit berupa integer, sedangkan menit berupa floating point. Buat masukan dan keluaran menggunakan operator overloading << dan >> sesuai yang dikehendaki.
a. Buat class waktu, termasuk operator overloading input dan output
Jawab :
class waktu{
friend ostream& operator<<(ostream&, const waktu&);
friend istream& operator>>(istream, waktu&);
public:
waktu();
private:
int jam,mnt;
float detik;
b. Buat implementasi operator overloading input dan output
Jawab:
-Input
istream& operator>>(istream& cin, waktu& masukan){
cout<<"Masukan jam :";
cin>>masukan.jam;
cout<<"Masukan menit :";
cin>>masukan.mnt;
cout<<Masukan detik :";
cin>>masukan.detik;
return cin;
}
-Output
ostream& operator<<(ostream& out, const waktu& keluaran){
out<<"Waktu"<<keluaran.jam<<"jam"<<keluaran.mnt<<"menit"<<keluaran.detik<<"detik"<<endl;
return out;
}
c. Buat main function
Jawab :
int main(){
waktu x;
cin>>x;
cout<< x;
return 0;
}
2. Buatlah program yang meminta user memasukkan bagian penyebut dan pembilang dari sebuah bilangan rasional berbentuk p/q. Setiap memasukkan bilangan rasional outputnya berbentuk p/q. Misalnya, masukan 1 dan 2 maka tampilan outputnya 1/2.
a. Buat class rasional
Jawab:
class rasional{
friend ostream& operator<<(ostream&, const rasional&);
friend istream& operator>>(istream& rasioanl&);
public:
rasional();
private:
int p,q;
b. Buat implementasi operator overloadng input dan output
Jawab:
-Input
istream& operator>>(istream cin, rasional& masukan){
cout<<"Masukan penyebut :";
cin>>masukan.p;
cout<<"Masukan pembilang :";
cin>>masukan.q;
return cin;
}
-Output
ostream& operator<<(ostream& out, const rasional& keluaran){
out<<"p/q ="<<keluaran.p<<"/"<<keluaran.q<<endl;
return out;
}
c. Main fungsi
Jawab:
int main(){
rasional x;
cin>>x;
cout<<x;
return 0;
}
3. Buatlah program yang meminta user memasukkan bagian ribuan, ratusan, puluhan, dan satuan. Misalnya: 1000, 200, 30, 4. Tampilan yang dikehendaki adalah 1234.
a. Buat class hitung
Jawab:
class hitung{
friend ostream& operator<<(ostream& const hitung&);
friend istream& operator>>(istream& hitung&);
public:
hitung();
private:
int rib, rat, pul, sat;
b. Implementasi operator overloading input dan output
Jawab:
-Input
istream& operator&>>(istream& cin, hitung& masukan){
cout<<"Masukan angka ribuan :";
cin>>masukan.rib;
cout<<"Masukan angka ratusan :";
cin>>masukan.rat;
cout<<"Masukan angka puluhan :";
cin>>masukan.pul;
cout<<"Masukan angka satuan :";
cin>>masukan.sat;
return cin;
}
-Output
ostream& operator&<<(ostream& out, const hitung& keluaran){
out<<"Hasil = "<<keluaran.rib/1000<<keluaran.rat/100<<keluaran.pul/10<<keluaran.sat/1;
return out;
}
c. Main function
Jawab:
int main(){
hitung x;
hitung x;
cin>>x;
cout<<x;
return 0;
}
4. Buatlah program untuk mempresentasikan operasi-operasi arimatika: penjumlahan, pengurangan, perkalian, pembagian. User diminta memasukkan 2 buah bilangan bulat, kemudian menampilkan sajian lengkapnya dari semua operasi. Sebagai contoh, user memasukkan 1 dan 2 maka tampilan outputnya:
1 + 2 = 2
1 - 2 = -1
1 * 2 = 2
1 : 2 = 1/2
a. Buat class hitung
Jawab:
class hitung{
friend ostream& operator<<(ostream& const hitung&);
friend istream& operator>>(istream& hitung&);
public:
hitung(){
int hitung_jml(){ jumlah = (a+b);}
int hitung_kurang(){ kurang = (a-b);}
int hitung_kali(){ kali = (a*b);}
int hitung_bagi(){ bagi =(a/b);}
private:
int a,b;
int jumlah, kurang, kali, bagi;
b. Implementasi operator overloading input dan output
Jawab:
-Input
istream& operator>>(istream cin, hitung& masukan){
cout<<"Masukan bilangan pertama :";
cin>>masukan.a;
cout<<"Masukan bilangan kedua :";
cin>>masukan.b;
return cin.;
}
-Output
ostream& operator<<(ostream& out, const hitung& keluaran){
out<<"keluaran.a<<"+"<<keluaran.b<<"="<<keluaran.jumlah<<endl;
out<<"keluaran.a<<"-"<<keluaran.b<<"="<<keluaran.kurang<<endl;
out<<"keluaran.a<<"*"<<keluaran.b<<"="<<keluaran.kali<<endl;
out<<"keluaran.a<<":"<<keluaran.b<<"="<<keluaran.bagi<<endl;
return out;
}
c. Main function
Jawab:
int main(){
hitung x;
hitung x;
cin>>x;
x.hitung_jml();
x.hitung_kurang();
x.hitung_kali();
x.hitung_bagi();
cout<<x;
return 0;
}
Komentar
Posting Komentar