Pages

Selasa, 05 Oktober 2010

Pretest praktikum ke 2

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;
}

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;
         }

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;

Kuis pertemuan ke 3 SData

#include <cstdlib.h>
# include <iostream.h>
int main(int argc, char*argv[])
{
int n, nilai;
int total=0;
cout<<”Masukkan berapa banyak nilai yang mau dihitung: “;
cin>>n;
for (int i=0; i<n; i++){
cout<<”Masukkan nilai ke”<<i+1<<”: “;
cin>>nilai;
}
cout<< “Jumlah nilai yang dimasukkan=”<<total;
}
ask !!
Make a full program in OOP is have:
1. Class, there is a data member & member funtion
2. Konstruktor
3. I/O operator overloading
4. Use for to change the iterative part become to rekursif part