Inheritance C++

4 July 2010 at 22:55 (Algoritma & Metode OOP (C++)) (, , , , )

Week 8 – Tugas Individu 8 – 0454T

1.    Buatlah program dengan class inheritance untuk merepresentasikan class tabung yang mempunyai data jari2 alas tabung yang berbentuk lingkaran dan tinggi.  Class tabung merupakan class turunan dari class lingkaran yang mempunyai data jari2. Function yang ada pada class lingkaran adalah inputjari2, hitung luas dan hitung keliling. Sedangkan function yang ada pada class tabung adalah inputData, hitung volume dan hitung permukaan tabung.

Jawaban programnya:
#include <iostream>
using namespace std;
class Lingkaran
{
private:
float phi;
public :
int Jari;
Lingkaran()
{
phi=3.14;
Jari=0;
}
void InputJari(int r)
{
Jari=r;
}
double HitungLuas()
{
double Luas=phi*Jari*Jari;
return Luas;
}
double HitungKeliling()
{
double Keliling=2*phi*Jari;
return Keliling;
}
};

class Tabung : public Lingkaran
{
private:
int Tinggi, vJari;
float Luas, Keliling;
public:
void InputData(int t)
{
Tinggi=t;
cout << “\nMasukkan Jari-Jari Tabung : “;
cin >> vJari;
Lingkaran::InputJari(vJari);

}
double HitungVolume()
{
Luas=Lingkaran::HitungLuas();
double Volume=Luas*Tinggi;
cout <<“\nVolume Tabung = ” << Volume;
return Volume;
}
double HitungPermukaan()
{
Keliling=Lingkaran::HitungKeliling();
double Permukaan=Keliling*(Jari+Tinggi);
cout <<“\nPermukaan Tabung = ” << Permukaan;
return Permukaan;
}
};
int main()
{
int vTinggi;
Tabung vTabung;
cout << “Mengitung Volume dan Permukaan Tabung\n”;
cout << “=====================================”;
cout << “\nMasukkan Tinggi Tabung : “;
cin >> vTinggi;
vTabung.InputData(vTinggi);
vTabung.HitungVolume();
vTabung.HitungPermukaan();
cout<< “\n”;
system (“Pause”);
}

2.    Buatlah sebuah program dengan menggunakan class dan konsep inheritance (pewarisan sifat).Dengan langkah-langkah sebagai berikut:
a)    Deklarasi dan definisikan sebuah class induk dengan data member dan method yang diperlukan.
b)    Deklarasi dan definisikan sebuah class anak yang diturunkan secara public dari class induk dan tambahkan method yang merupakan kelebihan class anak yang tidak dimiliki class induk dimana class induk hanya bisa bergerak ke kiri, kanan, atas, dan bawah sedangkan class anak selain bergerak juga bisa ganti warna.
c)    Bentuk obyek dari class anak dan lakukan method bergeraknya, gerakkan obyek dengan menggunakan anak panah.
d)    Tunggu penekanan tombol ENTER, jika sudah ditekan maka bentuk obyek class anak dan lakukan method bergeraknya, gerakkan obyek dengan menggunakan anak panah, ganti warna obyek dengan menekan tombol spasi.

Jawaban Programnya:
#include<stdio.h>
#include<windows.h>
#include<conio.h>
#include<iostream>
using namespace std;
const int LEN = 80;
class PindahObject
{
private:
char Kata[LEN];
//char Kata;
int a, b;
public:
void InputData()
{
//cout << “\nMasukkan Kata: “;
//cin >> Kata;
//cout << “\nMasukkan sumbu X : “;
//cin >> a;
//cout << “\nMasukkan sumbu Y : “;
//cin >> b;
strcpy(Kata,”***”);
a=15; b=15;
}
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
void Pindah()
{

gotoxy(a,b);
cout << Kata;
int c;
switch (c = getch())
{
case 0:
case 224:
switch (c = getch())
{
case 72: //up arrow
{
system (“cls”);
b=b-1;
gotoxy(a,b);
cout << Kata;
break;
}
case 75: //left arrow
{
system (“cls”);
a=a-1;
gotoxy(a,b);
cout << Kata;
break;
}
case 77: //right arrow
{
system (“cls”);
a=a+1;
gotoxy(a,b);
cout << Kata;
break;
}
case 80: //down arrow
{
system (“cls”);
b=b+1;
gotoxy(a,b);
cout << Kata;
break;
}
//default: cout << “extended key ” << c << “\n”;
}
break;
//default: cout << “normal key ” << c << “\n”;
}
}
};
class WarnaObject : public PindahObject
{
private:
#define BLACK 0
#define BLUE 1
#define GREEN 2
#define CYAN 3
#define RED 4
#define MAGENTA 5
#define BROWN 6
#define LIGHTGREY 7
#define DARKGREY 8
#define LIGHTBLUE 9
#define LIGHTGREEN 10
#define LIGHTCYAN 11
#define LIGHTRED 12
#define LIGHTMAGENTA 13
#define YELLOW 14
#define WHITE 15
#define BLINK 128
public:
void WarnaiObject()
{
bool keluar=false;
int Escape;
PindahObject::InputData();
while (keluar==false)//menampilkan menu utama
{
//Escape=getch();
//if (Escape=27) {keluar=true;}
switch (Escape = getch())
{
case 32:
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), GREEN);//Warna Hijau
//break;
}
case 72:
{
PindahObject::Pindah();
break;
}
case 75:
{
PindahObject::Pindah();
break;
}
case 77:
{
PindahObject::Pindah();
break;
}
case 80:
{
PindahObject::Pindah();
break;
}
case 27:
{
keluar=true;
break;
}

}

}

}
};
int main()
{
int Mulai;
WarnaObject Warna;
cout << “Tekan Enter untuk Mulai\n”;
switch (Mulai = getch())
{
case 13:
{
Warna.WarnaiObject();
break;
}
}
cout <<“\n”;
system (“Pause”);
}

3.    Buatlah program dengan class inheritance untuk menginputkan dan menampilkan data manager pada suatu perusahaan yang mempunyai data nip, nama, jenjang pendidikan, lulusan, alamat, departement, jumlah bawahan, dan gaji. Program dibuat dengan terlebih dahulu mendeklarasikan class manusia yang mempunyai data nama dan alamat, kemudian class karyawan yang mempunyai data nip, departement dan gaji, selanjutnya class mahasiswa yang mempunyai data nama sekolah, dan jenjang pendidikan. Masing-masing class tersebut mempunyai fungsi inputData dan displayData. Class Hirarkinya adalah sebagai berikut:


Hal –hal yang perlu dibuat adalah:
a.)    deklarasi masing-masing class, dengan ketentuan penurunan class karyawan dan class mahasiswa dari class manusia secara public, dan penurunan class manager dari class karyawan dan mahasiswa secara private.

Jawaban Programnya:
#include<iostream>
using namespace std;
const int LEN = 80;
class Manusia
{
private:
char Nama[LEN];
char Alamat[LEN];
//unsigned long number;
public:
void InputData()
{
cout << ” \nMasukkan Nama : ” ;
cin >> Nama;
cout << “\nMasukkan Alamat : ” ;
cin >> Alamat;
}
void DisplayData()
{
cout << “\nNama : ” <<Nama;
cout << “\nAlamat : ” <<Alamat;
}
};
class Karyawan: public Manusia
{
private:
char Nip[LEN];
char Departement[LEN];
int Gaji;
public:
void InputData()
{
Manusia::InputData();
cout << “\nMasukkan NIP : “;
cin >> Nip;
cout << “\nMasukkan Departement : “;
cin >> Departement;
cout << “\nMasukan Gaji : “;
cin >> Gaji;
}
void DisplayData()
{
Manusia::DisplayData();
cout << “\nNIP : ” << Nip;
cout << “\nDepartement : ” << Departement;
cout << “\nGaji : ” << Gaji;
}
};
class Mahasiswa : public Manusia
{
private:
char Sekolah[LEN];
char JenjangPendidikan[LEN];
public:
void InputData()
{
//Manusia::InputData();
cout << “\nMasukkan Sekolah : “;
cin >> Sekolah;
cout << “\nMasukkan Jenjang Pendidikan : “;
cin >> JenjangPendidikan;
}
void DisplayData()
{
//Manusia::DisplayData();
cout << “\nSekolah : ” << Sekolah;
cout << “\nJenjang Pendidikan : ” << JenjangPendidikan;
}
};
class Manager : private Karyawan, private Mahasiswa
{
private:
int JmlBawahan;
public:
void InputData()
{
Karyawan::InputData();
Mahasiswa::InputData();
cout << “\nMasukkan Jumlah Bawahan : “;
cin >> JmlBawahan;
}
void DisplayData()
{
Karyawan::DisplayData();
Mahasiswa::DisplayData();
cout <<“\nJumlah Bawahan : ” << JmlBawahan;
}
};
int main()
{
//Inisialisasi Class
Manager m1;
//Input Data
cout << “\nMasukkan data Manager : “;
m1.InputData();
//Tampilkan Data
cout << “\nData Manager : “; m1.DisplayData();
cout << “\n”;
system (“Pause”);

}

Save to PDF

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: