Rabu, 20 Oktober 2010

Praktikum Struktur Data 4

#include <cstdlib>
#include <iostream>
#define maks 5

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 sort();
       void hapus_elemen();
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<<x.A[i]<<"";
         cout<<endl;
         return out;
     }
istream& operator>>(istream& in, Array1D& x){
         int posisi, i;
         cout<<"masukkan 5 elemen array :"<<endl;
         for(int i=0;i<maks;i++){
         cout<<"elemenke ["<<i+1<<"] :";
         in>>x.A[i];
      
         }
         return in;
         }
void Array1D::sort(){
     int a, b, t;
     for(a=1; a < maks; a++)
    for(b=maks-1; b >= a; b--)
      if(A[b-1] > A[b]) {
        t = A[b-1];
        A[b-1] = A[b];
        A[b] = t;
}
}

void Array1D::geser_kanan(){
     int n=maks;
     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;
     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 z;
    cout<<"hapus indek ke : ";
    cin>>z;
    if(z>0 && z<=5)
        A[z-1]='O';
      
    else cout<<"diluar range\n";
}
  
int main(int argc, char *argv[])
{
    Array1D x;
    cout<<"Array masih kosong :"<<x;
    cin>>x;
    cout<<"Isikan Array saat ini :"<<x;
    x.geser_kiri();
    cout<<"Isikan Array setelah digeser ke kiri :"<<x;
    x.geser_kanan();
    cout<<"Isi Array setelah digeser ke kanan :"<<x;
    x.sort();
    cout<<"Isi Array setelah diurutkan :"<<x;
    x.hapus_elemen();
    cout<<"Array setelah dihapus : "<<x;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Senin, 11 Oktober 2010

TUGAS STRUKTUR DATA


Anggota kelompok :
     1. Adimas fajar S (09018225)
     2. Adnan Ilham Rifai (09018196)
     3. Nur kahfi Ibrahim (09018238)
     4. Bagus Raditya W (09018231)


1.       File Header C

#ifndef __matrik
#define __matrik
#include <iostream.h>
class Matrik{
      public:
             void baca_matrik();
             void matrik_iden();
             void determinan_inverse();
             void matrik_jumlah(const Matrik&, const Matrik&);
             void kurang_matrik(const Matrik&, const Matrik&);
             void perkalian_matrik(const Matrik&, const Matrik&);
             void assign_matrik(const Matrik&, const Matrik&);
             void cetak_matrik();
      private:
              int A[10][10];
              int baris, kolom;
};

void Matrik::baca_matrik(){
     lanjut:
         cout << "Banyak baris : ";
         cin >> baris;
         cout << "Banyak kolom : ";
         cin >> kolom;
        
         if(baris != kolom){
                    cout << "Maaf baris dan kolom harus sama\n";
                    goto lanjut;
                    }
     int i, j;
    
     for(i=0; i<baris; i++)
              for(j=0; j<kolom; j++){
                       cout << "Data[" << 1+i << "," << 1+j << "]:";
                       cin >> A[i][j];
                       }
};
void Matrik::matrik_iden(){
     int i, j;
     cout << "baris : ";
     cin >> baris;
     cout << "kolom : ";
     cin >> kolom;
     cout<<endl;
     cout<<"matrik Identitas"<<endl;
     for(i=0; i<baris; i++){
              for(j=0; j<kolom; j++)
                       if(i==j) A[i][j]=1;
                       else A[i][j]=0;
                       }
     for(i=0; i<baris; i++){
              for(j=0; j<kolom; j++)
                       cout << A[i][j] << "\t";
                       cout << endl;
                       }
}
void Matrik::determinan_inverse(){
   
     if((baris==2)&&(kolom==2)){
     int det;
     int a, b, c, d;
     det=(A[0][0]*A[1][1])-(A[0][1]*A[1][0]);
     cout << "Determinan : " << det << endl;
     a=A[0][0]*det;
     b=-A[0][1]*det;
     c=-A[1][0]*det;
     d=A[1][1]*det;
     cout<<endl;
     cout << "Inverse Matrik\n";
     cout << d << "\t" << b << endl;
     cout << c << "\t" << a << endl;
                }
     else cout << "Maaf saat ini hanya matrik 2x2" << endl;
   
}
void Matrik::matrik_jumlah(const Matrik& matrik1, const Matrik& matrik2){
     int i, j;
     baris=matrik1.baris;
     kolom=matrik1.kolom;
     for(i=0; i<baris; i++)
              for(j=0; j<kolom; j++)
                       A[i][j]=matrik1.A[i][j]+matrik2.A[i][j];
}
void Matrik::kurang_matrik(const Matrik& matrik1, const Matrik& matrik2){
     for(int i=0; i<matrik1.baris; i++)
             for(int j=0; j<matrik1.kolom; j++)
                     A[i][j]=matrik1.A[i][j]-matrik2.A[i][j];
                    
}
void Matrik::assign_matrik(const Matrik& matrik1, const Matrik& matrik2){
      for(int i=0; i<matrik1.baris; i++){
             for(int j=0; j<matrik1.kolom; j++)
                     matrik1.A[i][j]==matrik2.A[i][j];
                     }
}
void Matrik::cetak_matrik(){
     int i, j;
     for(i=0; i<baris; i++){
              for(j=0; j<kolom; j++)
                       cout << A[i][j] << "\t";
                       cout << endl;
                       }
}

#endif

2.       Main fungsi

#include <cstdlib>
#include <iostream>
#include "matrik.h"

using namespace std;

int main(int argc, char *argv[])
{
    int pil;
    Matrik A, B, C;
    Matrik hasil;
    cout << "\t\t\tSelamat Datang di Program Kami\n";
    cout <<"\t\t\t------------------------------\n";
    cout <<"Anggota Kelompok :\n";
    cout <<"1. Adimas Fajar S <09018225>\n";
    cout <<"2. Adnan Ilham Rifai <09018196>\n";
    cout <<"3. Nur kahfi Ibrahim <09018238>\n";
    cout <<"4. Bagus Raditya Wardana <09018231>\n\n";
    cout << "Matrik Bujur Sangkar (2x2)\n";
    A.matrik_iden();
    cout<<endl;
    cout << "Masukan data matrik ordo2x2 \n";
    A.baca_matrik();
    cout<<endl;
    A.cetak_matrik();
    cout << "Determinan Matrik dan Inverse\n";
    A.determinan_inverse();
    cout << "\nOperasi-operasi matriks\n\n";
    cout << "Matrik 1\n";
    B.baca_matrik();
    cout<<endl;
    B.cetak_matrik();
    cout<<endl;
    cout << "Matrik 2\n";
    C.baca_matrik();
    cout<<endl;
    C.cetak_matrik();
    cout<<endl<<endl;
    cout << "Penjumlahan\n";
    hasil.matrik_jumlah(B, C);
    hasil.cetak_matrik();
    cout<<endl;
    cout << "Pengurangan\n";
    hasil.kurang_matrik(B, C);
    hasil.cetak_matrik();
    cout<<endl<<endl;
    cout << "Memindah isi matrik\n";
    hasil.assign_matrik(B, C);
    C.cetak_matrik();
   
    system("PAUSE");
    return EXIT_SUCCESS;
}


Hasil Compile






Praktikum Struktur Data 3

NUR KAHFI IBRAHIM
09018238


POSTEST
Header File
#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_float(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_float:public Bilangan{
      friend ostream& operator<<(ostream&, const Bil_float&);
                public:
                                Bil_float(int a0=0, int b0=0, float ft='3,14'):Bilangan(a0,b0), c(ft){}
                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 float:"<<x.c<<endl;
        return out;
         }

Main function
#include <iostream>

using namespace std;

int main(){
     Bilangan s,t(-2,3.14),d;
     cout<<"Nilai awal s sebelum deklarasi\n"<<s;  
     cout<<endl;       //operator biner << output
     cout<<"Nilai awal t setelah deklarasi\n"<<t;
     s=t;                                //operator biner =
     cout<<endl;
     cout<<"Setelah s di-assaign t\n";
     cout<<"Nilai s\n"<<t;
     cout<<endl;
     cout<<"Masukkan nilai-nilai objek d";
     cin>>d;                     //operator >> input
     cout<<endl;
     cout<<"Setelah d + t => \n"<<d+t;  //operator biner + 
     cout<<endl; 
     cout<<"Nilai d dinegatifkan\n"<<-d;    //operator uner -
     Bil_float ss;
     cout<<endl;
     cout<<"Nilai awal ss\n"<<ss;           //operator biner << output
    
     system ("PAUSE");
     return 0;
}






PRETEST
1. class Bil_float:public Bilangan{
      friend ostream& operator<<(ostream&, const Bil_float&);
                public:
                                Bil_float(int a0=0, int b0=0, float ft='3,14'):Bilangan(a0,b0), c(ft){}
                private:
                                float c;
                                };

2. Bil_float(int a0=0, int b0=0, float ft='3,14'):Bilangan(a0,b0), c(ft){}

3. ostream& operator<<(ostream& out, const Bil_float& x){
         out<<"Bagian integer:"<<x.a<<endl;
         out<<"Bagian float:"<<x.b<<endl;
         out<<"Bagian float:"<<x.c<<endl;
         return out;
         }

   istream& operator>>(istream& in, Bilangan& x){
         cout<<"\nMasukkan bagian integer:";
         in>>x.a;
         cout<<"Masukkan bagian float:";
         in>>x.b;
         return in;
         }

4. void Bilangan::banding_float(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";
     }