Penulis:
Debora Exaudi Sirait S.Si., M.Si.
Cover: Rusli
Website : www.rcipress.rcipublisher.org
E-mail : rumahcemerlangindonesia@gmail.com
November 2021
Penulis
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().
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.
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()
Atau
#include<iostream.h>
int main()
return 0;
#include <iostream.h>
//Protopype fungsi
tipe_data nama_fungsi(parameter1,parameter2,..);
//Fungsi utama
void main()
statemen_yang_akan_dilakukan;
return 0;
//Implementasi fungsi
tipe_data nama_fungsi(parameter1,parameter2,...)
statemen_yang_akan_dilakukan;
...
int main()
int x;
cin >> x;
int main()
int x, y, z;
cin >> y;
z = x + y;
return 0;
Penyelesaian:
Listing program no 1
#include <iostream.h>
int main()
cin >> x;
cout <<"Masukkan bilangan kedua:";
cin >> y;
tambah = x + y;
kurang= x - y;
Penyelesaian:
Listing program no 2
//Program menghitung mata uang
#include<iostream.h>
int main()
Latihan:
1. Buatlah program yang hasil eksekusinya sebagai berikut:
int main()
{
char y[30];
char z[35];
cin >> y;
cin >> z;
return 0;
int main()
int x, y;
cin >> x;
cin >> y;
tambah = x + y;
kurang = x - y;
kali = x * y;
bagi = x / y;
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
#include<conio.h>
void main()
{
clrscr(); //Hapus layar
Contoh:
/*Contoh program menggunakan komentar
Ini adalah komentar panjang
#include<iostream.h>
#include<conio.h>
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.
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()
return 0;
Contoh:
#include <iostream.h>
int main()
return 0;
Contoh:
#include <iostream.h>
int main()
char Jurusan[15]="INFORMATIKA";
cout <<Karakter<<endl;
Deklarasinya:
Struct nama_struktur
Tipe_data variabel1;
Tipe_data variabel2;
......
};
Contoh:
#include<iostream.h>
#include<string.h>
int main()
char NIM[15];
char Nama[20];
char Alamat[30];
char Kota[15];
}A;
strcpy(A.NIM,"01500024");
strcpy(A.Nama,"Susi Susanti");
strcpy(A.Kota,"Jakarta");
cout<<A.NIM<<endl;
cout<<A.Nama<<endl;
cout<<A.Alamat<<endl;
cout<<A.Kota<<endl;
return 0;
Hasil Eksekusi:
Deklarasinya:
enum nama_tipe{nilai1, nilai2,....};
Contoh:
#include<iostream.h>
#include<string.h>
int main()
struct MAHASISWA
char NIM[15];
char Nama[20];
char Alamat[30];
char Kota[15];
JENIS_KELAMIN gender;
}A;
strcpy(A.Nama,"Susi Susanti");
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;
return 0;
Hasil Eksekusi:
Latihan:
1. Buatlah program dengan menggunakan struct dengan
hasil eksekusi program sebagai berikut:
Plat Nomor Kendaraan: B1669OK
Jenis Kendaraan : Xenia
Kota : Jakarta
A. Fungsi strcpy
Bentuk Umum:
char*strcpy(char S1, const char*S2);
#include <string.h>
int main()
char S1[51];
char*S2;
strcpy(S1,S2);
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)
#include <string.h>
int main()
{
char*S1;
S2=strdup(S1);
cout <<S2<<endl;
return 0;
C. Fungsi strcat
Bentuk umum:
char* strcat(char*S1, const*S2);
Contoh:
#include <iostream.h>
#include <string.h>
int main()
S1=”Teks ”;
S2=”Gabungan”;
strcat(S1,spasi);
strcat(S1,S2);
cout <<S1<<endl;
return 0;
Hasil Eksekusi:
D. Fungsi strncat
Bentuk umum:
char*strncat(char*S1, const char*S2, size_t n);
Contoh:
#include <iostream.h>
#include <string.h>
char*S1;
char*S2;
strncat(S1,S2,12);
cout <<S1<<endl;
return 0;
E. Fungsi strlen
Bentuk umum:
size_t strlen(const char* S);
Contoh:
#include <iostream.h>
#include <string.h>
int main()
char*S2;
S1=”Putri”;
S2=”Salju”;
panjang_S1=strlen(S1);
panjang_S2=strlen(S2);
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);
Contoh:
#include <iostream.h>
#include <string.h>
int main()
{
char*S1;
char*S2;
S1=”COBA”;
S2=”COBA”;
cout<<”Hasil perbandingan
:”<<strcmp(S1,S2)<<endl;
S1=”Coba”;
cout<<”Hasil perbandingan
:”<<strcmp(S1,S2)<<endl;
S2=”coba”;
cout<<”Hasil perbandingan
:”<<strcmp(S1,S2)<<endl;
return 0;
G. Fungsi strrev
Bentuk Umum:
char*strrev(char* S)
Contoh:
#include <iostream.h>
#include <string.h>
int main(){
strrev(S);
cout <<S<<endl;
return 0;
H. Fungsi strchr
Bentuk umum:
char*strchr(const char* S, int ch)
Contoh:
#include <iostream.h>
#include <string.h>
int main(){
char*PStr;
PStr=strchr(S,’+’);
cout <<PStr<<endl;
I. Fungsi strlwr
Bentuk umum:
char*strlwr(char* S);
Contoh:
Page 9 of 12 : Algoritma & Struktur Data 2 (C++)– Created by Wachyu Hari H
#include <iostream.h>
#include <string.h>
int main()
char*hasil;
hasil=strlwr(S);
cout <<hasil<<endl;
return 0;
J. Fungsi strupr
Bentuk umum:
char*strupr(char* S);
#include <string.h>
int main(){
char*hasil;
hasil=strupr(S);
cout <<hasil<<endl;
return 0;
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;
cout<<S3<<endl; c
out<<S1<<endl;
return 0;
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;
MyChar = 'C';
MyDouble = 22.021;
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--
Contoh:
#include <iostream.h>
int main ()
A = 5;
cout<<'\n'<<endl;
cout<<'\n'<<endl;
A = 10;
cout<<'\n'<<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.
Contoh:
#include<iostream.h>
int main ()
int X = 10, Y = 3;
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';
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:
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;
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;
Contoh:
#include<iostream.h>
int main()
cout<<"!1="<<(!1)<<endl;
cout<<"!0="<<(!0)<<endl;
return 0;
Hasil Eksekusi:
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:
F. Operator Ternary
Adalah operator yang digunakan dalam operasi yang
melibatkan tiga buah operand.
Bentuk umum:
Ekspresi1? Ekspresi2: Ekspresi3;
Contoh:
#include<iostream.h>
int main()
int angka;
cin>>angka;
return 0;
pernyataan;
atau
if (kondisi)
statemen1;
statemen2;
pernyataann;
Contoh:
if (detik == 60)
menit = menit + 1;
if (Angka %2 == 0)
cout<<”Bilangan genap”;
if (sisi > 0)
Isi = Luas*tinggi;
Contoh program:
#include <iostream.h>
int main()
int nilai;
cin>>nilai;
return 0;
Contoh program:
#include <iostream.h>
int main()
int bilangan;
char huruf;
//memasukkan bilangan bulat
cin>>bilangan;
cout<<“\n“;
cin>>huruf;
(huruf == ‘o’))
return 0;
statemen_jika_kondisi_terpenuhi;
else
statemen_jika_kondisi_tidak_terpenuhi;
Contoh:
#include <iostream.h>
int main()
int nilai;
cin>>nilai;
if (nilai %2 == 0)
else
return 0;
statemen_jika_kondisi1_terpenuhi;
}
else if (kondisi2)
statemen_jika_kondisi2_tidak_terpenuhi;
else if (kondisi3)
statemen_jika_kondisi3_tidak_terpenuhi;
....
statemen_jika_semua_kondisi_tidak_terpenuhi;
}
Contoh program:
#include <iostream.h>
int main()
{
int nilai;
cin>>nilai;
if (nilai > 0)
else
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
Contoh program:
#include <iostream.h>
int main()
int bil;
cin>>bil;
switch (bil)
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
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
Penyelesaian:
1. Listing programnya:
#include<iostream.h>
int main()
char huruf;
cin >>huruf;
(huruf == 'o'))
}else
return 0;
2. Listing Programnya:
//Program menentukan huruf
#include<iostream.h>
int main()
char karakter;
cin>>karakter;
else
return 0;
A. Pernyataan while
Digunakan untuk pengambilan keputusan dan looping.
Bentuk Umum:
While(kondisi)
pernyataan
Contoh1:
//while1.cpp
#include <iostream.h>
int main()
int iterasi = 0;
iterasi++;
}
return 0;
#include <iostream.h>
int main()
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);
Contoh1:
//dowhile1.cpp
#include <iostream.h>
int main()
int iterasi = 0;
do
iterasi++;
return 0;
Contoh2:
//dowhile2.cpp
#include <iostream.h>
int main()
do
iterasi++;
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;
Contoh1 :
//Program mencetak angka 1-100
#include <iostream.h>
void main()
void main()
Contoh2 :
//for2.cpp
#include <iostream.h>
int main()
int iterasi = 0;
return 0;
#include <iostream.h>
int main()
iterasi++;
return 0;
}
// Program menghasilkan segitiga pascal
#include <iomanip.h>
#include <conio.h>
#include <iostream.h>
main()
for(a=0,x=0;a<=n;a++,x+=2)
cout<<setw(3*n-x);
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
Contoh:
//break1.cpp
#include <iostream.h>
int main()
int iterasi = 0;
for (;;)
iterasi++;
else break;
return 0;
E. Pernyataan Continue
Pernyataan continue digunakan untuk pergi ke bagian
awal dari blok loop untuk memulai iterasi berikutnya.
#include <iostream.h>
int main()
int iterasi = 0;
for (;;)
iterasi++;
continue;
iterasi++;
else break;
return 0;
#include <iostream.h>
void main()
int n;
for(;;)
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.
}
}
}
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:
Jawab:
Listing program:
#include<iostream.h>
main()
int a;
cout<<a<<" ";
return 0;
Hasil Eksekusi:
Latihan:
1. Buatlah program untuk menampilkan deret bilangan
genap dari 10 sampai 50 keculi 30 dengan
menggunakan for!
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;
Penyelesaian
//Program menentukan huruf
#include<iostream.h>
int main()
char karakter;
cin>>karakter;
else
Penyelesaian:
//Program menghitung mata uang
#include<iostream.h>
int main()
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;
int main()
int angka;
cin>>angka;
return 0;
Hasil Eksekusi:
#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;
Penyelesaian:
#include<iostream.h>
int main()
cin >>huruf;
}else
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;
return x*x;
return x*x;
Contoh :
#include <iostream.h>
char n[50];
sayHello(n);
Contoh :
// Penggunaan Fungsi Rekursif :
#include <iostream.h>
#include <conio.h>
double angka;
cekInt(angka);
void cekInt(double n)
if(n>1)cekInt(n-1);
else if(n<1)cekInt(-n-1);
else
Contoh :
#include <iostream.h>
#include <conio.h>
void sayHello(int);
void main()
sayHello(4);
Penjelasan :
Jika pada program, argumen sayHello tidak
diberikan, maka program akan menampilkan:
Halloo …
int main()
int x;
cout<<"Masukan nilai:";
cin>>x;
cout<<"Hasil Kuadratnya:"<<Kuadrat(x);
return 0;
float Kuadrat(float x)
return (x*x);
return (2*PI*jari_jari);
int main()
int R;
double HASIL;
cin>>R;
HASIL=KelilingLingkaran(3.14,R);
cout<<"Keliling="<<HASIL;
return 0;
Listing Program:ftambah_kurang_kali_bagi
#include<iostream.h>
int main()
int x,y;
cin>>x;
cin>>y;
cout<<"Hasil Penjumlahan:"<<Tambah(x,y)<<endl;
cout<<"Hasil Pengurangan:"<<Kurang(x,y)<<endl;
cout<<"Hasil Perkalian:"<<Kali(x,y)<<endl;
return 0;
return (x+y);
return (x-y);
return (x*y);
return (x/y);
PBO C++
Variabel Instans Data
Metoda Fungsi Anggota
Tabel 1. Istilah pada PBO dan C++
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
4. Smalltalk
Smalltalk adalah bahasa pemrograman berorientasi objek
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.
Data elemen_class ;
Data elemen_class ;
.....
Public :
Data elemen_class ;
Data elemen_class ;
…..
} nama_object;
{ {
private : anggota_data;
anggota_data; };
public :
fungsi_anggota;
};
PERBEDAAN
KELAS
Terdapat anggota data dan fungsi anggota. Anggota data
biasanya berupa variabel dan fungsi anggota biasanya berupa
fungsi.
Hak akses pada struktur sama seperti hak akses public pada kelas
Contoh deklarasi:
Nama Class
Class motor
];
motor sport ;
Pendefinisikan Object
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<<”Nama : “<<nama<<endl;
id = idn;
};
void main()
penduduk saya;
saya.set(1234,”Andi”);
saya.tampilkan();
#include <string.h>
class penduduk
private:
int id;
char nama[80];
public:
void tampilkan();
};
void main()
penduduk saya;
saya.tampilkan();
cout<<”Nama : “<<nama<<endl;
id = idn;
strcpy(nama,n);
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.
#include <conio.h>
main()
class kereta
public:
char nama[10],jur[15],kls[10];
float hrg,jumbay;
};
clrscr();
kereta train;
train.jumbay=train.hrg*train.jum;
clrscr();
return 0;
#include <conio.h>
class krj
{ public:
int nik;
char nama[20];
int jam;
};
main()
krj pgw[10];
int n,i;
for(i=1;i<=n;i++)
cout<<"=========================="<<endl;
cout<<"Data ke : "<<i<<endl;
cout<<"=========================="<<endl;
return 0;
#include <conio.h>
#include <string.h>
main()
public:
char nim[8],nama[20];
if(nilai>65)
strcpy(ket,"Lulus");
else
strcpy(ket,"Tidak lulus");
clrscr();
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
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:
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
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
Contoh1 :
#include <iostream.h>
class jumlah
public:
int jumlah1;
int jumlah2;
jumlah();
};
jumlah objek1,objek2;
void main()
cout<<”objek1.jumlah1 adalah
“<<objek1.jumlah1<<endl;
cout<<”objek1.jumlah2 adalah
“<<objek1.jumlah2<<endl;
cout<<”objek2.jumlah1 adalah
jumlah::jumlah()
Keluarannya :
Kesimpulan :
➢ Nama konstruktor sama dengan nama kelas
➢ Konstruktor tidak mempunyai nilai balik
Contoh2:
//Program Konstruktor
#include<iostream.h>
int x;
int y;
public:
x=0;
y=0;
}
Titik(int nx, int ny) //Konstruktor Penyalinan
x=nx;
y=ny;
x=tt.x;
y=tt.y;
};
void main()
getch();
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.
class jumlah
public:
int jumlah1;
int jumlah2;
~jumlah();
};
jumlah objek1,objek2;
void main()
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()
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
public:
};
Tpersegi::Tpersegi(int a, int b)
lebar=new int;
panjang=new int;
*lebar = a;
*panjang = b;
Tpersegi::~Tpersegi()
delete lebar;
delete panjang;
int main()
return 0;
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.
class A
. . .
};
. . .
class makhluk
public:
void berkembang();
};
public:
void bergerak();
};
public:
void berlari();
main()
mk.berkembang();
hw.berkembang(); hw.bergerak();
void makhluk::berkembang()
void hewan::bergerak()
void kuda::berlari()
Hasil Kompilenya :
class A
. . .
};
class B
. . .
. . .
class kuda
public :
void berlari()
};
class burung
{
public:
void terbang()
};
public:
void lariterbang()
};
main()
pegasus pg;
pg.berlari();
pg.terbang();
pg.lariterbang();
class A
. . .
};
class B: virtual public A
. . .
};
. . .
};
. . .
};
class hewan
public:
void bergerak()
};
public :
void berlari()
};
public:
void terbang()
};
public:
void lariterbang()
};
main()
pegasus pg;
cout<<"========================"<<endl;
pg.berlari();
pg.terbang();
pg.lariterbang();
Latihan:
1. Buatlah program dengan menggunakan multiple
inheritance dimana
Contoh programnya :
#include"iostream.h"
#include"conio.h"
private:
char nama[15];
public:
strcpy(nama, nama_kendaraan);
~Kendaraan()
void info_kendaraan()
};
public:
~Mercy()
};
void main()
mewah.info_kendaraan();
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 ...
{
public:
};
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();
};
#include<iostream.h>
class KARYAWAN
public:
public:
void Bekerja()
cout<<endl;
};
public:
void Bekerja()
cout<<endl;
};
int main()
KARYAWAN *P;
P = new PROGRAMMER;
P = new GURU;
P ->Bekerja();
return 0;
#include<iostream.h>
class kuda
};
class burung
public:
};
public:
void berlari()
void terbang()
};
main ()
kuda *pkd;
pkd=new kuda;
pkd->berlari();
pbr->terbang();
Hasil Eksekusi:
class hewan
public:
};
public:
void bergerak()
};
public:
void bergerak()
};
public:
void bergerak()
};
main ()
hewan *phw;
phw=new hewan;
phw->bergerak();
phw=new kuda;
phw->bergerak();
phw=new burung;
phw->bergerak();
phw=new pegasus;
phw->bergerak();
Contoh lain:
Contoh Program
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
class mahluk
public :
cout<<"Informasi()pada mahluk..."<<endl;
cout<<"Keterangan()pada mahluk..."<<endl;
};
public :
void informasi()
void keterangan()
};
void informasi()
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;
binatang ->keterangan();
getch();
Hasil Eksekusi
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
};
#include <iostream.h>
class Binatang
};
};
};
};
int main()
Binatang *Hewan[4];
Hewan[i]->Makan();
return 0;
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
Contoh Program
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
class mahluk
public :
void informasi()
cout<<"Informasi()pada mahluk..."<<endl;
cout<<"Keterangan()pada mahluk..."<<endl;
};
public :
void informasi()
void keterangan()
};
public :
void informasi()
void keterangan()
cout<<"Keterangan()pada Sapi..."<<endl;
};
void main()
clrscr();
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
class A
public:
char*fungsi_statis()
};
class B : public A
{public:
char* fungsi_statis()
char *fungsi_virtual()
};
class C : public B
{public:
char* fungsi_statis()
char *fungsi_virtual()
};
main ()
A*pa;
<<pa->fungsi_statis()<<endl
<<pa->fungsi_virtual()<<endl<<endl;
delete pa;
pa=new B;
<<pa->fungsi_statis()<<endl
<<pa->fungsi_virtual()<<endl<<endl;
delete pa;
pa=new C;
<<pa->fungsi_statis()<<endl
<<pa->fungsi_virtual()<<endl<<endl;
delete pa;