Rabu, 08 Desember 2010

prak 6 s-data" LINK LIST "

#include
#include

using namespace std;

class node{
      friend class list;
      friend ostream& operator<<(ostream&, const list&);
      public:
             node(char &t,node *p):info(t),berikut(p){}
      protected:
                char info;
                node *berikut;
      };
    

      class list{
            friend ostream& operator<<(ostream&,const list&);
            public:
                   list():kepala(0){}
                   ~list();
                   void sisip(char t);
                   int hapus(char& t);
                   int hapusbelakang(char& t);
                   int kosong(){return(kepala==0);}
                   void cetak();
            protected:
                      node *kepala;
                      node *nodebaru(char& t, node*p){
                              node *q=new node(t,p);return q;}
            };
    
          
  
      ostream& operator<<(ostream& out, const list& k){
               for(node* p=k.kepala;p;p=p->berikut)
               out<info<<" ->";               out<<"*\n";
               return out;
               }
              

      list::~list(){
      node* temp;
      for(node* p=kepala;p;){
            
            temp=p;
            p=p->berikut;
            delete temp;
            }
                       }
                      
      void list::sisip(char t){
           cout<<<" masuk list : ";
           node *p=nodebaru(t,kepala);
           kepala=p;
           }
          
     int list::hapus(char& t){
          if(kosong())return 0;
          t=kepala->info;
          node* p=kepala;
          kepala=kepala->berikut;
          cout<<
          delete p;

          return 1;
          }
       int list::hapusbelakang(char& t){
          if(kosong())return 0;
          t=kepala->info;
          node*p=kepala;
          kepala=kepala->berikut;
          delete p;
          return 1;
          }  
    
              void list::cetak(){
           for(node* p=kepala;p;p=p->berikut)
           cout<info<<" ->";           cout<<"*\n";
           }


int main(int argc, char *argv[])
{
    list x;
    char data;
    x.sisip('c');
    cout<
    x.sisip('b');
    cout<
    x.sisip ('e');
    cout<
    x.sisip('a');
    cout<
    x.sisip('d');
    cout<
  
  //  for(int i=0;i<6;i++){
  //          x.hapus(data);
    //        cout<<<" dihapus dari list: ";
    //        cout<
    //        }
  
    system("PAUSE");
    return EXIT_SUCCESS;
}

mencari colume kubus,, balok, dan tabung menggunakan fungsi c++

#include
#include

using namespace std;

float kubus(){
int s;
cout<<"masukkan sisinya : ";cin>>s;
int luas=s*s*s;
cout<<"volum kubus adalah: "<<
return s*s*s;
}

float balok(){
int p,l,t;
cout<<"masukkan panjang : ";cin>>p;
cout<<"masukkan lebar : ";cin>>l;
cout<<"masukkan tinggi : ";cin>>t;
int volume=p*l*t;
cout<<"volum balok adalah: "<<
return p*l*t;
}

float tabung(){
int r,T;
cout<<"masukkan jari-jari : ";cin>>r;
cout<<"masukkan tinggi : ";cin>>T;
float votab=3.14*r*r*T;
cout<<"volum tabung adalah: "<<
//return Phi*r*r*t;
}

int main(int argc, char *argv[])
{
  
kubus();
balok();
tabung();
    system("PAUSE");
    return EXIT_SUCCESS;
}

Senin, 01 November 2010

Tugas Antrian ( Queue) s-data 1

Queue (antrian) merupakan kumpulan data di mana pemasukan data dilakukan di belakang (rear), dan penghapusan dilakukan pada element yang berada di depan (front). prinsip dasar antrian adalah yang datang terlebih dahulu maka akan dilayani terlebih dulu (FCFS) Frist come Frist Serve. contoh dalam kehidupan sehari-hari adalah : pembayaran rekening telepon, fasilitas print spool (antrian mencetak ) pada jaringan komputer, dan pembelian tiket bioskop

contoh programnya :

   
    #include
    #include
    #define maks 5
    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 :
    int banyak;
    char A[maks];
    };
   
    ostream& operator << (ostream& out, const Queue& s)
    {
    cout <<"\nIsi Queue:";
    for (int i=0; i
    out << s.A[i] << " ";
    }
   
    Queue::Queue(){
    banyak = 0;
    for (int i=0; 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
    cout <<<" ";
    }
    void Queue::enqueue(char x)
    {
    cout <<"\nElemen:" <<<"Masuk 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];
    for (int i=banyak; i>=0; i--){
    cout <<"\nDequeue elemenke-" <<< " ";
    for (int i=banyak; i>=0; i--){
    cout<< A[i]<< " ";}
    A[i]='0';
   
    }
    return temp;
    }
   
    main()
    {
    Queue q;
    for (char c='a'; c<'j'; c++)
    {
    q.enqueue(c);
    cout <
    }
    char p=q.dequeue();
    q.cetak();
    cout <<"\nCetak pakai overloading:" <
   
    system("PAUSE");
    return EXIT_SUCCESS;
    }

" Stack "

Stack adalah (tumpukan) setruktur yang mempunyai sifat LIFO(Last In Frist Out), yaitu yang masuk terakhir maka akan keluar duluan. Dalam kehidupan sehari-hari dapat kita jumpai contoh stack seperti : tumpukan buku, buku telepon, dan tupukan koin uang logam.Ada dua operas yang di gunakan didalam stack yaitu push(untuk memasukkan suatu nilai/ element di dalam stack) dan pop (untuk mengeluarkan suatu nilai/ elemen di dalan stack)


#include
#include

using namespace std;

class Stack{
public:
Stack(){
jum = 5;//jumlah array
last = 0;
}

void push(int data){
if(jum > last){
a[last] = data;
last = last + 1;
}
}

int pop(){
if(last > 0){
int temp = a[last - 1];
a[last - 1] = 0;
last = last - 1;
return temp;
}
}
//untuk mencetak
void print(){
for(int i = 0; i < last; i++){
cout << a[i] << " ";
}
}
//untuk mendeklarasikan
private:
int a[5];
int jum;
int last;
};

int main(int argc, char *argv[])
{
Stack x;
x.push(2);//untuk memasukkan data(2)
x.push(4);
x.push(11);
x.push(5);
x.push(7);
x.push(9);
x.push(30);
x.print();
cout<

x.pop();//untuk mengeluarkan data(2)sehingga dibuang tidak ditampilkan
x.print();
cout<
x.pop();
x.print();
cout<
x.pop();
x.print();
cout<
x.pop();
x.pop();
x.pop();
x.print();
cout<

system("PAUSE");
return EXIT_SUCCESS;
}

Membuat class " Node "



Class node:
#include
#include

using namespace std;
class node{
      public:int data;
             node*next;
            
};

int main(int argc, char *argv[])
{   node*a;
    a= new node;
    a->data=5;
    a->next=new node;
    a->next->data=7;
   
    cout<next->data;
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

Review Materi C++ " Array "



Array matriks :

#include

using namespace std;
void baca (int a[4][4]);
void tulis (const int a[4][4]);
int main(int argc, char *argv[])
{   int a[4][4];
    baca (a);
    tulis(a);
    return 0;
}
    void baca (int a[4][4]){
    cout<<"Masukan 16,4 bil perbaris:\n";
    for (int i=0;i<4;i++){
   
    for (int j=0;j<4;j++)
    cin>>a[i][j];}
}
void tulis (const int a[4][4]){
      for (int i=0;i<4;i++){
      for (int j=0;j<4;j++)
      cout<
      cout<
      }
     
}


Array pointer :
#include
#include

using namespace std;

int main(int argc, char *argv[])
{   int *a;
        a= new int [3];
        a[0]=4;
        a[1]=9;
        a[2]=3;
    cout<<" munculkan nilai semua array: "<
    for(int x=0;x<3;x++){
     cout<< "a ["<<<"] = "<<
     cout<<"cetak nilai index 2 = "<<
     cout<<"akhirnya keluar juga!!!!"<
   
    system("PAUSE");
    return EXIT_SUCCESS;
}


Array class :
#include
#include


using namespace std;

class arrayy(){
          public: arrayy();
                  void kurang_satu();
                  void cetak_array();
                 
          private: int n;
                   int a[10];
                  
};

  arrayy::arrayy(){
     n=10;
     for(i=0;i
     a[i]=i+1;
     }
  void arrayy::kurang_satu(){
     for(i=0;i
     a[i]--;
     }
  void arrayy::cetak_array(){
     for(i=0;i
     cout<<"nilai index ke["<<<"] adalah : "<<
     getch();}
    
int main(int argc, char *argv[])
{  
  
    
     void main(){
     arrayy x;
     cout<<"nilai array asal adalah : "<
     x.cetak_array();
     x.kurang_satu();
     cout<<"setelah dikurang satu menjadi : "<
     x.cetak_array();
              
   
   
   
   
   
   
    system("PAUSE");
    return EXIT_SUCCESS;
}



Review Materi C++ " Loop"


Perulangan for :
#include
#include

using namespace std;

int main(int argc, char *argv[])
{  
    int x,y;
    int jum=0;
        cout<<"silahkan masukkan  angka yg akan dijumlahkan : ";cin>>y;
        for(int x=0;x<=y;x++){
   
        jum+=x;
        }
        cout<<"hasil penjumlahan bilangan adalah: "<<
        cout<<"good luck"<
       
    system("PAUSE");
    return EXIT_SUCCESS;
}


Perulanggan While:
#include
#include

using namespace std;

int main(int argc, char *argv[])
{  
   
    int y;
    int jum=0;
        
        cout<<"silahkan masukkan  angka yg akan dijumlahkan : ";cin>>y;
       
        int x=1;
          
    while(x<=y){jum+=x;
                cout<<"hasil penjumlahan bilangan adalah: "<<
           x++;  }
          
       
        cout<<"good luck"<
       
    system("PAUSE");
    return EXIT_SUCCESS;
}

Perulangan do while:
#include
#include

using namespace std;

int main(int argc, char *argv[])
{  
   
    int y;
    int jum=0;
        
        cout<<"silahkan masukkan  angka yg akan dijumlahkan : ";cin>>y;
       
        int x=1;
          
    do {jum+=x;
                cout<<"hasil penjumlahan bilangan adalah: "<<
           x++;  }
          
        while(x<=y);
        cout<<"good luck"<
       
    system("PAUSE");
    return EXIT_SUCCESS;
}

Review Materi C++ " Steatment if-else-else if-switch case


seteatment if-else-else if :

#include
#include

using namespace std;

int main(int argc, char *argv[])
{    int x;cout<<"x : ";cin>>x;
     if(x==0,x<=5)
     cout<<" data 0-5 berhasil di cetak "<
     else if(x==6,x<=10)
     cout<<" data 6-10 berhasil di cetak "<
     else if(x==11,x<=15)
     cout<<" data 11-15 berhasil dicetak "<
     else if(x==16,x<=20)
     cout<<" data 16-20 berhasil dicetak "<
     else
     cout<<"gagal di cetak"<
    
   
    system("PAUSE");
    return 0;
}

switch case - nama bulan :

#include
#include

using namespace std;

int main(int argc, char *argv[])
     int x;cout<<" Masukan anka X untuk mencri nama bulan : "<<<"X = ";cin>>x;


    switch (x){
    case 1:
         cout<<"January "<
         break;
        
    case 2:
         cout<<"Februari"<
         break;
        
    case 3:
         cout<<"Maret "<
         break;
        
    case 4:
         cout<<"April "<
         break;
        
    case 5:
         cout<<"Mei "<
         break;
    case 6:
         cout<<"Juni "<
         break;
    case 7:
         cout<<"July "<
         break;
    case 8:
         cout<<"Agustus "<
         break;
    case 9:
         cout<<"September "<
         break;
    case 10:
         cout<<"Oktober"<
         break;
    case 11:
         cout<<"November "<
         break;
    case 12:
         cout<<"Desember"<
         break;
          
    default:
         {  
         cout<<"Nama Bulan tidak tersedia "<
         break;
         }  
}
 
    system("PAUSE");
    return EXIT_SUCCESS;
}

Sabtu, 30 Oktober 2010

Pointer Dasar

CARA PENULISAN POINTER:

1. Pointer to integer a
int*a;

2. Isilah data a dengan 5
a= new int;
*a= 5;

3. Buatlah integer b
int b;

4. Isilah data b dengan 7
b= 7;

5. Buat lah a menuju b (alamatnya)
a= &b;

6. Buatlah a menuju b (nilainya)
*a= b;


UNTUK MENCETAK HASIL

1. Pointer a
Cout<< *a ;

2. Integer b
Cout<< b ;

3. Alamat b
Cout<< &b ;

LATIHAN :

int c ;
c= 7;
int *d ;
d= new int;
*d= 10;
int *e ;
e= new int ;
*e= 4 ;
*d= c ;
*e= *d ;
d= &c;
e= d ;

Jumat, 29 Oktober 2010

Kumpulan Preetest Prak S-Data 01 - 05

PREETEST PRAK 01 :

jawaban :
klas
=> kalas adalah bahasa pemrogaman yg berorien tasi pada suatu objek
     pada program tersebut class disa na berfungsi untuk mamaparkan suaru objek bilangan dengan nama         kelas Bilangan. klas diatas manginisialisasikan 2 jenis bilangan bilagan genap mengunakan int dan bilangan desimal mengunakan float,.,,


konstruktor
=>Nama fungsi yg namanya sama dengan nama kelassnya ,...
pada perogram diatas yg merupakan bagian dari konstruktornya adalah
class Bilangan{
      friend ostream& operator<<(ostream&, const Bilangan&);///// ini adalah konstruktor
      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;

Method
=> method adalah fungsi yg ada pada kalas
   method pada program diatas adalah
   void banding_int(const Bilangan&, const Bilangan&);
             Bilangan& operator=(const Bilangan&);
             Bilangan operator+(const Bilangan&)const;
             Bilangan operator-()const;
   
  


Data mamber
=> private:
                     int a;
                     float b;


ovaeloding sebagai anggota kelas
adalah=  ostream& operator<<(ostream& out, const Bilangan& x)
         {out<<"Bagian integer: "<<x.a<<endl;
         out<<"Bagian float : "<<x.b<<endl;
         return out;


overloading sebagai friend adalah

adalah Bilangan& Bilangan::operator=(const Bilangan& x)
      {a=x.a;
      b=x.b;
      return*this;
      }  


PREETEST PRAK 02:

jawaban :
Class Kompleks    //ini adalah nama kelas
{
Public :
Kompleks (int a);//konstuktor dari kelas dengan 1 parameter yaitu data member a
} Operasi Operasi :: Operator * (const Operasi& m){
Operasi f; f.a = a* m.a;
return f;}



PREETEST  PRAK 03 :

jawaban :
class Bil_Float:public Bilangan
{
friend ostream& operator<<(ostream&, const Bil_Float&);
friend istream& operator>>(istream&,Bil_Float&);
public:
Bil_Float(int a0=0, int b0=0, char ch=’x'):Bilangan(a0,b0),c(ch){}
void banding_Float(const Bil_Float&, const Bil_Float&);
private:
float c;
};
ostream& operator<<(ostream& out, const Bil_Float& x)
{
out<<”Bagian integer : “<<x.a<<endl;
out<<”Bagian float   : “<<x.b<<endl;
out<<”Bagian char    : “<<x.c<<endl;
return out;
}
istream& operator>>(istream& in,Bil_Float& x)
{
cout<<”\nMasukkan bagian Integer : “;
in>>x.a;
cout<<”\nMasukkan bagian float   : “;
in>>x.b;
return in;
}
void Bil_Float::banding_Float(const Bil_Float& x,const Bil_Float& 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”;
}

PREETEST PRAK 04 :

jawaban :
 no 1. istream&amp; operator>>(istream&amp; in, Array1D&amp; x){
       
      
         for(int i=0;i<5;i++){
                 cout<<"nilai array ke-"<<i+1<<" : ";
                 in>>x.A[i];
                 }
                
         return in;
}

no 2. void hapus_elemen();

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

jawaban :
void geser_kiri();

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

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

Materi Postfix, Perfix, dan Infix

NOTASI POSTFIX
Dalam struktur data yang banyak dipelajari, kita ketahui adanya 3 notasi operasi yang dilakukan untuk suatu operasi aritmatika, yaitu prefix, infix, dan postfix.
Sebelum kita kupas mengenai notasi di atas, perlu dipahami terlebih dahulu indikator yang membentuk terjadinya notasi dalam struktur data. Notasi terbentuk dari operand dan operator. Operand adalah data atau nilai yang membantu dalam proses sedangkan operator adalah fungsi yang digunakan dalam proses.
Contoh :
A + B * C
2 + 3 * 5
Keterangan : A, B, C, 2, 3, 5 adalah operand
+, * adalah operator
Ok,sekarang kita akan mencoba mengetahui operasi yang digunakan dalam perhitungan:
1. ^ (pangkat)
2. * (kali) atau / (bagi)
3. + (jumlah) atau – (kurang)
Seperti yang telah dibahas di awal, diketahui notasi pada struktur data terdiri atas 3 macam, yaitu
1. Prefix
yaitu notasi yang terbentuk atas operator dengan operand, dimana operator berada didepan operand.
Contoh :
A + B * C (Infix)
maka notasi prefixnya adalah   +A*BC
Pemecahannya :
A  +  B  *  C
diketahaui ada 3 operand yaitu : A, B, C, dan 2 operator yaitu : +, *. Proses dimulai  dengan melihat dari hirarkhi operator. Contoh diatas operator yang tertinggi adalah * kemudian +.
Tanda * diapit oleh dua operand yaitu B dan C yaitu B * C , prefixnya dengan menggabungkan operand dan memindahkan operator kedepan dari operand, sehingga fungsi B * C, notasi prefixnya menjadi *BC. Sehingga hasil sementara dari notasi prefix adalah
A + *BC
selanjutnya mencari prefix untuk operator yang berikutnya, yaitu +, cara yang dilakukan sama seperti di atas, operator +, diapit oleh 2 operand, yaitu A dan *BC, gabungkan operand, sehingga menjadi A*BC, lalu pindahkan operator kedepan operand, sehingga hasil akhir menjadi
+ A * B C
2. Infix
yaitu notasi yang terbentuk atas operator dengan operand, dimana operator berada diantara operand. Notasi ini hanya dikenal oleh manusia dan selalu digunakan dalam perhitungan aritmatika.
Contoh :
A + B * C
( A + B ) * C
A – ( B + C ) * D ^ E
3. Postfix
yaitu notasi yang terbentuk atas operator dengan operand, dimana operator berada dibelakang operand. Notasi ini hanya dikenal oleh processor dan dipahami dalam ALU.
Contoh :
A + B * C (Infix)
maka notasi postfixnya adalah   ABC*+
Pemecahannya :
A  +  B  *  C
diketahaui ada 3 operand yaitu : A, B, C, dan 2 operator yaitu : +, *. Proses dimulai  dengan melihat dari hirarkhi operator. Contoh diatas operator yang tertinggi adalah * kemudian +.
Tanda * diapit oleh dua operand yaitu B dan C yaitu B * C , postfixnya dengan menggabungkan operand B dan C menjadi BC lalu memindahkan operator ke belakang operand C, sehingga fungsi B * C, notasi postfixnya menjadi BC*. Sehingga hasil sementara dari notasi postfix adalah
A + BC*
selanjutnya mencari postfix untuk operator yang berikutnya, yaitu +, cara yang dilakukan sama seperti di atas, operator +, diapit oleh 2 operand, yaitu A dan BC*, gabungkan operand tersebut, sehingga menjadi ABC*, lalu pindahkan operator + ke belakang operand ABC*, sehingga hasil akhir menjadi

Prak 5 S-Data " ARRAY DINAMIS C++ "

// Wadipta Lingga
//090 18 260

#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]; // get space
                           for (int i=0;i<size;i++)// copy elements
                           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");
}

Rabu, 20 Oktober 2010

Prak 4 S-Data " ARRAY STATIS C++ "

//wadipta lingga
//090 18 260


#include <cstdlib>
#include <iostream>
#define maks5

using namespace std;

class Array1D{
      friend ostream&amp; operator<<(ostream&amp;, const Array1D&amp;);
      friend istream&amp; operator>>(istream&amp;, Array1D&amp;);
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&amp; operator<<(ostream&amp; out, const Array1D&amp; x){
         for(int i=0;i<5;i++)
         out<<x.A[i]<<" ";
         out<<endl;
         return out;
}
       


istream&amp; operator>>(istream&amp; in, Array1D&amp; 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[n-1]=temp;
//}


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


int main(int argc, char *argv[])
{
    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 EXIT_SUCCESS;
}

Kamis, 14 Oktober 2010

Prak 2 S-Data " Konstruktor dan Template C++ "

#include <cstdlib>
#include <iostream>


using namespace std;
class Operasi;

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&);
private:
int a;
int b;
};

void Kompleks::cetak(){


if(b>0) cout << "Bilangan Kompleks : " << a << "+" << b << "i";
else cout << "Bilangan kompleks : " << a << b << "i";
cout << endl;
}

Kompleks Kompleks::operator-(){
Kompleks x;
x.a=a;
x.b=-b;
return x;
}

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

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>1) out << '[' << x.a << "+" << x.b << "i" << ']';
else if (x.b==-1) out << '[' << x.a << "-i" << ']';
else out << '[' << x.a << x.b << ']';
return out;
}

istream& operator>>(istream& in, Kompleks& x){
cout << "Masukan bagian real     : ";
in >> x.a;
cout << "Masukan bagian imajiner : ";
in >> x.b;
return in;
}

class Operasi
{
public:
void cetak();
Kompleks jumlah(const Kompleks&, const Kompleks&);
Kompleks kali(const Kompleks&, const Kompleks&);
Kompleks kurang(const Kompleks&, const Kompleks&);
private:
int a;
int b;
};
void Operasi::cetak(){
if(b>0) cout << "Bilangan Kompleks : " << a << "+" << b << "i";
else cout << "Bilangan kompleks : " << a << b << "i";
cout << endl;
}

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

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

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(int argc, char *argv[])
{
Kompleks x(2, 3), y(4, -4), t;
Operasi 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 menggunakan method : ";
t=z.kali(x, y);
z.cetak();
cout << "\nPerkalian menggunakan operator : ";

t-y;
cout << "\n" << x << "-" << y << "=" << t << endl;
Kompleks n;
cin >> n;
cout << n;
system("PAUSE");
return EXIT_SUCCESS;
}

Rabu, 13 Oktober 2010

Prak 3 S-Data '' INHERITANCE Dalam C++ ''

#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;
        }
       
   //     class bil_float:public bilangan{
     //         friend ostream& operator<<(ostream&, const bil_char&);
       //       public:
         //           bil_float()
      
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 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, 29 September 2010

#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;
      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<<"\nMasuk bagian integer:";
               in>>x.a;
               cout<<"Masuk 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 object d";
           cin>>d;
           cout<<"setelah d+t=> \n"<<d+t;
           cout<<"Nilai d dinegatifkan\n"<<-d;
           }




Ini untuk  jawaban not ped nya :::::::::::::

wadipta lingga
ni090 18 260

klas
=> kalas adalah bahasa pemrogaman yg berorien tasi pada suatu objek
   pada program tersebut class disa na berfungsi untuk mamaparkan suaru objek bilangan     dengan nama kelas Bilangan. klas diatas manginisialisasikan 2 jenis bilangan bilagan genap mengunakan int dan bilangan desimal mengunakan float,.,,


konstruktor
=>Nama fungsi yg namanya sama dengan nama kelassnya ,...
pada perogram diatas yg merupakan bagian dari konstruktornya adalah
class Bilangan{
      friend ostream& operator<<(ostream&, const Bilangan&);///// ini adalah konstruktor
      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;

Method
=> method adalah fungsi yg ada pada kalas
   method pada program diatas adalah
   void banding_int(const Bilangan&, const Bilangan&);
             Bilangan& operator=(const Bilangan&);
             Bilangan operator+(const Bilangan&)const;
             Bilangan operator-()const;
   
  


DAta mamber
=> private:
                     int a;
                     float b;


ovaeloding sebagai anggota kelas
adalah=  ostream& operator<<(ostream& out, const Bilangan& x)
         {out<<"Bagian integer: "<<x.a<<endl;
         out<<"Bagian float : "<<x.b<<endl;
         return out;


overloading sebagai friend adalah

adalah Bilangan& Bilangan::operator=(const Bilangan& x)
      {a=x.a;
      b=x.b;
      return*this;
      }