PEMROGRAMAN
BERORIENTASI OBJEK
LABORATORIUM KOMPUTER
D3 TEKNIK INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
NURUL FADILLA(142406086)
KOM B-2 20141 DAFTAR ISI
DAFTAR ISI ... 1
PETUNJUK PENGGUNAAN... 2
MODUL 1 ... 4
PENGENALAN PEMROGRAMAN BERORIENTASI OBJEK ... 4
MODUL 2 ... 6
FUNGSI ... 6
MODUL 3 ... 13
CLASS/OBJEK ... 13
MODUL 4 ... 19
HAK AKSES... 19
MODUL 5 ... 22
KONSTRAKOR/ DESTRAKTOR ... 22
A. Konstraktor ... 22
B. Destruktor ... 23
MODUL 6 ... 26
INHERITANCE ... 26
MODUL 7 ... 29
OVERLOADING ... 29
LAMPIRAN TUGAS ... 33
2 PETUNJUK PENGGUNAAN
Dalam materi perkuliahan “PEMROGRAMAN BERORIENTASI OBJEK” disini kita
menggunakan code block sebagai compiler otomatis disamping kita menggunakan cara
compiler manual melalui DOS mode ( command prompt ).
Empty file
Build Open
Save
Build and Run
Output
3 Untuk menyimpan file kita klik tombol save
PEMBIMBING ASLAB
Nama : Jimmi Avilla Sinaga
Stambuk : 2013
NIM : 132406115
KOM : C
4 MODUL 1
PENGENALAN PEMROGRAMAN BERORIENTASI OBJEK
OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi
objek. Tujuan dari OOP yaitu untuk mempermudah pengembangan program dengan cara
mengikuti model yang telah ada di kehidupan sehari-hari. setiap bagian dari permasalahan
adalah objek, dan objek itu sendiri merupakan gabungan dari beberapa objek. contoh: pesawat
terbang. pesawat terbang terbentuk dari beberapa objek yang lebih kecil lagi yaitu seperti
mesin, roda, baling-baling, kursi, sayap, dan lain lain. pesawat tersebut terbentuk dari
kumpulan objek-objek yang lebih kecil dan saling berhubungan satu sama lainnya, saling
berinterasi, berkomunikasi dan saling mengieim pesan kepada objek-objek lainnya. begitu pula
dengan program, sebuah program memiliki objek yang besar yang terdiri dari objek objek yang
lebih kecil agar lebih mudah untuk dikembangkan. objek objek tersebut akan saling
berinteraksi satu sama lain sehingga program tersebut dapat dijalankan.
Pemrograman Berorientasi Objek sebenarnya bukanlah bahasa pemrograman baru,
tetapi jalan baru untuk berpikir dan merancang aplikasi yang dapat membantu memecahkan
persoalan mengenai pengembangan perangkat lunak. Pemrograman berorientasi objek disusun
dan dipahami oleh ilmuwan yang memandang dunia sebagai populasi objek yang berinteraksi
dengan yang lain. Prosedur yang digunakan dalam objek dipandang sebagai kepentingan kedua
karena tergantung pada objek itu sendiri.
Pemrograman Berorientasi Objek Pemrograman Berorientasi Objek (PBO) metode
pemrograman yang meniru cara kita memperlakukan sesuatu(benda). Ada tiga karakteristik
bahasa Pemrograman Berorientasi Objek, yaitu:
a. Pengkapsulan(Encapsulation): mengkombinasikan suatu struktur dengan fungsi yang
memanipulasinya untuk membentuk tipe data baru yaitu kelas (class).
b. Pewarisan(Inheritance): mendefinisikan suatu kelas dan kemudian menggunakannya
untuk membangun hirarki kelas turunan, yang mana masing-masing turunan mewarisi
semua akses kode maupun data kelas dasarnya.
c. Polimorphisme(Polymorphism): memberikan satu aksi untuk satu nama yang dipakai
bersama pada satu hirarki kelas, yang mana masing-masing kelas hirarki menerapkan
5 Fungsi :
Mempelajari dan memahami materi perkuliahan pemrograman berorientasi objek serta mampu
membuat program sederhana.
Materi :
Fungsi, class/objek, hak akses (public,pivate, protected), konstruktor dan destruktor,
inheritance, dan overloading/reading.
Referensi :
Google.com
https://rahayuda.files.wordpress.com/2012/05/pengenalan-pbo2.pdf
http://www.duniailkom.com/tutorial-belajar-oop-php-pengertian-enkapsulasi-objek-public-protected-dan-private/
6 MODUL 2
FUNGSI
Program di dalam C++ merupakan kumpulan fungsi , Fungsi / Function adalah satu blok kode
yang melakukan tugas tertentu atau satu blok instruksi yang di eksekusi ketika dipanggil dari
bagian lain dalam suatu program. Baik fungsi yang didefinisikan langsung di dalam program
maupun yang disimpan di dalam file header. C++ mempunyai fungsi utama yaitu main ( ). Pada
C++ tidak dikenal istilah prosedur seperti yang terdapat pada bahasa Pascal. Artinya semua
disebut istilah fungsi.
Tujuan pembuatan fungsi adalah :
a. Memudahkan dalam pembuatan program.
b. Menghemat ukuran program.
Keuntungan memakai fungsi :
a. Menguraikan tugas pemrograman rumit menjadi langkah-langkah yang lebih sederhana
atau kecil.
b. Mengurangi duplikasi kode (kode yang sama ditulis berulang-ulang) dalam program.
c. Dapat menggunakan kode yang ditulis dalam berbagai program yang berbeda.
d. Memecah program besar menjadi kecil sehingga dapat dikerjakan oleh
programmer-programmer atau dipecah menjadi beberapa tahap sehingga mempermudah pengerjaan
dalam sebuah projek
e. Menyembunyikan informasi dari user sehingga mencegah adanya perbuatan iseng
seperti memodifikasi atau mengubah program yang kita buat
f. Meningkatkan kemampuan pelacakan kesalahan, jika terjadi suatu kesalahan kita
tinggal mencari fungsi yang bersangkutan saja dan tak perlu mencari kesalahan tersebut
di seluruh program.
Bentuk umum Sebuah fungsi adalah sebagai berikut :
Tipedata namafungsi(daftarparameter)
{
/*Badan Fungsi*/
7 Bahasa pemrograman C++ harus memiliki fungsi (funtion), minimal satu fungsi yaitu fungsi
main(). Dalam C++, program merupakan kumpulan dari fungsi-fungsi, baik itu fungsi yang
didefenisikan secara langsung dalam program maupun fungsi yang disimpan dalam suatu file
header. C++ mempunyai fungi utama yang disebut fungsi main ( ). Fungsi utama ini selalu ada
dalam setiap program C++ dan compiler akan menjalankan program melalui perintah-perintah
yang terdapat dalam fungsi ini.
Fungsi merupakan subprogram yang berguna untuk membuat program dapat menjadi
medular sehingga akan lebih mudah dipahami dan dapat digunakan kembali, baik untuk
program itu sendiri maupun untuk program lain yang memiliki proses yang sama.
Pada bahasa pemrograman C++, fungsi dibedakan menjadi dua, yaitu user-defined function
dan built-in function. user-defined function adalah fungsi-fungsi yang didefenisikan sendiri,
sedangkan built-in function adalah fungsi-fungsi siap pakai yang telah disediakan oleh
compiler. Namun, Fungsi di dalam C++ dikelompokkan menjadi dua bagian yaitu :
a. Fungsi dengan nilai balik (return value )
Fungsi ini akan mengembalikan nilai yang dihasilkan dari proses di dalam bidang
fungsi itu sendiri yang dinyatakan dengan tipe data yang dibutuhkan. Ciri-ciri dari jenis
fungsi non void adalah sebagai berikut:
Ada keyword return
Ada tipe data yang mengawali fungsi
Tidak ada keyword void
Memiliki nilai kembalian.
Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu
sehingga dapat langsung ditampilkan hasilnya
8 Contoh fungsi non void :
#include <iostream.h> #include <conio.h>
int volume(int p, int l, int t) { int vol;
vol = p*l*t; return vol; } main(){
int pj,lb,hsl,tg;
cout<<"Panjang = ";cin>>pj; cout<<"Lebar = ";cin>>lb; cout<<"Tinggi = ";cin>>tg; hsl=volume(pj,lb,tg);
cout<<"\nLuasnya = "<<hsl; getch();
}
b. Fungsi tanpa nilai balik
Fungsi tanpa nilai balik ini banyak digunakan untuk melakukan suatu proses yan tidak
berhubungan dengan nilai. Dengan kata lain fungsi ini tidak memberikan hasil berupa
9 Ciri-ciri dari jenis fungsi Void adalah sebagai berikut:
- Tidak adanya keyword return.
- Tidak adanya tipe data di dalam deklarasi fungsi.
- Menggunakan keyword void.
- Tidak dapat langsung ditampilkan hasilnya.
- Tidak memiliki nilai kembalian fungsi.
Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun.
Void : void tampilkan_jml (int a, int b)
Bentuk umum fungsi void
{
int jml;
jml = a + b; cout<
}
Contoh fungsi void :
#include <iostream.h> #include <conio.h>
void volume(int &vol, int p, int l, int t) { vol = p*l*t; }
main(){
int pj,lb,tg, hsl;
cout<<"Panjang = ";cin>>pj;
10 volume(hsl,pj,lb,tg);
cout<<"\nVolume = "<<hsl; getch();
}
Sekarang akan dibuat fungsi dengan parameter sehingga hasil yang diberikan dapat
bersifat dinamis, tentu saja bergantung dari nilai parameter yang dimasukkan. Parameter yang
terdapat pada pendefenisian suatu fungsi disebut dengan parameter formal, sedangkan
parameter yang terdapat pada saat pemanggilan disebut dengan parameter aktual. Jumlah serta
tipe data antara parameter formal dan parameter aktual haruslah sesuai, jika tidak maka
compiler akan menampilkan pesan kesalahan. Ada 3 jenis parameter yang dapat dilewatkan
pada sebuah fungsi dalam bahasa pemrograman C++, yaitu:
- parameter masukan
- parameter keluaran
- parameter gabungan antara masukan dan keluaran.
Parameter masukan digunakan sebagai nilai masukan dalam sebuah fungsi. Nilai tersebut
kemudian akan diproses oleh fungsi untuk menghasilkan sebuah nilai kembalian (return value).
Pembuatan fungsi di dalam bahasa C++ biasanya menempatkan parameter (variable yang di
daklarasikan pada nama sebuah fungsi) di dalamnya. Parameter terbagi dua :
a. Parameter formal
Adalah parameter yang terdapat saat fungsi itu dibuat
b. Parameter aktual
11 Contoh program :
#include<iostream> using namespace std;
main () {
int a, b, hasil;
cout<<"masukkan angka pertama : "; cin>>a; cout<<"masukkan angka kedua : "; cin>>b; hasil = a+b;
cout<<"hasil = "<<hasil; }
Contoh program :
#include<iostream> using namespace std;
void kirim() {
12 main()
{
13 MODUL 3
CLASS/OBJEK
Class adalah sebuah prototipe yang mendepenisikan variable dan metode untuk semua objek.
Biasanya class terdapat nama kelas, atribut dan lain – lain. Class merupakan contoh abstrak
dari sebuah objek yang telah terbentuk dari proses penyederhanaan. Adapun contoh nyata dan
perwujudan dari sebuah objek dinamakan instance. Misalnya terdapat kelas manusia, contoh
instance ( wujud nyata ) dari kelas tersebut adalah nurul, endang , gita , dita dan lainnya. Begitu
pula nanti, jika kamu mulai membuat program. Objek – objek lainnya yang merupakan
perwujudan dari kelas tertentu.
Untuk membuat sebuah kelas di dalam C++, digunakan keyword class. adapun bentuk
umum pendeklarasian dapat dilihat sebagai berikut :
Class nama_kelas{ Tingkat_akses :
Deklarasi data; Deklrasi fungsi; };
Setelah pendeklarasian, tentu fungsi – fungsi yang terdapat di dalamnya akan didefenisikan.
Pendefenisian fungsi – fungsi yang terdapat di luar badan kelas harus menggunakan operator
::. Pendefinisian fungsi – fungsi yang terdapat pada suatu kelas juga dapat dilakukan di dalam
badan kelas. Fungsi – fungsi tersebut dikenal dengan istilah automatic inline fungtion
Adapun untuk mengakses data – data atau fungsi – fungsi yang telah didefiniskan pada
suatu kelas adalah dengan menggunkan tanda titik (.) dan jika kelas telah dideklarasikan
sebagai pointer, pengaksesnya dilakukan dengam tanda ->.
Objek merupakan instansi yang terdapat dalam kelas yang secara umum sebagai wadah
untuk mempresetansikan suatu objek. Elemen penyusunnya :
Atribut ( ciri yang melekat pada suatu objek/state)
Methot (fungsi yang digunakan untuk memanipulasi nilai nilai pada atribut atau untuk
14 Bagian-bagian dari sebuah Class secara umum penulisan class terdiri atas beberapa bagian
yakni:
1. Class Declaration
Bentuk Umum :
[modifier] class <nama_kelas>
{
<class body>
}
[modifier] adalah pengaturan level akses terhadap kelas tersebut. Dengan kata lain,
modifier ini akan menentukan sejauh mana kelas ini dapat digunakan oleh kelas atau
package lainnya. Adapun macam-macam modifier ialah :
a. kosong / default / not specified
Kelas tersebut dapat diakses oleh kelas lain dalam satu package.
b. public
Kelas tersebut dapat dipakai dimanapun, maupun kelas lain atau package lain.
c. Private
Kelas tersebut tidak dapat diakses oleh kelas manapun.
2. Class Body
Class Body merupakan bagian dari kelas yang mendeklarasikan kode program java. Class
Body tersusun atas:
a. Konstruktor
b. Variable Instance (Atribut)
c. Method (dikenal juga sebagai function atau def)
Untuk dapat menggunakan kelas yang telah didefinisikan, anda harus membuat sebuah
objek dari kelas tersebut (instance class), dengan syntax:
NamaKelas namaObjek = new NamaKelas ( [parameter] );
Contoh:
15 3. Instance Variables (Atribut)
Suatu objek dapat dibedakan berdasarkan sifat (behavior) yang berbeda. objek juga
dapat dibedakan berdasarkan atributnya. Misalnya burung dapat dibedakan berdasarkan
suara kicauan, warna bulu, bentuk tubuh, dsb. . Dalam bahasa lain dikenal juga sebagai
property yang mana merupakan ciri-ciri dari sebuah objek. Atribut yang membedakan suatu
instance objek burung yang satu dengan yang lainnya disebut instance variable.
Bentuk Umum :
[modifier] <tipe_data> <nama_variabel> = [nilai_default];
Contoh :
public double tinggi;
private int berat = 70;
Modifier untuk atribut, yaitu public, protected, private. Penjelasan modifier atribut
serupa dengan penjelasan modifier pada kelas. Adapun perbedaan local dan instance
variable adalah :
1. Instance variable dideklarasikan di dalam kelas tetapi tidak di dalam method.
class segitiga {
double tinggi = 15.2; // ini adalah variabel instance
String jenis; // ini adalah variabel instance
int tambah() {
return 3;
}
}
2. Local variable dideklarasikan di dalam method.
int tambah() {
int total = tinggi * 2; // total adalah variabel local
return total;
16 Object adalah instance dari class. Jika class secara umum merepresentasikan (template)
sebuah object, sebuah instance adalah representasi nyata dari class itu sendiri.
Contoh : Dari class Fruit kita dapat membuat object Mangga, Pisang, Apel dan
lain lain.
4. Membuat object
Untuk membuat object, kita menggunakan perintah new dengan sebuah nama
class yang akan dibuat sebagai instance dari class tersebut. Contohnya:
String str = new String();
Random r = new Random();
Pegawai p2 = new Pegawai();
Date hari = new Date();
hari adalah object reference dari class Date yang akan digunakan untuk mengakses class Date.
Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference ke
instance dari class Date().
Contoh program :
#include<iostream> using namespace std;
17 cout<<"bil 2 : ";
cin>>komting.b;
cout<<"bil 3 : "; cin>>komting.c;
cout<<"Hasil = "<<komting.a+komting.b+komting.c; cout<<endl;
}
Disini kita juga dapat menggunakan fungsi lebih dari satu serta menggabungkannya di dalam
suatu class. Contoh :
#include<iostream>
using namespace std;
class komb14{
public :
void nurul ();
void oranglain ()
{
18 cout<<endl;
cout<<endl;
cout<<"THANKS HONEY GOD BLESS YOU :*"<<endl;
}
};
void komb14 :: nurul ()
{
cout<<"HAPPY BIRTHDAY WONDERFUL MOM"<<endl;
cout<<"WISH YOU ALL THE BEST({})"<<endl;
}
int main ()
{
komb14 komting;
komting.nurul();
komting.oranglain();
}
19 MODUL 4
HAK AKSES
Pengaksesan properti dan method yang terdapat pada suatu kelas oleh lingkungan program di
luar kelas tersebut dapat dilakukan berdasarkan tingkat akses yang diberikan. Hak akses
adalah sebuah metode untuk mengatur struktur class dengan cara menyembunyikanalurkerja
dari class tersebut. Struktur class yang dimaksud adalah property dan method. Dengan hak
akses kita bisa membuat pembatasan akses kepada property dan method, sehingga
hanya property dan method tertentu saja yang bisa diakses dari luar class (information hiding).
Dengan hak akses kita bisa memilih property dan method apa saja yang boleh diakses,
dan mana yang tidak boleh diakses. Dengan menghalangi kode program lain untuk
mengubah property tertentu, class menjadi lebih terintegrasi, dan menghindari kesalahan
ketika seseorang ‘mencoba’ mengubahnya. Programmer yang merancang class bisa
menyediakan property dan method khusus yang memang ditujukan untuk diakses dari luar.
Hak akses terbagi sebagai berikut :
a. Public
Tingkat akses public menyebabkan semua property dan method yang terdapat dalam
sebuah kelas dapat diakses oleh kelas lain maupun oleh lingkungan luar. Untuk
mendefinisikan properti dan method sebagai public, maka digunakan keyword public.
b. Private
Jika dalam sebuah kelas properti dan method didefinisikan sebagai private, properti dan
method tersebut tidak dapat diakses maupun oleh lingkungan luar. Artinya hanya dapat
digunakan untuk keperluan kelas itu sendiri. Tingkat akses private ini didefinisikan
dengan menggunakan keyword private. Namun pada praktek keyword ini jarang
dituliskan karena secara default jika tingkat akses tidak dituliskan, akan dianggap
sebagai private.
c. Protected
Propety dan method dalam sebuah kelas yang didefinisikan sebagai protected hanya
dapat diakses oleh kelas itu sendiri dan kelas – kelas turunannya, tetapi lingkungan luar
tidak diizinkan sama sekali untuk mengaksesnya. Tingkat aksesp rotected didefinisikan
20
d. Published
Tingkat akses ini digunakan secara internal oleh C++ Builder, sehingga data – data
yang didefinisikan dalam tingkat akses ini dapat dihubungkan dengan object inspector
dapa IDE C++ Builder. Tingkat akses ini didefinisikan dengan menggunakan
keyword_published.
e. Keyword Friend
Keyword friend digunakan untuk membuat friend function, yaitu fungsi yang dapat
mengakses bagian private dari suatu kelas tanpa harus menjadi member function kelas
tersebut.
Contoh program :
#include<iostream>
using namespace std;
21 cout<<"berikan nilai l = ";
cin>>y;
kotak1.beri_nilai(x,y);
cout<<"\t\t\tLuas = "<<kotak1.luas()<<endl; }
Untuk hak akses protected, contoh program akan lebih terlihat perbedaannya pada materi
22 MODUL 5
KONSTRAKOR/ DESTRAKTOR
Konstraktor dan destraktor adalah sebuah fungsi yang dimana salah satu sebagai pembuat
sementara yang lain sebagai penghancur. Untuk lebih jelasnya kita akan bahas satu per satu
pada modul bagian ini.
A. Konstraktor
Destraktor adalah sebuah fungsi tanpa return type yang otomatis dipanggil secara otomatis
terhadap suatu kelas dan digunakan untuk melakukan inisialisasi dari data – data yang
terdapat di dalam kelas.
Karakteristik konstraktor :
1. Tidak mengembalikan nilai
2. Nama sama dengan nama kelas
3. Dijalankan bersamaan dengan terciptanya suatu objek.
4. Dapat didefinisikan dengan atau tanpa parameter
Fungsi konstruktor :
1. Mengalokasikan ruang bagi suatu objek
2. Memberikan nilai awal pada suatu objek
3. Membentuk tugas – tugas umum lainnya.
Jenis – jenis konstruktor :
1. Konstraktor default
Konstraktor yang tidak dapat menerima argumen, anggota data diberi nilai tertentu
2. Konstraktor penyalinan dengan paramater
Anggota dapat diberi nilai awa berasal dari parameter
3. Kontruktor penyalinan objek lain
23 B. Destruktor
Jika sebuah program tidak diperlukan lagi keberadaannya, sebaiknya kita melakukan
penghapusan kelas tersebut dari memory dengan cara membuat fungsi destruktor. Nama
destruktor juga harus sama dengan nama kelas, namun perlu diperhatikan bahwa di depan
nama tersebut ditambah tanda tilde (~).
Contoh program
#include<iostream>
using namespace std; class komB {
public : komB(){
cout<<"objek telah dibuat "<<endl; // konstruktor }
~komB(){
cout<<"objek telah dihapus"<<endl;} // destruktor
};
int main() {
24 Contoh program :
#include<iostream>
using namespace std; class komB {
cout<<"objek telah dibuat"<<endl;
}
int luas(){
return (panjang*lebar); }
~komB(){
cout<<"objek telah keluar"<<endl; }
};
int main() {
int a, b;
cout<<"masukan nilai a = "; cin>>a; cout<<"masukkan nilai b = "; cin>>b;
komB hitung(a, b);
cout<<"luas = "<<hitung.luas()<<endl; komB hi_itung (a,b);
cout<<"luas = "<<hi_itung.luas()<<endl;
26 MODUL 6
INHERITANCE
Inheritance adalah pewarisan yang berorientasi objek dimana kelas utama akan mewarisan
kepada kelas turunan lainnya. Syarat – syarat inheritance adalah Inheritance menggunakan hak
akses berupa protected apabila menggunakan kelas turunan yang memiliki isi atau adanya
variable dan tipe data. Inheritance merupakan salah satu konsep utama dalam Pemrograman
Berorientasi Objek. Inheritance memperbolehkan penggunaan kembali kode-kode yang ada
pada Base Class nya untuk diturunkan pada Derived Class.
Inheritance = Pewarisan , Mewariskan objek yang dimiliki ke pada objek yang
diturunkan , bersifatmenyeluruh. Inheritance adalah pewarisan sifat dari superclass ke subclass,
yang mewarisi attribute dan method yang masih sejenis beserta attribute dan method tambahan
yang merupakan sifat khusus subclass. Misalnya class sapi adalah hewan bertulang belakang /
vertebrata yang merupakan mamalia pemakan tumbuhan / herbivora. Keuntungan dari
inheritance adalah programmer dapat menggunakan coding dari superclass yang nantinyan
digunakan secara berulang ulang pada subclass tanpa harus menulisnya berulang kali juga.
Inheritance ini diawali dengan mendefinisikan superclass, dari itu dapat membuat
object yang berdasarkan superclassnya. Sehingga akan terbentuk subclass yang mana setiab
object subclass dapat mengakses semua data dan program yang dimiliki superclass. Inheritance
(pewarisan) adalah proses pembentukan satu class baru dari class lainnya. Dengan
memanfaatkan inheritance kode yang kita buat bisa digunakan lagi pada aplikasi lain maupun
pada aplikasi itu sendiri, sehingga kita tidak perlu susuah2 menuliskan lagi.
Class baru disebut Derived Class sedangkan class awal disebut Based Class.
untuk penjelasan pewarisan sudah cukup ya , langsung aja ke contoh program Inheritance Kelas
yang mewariskan biasa di sebut super class / class induk Kelas yang diwariskan biasa di sebut
sub class / kelas anakSecara lebih singkat begini :
A sebagai Ayah memiliki Anak bernama B , A berkulit Hitam maka B akan berkulit Hitam
juga Ini merupakan inheritance terhadap A kepada B , dan inheritance bukan hanya dapat 1x
27 A sebagai Ayah memiliki Anak bernama B , A berkulit Hitam maka B akan berkulit Hitam
juga. dan B pun memiliki anak C maka C pun akan berkulit hitam
Keuntungan dari inheritance :
– Tidak perlu mendefinisikan Variabel Bila membutuhkan , Cukup menurunkan dari class
induk
– Memudahkan dan Mempercepat pemprogramman , mengurangi Code
Inheritance terbagi 2 yaitu :
1. Derivate class ( class turunan ) dapat mengakses kelas utama
2. Best class ( class utama )
Contoh program :
#include<iostream> using namespace std;
class turunan
class persegi : public turunan {
public :
28 return (panjang*lebar);
} };
class nurul : public turunan {
public :
int luas () {
return (panjang*lebar/2); }
};
main () {
persegi objek;
objek.inisialisasi(5,2);
cout<<"Luas : "<<objek.luas(); cout<<endl;
nurul saya;
saya.inisialisasi(5,2);
cout<<"Luas : "<<saya.luas(); cout<<endl;
29 MODUL 7
OVERLOADING
7.1 Overloading
Overloading adalah suatu keadaan dimana beberapa method sekaligus dapat mempunyai nama
yang sama, akan tetapi mempunyai fungsionalitas yang berbeda. Overloading ini dapat terjadi
pada class yang sama atau pada suatu parent class dan subclass-nya. Tujuan dari Overloading
itu sendiri adalah untuk memudahkan pemanggilan atau penggunaan method dengan
fungsionalitas yang mirip Overloading mempunyai ciri-ciri sebagai berikut:
1. Nama method harus sama
2. Daftar parameter harus berbeda
3. Return type boleh sama, juga boleh berbeda
7.2 Overriding
Overriding yaitu mekanisme untuk melakukan pergantian method yang sebelumnya sudah
didefinisikan pada superclass dengan method yang sama(nama nya) yang ada di subclass.
Overriding method mempunyai nama method yang sama, jumlah parameter dan tipe parameter
serta nilai kembalian (return) method yang di override. Ciri-ciri overriding:
1. Nama method harus sama
2. Daftar parameter harus sama
3. Return type harus sama
Berbeda dengan overloading. Jika overloading, kita boleh menuliskan method yang sama
namun dengan jumlah parameter yang berbeda dan nilai kembalian harus sama. Lain halnya
dengan overriding, konsepnya sama dengan overloading yaitu menulis kembali method.
Namun, overriding menulis kembali method sama persis. Sama mulai dari nama method dan
isinya dan mengimplementasi kembali di sub classnya. Overriding dipakai saat kita
menggunakan method yang sama tapi berbeda implementasinya. Jadi overriding method
mempunyai nama method yang sama, jumlah parameter dan tipe parameter serta nilai
kembalian (return) method yang di override. Jika method memiliki modifier akses public,
method overridenya juga harus public.
Override method merupakan method yang sama persis dengan method yang
30 (program body). Overidding tidak bisa dilakukan dalam kelas itu sendiri. Jadi
Overidding kerat kaitannya dengan inheritance (pewarisan).
Contoh program :
#include<iostream> #include<conio.h> #include<math.h> using namespace std;
void pangkat () {
cout<<"Fungsi perangkat tanpa argumem"<<endl; cout<<"Tanpa Nilai"<<endl;
}
double pangkat (double x) {
cout<<"\tOVERLOADING"<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; cout<<pangkat (6.5)<<"\n"<<endl;
pangkat(); cout<<endl;
31 Contoh program :
#include<iostream> using namespace std;
class overloading {
public :
int tambah (int x, int y) {
return (x+y); }
float tambah (float x, float y) {
return (x+y); }
double tambah (double x, double y) {
return (x+y); }
32 main ()
{
overloading zz;
cout<<"\tOVERLOADING"<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<"Double : "<<zz.tambah(6.6, 5.2)<<endl; cout<<"Float : "<<zz.tambah(6.12 , 5.12)<<endl; cout<<"Int : "<<zz.tambah(6,2)<<"\n"<<endl;
33 LAMPIRAN TUGAS
Tugas pertama
Jenis Jenis Modifier Menurut Hak Aksesnya
- Public (+)
semua unsur yang terdapat dalam suatu class (objek, method, dll) bisa diakses secara bebas
oleh semua class lainnya yang berada dalam satu package ataupun tidak
- Protected (#)
semua unsur yang terdapat dalam suatu class ( objek, method, dll) hanya bisa diakses atau
dipanggil berdasarkan class yang bersangkutan (khusus) atau class turunan yang bersifat
protected
- Private (-)
semua unsur yang terdapat dalam suatu class ( objek, method, dll) hanya bisa diakses oleh class
itu sendiri, dan tidak dapat diakses oleh class yang lainnya
contoh program :
#include<iostream>
using namespace std;
class jajargenjang{
luas=sisisejajar+sisisejajar*tinggi/2; }
void hasilluasjajargenjang() {
cout<<luas; }
34 int main()
{
int m; int n; int luas;
cout<<"\t\t\tPROGRAM LUAS JAJAR GENJANG"<<endl; cout<<"\t\t\t Senin, 23 Maret 2015"<<endl; cout<<endl;
cout<<"---"<<endl;
jajargenjang jajar; cout<<"input sisi\t: "; cin>>m;
cout<<"input tinggi\t: "; cin>>n;
cout<<endl;
luas = (m+m)*n/2;
cout<<"\t\tLuas jajar genjang adalah : "<<luas; cout<<endl<<endl;
35 Tugas kedua
KONSTRUKTOR DAN DESTRUKTOR
A. Konstruktor
Suatu fungsi yang dideklarasikan atau didefenisikan di dalam kelas.
Methot khusus yang memiliki nama yang sama dengan nama class.
Karakteristik konstruktor :
Tidak mengembalikan nilai.
Nama sama dengan nama kelas.
Dijalankan bersamaan dengan dibuatnya class.
Dapat didefenisikan bersamaan dengan parameter maupun tidak.
Kegunaan konstruktor :
Mengalokasikan ruang bagi sebuah objek.
Memberikan nilai awal terhadap anggota suatu objek.
Membentuk tugas – tugas umum lainnya.
Jenis – jenis konstruktor :
Konstruktor default
Tidak dapat menerima argumen, anggota data diberi nilai tertentu.
Konstruktor pernyataan dengan parameter
Anggota awal dapat diberi nilai awal berasal dari parameter.
Konstruktor penyalinan objek lain
Perameter berupa objek lain, anggota data diberi nilai awal dari objek lain.
Contoh program :
#include<iostream>
using namespace std;
36 at1="ban"; at2="spion"; at3="setir";
at4="mesin";
harga=8500; x=50 ; jumlah=x*harga; }
void info_saya(){ cout<<"atribut mobil
:"<<at1<<","<<at2<<","<<at3<<","<<at4<<endl<<endl;}
void hitung(){
cout<<"Jumlah :Rp "<<jumlah<<""<<endl<<endl;}
};
main() {
nurul bayar1;
bayar1.info_saya(); bayar1.hitung();
37
B. Destruktor
Suatu fungsi yang didefinisikan di dalam kelas.
Karakteristik :
Nama sama dengan nama fungsi
Dijalankan bersamaan dengan dimusnahkan/ditutup kelas tersebut
Diawali dengan tanda tilde (~)
Tidak bertipe data
Fungsi :
Mendealokasikan memory dinamis yang diciptakan konstruktur.
Contoh program :
#include<iostream> using namespace std; #include<conio.h>
Rumah(int jum_pintu, int jum_jendela, char *warna_rumah);
cout<<"//Awal fungsi main..."<<endl; Rumah obj(2,4,"ungu");
cout<<endl;
cout<<"Data Rumah"<<endl;
cout<<"---"<<endl; obj.info();
cout<<endl;
cout<<"Akhir fungsi main..."<<endl; return 0;
}
void Rumah::info() {
38 cout<<"Warna Rumah: ungu "<<endl;
}
Rumah::Rumah(int jum_pintu, int jum_jendela, char *warna_rumah)
{
cout<<"//objek dibuat, konstruktor dijalankan..."<<endl;
warna = new char [25]; pintu = jum_pintu; jendela = jum_jendela;
}
Rumah::~Rumah() {
cout<<"objek akan sirna, destruktor dijalankan,,,"<<endl;
delete[]warna; _getche();
39 Tugas ketiga
PROGRAM KALKULATOR SEDERHANA
#include <iostream> using namespace std; class kalkulator{
cout<<"\t\tPROGRAM KALKULATOR SEDERHANA"<<endl; cout<<endl;
cout<<"---"<<endl;
41 int kalkulator::output()
{
42
PROGRAM – PROGRAM
Program 1
#include<iostream>
using namespace std;
void kirim ()
{
cout<<"D3-TEKNIK INFORMATIKA\n";
}
main ()
{
kirim ();
43 Program 2
#include<iostream>
using namespace std;
main()
{
int a,b,hasil;
cout<<"angka 1 : ";
cin>>a;
cout<<"angka 2 : ";
cin>>b;
hasil = a+b;
cout<<"hasil = " <<hasil;
cout<<"\n";
44 Program 3
#include<iostream>
using namespace std;
float segitiga ()
{
float a, b, luas;
cout<<"alas\t: ";
cin>>a;
cout<<"tinggi\t: ";
cin>>b;
luas = a*b/2;
cout<<"hasilnya : "<<luas;
cout<<"\n";
}
main ()
{
segitiga();
45 Program 4
#include<iostream>
using namespace std;
class komb2
{
public :
void nurul()
{
cout<<"WELCOME"<<endl;
}
};
int main ()
{
komb2 komting;
komting.nurul();
46 Program 5
#include<iostream>
using namespace std;
class komb2{
public :
void nurul()
{
cout<<"WELCOME"<<endl;
}
public :
void osby()
{
cout<<"WELCOME BACK AGAIN"<<endl;
}
};
int main ()
{
komb2 komting;
komting.nurul();
komting.osby();
47 Program 6
#include<iostream>
using namespace std;
class komb14
{
public :
int a
};
main()
{
komb14 komting;
cout<<"bil 1 : ";
cin>>komting.a;
cout<<"bil 2 : ";
cin>>komting.b;
cout<<"bil 3 : ";
cin>>komting.c;
cout<<"Hasil = "<<komting.a+komting.b+komting.c;
cout<<endl;
48 Program 7
#include<iostream>
using namespace std;
class komb14{
public :
void nurul ();
void oranglain ()
{
cout<<endl;
cout<<endl;
cout<<"THANKS HONEY GOD BLESS YOU :*"<<endl;
}
};
void komb14::nurul ()
{
cout<<"HAPPY BIRTHDAY WONDERFUL MOM"<<endl;
cout<<"WISH YOU ALL THE BEST({})"<<endl;
}
int main ()
{
komb14 komting;
komting.nurul();
komting.oranglain();
49 Program 8
#include<iostream>
using namespace std;
class p_panjang{
private :
int p,l;
public :
int luas (){
return (p*l);
}
void beri_nilai(int pjg, int lbr){
p=pjg;
l=lbr;
}
};
main()
{
p_panjang kotak1;
kotak1.beri_nilai(10,15);
cout<<"Luas = "<<kotak1.luas()<<endl;
50 Program 9
#include<iostream>
using namespace std;
class p_panjang{
private :
int p,l;
public :
int luas (){
return (p*l);
}
void beri_nilai(int pjg, int lbr){
p=pjg;
l=lbr;
}
};
main()
{
p_panjang kotak1;
int x, y;
cout<<"Berikan nilai panjang\t: "; cin>>x;
cout<<"Berikan nilai lebar\t: "; cin>>y;
kotak1.beri_nilai(x,y);
cout<<"Luas = "<<kotak1.luas();
51 Program 10
#include<iostream>
using namespace std;
class komB {
public :
komB(){
cout<<"objek telah dibuat "<<endl; // konstruktor
}
~komB(){
cout<<"objek telah dihapus"<<endl;} // destruktor
};
int main()
{
komB usu,nurul, fadilla;
52 Program 11
#include<iostream> using namespace std; class komB {
cout<<"objek telah dibuat"<<endl;
}
int luas(){
return (panjang*lebar); }
~komB(){
cout<<"objek telah keluar"<<endl; }
};
int main() {
komB hitung(3,2);
cout<<"luas = "<<hitung.luas()<<endl; komB hi_itung (4,2);
cout<<"luas = "<<hi_itung.luas()<<endl;
53 Program 12
#include<iostream> using namespace std; class komB {
cout<<"objek telah dibuat"<<endl;
}
int luas(){
return (panjang*lebar); }
~komB(){
cout<<"objek telah keluar"<<endl; }
};
int main() {
int i, j;
cout<<"masukan nilai a = "; cin>>i; cout<<"masukkan nilai b = "; cin>>j;
komB hitung(i, j);
cout<<"luas = "<<hitung.luas()<<endl; komB hi_itung (i,j);
cout<<"luas = "<<hi_itung.luas()<<endl;
54 Program 13
#include<iostream> using namespace std; class turunan
class persegi : public turunan {
class nurul : public turunan {
objek.inisialisasi(5,2);
cout<<"Luas : "<<objek.luas(); cout<<endl;
nurul saya;
saya.inisialisasi(5,2);
cout<<"Luas : "<<saya.luas(); cout<<endl;
55 Program 14
#include<iostream> #include<conio.h> #include<math.h> using namespace std;
void pangkat () {
cout<<"Fungsi perangkat tanpa argumem"<<endl; cout<<"Tanpa Nilai"<<endl;
}
int pangkat (int x) {
cout<<"Fungsi pangkat dengan argumen bertipe data integer"<<endl;
return pow (x,2); }
double pangkat (double x) {
cout<<"Fungsi pangkat dengan argumen bertipe data double "<<endl;
return pow (x,2); }
int main() {
cout<<"\tOVERLOADING"<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; cout<<pangkat (6.5)<<"\n"<<endl;
pangkat(); cout<<endl;
56 Program 15
#include<iostream> using namespace std;
class overloading
cout<<"\tOVERLOADING"<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<"Double : "<<zz.tambah(6.6, 5.2)<<endl; cout<<"Float : "<<zz.tambah(6.12 , 5.12)<<endl; cout<<"Int : "<<zz.tambah(6,2)<<"\n"<<endl;