Rabu, 23 September 2009

a. Overload

  • Overloading dalam Bahasa Pemograman OOP adalah suatu keadaan dimana beberapa method memiliki nama yg sama tetapi fungsi yg berbeda (mempunyai fungsi yg berbeda).
  • Overlading bisa juga diartikan dengan istilah sebagai berikut, metode dengan nama yang sama, parameter yang berbeda, me-return value dengan return type yang berbeda
  • Dapat digunakan ketika operator yang sama memiliki implementasi yang berbeda
Misal :
  • Koordinat (x,y)
  • Koordinat (x,y,z)
Dimana penjelasan diatas adalah Method dari Koordinat mempunyai fungsi yg berbeda antara koordinat yg 1 da yg ke 2

Contoh :

#include
#include

class data

{
private :
int motor;
int mobil;
public :
data(int jum_motor = 0, int jum_mobil = 0);
data operator + (data m2);
data operator + (int plus);
void total_kendaraan();
};
void main()
{
data data1(10,2);
data data2;
cout<<"Jumlah Kendaraan 1"<
data1.total_kendaraan();
data2=data1+100;
cout<<"Jumlah Kendaraan 2"<
data2.total_kendaraan();
data2=data1+data2;
cout<<"Jumlah Kendaraan 3"<
data2.total_kendaraan();
getch();
};

// Prosessing Data
data::data(int jum_motor, int jum_mobil)
{
motor = jum_motor;
mobil = jum_mobil;
}
void data::total_kendaraan()
{
cout << "Jumlah Motor =" << mobil ="" motor =" motor" mobil =" mobil" motor =" motor" mobil =" mobil">




b. Constructor

Constructor adalah suatu fungsi tanpa return type yang dipanggil secara otomatis setiap kali sebuah objek/kelas dibuat. Hal ini biasa dilakukan untuk proses inisialisasi. Nama fungsi constructor harus sama dengan nama kelas, dan sama seperti fungsi-fungsi lain, pada fungsi constructor juga dapat dilakukan overload.

Contoh program sederhana construktor adalah :

Program Constructor

Class sample {

Int x;

Public;

Sample() {x=0;} //construstor untuk inisialisasi n ilai x dg o

Sample(int xx) {x=xx;) //contstuctor dengan parameter

};

Program Destructor

Class sample {

Int x;

Public;

Sample() {x=0;} //construstor untuk inisialisasi n ilai x dg o

~Sample {cout

#include

#include

#pragma argsused

class SEGI_EMPAT {

private: // keyword ini opsional

int panjang;

int lebar;

SEGI_EMPAT ( );

void set_sisi(int p,int l);

};

//constructor objek SEGI_EMPAT

SEGI_EMPAT: :SEGI_EMPAT( ) {

panjang = 0; // melakukan inisialisasi

lebar = 0;

}

// Pendefinisian fungsi set_sisi yang tidak mengembalikan nilai

void SEGI_EMPAT: :set_sisi(int p, int l) {

// melakukan pengesetan

if (p !=panjang) panjang = p;

if (l !=lebar) lebar = l;

}

// Pendefinisian fungsi get_luas yang mengembalikan tipe int

Int SEGI_EMPAT: :get_luas() {

return panjang * lebar;

}

int main(void)

{

SEGI_EMPAT A; // ERROR, karena mengakses bagian private

int x;

A.set_sisi(10,5); // ERROR, karena mengakses bagian private

X=A.get_luas(); // ERROR, karena mengakses bagian

private

cout

#include

#include

//—————————————————————————–

#pragma argsused

class SEGI_EMPAT {

int panjang; // data ini bersifat private meskipun tidak di tulis keyword private

int lebar;

public :

SEGI_EMPAT ( );

void set_sisi(int p,int l);

int get_luas();

};

//constructor objek SEGI_EMPAT

SEGI_EMPAT: :SEGI_EMPAT( ) {

panjang = 0; // melakukan inisialisasi

lebar = 0;

}

// Pendefinisian fungsi set_sisi yang tidak mengembalikan nilai

void SEGI_EMPAT: :set_sisi(int p, int l) {

// melakukan pengesetan

if (p !=panjang) panjang = p;

if (l !=lebar) lebar = l;

}

// Pendefinisian fungsi get_luas yang mengembalikan tipe int

int SEGI_EMPAT: :get_luas() {

return panjang * lebar;

}

int main(void)

{

SEGI_EMPAT A;

Int x;

A.set_sisi(10, 5);

X=A.get_luas();

cout

#include

#include

Class persegi_panjang {

Private :

Int panjang;

Int lebar;

Public :

persegi_panjang (int p, int l [

panjang=p;

lebar=l;

}

Int get_luas() {return panjang * lebar;}

};

Int main(void)

{ //melakukan instanisasi kelas persegi_panjang

// dengan nama instance A

Persegi_panjang A(10,3);

//menggunakan fungsi didalam kelas persegi_panjang

Cout

Selasa, 31 Maret 2009

Perbaikan Quiz Sorting Struktur Data

Dgn Cara Insertion Sort

void insertion ( int x[ ], int n)

{ int i,k,y

for (k=1;k

{ y = x [k]

for (i=k-1;i>=0 && y

x[i+1] = x [i];

x[i+1] = y ;

}

}

n= 6

x

k

i

y

kondisi

18

9

8

28

3

2

1

0

9

T /\ T = T

-1

F

9

18

8

28

3

2

2

1

8

T /\ T = T

0

T /\ T = T

-1

F

8

9

18

28

3

2

3

2

28

T /\ F

8

9

18

28

3

2

4

3

3

T /\ T = T

2

T /\ T = T

1

T /\ T = T

0

T /\ T = T

-1

F

3

8

9

18

28

2

5

4

2

T /\ T = T

3

T /\ T = T

2

T /\ T = T

1

T /\ T = T

0

T /\ T = T

-1

F

2

3

8

9

18

28

6