#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;
}
Rabu, 20 Oktober 2010
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
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";
}
Langganan:
Postingan (Atom)
.png)

