Arsip

Archive for Oktober, 2010

postest praktikum struktur data-04

    >> Implementasi kelas array statis <<

    listing program sebelum di modifikasi :

    #include
    #include
    #define maks 5

    using namespace std;
    class Array1D{
    friend ostream& operator<>(istream&, Array1D&);
    public:
    Array1D();
    void cetak();
    void geser_kiri();
    void geser_kanan();
    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<>(istream& in, Array1D& X){
    int posisi;
    cout<<“Mengisi array pada posisi ke : “;
    for(int i=0; i>posisi;
    if(posisi > 0 && posisi <= maks){
    cout<<“Masukkan element array-nya : “;
    for(int i=0; i>X.A[posisi-1];
    }
    else
    cout<=0; i–)
    A[i+1] = A[i];
    A[0] = temp;
    }

    void Array1D::geser_kiri(){
    int n = maks;
    int temp = A[0];
    for(int i=0; i<n; i++)
    A[i] = A[i+1];
    A[n -1]= temp;
    }

    main(){
    Array1D X;
    cout << “Array masih kosong : ” <> X;
    cout << “Isi Array saat ini : ” << X;
    X.geser_kiri();
    cout << “Isi Array setelah digeser ke kiri : ” <<X;
    X.geser_kanan();
    cout << “Isi Array setelah digeser ke kanan : ” <<X;

    system(“PAUSE”);
    return EXIT_SUCCESS;
    }


    listing program yang sudah di modifikasi:

    #include
    #include
    #define maks5

    using namespace std;

    class Array1D{
    friend ostream& operator<>(istream&, Array1D&);
    public:
    Array1D();
    void cetak();
    void geser_kiri();
    void geser_kanan();
    void hapus_elemen();

    private:
    char A[5];
    };

    //konstrukstor
    Array1D::Array1D(){
    for(int i=0;i<5;i++)
    A[i]=’O’;
    }

    //methods yang sebetulnya tidak perlu ditulis
    //jika sudah ada overloading cout<<
    void Array1D::cetak(){
    for(int i=0;i<5;i++)
    cout<<A[i]<<” “;
    }

    //overloading fungsi cetak
    ostream& operator<<(ostream& out, const Array1D& x){
    for(int i=0;i<5;i++)
    out<<x.A[i]<<” “;
    out<>(istream& in, Array1D& x){

    //modifikasi untuk operator overloading
    //memasukkan nilai pada masing2 indeks secara terurut
    for(int i=0;i<5;i++){
    cout<<“masukkan nilai array ke-“<<i+1<>x.A[i];
    }

    /* badan fungsi sebelum di modifikasi
    int posisi;
    cout<>posisi;
    if(posisi>0 && posisi<=5){
    cout<>x.A[posisi-1];
    }
    else
    cout<=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=5;
    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<>posisi;
    if(posisi>0 && posisi<=5)
    A[posisi-1]=’O’;
    else cout<<“indeks hanya terdiri dari 1 – 5\n”;
    }

    //main fingsi
    int main(int argc, char *argv[])
    {
    Array1D x;
    cout<<“Array masih kosong : “<>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;
    }

    }

:: Semoga ini bisa bermanfaat ::

Kategori:Uncategorized

pretest praktikum struktur data -04



    1. Modifikasikanlah operator overloading input >> agar saat memasukan elemen yang baru, elemen array dalam keadaan terurut.
    penyelesaiannya :

    //overloading input
    istream& operator>>(istream& in, Array1D& x){

    //modifikasi untuk operator overloading
    //memasukkan nilai pada masing2 indeks secara terurut
    for(int i=0;i<5;i++){
    cout<<“masukkan nilai array ke-“<<i+1<>x.A[i];
    }

    /* badan fungsi sebelum di modifikasi
    int posisi;
    cout<>posisi;
    if(posisi>0 && posisi<=5){
    cout<>x.A[posisi-1];
    }
    else
    cout<<“Anda memasukkan posisi di luar range….!”;*/
    return in;
    }

    2. Buatlah method hapus elemen tertentu dari array. Namun sebelum di hapus,user di tanya lebih dulu elemen mana yang akan di hapus dengan menampilkan keadaan array pada saat itu !
    Penyelesaiannya :

    //methods yang di tambahkan untuk menghapus nilai dari indeks tertentu
    void Array1D::hapus_elemen(){
    int posisi;
    cout<>posisi;
    if(posisi>0 && posisi<=5)
    A[posisi-1]=’O’;
    else cout<<“indeks hanya terdiri dari 1 – 5\n”;
    }

    }

Kategori:Uncategorized

postest praktikum-2 struktur data


    #include <iostream.h>

    //template<class T>
    class Kompleks{
    friend class Operasi;
    friend ostream& operator<<(ostream&, const Kompleks&);
    friend istream& operator>>(istream&, Kompleks&);
    public:
    Kompleks(int s=0, int t=0):a(s),b(t){}
    void cetak();
    Kompleks operator-();
    Kompleks operator-(const Kompleks&);
    Kompleks operator+(const Kompleks&);
    Kompleks operator*(const Kompleks&);
    private:
    int a;
    int b;
    };

    //template<class T>
    void Kompleks::cetak(){
    if(b>0)cout<<“BILANGAN KOMPLEKS:”<<a<<“+”<<b<<“i”;
    else cout<<“BILANGAN KOMPLEKS:”<<a<<b<<“i”;
    cout<<endl;
    }
    //template<class T>

    Kompleks Kompleks::operator-(){
    Kompleks x;
    x.a=a;
    x.b=-b;
    return x;
    }

    //template<classT>
    Kompleks Kompleks::operator-(const Kompleks& m){
    Kompleks x;
    x.a=a-m.a;
    x.b=b-m.b;
    return x;
    }

    //template<class T>

    Kompleks Kompleks::operator+(const Kompleks& m){
    Kompleks x;
    x.a=a+m.a;
    x.b=b+m.b;
    return x;
    }

    Kompleks Kompleks::operator*(const Kompleks& m){
    Kompleks x;
    x.a=a*m.a;
    x.b=b*m.b;
    return x;
    }

    //template<class T>
    ostream& operator<<(ostream& out, const Kompleks& x){
    if(x.b==0) out<<‘[‘<<x.a<<‘]’;
    else if(x.a==0 && x.b==1)out<<‘[‘<<“i”<<‘]’;
    else if(x.a==0 && x.b==-1)out<<‘[‘<<“-i”<<‘]’;
    else if(x.a==0 && x.b>1)out<<‘[‘<<x.b<<“i”<<‘]’;
    else if(x.a==0 && x.b<-1)out<<‘[‘<<x.b<<“i”<<‘]’;
    else if(x.b==1)out<<‘[‘<<x.a<<“+”<<“i”<<‘]’;
    else if(x.b>0)out<<‘[‘<<x.a<<“+”<<x.b<<“i”<<‘]’;
    else if(x.b==-1)out<<‘[‘<<x.a<<“-i”<<‘]’;
    else out<<‘[‘<<x.a<<x.b<<“i”<<‘]’;
    return out;
    }

    //template <class T>
    istream& operator>>(istream& in, Kompleks&x){
    cout<<“MASUKAN BAGIAN REAL : “;
    in>>x.a;
    cout<<“MASUKAN BAGIAN IMAJINER : “;
    in>>x.b;
    return in;
    }

    //template <class T>
    class Operasi{
    public :
    Kompleks jumlah(const Kompleks&,const Kompleks&);
    Kompleks kali(const Kompleks&,const Kompleks&);
    Kompleks kurang(const Kompleks&,const Kompleks&);
    };

    //template <class T>
    Kompleks Operasi::jumlah(const Kompleks&m, const Kompleks& n){
    Kompleks temp;
    temp.a=m.a+n.a;
    temp.b=m.b+n.b;
    return temp;
    }

    //template <class T>
    Kompleks Operasi::kurang(const Kompleks&m, const Kompleks& n){
    Kompleks temp;
    temp.a=m.a-n.a;
    temp.b=m.b-n.b;
    return temp;
    }

    //template <class T>
    Kompleks Operasi::kali(const Kompleks&m, const Kompleks& n)
    {
    Kompleks temp;
    temp.a=(m.a*n.a)-(m.b*n.b);
    temp.b=(m.a*n.b)-(m.b*n.a);
    return temp;
    }

    int main (){
    Kompleks x(2,3),y(4,-4),t;
    Operasi z;
    cout<<“\nMENGGUNAKAN CETAK():\n”;
    x.cetak();

    cout<<“\nMENGGUNAKAN OVERLOADING :\n”<<x;
    cout<<“\nKonjugat :”<<-x<<endl;
    y.cetak();

    cout<<“\nPENJUMLAHAN MENGGUNAKAN METHODS :\n”;
    t=z.jumlah(x,y);
    t.cetak();

    cout<<“\nPENJUMLAHAN MENGGUNAKAN OPERATOR:\n”;
    t=x+y;
    cout<<x<<“+”<<y<<“=”<<t;
    cout<<“\nPERKALIAN MENGGUNAKAN METHODS:\n”;
    t=z.kali(x,y);
    t.cetak();

    cout<<“\nPERKALIAN MENGGUNAKAN OPERATOR:\n”;
    t=x*y;
    cout<<x<<“*”<<y<<“=”<<t;
    t=x-y;
    cout<<“\n”<<x<<“-“<<y<<“=”<<t<<endl;
    cout<<endl;
    Kompleks n;
    cin>>n;
    cout<<n;
    return 0;

    }

Kategori:Uncategorized