• Tidak ada hasil yang ditemukan

PEMROGRAMAN BERORIENTASI OBJEK BAHASA C

N/A
N/A
Protected

Academic year: 2018

Membagikan "PEMROGRAMAN BERORIENTASI OBJEK BAHASA C"

Copied!
57
0
0

Teks penuh

(1)

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 2014

(2)

1 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

(3)

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

(4)

3 Untuk menyimpan file kita klik tombol save

PEMBIMBING ASLAB

Nama : Jimmi Avilla Sinaga

Stambuk : 2013

NIM : 132406115

KOM : C

(5)

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

(6)

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/

(7)

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*/

(8)

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

(9)

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

(10)

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;

(11)

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

(12)

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() {

(13)

12 main()

{

(14)

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

(15)

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:

(16)

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;

(17)

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;

(18)

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 ()

{

(19)

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();

}

(20)

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

(21)

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;

(22)

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

(23)

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

(24)

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() {

(25)

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)
(27)

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

(28)

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 :

(29)

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;

(30)

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

(31)

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;

(32)

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); }

(33)

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;

(34)

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; }

(35)

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;

(36)

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;

(37)

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();

(38)

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() {

(39)

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();

(40)

39 Tugas ketiga

PROGRAM KALKULATOR SEDERHANA

#include <iostream> using namespace std; class kalkulator{

cout<<"\t\tPROGRAM KALKULATOR SEDERHANA"<<endl; cout<<endl;

cout<<"---"<<endl;

(41)
(42)

41 int kalkulator::output()

{

(43)

42

PROGRAM – PROGRAM

Program 1

#include<iostream>

using namespace std;

void kirim ()

{

cout<<"D3-TEKNIK INFORMATIKA\n";

}

main ()

{

kirim ();

(44)

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";

(45)

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();

(46)

45 Program 4

#include<iostream>

using namespace std;

class komb2

{

public :

void nurul()

{

cout<<"WELCOME"<<endl;

}

};

int main ()

{

komb2 komting;

komting.nurul();

(47)

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();

(48)

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;

(49)

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();

(50)

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;

(51)

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();

(52)

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;

(53)

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;

(54)

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;

(55)

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;

(56)

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;

(57)

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;

Referensi

Dokumen terkait

Pergaulan bebas di antara muda-mudi, seperti yang terjadi sekarang ini seringkali membawa kepada hal-hal yang tidak di kehendaki, yakni terjadinya kehamilan

This issues paper aims to help ADB DMC governments integrate Disaster Risk Management into their national developmental strategies and examine how emerging economies of Asia

Hal ini cukup penting karena residu Thr-118 dan Ser-121 merupakan residu-residu yang dapat berinteraksi (kontak) secara langsung dengan DNA. Perubahan konformasi

Frekuensi kemunculan (sumbu Y) dari variabel yang akan dibuat grafik akan ditampilkan g pilkan sesuai dengan periode yang dipilih dalam. jendela Periode, yang akan menentukan

Dari penjelasan diatas dapat disimpulkan bahwa transplantasi adalah suatu rangkaian tindakan medis untuk memindahkan organ dan atau jaringan tubuh manusia yang

Pengertian lainnya, Pengolahan Citra Digital adalah sebuah disiplin ilmu yang mempelajari hal-hal yang berkaitan dengan perbaikan kualitas citra (peningkatan

Kemudian plastik panas terus diinjeksikan kedalam cetakan, material dengan suhu yang lebih rendah tadi terdorong terus kedalam dan meniggalkan bekas aliran..

Seperti pemotongan pajak perusahaan, dimana saat ini pajak perusahaan di Amerika Serikat mencapai 35%, hal yang membuat Apple mengalihkan usahanya ke Irlandia