Sabtu, 27 Februari 2010

Belajar bahasa C++ episode 2

Categori : pemrograman

Judul : belajar bahasa C++ episode 2
Kisahku belajar pemrograman C++ 2

Hai semua udah lama gak nge-update blog nih, oh yah pemrograman C++ kemarin dah nyampe mana ya?
Nah sekarang aku akan bagi-bagi ilmu aku waktu praktikum PBO, sekarang kita akan belajar membuat file header.
Buat sebuah file dengan dengan nama cat.hpp
Lalu ketikkan code program di bawah ini :


#include
class Cat
{
//function member
public:
Cat (int initialAge);
~Cat();

int GetAge() { return itsAge;} //inline!
void SetAge(int age) { itsAge = age;} //inline!
void Meow() { cout <<"Meow.\n";} //inline!

//data member
private:
int itsAge;
};
//akhir file cat.hpp

Setelah itu kamu buat file dengan nama cat.cpp
Di sini baru kita akan membuat program yang menggunakan header yang sudah kita buat tadi, source code nya seperti berikut :

#include "cat.hpp"
Cat::Cat(int initialAge) //constructor
{itsAge = initialAge;}

Cat::~Cat() //destructor
{
}

//program utama
int main()
{
Cat Frisky(5);

Frisky.Meow();
cout <<"Frisky is a cat who is ";
cout <<Frisky.GetAge()<<" years old.\n";

Frisky.Meow();
Frisky.SetAge(7);

cout <<"Now Frisky is ";
cout <<Frisky.GetAge() <<" years old.\n";
return 0;
}
//akhir file cat.cpp

Tadi kita sudah belajar bagaimana membuat file header dan menggunakannya, sekarang kita akan membuat contoh program dengan cara yang sama namun ada tambahan yaitu class dengan menggunakan data dari kelas lainnya.
Seperti biasa pertama-tama kamu buat file dengan nama rect.hpp sebagai file header.
Source code :

#include

class Point // holds x,y coordinates
{
// no constructor, use default
public:
void SetX(int x) { itsX = x;}
void SetY(int y) { itsY = y;}
int GetX() const { return itsX;}
int GetY() const { return itsY;}

private:
int itsX;
int itsY;
}; // end of Point class declaration


class Rectangle
{
public:
Rectangle (int top, int left, int bottom, int right);
~Rectangle() {}

int GetTop() const { return itsTop;}
int GetLeft() const { return itsLeft;}
int GetBottom() const { return itsBottom;}
int GetRight() const { return itsRight;}

Point GetUpperLeft() const { return itsUpperLeft;}
Point GetLowerLeft() const { return itsLowerLeft;}
Point GetUpperRight() const { return itsUpperRight;}
Point GetLowerRight() const { return itsLowerRight;}

void SetUpperLeft(Point Location) { itsUpperLeft = Location;}
void SetLowerLeft(Point Location) { itsLowerLeft = Location;}
void SetUpperRight(Point Location) { itsUpperRight = Location;}
void SetLowerRight(Point Location) { itsLowerRight = Location;}

void SetTop(int top) { itsTop = top;}
void SetLeft(int left) { itsLeft = left;}
void SetBottom(int bottom) { itsBottom = bottom;}
void SetRight(int right) { itsRight = right;}

int GetArea() const;

private:
Point itsUpperLeft;
Point itsUpperRight;
Point itsLowerLeft;
Point itsLowerRight;

int itsTop;
int itsLeft;
int itsBottom;
int itsRight;

};
// akhir file rect.hpp

Setelah membuat file header rect.hpp sekarang kita membuat file utama dengan nama rect.cpp sebagai berikut :

#include "rect.hpp"

Rectangle::Rectangle(int top, int left, int bottom, int right)
{
itsTop = top;
itsLeft = left;
itsBottom = bottom;
itsRight = right;

itsUpperLeft.SetX(left);
itsUpperLeft.SetY(top);

itsUpperRight.SetX(right);
itsUpperRight.SetY(top);

itsLowerLeft.SetX(left);
itsLowerLeft.SetY(bottom);

itsLowerRight.SetX(right);
itsLowerRight.SetY(bottom);
}

// compute area of the rectangle by finding corners,
// establis width and height and then multuply
int Rectangle::GetArea() const
{
int Width = itsRight - itsLeft;
int Height = itsTop - itsBottom;
return (Width*Height);
}

int main()
{
//initialize a local Rectangle variable
Rectangle MyRectangle(100,20,50,80);

int Area = MyRectangle.GetArea();

cout << "Area:" << Area << "\n";
cout << "Upper Left X Coordinate:";
cout << MyRectangle.GetUpperLeft().GetX() << endl;
return 0;
}
// akhir file rect.cpp

Sekarang coba jalankan program kamu. Jika ada kesalahan/error periksa kembali, kemungkinan kamu ada kesalahan penulisan.

Nah sekarang kita akan membuat contoh program class dengan inheritan (pewarisan),code programnya seperti di bawah ini :

#include
enum BREED { YORKIE, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB};

class Mammal
{
public:
// constructor
Mammal() {}
~Mammal() {}

// accessors
int GetAge() const { return itsAge;}
void SetAge(int age) { itsAge = age;};
int GetWeight() const;
void SetWeight();

// other methodes
void Speak();
void Sleep();

protected:
int itsAge;
int itsWeight;
};

class Dog : public Mammal
{
public:
// constructors
Dog() {}
~Dog() {}

// accessors
BREED GetBreed() const { return itsBreed;}
void SetBreed(BREED breed) { itsBreed = breed;}

// Other methods
// WagTail();
// BegForFoo()'

protected:
BREED itsBreed;
};

void main()
{
Mammal M1;
M1.SetAge(10);
cout << M1.GetAge() << endl;

Dog D1;
D1.SetAge(15);
cout << D1.GetAge() << endl;

D1.SetBreed(LAB);
cout << D1.GetBreed() << endl;
}
// akhir file inherit1.hpp

Nah sekarang kita akan membuat contoh program class dengan inheritan dan overriding function ,code programnya seperti di bawah ini :
//nama file : inherit2.cpp
//tentang : class dengan inheritan dan overiding function

#include

enum BREED { YORKIE, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB};

class Mammal
{
public:
//constructor
Mammal() { cout << "Mammall constructor...\n";}
~Mammal() { cout << "Mammal destructor...\n";}

//other methods
void Speak() const { cout << "Mammal sound!\n";}
void Sleep() const { cout << "shhh. I'm sleeping.\n";}
protected:
int itsAge;
int itsWeight;
};

class Dog : public Mammal
{
public:
//constructor
Dog() { cout << "Dog constructor...\n";}
~Dog() { cout << "Dog destructor...\n";}

//other methodes
void WagTail() { cout << "Tail wagginh...\n";}
void BegForFood() { cout << "Begging for food...\n";}
void Speak() const { cout << "Woof!\n";}

private:
BREED itsBreed;
};

int main()
{
Mammal bigAnimal;
Dog fido;
bigAnimal.Speak();
fido.Speak();
return 0;
}

//akhir file inherit2.cpp
Sekarang kita ke materi selanjuntnya ya tentang function overloading, pasti tambah penasaran, OK langsung saja ya :
// contoh function overloading

#include

void swap(int &x, int &y)
{ /* swap integer */
int tmp;

tmp = x;
x = y;
y = tmp;
}

void swap(float &x, float &y)
{ /* swap float */
float tmp;

tmp = x;
x = y;
y = tmp;
}

void main()
{
int x = 5, y = 10;
float v = 5.3 , w = 4.2;

swap(x,y); // otomatis memanggil swap integer
swap(v,w); // memanggil swap float
}
Nah segitu dulu yah latihannya, tenang masih banyak materinya kok, nyantai sajah sobat, pelajari saja dulu itu yah, sampai ketemu di episode 3, hehehe…
Referensi : modul praktikum PBO Herbert, M.T. Program Ilmu Komputer Universitas pendidikan Indonesia 2009.

Tidak ada komentar:

Posting Komentar