Praktikum 4
0
Berikut ini program yang dikerjakan pada praktikum 4,, mohon koreksi kembali yaa klo ada yang masih salah,,,, :p
#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 urut(); |
void hapus(); |
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<<”masukkan 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::urut(){ |
int temp; |
for(int j=0;j<=5;j++) |
{ |
for(int k=j+1;k<=5;k++) |
{ |
if(A[j]>A[k]) |
{ |
temp=A[j]; |
A[j]=A[k]; |
A[k]=temp; |
} |
} |
} |
} |
void Array1D::hapus(){ |
int posisi; |
cout<<”Pilih indeks berapa yang akan di hapus : “; |
cin>>posisi; |
if(posisi>0 && posisi<=5) |
A[posisi-1]=’O’; |
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; |
x.urut(); |
cout<<”Urutan elemen pada indeksnya saat ini : “<<x; |
x.hapus(); |
cout<<”Setelah dihapus menjadi : “<<x; |
system(“PAUSE”); |
return EXIT_SUCCESS; |
} |