Arsip untuk Oktober, 2010

PRAKTIKUM 5

Posted: Oktober 27, 2010 in Uncategorized

#include <iostream.h>
template <class T>

class Array1D{
friend ostream& operator<<(ostream&,const Array1D<T>&);
public:
Array1D(int size=0);
Array1D(const Array1D<T>& v);
Array1D(){delete[]element;}
T& operator[](int i)const;
int Size(){return size;}
Array1D<T>& operator =(const Array1D<T>& v);
Array1D<T> operator+()const;
Array1D<T> operator+(const Array1D<T>& v)const;
Array1D<T> operator-()const;
Array1D<T> operator-(const Array1D<T>& v)const;
Array1D<T> operator*(const Array1D<T>& v)const;
Array1D<T>&operator+=(const T& x);
Array1D<T>& ReSize(int sz);
Array1D<T>& geser_kanan();
Array1D<T>& geser_kiri();
private:
int size;
T*element;
};
template <class T>
Array1D<T>::Array1D(int sz)
{
size =sz;
element=new T[sz];
}
template <class T>
Array1D<T>::Array1D(const Array1D<T>& v)
{
size = v.size;
element=new T[size]; // get space
for (int i=0;i<size;i++)// copy elements
element[i]=v.element[i];
}
template <class T>
T& Array1D<T>::operator[](int i)const
{
return element[i];
}
template <class T>
Array1D<T>&Array1D<T>::operator =(const Array1D<T>& v)
{
if (this !=&v){
size=v.size;
delete[]element;
element=new T[size];
for(int i=0;i<size;i++)
element[i]=v.element[i];
}
return *this;
}
template <class T>
Array1D<T>Array1D<T>::operator+(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]- v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]+ v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-()const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=-element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator*(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]* v.element[i];
return w;
}
template <class T>
Array1D<T>&Array1D<T>::operator+=(const T& x)
{
for(int i=0; i<size;i++)
element[i]+=x;
return *this;
}
template <class T>
ostream& operator<<(ostream& out,const Array1D<T>& x)
{
for(int i=0; i<x.size;i++)
out<<x.element[i]<<” “;
return out;
}
template <class T>
Array1D<T>&Array1D<T>::ReSize(int sz)
{
delete[]element;
size=sz;
element=new T[size];
return *this;
}
template <class T>
Array1D<T>&Array1D<T>::geser_kanan()
{
int n = size;
int temp = element[n-1];
for (int i=n-1; i>=0; i–)
element[i+1]=element[i];
element[0]=temp;
}
template <class T>
Array1D<T>&Array1D<T>::geser_kiri()
{
int n=size;
int temp = element[0];
for(int i=0; i<n; i++)
element[i]=element[i+1];
element[n-1]=temp;

}

int main()
{
int X(10),Y,Z;
for (int i=0; i<10; i++)
X=i;
cout<<” X = “<< X <<endl;
cout<<” X is “<< X <<endl;
Y=X;
cout<<” Y is “<< Y <<endl;
Y += 2;
cout << ” X incremented by 2 is ” <<X<<endl;
Z=(Y+X)*Y;
cout<<“(Y+X)*y is ” << Z <<endl;
cout<< “-(Y+X)*Y is ” << -Z <<endl;
cout<<“setelah digeser kekanan :”<<(Y-X)*Y<<endl;
cout<<“setelah digeser kekiri  :”<<(Y+X)<<endl;
system(“PAUSE”);
}

POSTEST KE-4

Posted: Oktober 20, 2010 in Uncategorized

#include <iostream>
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();

private:
char A[5];
int posisi;
};

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){
int posisi;
for (int posisi=1; posisi<=5; posisi++){
cout<<“masukkan nilai array posisi ke- : “;
in>>x.posisi;
if(posisi >= 0 && posisi <= 5)
{cout<<“masukkan elemen arraynya :”;
in>>x.A[posisi-1];}
}
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::hapus_elemen(){
int posisi;
cout<<“Pilih indeks berapa yg akan di hapus : “;
cin>>posisi;
if(posisi>0 && posisi<=5)
A[posisi-1]=’O’;
else cout<<“indeks yg anda masuukan salah karena indek hanya terdiri dari 1 – 5\n”;
}

int main(){
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;
cout<<“Urutan elemen pada indeksnya saat ini : ” <<x;
x.hapus_elemen();
cout<<“Setelah dihapus menjadi : ” <<x;

system(“PAUSE”);
return 0;
}

Sparkle Time

Posted: Oktober 13, 2010 in Uncategorized


More clock widgets at Widgia.com

PRKTIKUM KE-3

Posted: Oktober 13, 2010 in Uncategorized

Pretest
1. Buatlah kelas turunan Bil_float yang hanya mempunyai satu data member bertipe float. kelas bil_float diturunkan dari kelas bilangan

class bil_float:public bilangan{
friend ostream& operator<<(ostream&, const bil_float&);
friend istream& operator>>(istream&, bilangan&);
public:
bil_float(int a0=0, int b0=0, float ch=’x’):bilangan(a0,b0),c(ch){}
private:
float c;
};

2. Buatlah konstruktor dari kelas bil_float

bil_float(int a0=0, int b0=0, float ch=’x’):bilangan(a0,b0),c(ch){}

3. Buatlah operator overloading input dan output

ini implementasi untuk operator overloading output

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;
return out;
}

implementasi operator overloading input
istream& operator>>(istream& in,bil_float& x){
cout<<”\nMasukkan bagian integer: “;
in>>x.a;
cout<<”Masukkan bagian float: “;
in>>x.b;
return in;
}

4. Modifikasi method banding_int untuk membuat method banding_float pada kelas bil_float

void bilangan::banding_float(const bilangan& x, const bilangan& y){

if(x.c>y.c) cout<<x.c<<”x lebih besar dari “<<y.c<<”y”;

else cout<<x.c<<”x lebih kecil dari”<<y.c<<”y”;

}

Post Test

#include <iostream>
using namespace std;

class Bilangan {
friend ostream& operator<<(ostream&, const Bilangan&);
friend istream& operator>>(istream&, const 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<<“\nMasukkan 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;
}
#include <iostream>
#include “Bilangan.h”
using namespace std;

class Bil_Float:public Bilangan
{
friend ostream& operator<<(ostream&, const Bil_Float&);
friend istream& operator>>(istream&,Bil_Float&);
public:
Bil_Float(int a0=0, int b0=0, char ch=’x’):Bilangan(a0,b0),c(ch){}
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;
return out;
}

istream& operator>>(istream& in,Bil_Float& x)
{
cout<<“\nMasukkan bagian Integer : “;
in>>x.a;
cout<<“\nMasukkan bagian float   : “;
in>>x.b;
return in;
}

void Bil_Float::banding_Float(const Bil_Float& x,const Bil_Float& 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”;
}
#include <iostream>
#include “bilfloat.h”
using namespace std;
int main(){
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 di-assign t\n”;
cout<<“Nilai s\n”<<s;
cout<<“Masukkan nilai-nalai objek d”;
cin>>d;
cout<<“setelah d + t => \n”<<d+t;
cout<<“Nalai d dinegatifkan\n”<<-d;
Bil_Float ss;
cout<<“Nilai awal ss\n”<<ss;
system(“PAUSE”);
}

Praktikum 2

Posted: Oktober 11, 2010 in Uncategorized

#include <cstdlib>
#include <iostream>

using namespace std;
//template<clas 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 <clas T>
kompleks kompleks::operator-()
{
kompleks x;
x.a=a;
x.b=-b;
return x;
}
//  template <clas T>
kompleks kompleks::operator-(const kompleks& m)
{
kompleks x;
x.a=a – m.a;
x.b=b – m.b;
return x;
}
//  template <clas T>
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 << “Masukkan bagian real:”;
in>>x.a;
cout << “Masukkan bagian Imajiner:”;
in>>x.b;
return in;
}
//   template<class T>
class operasi{
public:
kompleks jumlah(const kompleks&, kompleks&);
kompleks kali(const kompleks&, kompleks&);
kompleks kurang(const kompleks&, 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::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::jumlah(const kompleks&m, const kompleks&n)
{
kompleks temp;
temp.a=(m.a*n.a)-(m.b*n.b);
temp.a=(m.a*n.b)-(m.b*n.a);
return temp;
}

int main()
{
kompleks x(2,3), y(4,-4),+;
operasi  z;
cout << “Menggunakan cetak():”; x.cetak();
cout << “Menggunakan overloadding():”<< x;
cout<<”konjugat:”<<-x;
y.cetak();
cout<<”\nPenjumlahan menggunakan methods:”;
+=z.jumlah(x,y);
+.cetak();
cout<<”Penjumlahan menggunakan operator:”;
+=x+y;
cout<<x<<”+”<<y<<”=”<<+;
cout<<”\nPerkalian menggunakan methods:”;
+=z.kali(x,y);
+.cetak();
cout<<”Perkalian menggunakan operator:”;
+=x*y;
cout<<x<<”*”<<y<<”=”<<+;
+=x-y;
cout<<”\n”<<x<<”-”<<y<<”=”<<+<<endl;
kompleks n;
cin>>n;
cout<<n;
return 0;
}
system(“PAUSE”);
return EXIT_SUCCESS;
}

Praktikum 1

Posted: Oktober 11, 2010 in Uncategorized

#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;
private:
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 besar 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<<”\nMasukkan 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;
}
int main()
{
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 s di-assign t\n”<<t;
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;
//}
system(“PAUSE”);
return EXIT_SUCCESS;
}

POSTEST

1. Pembahasan
sebelum : void, void itu suatu prosedur biasanya argumen atau rumus.
sesudah diganti: Integer itu suatu fungsi biasanya berupa perhitungan.
3.a) kelas
contoh : 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;
private:
int a;
float b;
};
b) Konstruktor
public:
Bilangan(int a0=0, float b0=0.0):a(a0),b(b0){}
c) Method
void banding_int(const bilangan&, const bilangan&);
bilangan& operator=(const bilangan&);
bilangan operator+(const bilangan&)const;
bilangan operator-()const;
d) Data Member
private:
int a;
float b;
};
e) Overloading
friend ostream& operator<<(ostream&, const bilangan&);
friend istream& operator>>(istream&, bilangan&);