Anda di halaman 1dari 18

BAB I

TUJUAN DAN LANDASAN TEORI

1.2 TUJUAN
Setelah menyelesaikan modul ini, mahasiswa diharapkan mampumembuat
kelas baru dari kelas yang sudah ada dengan pewarisan.

1.1 LANDASAN TEORI


Pewarisan (inheritance) adalah penurunan sifat yang ada pada suatu kelas kepada
kelas baru yang menjadi turunannya. Sifat-sifat suatu kelas ditentukan oleh data
anggota dan metode, sehingga yang dimaksud penurunan sifat adalah penurunan data
anggota atau metode. Kelas yang menurunkan sifat disebut kelas dasar (base class),
sedangkan yang kelas baru yang mewarisi sifat kelas dasar disebut kelas turunan
(derived class).
Dengan pewarisan dapat diciptakan suatu kelas baru yang mana kelas tersebut
mewarisi seluruh sifat kelas dasar yang mempunyai akses public atau protected
ditambah sifat khusus dari kelas yang bersangkutan. Ketentuan ini tidak berlaku
sebaliknya, artinya sifat yang ada pada kelas turunan tidak diwariskan pada kelas dasar.
Ketentuan utama dengan adanya pewarisan yaitu memungkinkan suatu kode yang telah
ditulis mudah sekali untuk digunakan kembali. Anda telah membuat suatu kelas yang
telah diuji. Jika suatu nanti, anda ingin menerapkan kode tersebut pada sesuatu yang
mempunyai sifat-sifat kelas tersebut, anda tinggal mewariskan kelas yang telah ada di
kelas baru (kelas turunan). Anda tidak perlu mengotak-atik kelas yang teruji, sehingga
efek samping yang tidak diharapkan tidak terjadi. Dengan cara ini pengembangan
program menjadi lebih efisien dan menghemat waktu. Selain itu, kita dapat
menambahkan sifat-sifat baru yang tidak ada pada kelas dasar atau bahkan dapat
mengganti sifat-sifat pada kelas turunan, yang berbeda dengan sifat kelas dasar.
Selain melakukan katagorisasi terhadap objek yang memiliki sekumpulan atribut dan
perilaku yang sama, manusia sering melakukan pengelompokan terhadap objek yang
memiliki kesamaan atas beberapa (tidak semua) atribut/perilaku. Contoh:
Pengelompokan atas kendaraan bermotor, kemudian menggrupkannya berdasarkan
suatu tipe atau jenis (mobil, truk, sepeda motor, dll.). Setiap subkatagori ini 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-katagori 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 satu 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
dimana 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 dan 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 reusabilitas 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 kelas turunan. Kelas turunan dapat
merujuk/mengakses langsung public dan protected data member kelas induk dengan
menggunakan nama atribut yang yang diakses.
BAB II
PEMBAHASAN

2.1 Program pertama

Gambar 2.1.1. program pertama

#include adalah sebuah prosesor pengarah yang mengatakan kepada kompiler untuk
meletakan kode dari header file. Dan <iostream.h> adalah sebuah header file yang
digunakan untuk menampilkan perintah :
a. Cin
Merupakan fungsi masukan(digunakan untuk menyimpan data dalam suatu variabel).
Bentuk umum: cin>>var x;
b. Cout
Merupakan fungsi keluaran(digunakan untuk menampilkan data ataupun tulisan).
Bentuk umum: cout<<tulisan; atau cout<<var x;
c. Endl
Digunakan untuk pindah baris/ enter. Bentuk umum: cout<<tulisan<<endl;
d. Ends

<conio.h> adalah sebuah header file yang digunakan untuk menampilkan perintah :
a. getch
berfungsi untuk menahan tampilan. Bentuk umum: getch();
b. clrscr
berfungsi untuk membersihkan layar. Bentuk umum: clrscr;
c. getche
Fungsi dipakai untuk membaca sebuah karakter dengan sifat karakter yang dimasukkan
tidak perlu diakhiri dengan menekan tombol ENTER, dan karakter yang dimasukan
ditampilkan di layar.
d. Putch
Akan menampilkan karakter ASCII dari nilai x ke layer monitor tanpa memindahkan
letak kursor ke baris berikutnya.
e. Clreol
Fungsi ini digunakan untuk membersihkan layar mulai dari posisi kursor hingga kolom
terakhir, posisi kursor tiak berubah.
f. Gotoxy
Fungsi gotoxy digunakan untuk memindahkan kursor ke kolom x, baris y.
g. Wherex
Fungsi wherex digunakan untuk mengembalikan posisi kolom kursor.
h. Wherey
Fungsi wherey digunakan untuk mengembalikan posisi baris kursor.
i. Window
Fungsi window digunakan untuk mendefinisikan sebuah window berdasarkan koordinat
kiri atas dan kanan bawah.

Gambar 2.1.2. program pertama

Baris program di atas terdapat class dengan nama Point, yang mempunyai methods
dengan mode akses public yang berarti menyebabkan anggota dari public dari sebuah kelas
utama akan menjadi anggota public kelas turunan dan menyebabkan juga anggota protect
kelas utama menjadi anggota protect kelas turunan, namun untuk anggota kelas private tetap
pada private kelas utama, selanjutnya ada constructor yaitu Point mempunyai data member
dua buahyang mempunyai tipe data yaitu float, yang keduanya mempunyai nilai 0.0.
dimethods ini mempunyai fungsi void dengan nama cetakPoint. Baris selanjutnya merupakan
attribute dari class Point dengan mode akses private yang berarti akses berbasis private
menyebabkan anggota dari anggota public dari kelas utama akan menjadi anggota protect
kelas turunan, dan menyebabkan anggota dari kelas utama menjadi anggota protect kelas
turunan, namun untuk anggota kelas private tetap pada private kelas utama, di attribute ini
mempunyai variabel dengan nama x, y, yang semuanya bertipe float.

Gambar 2.1.3. program pertama

Dibagian ini constructor Point yang bertugas untuk mendefinisikan dua buah data
memeber dari Point yaitu dengan a, b. Selanjutnya data member dari Point yaitu a, b, akan di
serahkan/sama dengan yaitu variabel x=a, y=b, dan cout menampilkan string Konstruktor
Point dijalankan .

Gambar 2.1.4. program pertama

Selanjutnya dibagian ini terdapat fungsi cetakPoint yang bertujuan untuk


mencetak/menampilkan string dan memasukan nilai variabel x dan y ke string tersebut.
Gambar 2.1.5. program pertama

Baris program di atas adalah pewarisan yaitu class Circle yang mewarisi methods dan
attribute dari class Point yang mode akses bersifat public. Sealnjutnya constructor Circle
yang di tambah satu variable yaitu variabel r dengan tipe data float. Disini membaut variabel
baru yaitu dengan nama area dengan tipe data float, dan ada fungsi void cetakPoint yang telah
diwarisi dari class cetakPoint. Selanjutnya ada attribute yang mode aksesnya bersifat
protected, dibagian ini terdapat variabel dengan nama radius, dan l yang keduanya
mempunyai tipe data float.

Gambar 2.1.6. program pertama

Baris program di atas adalah constructor Circle mewarisi data member dari construktor
Point yaitu variabel a dan b. Selanjutnya cout menampilkan string Konstruktor Circle
dijalankan, dan nilai dari variabel r di pindahkan ke variabel radius.

Gambar 2.1.7. program pertama

Selanjutnya ada fungsi area() yang bertipe data float dari class Circle yang mempunyai
statement yaitu variabel l=3.14*radius*radius yang merupakan rumus dari luas liangkaran,
dan return l yang merupakan nilai balikan dari fungsi. Nilai yang dibalikan adalah nilai dari
perhitungan variabel l.

Gambar 2.1.8. program pertama


Baris program di atas merupakan fungsi void cetakPoint() dari class Circle, yang
mempunyai statement pemanggilan fungsi cetakPoint() dari class Point. Selanjutnya ada cout
menampilkan string dan nilai dari variabel radius, x, y, dan l.

Gambar 2.1.9. program pertama


Baris program diatas membuat class baru yaitu class dengan nama Cylinder yang
merupakan turunan dari class Circle yang mode aksesnya bersifat public. Dibagian
selanjutnya ada metods yang mode aksesnya bersifat public, disini ada konstruktor Cylinder
yang mewarisi constructor dari Circle, yang di tambahkan variabel h dengan tipe data float
yang mempunyai nilai 0.0. Variabel area disini merupakan variabel turunan dari class Circle,
dan membuat variabel baru dengan nama vol, dan juga ada fungsi cetakPoint yang
merupakan turunan dari class Circle. Selanjutnya ada attribute dengan mode akses bersifat
protected, variabel l merupakan variabel turunan dari class Circle, dan variabel height, v yang
bertipe float adalah variabel baru.

Gambar 2.1.10. program pertama

Baris program di atas adalah constructor Cylinder mewarisi data member dari
construktor Circle yaitu variabel a, b dan r. Selanjutnya cout menampilkan string
Konstruktor Cylinder dijalankan, dan nilai dari variabel h di pindahkan ke variabel height.

Gambar 2.1.11. program pertama

Selanjutnya ada fungsi area() yang bertipe data float dari class Cylinder yang
mempunyai statement yaitu variabel l=(2*Circle::area() + 2*3.14*radius*height) yang
merupakan rumus dari luas tabung, dan return l yang merupakan nilai balikan dari fungsi.
Nilai yang dibalikan adalah nilai dari perhitungan variabel l.
Gambar 2.1.12. program pertama
Selanjutnya ada fungsi vol() yang bertipe data float dari class Cylinder yang
mempunyai statement yaitu variabel v=(Circle::area()*heught) yang merupakan rumus dari
volume tabung, dan return v yang merupakan nilai balikan dari fungsi. Nilai yang dibalikan
adalah nilai dari perhitungan variabel v.

Gambar 2.1.13. program pertama

Baris program di atas merupakan fungsi void cetakPoint() dari class Cylinder, yang
mempunyai statement pemanggilan fungsi cetakPoint() dari class Circle. Selanjutnya ada
cout menampilkan string dan nilai dari variabel heoght, l, dan v.

Gambar 2.1.14. program pertama

Baris program di atas merupakan inti dari fungsi-fungsi yang sudah dideklarasikan,
pada bagian construktor Point di wakilkan huruf p, p disini mengisi nilai dari constructor
Point yaitu dengan nilai (1.1, 2.2). Dan constructor Circle diwakilkan dengan lingkaran,
lingakran disini mengisi nilai dari constructor Circle yaitu (10, 5, 5), dan construktor Cylinder
di wakilkan dengan tabung, tabung disini mengisi nilai dari constructor Cylinder yaitu
dengan nilai (20, 30, 3, 4). Dan ada getch() berfungsi untuk menahan tampilan di layar, dan
juga ada return 0 yang berarti program berakhir dan tidak error.
2.2 Program tugas

Gambar 2.2.1. program tugas

#include adalah sebuah prosesor pengarah yang mengatakan kepada kompiler untuk
meletakan kode dari header file. Dan <iostream.h> adalah sebuah header file yang
digunakan untuk menampilkan perintah :
a. Cin
Merupakan fungsi masukan(digunakan untuk menyimpan data dalam suatu variabel).
Bentuk umum: cin>>var x;
b. Cout
Merupakan fungsi keluaran(digunakan untuk menampilkan data ataupun tulisan).
Bentuk umum: cout<<tulisan; atau cout<<var x;
c. Endl
Digunakan untuk pindah baris/ enter. Bentuk umum: cout<<tulisan<<endl;
d. Ends

<conio.h> adalah sebuah header file yang digunakan untuk menampilkan perintah :
a. getch
berfungsi untuk menahan tampilan. Bentuk umum: getch();
b. clrscr
berfungsi untuk membersihkan layar. Bentuk umum: clrscr;
c. getche
Fungsi dipakai untuk membaca sebuah karakter dengan sifat karakter yang dimasukkan
tidak perlu diakhiri dengan menekan tombol ENTER, dan karakter yang dimasukan
ditampilkan di layar.
d. Putch
Akan menampilkan karakter ASCII dari nilai x ke layer monitor tanpa memindahkan
letak kursor ke baris berikutnya.
e. Clreol
Fungsi ini digunakan untuk membersihkan layar mulai dari posisi kursor hingga kolom
terakhir, posisi kursor tiak berubah.
f. Gotoxy
Fungsi gotoxy digunakan untuk memindahkan kursor ke kolom x, baris y.
g. Wherex
Fungsi wherex digunakan untuk mengembalikan posisi kolom kursor.
h. Wherey
Fungsi wherey digunakan untuk mengembalikan posisi baris kursor.
i. Window
Fungsi window digunakan untuk mendefinisikan sebuah window berdasarkan koordinat
kiri atas dan kanan bawah.

Gambar 2.2.2. program tugas

Baris program di atas ada class dengan nama Balok methods dengan mode akses public
yang berarti menyebabkan anggota dari public dari sebuah kelas utama akan menjadi anggota
public kelas turunan dan menyebabkan juga anggota protect kelas utama menjadi anggota
protect kelas turunan, namun untuk anggota kelas private tetap pada private kelas utama,
mempunyai constructor Balok(), dan ada fungsi void dengan nama SetUkuran yang
mempunyai data member 3 buah tipe dta yaitu float yang belum di tentukan nama
variabelnya. Dan ada dua fungsi yang bertipe data double dengan nama hitungVolume dan
hitungKeliling. Selanjutnya ada attribute yang mode aksesnya bersifat protectred yang
berarti akses berbasis private menyebabkan anggota dari anggota public dari kelas utama
akan menjadi anggota protect kelas turunan, dan menyebabkan anggota dari kelas utama
menjadi anggota protect kelas turunan, namun untuk anggota kelas private tetap pada private
kelas utama, di attribute ini mempunyai tiga variabel yang bertipe float dengan nama pjg, lbr,
dan tinggi.

Gambar 2.2.3. program tugas


Pada bagian ini, Constructor Balok tidak mempunyai parameter. Constructor ini
berguna untuk inisialisasi awal dari program yaitu memberikan nilai 0 pada variable pjg, lbr,
dan tinggi.

Gambae 2.2.4. program tugas

Baris program di atas ada fungsi SetUkuran yang mempunyai tiga buah parameter yang
semuanya bertipe data float, yaitu p, l, t. Selanjutnya ada variabel p, l, t, yang nilainya
dipindahkan ke variabel pjg, lbr, tinggi. Fungsi ini berguna untuk mentranslasikan variable
global ke variable local.

Gambar 2.2.5. program tugas

Fungsi hitungVolume() dan hitungKeliling() digunakan untuk memberikan nilai balikan


sesuai dengan rumus yang ditentukan yaitu untuk rumus volume adalah pjg*lbr*tinggi dan
untuk rumus keliling adalah 4*(pjg+lbr+tinggi). Itu sebabnya kedua fungsi ini menggunakan
tipe data double karena digunakan untuk melakukan proses perhitungan yang akan
memberikan nilai balikan.

Gambar 2.2.6. program tugas

Baris program di atas, pada kelas Persegi ini merupakan pendeklarasian dari fungsi
fungsi dan variabel yang ada pada kelas Persegi. Semua fungsi yang ada pada kelas Persegi
ini diturunkan dari kelas Balok tadi. Perbedaannya terdapat pada variable yang digunakan,
jika dikelas balok tadi ada 3 variabel yang digunakan, di kelas Persegi ini hanya ada 2
variabel yang akan digunakan. Rumus di fungsi hitungVolume() dan hitungKeliling() juga
berbeda dengan kelas Balok, hal ini karena tujuan dari fungsi fungsi tersebut berbeda
namun memiliki kegunaan yang sama, yaitu perhitungan.

Gambar 2.2.7. program tugas

Fungsi SetUkuran() mempunyai dua buah parameter yang semuanya bertipe data float,
yaitu p, dan l. Selanjutnya ada variabel p, l, yang nilainya dipindahkan ke variabel pjg, lbr.
Fungsi ini berguna untuk mentranslasikan variable global ke variable local.
Gambar 2.2.8. program tugas

Fungsi hitungVolume() dan hitungKeliling() yang ada pada kelas Persegi ini tidak jauh
berbeda dengan yang ada di kelas Balok. Digunakan untuk memberikan nilai balikan sesuai
dengan rumus yang ditentukan. Itu sebabnya kedua fungsi ini menggunakan tipe data double
karena digunakan untuk melakukan proses perhitungan yang akan memberikan nilai balikan.

Gambar 2.2.9. program tugas

Bagian main() ini merupakan inti dari program tugas, dibagian program ini terdapat
baris program yang berfungsi untuk meminta user program untuk menginputkan masukan
sesuai yang diminta. Hasil inputan user tadi akan diproses oleh fungsi fungsi yang telah
dideklarasikan dari tiap kelas yang ada. Fungsi fungsi tersebut dipanggil dibagian main()
ini. Saat program berhasil berjalan tanpa ada error maka inti program ini akan memberikan
kembalian nilai yaitu 0.
BAB III
KESIMPULAN

Inheritance / pewarisan adalah cara untuk menghemat penggunaan objek / fungsi dalam
kelas. Jadi saat membuat kelas baru tidak perlu membuat kelas dasar yang baru. Cukup
dengan membuat kelas turunan dari kelas yang ada. Karena sifatnya yang khusus yaitu dapat
mewariskan fungsi dan variabel yang ada pada kelas dasar dan ditambah dengan fungsi dan
variabel kelas turunan itu sendiri.
BAB IV
DAFTAR PUSTAKA

Kakkim, Aliy, Wajar.2014.Jenis Header File C++ dan Contoh Programnya Aliy Kakkim
http://tekhno-silver.blogspot.co.id/2014/03/jenis-header-file-c-dan-contoh.html.Diakses
pada tanggal 15 Mei 2017

Skywriter, Ricko.2013.Belajar C++ PBO BAB III Pewarisan


http://axeashari.blogspot.co.id/2013/06/belajar-c-pbo-bab-iii-pewarisan.html.Diakses
pada tanggal 17 Mei 2017

Tim Dosen Teknik Informatika 2017 Modul Praktikum


Algoritma Dan Pemograman II Palangkaraya UPR Fakultas Teknik

Winstead, Ariando.2014.Pewarisan (Inheritance) Pada C++


http://ariando36.blogspot.co.id/2014/04/pewarisan-inheritance-pada-c.html.Diakses
pada tanggal 15 Mei 2017
BAB V
LAMPIRAN

Gambar 5.1. program pertama

Gambar 5.2. program pertama

Gambar 5.3. program pertama

Gambar 5.4. program pertama

Gambar 5.5. program pertama

Gambar 5.6. program pertama

Gambar 5.7. program pertama


Gambar 5.8. program pertama

Gambar 5.9. program pertama

Gambar 5.10. program pertama

Gambar 5.11. program pertama

Gambar 5.12. program pertama

Gambar 5.13. program pertama


Gambar 5.14. program pertama

Gambar 5.15. output program pertama

Gambar 5.16. program tugas

Gambar 5.17. program tugas

Gambar 5.18. program tugas


Gambar 5.19. program tugas

Gambar 5.20. program tugas

Gambar 5.21. program tugas

Gambar 5.22. program tugas

Gambar 5.23. program tugas


Gambar 5.24. program tugas

Gambar 5.25. output program tugas

Anda mungkin juga menyukai