#include <cstdlib>
#include <iostream>
#define maks10
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 hapus_elemen();
void urut();
private:
char A[10];
};
//konstrukstor
Array1D::Array1D(){
for(int i=0;i<10;i++)
A[i]='O';
}
//methods yang sebetulnya tidak perlu ditulis
void Array1D::cetak(){
for(int i=0;i<10;i++)
cout<<A[i]<<" ";
}
//overloading fungsi cetak
ostream& operator<<(ostream& out, const Array1D& x){
for(int i=0;i<10;i++)
out<<x.A[i]<<" ";
out<<endl;
return out;
}
//overloading input
istream& operator>>(istream& in, Array1D& x){
//modifikasi untuk operator overloading
//memasukkan nilai pada masing2 indeks secara terurut
for(int i=0;i<10;i++){
cout<<"masukkan nilai array ke-"<<i+1<<" : ";
in>>x.A[i];
}
/* badan fungsi sebelum di modifikasi
int posisi;
cout<<"Mengisi array posisi ke : ";
in>>posisi;
if(posisi>0 && posisi<=5){
cout<<"Masukkan elemen array-nya ; ";
in>>x.A[posisi-1];
}
else
cout<<"Anda memasukkan posisi di luar range....!";*/
return in;
}
//fungsi untuk menggeser semua nilai 1 indeks ke kanan
void Array1D::geser_kanan(){
int n=10;
int temp=A[n-1];
for(int i=n-1;i>=0;i--)
A[i+1]=A[i];
A[0]=temp;
}
//fungsi untuk menggeser semua nilai 1 indeks ke kiri
void Array1D::geser_kiri(){
int n=10;
int temp=A[0];
for(int i=0;i<n;i++)
A[i]=A[i+1];
A[n-1]=temp;
}
//menthods yang di tambahkan untuk menghapus nilai dari indeks tertentu
void Array1D::hapus_elemen(){
int posisi;
cout<<"\npilih indeks berapa yang akan di hapus :\n";
cin>>posisi;
if(posisi>0 && posisi<=10)
A[posisi-1]='O';
else cout<<"indeks hanya terdiri dari 1 - 10\n";
}
//main fingsi
int main(int argc, char *argv[])
{
cout <<"\nIkhwanul Sadli (09018148)\n"<<endl;
Array1D x;
cout<<"Array masih kosong : "<<x; //pemanggilan overloading output
cin>>x; //penggunaan overloading input
cout<<"Isi Array saat ini : "<<x;
x.geser_kiri(); //penggunaan fingsi
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;
}
Maksh bro atas programnya. :)
BalasHapus