Minggu, 31 Oktober 2010

Tugas sData queue

Nama : Desta Arianti
NIM : 09018291




#include <iostream>
#include <cstdlib>
#define maks 7
using namespace std;

class Queue{
      friend ostream& operator << (ostream&, const Queue&);
public :
       Queue();
       int penuh(int);
       int kosong(int);
       void cetak();
       void enqueue(char);
       char dequeue();
private :
        char A[maks];
        int banyak;
        };
            
ostream& operator << (ostream& out, const Queue& s)
{
 cout <<"\nIsi Queue:";
 for (int i=0; i<s.banyak; i++)
 out << s.A[i] << " ";
 }
      
Queue::Queue(){
 banyak = 0;
 for (int i=0; i<maks; i++)
 A[i]='0';
 }
    
 int Queue::penuh(int s)
 {return s==maks?1:0;}
    
 int Queue::kosong(int s)
 {return s==0?1:0;}
    
 void Queue::cetak()
 {cout <<"\nIsi Queue:";
 for (int i=0; i<banyak; i++)
 cout <<A[i]<<" ";
 }
 void Queue::enqueue(char x)
      {
      cout <<"\nElemen:"<<x<<"Masukkan Antrian";
      if (penuh(banyak)) cout <<"queue penuh";
      else if(A[0]=='0'){
      A[0]=x;
      banyak++;
      }
      else{
      for (int i=banyak; i>=0; i--)
      A[i+1]=A[i];
      A[0]=x;
      banyak++;
      }
      }
    
char Queue::dequeue()
     {
     char temp=A[--banyak];
     cout <<"\nDequeue elemen-->" <<temp;
     A[banyak]='0';
     return temp;
     }
        
    
int main()
{
    Queue q;
    for (char c='a'; c<'f'; c++)
    {
        q.enqueue(c);
        cout <<q;
        }
    char p=q.dequeue();
    q.cetak();
    cout <<"\n\nCetak pakai overloading:" <<q;
    cout<<"\n";
  
    system("PAUSE");
    return EXIT_SUCCESS;
}


Rabu, 27 Oktober 2010

praktikum Sdata ke-5, Rabu 09.00

#include <iostream.h>
template <class T>

class Array1D{
      friend ostream& operator<<(ostream&,const Array1D<T>&);
public:
       Array1D(int size=0);
       Array1D(const Array1D<T>& v);
       Array1D(){delete[]element;}
       T& operator[](int i)const;
       int Size(){return size;}
       Array1D<T>& operator =(const Array1D<T>& v);
       Array1D<T> operator+()const;
       Array1D<T> operator+(const Array1D<T>& v)const;
       Array1D<T> operator-()const;
       Array1D<T> operator-(const Array1D<T>& v)const;
       Array1D<T> operator*(const Array1D<T>& v)const;
       Array1D<T>&operator+=(const T& x);
       Array1D<T>& ReSize(int sz);
       Array1D<T>& geser_kanan();
       Array1D<T>& geser_kiri();
private:
        int size;
        T*element;
};
template <class T>
Array1D<T>::Array1D(int sz)
{
                         size =sz;
                         element=new T[sz];
}
template <class T>
Array1D<T>::Array1D(const Array1D<T>& v)
{
                           size = v.size;
                           element=new T[size];
                           for (int i=0;i<size;i++)
                           element[i]=v.element[i];
}
template <class T>
T& Array1D<T>::operator[](int i)const
{
                          return element[i];
}
template <class T>
Array1D<T>&Array1D<T>::operator =(const Array1D<T>& v)
{
                             if (this !=&v){
                                      size=v.size;
                                      delete[]element;
                                      element=new T[size];
                                      for(int i=0;i<size;i++)
                                      element[i]=v.element[i];
                                      }
                                      return *this;
}
template <class T>
Array1D<T>Array1D<T>::operator+(const Array1D<T>& v)const
{
             Array1D<T>w(size);
             for(int i=0; i<size;i++)
             w.element[i]=element[i]- v.element[i];
             return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-(const Array1D<T>& v)const
{
         Array1D<T>w(size);
         for(int i=0; i<size;i++)
         w.element[i]=element[i]+ v.element[i];
         return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-()const
{
          Array1D<T>w(size);
          for(int i=0; i<size;i++)
          w.element[i]=-element[i];
          return w;
}
template <class T>
Array1D<T>Array1D<T>::operator*(const Array1D<T>& v)const
{
         Array1D<T>w(size);
         for(int i=0; i<size;i++)
         w.element[i]=element[i]* v.element[i];
         return w;
}
template <class T>
Array1D<T>&Array1D<T>::operator+=(const T& x)
{
            for(int i=0; i<size;i++)
            element[i]+=x;
            return *this;
}
template <class T>
ostream& operator<<(ostream& out,const Array1D<T>& x)
{
            for(int i=0; i<x.size;i++)
            out<<x.element[i]<<" ";
            return out;
}
template <class T>
Array1D<T>&Array1D<T>::ReSize(int sz)
{
         delete[]element;
         size=sz;
         element=new T[size];
         return *this;
}
template <class T>
Array1D<T>&Array1D<T>::geser_kanan()
{
     int n = size;
     int temp = element[n-1];
     for (int i=n-1; i>=0; i--)
     element[i+1]=element[i];
     element[0]=temp;
}
template <class T>
Array1D<T>&Array1D<T>::geser_kiri()
{
     int n=size;
     int temp = element[0];
     for(int i=0; i<n; i++)
     element[i]=element[i+1];
     element[n-1]=temp;
    
}

int main()
{
    int X(10),Y,Z;
    for (int i=0; i<10; i++)
    X=i;
    cout<<" X = "<< X <<endl;
    cout<<" X is "<< X <<endl;
    Y=X;
    cout<<" Y is "<< Y <<endl;
    Y += 2;
    cout << " X incremented by 2 is " <<X<<endl;
    Z=(Y+X)*Y;
    cout<<"(Y+X)*y is " << Z <<endl;
    cout<< "-(Y+X)*Y is " << -Z <<endl;
    cout<<"setelah digeser kekanan :"<<(Y-X)*Y<<endl;
    cout<<"setelah digeser kekiri  :"<<(Y+X)<<endl;
    system("PAUSE");

}

Selasa, 19 Oktober 2010

postest ke 4

#include <cstdlib>
#include <iostream>
#define maks5
using namespace std;

class Array1D{
       friend ostream& operator<<(ostream&, const Array1D&);
       friend istream& operator>>(istream&, Array1D&);
public:
       Array1D();
       void cetak();
       void geser_kiri();
       void geser_kanan();
       void hapus_elemen();
private:
        char A[5];
};

Array1D::Array1D(){
                   for(int i=0;i<5;i++)
                   A[i]='O';
}

void Array1D::cetak(){
     for(int i=0;i<5;i++)
     cout<<A[i]<<" ";
}
ostream& operator<<(ostream& out, const Array1D& x){
         for(int i=0;i<5;i++)
         out<<x.A[i]<<" ";
         out<<endl;
         return out;
}
  
istream& operator>>(istream& in, Array1D& x){
       for(int i=0;i<5;i++){
                 cout<<"nilai array ke-"<<i+1<<" : ";
                 in>>x.A[i];
                 }
           return in;
}

void Array1D::geser_kanan(){
     int n=5;
     int temp=A[n-1];
     for(int i=n-1;i>=0;i--)
     A[i+1]=A[i];
     A[0]=temp;
}

void Array1D::geser_kiri(){
     int n=5;
     int temp=A[0];
     for(int i=0;i<n;i++)
     A[i]=A[i+1];
     A[5-1]=temp;
}

void Array1D::hapus_elemen(){
     int posisi;
     cout<<"Pilih indeks berapa yang akan di hapus : ";
     cin>>posisi;
     if(posisi>0 && posisi<=5)
     A[posisi-1]='0';
     else cout<<"indeks hanya terdiri dari 1 - 5\n";
}

int main()
{
    Array1D x;
    cout<<"Array masih kosong : "<<x;
    cin>>x;
    cout<<"Isi Array saat ini : "<<x;
    x.geser_kiri();
    cout<<"Isi Array setelah di geser kiri : "<<x;
    x.geser_kanan();
    cout<<"Isi Array setelah di geser kanan : "<<x;
    cout<<"Urutan elemen pada indeksnya saat ini : "<<x;
    x.hapus_elemen();
    cout<<"Setelah dihapus menjadi : "<<x;
    system("PAUSE");
    return 0;
}

Selasa, 28 September 2010

praktikum Sdata rabu 09.00


//DESTA ARIANTI
//09018291

#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;
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"<<y.a<<"::y";
     }
    
     Bilangan& Bilangan ::operator =(const Bilangan& x)
     {
               a=x.a;
               b=x.b;
               return *this;
               }
     istream& operator>>(istream& in ,Bilangan& x)
     {
              cout<<"\nMasukan bagian integer :";
              in>>x.a;
              cout<<"masukan 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 () {
          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<<"masukan nilai-nilai objek d";
          cin>>d;
          cout<<"setelah d +t =>\n"<<d+t;
          cout<<"nilai d dinegatifkan\n"<<-d;
          system ("PAUSE");
          return EXIT_SUCCESS;
          }

NAMA    : DESTA ARIANTI
NIM    : 09018291

3. A. KELAS
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
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"<<y.a<<"::y";
     }
    
     Bilangan& Bilangan ::operator =(const Bilangan& x)
     {
               a=x.a;
               b=x.b;
               return *this;

  C. METHOD
 int a;
        float b;
        };

  D. DATA MEMBER
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 ;

  E. OPERATOR OVERLOADING
      friend ostream& operator<<(ostream&, const Bilangan&) ;
      friend istream& operator>>(istream&, Bilangan&);