1. Buatlah sebuah konstruktor dari kelas Kompleks dengan Spesifikasi apabila dideklarasikan obyek baru dengan satu parameter maka yang di assign adalah data member a
2. buatlah operator overloading *(baru yang memuat fungsi kali),
Answer,,,,..
#include
using namespace std;
class Kompleks
{
public:
Kompleks (int a); // inlah konstruktor jawaban soal no1
Kompleks operator*(const Kompleks&); //overload kali
private:
int a;
}
//sekarang ini merupaka isi dari overload kali
Kompleks Kompleks::operator*(const Kompleks& m)
{
Kompleks x;
x.a=a*m.a;
return x;
}
skip to main |
skip to sidebar
Pages
No Name
dedicated to all of you
Selasa, 05 Oktober 2010
Praktikum ke 2 "KONSTRUKTOR DAN TEMPLATE"
#include <iostream>
using namespace std;
//template<class T>
class Kompleks{
friend class Operasi;
friend ostream& operator<<(ostream&, const Kompleks&);
friend istream& operator>>(istream&, Kompleks&);
public:
Kompleks(int s=0, int t=0):a(s),b(t){}
void cetak();
Kompleks operator-();
Kompleks operator-(const Kompleks&);
Kompleks operator+(const Kompleks&);
Kompleks operator*(const Kompleks&);
private:
int a;
int b;
};
//template<class T>
void Kompleks::cetak(){
if(b>0)cout<<"bilangan kompleks:"<<a<<"+"<<b<<"i";
else cout<<"bilangan kompleks:"<<a<<b<<"i";
cout<<endl;
}
// template<class T>
Kompleks Kompleks::operator-(){
Kompleks x;
x.a=a;
x.b=-b;
return x;
}
// template<classT>
Kompleks Kompleks::operator-(const Kompleks& m){
Kompleks x;
x.a=a-m.a;
x.b=b-m.b;
return x;
}
// template<class T>
Kompleks Kompleks::operator+(const Kompleks& m){
Kompleks x;
x.a=a+m.a;
x.b=b+m.b;
return x;
}
Kompleks Kompleks::operator*(const Kompleks&m)
{
Kompleks x;
x.a=a*m.a;
x.b=b*m.b;
return x;
}
// template<class T>
ostream& operator<<(ostream& out, const Kompleks& x){
if(x.b==0) out<<'['<<x.a<<']';
else if(x.a==0 && x.b==1)out<<'['<<"i"<<']';
else if(x.a==0 && x.b==-1)out<<'['<<"-i"<<']';
else if(x.a==0 && x.b>1)out<<'['<<x.b<<"i"<<']';
else if(x.a==0 && x.b<-1)out<<'['<<x.b<<"i"<<']';
else if(x.b==1)out<<'['<<x.a<<"+"<<"i"<<']';
else if(x.b>0)out<<'['<<x.a<<"+"<<x.b<<"i"<<']';
else if(x.b==-1)out<<'['<<x.a<<"-i"<<']';
else out<<'['<<x.a<<x.b<<"i"<<']';
return out;
}
//template <class T>
istream& operator>>(istream& in, Kompleks&x)
{
cout<<"MASUKKAN BAGIAN REAL : ";
in>>x.a;
cout<<"MASUKKAN BAGIAN IMAJINER : ";
in>>x.b;
return in;
}
//template <class T>
class Operasi{
public :
Kompleks jumlah(const Kompleks&,const Kompleks&);
Kompleks kali(const Kompleks&,const Kompleks&);
Kompleks kurang(const Kompleks&,const Kompleks&);
};
//template <class T>
Kompleks Operasi::jumlah(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=m.a+n.a;
temp.b=m.b+n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kurang(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=m.a-n.a;
temp.b=m.b-n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kali(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=(m.a*n.a)-(m.b*n.b);
temp.b=(m.a*n.b)-(m.b*n.a);
return temp;
}
int main (){
Kompleks x(2,3),y(4,-4),t;
Operasi z;
cout<<"\nMenggunakan cetak():\n";
x.cetak();
cout<<"\nMenggunakan overloading :"<<x;
cout<<"\nKonjugat :"<<-x<<endl;
y.cetak();
cout<<"\nPenjumlahan menggunakan methods :";
t=z.jumlah(x,y);
t.cetak();
cout<<"\nPenjumlahan menggunakan operator:";
t=x+y;
cout<<x<<"+"<<y<<"="<<t;
cout<<"\nPerkalian menggunakan methods:";
t=z.kali(x,y);
t.cetak();
cout<<"\nperkalian menggunakan operator:";
t=x*y;
cout<<x<<"*"<<y<<"="<<t;
t=x-y;
cout<<"\n"<<x<<"-"<<y<<"="<<t<<endl;
cout<<endl;
Kompleks n;
cin>>n;
cout<<n;
system("PAUSE");
return 0;
}
using namespace std;
//template<class T>
class Kompleks{
friend class Operasi;
friend ostream& operator<<(ostream&, const Kompleks&);
friend istream& operator>>(istream&, Kompleks&);
public:
Kompleks(int s=0, int t=0):a(s),b(t){}
void cetak();
Kompleks operator-();
Kompleks operator-(const Kompleks&);
Kompleks operator+(const Kompleks&);
Kompleks operator*(const Kompleks&);
private:
int a;
int b;
};
//template<class T>
void Kompleks::cetak(){
if(b>0)cout<<"bilangan kompleks:"<<a<<"+"<<b<<"i";
else cout<<"bilangan kompleks:"<<a<<b<<"i";
cout<<endl;
}
// template<class T>
Kompleks Kompleks::operator-(){
Kompleks x;
x.a=a;
x.b=-b;
return x;
}
// template<classT>
Kompleks Kompleks::operator-(const Kompleks& m){
Kompleks x;
x.a=a-m.a;
x.b=b-m.b;
return x;
}
// template<class T>
Kompleks Kompleks::operator+(const Kompleks& m){
Kompleks x;
x.a=a+m.a;
x.b=b+m.b;
return x;
}
Kompleks Kompleks::operator*(const Kompleks&m)
{
Kompleks x;
x.a=a*m.a;
x.b=b*m.b;
return x;
}
// template<class T>
ostream& operator<<(ostream& out, const Kompleks& x){
if(x.b==0) out<<'['<<x.a<<']';
else if(x.a==0 && x.b==1)out<<'['<<"i"<<']';
else if(x.a==0 && x.b==-1)out<<'['<<"-i"<<']';
else if(x.a==0 && x.b>1)out<<'['<<x.b<<"i"<<']';
else if(x.a==0 && x.b<-1)out<<'['<<x.b<<"i"<<']';
else if(x.b==1)out<<'['<<x.a<<"+"<<"i"<<']';
else if(x.b>0)out<<'['<<x.a<<"+"<<x.b<<"i"<<']';
else if(x.b==-1)out<<'['<<x.a<<"-i"<<']';
else out<<'['<<x.a<<x.b<<"i"<<']';
return out;
}
//template <class T>
istream& operator>>(istream& in, Kompleks&x)
{
cout<<"MASUKKAN BAGIAN REAL : ";
in>>x.a;
cout<<"MASUKKAN BAGIAN IMAJINER : ";
in>>x.b;
return in;
}
//template <class T>
class Operasi{
public :
Kompleks jumlah(const Kompleks&,const Kompleks&);
Kompleks kali(const Kompleks&,const Kompleks&);
Kompleks kurang(const Kompleks&,const Kompleks&);
};
//template <class T>
Kompleks Operasi::jumlah(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=m.a+n.a;
temp.b=m.b+n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kurang(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=m.a-n.a;
temp.b=m.b-n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kali(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=(m.a*n.a)-(m.b*n.b);
temp.b=(m.a*n.b)-(m.b*n.a);
return temp;
}
int main (){
Kompleks x(2,3),y(4,-4),t;
Operasi z;
cout<<"\nMenggunakan cetak():\n";
x.cetak();
cout<<"\nMenggunakan overloading :"<<x;
cout<<"\nKonjugat :"<<-x<<endl;
y.cetak();
cout<<"\nPenjumlahan menggunakan methods :";
t=z.jumlah(x,y);
t.cetak();
cout<<"\nPenjumlahan menggunakan operator:";
t=x+y;
cout<<x<<"+"<<y<<"="<<t;
cout<<"\nPerkalian menggunakan methods:";
t=z.kali(x,y);
t.cetak();
cout<<"\nperkalian menggunakan operator:";
t=x*y;
cout<<x<<"*"<<y<<"="<<t;
t=x-y;
cout<<"\n"<<x<<"-"<<y<<"="<<t<<endl;
cout<<endl;
Kompleks n;
cin>>n;
cout<<n;
system("PAUSE");
return 0;
}
Sabtu, 02 Oktober 2010
Postest Praktikum 1
Postest Praktikum 1 Sdata ( Minggu ke-3 )
source code
#include <cstdlib>
#include <iostream>
using namespace std;
class Bilangan {
friend ostream& operator<<(ostream&, const Bilangan&);
friend istream& operator>>(istream&, Bilangan&);
public :
Bilangan(int a0=0, float b0=0.0): a(a0),b(b0){}
void banding_int(const Bilangan&, const Bilangan&);
Bilangan& operator=(const Bilangan&);
Bilangan operator+(const Bilangan&) const;
Bilangan operator-()const;
private :
int a;
float b;
};
ostream& operator<<(ostream& out, const Bilangan& x)
{
out<<”Bagian integer : “<<x.a<<endl;
out<<”Bagian float : “<<x.b<<endl<<endl;
return out;
}
void Bilangan::banding_int(const Bilangan& x, const Bilangan & y)
{
if(x.a>y.a)cout<<x.a<<”::x lebih besar dari”<<y.a<<”::y”;
else cout<<x.a<<”::x lebih kecil dari”<<y.a<<”::y”;
}
Bilangan& Bilangan::operator=(const Bilangan& x)
{
a=x.a;
b=x.b;
return *this;
}
istream& operator>>(istream& in, Bilangan& x)
{
cout<<”\nMasukkan bagian integer: “;
in>>x.a;
cout<<”Masukkan bagian float :”;
in>>x.b;
return in;
}
Bilangan Bilangan::operator+(const Bilangan& x) const
{
Bilangan cc;
cc.a=a+x.a;
cc.b=b+x.b;
return cc;
}
Bilangan Bilangan::operator-()const
{
Bilangan x;
x.a=-a;
x.b=-b;
return x;
}
int main(int argc, char *argv[])
{
Bilangan s, t(-2,3.14),d;
cout<<”Nilai awal s\n”<<s;
cout<<”Nilai awal t dari deklarasi\n”<<t;
s=t;
cout<<”Setelah s di-assign t\n”;
cout<<”Nilai s\n”<<s;
cout<<”Masukkan nilai-nilai objek d”;
cin>>d;
cout<<”Setelah d+t=>\n”<<d+t;
cout<<”Nilai d dinegatifkan\n”<<-d;
system(“PAUSE”);
return EXIT_SUCCESS;
}
the answer of question postest !!
3. After studied the over program, then make a report in general type from :
a. Class
class Bilangan {
friend ostream& operator<<(ostream&, const Bilangan&);
friend istream& operator>>(istream&, Bilangan&);
public :
Bilangan(int a0=0, float b0=0.0): a(a0),b(b0){}
void banding_int(const Bilangan&, const Bilangan&);
Bilangan& operator=(const Bilangan&);
Bilangan operator+(const Bilangan&) const;
Bilangan operator-()const;
private :
int a;
float b;
};
b. Konstruktor
Bilangan(int a0=0, float b0=0.0): a(a0),b(b0){}
c. Method
void banding_int(const Bilangan&, const Bilangan&);
d. Data Member
int a;
float b;
e. Operator overloading as a friend although class member
Bilangan& operator=(const Bilangan&)
Bilangan operator+(const Bilangan&) const;
Bilangan operator-()const;
source code
#include <cstdlib>
#include <iostream>
using namespace std;
class Bilangan {
friend ostream& operator<<(ostream&, const Bilangan&);
friend istream& operator>>(istream&, Bilangan&);
public :
Bilangan(int a0=0, float b0=0.0): a(a0),b(b0){}
void banding_int(const Bilangan&, const Bilangan&);
Bilangan& operator=(const Bilangan&);
Bilangan operator+(const Bilangan&) const;
Bilangan operator-()const;
private :
int a;
float b;
};
ostream& operator<<(ostream& out, const Bilangan& x)
{
out<<”Bagian integer : “<<x.a<<endl;
out<<”Bagian float : “<<x.b<<endl<<endl;
return out;
}
void Bilangan::banding_int(const Bilangan& x, const Bilangan & y)
{
if(x.a>y.a)cout<<x.a<<”::x lebih besar dari”<<y.a<<”::y”;
else cout<<x.a<<”::x lebih kecil dari”<<y.a<<”::y”;
}
Bilangan& Bilangan::operator=(const Bilangan& x)
{
a=x.a;
b=x.b;
return *this;
}
istream& operator>>(istream& in, Bilangan& x)
{
cout<<”\nMasukkan bagian integer: “;
in>>x.a;
cout<<”Masukkan bagian float :”;
in>>x.b;
return in;
}
Bilangan Bilangan::operator+(const Bilangan& x) const
{
Bilangan cc;
cc.a=a+x.a;
cc.b=b+x.b;
return cc;
}
Bilangan Bilangan::operator-()const
{
Bilangan x;
x.a=-a;
x.b=-b;
return x;
}
int main(int argc, char *argv[])
{
Bilangan s, t(-2,3.14),d;
cout<<”Nilai awal s\n”<<s;
cout<<”Nilai awal t dari deklarasi\n”<<t;
s=t;
cout<<”Setelah s di-assign t\n”;
cout<<”Nilai s\n”<<s;
cout<<”Masukkan nilai-nilai objek d”;
cin>>d;
cout<<”Setelah d+t=>\n”<<d+t;
cout<<”Nilai d dinegatifkan\n”<<-d;
system(“PAUSE”);
return EXIT_SUCCESS;
}
the answer of question postest !!
3. After studied the over program, then make a report in general type from :
a. Class
class Bilangan {
friend ostream& operator<<(ostream&, const Bilangan&);
friend istream& operator>>(istream&, Bilangan&);
public :
Bilangan(int a0=0, float b0=0.0): a(a0),b(b0){}
void banding_int(const Bilangan&, const Bilangan&);
Bilangan& operator=(const Bilangan&);
Bilangan operator+(const Bilangan&) const;
Bilangan operator-()const;
private :
int a;
float b;
};
b. Konstruktor
Bilangan(int a0=0, float b0=0.0): a(a0),b(b0){}
c. Method
void banding_int(const Bilangan&, const Bilangan&);
d. Data Member
int a;
float b;
e. Operator overloading as a friend although class member
Bilangan& operator=(const Bilangan&)
Bilangan operator+(const Bilangan&) const;
Bilangan operator-()const;