Anda di halaman 1dari 33

LAPORAN HASIL PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN II

NAMA

WANDY SUPRIADI

NIM

DBC 114 121

KELAS

MODUL

I I ( PEWARISAN )

JURUSAN/PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKA RAYA
2015

BAB I
TUJUAN DAN LANDASAN TEORI

A. Tujuan
Setelah menyelesaikan modul ini, mahasiswa diharapkan mampu membuat
kelas baru dari kelas yang sudah ada dengan pewarisan.

B. Landasan Teori
Dalam PBO, kita mengambil realita kehidupan sehari-hari. Kita melakukan
pengamatan bahwa manusia secara alami sering melakukan pengelompokkan atas
objek atau benda.sejauh ini kita mengetahui cara untuk melakukan pengelompokkanpengelompokkan atas objek-objek yang serupa (menjadi kelas objek).
Selain melakukan kategorisasi terhadap objek yang memiliki sekumpulan
atribut dan perilaku yang sama, manusia sering melakukan pengelompokkan terhadap
objek yang memiliki kesamaan atas beberapa (tidak semua) atribut/perilaku.
Contoh : pengelompokkan atas kendaraan bermotor, kemudian menggrupkannya
berdasarkan suatu tipe atau jenis (mobil, truk, sepeda motor, dll.). Setiap subkategori
merupakan kelas atas objek-objek yang serupa.
Ada beberapa karakteristik yang di-share oleh semua kelompok. Relasi antar
kelas-kelas ini disebut dengan relasi is - a. dalam setiap kasus, objek yang
dikelompokkan bersama dalam satu sub-kategori merupakan anggota dari kategori
yang lebih umum. Contohnya adalah seperti di bawah ini.
Mobil adalah (is a) kendaraan bermotor.
Truk adalah (is a) kendaraan bermotor.
Sepeda motor adalah (is a) kendaraan bermotor.
Objek yang dikelompokkan dalam suatu kelas men-share sekumpulan atribut
dan perilaku. Jadi, seluruh objek kendaraan bermotor memiliki sekumpulan atribut
dan perilaku yang juga dimiliki oleh objek dari mobil. Keterkaitan antar kelas dalam
relasi is a berasal dari kenyataan bahwa sub kelas memiliki atribut dan perilaku

yang dimiliki kelas induk, ditambah atribut dan perilaku yang dimiliki oleh sub kelas
tersebut.
Superclass (kelas dasar atau kelas induk) merupakan kelas yang lebih
general dalam relasi is a. Subclass (kelas turunan atau kelas anak)
merupakan kelas yang lebih spesifik dalam relasi is a. Objek yang
dikelompokkan dalam sub kelas memiliki atribut atau perilaku kelas induk, dan juga
atribut dan perilaku tambahan. (Jadi, kumpulan atribut dan perilaku sub kelas lebih
besar dari super kelas-nya). Relasi is a antar superclass dan subclasses-nya
disebut dengan pewarisan atau inheritance.
Subclass mewarisi suatu superclass (atau juga bisa dikatakan sebuah subclass
turunan dari suatu superclass) karena reuabilitas Perangkat Lunak, membuat kelas
baru (kelas turunan) dari kelas yang sudah ada (kelas dasar), kelas turunan mewarisi
kelas induk yang mendapatkan data dan perilaku, merupakan bentuk spesial dari
kelas induk, dan diperluas dengan perilaku tambahan.
Pewarisan ada dua jenis, yaitu pewarisan tunggal dan pewarisan jamak. Pada
protected access, protected members dapat diakses oleh member kelas dasar, friend
kelas dasar, member kelas turunan, dan friend member kelas turunan. Kelas turunan
dapat merujuk/mengakses langsung public dan protected data member kelas induk
dengan menggunakan nama atribut yang diakses.
Memahami Konsep Inheritance (Pewarisan) Pada OOP
I. KONSEP PEWARISAN (INHERITANCE) PADA OOP
Sebagai Informasi bahwa Ciri khas Pemrograman Berorientasi Objek ada tiga hal
yaitu:
1. Enkaptulasi (Pembungkusan)
2. Inheritance (Pewarisan)
3. Polymorphism (Perbedaan Bentuk)
A. PENGERTIAN PEWARISAN (INHERITANCE)

Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat
mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah
Class dapat mempunyai class turunan.
Suatu class yang mempunyai class turunan dinamakan parent class atau base class.
Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class. Suatu
subclass

dapat

mewarisi

apa-apa

yang

dipunyai

oleh

parent

class.

Karena suatu subclass dapat mewarisi apa apa yang dipunyai oleh parent class-nya,
maka member dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga
apa-apa yang ia warisi dari class parent-nya.
Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya
Memperluas (extend) parent class-nya.
Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin bersifat
spesifik. Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian
halnya juga macan , kucing, Paus dan Monyet memiliki seluruh sifat yang diturunkan
dari class mamalia.
Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup
didefinisikan dalam class binatang saja.
Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class
binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari
class binatang secara otomatis. Demikian juga dengan class macan, kucing, Paus dan
monyet, hanya perlu mendefinisikan karakteristik
yang spesifik dimiliki oleh classnya masing-masing.
Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu
mendefinisikan karakteristik yang lebih umum akan didapatkan
dari class dariman ia diturunkan.

B. DEKLARASI PEWARISAN (INHERITANCE)

Deklarasi yang digunakan adalah dengan menambahkan kata kunci extends setelah
deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci
extends tersebut memberitahu kompiler Java bahwa kita ingin
melakukan perluasan class.
Public class B extends A {}.
Pada saat dikompilasi, Kompiler Java akan membaca sebagai subclass dari class
Object.
Public class A extends Object {}
C. KAPAN KITA MENERAPKAN INHERITANCE ?
Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class
yang dapat diperluas dari class lain. Misal terdapat class Pegawaipublic class Pegawai
{public String nama;public double gaji;}Misal terdapat class Managerpublic class
Manajer {public String nama;public double gaji;public String departemen;}
Dari 2 buah class diatas, kita lihat class Manajer mempunyai data member yang
identik sama dengan class Pegawai, hanya saja ada tambahan data member
departemen.
Sebenarnya yang terjadi disana adalah class Manajer merupakan perluasan dari
class pegawai dengan tambahan data member departemen. Disini perlu memakai
konsep inheritance, sehingga class Manajer dapat kita tuliskan
Seperti berikut :
public class Manajer extends Pegawai {public String departemen;}
D. KEUNTUNGAN INHERITANCE
a. Subclass menyediakan state/behaviour yang spesifik yang membedakannya
dengan superclass, hal ini akan memungkinkan programmer Java untuk
menggunakan ulang source code dari superclass yng telah ada.
b. Programmer Java dapat mendefinisikan superclass khusus yang bersifat
generik, yang disebut abstract class, untuk mendefinisikan class dengan
behaviour
dan state secara umum..

E. ISTILAH INHERITANCE
Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.
Superclass Superclass digunakan untuk menunjukkan hirarki class yang berarti class
dasar dari subclass/class anak.
Subclass Subclass adalah class anak atau turunan secara hirarki dari superclass.
Super Keyword ini digunakan untuk memanggil konstruktor dari superclass atau
menjadi variabel yang mengacu pada superclass.
Methode Overriding Pendefinisian ulang method yang sama pada subclass
Dalam inheritance, method overriding berbeda dengan method overloading. Kalau
method overriding adalah mendefinisikan kembali method yang sama, baik nama
method maupun signature atau parameter yang diperlukan dalam subclass, kalau
method overloading adalah mendefinisikan method yang memiliki nama yang sama,
tetapi dengan signature yang berbeda dalam definisi class yang sama.

BAB II
LANGKAH KERJA

1. Buatlah progam seperti di bawah ini!


#include<iostream.h>
#include<conio.h>
class Point {
public:
Point(float = 0.0, float = 0.0);
void cetakPoint();
protected:
float x,y;
};
Point::Point(float a, float b)

{
cout<< "Konstruktor Point dijalankan "<<endl;
x = a;
y = b;
}
void Point::cetakPoint()
{
cout<< "Point : "<<'['<<x<<", "<<y<<']'<<endl;
}
class Circle : public Point {
public:
Circle(float r = 0.0, float a = 0.0, float b = 0.0);//konstruktor
float area();
void cetakPoint();
protected:
float radius,l;
};
Circle::Circle(float r, float a, float b) : Point(a, b) {
cout<< "Konstruktor Circle dijalankan"<<endl;
radius = r;
}
float Circle::area()
{
l=3,14*radius*radius;
return l;
}
void Circle::cetakPoint()
{
Point::cetakPoint();
cout<< "Circle dgn r : "<<radius<<" Center :
["<<x<<","<<y<<"]"<<endl;
cout<< "Luas circle : "<<l<<endl;
}
class Cylinder : public Circle {
public:
Cylinder(float h = 0.0, float r = 0.0, float a = 0.0, float b
=0.0);//konstruktor
float area();
float vol();
void cetakPoint();
protected:
float height,l,v;
};
Cylinder::Cylinder(float h, float r, float a, float b) : Circle(r, a, b)

{
cout<< "Konstruktor Cylinder dijalankan"<<endl;
height = h;
}
float Cylinder::area()
{
l= (2*Circle::area() + 2*3,14*radius*height);
return l;
}
float Cylinder::vol()
{
v= (Circle::area()*height);
return v;
}
void Cylinder::cetakPoint()
{
Circle::cetakPoint();
cout<< "Tinggi tabung (h) : "<<height<<endl;
cout<< "Luas tabung
: "<<l<<endl;
cout<< "Volume tabung
: "<<v<<endl;
}
int main()
{
Point p(1.1, 2.2);
cout<<endl;
Circle lingkaran(10, 5, 5);
lingkaran.area();
lingkaran.cetakPoint();
cout<<endl;
Cylinder tabung(20, 30, 3, 4);
tabung.area();
tabung.cetakPoint();
getch();
return 0;
}
2. Buatlah program untuk menghitung luas dan keliling persegi panjang serta
volume dan keliling kotak. Program tersebut harus menerapkan prinsip
pewarisan.

BAB III
PEMBAHASAN

Pada modul yang ke II ini kita akan membahas masalah pewarisan yang kta ketahui
pewarisan adalah proses penciptaan kelas baru dengan mewarisi karakteristik kelas
yang telah ada, ditambah karakteristik unit kelas baru. Dengan pewarisan,
dimungkinkan penciptaan, dimungkinkan penciptaan klasifikasi berhirarki.
1. Program No. 1 :
Program ini digunakan untuk menghitung tinggi tabung, luas tabung dan volume dari
tabung dengan nilai yang telah ditentukan berikut pembahasannya.

Pembahasan Program :
#include<iostream.h>
#include<conio.h>
Ini adalah header file, atau bisa juga disebut library. File ini sebenarnya kumpulan
fungsi-fungsi yang sering digunakan untuk pembuatan program. Fungsi #include
adalah untuk memasukkan file library. Sedangkan conio.h dan iostream.h berisi
library untuk memanggil fungsi yang kita butuhkan yaitu getch();.
class Point {
public:
Point(float = 0.0, float = 0.0);
void cetakPoint();
protected:
float x,y;
};

Pada baris selanjutnya merupakan coding program untuk class Point. dalam program
ini, class Point merupakan class induk. Pada mode akses publicnya class ini
mempunyai variabel cetakPoint() dengan tipe data void dan pada mode akses
protectednya terdiri dari variabel x dan y yang tipe datanya float.
Kemudian pada baris selanjutya Public Pada variabel yang bertipe data float=0.0;
(nol) mempunyai Boolean false, selain itu true.
Kemudian pada baris selanjutnya void cetakPoint(); Fungsi cetakPoint() digunakan
untuk menampilkan/mencetak nilai dari variabel yang terdapat pada class Point.

Pada mode akses protected, terdapat dua buah variabel, yaitu x dan y yang tipe
datanya float. Float merupakan tipe data pada C++ yang mengelompokkan bilangan
bernilai decimal atau pecahan.
Point::Point(float a, float b)
{
cout<< "Konstruktor Point dijalankan "<<endl;
x = a;
y = b;
}

Pada bagian coding yang selanjutnya Point::Point(float a, float b)


Baris selanjutnya pada bagian dari coding tersebut terdapat tanda kurung kurawal ( { )
Kurung kurawal ( { ) menandakan awal program.
Pada baris selanjutnya lagi Bagian program ini merupakan konstruktor untuk class
Point. Konstruktor ini memiliki dua buah parameter yang tipe datanya float. Pada saat
dilakukan pemanggilan, maka akan ditampilkan tulisan "Konstruktor Point
dijalankan " dan nilai dari parameter akan dimasukkan ke dalam variabel x dan y
(nilai parameter a dimasukkan ke variabel x dan nilai parameter b yang dimasukkan
ke variabel y).
Kemudian bagian coding tersebut diakhiri dengan tanda kurung kurawal ( } ) yang
menandakan akhir program.

void Point::cetakPoint()
{
cout<< "Point : "<<'['<<x<<", "<<y<<']'<<endl;
}
Pada baris coding yang selanjutnya void Point::cetakPoint() merupakan fungsi dari
class Point, yaitu cetakPoint(). Fungsi ini memiliki tipe data void dan jika dilakukan
pemanggilan pada fungsi ini, maka nilai dari variabel x dan y akan
ditampilkan/dicetak.
Kemudian terdapat kurung kurawal buka ( { ) dan kurung kurawal tutup ( } ) yang
menandakan awal dan akhir dari sebuah program.
class Circle : public Point {
public:
Circle(float r = 0.0, float a = 0.0, float b = 0.0);//konstruktor
float area();
void cetakPoint();
protected:
float radius,l;
};

Pada Bagian program baris yang selanjutnya merupakan class Circle: public Point{
yang berfungsi untuk mendeklarasikan variabel dan fungsi yang terdapat pada class
Circle.

Pada public:, konstruktor Circle terdiri dari tiga buah parameter (r, a dan b) yang tipe
datanya float. Yang kita ketahui Tipe data Float merupakan tipe data bilangan
pecahan presisi tungga.
Kemudian pada baris selanjutnya terdapat fungsi float area() yang tipe datanya float,
digunakan untuk menghitung nilai luas dari objek Circle.
Kemudian pada baris selanjutnya adalah void cetakPoint() yang tipe datanya void,
digunakan untuk menampilkan/mencetak nilai dari fungsi area.
Kemudian pada mode akses protectednya, terdapat variabel radius dan l yang tipe
datanya float.
Kemudian diakhiri degan tanda kurung kurawal tutup ( } ) untuk menandakan akhir
dari program.
Circle::Circle(float r, float a, float b) : Point(a, b) {
cout<< "Konstruktor Circle dijalankan"<<endl;
radius = r;
}
Pada baris yang selanjutnya merupakan pendeklarasian dari konstruktor
Circle::Circle(float r, float a, float b) : Point(a, b) { Konstruktor ini memiliki tiga
buah parameter yaitu (r, a dan b) yang tipe datanya yaitu float. Saat kita melakukan
pemanggilan, maka tulisan "Konstruktor Circle dijalankan" akan ditampilkan.
Kemudian pada baris selanjutnya adalah perintah radius = r yang berfungsi untuk
memasukkan nilai dari variabel r ke dalam radius.
Kemudian diakhiri lagi dengan tanda kurung kurawak tutup ( } ) untuk menandakan
akhir dari program.

float Circle::area()
{
l=3,14*radius*radius;
return l;
}

Pada baris bagian program yang selanjutnya merupakan bagian program yang
berfungsi untuk menghitung nilai dari luas lingkaran dengan memasukkan rumus dari
luas lingkaran l=3,14*radius*radius. Hasil dari perhitungan rumus itulah yang akan
dimasukkan ke dalam variabel l. Fungsi
void Circle::cetakPoint()
{
Point::cetakPoint();
cout<< "Circle dgn r : "<<radius<<"

Center :

["<<x<<","<<y<<"]"<<endl;
cout<< "Luas circle : "<<l<<endl;
}

Pada baris bagian program yang selanjutnya merupakan fungsi cetakPoint() yang
tipe datanya void. Program tersebut adalah turunan dari class Circle, namun pada saat
dilakukan pemanggilan fungsi ini akan memanggil fungsi dari cetakPoint yang
merupakan class induk (class Point). Selanjutnya, fungsi ini akan menampilkan nilai
dari variabel radius, x, y dan l.

class Cylinder : public Circle {


public:
Cylinder(float h = 0.0, float r = 0.0, float a = 0.0, float b =
0.0);//konstruktor
float area();
float vol();
void cetakPoint();
protected:
float height,l,v;
};
Pada baris selanjutnya yaitu Class Cylinder yang merupakan turunan dari class Point
dan class Circle, pada kelas ini ada 3 fungsi yang bertipe akses Public yaitu, area ()
dengan tipe data float, vol () dengan tipe data float, dan cetakPoint () dengan tipe data
void.
Pada Publicnya, class ini memiliki sebuah konstruktor yang terdiri dari empat buah
parameter (h, r, a dan b) yang tipe datanya float dengan presisi 1 angka di belakang
koma. Yang kita ketahui Konstruktor adalah method yang dijalankan setiap kali objek
dibuat.
Terdapat juga fungsi area() dan vol() yang tipe datanya float. Fungsi area()
digunakan untuk menghitung nilai dari luas lingkaran pada class Cylinder, sedangkan
fungsi vol() digunakan untuk menghitung nilai volume dari abjek pada class Cylinder.
Pada baris selanjutnya merupakan fungsi cetakPoint(), yang berfungi untuk
menampilkan fungsi-fungsi dan variabel yang terdapat pada mode akses public.

Kemudian Protectednya, terdapat tiga buah variabel yang tipe datanya float, yakni
height, l dan v yang berfungsi untuk menampung nilai dari luas lingkaran serta tinggi
dan volume tabung.
Cylinder::Cylinder(float h, float r, float a, float b) : Circle(r, a, b)
{
cout<< "Konstruktor Cylinder dijalankan"<<endl;
height = h;
}
Pada bagian program di atas mendeklarasikan konstruktor pada bagian Cylinder yang
memiliki empat buah parameter (h, r, a dan b) yang tipe datanya float. Pada saat
dilakukan pemanggilan, tulisan "Konstruktor Cylinder dijalankan" akan
ditampilkan dan nilai dari height akan dimasukkan ke dalam variabel h.
float Cylinder::area()
{
l= (2*Circle::area() + 2*3,14*radius*height);
return l;
}
Pada bagian selanjutnya digunakan untuk menghitung nilai dari luas cylinder. Tipe
data yang digunakan adalah float.

float Cylinder::vol()
{
v= (Circle::area()*height);
return v;
}
Pada bagian program selanjutnya digunakan untuk menghitung nilai dari volume
tabung. Tipe data yang digunakan fungsi ini adalah float.
void Cylinder::cetakPoint()
{
Circle::cetakPoint();
cout<< "Tinggi tabung (h) : "<<height<<endl;
cout<< "Luas tabung

: "<<l<<endl;

cout<< "Volume tabung

: "<<v<<endl;

Pada bagian void Cylinder::cetakPoint() bagian ini digunakan untuk menampilkan


hasil/nilai dari perhitungan pada fungsi-fungsi sebelumnya yang dipanggil dengan
menggunakan parameter height, l dan v. Agar nilai dapat ditampilkan, maka kita
lakukan pemanggilan terhadap fungsi cetakPoint().

int main()
{
Point p(1.1, 2.2);
cout<<endl;
Circle lingkaran(10, 5, 5);
lingkaran.area();
lingkaran.cetakPoint();
cout<<endl;
Cylinder tabung(20, 30, 3, 4);
tabung.area();
tabung.cetakPoint();
getch();
return 0;
}
Pada bagian ini merupakan bagian utama program. int main() Pada bagian ini,
dilakukan pendeklarasian/penginputan nilai untuk circle (10, 5, 5) dan tabung (20, 30,
3, 4) yang akan digunakan untuk melakukan proses penghitungan pada fungsi-fungsi
yang sebelumnya.
Kemudian pada baris selanjutnya terdapat fungsi yaitu getch(); yang berfungsi untuk
menangkap tampilan pada layar dan program tidak akan tertutup sendiri sebelum
tombol pada keyboard ditekan.Fungsi ini mirip dengan fungsi readkey pada pascal,
fungsi ini diambil dari file conio.h yang merupakan header yang berguna untuk

memanggil fungsi standar yang sudah ada pada C++. Pada bagian akhir dari fungsi
main ini ada tertulis sebuah kode yaitu return 0;, yang berarti apabila program ini
dieksekusi maka akan memberikan nilai kembalian 0 yang artinya program
dijalankan tanpa error.inilah alasan kenapa fungsi ini menggunakan int (integer)
sebagai nilai kembalinya.
Hasil output dari program :

2. Program yang kedua ini digunakan untuk menghitung luas dan keliling persegi
panjang serta volume dan keliling kotak. Berikut ini pembahasan program no 2
yang saya buat :
Pembahasan Program :
#include<iostream.h>
#include<conio.h>
Ini adalah header file, atou bisa juga disebut library. File ini sebenarnya adalah
kumpulan fungsi-fungsi yang sering digunakan untuk pembuatan program. Fungsi
#include adalah untuk memasukkan file library. Sedangkan conio.h dan iostream.h
berisi library untuk memanggil fungsi yang kita butuhkan yaitu getch();.

class Awal {
public :
Awal (float = 0.0, float = 0.0);
float hitungluas();
float hitungkeliling();
void tampilhasil();
protected :
float panjang, lebar, L, K;
};

Pada bagian coding yang ini merupakan class awal yaitu nama dari class yang dibuat.
Pada baris selanjutya Public pada variabel awal yang bertipe data float=0.0; (nol)
mempunyai Boolean false, selain itu true. Publicnya terdiri dari konstruktor Persegi
yang memiliki dua buah parameter yang tipe datanya float dengan presisi 1 angka di

belakang koma. Pada mode akses ini juga terdapat fungsi hitungLuas, hitungKeliling,
hitung luas dan tampilhasil yang tipe datanya void.
Kemudian pada mode akses protectednya, terdapat variabel panjang, lebar,L dan K
yang tipe datanya float.
Kemudian akhiri dengan tanda kurung kurawal tutup ( } ).
Awal::Awal (float p, float l)
{
panjang = p;
lebar = l;
}
Kemudian pada baris yang selanjutnya yaitu pada variabel tipedata Float nya saya
buat panjang = p; dan lebar = l;
Kemudian pada coding tersebut terdapat Kurung kurawal ( { ) menandakan awal
program dan Kurung kurawal ( } ) menandakan akhir program
float Awal::hitungluas()
{
L = panjang * lebar;
return L;
}
Pada baris bagian program yang selanjutnya merupakan bagian program yang
berfungsi untuk menghitung nilai dari luas persegi panjang dengan memasukkan
rumus dari luas persegi panjang yaitu L=panjang*lebar;. Hasil dari perhitungan
rumus itulah yang akan dimasukkan ke dalam variabel L Fungsi.

float Awal::hitungkeliling()
{
K = (2 * (panjang + lebar ));
return K;
}

Pada baris bagian program yang selanjutnya merupakan bagian program yang juga
berfungsi untuk menghitung nilai dari keliling persegi panjang dengan memasukkan
rumus dari keliling persegi panjang yaitu K = (2 * (panjang + lebar ));Hasil dari
perhitungan rumus itulah yang akan dimasukkan ke dalam variabel K.Fungsi .
void Awal::tampilhasil()
{
cout<<"Panjang :
"<<panjang<<endl;
cout<<"Lebar : "<<lebar<<endl;
cout<<"Luas Persegi Panjang :
"<<L<<endl;
cout<<"Keliling Persegi Panjang :
"<<Awal::hitungkeliling()<<endl;
}

Pada bagian void Awal::tampilhasil() bagian ini digunakan untuk menampilkan


hasil/nilai dari perhitungan pada fungsi-fungsi sebelumnya dengan menggunakan
parameter Panjang,Lebar,Luas dan Keliling persegi panjang.

class Kotak : public Awal {


public :
Kotak(float h = 0.0, float p = 0.0,
float l = 0.0);
float hitungvol();
float hitungkeliling();
void tampilhasil();
protected :
float height, V, K;
};

Pada bagian yang selanjutnya yaitu Class Kotak untuk menghitung Keliling Kotak
Pada baris selanjutya Public, Publicnya terdiri dari konstruktor Kotak yang memiliki
tiga buah parameter yang tipe datanya float dengan presisi 1 angka di belakang koma.
Pada mode akses ini juga terdapat fungsi hitungvol, hitungkeliling, dan tampilhasil
yang tipe datanya void.
Kemudian pada mode akses protectednya, terdapat variabel height, V, dan K yang
tipe datanya float.
Kotak::Kotak (float h, float p, float l) :
Awal (p,l)
{
height = h;
}

Pada bagian coding yang selanjutnya variabel h, p, dan l dibuat dengan tipe data float
dengan variabel height dibuat dengan = h;
Kemudian akhiri program dengan tanda ( } ).
float Kotak::hitungvol()
{
V = ( 2* Awal::hitungluas () *
height);
return V;
}

Pada baris bagian program yang selanjutnya merupakan bagian program yang
berfungsi untuk menghitung nilai dari volume kotak dengan memasukkan rumus
dari volume kotak yaitu

V = ( 2* Awal::hitungluas () * height);. Hasil dari

perhitungan rumus itulah yang akan dimasukkan ke dalam variabel V Fungsi.


float Kotak::hitungkeliling()
{
K = ( 2 * Awal::hitungkeliling() +
4 * height);
return K;
}

Pada baris bagian program yang selanjutnya merupakan bagian program yang juga
berfungsi untuk menghitung nilai dari keliling kotak dengan memasukkan rumus
dari keliling kotak yaitu K = ( 2 * Awal::hitungkeliling() + 4 * height); Hasil dari
perhitungan rumus itulah yang akan dimasukkan ke dalam variabel K.Fungsi .

void Kotak:: tampilhasil()


{
Awal::tampilhasil();
cout<<"Tinggi Kotak :
"<<height<<endl;
cout<<"Volume Kotak :
"<<V<<endl;
cout<<"Keliling Kotak :
"<<Kotak::hitungkeliling()<<endl;
}

Pada bagian coding yang selanjutnya void Awal::tampilhasil() bagian ini digunakan
untuk menampilkan hasil/nilai dari perhitungan pada fungsi-fungsi sebelumnya
dengan menggunakan parameter Tinggi, Volume, dan Keliling Kotak yang akan
tampil pada ouput program nanti untuk hasil nilai dari keliling kotak.

int main()
{
Awal ppanjang (5, 9);
ppanjang.hitungluas();
ppanjang.hitungkeliling();
ppanjang.tampilhasil();
cout<<endl;
Kotak kotak (11, 12, 13);
kotak.hitungluas();
kotak.hitungvol();
kotak.tampilhasil();
getch();
return 0;
}

Pada bagian penjelasan coding yang terkahir Pada bagian ini merupakan bagian
utama program. int main() Pada bagian ini, dilakukan pendeklarasian/penginputan
nilai untuk Persegi panjang (5, 9) dan Kotak (11, 12, 13) yang akan digunakan untuk
melakukan proses penghitungannya nanti.
Kemudian pada baris selanjutnya terdapat fungsi yaitu getch(); yang berfungsi untuk
menangkap tampilan pada layar dan program tidak akan tertutup sendiri sebelum
tombol pada keyboard ditekan.Fungsi ini mirip dengan fungsi readkey pada pascal,
fungsi ini diambil dari file conio.h yang merupakan header yang berguna untuk
memanggil fungsi standar yang sudah ada pada C++. Pada bagian akhir dari fungsi
main ini ada tertulis sebuah kode yaitu return 0;, yang berarti apabila program ini
dieksekusi maka akan memberikan nilai kembalian 0 yang artinya program

dijalankan tanpa error.inilah alasan kenapa fungsi ini menggunakan int (integer)
sebagai nilai kembalinya.
Kemudian akhiri program dengan tanda kurung kurawal tutup ( } ).
Hasil output dari program :

BAB IV
KESIMPULAN
Pewarisan merupakan sebuah Kelas yang menurunkan sifat-sifat class disebut
kelas dasar (base class), sedangkan yang kelas baru yang mewarisi sifat kelas
dasar disebut kelas turunan (derived class).
Float merupakan tipe data yang menyatakan bilangan pecahan.
fungsi strcyp adalah untuk penyalinan(copy) string.
KONSTRUKTOR adalah fungsi anggota yang mempunyai nama sama dengan
nama kelasnya, sebagai fungsi yang tidak mempunyai nilai balik, harus diletakkan
pada bagian public, dijalankan secara otomatis saat objek diciptakan , dapat
memiliki argument dan argument dengan nilai default, dapat diletakkan
overloading . Kegunaannya : mengalokasikan ruang bagi sebuah objek ,
memberikan nilai awal terhadap anggota data suatu objek , membentuk tugastugas umum lainnya , melakukan tugasnya pada saat objek diciptakan .
(//) merupakan sebuah komentar.

BAB V
DAFTAR PUSTAKA

Modul Praktikum Algoritma dan Pemrograman II, Jurusan Teknik Informatika


Universitas Palangkaraya, 2015.
http://mungjava.blogspot.com/2009/05/memahami-konsep-inheritance
pewarisan.html ( diakses pada hari rabu tanggal 30 april 2015 pukul 23:53 WIB)
http://www.findamo.com/search.html?q=pewarisan+pada+pemrogaman+c+
+&region=id&lang=en ( diakses pada hari rabu tanggal 2 mei 2015 pukul 01:00
WIB)

BAB VI
LAMPIRAN

Program pertama :

Output program pertama :

Program kedua :

Output Program kedua :