Anda di halaman 1dari 185

DASAR PEMROGRAMAN C++

DASAR PEMROGRAMAN C++

Debora Exaudi Sirait S.Si., M.Si.


DASAR PEMROGRAMAN C++

© Penerbit Perkumpulan Rumah Cemerlang Indonesia (PRCI)

Penulis:
Debora Exaudi Sirait S.Si., M.Si.

Editor: Erik Santoso

Cetakan Pertama : November 2021

Cover: Rusli

Tata Letak : Tim Kreatif PRCI

Hak Cipta 2021, pada Penulis. Diterbitkan pertama kali oleh:


Perkumpulan Rumah Cemerlang Indonesia
ANGGOTA IKAPI JAWA BARAT
Pondok Karisma Residence Jalan Raflesia VI D.151
Panglayungan, Cipedes Tasikmalaya – 085223186009

Website : www.rcipress.rcipublisher.org
E-mail : rumahcemerlangindonesia@gmail.com

Copyright © 2021 by Perkumpulan Rumah Cemerlang Indonesia


All Right Reserved

- Cet. I – : Perkumpulan Rumah Cemerlang Indonesia, 2021


; 14,8 x 21 cm
ISBN : 978-623-6478-98-1

Hak cipta dilindungi undang-undang


Dilarang memperbanyak buku ini dalam bentuk dan dengan
cara apapun tanpa izin tertulis dari penulis dan penerbit

Undang-undang No.19 Tahun 2002 Tentang


Hak Cipta Pasal 72
Undang-undang No.19 Tahun 2002 Tentang Hak Cipta
Pasal 72

Barang siapa dengan sengaja melanggar dan tanpa hak melakukan


perbuatan sebagaimana dimaksud dalam pasal ayat (1) atau pasal 49
ayat (1) dan ayat (2) dipidana dengan pidana penjara masing-masing
paling sedikit 1 (satu) bulan dan/atau denda paling sedikit
Rp.1.000.000,00 (satu juta rupiah), atau pidana penjara paling lama 7
(tujuh) tahun dan/atau denda paling banyak Rp.5.000.000.000,00
(lima miliar rupiah).

Barang siapa dengan sengaja menyiarkan, memamerkan,


mengedarkan, atau menjual kepada umum suatu ciptaan atau barang
hasil pelanggaran hak cipta terkait sebagai dimaksud pada ayat (1)
dipidana dengan pidana penjara paling lama 5 (lima) tahun dan/atau
denda paling banyak Rp.500.000.000,00 (lima ratus juta rupiah).
KATA PENGANTAR
Puji syukur kami panjatkan Kepada Tuhan Yang Maha Esa
yang telah memberikan rahmat serta karunia-Nya kepada
kami sehingga kami berhasil menyelesaikan Buku dengan
judul Buku Dasar Pemrograman C++ sesuai yang ditargetkan.
Buku ini berisikan tentang hal-hal yang berkaitan dengan
pemrograman yang berfokus pada program C++ dari
pembahasan yang mendasar sampai ke yang lebih mendalam.
Kami menyadari bahwa Buku ini masih jauh dari sempurna,
oleh karena itu kritik dan saran dari semua pihak yang
bersifat membangun selalu kami harapkan demi
kesempurnaan buku ini.
Akhir kata, kami sampaikan terima kasih kepada semua
pihak yang telah berperan serta dalam penyusunan Buku ini
dari awal sampai akhir. Semoga Tuhan senantiasa meridhoi
segala usaha kita. Amin.

November 2021

Penulis

Dasar Pemrograman C++ | i


DAFTAR ISI
KATA PENGANTAR ...................................................................................... i
DAFTAR ISI ....................................................................................................ii
BAB 1 PENGENALAN C++ ........................................................................1
A. Pendahuluan ...................................................................................1
B. Fungsi main() .................................................................................3
C. Baris #include<iostream.h> .....................................................5
D. Kerangka program C++ ..............................................................5
E. Contoh program C++ ...................................................................6

BAB 2 STRUKTUR DASAR C++ ............................................................ 13


A. Komentar....................................................................................... 13
1. Menggunakan tanda // ....................................................... 13
2. Mengguanakan tanda /*.....*/ ........................................... 14
B. Identifier ........................................................................................ 15
C. Tipe Data ....................................................................................... 16

BAB 3 NULL TERMINATED STRING ................................................. 23


A. Fungsi strcpy ................................................................................ 23
B. Fungsi strdup ............................................................................... 24
C. Fungsi strcat................................................................................. 25
D. Fungsi strncat .............................................................................. 26
E. Fungsi strlen ................................................................................ 27
F. Fungsi strcmp .............................................................................. 28
G. Fungsi strrev ................................................................................ 30
H. Fungsi strchr ................................................................................ 31
I. Fungsi strlwr................................................................................ 32
J. Fungsi strupr ............................................................................... 33

ii | Dasar Pemrograman C++


BAB 4 OPERATOR PADA C++ .............................................................. 37
A. Operator Assignment ............................................................... 37
B. Operator Unary........................................................................... 38
C. Operator Binary ......................................................................... 40
D. Operator Relasional .................................................................. 45
E. Operator Bitwise ........................................................................ 45
F. Operator Ternary ...................................................................... 46

BAB 5 PERCABANGAN ........................................................................... 49


A. Struktur satu kondisi (perintah if) ..................................... 49
B. Struktur dua kondisi (perintah if – else) ......................... 52
C. Struktur tiga kondisi (perintah multiple if – else) ....... 54
D. Perintah switch........................................................................... 56

BAB 6 PERULANGAN .............................................................................. 61


A. Pernyataan while ....................................................................... 61
B. Pernyataan do…while ............................................................... 62
C. Pernyataan for ............................................................................ 64
D. Pernyataan Break ...................................................................... 67
E. Pernyataan Continue ................................................................ 68
F. For bersarang .............................................................................. 70

BAB 7 BANK SOAL PRA UTS ................................................................ 75


A. Soal dan Jawaban ....................................................................... 75
B. Latihan ........................................................................................... 82

BAB 8 FUNGSI ............................................................................................ 85


A. Fungsi, Deklarasi dan Definisinya ...................................... 85
B. Nilai Bawaan untuk Argumen Fungsi................................ 89
C. Fungsi-Fungsi Bawaan C++ .................................................. 90

Dasar Pemrograman C++ | iii


BAB 9 OBJECTS ORIENTED PROGRAMING ................................... 97
A. Ide Dasar OOP .......................................................................... 100
B. Fungsi Anggota, Metoda, Data, Variabel Instans ........ 102
C. Objek dan Kelas ....................................................................... 103
D. Pemograman Prosedural dan Oop ................................... 103
E. Keuntungan Menggunakan Oop ....................................... 104
F. Bahasa Pemrograman Yang Mendukung Oop ............. 105

BAB 10 KELAS......................................................................................... 109


A. Kelas dan Struktur................................................................. 109
B. Kelas Secara Umum................................................................ 112
C. Pemakaian Class ...................................................................... 115

BAB 11 KONSTRUKTOR DAN DESTRUKTOR ............................ 121


A. Pendahuluan ............................................................................. 121
B. Konstruktor ............................................................................... 123
C. Destruktor.................................................................................. 128

BAB 12 PEWARISAN ( INHERITANCE) ........................................ 133


A. Pewarisan Tunggal (Single Inheritance) ....................... 134
B. Pewarisan Jamak (Multiple Inheritance) ...................... 137
C. Pewarisan Jamak Maya (Virtual Multiple Inheritance)
...................................................................................................... 140
D. Konstruktor dan Destruktor Pada Pewarisan ............ 144

BAB 13 POLIMORFISME ..................................................................... 147


A. Polimorfisme Pada Pewarisan Tunggal ......................... 147
B. Polimorfisme Pada Pewarisan Jamak ............................. 151
C. Polimorfisme Pada Pewarisan Jamak Virtual ............. 154

iv | Dasar Pemrograman C++


BAB 14 FUNGSI VIRTUAL & POLIMORFISME ........................... 161
A. Fungsi Virtual ........................................................................... 161
B. Polimorfisme ............................................................................ 164

DAFTAR PUSTAKA................................................................................ 173

Dasar Pemrograman C++ | v


vi | Dasar Pemrograman C++
BAB 1
PENGENALAN C++

A. Pendahuluan
C++ adalah sebuah bahasa pemrograman yang memiliki
banyak dialek, seperti bahasa orang yang banyak memiliki
dialek. Dalam C++, dialek bukan disebabkan oleh karena si
pembicara berasal dari Jepang atau Indonesia, melainkan
karena bahasa ini memiliki beberapa kompiler yang berbeda.
Ada dua kompiler umum yaitu: C++ Borland, C++ Microsoft
Visual. Setiap kompiler ini agak berbeda. Setiap kompiler
akan dapat menjalankan fungsi fungsi standar C++ ANSI/ISO,
tetapi masing masing kompiler juga akan dapat menjalankan
fungsi fungsi nonstandard (fungsi fungsi ini, agak mirip
dengan ucapan yang tidak standar yang diucapkan orang
diberbagai pelosok negeri. Sebagai contoh, di New Orleans
kata median disebut neutral ground). Kadang kadang
pemakaian fungsi nonstandard akan menimbulkan masalah
pada saat anda hendak mengkompilasi kode sumber data
(source code) (yaitu program berbahasa C++ yang ditulis
oleh seorang programer) mempergunakan kompiler yang
berbeda.
C++ merupakan perluasan bahasa C dengan tambahan
fasilitas kelas (Class). Dengan fasilitas ini, maka C++
mendukung teknik pemrograman berorientasi objek
(object oriented programming). Pengembang aplikasi
(application development) dengan C++ dikeluarkan oleh
sejumlah vendor, dua diantaranya adalah yang dikeluarkan
oleh Microsoft dan Borland.
Program C++ berupa sekumpulan fungsi. Bahkan
program utama juga berbentuk fungsi, yaitu fungsi main().

Dasar Pemrograman C++ | 1


Kode C++ bersifat case sensitive, artinya membedakan antara
huruf kapital dengan huruf kecil. Jadi, sintak main() tidak
sama dengan Main().
Bahasa C dan C++ merupakan bahasa yang sangat
populer dalam dunia pengembangan perangkat lunak.
Kedua bahasa ini digolongkan ke dalam bahasa tingkat
menengah (middle level language).
Bahasa C++ didasarkan atas bahasa C sehingga kita
dapat melakukan kompilasi program-program yang ditulis
dalam bahasa C dengan menggunakan compiler C++.
Keistimewaan dari bahasa C++ adalah karena bahasa ini
mendukung pemrograman berarah objek atau yang
lebih sering dikenal dengan istilah Object Oriented
Programming (OOP).

Mengapa perlu Object Oriented Programming (OOP)?


Mempermudah programmer menulis program
Mempercepat proses pembuatan program
Mempermudah pemeliharaan program

Bahasa C
Fleksibel: dapat mengakses/mendekati mesin, namun
mudah dimengerti oleh manusia.
Portabel: dipakai mulai dari komputer mikro sampai
superkomputer.
Bahasa yang paling banyak digunakan dalam ilmu
komputer, untuk membuat OS, aplikasi, dll.
Banyak didukung oleh banyak pustaka (libraries)

Bahasa C++
Merupakan pengembangan bahasa C dan diberi
kemampuan OOP.

2 | Dasar Pemrograman C++


C++ merupakan subset dari bahasa C, maka pustaka yang
ditulis dalam bahasa
C dapat dipergunakan dalam bahasa C++.

B. Fungsi main()
Bahasa pemrograman C++ adalah bahasa yang amat
berbeda. Untuk kompiler C++ berbasis DOS, akan
memerlukan beberapa kata kunci (keywords); keyword
sendiri tidak cukup untuk difungsikan sebagai input dan
output. Walau hampir semua fungsi dalam file library
tampaknya biasa diakses oleh header filenya. Sebuah
program C++ minimal mengandung sebuah fungsi yaitu
fungsi main(). Fungsi ini menjadi awal dan akhir eksekusi
program C++.

Contoh:
#include<iostream.h>

int main()

cout <<"Selamat menggunakan C++";

Atau

#include<iostream.h>

int main()

cout <<"Selamat menggunakan C++";

return 0;

Dasar Pemrograman C++ | 3


Keterangan:
#include adalah sebuah prosesor pengarah yang
mengatakan kepada kompiler untukmeletakan kode dari
header file iostream.h kedalam program. Dengan
menyertakan header file, anda dapat mengakses banyak
fungsi fungsi berbeda. Dalam contoh diatas, fungsi cout
memerlukan file iostream.h.
Main adalah nama judul fungsi.
Tanda () digunakan untuk mengapit argumen fungsi yaitu
nilai yang akan dilewatkan ke fungsi. Baris ini mengatakan
kepada kompiler bahwa ada sebuah fungsi bernama main,
yang mana fungsi itu mengembalikan sebuah integer,
sehingga diberi tanda int.
Tanda { pada fungsi main() menyatakan awal eksekusi
program. Adapun } pada fungsi main() menyatakan akhir
eksekusi program. Jika anda memakai bahasa Pascal, anda
akan mempergunakan perintah BEGIN dan END.
Pemakaian fungsi cout dipakai untuk menampilkan text
di layar monitor anda.
Memakai tanda atau symbol <<, yang diketahui
sebagai operator pemasukan (insertion operators). Tanda
tersebut mengatakan kepada kompiler agar segera
menghasilkan output sesuai dengan input anda. Tanda
semicolon ditambahkan kedalam bagian akhir dari semua
fungsi yang dipanggil dalam bahasa C++; tanda seterusnya
memperlihatkan variable yang anda deklarasikan.
”Selamat menggunakan C++“ adalah suatu pernyataan
yang diapait oleh tanda petik ganda. Setiap pernyataan harus
diakhiri dengan tanda titik koma (;).
Return 0 maksudnya pada baris ini juga ada kode yang
memerintahkan fungsi main kembali ke 0. Pada saat satu kali
kembali diproses, itu dilakukan melalui system operasi.

4 | Dasar Pemrograman C++


C. Baris #include<iostream.h>
#include <iostream.h> Baris tersebut
menginstruksikan kepada kompiler untuk menyisipkan
file lain (pada contoh diatas yaitu iostream.h) pada saat
program dikompilasi. File-file yang berakhiran dengan .h
disebut file header yaitu file yang berisi deklarasi.
#include adalah salah satu pengarah praprocessor yang
tersedia pada C++.
Bentuk umum #include bisa berupa:
o #include <namafile>
Mengisyaratkan bahwa pencarian file dilakukan pada
direktori khusus (direktori file include yang bisa
disetel melalui kompiler).
o #include “namafile”
Menyatakan bahwa pencarian file (namafile)
dilakukan pertama kali pada direktori kerja. Jika
namafile tidak ditemukan pada direktori kerja
maka akan dicari pada direktori yang tercantum
pada variabel lingkungan bernama PATH.

D. Kerangka program C++

#include <iostream.h>

//Protopype fungsi

tipe_data nama_fungsi(parameter1,parameter2,..);

//Fungsi utama

void main()

statemen_yang_akan_dilakukan;

Dasar Pemrograman C++ | 5


...

return 0;

//Implementasi fungsi

tipe_data nama_fungsi(parameter1,parameter2,...)

statemen_yang_akan_dilakukan;

...

E. Contoh program C++


Listing 1.1 program masukkan bilangan
#include <iostream.h>

int main()

int x;

//Menampilkan teks untuk informasi

cout <<“Masukkan sebuah bilangan:“;

//Membaca nilai dari keyboard dan menyimpannya ke


dalam variabel x

cin >> x;

//Menampilkan nilai yang dimasukkan ke layar

cout << ”Bilangan yang Anda masukkan adalah: ” <<


x;

6 | Dasar Pemrograman C++


return 0;

Hasil eksekusi program:

Listing 1.2 program penjumlahan dua buah bilangan


#include <iostream.h>

int main()

int x, y, z;

cout <<“Masukkan bilangan kesatu:“;


cin >> x;

cout <<“Masukkan bilangan kedua:“;

cin >> y;

z = x + y;

cout << ”Jadi hasil penjumlahannya adalah: ” <<


z;

return 0;

Dasar Pemrograman C++ | 7


Latihan dan Penyelesaian:
1. Buatlah program untuk menjumlahkan dan mengurangi
dua buah bilangan!

Penyelesaian:
Listing program no 1
#include <iostream.h>

int main()

int x, y, tambah, kurang;

cout <<"Masukkan bilangan kesatu:";

cin >> x;
cout <<"Masukkan bilangan kedua:";

cin >> y;

tambah = x + y;

kurang= x - y;

cout << "Jadi hasil penjumlahan adalah: "


<<tambah<<endl; cout << "Jadi hasil pengurangan
adalah: " <<kurang<<endl; return 0;

2. Buatlah program untuk menghitung nilai mata uang


dalam bentuk dollar, yen, dan peso. Adapun inputannya

8 | Dasar Pemrograman C++


adalah nilai rupiah, dengan ketentuan sebagai berikut:
Dollar = rupiah / 8500
Yen = rupiah / 4000
Peso = rupiah / 2500

Penyelesaian:
Listing program no 2
//Program menghitung mata uang

#include<iostream.h>

int main()

int rupiah, dollar, yen, peso; cout<<”Masukkan


nilai rupiah: “; cin>>rupiah;
dollar = rupiah / 8500;

yen = rupiah / 4000;

peso = rupiah / 2500;

cout<<”Nilai dollar adalah: “<<dollar<<endl;


cout<<”Nilai yen adalah: “<<yen<<endl;
cout<<”Nilai peso adalah: “<<peso<<endl; return
0;

Latihan:
1. Buatlah program yang hasil eksekusinya sebagai berikut:

Dasar Pemrograman C++ | 9


2. Apa yang terjadi jika program ini dijalankan!! Perbaikan
kesalahannya dan Tuliskan hasil eksekusi dari program
berikut:
#include <iostream.h>

int main()

{
char y[30];

char z[35];

//Menampilkan teks untuk informasi cout


<<"Masukkan NIM Anda:";
cin >> x;

cout <<"Masukkan Nama Anda:";

cin >> y;

cout <<"Masukkan Alamat Anda:";

cin >> z;

//Menampilkan nilai yang dimasukkan ke layar


cout << "NIM Anda adalah: " << x;
cout << "Nama Anda adalah: " << y;

cout << "Alamat Anda adalah: " << z;

return 0;

3. Apa yang terjadi jika program ini dijalankan? Tulis


errornya, dan perbaiki listing programnya!
#include <iostream.h>

int main()

int x, y;

10 | Dasar Pemrograman C++


cout <<"Masukkan bilangan kesatu:";

cin >> x;

cout <<"Masukkan bilangan kedua:";

cin >> y;

tambah = x + y;

kurang = x - y;

kali = x * y;

bagi = x / y;

cout << "Jadi hasil penjumlahan adalah: " <<


tambah<<endl;

cout << “Jadi hasil pengurangan adalah: " <<


Kurang<<endl;

cout << "Jadi hasil perkalian adalah: " <<


kali<<endl:

cout << "Jadi hasil pembagian adalah: " <<


bagi<<endl; return 0;

Dasar Pemrograman C++ | 11


12 | Dasar Pemrograman C++
BAB 2
STRUKTUR DASAR C++

A. Komentar
Komentar merupakan bagian yang penting dalam
program. Komentar tidak akan mempengaruhi terhadap
jalannya program karena komentar tidak ikut dieksekusi
pada saat proses kompilasi. Fungsi komentar antara lain:
Menjelaskan tujuan / fungsi program
Memudahkan saat program dibuat atau direvisi
Menjelaskan keterangan-keterangan lain tentang
kegunaan sejumlah pernyataan dalam program.

1. Menggunakan tanda //
Pada C++ suatu komentar diawali dengan dua tanda
garis miring (//). Semua tulisan yang terletak sesudah tanda
// hingga akhir baris dengan sendirinya akan diperlakukan
sebagai keterangan. Tanda ini digunakan untuk menuliskan
komentar yang banyaknya hanya satu baris.

Contoh:
//Contoh program menggunakan komentar

//nama program: komentar1.cpp

#include<iostream.h> //menyertakan file iostream.h

#include<conio.h>

void main()

{
clrscr(); //Hapus layar

Dasar Pemrograman C++ | 13


cout <<”Hai.. Selamat Belajar C++”;

Hasil eksekusi program:

2. Mengguanakan tanda /*.....*/


Pada bentuk ini, suatu komentar diawali dengan sepasang
karakter /* dan diakhiri dengan sepasang karakter */.
Sepasang karakter yang mengawali dan mengakhiri
komentar bisa diletakkan pada baris yang berbeda. Tanda
ini dapat digunakan untuk menuliskan komentar yang
banyaknya satu baris atau lebih. Bentuk ini bermanfaat
untuk mengabaikan sejumlah pernyataan yang telah dibuat
oleh pemrograman karena suatu alasan misalnya sedang
melacak kesalahan.

Contoh:
/*Contoh program menggunakan komentar
Ini adalah komentar panjang

Yang banyaknya lebih dari satu baris */

//nama program: komentar2.cpp

#include<iostream.h>

#include<conio.h>

14 | Dasar Pemrograman C++


void main()

clrscr(); //hapus layar

cout <<”Belajar C++”;

return 0;

B. Identifier
Identifier (pengenalan) adalah suatu nama yang biasa
dipakai dalam pemrograman untuk menyatakan variabel,
konstanta bernama, tipe data, fungsi, label, objek.
Indentifikasi dilakukan untuk mempermudah proses
penanganan data atau nilai. Suatu identifier berupa satu
atau beberapa karakter, bisa berupa huruf, digit,
garis_bawah (_).
Karena bahasa C++ bersifat case sensitive maka C++ akan
membedakan variabel yang ditulis dengan huruf kapital dan
huruf kecil.

Ketentuan penulisan identifier:


Identifier tidak boleh berupa angka atau diawali dengan
karakter yang berupa angka.
Identifier tidak boleh mengandung spasi.
Identifier tidak boleh menggunakan karakter-karakter
simbol ( #, @, ?, $, dll).
Identifier tidak boleh menggunakan kata kunci (keyword)
yang terdapat pada C++.
Nama identifier sebaiknya disesuaikan dengn
kebutuhannya artinya jangan sampai orang lain bingung
hanya karena salah satu penamaan identifier.

Dasar Pemrograman C++ | 15


Contoh identifier:
int bilangan_bulat;
long X2;
int A[5]
const int MAX=5;
int A=10, B=15, C=25;

C. Tipe Data
Tipe data berfungsi untuk mempresentasikan jenis dari
sebuah nilai yang terdapat dalam program. Dalam C++
terdapat beberapa tipe data dasar yang telah didefinisikan
yaitu:
1. Tipe bilangan bulat (integer)
Digunakan untuk data-data angka yang tidak
mengandung angka dibelakang koma. Misalnya 3, 21, 78, dll.

Contoh:
#include <iostream.h>

int main()

int x; //mendeklarasikan variabel x dengn tipe


data int

x=3; //melakukan assigment terhadap variabel x

cout <<“Nilai x adalah “<<x;

return 0;

2. Tipe Bilangan Desimal (floating-point)


Adalah tipe yang mempresentasikan data-data bilangan
yang mengandung angka dibelakang koma, misalnya 3.16,

16 | Dasar Pemrograman C++


21.5, dll. Tipe data Float = 32, double = 64, dan long double =
80.

Contoh:
#include <iostream.h>

int main()

double y; //mendeklarasikan variabel y dengn tipe


data int

y = 27.55; //melakukan assigment terhadap variabel


y

cout <<“Nilai y adalah “<<y;

return 0;

3. Tipe Logika (boolean)


Tipe ini mempresentasikan data-data yang hanya
mengandung dua buah nilai, yaitu nilai logika (boolean) yang
terdiri dari nilai benar (direpresentasikan dengan nilai 1)
dan nilai salah (direpresentasikan dengan nilai 0).
4. Tipe Karakter / String
Tipe ini merepresentasikan data-data yang berupa
karakter, dan dinyatakan dengan tipe char, sedangkan untuk
string dinyatakan dengan pointer dari tipe char yaitu char*.

Contoh:
#include <iostream.h>

int main()

Dasar Pemrograman C++ | 17


char Karakter ='A';

char*nama ="Susi Susanti";

char Jurusan[15]="INFORMATIKA";

cout <<Karakter<<endl;

cout <<nama<<endl; cout <<Jurusan<<endl; return


0;

5. Tipe data Bentukan


Adalah tipe data yang dibuat sendiri sesuai kebutuhan
dalam program yang akan dimuat.
a. Struktur
Struktur adlah tipe data bentukan yang menyimpan
lebih dari satu variabel bertipe sama maupun berbeda.

Deklarasinya:
Struct nama_struktur

Tipe_data variabel1;

Tipe_data variabel2;

......

};

Contoh:
#include<iostream.h>

#include<string.h>

int main()

18 | Dasar Pemrograman C++


struct MAHASISWA

char NIM[15];

char Nama[20];

char Alamat[30];

char Kota[15];

}A;

strcpy(A.NIM,"01500024");

strcpy(A.Nama,"Susi Susanti");

strcpy(A.Alamat,"Jl.Raya Meruya Selatan");

strcpy(A.Kota,"Jakarta");

cout<<A.NIM<<endl;

cout<<A.Nama<<endl;

cout<<A.Alamat<<endl;

cout<<A.Kota<<endl;

return 0;

Hasil Eksekusi:

Dasar Pemrograman C++ | 19


b. Enumerasi
Tipe Enumerasi adalah tipe data yang nilainya terbatas
pada nilai-nilai yang telah didefinisikan saja. Tipe enumerasi
digunakan untuk membentuk tipe data yang nilainya pasti.

Deklarasinya:
enum nama_tipe{nilai1, nilai2,....};

Contoh pendefinisian tipe enumerasi:


enum JENIS_KELAMIN{Pria, Wanita};

enum HARI{Minggu, Senin, Selasa, Rabu, Kamis,


Jumat, Sabtu};

Contoh:
#include<iostream.h>

#include<string.h>

enum JENIS_KELAMIN{Pria, Wanita};

int main()

struct MAHASISWA

char NIM[15];

char Nama[20];

char Alamat[30];

char Kota[15];

JENIS_KELAMIN gender;

}A;

20 | Dasar Pemrograman C++


strcpy(A.NIM,"01500024");

strcpy(A.Nama,"Susi Susanti");

strcpy(A.Alamat,"Jl.Raya Meruya Selatan");

strcpy(A.Kota,"Jakarta");
A.gender=Wanita;

cout<<"NIM : "<<A.NIM<<endl;

cout<<"Nama : "<<A.Nama<<endl;

cout<<"Alamat : "<<A.Alamat<<endl;

cout<<"Kota : "<<A.Kota<<endl;

cout<<"Jenis Kelamin : "<<A.gender<<endl;

return 0;

Hasil Eksekusi:

Latihan:
1. Buatlah program dengan menggunakan struct dengan
hasil eksekusi program sebagai berikut:
Plat Nomor Kendaraan: B1669OK
Jenis Kendaraan : Xenia

Dasar Pemrograman C++ | 21


Nama Pemilik : Bambang Susilo

Alamat : Jl. Meruya raya No 1

Kota : Jakarta

2. Buatlah program dengan tampilan sbb:


Masukkan sebuah huruf = .............

Masukan sebuah kata = .................

Masukkan Angka = ..................

Huruf yang Anda masukkan adalah .............

Kata yang Anda masukkan adalah ..............

Angka yang Anda masukkan adalah ........

22 | Dasar Pemrograman C++


BAB 3
NULL TERMINATED STRING

Dalam C++, string yang digunakan bertipe nul terminated


string, yaitu jenis string yang diakhiri oleh karakter NULL
(‘0’) bukan nol. String adalah kumpulan (array) dari karakter.
Dalam C++ terdapat beberapa fungsi siap pakai yang berguna
untuk menyelesaikan masalah-masalah yang berkaitan
dengan srtning. Untuk menggunakan fungsi-fungsi tersebut
kita harus mendaftarkan file header string.h. Berikut ini
fungsi- fungsi yang dimaksudkan:

A. Fungsi strcpy
Bentuk Umum:
char*strcpy(char S1, const char*S2);

Berguna untuk melakukan penyalinan (copi) string dari


S2 ke S1. Contoh:
#include <iostream.h>

#include <string.h>

int main()

char S1[51];

char*S2;

//Melakukan pengisian nilai terhadap variabel S2


Page 1 of 12 : Algoritma & Struktur Data 2 (C++)– Created by Wachyu Hari H

Dasar Pemrograman C++ | 23


S2=”Ini adalah contoh penyalinan string”;

//Melakukan penyalinan string dari variabel S2


ke variabel S1

strcpy(S1,S2);

//Menampilkan nilai dari variabel S1

cout <<S1<<endl;

return 0;

Hasil eksekusi:

B. Fungsi strdup
Bentuk umum dari fungsi strdup dapat dilihat di bawah
ini.
char* strdup(const char* S)

Fungsi ini sebenarnya mirip dengan fungsi strcpy, yaitu


untuk melakukan duplikasi string. Contoh:
#include <iostream.h>

#include <string.h>

int main()

{
char*S1;

24 | Dasar Pemrograman C++


char*S2;

//Melakukan pengisian nilai terhadap variabel S1

S1=”Contoh duplikasi string”;

//Melakukan penyalinan string dari variabel S2


ke variabel S1

S2=strdup(S1);

//Menampilkan nilai dari variabel S2

cout <<S2<<endl;

return 0;

C. Fungsi strcat
Bentuk umum:
char* strcat(char*S1, const*S2);

Fungsi ini berguna untuk menggabungkan (concat) string


dari S2 ke posisi akhir dari S1.

Contoh:
#include <iostream.h>

#include <string.h>

int main()

{ char*S1; char*S2; char*spasi=””;


//Melakukan pengisian nilai terhadap variabel S1
dan S2

S1=”Teks ”;

S2=”Gabungan”;

Dasar Pemrograman C++ | 25


// Menambahkan karakter(‘’) ke dalam variabel S1

strcat(S1,spasi);

//Melakukan penggabungan string yang terhadap


pada s1 dan S2

strcat(S1,S2);

//Menampilkan nilai dari variabel S1 setelah


digabung

cout <<S1<<endl;

return 0;

Hasil Eksekusi:

D. Fungsi strncat
Bentuk umum:
char*strncat(char*S1, const char*S2, size_t n);

Fungsi ini berguna untuk menggabungkan n karakter dari


variabel S2 ke posisi akhir dari fungsi variabel S1.

Contoh:
#include <iostream.h>

#include <string.h>

26 | Dasar Pemrograman C++


int main()

char*S1;

char*S2;

//Melakukan pengisian nilai terhadap variabel S1


dan S2

S1=”Nama Saya adalah: ”; S2=”Putri Salju”;


//Menggabungkan 12 karakter dari variabel S2 ke
variabel S1

strncat(S1,S2,12);

//Menampilkan nilai dari variabel S1 setelah


penggabungan

cout <<S1<<endl;

return 0;

E. Fungsi strlen
Bentuk umum:
size_t strlen(const char* S);

Fungsi ini berguna untuk mengembalikan panjang string


dari S.

Contoh:
#include <iostream.h>

#include <string.h>

int main()

Dasar Pemrograman C++ | 27


char*S1;

char*S2;

int panjang_S1, panjang_S2;

//Melakukan pengisian nilai terhadap variabel S1

S1=”Putri”;

S2=”Salju”;

panjang_S1=strlen(S1);

panjang_S2=strlen(S2);

//Menampilkan nilai dari variabel panjang_S1 dan


panjang_S2

cout <<”Panjang S1 : “<<panjang_S1<<endl;

cout <<”Panjang S2 : “<<panjang_S2<<endl;

return 0;

}
Page 5 of 12 : Algoritma & Struktur Data 2 (C++)– Created by Wachyu Hari H

Hasil Eksekusi:

F. Fungsi strcmp
Bentuk umum:
int strcmp(const char*S1, const char*S2);

28 | Dasar Pemrograman C++


Fungsi ini berguna untuk membandingkan string yang
terdapat pada variabel S1 dan S2. Nilai yang akan
dikembalikan yaitu:

0 (nol) : terjadi jika S1 sama dengan S2


kurang dari 0 (negatif) : terjadi jika S1 lebih kecil dari S2
lebih dari 0 (positif) : terjadi jika S1 lebih besar dari S2

Contoh:
#include <iostream.h>

#include <string.h>

int main()
{

char*S1;

char*S2;

//Melakukan pengisian nilai terhadap variabel S1


dan S2

S1=”COBA”;

S2=”COBA”;

//Menampilkan hasil perbandingan string dari


variabel S1 dan S2

cout<<”Hasil perbandingan
:”<<strcmp(S1,S2)<<endl;

// Melakukan perubahan terhadap variabel S1

S1=”Coba”;

//Menanpilkan kembali hasil perbandingan string


dari variabel S1 dan S2

cout<<”Hasil perbandingan
:”<<strcmp(S1,S2)<<endl;

Dasar Pemrograman C++ | 29


// Melakukan perubahan terhadap variabel S1

S2=”coba”;

// Menanpilkan kembali hasil perbandingan string


dari variabel S1 dan S2

cout<<”Hasil perbandingan
:”<<strcmp(S1,S2)<<endl;

return 0;

G. Fungsi strrev
Bentuk Umum:
char*strrev(char* S)

Fungsi ini berguna untuk membalikkan string dari


variabel S.

Contoh:
#include <iostream.h>

#include <string.h>

int main(){

char*S = ”Putri Salju”;

//Melakukan penulisan stringdari posisi variabel S

strrev(S);

//Menampilkan nilai dari variabel S setelah dibalik

cout <<S<<endl;

return 0;

30 | Dasar Pemrograman C++


Hasil Eksekusi:

H. Fungsi strchr
Bentuk umum:
char*strchr(const char* S, int ch)

Fungsi ini akan mencari lokasi karakter dari suatu


string. Jika karakter ditemukan, maka fungsi ini akan
mengembalikan pointer dari string yang dimulai darai
karakter tersebut, tetapi jika tidak maka fungsi akan
mengembalikan nilai 0.

Contoh:
#include <iostream.h>

#include <string.h>

int main(){

char*S = ”C++ adalah segalanya bagiku”;

char*PStr;

//Melakukan pencarian karakter ‘+’ di dalam


variabel S

PStr=strchr(S,’+’);

//Menampilkan nilai dari variabel PStr

cout <<PStr<<endl;

Dasar Pemrograman C++ | 31


return 0;

I. Fungsi strlwr
Bentuk umum:
char*strlwr(char* S);

Fungsi ini akan mengubah string yang tersimpan dalam


variabel S menjadi huruf kecil.

Contoh:
Page 9 of 12 : Algoritma & Struktur Data 2 (C++)– Created by Wachyu Hari H

#include <iostream.h>

#include <string.h>

int main()

char*S = ”C++ ADALAH SEGALANYA BAGIKU”;

char*hasil;

//Mengubah string dari variabel S menjadi huruf


kecil

hasil=strlwr(S);

//Menampilkan nilai dari variabel hasil

cout <<hasil<<endl;

return 0;

32 | Dasar Pemrograman C++


Hasil Eksekusi:

J. Fungsi strupr
Bentuk umum:
char*strupr(char* S);

Fungsi ini akan mengubah string yang tersimpan dalam


variabel S menjadi huruf kapital. Contoh:

Page 10 of 12 : Algoritma & Struktur Data 2 (C++)– Created by Wachyu Hari


H
#include <iostream.h>

#include <string.h>

int main(){

char*S = ”c++ adalah segalanya bagiku”;

char*hasil;

//Mengubah string dari variabel S menjadi huruf


kapital

hasil=strupr(S);

//Menampilkan nilai dari variabel hasil

cout <<hasil<<endl;

return 0;

Dasar Pemrograman C++ | 33


Hasil Eksekusi:

Latihan:
Buatlah program dengan tampilan sbb:

Penyelesaian:
#include <iostream.h>

#include <string.h>

int main()
{

char*S1="Mercu ";

char*S2="Buana";

char*S3="UNIVERSITAS";

char*hasil;

hasil=strlwr(S3);

strcat(S1,S2);

cout<<hasil<<endl;

34 | Dasar Pemrograman C++


strrev(S3);

cout<<S3<<endl; c

out<<S1<<endl;

return 0;

Dasar Pemrograman C++ | 35


36 | Dasar Pemrograman C++
BAB 4
OPERATOR PADA C++

Operator adalah simbol yang mengolah nilai pada operan


dan menghasilkan satu nilai baru. Setiap operator mengolah
data dengan satu cara tertentu.
Operator-operator ini dapat dikelompokan menjadi 4
bagian yaitu:
Operator
Assignment
Operator Unary
Operator Binary
Operator Ternary

A. Operator Assignment
Adalah operator yang berfungsi untuk memasukkan
(assign) nilai ke dalam suatu variabel ataupun konstanta.
Operator ini dilambangkan dengan tanda sama dengan
(=)

Contoh:
#include <iostream.h>

int main ()

//mendeklarasikan variabel

char MyChar;

char*MyString;

int MyInteger;
double MyDouble;

Dasar Pemrograman C++ | 37


//melakukan assignment thd variabel diatas

MyChar = 'C';

MyString = "Rahasia C++"; MyInteger = 24;

MyDouble = 22.021;

//menampilkan nilai dari variabel

cout<<"MyChar:"<<MyChar<<endl;

cout<<"MyString:"<<MyString<<endl;

cout<<"MyInteger:"<<MyInteger<<endl;

cout<<"MyDouble:"<<MyDouble<<endl;

return 0;

Hasil Eksekusi

B. Operator Unary
Adalah operator yang hanya melibatkan sebuah operand.
Yang termasuk ke dalam tabel operator unary antara lain:
Operator Jenis Operasi Contoh
+ Membuat nilai positif +7
- Membuat nilai negatif -7
++ Increment C++
-- Decremen C--

38 | Dasar Pemrograman C++


Increment adalah suatu penambahan nilai yang
terjadi pada sebuah variabel. Operator yang digunakan
untuk melakukan increment adalah operator ++. Operator ini
menambahkan nilai dari suatu variabel dengan nilai 1. Ada
dua jenis increment yang terdapat dalam C++ yaitu pre-
increment dan post-increment. Pre-increment artinya
melakukan penambahan nilai sebelum suatu variabel itu
diproses. Post- incremen artinya melakukan proses terlebih
dahulu sebelum dilakukan penambahan nilai.
Decrement merupakan kebalikan dari proses increment,
yaitu menurunkan (mengurangi) nilai dari suatu variabel.
Decrement juga dibagi 2 yaitu pre-decrement dan post-
decremen.

Contoh:
#include <iostream.h>

int main ()

int A; //mendeklarasikan variabel

A = 5;

cout<<"Contoh melakukan pre-increment \n";

cout<<"Nilai A awal adalah : "<<A<<endl;

cout<<"Nilai ++A adalah :"<<++A<<endl;

cout<<"Nilai A akhir adalah:"<<A<<endl;

cout<<'\n'<<endl;

cout<<"Contoh melakukan post-decrement \n";

cout<<"Nilai A awal adalah : "<<A<<endl;

cout<<"Nilai --A adalah :"<<--A<<endl;

Dasar Pemrograman C++ | 39


cout<<"Nilai A akhir adalah:"<<A<<endl;

cout<<'\n'<<endl;

//mengubah nilai A menjadi 10

A = 10;

cout<<"Contoh melakukan post-increment \n";

cout<<"Nilai A awal adalah : "<<A<<endl;

cout<<"Nilai A++ adalah :"<<A++<<endl;

cout<<"Nilai A akhir adalah:"<<A<<endl;

cout<<'\n'<<endl;

cout<<"Contoh melakukan pre-decrement \n";

cout<<"Nilai A awal adalah : "<<A<<endl;

cout<<"Nilai A-- adalah :"<<A--<<endl;

cout<<"Nilai A akhir adalah:"<<A<<endl;

cout<<'\n'<<endl;

return 0;
}

C. Operator Binary
Adalah operator yang digunakan dalam operasi yang
melibatkan dua buah operand. Operator Binary
dikelompokan menjadi 4 jenis yaitu:
a. Operator Aritmatika
Adalah operator yang digunakan untuk melakukan
operasi-operasi aritmatika seperti penjumlahan,
pengurangan, dsb.

40 | Dasar Pemrograman C++


Operator Jenis Operasi Contoh
+ penjumlahan 2+3=5
- pengurangan 5–2=3
* perkalian 2*3=6
/ pembagian 10 / 3 = 3.33
% Sisa bagi (modulus) 10 % 3 = 1

Contoh:
#include<iostream.h>

int main ()

int X = 10, Y = 3;

int jumlah, kurang, kali, bagi, sisa_bagi;

jumlah = X + Y;

kurang = X - Y;

kali = X * Y;

bagi = X / Y;

sisa_bagi= X % Y;

cout<<X<<"+"<<Y<<"="<<jumlah;

cout<<'\n';

cout<<X<<"-"<<Y<<"="<<kurang;

cout<<'\n';

cout<<X<<"*"<<Y<<"="<<kali;

cout<<'\n';

cout<<X<<"/"<<Y<<"="<<bagi;

cout<<'\n';

Dasar Pemrograman C++ | 41


cout<<X<<"%"<<Y<<"="<<sisa_bagi;

return 0;

b. Operator Logika
Adalah operator yang digunakan untuk melakukan
operasi dimana nilai yang dihasilkan dari operasi tersebut
hanya bernilai benar (true / 1) atau salah (false / 0). Nilai ini
biasa disebut dengan boolean. Yang termasuk operator logika
antara lain:

Operator Jenis Operasi Contoh


&& AND (dan) 1 && 1 = 1
|| OR (atau) 1 || 0 = 1
! NOT (negasi) !0 = 1

Operasi AND (&&)


Operasi AND hanya akan menghasilkan nilai 1 (benar)
jika semua operand-nya bernilai benar, namun jika tidak
maka operasi tersebut akan menghasikan nilai 0 (salah).

Contoh:
#include<iostream.h>

int main()

cout<<"1&&1="<<(1&&1)<<endl;

cout<<"1&&1="<<(1&&0)<<endl;

cout<<"1&&1="<<(0&&1)<<endl;

cout<<"1&&1="<<(0&&0)<<endl;

42 | Dasar Pemrograman C++


return 0;

Hasil Eksekusi:

Operasi OR (||)
Operasi OR hanya akan menghasilkan nilai 0 (salah) jika
semua operand-nya bernilai salah, namun jika tidak maka
operasi tersebut akan menghasikan nilai 1 (benar).

Contoh:
#include<iostream.h>

int main()

cout<<"1||1="<<(1||1)<<endl;

cout<<"1||1="<<(1||0)<<endl;

cout<<"1||1="<<(0||1)<<endl;

cout<<"1||1="<<(0||0)<<endl; return 0;

Dasar Pemrograman C++ | 43


Hasil Eksekusi:

Operasi NOT /NEGASI (!)


Nilai yang dihasilkan dari operasi NOT adalah
kebalikan dari nilai yang dikandung didalamnya. Jika nilai
awal 1 (benar) maka setelah operasi NOT nilainya
menjadi 0 (salah), begitu juga sebaliknya.

Contoh:
#include<iostream.h>

int main()

cout<<"!1="<<(!1)<<endl;

cout<<"!0="<<(!0)<<endl;

return 0;

Hasil Eksekusi:

44 | Dasar Pemrograman C++


D. Operator Relasional
Adalah operator yang digunakan untuk menentukan
relasi atau hubungan dari dua buah operand. Operator ini
banyak digunakan untuk melakukan pengecekan sebuah
ekspresi (kondisi) dalam struktur percabangan.
Operator AND hanya akan menghasilkan nilai 1 (benar)
jika semua operand-nya bernilai benar, namun jika tidak
maka operasi tersebut akan menghasilkan nilai 0 (salah).
Operator OR hanya akan menghasilkan nilai 0 (salah) jika
semua operand-nya bernilai salah, namun jika tidak maka
operasi tersebut akan menghasilkan nilai 1 (benar).
Nilai yang dihasilkan oleh nilai NOT adalah kebalikan dari
nilai yang dikandung di dalamnya. Jika nilai awal 1 (benar)
maka nilai operasi NOT menjadi 0 (salah).

Yang termasuk ke dalam operator relasional antara lain:


Operator Jenis Operasi Contoh
> Lebih besar (5 > 2) = 1
< Lebih kecil (5 < 2) = 0
>= Lebih besar atau sama dengan (5 >= 2) = 1
<= Lebih kecil atau sama dengan (5 <= 2) = 0
== Sama dengan (5 == 2) = 0
!= Tidak sama dengan (5 != 2) = 1

E. Operator Bitwise
Adalah operator yang digunakan untuk melakukan
operasi-operasi yang berhubungan dengan pemanipulasian
bit. Catatan operator bitwise hanya dapat dilakukan pada
operand yang bertipe char dan int. Yang termasuk dalam
operator bitwise anta lain:

Dasar Pemrograman C++ | 45


Operator Jenis Operasi Contoh
& AND 1&0=0
| OR 1|0=1
^ Eklusive OR (XOR) 1^0=0
~ NOT ~1 = 0
>> Shift Right 5 << 1 = 10
<< Shift Left 10 >> 1 = 5

F. Operator Ternary
Adalah operator yang digunakan dalam operasi yang
melibatkan tiga buah operand.
Bentuk umum:
Ekspresi1? Ekspresi2: Ekspresi3;

Jika ekspresi1 bernilai benar, maka program akan


mengeksekusi ekspresi2. Sedangkan jika ekspresi1 salah
maka yang dieksekusi adalah ekspresi3.

Contoh:
#include<iostream.h>

int main()

int angka;

cout<<"Masukkan bilangan: ";

cin>>angka;

(angka %2 ==0) ? (cout<<angka<<" adalah bilangan


Genap \n")

: (cout<<angka<<" adalah bilangan Ganjil \n");

return 0;

46 | Dasar Pemrograman C++


}
Hasil Eksekusi:

Dasar Pemrograman C++ | 47


48 | Dasar Pemrograman C++
BAB 5
PERCABANGAN

Salah satu permasalahan yang pasti ditemui dalam


pembuatan program adalah suatu percabangan.
Percabangan yang dimaksud adalah suatu pemilihan
statemen yang akan dieksekusi dimana pemilihan tersebut
didasarkan atas kondisi tertentu. Pada C++ jenis struktur
yang digunakan untuk mengimplementasikan suatu
percabangan ada dua yaitu: struktur if dan struktur switch.
Statemen yang terdapat dalam sebuah blok percabangan
akan dieksekusi jika kondisi yang didefinisikan terpenuhi
(bernilai benar) Artinya jika kondisi tidak terpenuhi (bernilai
salah) maka statemen tersebut tidak ikut dieksekusi atau
akan diabaikan oleh compiler.

A. Struktur satu kondisi (perintah if)


Struktur ini merupakan struktur yang paling sederhana
karena hanya melibatkan satu buah ekspresi akan diperiksa.
Pada konstruksi perintah if, C++ tidak memiliki kata kunci
(keyword) then.
Bentuk umum:
if (kondisi)

pernyataan;

atau

if (kondisi)

statemen1;

statemen2;

Dasar Pemrograman C++ | 49


pernyataann;

Contoh:

if (detik == 60)

menit = menit + 1;

if (Angka %2 == 0)

cout<<”Bilangan genap”;

if (sisi > 0)

Luas = panjang * lebar;

Isi = Luas*tinggi;

Kondisi digunakan untuk menentukan pengambilan


keputusan, operator yang digunakan adalah relational dan
logical operators.

Contoh program:
#include <iostream.h>

int main()

int nilai;

//memasukkan bilangan bulat

50 | Dasar Pemrograman C++


cout<<”Masukkan sebuah bilangan bulat: “;

cin>>nilai;

//menampilkan teks jika nilai yang tersimpan


lebih besar dari 0 if (nilai > 0)

cout<<“Nilai yang Anda masukkan adalah bilangan


positif“;

return 0;

Hasil eksekusi program di atas bersifat dinamis artinya


tidak setiap proses eksekusi program akan menghasilkan
hasil yang sama. Jika user memasukkan angka lebih
besar dari 0 maka program ini akan menampilkan teks
“Nilai yang Anda masukkan adalah bilangan positif”.
Selain itu kita juga bisa nenggunakan operator || dan &&
dalam menentukan sebuah ekspresi.

Contoh program:
#include <iostream.h>

int main()

int bilangan;

char huruf;
//memasukkan bilangan bulat

cout<<”Masukkan sebuah bilangan bulat: “;

cin>>bilangan;

if ((bilangan > 0) && (bilangan < 10))

cout<<bilangan<<” lebih besar dari nol dan


lebih kecil dari sepuluh”;

Dasar Pemrograman C++ | 51


//memasukkan huruf

cout<<“\n“;

cout<<”Masukkan sebuah huruf: “;

cin>>huruf;

if ((huruf == ‘A’) || (huruf == ‘a’) || (huruf


== ‘I’) ||

(huruf == ‘i’) || (huruf == ‘U’) || (huruf ==


‘u’) ||

(huruf == ‘E’) || (huruf == ‘e’) || (huruf ==


‘O’) ||

(huruf == ‘o’))

cout<<huruf<<” adalah huruf vokal”;

return 0;

B. Struktur dua kondisi (perintah if – else)


Struktur percabangan jenis ini sedikit lebih kompleks bila
dibandingkan dengan struktur yang hanya memiliki satu
kondisi. Konsep ini sangat sederhana yaitu pada struktur
jenis ini terdapat sebuah statemen khusus yang berguna
untuk mengatasi kejadian apabila kondisi yang
didefinisikan tersebut tidak terpenuhi (bernilai salah).
Perintah ini memberikan satu alternatif dari dua
kemungkinan.

52 | Dasar Pemrograman C++


Bentuk umum:
if (kondisi)

statemen_jika_kondisi_terpenuhi;

else

statemen_jika_kondisi_tidak_terpenuhi;

Contoh:
#include <iostream.h>

int main()

int nilai;

//memasukkan bilangan bulat


cout<<”Masukkan sebuah bilangan bulat: “;

cin>>nilai;

//pengecek bilangan apakah habis dibagi dua atau


tidak

if (nilai %2 == 0)

cout<<nilai<<“adalah bilangan genap“;

else

Dasar Pemrograman C++ | 53


cout<<nilai<<“adalah bilangan ganjil“;

return 0;

C. Struktur tiga kondisi (perintah multiple if – else)


Struktur ini merupakan struktur percabangan yang
biasanyamembingungkan para programmer pemula.
Percabangan jenis ini merupakan perluasan dari struktur
yang memiliki dua kondisi diatas yaitu dengan
menyisipkan satu atau lebih kondisi ke dalamnya.
Bentuk umum:
if (kondisi1)

statemen_jika_kondisi1_terpenuhi;
}

else if (kondisi2)

statemen_jika_kondisi2_tidak_terpenuhi;

else if (kondisi3)

statemen_jika_kondisi3_tidak_terpenuhi;

....

54 | Dasar Pemrograman C++


else

statemen_jika_semua_kondisi_tidak_terpenuhi;
}

Contoh program:
#include <iostream.h>

int main()
{

int nilai;

//memasukkan bilangan bulat

cout<<”Masukkan sebuah bilangan yang akan


diperiksa: “;

cin>>nilai;

//pengecek bilangan apakah habis dibagi dua atau


tidak

if (nilai > 0)

cout<<nilai<<“ adalah bilangan positif“;

else if (nilai < 0)

cout<<nilai<<“ adalah bilangan negatif“;

else

cout<<“Anda memasukkan bilangan NOL“;

Dasar Pemrograman C++ | 55


}

return 0;

D. Perintah switch
Perintah ini memiliki bentuk switch – case yang
digunakan untuk pilihan berjumlah banyak. Perintah switch
tidak dianjurkan pada pilihan yang melibatkan jangkauan
nilai (range) tetapi dianjurkan pada pilihan berupa
konstanta dan banyak misalnya untuk memilih menu.
Bentuk umum:
switch (pernyataan)

case nilai_konstan1:

blok_pernyataan1;

break;

case nilai_konstan2:

blok_pernyataan2;

break;

default;

blok_pernyataan_n;

Keterangan:
Tipe data dari pernyataan harus bilangan bulat atau

56 | Dasar Pemrograman C++


karakter.
Default berguna untuk mengekspresikan statemen
alternatif yaitu jika nilai yang kita masukkan tidak sesui
dengan nilai-nilai konstan yang telah didefinisikan.
Statemen break berfungsi sebagai statemen peloncatan.

Contoh program:
#include <iostream.h>

int main()

int bil;

cout<<"Masukkan sebuah angka (1 .. 7):";

cin>>bil;

switch (bil)

case 1:

cout<<"Hari ke-"<<bil<<"adalah MINGGU";

break;

case 2:

cout<<"Hari ke-"<<bil<<" adalah SENIN";

break;

case 3:

cout<<"Hari ke-"<<bil<<"adalah SELASA";

break;

case 4:

Dasar Pemrograman C++ | 57


cout<<"Hari ke-"<<bil<<"adalah RABU";

break;

case 5:

cout<<"Hari ke-"<<bil<<"adalah KAMIS";

break;

case 6:

cout<<"Hari ke-"<<bil<<"adalah JUMAT";

break;

case 7:

cout<<"Hari ke-"<<bil<<"adalah SABTU";

break;

return 0;

Hasil eksekusi

Latihan:
1. Buatlah program untuk menentukan masukkan dari user
apakah berupa huruf vokal atau konsonan!
2. Buatlah program untuk menentukan huruf, dengan
ketentuan sebagai berikut:
a. Jika karakter >=’A’ dan karakter <=’Z’ maka

58 | Dasar Pemrograman C++


Karakter yang Anda masukkan adalah huruf besar.
b. Jika karakter >=’a’ dan karakter <=’z’ maka
Karakter yang Anda masukkan adalah huruf kecil.
c. Jika karakter >=’0’ dan karakter <=’9’ maka
Karakter yang Anda masukkan adalah Angka.
d. Jika bukan semuanya berarti Karakter yang Anda
masukkan adalah bukan alphanumeric

Penyelesaian:
1. Listing programnya:
#include<iostream.h>

int main()

char huruf;

cout<<"Masukkan sebuah huruf: ";

cin >>huruf;

if ((huruf == 'A') || (huruf == 'a') ||


(huruf == 'I') ||

(huruf == 'i') || (huruf == 'U') || (huruf ==


'u') ||

(huruf == 'E') || (huruf == 'e') || (huruf ==


'O') ||

(huruf == 'o'))

cout<<huruf<<" adalah huruf vokal";

}else

cout<<huruf<<" adalah huruf konsonan";

Dasar Pemrograman C++ | 59


}

return 0;

2. Listing Programnya:
//Program menentukan huruf

#include<iostream.h>

int main()

char karakter;

cout<<”Masukkan sebuah karakter: “;

cin>>karakter;

if (karakter >=’A’ && karakter <=’Z’)

cout<<”Masukkan Anda adalah huruf besar”;

else if (karakter >=’a’ && karakter <=’z’)

cout<<”Masukkan Anda adalah huruf kecil”;

else if (karakter >=’0’ && karakter <=’9’)

cout<<”Masukkan Anda adalah angka”;

else

cout<<”Masukkan Anda bukan alphanumeric”;

return 0;

60 | Dasar Pemrograman C++


BAB 6
PERULANGAN

A. Pernyataan while
Digunakan untuk pengambilan keputusan dan looping.
Bentuk Umum:
While(kondisi)

pernyataan

Jika kondisi tidak terpenuhi, maka pernyataan tidak akan


dieksekusi.

Contoh1:
//while1.cpp

#include <iostream.h>

int main()

int iterasi = 0;

while (iterasi < 10)

cout << "Iterasi ke" << iterasi << endl;

iterasi++;

}
return 0;

Dasar Pemrograman C++ | 61


Contoh2:
//while1.cpp

#include <iostream.h>

int main()

char input = 'Y';

while ((input != 'T') && (input == 'Y'))

cout << "Diulang lagi...";

cout << "Anda mau mengulang?(Y/T)";

cin >> input;

return 0;

B. Pernyataan do…while
Perperbedaan dengan while, do ... while memiliki
pengecekan kondisi yang terletak sets elaah statement
perulangan. Sehingga minimal sekali dijalankan, meskipun
kondisi tidak terpenuhi.

Bentuk :
do {

pernyataan;

} while(kondisi);

62 | Dasar Pemrograman C++


Terlihat, walaupun kondisi tidak terpenuhi, maka
pernyataan minimal akan dieksekusi sekali.

Contoh1:
//dowhile1.cpp

#include <iostream.h>

int main()

int iterasi = 0;

do

cout <<"Iterasi ke"<<iterasi<<endl;

iterasi++;

while (iterasi < 10);

return 0;

Contoh2:
//dowhile2.cpp

#include <iostream.h>

int main()

int iterasi = 20;

do

Dasar Pemrograman C++ | 63


cout <<"Iterasi ke"<<iterasi<<endl;

iterasi++;

while (iterasi < 10);

return 0;

C. Pernyataan for
Pernyataan for digunakan untuk melakukan looping.
Pada umumnya looping yang dilakukan oleh for telah
diketahui batas awal, syarat looping dan perubahannya.
Bentuk umum:
for( inisialisasi ; kondisi ; perubahan)

pernyataan;

Selama kondisi terpenuhi, maka pernyataan akan terus


dieksekusi. Bila pernyataan hanya terdiri atas satu baris
pernyataan, maka tanda kurung { } tidak diperlukan.

Contoh1 :
//Program mencetak angka 1-100

#include <iostream.h>

void main()

64 | Dasar Pemrograman C++


for(int x=1 ; x<=100 ; x++) cout<<x<<endl;

Bagaimana jika program diatas diubah menjadi:


#include <iostream.h>

void main()

for(int x=1; x++) cout<<x<<endl;

Program diatas akan menampilkan bilangan yang


banyaknya tak terhingga sehingga dapat membuat
komputer anda berhenti bekerja.

Contoh2 :
//for2.cpp

#include <iostream.h>
int main()

int iterasi = 0;

for (iterasi; iterasi < 10; iterasi++)

cout << "Iterasi ke" << iterasi << endl;

return 0;

Dasar Pemrograman C++ | 65


Contoh3:
//for3.cpp

#include <iostream.h>

int main()

for (int iterasi=0; iterasi < 10; iterasi++)

cout << "Iterasi ke" << iterasi << endl;

iterasi++;

return 0;

}
// Program menghasilkan segitiga pascal

#include <iomanip.h>

#include <conio.h>

#include <iostream.h>

main()

unsigned int n,a,b,x,s[100],p[100];

cout<<"Masukkan nilai n: "; cin>>n;

for(a=0,x=0;a<=n;a++,x+=2)

cout<<setw(3*n-x);

s[a]=1; p[a]=1; for(b=0;b<=a;b++)


{

66 | Dasar Pemrograman C++


if (b<1||b==a) cout<<"1"<<setw(4);

else

s[b]=p[b];

p[b]=s[b-1]+s[b];

cout<<p[b]<<setw(4);

cout<<endl;

getch();

return 0;

Hasil Eksekusinya:

D. Pernyataan Break
Pernyataan break akan selalu terlihat digunakan bila
menggunakan pernyataan switch. Pernyataan ini juga
digunakan dalam loop. Bila pernyataan ini dieksekusi, maka

Dasar Pemrograman C++ | 67


akan mengkakhiri loop dan akan menghentikan iterasi pada
saat tersebut.

Contoh:
//break1.cpp

#include <iostream.h>

int main()

int iterasi = 0;

for (;;)

if (iterasi < 10)

cout << "Iterasi ke" << iterasi << endl;

iterasi++;

else break;

return 0;

E. Pernyataan Continue
Pernyataan continue digunakan untuk pergi ke bagian
awal dari blok loop untuk memulai iterasi berikutnya.

68 | Dasar Pemrograman C++


Contoh1 :
//continue.cpp

#include <iostream.h>

int main()

int iterasi = 0;

for (;;)

if ((iterasi <= 5) && (iterasi > 3))

iterasi++;

continue;

else if (iterasi < 10)

cout << "Iterasi ke" << iterasi << endl;

iterasi++;

else break;

return 0;

Dasar Pemrograman C++ | 69


Contoh2:
//break_kontinue.cpp

#include <iostream.h>
void main()

int n;

for(;;)

cout<<”Masukkan bilangan integer : “; cin>>n;

if(n % 2 == 0) continue; else if(n % 5 == 0)


break; cout<<”\tLanjutkan loop
berikutnya.\n”;
}

cout<<”Akhiri Loop.\n”;

Keluarannya :

F. For bersarang
For bersarang dapat melibatkan lebih dari satu
variabel namun yang jelas satu diantaranya akan
digunakan sebagai indeks perulangan.

70 | Dasar Pemrograman C++


Bentuk umum:
for( variabel1=nilai_awal; kondisi1; variabel1++){

for( variabel2=nilai_awal; kondisi2; variabel2++){

for( variabel3=nilai_awal; kondisi3;


variabel3++){

Statemen_statemen yang akan diulang;


….

}
}
}

Contoh:
#include<iostream.h>
#include<iomanip.h>
int main()
{
int x,y;
for (x=1; x<=10; x++)
{
for (y=1; y<=x; y++)
{
cout<<setw(4)<<x+y<<" ";
}
cout<<"\n";
}
return 0;
}

Hasil Eksekusi:

Dasar Pemrograman C++ | 71


Latihan dan jawaban:
Buatlah program untuk menampilkan deret bilangan
ganjil dari 11 sampai 29 keculi 25 dengan menggunakan for!

Jawab:
Listing program:
#include<iostream.h>

main()

int a;

for (a=11; a<=29; a++)

if ((a %2!=0) && (a !=25))

cout<<a<<" ";

return 0;

Hasil Eksekusi:

Latihan:
1. Buatlah program untuk menampilkan deret bilangan
genap dari 10 sampai 50 keculi 30 dengan
menggunakan for!

72 | Dasar Pemrograman C++


2. Buatlah program dengan menggunakan for bersarang
dengan tampilan sbb:

Dasar Pemrograman C++ | 73


74 | Dasar Pemrograman C++
BAB 7
BANK SOAL PRA UTS

A. Soal dan Jawaban


1. Buatlah program untuk menghitung luas dengan
menggunakan menu, dengan ketentuan sebagai berikut:
a. Menghitung Luas Bujur Sangkar.
b. Menghitung Luas Persegi Panjang.
c. Menghitung Luas Segi Tiga
d. Menghitung Luas Lingkaran.

Penyelesaian:
//Program menghitung luas
#include<iostream.h>
int main()
{
int pilihan;
cout<<"********Menu Menghitung
Luas*******"<<endl;
cout<<"1. Menghitung Luas Bujur Sangkar "<<endl;
cout<<"2. Menghitung Luas Persegi Panjang
"<<endl;
cout<<"3. Menghitung Luas Segitiga "<<endl;
cout<<"4. Menghitung Luas Lingkaran "<<endl;
cout<<"\n";
cout<<"Masukkan pilihan Anda [1..4]: ";
cin>>pilihan;
switch (pilihan)
{
case 1:
{
float s, luas;
cout<<"***Menghitung Luas Bujur
Sangkar***"<<endl;
cout<<"Masukan sisi: ";
cin>>s;
luas = s*s;
cout<<"Luas bujur sangkar adalah
"<<luas<<endl;

Dasar Pemrograman C++ | 75


break;
}
case 2:
{
float p, l, luas;
cout<<"***Menghitung Luas Persegi
Panjang***"<<endl;
cout<<"Masukan panjang: ";
cin>>p;
cout<<"Masukan lebar: ";
cin>>l;
luas = p*l;
cout<<"Luas persegi panjang adalah
"<<luas<<endl;
break;
}
case 3:
{
float a, t, luas;
cout<<"***Menghitung Luas Segitiga***"<<endl;
cout<<"Masukan alas: ";
cin>>a;
cout<<"Masukan tinggi: ";
cin>>t;
luas = a*t/2;
cout<<"Luas segitiga adalah "<<luas<<endl;
break;
}
case 4:
{
float r, luas;
cout<<"***Menghitung Luas Lingkaran***"<<endl;
cout<<"Masukan jari-jari: ";
cin>>r;
luas = 3.14*r*r;
cout<<"Luas lingkaran adalah "<<luas<<endl;
break;
}
default:
cout<<"Kode yang Anda Masukkan salah, coba sekali
lagi!!!"<<endl;
break;
}
return 0;
}

76 | Dasar Pemrograman C++


2. Buatlah program untuk menentukan huruf, dengan
ketentuan sebagai berikut:
a. Jika karakter >=’A’ dan karakter <=’Z’ maka
Karakter yang Anda masukkan adalah huruf besar.
b. Jika karakter >=’a’ dan karakter <=’z’ maka
Karakter yang Anda masukkan adalah huruf kecil.
c. Jika karakter >=’0’ dan karakter <=’9’ maka
Karakter yang Anda masukkan adalah Angka.
d. Jika bukan semuanya berarti Karakter yang Anda
masukkan adalah bukan alphanumeric

Penyelesaian
//Program menentukan huruf

#include<iostream.h>

int main()

char karakter;

cout<<”Masukkan sebuah karakter: “;

cin>>karakter;

if (karakter >=’A’ && karakter <=’Z’)

cout<<”Masukkan Anda adalah huruf besar”;

else if (karakter >=’a’ && karakter <=’z’)

cout<<”Masukkan Anda adalah huruf kecil”;

else if (karakter >=’0’ && karakter <=’9’)

cout<<”Masukkan Anda adalah angka”;

else

cout<<”Masukkan Anda bukan alphanumeric”;

Dasar Pemrograman C++ | 77


return 0;

3. Buatlah program untuk menghitung nilai mata uang


dalam bentuk dollar, yen, dan peso. Adapun inputannya
adalah nilai rupiah, dengan ketentuan sebagai berikut:
Dollar = rupiah / 8500
Yen = rupiah / 4000
Peso = rupiah / 2500

Penyelesaian:
//Program menghitung mata uang

#include<iostream.h>

int main()

int rupiah, dollar, yen, peso;


cout<<”Masukkan nilai rupiah: “;
cin>>rupiah;
dollar = rupiah / 8500;
yen = rupiah / 4000;
peso = rupiah / 2500;
cout<<”Nilai dollar adalah: “<<dollar<<endl;
cout<<”Nilai yen adalah: “<<yen<<endl;
cout<<”Nilai peso adalah: “<<peso<<endl;
return 0;

78 | Dasar Pemrograman C++


4. Buatlah program dengan tampilan sbb:

Penyelesaian:
#include <iostream.h>

#include <string.h>

int main()

char*S1="Mercu ";

char*S2="Buana";

char*S3="UNIVERSITAS";

char*hasil;
hasil=strlwr(S3);

strcat(S1,S2);

cout<<hasil<<endl; strrev(S3);

cout<<S3<<endl; cout<<S1<<endl;

return 0;

5. Buatlah program untuk menentukan bilangan ganjil


atau bilangan genap dengan menggunakan operator
bitwise!

Dasar Pemrograman C++ | 79


Penyelesaian:
#include<iostream.h>

int main()

int angka;

cout<<"Masukkan bilangan: ";

cin>>angka;

(angka %2 ==0) ? (cout<<angka<<" adalah bilangan


Genap \n")

: (cout<<angka<<" adalah bilangan Ganjil \n");

return 0;

Hasil Eksekusi:

6. Buatlah program dengan tampilan sbb:


Indonesia
INDONESIA
AISENODNI
Jakarta Barat

80 | Dasar Pemrograman C++


Penyelesaian:
#include <iostream.h>

#include <string.h>

int main()

char*output;

char*S1=”Jakarta “;

char*S2=”Barat”;

char*S="Indonesia";

cout<<S<<endl;

output=strupr(S);

cout<<output<<endl;

strrev(S);

cout<<S<<endl;

strcat(S1,S2);

cout<<S1<<endl;

return 0;

7. Buatlah program untuk menentukan masukkan dari user


apakah berupa huruf vokal atau konsonan!

Penyelesaian:
#include<iostream.h>

int main()

Dasar Pemrograman C++ | 81


char huruf;

cout<<"Masukkan sebuah huruf: ";

cin >>huruf;

if ((huruf == 'A') || (huruf == 'a') || (

huruf == 'I') || (huruf == 'i') ||

(huruf == 'U') || (huruf == 'u') || (huruf ==


'E') || (huruf == 'e') || (huruf == 'O') ||
(huruf == 'o'))

cout<<huruf<<" adalah huruf vokal";

}else

cout<<huruf<<" adalah huruf konsonan";

return 0;

B. Latihan
1. Buatlah program untuk menghitung luas dan Keliling
dengan menggunakan menu, dengan ketentuan sebagai
berikut:
a. Menghitung Luas dan Keliling Bujur Sangkar.
b. Menghitung Luas dan Keliling Persegi Panjang.
c. Menghitung Luas dan Keliling Segi Tiga
d. Menghitung Luas dan Keliling Lingkaran.

Dimana:
Luas bujur sangkar= sisi*sisi;
Keliling bujur sangkar = 4*sisi;
Luas persegi panjang = panjang*lebar;

82 | Dasar Pemrograman C++


Keliling persegi panjang = 2*(panjang+lebar);
Luar segitiga = alas*tinggi/2;
Keliling segitiga = sisi a + sisi b + sisi c;
Luar lingkarang = 3.14*jari_jari*jari_jari;
Keliling lingkaran =2*3.14*jari_jari;

2. Buatlah program untuk menentukan total pembelian


yang harus dibayarkan oleh seorang pelanggan, apabila
diketahui kondisi berikut:
Beli = harga barang*jumlah barang
Jika jumlah barang>100 maka
Discount=beli*15%
Jika tidak
Discount=beli*5%
Dimana:
Total bayar = beli – discount
Input:
Harga barang, jumlah barang
Output:
Beli, discount, dan total bayar

3. Buatlah program untuk menampilkan deret bilangan


ganjil dari 5 sampai 25 dengan menggunakan for, while,
dan do while!
4. Buatlah program untuk menampilkan deret bilangan
genap dari 10 sampai 50 kecuali 30 dengan menggunakan
for!
5. Buatlah program untuk menentukan nilai mahasiswa
lulus atau tidak lulus, dengan menggunakan operator
bitwise!
6. Buatlah program dengan menggunakan while bersarang
dengan tampilan sbb:

Dasar Pemrograman C++ | 83


7. Buatlah program dengan menggunakan for bersarang
dengan tampilan sbb:

Page 10 of 10 : Algoritma & Struktur Data 2 (C++)– Created by Wachyu Hari H

84 | Dasar Pemrograman C++


BAB 8
FUNGSI

Fungsi adalah sekumpulan perintah operasi program


yang dapat menerima argumen input dan dapat
memberikan hasil output yang dapat berupa nilai ataupun
sebuah hasil operasi.
Nama fungi yang didefinisikan sendiri oleh pemrogram
tidak boleh sama dengan nama build-in function pada
compiler C++. Fungsi digunakan agar pemrogram dapat
menghindari penulisan bagian program (kode) berulang-
ulang, dapat menyusun kode program agar terlihat lebih rapi
dan kemudahan dalam debugging program.

A. Fungsi, Deklarasi dan Definisinya


Pemrogram dapat membuat fungsi yang didefinisikan
sendiri olehnya.
Contoh :
// Fungsi kuadrat

// tipe_return nama_fungsi (tipe_argument argumen)

float kuadrat ( float x )

return x*x;

Fungsi yang didefinisikan oleh pemrogram terdiri atas


dua bagian, yaitu judul (header) dan isi (body). Judul dari
sebuah fungsi terdiri dari tipe return (float), nama fungsi
(kuadrat) dan list parameter (float x).

Dasar Pemrograman C++ | 85


Jadi, judul untuk fungsi kuadrat adalah
float kuadrat ( float x )

Isi dari sebuah fungsi adalah blok kode yang mengikuti


judulnya. Berisi kode yang menjalankan aksi dari fungsi,
termasuk pernyataan return yang memuat nilai fungsi yang
akan dikembalikan ke yang memanggilnya, Isi dari fungsi
kuadrat() adalah
{

return x*x;

Biasanya isi dari fungsi cukup besar. Meskipun demikian,


judulnya tetap hanya berada dalam satu baris. Isi dari sebuah
fungsi dapat memanggil fungsi itu sendiri ( disebut rekursif )
atau memanggil fungsi lainnya.
Pernyataan return dari sebuah fungsi mempunyai dua
manfaat, yaitu akan mengakhiri fungsi dan mengembalikan
nilainya ke program pemanggil. Bentuk umum pernyataan
return adalah :
return ekspresi;

Dengan ekspresi adalah sebuah ekspresi yang nilainya


dinyatakan untuk sebuah variable yang tipenya sama
seperti tipe return. Terdapat juga fungsi yang tidak
memberikan nilai return atau tipe returnnya void.

Contoh :
#include <iostream.h>

void sayHello(char[]) ; // deklarasi fungsi


sayHello()
void main()

86 | Dasar Pemrograman C++


{

char n[50];

cout<<"Masukkan nama anda : "; cin>>n;

sayHello(n);

void sayHello(char nama[]) // definisi funsi


sayHello()

cout<<"Selamat datang "<<nama;

Pengertian deklarasi fungsi berbeda dengan dengan


definisi fungsi. Suatu deklarasi fungsi adalah judul fungsi
yang sederhana yang diikuti oleh tanda semicolon (;).
Sedangkan definisi fungsi adalah fungsi yang lengkap, terdiri
dari judul dan isinya. Suatu deklarasi fungsi disebut juga
sebagai prototype fungsi.
Suatu deklarasi fungsi seperti layaknya suatu
deklarasi variabel, yang memberitahu compiler semua
informasi yang dibutuhkan untuk mengkompilasi file.
Compiler tidak perlu mengetahui bagaimana fungsi bekerja,
yang perlu diketahui adalah nama fungsi, jumlah dan tipe
parameternya, dan tipe balikannya (return). Hal ini
merupakan informasi yang dimuat secara lengkap dalam
judul fungsi.
Juga seperti sebuah deklarasi variabel, suatu deklarasi
fungsi harus muncul diatas semua nama fungsi yang
digunakannya. Berbeda dengan definisi fungsi, yang dapat
diletakkan terpisah dari deklarasinya, dan dapat muncul
dimana saja diluar fungsi main() dan biasanya dituliskan

Dasar Pemrograman C++ | 87


setelah fungsi main() atau dalam file terpisah yang jika ingin
digunakan tinggal menambahkan prepocessor #include
“nama_file” pada file utama. Jika definisi fungsi diletakkan
diatas fungsi main() maka deklarsi fungsi tidak diperlukan.
Variabel-variabel yang di list di dalam parameter fungsi
disebut parameter- parameter formal atau argumen-
argumen formal. Variabel lokal seperti ini hanya ada selama
eksekusi fungsi yang bersangkutan. Dalam contoh
dibawah, parameter- parameter formalnya adalah x dan y.
Variabel yang dilist dalam pemanggilan fungsi disebut
parameter-parameter actual atau argumen-argumen aktual.
Sama seperti variabel lainnya dalam program utama,
variabel-variabel tersebut harus dideklarasikan sebelum
digunakan dalam pemanggilan. Dalam contoh dibawah,
parameter-parameter aktualnya adalah m dan n.

Contoh :
// Penggunaan Fungsi Rekursif :

// Program mengecek sebuah bilangan integer atau


bukan

#include <iostream.h>

#include <conio.h>

#include <math.h> void cekInt(double); void main()


{

double angka;

cout<<"Masukan sebuah angka :";cin>>angka;

cekInt(angka);

void cekInt(double n)

88 | Dasar Pemrograman C++


{

if(n>1)cekInt(n-1);

else if(n<1)cekInt(-n-1);

else

if(n>0&&n<1)cout<<n<<"\t Bukan bilangan


bulat\n";

else cout<<n<<"\t Bilangan bulat\n";

B. Nilai Bawaan untuk Argumen Fungsi


Salah satu keistimewaan C++ yang sangat bermanfaat
dalam pemrograman adalah adanya kemampuan untuk
menyetel nilai default Argumen fungsi. Argumen- argumen
yang mempunyai nilai bawaan nantinya dapat tidak
disertakan di dalam pemanggilan fungsi dan dengan
sendirinya C++ akan menggunakan nilai bawaan dari
argumen yang tidak disertakan.

Contoh :
#include <iostream.h>

#include <conio.h>

void sayHello(int);

void main()

sayHello(4);

Dasar Pemrograman C++ | 89


}

void sayHello(int n=1)

for(int m=0;m<n;m++) cout<<”Halloo...\n”;

Penjelasan :
Jika pada program, argumen sayHello tidak
diberikan, maka program akan menampilkan:
Halloo …

Sebanyak satu kali, namun jika argumen pada fungsi


sayHello diberikan, misalkan
sayHello(4), maka program akan menampilkan
Halloo …
Halloo …
Halloo …
Halloo …
Itulah yang disebut dengan nilai default pada fungsi.

C. Fungsi-Fungsi Bawaan C++


Anda dapat menggunakan fungsi-fungsi bawaan C++,
misalkan fungsi-fungsi matematika, pengolah kata dan
banyak lagi. Sebenarnya (mungkin tidak terasa bagi anda)
main juga adalah fungsi, jadi tanpa anda sadari sebenarnya
anda telah menggunakan fungsi.
Untuk dapat menggunakan fungsi-fungsi tersebut anda
harus meng-include file dimana fungsi tersebut didefinisikan.
Misalkan :
Fungsi – fungsi matematika, anda harus meng-include file

90 | Dasar Pemrograman C++


math.h
Fungsi – fungsi pengolah string dan karakter, anda
harus meng-include file string.h
Fungsi clrscr(), getch(), getche() dalam file conio.h

Soal Latihan dan Jawaban:


1. Buatlah Program Kuadrat dengan menggunakan fungsi!
Jawaban

Listing program: fkuadrat


#include<iostream.h>

float Kuadrat(float x);

int main()

int x;

cout<<"Masukan nilai:";

cin>>x;

cout<<"Hasil Kuadratnya:"<<Kuadrat(x);

return 0;

float Kuadrat(float x)

return (x*x);

Dasar Pemrograman C++ | 91


Hasil Eksekusi:

2. Buatlah Program untuk mencari keliling lingkaran


dengan menggunakan fungsi!
jawaban

Listing program: fkelilinglingkaran


#include<iostream.h>

double KelilingLingkaran(const float PI, int


jari_jari)

return (2*PI*jari_jari);

int main()

int R;

double HASIL;

cout<<"Masukan Jari-jari lingkaran:";

cin>>R;

HASIL=KelilingLingkaran(3.14,R);

cout<<"Keliling="<<HASIL;

return 0;

92 | Dasar Pemrograman C++


Hasil Eksekusi:

3. Buatlah Program tambah, kurang, kali, bagi dengan


menggunakan fungsi?
Jawaban

Listing Program:ftambah_kurang_kali_bagi
#include<iostream.h>

float Tambah(float x, float y);

float Kurang(float x, float y);

float Kali(float x, float y);

float Bagi(float x, float y);

int main()

int x,y;

cout<<"Masukan nilai pertama:";

cin>>x;

cout<<"Masukan nilai kedua:";

cin>>y;

cout<<"Hasil Penjumlahan:"<<Tambah(x,y)<<endl;

cout<<"Hasil Pengurangan:"<<Kurang(x,y)<<endl;

cout<<"Hasil Perkalian:"<<Kali(x,y)<<endl;

Dasar Pemrograman C++ | 93


cout<<"Hasil Pengurangan:"<<Bagi(x,y)<<endl;

return 0;

float Tambah(float x, float y)

return (x+y);

float Kurang(float x, float y)


{

return (x-y);

float Kali(float x, float y)

return (x*y);

float Bagi(float x, float y)

return (x/y);

94 | Dasar Pemrograman C++


Hasil Eksekusi:

Dasar Pemrograman C++ | 95


96 | Dasar Pemrograman C++
BAB 9
OBJECTS ORIENTED PROGRAMING

Pencipta Bahasa C adalah Brian W. Kernighan dan


Dennis M. Ritchie pada sekitar tahun 1972. C adalah bahasa
pemrograman terstruktur yang membagi program dalam
bentuk sejumlah blok. Tujuannya adalah memudahkan
dalam pembuatan dan pengembangan program. Program
yang ditulis dengan menggunakan bahasa C mudah sekali
dipindahkan dari satu jenis mesin ke jenis mesin yang lain.
Sedang C++ diciptakan satu dekade setelah C diciptakan
oleh Bjarne Strous trup, Laboratorium Bell, AT & T, pada
tahun 1983. Bahasa ini bersifat kompatibel dengan bahasa
pendahulunya, C. Nama C++ sendiri diberikan oleh Rick
Mascitti pada musim panas 1983. Adapun tanda ++
berasal dari nama operator penaikan pada bahasa C++.
C diambil sebagai landasan dari C++, mengingat
keportabilitas C yang memungkinkannya diterapkan pada
berbagai mesin, dari PC hingga mainframe, serta pada
berbagai sistem operasi (DOS, UNIX, VMS dan sebagainya).
Keistimewaan yang sangat berarti pada C++ adalah
karena bahasa ini mendukung pemrograman yang
berorientasi objek atau OOP (Object Oriented
Programming).
Model Data Berorientasi Objek atau Object-Oriented
Programming (OOP) merupakan paradigma pemrograman
yang berorientasikan kepada objek. Semua data dan fungsi di
dalam paradigma ini dibungkus dalam kelas-kelas atau
objek-objek. Bandingkan dengan logika pemrograman
terstruktur. Setiap objek dapa menerima pesan, memproses
data, dan mengirim pesan ke objek lainnya.

Dasar Pemrograman C++ | 97


Model Data berorientasi objek dikatakan dapat
memberi fleksibilitas yang lebih, kemudahan mengubah
program, dan digunakan luas dalam teknik piranti lunak
skala besar. Lebih jauh lagu, pendukung OOP mengklaim
bahwa OOP lebih mudah dipelajari bagi pemula dibanding
dengan pendekatan sebelumnya, dan pendekatan OOP
lebih mudah dikembangkan dan dirawat.

Pemrograman orientasi-objek menekankan konsep


berikut:
Class — kumpulan atas definisi data dan fungsi-fungsi
dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh
'class of dog' adalah suatu unit yang terdiri atas definisi-
definisi data dan fungsi-fungsi yang menunjuk pada
berbagai macam perilaku/turunan dari anjing. Sebuah class
adalah dasar dari modularitas dan struktur dalam
pemrograman berorientasi object. Sebuah class secara tipikal
sebaiknya dapat dikenali oleh seorang non-programmer
sekalipun terkait dengan domain permasalahan yang ada,
dan kode yang terdapat dalam sebuah class sebaiknya
(relatif) bersifat mandiri dan independen (sebagaimana kode
tersebut digunakan jika tidak menggunakan OOP). Dengan
modularitas, struktur dari sebuah program akan terkait
dengan aspek-aspek dalam masalah yang akan diselesaikan
melalui program tersebut. Cara seperti ini akan
menyederhanakan pemetaan dari masalah ke sebuah
program ataupun sebaliknya.
Objek - membungkus data dan fungsi bersama menjadi
suatu unit dalam sebuah program komputer; objek
merupakan dasar dari modularitas dan struktur dalam
sebuah program komputer berorientasi objek.
Abstraksi - Kemampuan sebuah program untuk melewati

98 | Dasar Pemrograman C++


aspek informasi yang diproses olehnya, yaitu kemampuan
untuk memfokus pada inti. Setiap objek dalam sistem
melayani sebagai model dari "pelaku" abstrak yang
dapat melakukan kerja, laporan dan perubahan
keadaannya, dan berkomunikasi dengan objek lainnya
dalam sistem, tanpa mengungkapkan bagaimana
kelebihan ini diterapkan. Proses, fungsi atau metode dapat
juga dibuat abstrak, dan beberapa teknik digunakan untuk
mengembangkan sebuah pengabstrakan.
Enkapsulasi - Memastikan pengguna sebuah objek
tidak dapat mengganti keadaan dalam dari sebuah objek
dengan cara yang tidak layak; hanya metode dalam objek
tersebut yang diberi ijin untuk mengakses keadaannya.
Setiap objek mengakses interface yang menyebutkan
bagaimana objek lainnya dapat berinteraksi dengannya.
Objek lainnya tidak akan mengetahui dan tergantung
kepada representasi dalam objek tersebut.
Polimorfisme - melalui pengiriman pesan. Tidak
bergantung kepada pemanggilan subrutin, bahasa
orientasi objek dapat mengirim pesan; metode tertentu
yang berhubungan dengan sebuah pengiriman pesan
tergantung kepada objek tertentu di mana pesa tersebut
dikirim. Contohnya, bila sebuah burung menerima pesan
"gerak cepat", dia akan menggerakan sayapnya dan terbang.
Bila seekor singan menerima pesan yang sama, dia
akan menggerakkan kakinya dan berlari. Keduanya
menjawab sebuah pesan yang sama, namun yang sesuai
dengan kemampuan hewan tersebut. Ini disebut
polimorfisme karena sebuah variabel tungal dalam program
dapat memegang berbagai jenis objek yang berbeda selagi
program berjalan, dan teks program yang sama dapat
memanggil beberapa metode yang berbeda di saat yang

Dasar Pemrograman C++ | 99


berbeda dalam pemanggilan yang sama. Hal ini berlawanan
dengan bahasa fungsional yang mencapai polimorfisme
melalui penggunaan fungsi kelas- pertama.
Inheritas- Mengatur polimorfisme dan enskapsulasi
dengan mengijinkan objek didefinisikan dan diciptakan
dengan jenis khusus dari objek yang sudah ada - objek-objek
ini dapat membagi (dan memperluas) perilaku mereka tanpa
haru mengimplementasi ulang perilaku tersebut (bahasa
berbasis-objek tidak selalu memiliki inheritas.)
Dengan menggunakan OOP maka dalam melakukan
pemecahan suatu masalah kita tidak melihat bagaimana
cara menyelesaikan suatu masalah tersebut(terstruktur)
tetapi objek-objek apa yang dapat melakukan pemecahan
masalah tersebut. Sebagai contoh anggap kita memiliki
sebuah departemen yang memiliki manager, sekretaris,
petugas administrasi data dan lainnya. Misal manager
tersebut ingin memperoleh data dari bag administrasi maka
manager tersebut tidak harus mengambilnya langsung tetapi
dapat menyuruh petugas bag administrasi untuk
mengambilnya. Pada kasus tersebut seorang manager tidak
harus mengetahui bagaimana cara mengambil data tersebut
tetapi manager bisa mendapatkan data tersebut melalui
objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu
masalah dengan kolaborasi antar objek -objek yang ada
karena setiap objek memiliki job descriptionnya sendiri.

A. Ide Dasar OOP


Ide dasar pada bahasa berorientasi objek adalah
mengkombinasikan data dan fungsi untuk mengakses data
menjadi sebuah kesatuan unit. Unit ini dikenal dengan nama
object (objek). Objek sebenarnya mencerminkan pola
kerja manusia dalam kehidupan sehari-hari. Sebuah

100 | Dasar Pemrograman C++


objek dapat diibaratkan sebagai departemen-
departemen di dalam sebuah perusahaan bisnis. Contoh
departemen :
▪ Penjualan
▪ Akunting
▪ Personalia

Pembagian departemen perusahaan merupakan upaya


untuk memudahkan pengoperasian perusahaan. Sebagai
gambaran, jika anda seorang manajer penjualan di Kantor
Pusat ingin mengetahui data personalia salesmen di suatu
kantor cabang, apa yang anda lakukan? Langkah yang anda
tempuh pasti tidak datang secara langsung ke ruang
personalia dan mencari data pada berkas-berkas yang ada
pada departemen tersebut. Untuk memudahkan tugas anda,
anda cukup mengutus sekretaris anda untuk meminta
informasi dari departemen personalia sesuai yang anda
butuhkan. Masalah bagaimana dan siapa yang mencarikan
laporan yang diperlukan bukanlah menjadi urusan anda.
Analogi dengan hal ini, kalau seseorang bermaksud
menggunakan objek, ia cukup mengirim suatu pesan ke objek
dan objek itu sendiri yang akan menanganinya.
Bisa dibayangkan, betapa repotnya anda kalau anda
sebagai manajer penjualan harus mencari sendiri berkas-
berkas yang ada pada departemen personalia. Barangkali
anda malah bakal mengobrak-abrik berkas-berkas yang
sudah tersusun rapi. Kejadian semacam ini yang dihindari
pada konsep pemrograman berorientasi objek.
Sebuah gambaran tentang objek yang berisi data dan
fungsi yang memanipulasi data dapat dilihat pada gambar di
bawah ini :

Dasar Pemrograman C++ | 101


Gambar 1. Data dan fungsi pemanipulasi data pada suatu objek

Adapun gambar yang melukiskan hubungan antar objek


yang menganalogikan struktur di perusahaan :

Gambar 2. Contoh Objek

B. Fungsi Anggota, Metoda, Data, Variabel Instans


Pada bahasa berorientasi objek, data yang melekat
dalam suatu objek biasa disebut variable instans. Pada
C++, istilah yang digunakan adalah data atau anggota data.
Adapun fungsi yang melekat pada suatu objek disebut fungsi
anggota (member function). Fungsi ini merupakan satu-
satunya cara untuk mengakses terhadap anggota data dari
objek. Untuk membaca suatu anggota data, anda harus

102 | Dasar Pemrograman C++


memanggil fungsi anggota. Dengan kata lain, data bersifat
tersembunyi bagi fungsi-fungsi diluar fungsi anggota.
Istilah yang umum untuk fungsi anggota pada bahasa
pemrograman berorientasi objek yaitu metoda (misalnya
pada SmallTalk). Adapun pemanggilan fungsi anggota
sering disebut pengiriman pesan ke objek. Namun istilah
yang terakhir ini tidak biasa digunakan pada C++.

PBO C++
Variabel Instans Data
Metoda Fungsi Anggota
Tabel 1. Istilah pada PBO dan C++

C. Objek dan Kelas


Dalam terminology pemrograman berorientasi objek,
objek sebenarnya adalah anggota dari class (kelas). Dengan
kata lain, kelas adalah kumpulan dari beberapa objek yang
sama. Sebagai analogi hal ini, anda barangkali mengenal
nama-nama
seperti Al Jarreau, Selena Jones, dan Michael Frank. Ya,
mereka adalah penyanyi jazz yang sangat kondang. Secara
sendiri-sendiri, mereka dapat diibaratkan objek. Adapun
“penyanyi jazz” menyatakan kelas.

D. Pemograman Prosedural dan Oop


OOP merupakan suatu bentuk penyederhanaan dari
bahasa prosedural sehingga program akan lebih mudah
dikembangkan. Dalam bahasa prosedural, untuk
menyelesaikan salah satu masalah dalam program, kita harus
membuat banyak fungsi yang tentunya akan memakan
waktu dan konsentrasi kita. Dengan kata lain, dalam bahasa
prosedural kita akan lebih difokuskan dengan, bagaimana

Dasar Pemrograman C++ | 103


membuat sebuah program.
Satu buah program yang ditulis, biasanya
menggunakan bahasa C rata-rata berisi 25.000 sampai
100.000 baris kode. Hal ini tentu akan menyebabkan
program tersebut menjadi sangat kompleks dan susah untuk
dipahami alurnya. Karena alasan inilah C++ diciptakan
dengan tujuan dapat menyederhanakan program tersebut
dengan cara memecahnya ke dalam sub-sub program yang di
namakan dengan kelas. Kelas itu sendiri kemudian dapat
digunakn ulang dalam pembuatan program lain tanpa
harus melakukan pengkodean ulang. Melalui cara ini, tentu
kita akan lebih berkonsentrasi ke arah pembentukan
program sehingga waktu yang dibutuhkan juga akan lebih
cepat.

E. Keuntungan Menggunakan Oop


Dengan menggunakan OOP maka dapat melakukan
pemecahan suatu masalah kita tidak melihat bagaimana cara
menyelesaikan suatu masalah tersebut (tersruktur) tetapi
objek-objek apa yang dapat melakukan pemecahan masalah
tersebut. Sebagai contoh anggap kita memiliki sebuah
depertemen yang memiliki manager, sekretaris, petugas
administrasi data dan lainnya. Misalkan manager tersebut
ingin memperoleh data dari bagian administrasi, maka
manager tersebut tidak harus mengambilnya langsung
tetapi dapat menyuruh petugas bagian administrasi
untukmengambilnya. Pada kasus tersebut seorang manager
tidak harus mengetahui bagaimana cara mengambil data
tersebut tetapi manager bisa mendapatkan data tersebut
melalui objek petugas administrasi. Jadi untuk penyelesaian
suatu masalah dengan kolaborasi antara objek- objek yang
ada karena setiap objek memiliki job descriptionnya sendiri.

104 | Dasar Pemrograman C++


F. Bahasa Pemrograman Yang Mendukung Oop
Bahasa pemrograman yang mendukung OOP antara lain:
1. Java
Bahasa Pemograman Java pertama, yang belum
berversi yang dinamakan juga Oak, lahir dari projek The
Green Project, yang berjalan selama 18 bulan, dari mulai awal
tahun 1991 hingga musim panas 1992.Proyek ini
dimotori oleh Patrick Naughton, Mike Sheridan, James
Gosling dan Bill Joy beserta sembilan programmer lainnya
dari Sun Microsystems. Salah satu hasil dari proyek ini
adalah maskot Duke yang dibuat oleh Joe Palrang.
Kelebihan :
'Multiplatform. Kelebihan utama dari Java ialah dapat
dijalankan di beberapa platform / sistem operasi komputer,
sesuai dengan prinsip mereka write once, run every where.
Dengan kelebihan ini programmer cukup menulis sebuah
program java dan dikompile (dirubah, dari bahasa yang
dimengerti manusia menjadi bahasa mesin /byte code) 1 kali
lalu hasilnya dapat dijalankan di atas beberapa platform
tanpa perubahan.Kelebihan ini memungkinkan sebuah
program berbasis java dikerjakan diatas operating system
Linux tetapi dijalankan dengan baik di atas Microsoft
Windows. Platform yang didukung sampai saat ini adalah
Microsoft Windows, Linux, Mac OS dan Sun Solaris.
OOP, singkatan dari Object Oriented Programming yang
artinya semua aspek yang terdapat di Java adalah objek. Java
merupakan salah satu bahasa pemrograman berbasis object
murni. Semua tipe data diturunkan dari kelas dasar
Object. Hal ini sangat memudahkan programmer untuk
mendesain, membuat, mengembangkan dan mengalokasi
kesalahan sebuah program dengan basis java secara cepat,
tepat, mudah dan terorganisir. Kelebihan ini menjadikan

Dasar Pemrograman C++ | 105


java sebagai salah satu bahasa pemograman termudah,
bahkan untuk fungsi fungsi yang advance seperti komunikasi
antara komputer sekalipun.
Library Kelas Sangat Lengkap, Java terkenal dengan
kelengkapan library (kumpulan program program yang
disertakan dalam pemrograman java) yang sangat
memudahkan dalam penggunaan oleh para
programmer untuk membangun aplikasinya. Kelengkapan
library ini ditambah dengan keberadaan komunitas Java
yang besar yang terus menerus membuat library-library
baru untuk melingkupi seluruh kebutuhan pembangunan
aplikasi.
Bergaya C++, memiliki sintaks seperti bahasa
pemrograman C++ sehingga menarik banyak programmer
C++ untuk pindah ke Java. Saat ini pengguna java sangat
banyak, sebagian besar adalah programmer C++ yang pindah
ke Java. Garbage Collection, memiliki fasilitas pengaturan
penggunaan memori sehingga programmer tidak perlu
melakukan pengaturan memori secara langsung.

2. C++
C++ adalah salah satu bahasa pemrograman komputer.
Dibuat pada tahun 1980-an oleh Bell Labs (Bjarne
Stroustrup) sebagai pengembangan dari Bahasa
pemrograman C. Salah satu perbedaan yang paling mendasar
dengan bahasa C adalah dukungan terhadap konsep
pemrograman berorientasi objek (Object Oriented
Programming).

3. Pascal
Pascal adalah bahasa pemrograman yang pertama kali di
buat oleh Profesor Niklaus Wirth, seorang anggota

106 | Dasar Pemrograman C++


International Federation of Information Processing (IFIP)
pada tahun 1971. Profesor Niklaus Wirth membuat Pascal
sebagai bantuan untuk mengajarkan konsep pemrograman
kepda mahasiswanya. Selain itu, Profesor Niklaus Wirth
membuat Pascal juga untuk melengkapi kekurangan-
kekurangan bahasa pemrograman yang ada pada saat itu.
Kelebihan :
a. Tipe Data Standar, tipe-tipe data standar yang telah
tersedia bahasa pemrograman. Pascal memiliki tipe
data standar boolean, integer, real, char, string,
b. User defined Data Types, programmer dapat membuat
tipe data lain yang diturunkan dari tipe data standar.
c. Strongly-typed, programmer harus menentukan tipe
data dari suatu variabel, dan variabel tersebut tidak
dapat dipergunakan untuk menyimpan tipe data
selain dari format yang ditentukan.
d. Terstruktur, memiliki sintaks yang memungkinkan
penulisan program dipecah menjadi fungsi-fungsi
kecil (procedure dan function) yang dapat
dipergunakan berulang-ulang.
e. Sederhana dan Ekspresif, memiliki struktur yang
sederhana dan sangat mendekati bahasa manusia
(bahasa Inggris) sehingga mudah dipelajari dan
dipahami.

Bahasa PASCAL juga merupakan bahasa yang digunakan


sebagai standar bahasa pemrograman bagi tim nasional
Olimpiade Komputer Indonesia (TOKI). Selain itu masih
digunakan di IOI (International Olympiad in Informatics).

4. Smalltalk
Smalltalk adalah bahasa pemrograman berorientasi objek

Dasar Pemrograman C++ | 107


yang dikembangkan oleh Xerox PARC. Ide dasar Smalltalk
meliputi :
1. Semua adalah objek.
2. Objek bisa saling berkomunikasi melalui messages atau
berita.
3. Semua tersedia untuk dimodifikasi.

5. RUBY
Ruby adalah bahasa pemrograman scripting yang
berorientasi obyek. Tujuan dari ruby adalah menggabungkan
kelebihan dari semua bahasa pahasa pemrograman scripting
yang ada didunia.

108 | Dasar Pemrograman C++


BAB 10
KELAS

A. Kelas dan Struktur


Kelas merupakan struktur data dari objek. Untuk
menjelaskan tentang kelas, akan kita bandingkan bentuk
antara struktur dan kelas.
Suatu kelas (class) merupakan suatu metode logis untuk
mengorganisasikan data dan fungsi di dalam struktur yang
sama. Suatu kelas tidak terlepas dari pada suatu objek. Objek
merupakan penerjemahan dari subgroup-subgroup
sehingga menjadi unit-unit. Suatu objek di dalam c++
merupakan suatu kode program untuk memanipulasi data.
Pendeklarasian suatu kelas hampir sama dengan
pendeklarasian suatu structure, yaitu sebagai berikut:
Bentuk Umum :
class nama_class

Data elemen_class ;

Data elemen_class ;
.....

Public :
Data elemen_class ;

Data elemen_class ;

…..

} nama_object;

Dasar Pemrograman C++ | 109


BENTUK
KELAS STRUKTUR
class nama_class struct nama_struct

{ {

private : anggota_data;

anggota_data; };

public :

fungsi_anggota;

};

Terlihat perbedaan antara kelas dan struktur, yaitu :

PERBEDAAN
KELAS
Terdapat anggota data dan fungsi anggota. Anggota data
biasanya berupa variabel dan fungsi anggota biasanya berupa
fungsi.

Terdapat kata-kata kunci private dan public yang menentukan


hak akses bagi anggota-anggota di dalam kelas.

Private dapat digunakan di dalam kelas untuk memproteksi


anggota- anggota tertentu dari kelas, agar tidak dapat
diakses dari luar kelas secara langsung. Private merupakan
default dari kelas.
Public mengizinkan anggota-anggota yang berada didalamnya
bebas di akses dari luar kelas

110 | Dasar Pemrograman C++


STRUKTUR

Hanya terdapat anggota data

Hak akses pada struktur sama seperti hak akses public pada kelas

Contoh deklarasi:

Nama Class

Class motor

char merk [50] ;


char jenis [35] ;
float harga ;
int stok ;

];
motor sport ;
Pendefinisikan Object

Pernyataan diatas digunakan untuk mendefinisikan


variable bernama sport. Pada C++ variable seperti sport
berkedudukan sebagai variable kelas yang disebut dengan
objek.
Pada sebuah kelas, item-item di dalamnya bisa bersifat
private atau public. Secara default, semua item di dalam

Dasar Pemrograman C++ | 111


kelas bersifat private. Jadi tanpa menuliskan kata kunci
private, semua item di dalam teks sudah private.

B. Kelas Secara Umum


Konsep penggabungan data dan fungsi seperti diatas
disebut encapsulasi, yang diterapkan dalam C++ dengan tipe
turunan.

Contoh Kelas :
1. Fungsi didefinisikan di dalam kelas
#include <iostream.h>

#include <string.h>

class penduduk

private:

int id;

char nama[80];

public:

void tampilkan(void)

cout<<”No. KTP : “<<id<<endl;

cout<<”Nama : “<<nama<<endl;

void set(int idn, char *n)

id = idn;

112 | Dasar Pemrograman C++


strcpy(nama,n);

};

void main()

penduduk saya;

saya.set(1234,”Andi”);

saya.tampilkan();

2. Fungsi anggota didefinisikan diluar kelas


#include <iostream.h>

#include <string.h>

class penduduk

private:

int id;

char nama[80];

public:
void tampilkan();

void set(int idn, char *n);

};

void main()

penduduk saya;

Dasar Pemrograman C++ | 113


saya.set(1234,”Andi”);

saya.tampilkan();

void penduduk :: tampilkan(void)

cout<<”No. KTP : “<<id<<endl;

cout<<”Nama : “<<nama<<endl;

void penduduk :: set(int idn, char *n)

id = idn;

strcpy(nama,n);

Keluaran kedua contoh diatas sama saja, yaitu :


No. KTP : 1234
Nama : Andi

Penjelasan :
Saya merupakan objek dari class penduduk. Pada contoh 2
fungsi didefinisikan diluar, oleh karena itu pada
pendefinisian fungsi harus memiliki bentuk :
tipe_return_fungsi nama_kelas :: nama_fungsi
(parameter)
Hal ini untuk memberitahu kompiler bahwa fungsi
tersebut merupakan anggota dari kelas nama_kelas.
Simbol ( :: ) merupakan operator resolusi lingkup.

114 | Dasar Pemrograman C++


C. Pemakaian Class
Pemakaian Class dapat digunakan dengan modifikasi
bersama array dan fungsi.
1. Publik pada Kelas
Publik (public) menyatakan bahwa deklarasi variable
atau item-item yang ada di dalam kelas dapat diakses dari
luar kelas.

Contoh program class :


#include <iostream.h>

#include <conio.h>

main()

class kereta

public:

int no, jum;

char nama[10],jur[15],kls[10];

float hrg,jumbay;

};

clrscr();

kereta train;

cout<<"Nomor Kereta : "; cin>>train.no;

cout<<"Nama Kereta : "; cin>>train.nama;

cout<<"Kota Tujuan : "; cin>>train.jur;

cout<<"Kelas Kereta : "; cin>>train.kls;

Dasar Pemrograman C++ | 115


cout<<"Harga Tiket : "; cin>>train.hrg;

cout<<"Jumlah Penumpang : "; cin>>train.jum;

train.jumbay=train.hrg*train.jum;

clrscr();

cout<<"Nomor kereta : "<<train.no<<endl;

cout<<"Nama kereta : "<<train.nama<<endl;

cout<<"Kota tujuan : "<<train.jur<<endl;

cout<<"Kelas kereta : "<<train.kls<<endl;

cout<<"Harga tiket : "<<train.hrg<<endl;

cout<<"Jumlah Bayar : "<<train.jumbay<<endl;

return 0;

2. Class dan Array


Contoh program class dengan array :
#include <iostream.h>

#include <conio.h>

class krj

{ public:

int nik;

char nama[20];

int jam;

};

main()

116 | Dasar Pemrograman C++


{

krj pgw[10];

int n,i;

cout<<"Jumlah Data : "; cin>>n;

for(i=1;i<=n;i++)

cout<<"=========================="<<endl;

cout<<"Program Hitung Lembur Karyawan"<<endl;


cout<<"=========================="<<endl;

cout<<"Data ke : "<<i<<endl;

cout<<"NIK : "; cin>>pgw[i].nik;

cout<<"Nama : "; cin>>pgw[i].nama;

cout<<"Jumlah Jam lembur : "; cin>>pgw[i].jam;

cout<<"=========================="<<endl;

return 0;

3. Class dan Fungsi


Contoh program class dan fungsi :
#include <iostream.h>

#include <conio.h>

#include <string.h>

main()

Dasar Pemrograman C++ | 117


char ket[15]; float nilai; class mhs
{

public:

char nim[8],nama[20];

}; clrscr(); mhs umb;


cout<<"Masukkan nim : "; cin>>umb.nim;

cout<<"Masukkan nama : "; cin>>umb.nama;

cout<<"Masukkan nilai : "; cin>>nilai;

if(nilai>65)

strcpy(ket,"Lulus");

else

strcpy(ket,"Tidak lulus");

clrscr();

cout<<"Nim anda : "<<umb.nim<<endl;

cout<<"Nama anda : "<<umb.nama<<endl;

cout<<"Nilai anda : "<<nilai<<endl;

cout<<"Anda dinyatakan : "<<ket<<endl;

return 0;

Latihan:
1. Buatlah program dengan menggunakan kelas dengan
fungsi yang di definisikan di dalam kelas, dengan
tampilan sebagai berikut:
NIM : 1234
Nama : Andi

118 | Dasar Pemrograman C++


Jurusan :Teknik Informatika
Alamat : Meruya Selatan

2. Buatlah program dengan menggunakan kelas dengan


fungsi yang di definisikan di luar kelas, dengan tampilan
sebagai berikut:
Merek : Honda GL Pro
Tahun : 2007
No Polisi : B1669OK
Warna : Hitam

Dasar Pemrograman C++ | 119


120 | Dasar Pemrograman C++
BAB 11
KONSTRUKTOR DAN DESTRUKTOR

A. Pendahuluan
Konsep utama pemrograman berorientasi objek yaitu
melakukan permodelan objek dari kehidupan nyata ke dalam
tipe data abstrak. Jelasnya, pemrograman berorientasi objek
merupakan konsep pemrograman untuk memodelkan
objek yang kita gunakan dalam kehidupan sehari-hari, dan
konsep seperti ini membawa perubahan yang mendasar
dalam konsep pemrograman terstruktur.
Setiap objek dalam kehidupan nyata dapat kita pandang
sebagai kelas, misalnya kelas Hewan, kelas Mobil. Sedangkan
objek dari kelas tersebut misalnya sapi dan ayam untuk kelas
Hewan, serta Toyota dan VW untuk kelas Mobil. Dengan OOP,
kita dapat mengimplementasikan objekt data yang tidak
hanya memiliki ciri khas (attribut), melainkan juga
memiliki metode untuk memanipulasi attribut tersebut.
Singkatnya, OOP memiliki keunggulan dari konsep
pemrograman terstruktur, selain itu juga memiliki
kemampuan untuk mengimplementasikan objek dalam
kehidupan nyata.
Objek adalah abstraksi dari sesuatu yang mewakili
sesuatu pada dunia nyata. Pada pemrograman berorientasi
objek, objek adalah entitas pada saat run time. Objek
mempunyai siklus hidup : diciptakan, dimanipulasi,
dihancurkan. Sebuah objek dapat diacu lewat namanya atau
lewat referensinya (addressnya).
Kelas adalah kumpulan objek yang mempunyai atribut
yang sama. Kelas adalah definisi static dari entitas.
Sedangkan entitas adalah salah satu dari berikut ini:

Dasar Pemrograman C++ | 121


1. atribut kelas
2. variabel local
3. parameter formal
4. hasil fungsi

Perbedaan objek dan kelas (class)


Objek adalah elemen pada saat runtime yang akan
diciptakan, dimanipulasi dan dihancurkan saat eksekusi.
Sedangkan kelas adalah deskripsi static dari himpunan
objek yang mungkin lahir/diciptakan yang merupakan
instansiasi dari kelas. Objek, properti , method dan event
merupakan unit dasar dari pemrograman berorientasi objek
(OOP). Gagasan dari OOP adalah menggabungkan data
dengan fungsi menjadi satu kesatuan yang utuh.
Karakteristik utama dari OOP adalah:

Abstraction
Proses pengabstrakan atau penyembunyian detail
program yang Sangay rumit sehingga kita tidak perlu
mempermasalahkan pembuatannya. Kita hanya perlu objek
tersebut dapat kita gunakan sesuai fungsinya.

Encapsulation
Pengemasan data dan fungís dalam wadah bernama
objek dikenal dengan debutan Encapsulation
(pengkapsulan). Data tidak lagi diperlukan sebagai
componen kedua setelah fungsi, melainkan kedudukan
yang sama dengan fungsi.

Inheritance
Inheritance (pewarisan) merupakan sifat dalam bahasa
berorientasi objek yang memungkinkan sifat-sifat dari statu

122 | Dasar Pemrograman C++


kelas diturunkan ke kelas lain. Objek baru ini sering disebut
objek turunan (derived class) sedangkan objek induknya
sering disebut dengan ancestro (base class). Sifat yang
terkandung dalam objek turunan adalah sifat hasil
pewarisan dari sifat-sifat yang terdapat pada objek induk.
Maka dari itu proses seperti ini sering dikenal dengan istilah
pewarisan. Dengan fitur seperti ini, kita dapat
membuat objek bari yang memiliki kemampuan lebih
disbanding objek induknya, yaitu dengan cara menambahkan
sifat-sifat baru ke dalam objek tersebut.

Polymorphism
Merupakan suatu konsep yang menyatakan sesuatu yang
sama dapat memiliki berbagai bentuk dan perilaku yang
berbeda.
Jika dilihat dari karakteristik tersebut di atas maka OOP
mempunyai kelebihan, yaitu:
Pendekatan berorientasi masalah, segala sesuatu
masalah bisa kita modelkan dengan objek.
Penyembunyian informasi, hanya variable-variabel
tertentu saja yang bisa diakses sesuai dengan haknya.
Reusability dan Ekstensibility, kode yang sudah ada
bisa digunakan ulang, dan kemudahan di dalam
pengembangan kode.

B. Konstruktor
Konstruktor adalah fungsi khusus anggota kelas yang
otomatis dijalankan pada saat penciptaan objek
(mendeklarasikan instance). Konstruktor ditandai dengan
namanya, yaitu sama dengan nama kelas. Konstruktor tidak
mempunyai tipe hasil (return value). Biasanya konstruktor
dipakai untuk inisialisasi anggota data dan melakukan

Dasar Pemrograman C++ | 123


operasi lain seperti membuka file dan melakukan alokasi
memori secara dinamis. Meskipun konstruktor tidak harus
ada dalam kelas, tetapi jika diperlukan konstruktor dapat
lebih dari satu.
Konstruktor adalah fungsi anggota yang mempunyai
nama yang sama dengan nama kelas. Kegunaannya :
Mengalokasikan ruang bagi sebuah objek
Memberikan nilai awal terhadap anggota data suatu objek
Membentuk tugas-tugas umum lainnya

Contoh1 :
#include <iostream.h>

class jumlah

public:

int jumlah1;

int jumlah2;

jumlah();

};

jumlah objek1,objek2;

void main()

cout<<”Didalam main() \n”;

cout<<”objek1.jumlah1 adalah
“<<objek1.jumlah1<<endl;

cout<<”objek1.jumlah2 adalah
“<<objek1.jumlah2<<endl;

cout<<”objek2.jumlah1 adalah

124 | Dasar Pemrograman C++


“<<objek2.jumlah1<<endl; cout<<”objek2.jumlah2
adalah “<<objek2.jumlah2<<endl;

jumlah::jumlah()

cout<<”Didalam jumlah() \n”;

Keluarannya :

Kesimpulan :
➢ Nama konstruktor sama dengan nama kelas
➢ Konstruktor tidak mempunyai nilai balik

Konstruktor harus diletakkan di bagian public, coba


saja anda meletakkan konstruktor dalam contoh diatas
dibagian private.
Konstruktor dijalankan dengan sendirinya pada saat
objek diciptakan ( dalam contoh diatas yaitu objek1 dan
objek2). Bahkan konstruktor dijalankan sebelum fungsi
main() dijalankan.
Adapaun jenis-jenis kontruktor adalah sebagai berikut:
1. Konstruktor default : tidak dapat menerima argumen,

Dasar Pemrograman C++ | 125


anggota data diberi nilai awal tertentu.
2. Konstruktor penyalinan dengan parameter : anggota
data diberi nilai awal berasal dari parameter.
3. Konstruktor penyalinan objek lain : parameter berupa
objek lain, anggota data diberi nilai awal dari objek
lain.

Contoh2:
//Program Konstruktor

#include<iostream.h>

#include<conio.h> Class titik

int x;

int y;

public:

titik() //konstruktor default

x=0;

y=0;

}
Titik(int nx, int ny) //Konstruktor Penyalinan

x=nx;

y=ny;

Titik(const titik& tt) //Konstruktor


Penyalinan objek

126 | Dasar Pemrograman C++


{

x=tt.x;

y=tt.y;

int nx() { return x; } // fungsi


anggota biasa

int ny() { return y; } // fungsi


anggota biasa

};

void main()

titik t1; //objek dengan konstruktor


default

titik t2(10, 20); //objek dengan konstruktor


penyalinan

titik t3(t2); //objek dengan konstruktor


penyalinan objek

cout<<”t1 = “ <<t1.nx()<<”, “<<t1.ny()<<endl;

cout<<”t2 = “ <<t2.nx()<<”, “<<t2.ny()<<endl;

cout<<”t3 = “ <<t3.nx()<<”, “<<t3.ny()<<endl;

getch();

Hasil keluaran program:


t1=0, 0
t2=10, 20
t3=10, 20

Dasar Pemrograman C++ | 127


Objek t1 diciptakan dengan otomatis menjalankan
konstruktor default. Dengan demikian anggota data diberi
nilai x=0, dan y=0. Penciptaan objek t2 diikuti dengan
menjalankan konstruktor kedua, mengakibatkan anggota
data diberi nilai x=10 dan y=20. Terakhir, t3 diciptakan
dengan menyalin objek dari t2, mengakibatkan pemberian
nilai kepada anggota data sama dengan objek t2.

C. Destruktor
Destruktor adalah pasangan konstruktor. Pada saat
program membuat objek maka secara otomatis kontruktor
akan dijalankan, yang biasanya dimaksudkan untuk memberi
nilai awal variable private. Sejalan dengan itu, C++
menyediakan fungsi destruktor (penghancur atau
pelenyap) yang secara otomatis akan dijalankan pada
saat berakhirnya objek. Setiap kelas mempunyai tepat satu
destuktor. jika kita tidak mendeklarasikan sebuah
destruktor dalam sebuah kelas, maka destruktor akan
diciptakan sendiri oeh compiler C++. Fungsi destruktor itu
sendiri adalah untuk mendealokasikan memori dinamis
yang diciptakan kontruktor. Nama destruktor sama dengan
nama kelas ditambah awalan karakter tilde (~). Walaupun
compiler C++ akan secara otomatis mendeklarasikan
sebuah destruktor, akan tetapi sangat disarankan untuk
mendeklarasikan sendiri sebuah destruktor. Karena
dengan mendeklarasikan sendiri destruktor maka kita
mempunyai kontrol penuh terhadap apa yang dilakukan
destruktor dari kelas yang kita buat.
Destruktor adalah fungsi anggota yang mempunyai
nama yang sama dengan nama kelas ditambah symbol tilde
(~) didepannya.

128 | Dasar Pemrograman C++


Contoh1 :
#include <iostream.h>

class jumlah

public:

int jumlah1;

int jumlah2;

~jumlah();

};

jumlah objek1,objek2;

void main()

cout<<”Didalam main() \n”;

cout<<”objek1.jumlah1 adalah
“<<objek1.jumlah1<<endl;

cout<<”objek1.jumlah2 adalah
“<<objek1.jumlah2<<endl;

cout<<”objek2.jumlah1 adalah
“<<objek2.jumlah1<<endl;

cout<<”objek2.jumlah2 adalah
“<<objek2.jumlah2<<endl;

jumlah::~jumlah()

cout<<”Didalam jumlah() \n”;

Dasar Pemrograman C++ | 129


Keluarannya :

Kesimpulan :
Nama konstruktor sama dengan nama kelas ditambah
tanda tilde ( ~ ) di depannya
Destruktor tidak mempunyai nilai balik
Destruktor harus diletakkan di bagian public, coba
saja anda meletakkan destruktor dalam contoh diatas
dibagian private.
Destruktor dijalankan dengan sendirinya pada saat
objek akan sirna ( dalam contoh diatas yaitu objek1 dan
objek2).

Contoh2:
// Contoh Kontruktor dan Destruktor

#include<iostream.h>

Class Tpersegi

int *lebar, *panjang;

public:

Tpersegi (int, int);

130 | Dasar Pemrograman C++


~Tpersegi();

int Luas() {return (*lebar * *panjang);}

};

Tpersegi::Tpersegi(int a, int b)

lebar=new int;

panjang=new int;

*lebar = a;

*panjang = b;

Tpersegi::~Tpersegi()

delete lebar;

delete panjang;

int main()

Tpersegi pers(3,4), persg(5,6);

cout<<”Luas pers= “<<pers.Luas()<<endl;

cout<<”Luas persg = “<<persg.Luas()<<endl;

return 0;

Dasar Pemrograman C++ | 131


KESIMPULAN
Dari uraian diatas dapat kita simpulkan bahwa:
Konstruktor :
1. Nama kontruktor sama dengan nama kelas
2. Kontruktor tidak mempunyai nilai balik
3. Kontruktor harus diletakkan di bagian public
4. Kontruktor dijalankan dengan sendirinya pada saat
objek diciptakan, bahkan kontruktor dijalankan
sebelum fungsi main() dijalankan.

Destruktor:
1. Nama destruktor sama dengan nama kelas
ditambahkan tanda tilde (~) di depannya.
2. Destruktor tidak mempunyai nilai balik.
3. Destruktor harus diletakkan di bagian public.
4. Destruktor dijalankan dengan sendirinya pada saat
objek akan sirna.

132 | Dasar Pemrograman C++


BAB 12
PEWARISAN ( INHERITANCE)

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

Dasar Pemrograman C++ | 133


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, anda 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.
Dari mekanisme pewarisan yang sudah diuraikan diatas,
dapat disimpulkan bahwa pewarisan ini dikelompokkan
menjadi tiga, yaitu :
1. Pewarisan Tunggal (single inheritance)
2. Pewarisan Jamak (multiple inheritance), dan
3. Pewarisan Jamak Maya (virtual multiple inheritance)

A. Pewarisan Tunggal (Single Inheritance)


Adalah pewarisan yang mana jumlah kelas dasarnya
tunggal. Pada pewarisan ini, kelas turunan dapat berjumlah
lebih dari satu. Pewarisan tunggal dapat digambarkan
dengan sintak program sebagai berikut :

class A

. . .

};

134 | Dasar Pemrograman C++


class B : public A

. . .

Sintak di atas adalah mekanisme pewarisan secara


public. Dengan implementasi di atas, kelas B merupakan
kelas turunan dari kelas A. Selain pewarisan public,
pewarisan juga dilakukan secara protected maupun private.

Contoh program pewarisan tunggal :


#include<iostream.h>

class makhluk

public:

void berkembang();

};

class hewan : public makhluk

public:

void bergerak();

};

class kuda : public hewan

public:

void berlari();

Dasar Pemrograman C++ | 135


};

main()

makhluk mk; hewan hw; kuda kd;

cout<<endl<<" Sifat-sifat dari Makhluk adalah :


"<<endl;

mk.berkembang();

cout<<endl<<" Sifat-sifat dari Hewan adalah :


"<<endl;

hw.berkembang(); hw.bergerak();

cout<<endl<<" Sifat-sifat dari Kuda adalah :


"<<endl;

mk.berkembang(); hw.bergerak(); kd.berlari();

void makhluk::berkembang()

cout<<" Berkembang biak"<<endl;

void hewan::bergerak()

cout<<" Bergerak berpindah tempat"<<endl;

void kuda::berlari()

cout<<" Berlari sangat kencang seperti

136 | Dasar Pemrograman C++


angin"<<endl;

Hasil Kompilenya :

B. Pewarisan Jamak (Multiple Inheritance)


Adalah pewarisan dimana satu kelas diturunkan lebih
dari satu kelas yang berbeda. Dalam pewarisan ini jumlah
kelas dasarnya lebih dari satu, dan perlu dicatat bahwa kelas
dasarnya bukan merupakan turunan dari satu kelas.
Kelas turunan mewarisi seluruh sifat dari kelas dasarnya,
sehingga sifat dari beberapa kelas dasar dan sifat khas
dirinya. Perhatikan sintak dari pewarisan tunggal berikut ini:

class A

. . .

};

class B

. . .

Dasar Pemrograman C++ | 137


class C: public A, public B

. . .

Pada bentuk tersebut terdapat dua kelas dasar yaitu kelas


A dan kelas B yang menurunkan kelas C. Kelas C akan
mewarisi sifat dari kelas A maupun sifat dari kelas B, tetapi
tidak berlaku sebaliknya.

Perhatikan contoh program berikut ini :


#include<iostream.h>

class kuda

public :

void berlari()

cout<<" > Berlarinya sangat cepat"<<endl;

};

class burung
{

public:

void terbang()

138 | Dasar Pemrograman C++


cout<<" > Terbang menembus awan"<<endl;

};

class pegasus: public kuda, public burung

public:

void lariterbang()

cout<<" > Bersayap, lari dan dapat terbang ke


angkasa"<<endl;

};

main()

pegasus pg;

cout<<"Sifat dari PEGASUS yaitu : "<<endl;

pg.berlari();

pg.terbang();

pg.lariterbang();

Dasar Pemrograman C++ | 139


Kompile dari program diatas :

C. Pewarisan Jamak Maya (Virtual Multiple Inheritance)


Adalah pewarisan yang mana kelas dasarnya lebih dari
satu dan beberapa di antara kelas dasar tersebut merupakan
kelas turunan dari kelas dasar yang sama. Mekanisme
pewarisan sifat suatu kelas dasar kepada kelas turunan sama
dengan pewarisan yang lain. Perhatikan sintak berikut ini :

class A

. . .

};
class B: virtual public A

. . .

};

class C: virtual public A

. . .

};

class D: public B, public C

140 | Dasar Pemrograman C++


{

. . .

};

Kelas D merupakan turunan dari kelas B dan C,


sedangkan kelas B dan C merupakan kelas turunan dari kelas
dasar yang sama yaitu kelas A. Supaya berjalan pewarisan
dari kelas A kepada kelas B maupun C harus secara virtual.
Kelas virtual A pertama menurunkan kelas B, sedangkan
kelas virtual A kedua menurunkan kelas C.

Contoh program dalam pewarisan ini :


#include"iostream.h"

class hewan

public:

void bergerak()

cout<<" # Bergerak berpindah tempat"<<endl;

};

class kuda: virtual public hewan

public :

void berlari()

cout<<" # Berlarinya sangat cepat"<<endl;

Dasar Pemrograman C++ | 141


}

};

class burung: virtual public hewan

public:

void terbang()

cout<<" # Terbang menembus awan"<<endl;

};

class pegasus: public kuda, public burung

public:

void lariterbang()

cout<<"# Bersayap, lari dan dapat terbang ke


angkasa"<<endl;

};

main()

pegasus pg;

cout<<">> Sifat dari PEGASUS << "<<endl;

cout<<"========================"<<endl;

142 | Dasar Pemrograman C++


pg.bergerak();

pg.berlari();

pg.terbang();

pg.lariterbang();

Kompile dari program diatas:

Latihan:
1. Buatlah program dengan menggunakan multiple
inheritance dimana

class dasarnya adalah class ayah dan class ibu


class ayah sifatnya " rambut keriting"
class ibu sifatnya " kulit putih"
class turunanya adalah class anak dan class cucu
class anak sifatnya " hidung mancung"
class cucu sifatnya "pandai berhitung"

2. Buatlah program dengan menggunakan single inheritance


dimana
Class dasar adalah class direktur
Sifat direktur " Berwibawa"

Dasar Pemrograman C++ | 143


Class turunan adalah class manager dan class karyawan
Sifat manager "Pandai membuat kebutusan"
Sifat karyawan "Taat pada pimpinan"

D. Konstruktor dan Destruktor Pada Pewarisan


Di dalam contoh-contoh diatas belum melibatkan
konstruktor dan destruktor secara eksplisit. Di dalam
pewarisan suatu konstruktor perlu diperhatikan terutama
konstruktor penyalinan. Jika konstruktor kelas dasar hanya
berisi pernyataan memberi nilai data anggota provate, maka
akses private dapat diganti dengan akses protected agar data
anggota pada kelas dasar dapat diakses dari kelas turunan.

Contoh programnya :
#include"iostream.h"

#include"conio.h"

#include"string.h" class Kendaraan

private:

char nama[15];

public:

Kendaraan(char *nama_kendaraan = "T1AS")

strcpy(nama, nama_kendaraan);

cout<<" Hidupkan mesin kendaraan anda


..."<<endl;

~Kendaraan()

144 | Dasar Pemrograman C++


{

cout<<" Matikan mesin kendaraan anda


..."<<endl;

void info_kendaraan()

cout<<nama<<" Sedang berjalan ..."<<endl;

};

class Mercy : public Kendaraan

public:

Mercy(char *nama_mercy) : Kendaraan(nama_mercy)

cout<<" Hidupkan mesin mobil merah ..."<<endl;

~Mercy()

cout<<" Matikan mesin mobil merah itu


..."<<endl;

};

void main()

Dasar Pemrograman C++ | 145


clrscr();

Mercy mewah(" Mobil Yang Mewah");

mewah.info_kendaraan();

cout<<" Akhir dari permulaaan()..."<<endl;

Keluarannya :
Hidupkan mesin kendaraan anda ...
Hidupkan mesin mobil merah ...
Mobil Yang Mewah Sedang berjalan ...
Akhir dari permulaan()...
Matikan mesin mobil merah itu ...
Matikan mesin kendaraan anda ...

Berdasarkan hasil eksekusi di atas terlihat bahwa, pada saat


obyek berkelas Turunan diciptakan :
Konstruktor kelas dasar dengan sendirinya dijalankan
Kemudian konstruktor kelas turunan baru dijalankan

Pada saat obyek berakhir :


Destruktor kelas turunan dijalankan terlebih dahulu
Kemudian destruktor kelas dasar dijalankan.

146 | Dasar Pemrograman C++


BAB 13
POLIMORFISME

Polimorfisme (polymorphism) erat kaitannya dengan


Pewarisan. Polimorfisme adalah pemikiran bahwa objek
dinamis suatu kelas dasar dapat berperilaku seperti kelas
turunan. Ketika objek tersebut menunjuk kelas dasar, objek
tersebut berperilaku seperti kelas dasar, tetapi ketika
objek tersebut menunjuk kelas turunan, objek tersebut
berperilaku seperti kelas turunan. Dalam hal ini objek dapat
memiliki beberapa bentuk, tergantung pada saat itu kelas
mana yang ditunjuk. Yang perlu menjadi catatan, bahwa
perubahan perilaku ini dari kelas dasar kepada kelas
turunan, tidak dapat objek kelas turunan menunjuk kelas
dasar.
Polimorfisme dimungkinkan karena adanya mekanisme
ikatan dinamis (dynamic binding). Ikatan dinamis adalah
ikatan yang terjadi pada saat program dijalankan (run- time).
Ikatan yang terjadi pada saat kompile disebut ikatan statis.
Ikatan dinamis hanya dapat terjadi antara suatu objek
dinamis dengan metode yang dinamis juga, dalam hal ini
metode virtualnya (maya).

A. Polimorfisme Pada Pewarisan Tunggal


Suatu metode dapat dideklarasikan secara virtual dengan
cara menambah kata virtual pada deklarasi fungsi. Jika
suatu metode dideklarasikan secara virtual dalam kelas
dasar, maka keadaan virtual tetap akan berlaku untuk fungsi
yang sama di seluruh kelas turunan meskipun kata virtual
tidak disebutkan.
Untuk menjelaskan tentang ikatan dinamis dalam

Dasar Pemrograman C++ | 147


hubungannya dengan polimorfisme, perhatikan rancangan
kelas berikut ini :
class A
Page 1 of 15 : Algoritma & Struktur Data 2 (C++)– Created by Wachyu Hari H

{
public:

tipe fungsi_statis(); Ikatan Statis

tipe virtual fungsi_virtual();

};

class B : public A

{
Kelas Turunan

public:

tipe fungsi_statis();

tipe fungsi_virtual();
Ikatan
}; Dinamis

class C : public B

public:

tipe fungsi_statis();

tipe fungsi_virtual();

};

148 | Dasar Pemrograman C++


Hirarki kelas yang digambarkan oleh rancangan kelas
diatas berupa Pewarisan Tunggal. Jika diciptakan objek
dinamis kelas A, maka objek ini dapat diubah bentuknya
menjadi (menunjuk) objek kelas B dan objek kelas C. Jika
diciptakan objek dinamis kelas B, maka objek ini dapat
diubah bentuknya menjadi objek kelas C tetapi tidak dapat
diubah menjadi objek kelas A. Sehingga perubahan bentuk
hanya berlaku dari kelas dasar menjadi kelas turunan. Pada
masing-masing kelas terdapat metode fungsi_statis() dan
fungsi_virtual(). Meskipun secara eksplisit fungsi virtual()
hanya dideklarasikan secara virtual pada kelas A, secara
otomatis fungsi_virtual() pada kelas B dan kelas C juga
berupa fungsi virtual.
Jika diciptakan objek dinamis kelas A, maka objek ini
dapat diubah bentuknya menjadi objek kelas B dan kelas C,
sehingga ikatan dinamis hanya dapat terjadi antara objek
tersebut dengan fungsi_virtual() dari kelas A,
fungsi_virtual() dari kelas B dan fungsi_virtual() dari kelas
C. Ikatan dinamis tidak mungkin terjadi dengan fungsi_statis
dari kelas B maupun kelas C.
Jika yang diciptakan objek dinamis kelas B, maka objek ini
hanya dapat mengadakan ikatan dinamis dengan
fungsi_virtual() dari kelas C saja. Hal ini sesuai aturan
bahwa perubahan bentuk objek hanya dapat dari objek
dinamis kelas dasar menjadi objek dinamis kelas turunan.

#include<iostream.h>

class KARYAWAN

public:

virtual void Bekerja()=0;

Dasar Pemrograman C++ | 149


};

class PROGRAMMER:public KARYAWAN

public:

void Bekerja()

cout<<”Bekerja dengan cara membuat program”;

cout<<endl;

};

class GURU:public KARYAWAN

public:

void Bekerja()

cout<<”Bekerja dengan cara mengajar didepan


kelas”;

cout<<endl;

};

int main()

KARYAWAN *P;

P = new PROGRAMMER;

150 | Dasar Pemrograman C++


P ->Bekerja();

delete P; //menghapus pointer P yang menunjuk ke


tipe PROGRAMMER

P = new GURU;

P ->Bekerja();

return 0;

B. Polimorfisme Pada Pewarisan Jamak


Polimorfisme juga dapat diterapkan pada pewarisan
jamak, tidak ada bedanya dengan pada Pewarisan Tunggal,
hanya saja kata virtual harus disebutkan pada semua metode
pada kelas dasar yang dirancang dapat mengadakan ikatan
dinamis.
Misalnya Polimorfisme diterapkan pada kelas pegasus,
yang mana pegasus dianggap sebagai kelas turunan dari
kelas kuda dan burung. Jika diterapkan Polimorfisme,
maka harus diambil pengertian bahwa berlarinya kuda
berbeda dengan berlarinya pegasus. Demikian juga
terbangnya burung berbeda dengan terbangnya Pegasus.
Dalam implementasi program, definisi fungsinya berbeda.
Implementasi program untuk kelas Pegasus dengan
penerapan pewarisan jamak dan polimorfisme dapat
dituliskan sebagai berikut. :

#include<iostream.h>

class kuda

Dasar Pemrograman C++ | 151


public:

void virtual berlari()

{cout<<"berlari cepatnya kuda"<<endl;}

};

class burung

public:

void virtual terbang()

{cout<<"terbang tingginya burung"<<endl;}

};

class pegasus: public kuda, public burung

public:

void berlari()

{cout<<"berlari cepatnya pegasus"<<endl;}

void terbang()

{cout<<"terbang tingginya pegasus"<<endl;}

};

main ()

kuda *pkd;

pkd=new kuda;

cout<<"Sifat-sifat kuda : "<<endl;

pkd->berlari();

152 | Dasar Pemrograman C++


delete pkd;

pkd = new pegasus;

cout<<endl<<"Sifat-sifat pegasus : "<<endl;

pkd->berlari(); burung *pbr; pbr=new burung;


cout<<endl<<"Sifat-sifat kuda : "<<endl;

pbr->terbang(); delete pbr; pbr=new pegasus;

cout<<endl<<"Sifat-sifat pegasus : "<<endl;

pbr->terbang();

Hasil Eksekusi:

Program diatas menunjukan bahwa objek dinamis pkd


dari kelas dasar kuda dapat berbentuk kelas Pegasus.
Demikian juga objek dinamis pbr dari kelas dasar burung
dapat berbentuk kelas Pegasus. Tetapi objek dinamis pkd
tidak dapat berbentuk kelas burung, begitu juga sebaliknya,
objek dinamis pbr dari kelas burung tidak dapat berubah
bentuk menjadi kelas kuda. Sehingga peryataan di
bawah ini akan menyebabkan kesalahan :

Dasar Pemrograman C++ | 153


pkd = new burung; // salah
pbr = new kuda; // salah

Dapat dilihat, ketika objek pkd berbentuk kuda, maka


metode berlari() yang dijalankan adalah metode dari kelas
kuda. Ketika objek pkd diubah menjadi berbentuk kelas
pegasus, metode berlari() yang dijalankan adalah metode
dari kelas pegasus.
Demikian juga untuk obek dinamis pbr, ketika berbentuk
kelas burung, metode terbang() yang dijalankan adalah
metode dari kelas burung. Ketika objek pbr diubah bentuk
menjadi kelas pegasus. Metode terbang() yang dijalankan
adalah metode dari kelas pegasus.

C. Polimorfisme Pada Pewarisan Jamak Virtual


Polimorfisme pada pewarisan jamak virtual juga tidak
banyak berbeda. Berikut ini contoh polimorfisme pada kelas
hewan sampai Pegasus. Untuk menyederhanakan program,
hanya diperhatikan metode bergerak() pada kelas hewan.
Metode bergerak () pada kelas hewan berbeda dengan
metode bergerak pada kelas kuda, burung atau pegasus.
Kelas kuda memberi pengertian bergerak secara umum
yaitu berpindah tempat. Kelas kuda memberi pengertian
bergerak dengan cara berlari, kelas burung memberi
pengertian bergerak dengan cara terbang atau berlari.
Perhatikan implementasi program berikut, serta
perhatikan definisi metode pada masing-masing kelas. Kata
virtual hanya dipakai pada metode bergerak pada kelas
hewan sebagai tanda bahwa metode tersebut bersifat
dinamis.

154 | Dasar Pemrograman C++


#include<iostream.h>

class hewan

public:

void virtual bergerak()

{cout<<"bergeraknya hewan secara umum"<<endl;}

};

class kuda : virtual public hewan

public:

void bergerak()

{cout<<"bergeraknya kuda dengan berlari"<<endl;}

};

class burung: virtual public hewan

public:

void bergerak()

{cout<<"bergeraknya burung dengan


terbang"<<endl;}

};

class pegasus: public kuda, public burung

public:

void bergerak()

Dasar Pemrograman C++ | 155


{cout<<"bergeraknya pegasus dengan terbang dan
berlari"<<endl;}

};

main ()

hewan *phw;

phw=new hewan;

cout<<"objek phw berbentuk hewan : "<<endl;

phw->bergerak();

phw=new kuda;

cout<<endl<<"objek phw berbentuk kuda : "<<endl;

phw->bergerak();

phw=new burung;

cout<<endl<<"objek phw berbentuk burung :


"<<endl;

phw->bergerak();

phw=new pegasus;

cout<<endl<<"objek phw berbentuk pegasus :


"<<endl;

phw->bergerak();

156 | Dasar Pemrograman C++


Hasil Eksekusi:

Pada program tersebut dideklarasikan phw berupa objek


dinamis kelas hewan. Ketika objek phw berbentuk
(menunjuk) kelas hewan, metode bergerak() yang
dijalankan adalah metode kelas dari hewan. ketika objek
phw berbentuk kelas kuda, metode bergerak() yang
dijalankan adalah metode dari kelas kuda. Ketika objek phw
berbentuk kelas burung, metode bergerak() yang dijalankan
adalah metode dari kelas burung. Ketika objek phw
berbentuk kelas pegasus, metode bergerak() yang dijalankan
adalah metode dari kelas pegasus.

Contoh lain:
Contoh Program
#include<iostream.h>

#include<conio.h>

#include<stdio.h>

class mahluk

public :

Dasar Pemrograman C++ | 157


void informasi()

cout<<"Informasi()pada mahluk..."<<endl;

virtual void keterangan()

cout<<"Keterangan()pada mahluk..."<<endl;

};

class mamalia:public mahluk

public :

void informasi()

cout<<"informasi() pada mahluk..."<<endl;

void keterangan()

cout<<"Keterangan() pada mamalia..."<<endl;

};

class sapi : public mamalia

158 | Dasar Pemrograman C++


public :

void informasi()

cout<<"informasi() pada Sapi..."<<endl;

void keterangan()

cout<<"Keterangan()pada Sapi..."<<endl;

};

void main()

clrscr();

mamalia mamalia;

sapi sapi_sumba;

mahluk*binatang;

cout<<endl<<endl;

binatang = &mamalia;

binatang-> informasi();

binatang ->keterangan();

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

binatang= &sapi_sumba;

Dasar Pemrograman C++ | 159


binatang-> informasi();

binatang ->keterangan();

getch();

Hasil Eksekusi

160 | Dasar Pemrograman C++


BAB 14
FUNGSI VIRTUAL & POLIMORFISME

A. Fungsi Virtual
Fungsi virtual atau Metode Virtual merupakan
bagian penting dalam pemrograman berorientasi objek
karena mendukung Polyimorfisme. Fungsi virtual merupakan
bagian dari kelas dan fungsi tersebut dapat didefiniskan
ulang pada kelas – kelas turunannya.
Untuk mendefinisikan sebuah fungsi virtual adalah
dengan mnggunakan kata Virtual, yaitu dengan
menempatkannya di depan pendeklarasian fungsi
tersebut. Seperti yang terlihat pada contoh dibawah ini

class Binatang

public: virtual void Makan()

cout << "Makan seperti binatang pada umumnya." <<


endl;

};

Pendefinisian fungsi virtual biasanya tidak begitu


berarti, artinya kode – kode yang terdapat pada fungsi
virtual sifatnya general. Selanjutnya kelas turunan akan
mendefiniskan ulang fungsi visrtual tersebut. Apabila ada
kelas turunan yang tidak mendefinisikan ulang fungsi
virtual tersebut maka fungsi yang digunakan adalah fungsi

Dasar Pemrograman C++ | 161


virtual. Untuk lebih jelasnya perhatikan contoh program
dibawah ini .

#include <iostream.h>

class Binatang

public: virtual void Makan()

cout << "Makan seperti binatang pada umumnya."


<< endl;

};

class Serigala : public Binatang

public: void Makan()

cout << "Makan seperti Serigala!" << endl;

};

class Ikan : public Binatang

public: void Makan()

cout << "Makan seperti Ikan!" << endl;

162 | Dasar Pemrograman C++


}

};

class BinatangLain : public Binatang

};

int main()

Binatang *Hewan[4];

Hewan[0] = new Binatang();

Hewan[1] = new Serigala();

Hewan[2] = new Ikan();

Hewan[3] = new BinatangLain();

for(int i = 0; i < 4; i++)

Hewan[i]->Makan();

return 0;

Dasar Pemrograman C++ | 163


Maka hasil yang akan diberikan dari program adalah

Apabila kata virtual kita hilangkan maka hasil yang


diberikan adalah
Makan seperti binatang pada umumnya.
Makan seperti binatang pada umumnya.
Makan seperti binatang pada umumnya.
Makan seperti binatang pada umumnya.

Perbedaan fungsi virtual dengan fungsi lainnya adalah


terdapat pada cara pemanggilan fungsi tersebut.
Pemanggilan fungsi virtual adalah pada saat program
sedang jalan (run-time), sedangkan pemanggilan fungsi
lainnya dilakukan pada saat compile.

B. Polimorfisme
Polimorfisme sesuai dengan asal usul kata
pembentuknya, berarti “mempunyai banyak bentuk”. Dalam
wujudnya polimorfisme dapat beroperasi pada dua aras,
yaitu saat pengompilasian dan saat pengeksekusian.
Overlooding terhadap fungsi dan operator merupakan
bentuk polimorfisme saat pengompilasian
Polimorfisme merupakan fitur pemrograman

164 | Dasar Pemrograman C++


berorientasi objek yang penting setelah pengkapsulan dan
pewarisan. Polimorfisme berasal dari bahasa Yunani, poly
(banyak) dan morphos (bentuk). Polimorfisme
menggambarkan kemampuan kode C++ berperilaku
berbeda tergantung situasi pada waktu run (program
berjalan).
Konstruksi ini memungkinkan untuk mengadakan
ikatan dinamis (juga disebut ikatan tunda, atau ikatan akhir).
Kalau fungsi-fungsi dari suatu kelas dasar didefinisikan ulang
atau ditindih pada kelas turunan, maka objek-objek yang
dihasilkan hirarki kelas berupa objek polimorfik. Polimorfik
artinya mempunyai banyak bentuk atau punya kemampuan
untuk mendefinisi banyak bentuk.
Polimorphisme adalah proses kebanyak rupaan,
artinya kita dapat mengimplementasikan sesuatu hal yang
berbeda melalui suatu cara yang sama. Misal : terdapat 5
orang penyanyi, maka hasil atau implementasinya pasti akan
berbeda melalui pengiriman pesan. Tidak bergantung
kepada pemanggilan subrutin, bahasa orientasi objek dapat
mengirim pesan; metode tertentu yang berhubungan dengan
sebuah pengiriman pesan tergantung kepada objek tertentu
di mana pesa tersebut dikirim. Contohnya, bila sebuah
burung menerima pesan "gerak cepat", dia akan
menggerakan sayapnya dan terbang. Bila seekor singa
menerima pesan yang sama, dia akan menggerakkan kakinya
dan berlari. Keduanya menjawab sebuah pesan yang
sama, namun yang sesuai dengan kemampuan hewan
tersebut. Ini disebut polimorfisme karena sebuah variabel
tungal dalam program dapat memegang berbagai jenis objek
yang berbeda selagi program berjalan, dan teks program
yang sama dapat memanggil beberapa metode yang berbeda
di saat yang berbeda dalam pemanggilan yang sama. Hal ini

Dasar Pemrograman C++ | 165


berlawanan dengan bahasa fungsional yang mencapai
polimorfisme melalui penggunaan fungsi kelas-pertama.

Contoh Program
#include<iostream.h>

#include<conio.h>

#include<stdio.h>

class mahluk

public :

void informasi()

cout<<"Informasi()pada mahluk..."<<endl;

virtual void keterangan()

cout<<"Keterangan()pada mahluk..."<<endl;

};

class mamalia:public mahluk

public :

void informasi()

166 | Dasar Pemrograman C++


cout<<"informasi() pada mahluk..."<<endl;

void keterangan()

cout<<"Keterangan() pada mamalia..."<<endl;

};

class sapi : public mamalia

public :

void informasi()

cout<<"informasi() pada Sapi..."<<endl;

void keterangan()

cout<<"Keterangan()pada Sapi..."<<endl;

};

void main()

clrscr();

Dasar Pemrograman C++ | 167


mamalia mamalia;

sapi sapi_sumba;

mahluk*binatang;

cout<<endl<<endl;

binatang = &mamalia;

binatang-> informasi();

binatang ->keterangan();

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

binatang= &sapi_sumba;

binatang-> informasi();

binatang ->keterangan();

getch();

Hasil Eksekusi

168 | Dasar Pemrograman C++


Perhatikan hasil didepan dan juga fungsi-fungsi anggota
kelas yang ada pada ketiga kelas(Makhluk, Mamalia dan
Sapi). Pertama-tama kelas mamalia mewarisi mahluk dan
sapi mewarisi mamalia. Kemuian pada pendeklarasian kelas
mahluk, perbedaan yang menyolok antara fungsi anggota
informasi() dan keterangan() terletak pada kata-kata kunci
virtual(yang lainnya tentu saja berupa perbedaan string
yang akan ditampilkan oleh cout). Pada kelas mamalia dan
sapi, perbedaan yang nyata tidak ada, kecuali perbedaan
dalam hal string. Sekarang kita lihat pada bagian main().
Mula-mula terdapat penciptaan obyek berkelas mamalia dan
sapi dan pointer yang menunjuk ke kelas mahluk. Kemudian
pointer ini diatur agar menunjuk ke obyek dinamis
berkelas mamalia. Saat fungsi anggota informasi()
dipanggil dari pointer, ternyata yang ditampilkan adalah
fungsi anggota dari kelas mahluk. Tetapi tidak demikian
halnya dengan keterangan(). Mengapa bisa berbeda?
Disinilah peranan kata-kunci virtual. Oleh karena
keterangan() diperlakukan sebagai fungsi virtual,
pemanggilan :
Binatang → keterangan()

Akan menyebabkan fungsi anggota keterangan() milik


kelas mamalia-lah yng dijalankan mengingat pointer
binatang telah diatur untuk menunjuk ke obyek berkelas
mamalia. Hal yang serupa berlaku kalau pointer binatang
diatur menunjuk ke obyek berkelas sapi (yaitu sapi_sumba).

Contoh program polimorfisme:


#include<iostream.h>

class A

Dasar Pemrograman C++ | 169


{

public:

char*fungsi_statis()

{return("fungsi statis Kelas A");}

char virtual *fungsi_virtual()

{return("fungsi virtual kelas A");}

};

class B : public A

{public:

char* fungsi_statis()

{return("fungsi statis kelas B");}

char *fungsi_virtual()

{return("fungsi virtual kelas B");}

};

class C : public B

{public:

char* fungsi_statis()

{return("fungsi statis kelas C");}

char *fungsi_virtual()

{return("fungsi virtual kelas C");}

};

main ()

A*pa;

170 | Dasar Pemrograman C++


pa=new A;

cout<<"Objek pa berbentuk objek kelas A"<<endl

<<pa->fungsi_statis()<<endl

<<pa->fungsi_virtual()<<endl<<endl;

delete pa;

pa=new B;

cout<<"Objek pa berbentuk objek kelas B"<<endl

<<pa->fungsi_statis()<<endl

<<pa->fungsi_virtual()<<endl<<endl;

delete pa;

pa=new C;

cout<<"Objek pa berbentuk objek kelas C"<<endl

<<pa->fungsi_statis()<<endl

<<pa->fungsi_virtual()<<endl<<endl;

delete pa;

Hasil Eksekusinya adalah:

Dasar Pemrograman C++ | 171


172 | Dasar Pemrograman C++
DAFTAR PUSTAKA
Antonius Rachmat C. (2010). Algoritma dan Pemrograman
dengan Bahasa C. Yogyakarta: AndiOffset.
Antony Pranata. (2002). Algoritma dan Pemrograman.
Yogyakarta: J&J Learning.
Deitel, H.M., dan P.J. Deitel, 2004. C: How to Program, Edisi 4.
Pearson, Prentice Hall, United Stated of America.
Durstenfeld, Richard (July 1964). "Algorithm 235: Random
permutation". Communications of the ACM 7
Fisher, R.A.; Yates, F. (1948) [1938]. Statistical tables for
biological, agricultural and medical research (3rd ed.).
London: Oliver & Boyd.
Handoyo, Erico Darmawan & Laurentius Risal.2011.
Pemrograman Berorientasi Objek C#. Bandung :
Informatika.
Imbar, Radiant Victor & Suteja, Bernard Renaldy.
Pemrograman Web-Commerce dengan Oracle &
ASP.Bandung : Informatika.2006
Knuth (1998) [1969]. The Art of Computer Programming vol.
2 (3rd ed.). Boston: Addison–Wesley Nugroho, Adi, ST.,
MMSI. 2004. Konsep Pengembangan Sistem Basis Data.
Bandung: Informatika.
Munir, R. 1999. Algoritma dan Pemrograman Dalam Bahasa
Pascal dan C. Bandung: Informatika
Puntodewo, A. D. (2003). In Sistem Informasi Geografis
Untuk pengelolaan sumberdaya alam. CIFOR.
Pressman, R. (2001). Software Engineering: A
Practitioner's Approach. Boston, McGraw Hill.

Dasar Pemrograman C++ | 173

Anda mungkin juga menyukai