Selasa, 19 Oktober 2010

prak tikum 4 sdata

#include <iostream.h>
class Array1D{
friend ostream& operator<<(ostream&, const Array1D&);
friend istream& operator<<(istream&,Array1D&);
public:
       Array1D();
       void cetak();
       void geser_kiri();
       void geser_kanan();
       private:
               char A[maks];
               };
      Array1D :: Array1D()        
              
               {
                    for (int i=0; i<maks; i++)
                    A[i]='0';
                    }
                    void Array1D::cetak()
                    {
                             for (int i=0;i<maks;i++)
                             cout<<A[i]<<"";
                             }
                            
                             ostream&operator<<(ostream& out,const Array1D&x)
                             {
                                for (int i=0;i<maks;i++)
                             cout<<A[i]<<"";
                             cout<<endl;
                             return out;
                             }
                             istream& operator>.(istream&in,Array1D&x)
                             {int posisi;
                             cout<<"Mengisi array pada posisi ke:";
                             in>>posisi;
                             if(posisi>0&& posisi<=maks){
                             cout<<"masukan elemen array-nya:";
                             in>>x.A[posisi-1];
                             }
                             else
                             cout<<"Anda memasukan posisi di luar range..";
                             return in;
                             }
                            
                             {
                                    int n= maks;
                                    int temp=A[n-1];
                                    for (int i=n-1;i>=0;i--)
                                    A[i+1]=A[i];
                                    A[0]=temp;
                                    }
                                    {
                                              int n=maks;
                                              int temp = A[0];
                                              for (int i=0;i<n;i++)
                                              A[i]=A[i+1];
                                              A[n-1]=temp;
                                              }
                             main(){
                                    cout<<"Array masih kosong :"<<x;
                                    cin>>x;
                                    cout<<"Isi Array saat ini:"<<x;
                                    x.geser_kiri();
                                    x.geser_kanan();
                                    return 0;
                                    }
                                   
                                                                    

Selasa, 12 Oktober 2010

prak 3.sdata.07..rabu

#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;
      protected:
                int a;
                float b;
    
      };

ostream& operator<<(ostream& out, const bilangan& x){
        out<<"Bagian integer: "<<x.a<<endl;
        out<<"Bagian float: "<<x.b<<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;
        }

class bil_char:public bilangan{
      friend ostream& operator<<(ostream&, const bil_char&);
      public:
            bil_char(int a0=0, int b0=0,char ch='x'):bilangan(a0,b0),c(ch){}
      private:
              char c;
            };
          
ostream& operator<<(ostream& out,const bil_char& x){
        out<<"Bagian integer: "<<x.a<<endl;
        out<<"Bagian float: "<<x.b<<endl;
        out<<"Bagian char: "<<x.c<<endl;
        return out;
        }
      
int main(int argc, char *argv[])
{
    cout<<"sudarmono\08018203\n\n";
    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 diassign 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;
    bil_char ss;
    cout<<"Nilai awal ss\n"<<ss;
      
    system("PAUSE");
    return EXIT_SUCCESS;
}

Rabu, 06 Oktober 2010

postest 2.pratikum sdata...

#include <iostream>

template <class T>
class Kompleks{
    friend class Operasi<T>;
    friend ostream& operator<<(ostream&, const Kompleks<T>&);
    friend istream& operator>>(isteam&, Kompleks<T>&);
     
      public:
             Kompleks(T s=0, T t=0); a(s), b(t){}
             void cetak();
             Kompleks operator-();
             Kompleks operator-(const Kompleks<T>&);
             Kompleks operator+(const Kompleks<T>&);
            
      private:
              T a;
              T b;
              };
     
      template <class T>
      void Kompleks<T> Kompleks<T>::operator-()
      { Kompleks x;
        x.a=a;
        x.b=-b;
        return x;
        }
       
      template <class T>
      Kompleks<T> Kompleks<T>::operator-(const Kompleks<T>& m)
      { Kompleks x;
        x.a=a-m.a;
        x.b=b-m.b;
        return x;
        } 
      template <class T>
      Kompleks<T> Kompleks<T>::operator+(const Kompleks<T>& m)
      { Kompleks x;
        x.a=a+m.a;
        x.b=b+m.b;
        return x;
        } 
       
        template <classT>
        ostream& operator<<(ostream& out, const Kompleks<T>& 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, Lompleks<T>& x)
         {
                  cout<<"Masukkan bagian real:";
                  in>>x.a;
                  cout<<"Masukan bagian imajiner:";
                   in>>x.b;
                   return in;
                   }
                  
          template <class T>

class operasi{
     
      public:
             Kompleks<T> jumlah(const Kompleks<T>&, const Kompleks<T>&);
             Kompleks<T> kali(const Kompleks<T>&, const Kompleks<T>&);
             Kompleks<T> kurang(const Kompleks<T>&, const Kompleks<T>&);
            
      private:
              int x, y, z;
             };
            
      template<class T>
      Kompleks<T> operator<T>::jumlah(const Kompleks<T>& m, const Kompleks<T>& n)
      { Kompleks<T> temp;
      temp.a=m.a+n.a;
      temp.b=m.b+n.b;
      return temp;
}

      template <class T>
      Kompleks<T> operator<T>::kurang(const Kompleks<T>& m, const Kompleks<T>& n)
      {Kompleks<T> temp;
      temp.a=m.a-n.a;
      temp.b=m.b-n.b;
      return temp;
}
template<class T>
      Kompleks<T> operator<T>::kali(const Kompleks<T>& m, const Kompleks<T>& n)
      { Kompleks<T> 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(int argc, char *argv[])
{
    int n;
    Kompleks<int> x(2,3), y(4,-4), t;
    operasi<int> z;
    cout<<"Menggunakan cetak():";x.cetak();
    cout<<"menggunakan overloading:"<<x;
    cout<<"konjugat:"<<-x;
    y.cetak();
    cout<<"\nPenjumlahan menggunakan method:";
    t=z.jumlah(x,y);
    t.cetak();
    cout<<"Penjumlahan menggunakan operator:";
    t=x+y;
    cout<<x<<"+"<<y<<"="<<t;
    cout<<"\nPerkalian menggunkan method:";
    t=z.kali(x,y);
    t.cetak();
    cout<<"Perkalian menggunakan operator:";
    t=x*y;
    cout<<x<<"*"<<y<<"="<<t;
    t=x-y;
    cout<<"\n"<<x<<"-"<<y<<"="<<t<<endl;
    kompleks<int> n;
    cin>>n;
    cout<<n;
    return 0;
}