EnglishFrenchGermanSpainItalianDutchPortugueseRussianKoreanJapaneseArabic Chinese Simplified

Wednesday, October 6, 2010

Laporan Praktikum II Struktur Data

Tujuan dari praktikum pertemuan kedua ini, adalah kita disuruh untuk mengamati cara kerja konstruktor, operator overloading, fungsi template, serta cara kerja kelas friend.
Berikut jawaban post test praktikum kedua :


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

Artikel Terkait:

Comments :

0 comments to “Laporan Praktikum II Struktur Data”

Post a Comment

 

Copyright © 2009 by Learn Technology

Template by Blogger Templates | Powered by Blogger