ALEX GUFRON
2013-81-039
PBO seksi 03
POLYMORPHISME
Kali ini agan mendapatkan tugas untuk menampilkan masing-masing class yang ada, sesuai dengan direvide class yang telah dideklarasikan, yaitu masing-masing berclass mahasiswa dan pegawai dari base class yaitu manusia. Sebelum masuk ke inti tugas, agan akan memperkenalkan apa sih itu polymorphisme ? dan bagian-bagian yang menjadi penopang dari polymorphisme ! ok biar nggk penasaran ..........
check this out !!!!!
1.Apa sih itu Polymorphism?
Dilihat dari bahasanya, poly berarti banyak, morphis berarti bentuk. Jadi polymorphism adalah pemrograman yang punya banyak bentuk. Bentuk maksudnya gimana sih??Bentuk disini bisa diartikan sebagai model, ragam, atau jenis, seperti misalnya dalam C++ kita mengenal virtual member, pointer, abstract class dan lain – lain. nah, aneka ragam seperti inilah yang disebut dengan polymorphism.

Pada gambar di atas kita mengupload gambar tentang polymorphic dari class felix menjadi kucing, harimau, macan tutul :)
Penulisannya pun beragam, bervariasi, kreatif, simple, dan lain lain. Inilah polymorphism, jadi tidak monoton tanpa improvisasi sama sekali.
2.Bagian-bagian yang menjadi penopang di dalam polymorphisme !
Pada tutorial Polymorphism kali ini, kita akan membahas beberapa hal sebagai berikut:
1.Pointer dan Base Class (ingat, ini juga kelanjutan dari tutorial inheritance lho).

base class
main program
2.Virtual member dan Pure Virtual Member
nah ini dia yg menjadi tugas agan kali ini, yaitu untuk menampilkan judul pada setiap class yg ada yaitu class mahasiswa dan pegawai, yaitu dengan menambahkan variabel virtual pada fungsi judul di base class, untuk lebih jelasnya akan kami tampilkan keterangannya melalui print screen di bawah ini :

virtual methode
fungsi virtual digunakan untuk menimpa (overriding) pada base class (class utama) terhadap direvide class, akan tetapi harus sesuai dengan deklarasi yang ada pada base class.
3.Abstract Base Class
Berikut adalah source code untuk polymorphism :
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
class Manusia
{
protected:
string nama;
string alamat;
public:
Manusia(string nama,string alamat):nama(nama),alamat(alamat){}
virtual void judul()//fungsi virtual
{
cout<<"\n Kelas Manusia !"<<endl;
}
/*virtual function yang ditandai dengan keyword virtual pada base class
mengindikasikan bahwa class derived diperbolehkan untuk melakukan overriding (pengalihan) terhadap method / fungsi pada base class tersebut.*/
virtual void tampil_data()//menggunakan fungsi virtual
{
cout<<"\n=============================================";
cout<<"\n\t MANUSIA"<<endl;
cout<<"\n=============================================";
cout<<"\n NAMA : "<<nama<<endl;
cout<<"\n ALAMAT : "<<alamat<<endl;
cout<<"==============================================="<<endl;
}
};
class Mahasiswa:public Manusia
{
private:
string nim;
string jurusan;
public:
Mahasiswa(string nim, string nama, string jurusan, string alamat):Manusia(nama,alamat),nim(nim),jurusan(jurusan){}
void judul()
{
cout<<"\n\n Kelas Mahasiswa !"<<endl;
}
void tampil_data()
{
cout<<"\n=============================================";
cout<<"\n\t MAHASISWA "<<endl;
cout<<"\n=============================================";
cout<<"\n NIM :"<<nim<<endl;
cout<<"\n NAMA :"<<nama<<endl;
cout<<"\n Jurusan :"<<jurusan<<endl;
cout<<"\n Alamat :"<<alamat<<endl;
cout<<"==============================================="<<endl;
}
};
class Pegawai:public Manusia
{
private:
string nip;
string jabatan;
public:
Pegawai(string nip,string nama,string alamat,string jabatan):Manusia(nama,alamat),nip(nip),jabatan(jabatan){}
void judul()
{
cout<<"\n\n Kelas Pegawai !"<<endl;
}
void tampil_data()
{
cout<<"\n=============================================";
cout<<"\n\t PEGAWAI"<<endl;
cout<<"\n=============================================";
cout<<"\n NIP :"<<nip<<endl;
cout<<"\n NAMA :"<<nama<<endl;
cout<<"\n Alamat :"<<alamat<<endl;
cout<<"\n Jabatan :"<<jabatan<<endl;
cout<<"==============================================="<<endl;
}
};
int main()
{
Mahasiswa mhs1("2013-81-039","Alex Gufron","Teknik Informatika","Jakarta");
Pegawai peg1("4231.8765.1234","Cak Lontong","Surabaya","CEO");
Manusia *man; //definisi pointer ke objek berkelas Manusia
man=&mhs1; //menunjuk ke objek berkelas mahasiswa
man->judul();
man->tampil_data();
man=&peg1; //menunjukk ke objek pegawai
man->judul();
man->tampil_data();
getch();
}
Sekian yang dapat agan share pada kali ini. Terima Kasih. Wassalam !!!
TUGAS PBO 4 Seksi 03
Reviewed by SANG PENGEMBARA ILMU
on
17.26
Rating:

Tidak ada komentar: