Rabu, 20 Oktober 2010

Praktikum Struktur Data 4

  Post Test

Tentang Array 1 Dimensi, program ini mencakup sort bubble(mengurutkan array) dan menghapus sebuah array.

Silahkan dinikmati gan!!



#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;
}
Praktikum Struktur Data 3



Pre Test

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

}



Post Test

#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_float&); 
public: 
bil_float(int a0=0, int b0=0, float aa=0.0):Bilangan(a0,b0),c(aa){} 
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; 
out<<"Bilangan float: "<<x.c<<endl; 
return out; 
} 
void bil_float::banding_float(const bil_float& x, const bil_float& y){ 
if(x.a>y.b)cout<<x.a<<"::x lebih besar dari"<<y.a<<"::y"; 
else cout<<x.a<<"::x lebih kecil dari"<<y.a<<"::y"; 
} 
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; 
bil_float bf; 
cout<<"Nilai float\n"<<bf; 
system("PAUSE"); 
return EXIT_SUCCESS; 
}