Anda di halaman 1dari 61

Teknik Pemrograman Terstruktur 2/C++&OOP

Modul Kuliah

Teknik Pemrograman Terstruktur 2


Pemrograman C++

Oleh : Nani Mintarsih


NIP : 960120

UNIVERSITAS GUNADARMA
2012
DAFTAR ISI

Nani Mintarsih

HAL

Page 1

Teknik Pemrograman Terstruktur 2/C++&OOP

C++ & PBO .........


................

KELAS DAN OBJEK


...............

PEWARISAN SIFAT OBJEK .........

26

........

41

PREPROCESSOR DIRECTIVE ...........

46

LATIHAN SOAL .......................................................................................

58

REFERENSI ..

64

VIRTUAL DAN POLIMORFISME

.................

C++ & OOP

Pemrograman Berorientasi Objek

Nani Mintarsih

Page 2

Teknik Pemrograman Terstruktur 2/C++&OOP

Adalah bahasa pemrograman yang mngkombinasikan data dan fungsi untuk


mengakses data menjadi sat kesatuan unit.
Fungsi anggota, Metoda, Data, Variabel Instans
Pada bahasa berorientasi objek, data yng melekat dalam suatu objek biasa di sebut
variabel instans. Pada C++, istilah yang digunkan adalah data atau anggota data.
Adapun fngi 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, harus memanggil
fungsi anggota. Dengan kata lain, data bersifat tersembunyi bagi fungsi fungsi di luar
fungsi anggotanya.
Objek dan Kelas
Dalam terminologi PBO (Pemrograman Berorientasi Obyek), obyek sebenarnya
adalah anggota dari kelas (class). Dengan kata lain adalah kumpulan dari beberapa
obyek yang sama.
Karakteristik PBO
Tiga karakteristik utama dari bahasa yang berorientasi obyek adalah :
Encapsulation
Inheritance
Polymorphism
Tiag karakteri di atas mendukung reusability, yang merupakan salah faktor dari
kualitas perangkat lunak. Reusability adaah uatu sifat yang memperkenankan kelas
yang telas dibuat dan diuji dapat didistribusikan ke pemrogram lain untuk dipakai
pada program progran mereka. Hal ini mempunyai kesamaan dengan penulisan
fngsi fungsi pada bahasa prosedural yang kemudian di letakkan dalam pustaka
(library). Perbedaannya tingkat kepamakaianan kemali pada program berorientasi
obyek lebih tinggi dibandinkan bahasa prosedural. Seba , pemrogram dengan
mudah dapat menurunan sifat sifat dari suatu kelas dan menambah sifat-sifat yng
baru( berkat adanya kemampuan inheritance).

Encapsulation (pengkapsulan)
Pengemasan data dan fungsi dalam wadah bernama obyek dikenal dengan sebutan
Encapsulation (pengkapsulan). Data tidak lagi di perlakukan sebagai komponen
kedua setelah fungsi, melainkan mempunyai kedudukan yng sama dengan fungsi.
Inheritance (pewarisan)

Nani Mintarsih

Page 3

Teknik Pemrograman Terstruktur 2/C++&OOP

Inheritance (pewarisan) merupakan sifat dalam bahas berorientasi obyek yang


memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas yang lain
Polymorphism (Polimorfisme)
Polymorphism merupakan suatu konsep yang menyatakan sesuatu yng sama dapat
memiliki berbagai bentuk dan perilaku yang berbeda.Istilah ini sendiri brasal dari
bahasa Yunani, ang berarti mempunyai banyak bentuk
Kompilasi
Program C++ biasa ditulis dengan nama ekstensi .CPP. Agar program ini dapat
dijalankan (dieksekusi), program harus di kompilasi terlebih dahulu dengan
menggunakan kompiler C++.

KELAS DAN OBJEK


Kelas
Kelas dibuat untuk memresentasikan sebuah objek tertentu sehingg akan membantu
dalam proses penyelesaian masalah-masalah kompleks. Dengan kata lain kelas
Nani Mintarsih

Page 4

Teknik Pemrograman Terstruktur 2/C++&OOP

adalah bentuk penyederhanaan dari suatu permasalahan an berkaitan dengan


objek.;Contoh kelas :
Program 11-1
#include <iostream>
using namespace std;
class CONTOH {
int X;
public:
void set_X(int XX);
int get_X();

// Mendeklarasikan fungsi set_X

// Mendeklarasikan fungsi get_X

}
// Bagian implementasi dari fungsi set_X
void CONTOH::set_X(int XX) {
X = XX;
}
// Bagian implementasi dari fungsi get_X
int CONTOH::get_X() {
return X;
}
// Fungsi utama
int main() {
// Membuat instance dari kelas CONTOH dengan nama ob
CONTOH ob;
// Mengakses fungsi set_X yang terdapat pada kelas CONTOH
ob.set_X(100);

Nani Mintarsih

Page 5

Teknik Pemrograman Terstruktur 2/C++&OOP

// Mengakses fungsi get_X yang terdapat pada kelas CONTOH


cout<<ob.get_X();
return 0;
}
Hasil
100

Constructor Dan Destructor


Constructor adalah fungsi yang:

Namanya sama dengan kelas


Dipanggil pada saat pendefinisian objek
Digunakan untuk mendeklarasikan nilai awal

Contoh :
Program 11-2
#include <iostream>
using namespace std;
// Membuat kelas dengan nama CONTOH
class CONTOH {
int X;
public:
// Membuat constructor
CONTOH() {
X = 10; // Melakukan inisialisasi nilai X dengan nilai 10
}
// Membuat member function
void ShowX() {
cout<<"Nilai X : "<<X<<endl;
}
Nani Mintarsih

Page 6

Teknik Pemrograman Terstruktur 2/C++&OOP

//...
};
int main() {
// Melakukan instansiasi terhadap kelas CONTOH
// dengan nama instance O
CONTOH O;
// Memanggil fungsi ShowX
O.ShowX();
return 0;
}
Hasil
Nilai X : 10
Program 11-3
#include <iostream>
using namespace std;
// Membuat kelas dengan nama CONTOH
class CONTOH {
int X;
public:
// Membuat constructor tanpa parameter
CONTOH() {
X = 10; // Melakukan inisialisasi nilai X dengan nilai 10
}
// Membuat constructor dengan menggunakan satu parameter
CONTOH(int XX) {
X = XX;
}
// Membuat member function
Nani Mintarsih

Page 7

Teknik Pemrograman Terstruktur 2/C++&OOP

void ShowX() {
cout<<"Nilai X : "<<X<<endl;
}
//...
};
int main() {
// Melakukan instansiasi terhadap kelas CONTOH
// dengan nama instance O
CONTOH O;
// Melakukan instansiasi terhadap kelas CONTOH
// dengan nama instance P
CONTOH P(200);
// Memanggil fungsi ShowX
O.ShowX();
P.ShowX();
return 0;
}
Hasil :
Nilai X : 10
Nilai X : 200

Tingkat Akses
1. Private
Berguna untuk hak akses data hanya kepada kelas yang
bersangkutan saja.
Contoh :
Program 11-6
#include <iostream>
Nani Mintarsih

Page 8

Teknik Pemrograman Terstruktur 2/C++&OOP

using namespace std;


class CONTOH {
int X;

// X bersifat private

public:
void SetX(int XX) {
X = XX;
}
void ShowX() {
cout<<"Nilai X : "<<X<<endl;
}
};
// Fungsi utama
int main() {
CONTOH O;
O.SetX(100);
O.ShowX()
return 0;
Hasil:
Nilai X : 100
2. PUBLIC
Berguna untuk memberikan hak akses

Secara umu kepada kelas kelas turunannya maupun terhadap


lingkungan luar di dalam program.
Contoh :
Program 11-7
#include <iostream>
using namespace std;
class CONTOH {
Nani Mintarsih

Page 9

Teknik Pemrograman Terstruktur 2/C++&OOP

int X;
public:
void SetX(int XX) {
X = XX;
}
int KuadratX() {
return X * X;
}
//
};
// Fungsi utama
int main() {
CONTOH O;
int hasil;
// Melakukan pemanggilan terhadap fungsi-fungsi di dalam
// kelas CONTOH
O.SetX(10);
hasil = O.KuadratX();
cout<<"Hasil : "<<hasil;
return 0;
}
Hasil
Hasil : 100
3.

Protected
Digunakan untuk memberikan hak akses terhadap data dalam suatu kelas
sehingga data tersebut dapat diakses oleh kelas turunannya, namn
lingkungan luar di dalam program tetap tidak di beri hak untuk
mengaksesnya.
Contoh ;\
Program 11-8

Nani Mintarsih

Page 10

Teknik Pemrograman Terstruktur 2/C++&OOP

#include <iostream>
using namespace std;
// Membuat kelas DASAR yang didalamnya terdapat data
// dalam bagian protected
class DASAR {
protected:
int X;
public:
DASAR() { X = 10; } // Inisialisasi nilai X dengan nilai 10
//...
};
// Membuat kelas TURUNAN sebagai hasil turunan dari kelas DASAR
class TURUNAN: public DASAR {
int Y, hasil;
public:
void SetY(int YY) {
Y = YY;
}
void KaliXY() {
hasil = X * Y; // Menggunakan nilai X dari kelas DASAR
}
int GetHasil() {
return hasil;
}
};
// Fungsi utama
int main() {
DASAR A;
TURUNAN B;

Nani Mintarsih

Page 11

Teknik Pemrograman Terstruktur 2/C++&OOP

B.SetY(5);
B.KaliXY();
cout<<"\nHasil X kali Y : "<<B.GetHasil();
return 0;
}
Hasil
Hasil X kali Y : 50

Hubungan antara struture dan kelas


1. Membuat kelas denga menggunakan Kata kunci Struct
Program 11-9
#include <iostream>
using namespace std;
// Membuat kelas MOTOR
struct MOTOR {
char* merk;
long tahun;
char* nopolisi;
char* warna;
public:
void SetMotor() {
merk = "Honda GL Pro";
tahun = 1997;
nopolisi = "G 5879 BF";
warna = "Hitam";
}
void ShowInfoMotor() {
cout<<"Merk : "<<merk<<endl;
cout<<"Tahun: "<<tahun<<endl;
Nani Mintarsih

Page 12

Teknik Pemrograman Terstruktur 2/C++&OOP

cout<<"No Polisi

: "<<nopolisi<<endl;

cout<<"Warna

: "<<warna<<endl;

}
};
// Fungsi utama
int main() {
// Melakukan instansiasi terhadap kelas MOTOR
MOTOR M;
M.SetMotor();
M.ShowInfoMotor();
return 0;
}

2. Membuat kelas dengan menggunakan Kata Kunci Class


Program 11-10
#include <iostream>
using namespace std;

// Membuat kelas MOTOR


class MOTOR {
char* merk;
long tahun;
char* nopolisi;
char* warna;
public:
void SetMotor() {
merk = "Honda GL Pro";
tahun = 1997;
nopolisi = "G 5879 BF";
Nani Mintarsih

Page 13

Teknik Pemrograman Terstruktur 2/C++&OOP

warna = "Hitam";
}
void ShowInfoMotor() {
cout<<"Merk : "<<merk<<endl;
cout<<"Tahun: "<<tahun<<endl;
cout<<"No Polisi

: "<<nopolisi<<endl;

cout<<"Warna

: "<<warna<<endl;

}
};
// Fungsi utama
int main() {
// Melakukan instansiasi terhadap kelas MOTOR
MOTOR M;
M.SetMotor();
M.ShowInfoMotor();
return 0;
}

Hasil
Merk
Tahun
No. Polisi
Warna

:Honda GL, Pro


:1997
:G 5879 B
: Hitam

Anggota Kelas yang Bersifat Statis


1. Data Statis
Program 11-11
#include <iostream>
Nani Mintarsih

Page 14

Teknik Pemrograman Terstruktur 2/C++&OOP

using namespace std;


class CONTOH {
static int X;

// variabel statik

int Y;

// variabel non-statik

public:
// Constructor kelas CONTOH
CONTOH(int XX, int YY) {
X = XX;
Y = YY;
}
// Fungsi untuk menampilkan nilai X dan Y
void ShowXY() {
cout<<"Nilai X : "<<X<<endl;
cout<<"Nilai Y : "<<Y<<endl;
cout<<endl;
}
};
// Mendefinisikan X
int CONTOH::X;

// Fungsi utama
int main() {
// Membuat instance A dengan X=10 dan Y=10
CONTOH A(10, 10);
// Menampilkan nilai X dan Y dari instance A
cout<<"Di dalam objek A"<<endl;
A.ShowXY();
// Membuat instance B dengan X=50 dan Y=50
Nani Mintarsih

Page 15

Teknik Pemrograman Terstruktur 2/C++&OOP

CONTOH B(50, 50);


// Menampilkan nilai X dan Y dari instance B
cout<<"Di dalam objek B"<<endl;
B.ShowXY();
// Menampilkan kembali nilai X dan Y dari instance A
cout<<"Di dalam objek A"<<endl;
A.ShowXY();
return 0;
}
Hasil :
Di dalam objek A
Nilai X : 10
Nilai Y : 10
Di dalam objek B
Nilai X : 50
Nilai Y ; 50
Di dalam objek A
Nilai X : 50
Nilai Y: 10

2. Fungsi Statis
Yang harus diperhatikan :
Fungsi statis yang terdapat di dalam sebuah kelas tersebut tidak
memiliki pointer this
Fungsi statis tidak boleh bersifat virtual
Tidak boleh terdapat dua fungsi yang sama, walaupun yang satu
bersifat statik dan yang lainnya non-staik
Program 11-12
Nani Mintarsih

Page 16

Teknik Pemrograman Terstruktur 2/C++&OOP

#include <iostream>
using namespace std;
class CONTOH {
static int X;
public:
static void Inisialisasi(int XX) {
X = XX;
}
void ShowX() {
cout<<"Nilai X : "<<X<<endl;
}
};
// Mendefinisikan X
int CONTOH::X;
// Fungsi utama
int main() {
// Memanggil fungsi Inisialisasi sebelum

// sebuah objek/instance dibuat


CONTOH::Inisialisasi(25);
// Melakukan instansiasi terhadap kelas CONTOH
// dengan nama instance A
CONTOH A;
// Memanggil fungsi ShowX kepunyaan kelas CONTOH
A.ShowX();
return 0;
}
Hasil
Nani Mintarsih

Page 17

Teknik Pemrograman Terstruktur 2/C++&OOP

Nilai X : 25

Pointer ke Objek
Menggunakan ->
Program 11-13
#include <iostream>
using namespace std;
// Membuat kelas
class CONTOH {
int X;
public:
void SetX(int XX) {
X = XX;
}
void ShowX() {
cout<<"Nilai X : "<<X<<endl;
}
};
// Fungsi utama
int main() {
// Mendeklarasikan pointer yang menunjuk ke kelas CONTOH
CONTOH *P;
// Mengalokasikan memori untuk kelas CONTOH
P = new CONTOH;

// P menunjuk ke alamat

// yang baru dialokasikan


// Memanggil fungsi-fungsi milik kelas CONTOH,
// yaitu dengan operator ->
Nani Mintarsih

Page 18

Teknik Pemrograman Terstruktur 2/C++&OOP

P->SetX(100);

// Ingat, bukan menggunakan titik,

// karena P adalah pointer


P->ShowX();
return 0;
}

Hasil
Nilai X: 100

Pointer this
Adalah pointer otomatis yang dilewatkan setiap kali objek dibuat di
dalam memori dan akan mewakili nama kelas yang bersangkutan.
Program 11-14
#include <iostream>
using namespace std;
class KUBUS {
int S;
public:
void SetS(int SS);
int GetVolume();
void ShowVolume();
};
void KUBUS::SetS(int SS) {
this->S = SS;
}
int KUBUS::GetVolume() {
return (this->S * this->S * this->S);
}
Nani Mintarsih

Page 19

Teknik Pemrograman Terstruktur 2/C++&OOP

void KUBUS::ShowVolume() {
cout<<"Volume Kubus : "<<this->GetVolume()<<endl;
}
// Fungsi utama
int main() {
KUBUS K;
K.SetS(5);
K.ShowVolume();
return 0;
}

Hasil
Volume Kubus : 125

Objek Sebagai Parameter dalam Sebuah Fungsi


Program 11-15
#include <iostream>
using namespace std;
class CONTOH {
int X;
public:
void SetX(int XX) {
X = XX;
}
int GetX() {
return X;
}
};
Nani Mintarsih

Page 20

Teknik Pemrograman Terstruktur 2/C++&OOP

int Kuadrat(CONTOH A, int N) {


A.SetX(N);
return (A.GetX() * A.GetX());
}
int main() {
CONTOH O;
// Memanggil fungsi Kuadrat
cout<<"Kuadrat dari 10 adalah : "<<Kuadrat(O,10);
return 0;
}

Hasil
Kuadrat dari 10 adalah : 100
Objek Sebagai Nilai Kembalian dalam Sebuah Fungsi
Program 11-16
#include <iostream>
using namespace std;
class CONTOH {
int X;
public:
void SetX(int XX) {
X = XX;
}
int GetX() {
return X;
}
};

Nani Mintarsih

Page 21

Teknik Pemrograman Terstruktur 2/C++&OOP

CONTOH MyFunc() {
CONTOH A;
A.SetX(30);
return A; // Mengembalikan nilai yag berupa objek
}
int main() {
CONTOH O;
// Memanggil fungsi Kali2 dan nilainya dimasukkan
// ke dalam objek O
O = MyFunc();
cout<<"Nilai X di dalam O adalah : "<<O.GetX();
return 0;
}

Hasil
Nilai X di dalam O adalah : 30

Friend Function
Program 11-17
#include <iostream>
using namespace std;
class CONTOH{
int X, Y;
public:
void SetXY(int XX, int YY) {
Nani Mintarsih

Page 22

Teknik Pemrograman Terstruktur 2/C++&OOP

X = XX;
Y = YY;
}
friend int KALI(CONTOH A);
};
// Mendefinisikan fungsi KALI yang bukan termasuk member function
// dari kelas CONTOH
int KALI(CONTOH A) {
// Mengakses bagian private secara langsung dari kelas CONTOH
return (A.X * A.Y);
}
// Fungsi utama
int main() {
// Melakukan instansiasi kelas CONTOH
CONTOH O;
O.SetXY(20, 3);// Mengeset nilai X=20 dan Y=3
cout<<"Hasil kali : "<<KALI(O);
return 0;
}

Hasil
Hasil kali : 60

Friend Class
Program 11-18
#include <iostream>
using namespace std;
Nani Mintarsih

Page 23

Teknik Pemrograman Terstruktur 2/C++&OOP

class KESATU {
int X, Y;
public:
KESATU(int XX, int YY) {
X = XX;
Y = YY;
}
friend class KEDUA;

// Mendeklarasikan sebuah friend class

};
// Definisi dari kelas KEDUA
class KEDUA {
//
public:
int Kali(KESATU A);
//
};
int KEDUA::Kali(KESATU A) {
return (A.X * A.Y);
};
int main() {
// Melakukan instansiasi dari kelas KESATU
KESATU O(40, 3);
// Melakukan instansiasi dari kelas KEDUA
KEDUA P;
// Memanggil fungsi Kali yang terdapat pada kelas KEDUA
cout<<"Hasil kali : "<<P.Kali(O);
return 0;
}
Nani Mintarsih

Page 24

Teknik Pemrograman Terstruktur 2/C++&OOP

Hasil
Hasil Kali : 120

PEWARISAN SIFAT OBJEK


Kelas Dasar dan Kelas Turunan
Kelas dasar (base class) adalah sebuah kelas yang akan dijadikan sebagai Induk
dari kelas lainnya. Seangkan kelas baru yang merupakan hasil dari proses
penurunan disebut kelas turunan (derived class).
Membuat kelas Turunan
BU : class nama_kelas_turunan : hak akses nama_kelas_dasar {
// data data da fungsi-fungsi
}
Program 12-1
#include <iostream>
using namespace std;
// Membuat kelas dasar dengan nama INDUK
class INDUK {
int X;
public:
void SetX(int XX) {
X = XX;
}
int GetX() {
return X;
}
};
// Membuat kelas turunan dengan nama TURUNAN
class TURUNAN: public INDUK {
int Y;
Nani Mintarsih

Page 25

Teknik Pemrograman Terstruktur 2/C++&OOP

public:
void SetY(int YY) {
Y = YY;
}
int GetY() {
return Y;
}
};
// Fungsi utama
int main() {
rrt78h7huhninnnn9h99j
// Melakukan instansiasi terhadap kelas INDUK
INDUK A;
U000pfjjjjjiyyyhjj
// Memanggil fungsi-fungsi milik kelas INDUK dari kelas INDUK
A.SetX(12);
cout<<"Nilai X yang dipanggil dari kelas INDUK : ";
cout<<A.GetX()<<endl;
cout<<'\n';
// Melakukan instansiasi terhadap kelas TURUNAN
TURUNAN B;
// Melakukan pemanggilan fungsi-fungsi
// yang terdapat pada kelas TURUNAN
B.SetY(40);
cout<<"Nilai Y yang terdapat pada kelas TURUNAN : ";
cout<<B.GetY()<<endl;
cout<<'\n';
// Memanggil fungsi-fungsi milik kelas INDUK dari kelas TURUNAN
B.SetX(35);
Nani Mintarsih

Page 26

Teknik Pemrograman Terstruktur 2/C++&OOP

cout<<"Nilai X yang dipanggil dari kelas TURUNAN : ";


cout<<B.GetX()<<endl;
return 0;
}
Hasil :
Nilai X yang dipanggil dari kelas INDUK
Nilai Y yang dipanggil dari kelas TURUNAN
Nilai X yang dipanggil dari kelas TURUNAN

: 12
: 40
: 35

Program 12-2
#include <iostream>
using namespace std;
// Membuat kelas dasar dengan nama INDUK
class INDUK {
int X;
public:
void SetX(int XX) {
X = XX;
}
int GetX() {
return X;
}
};
// Membuat kelas turunan dari kelas INDUK dengan nama
TURUNAN1
class TURUNAN1: public INDUK {
int Y;
public:
void SetY(int YY) {
Y = YY;
Nani Mintarsih

Page 27

Teknik Pemrograman Terstruktur 2/C++&OOP

}
int GetY() {
return Y;
}
};
// Membuat kelas turunan dari kelas TURUNAN1 dengan nama
TURUNAN2
class TURUNAN2: public TURUNAN1 {
int Z;
public:
void SetZ(int ZZ) {
Z = ZZ;
}
int GetZ() {
return Z;
}
};
// Fungsi utama
int main() {
// Melakukan instansiasi terhadap kelas TURUNAN2
TURUNAN2 A;
// Melakukan pengesetan nilai X, Y dan Z melalui kelas TURUNAN2
A.SetX(20);
A.SetY(30);
A.SetZ(40);
// Menampilkan nilai X, Y dan Z melalui kelas TURUNAN2
cout<<"Nilai X yang dipanggil dari kelas TURUNAN2 : ";
cout<<A.GetX()<<endl;
cout<<"Nilai Y yang dipanggil dari kelas TURUNAN2 : ";
cout<<A.GetY()<<endl;
Nani Mintarsih

Page 28

Teknik Pemrograman Terstruktur 2/C++&OOP

cout<<"Nilai Z yang dipanggil dari kelas TURUNAN2 : ";


cout<<A.GetZ()<<endl;
return 0;
}
Hasil yang dipanggil dari kelas TURUNAN2
Hasil yang dipanggil dari kelas TURUNAN2
Hasil yang dipanggil dari kelas TURUNAN2

:: 20
:: 30
:: 40

Hak Akses Pada Program Pewarisan


Apabila kelas diturunkan sebagai public, dari kelas induknya, maka :
Bagian public yang terdapatpada kelas induk tetap akan menjadi bagian public
pada kelas turunannya.
Bagian Protected yang erdapat pada kelas induktetap akan menjadi bagian
protectedpada kelas turunannya.
Bagian Private yang terdapat pada kelas induktetap tidak dapat diakses oleh
kelas turunannya.
Apabila kelas diturunkan sebagai private, dari kelas induknya, maka :
Bagian public yang terdapat pada kelas induk akan menjadi bagian private
pada kelas turunannya.
Bagian protected yang terdapat pada kelas induk akan menjadi bagian
private pada kelas turunannya.
Bagian private yang terdapat pada kelas induk tetap tidak dapat diakses oleh
kelas turunannya.
Program 12-3
#include <iostream>
using namespace std;
// Membuat kelas dasar dengan nama INDUK
class INDUK {
int X;
public:
void SetX(int XX) {
X = XX;
Nani Mintarsih

Page 29

Teknik Pemrograman Terstruktur 2/C++&OOP

}
int GetX() {
return X;
}
};
// Membuat kelas TURUNAN1 yang diturunkan sebagai public
// dari kelas INDUK
class TURUNAN1: public INDUK {
int Y;
public:
void SetY(int YY) {
Y = YY;
}
int GetY() {
return Y;
}
};
// Membuat kelas TURUNAN2 yang diturunkan sebagai public
// dari kelas TURUNAN1
class TURUNAN2: public TURUNAN1 {
int Z;
public:
void SetZ(int ZZ) {
Z = ZZ;
}
int GetZ() {
return Z;
}
};
// Fungsi utama
int main() {

Nani Mintarsih

Page 30

Teknik Pemrograman Terstruktur 2/C++&OOP

// Melakukan instansiasi terhadap kelas TURUNAN2


TURUNAN2 A;
// Melakukan pengesetan nilai X, Y dan Z melalui kelas TURUNAN2
A.SetX(20);
A.SetY(30);
A.SetZ(40);
// Menampilkan nilai X, Y dan Z melalui kelas TURUNAN2
cout<<"Nilai X yang dipanggil dari kelas TURUNAN2 : ";
cout<<A.GetX()<<endl;
cout<<"Nilai Y yang dipanggil dari kelas TURUNAN2 : ";
cout<<A.GetY()<<endl;
cout<<"Nilai Z yang dipanggil dari kelas TURUNAN2 : ";
cout<<A.GetZ()<<endl;
return 0;
}
Contoh Program Program 12-4

#include <iostream>
using namespace std;
// Membuat kelas dasar dengan nama INDUK
class INDUK {
int X;
public:
void SetX(int XX) {
X = XX;
}
int GetX() {
return X;
}
Nani Mintarsih

Page 31

Teknik Pemrograman Terstruktur 2/C++&OOP

};
// Membuat kelas TURUNAN1 yang diturunkan sebagai private
// dari kelas INDUK
class TURUNAN1: private INDUK {
int Y;
public:
void SetY(int YY) {
Y = YY;
}
int GetY() {
return Y;
}
};
// Membuat kelas TURUNAN2 yang diturunkan sebagai private
// dari kelas TURUNAN1
class TURUNAN2: private TURUNAN1 {
int Z;
public:
void SetZ(int ZZ) {
Z = ZZ;
}
int GetZ() {
return Z;
}
};
// Fungsi utama
int main() {
// Melakukan instansiasi terhadap kelas TURUNAN2
TURUNAN2 A;

Nani Mintarsih

Page 32

Teknik Pemrograman Terstruktur 2/C++&OOP

// Melakukan pengesetan nilai X, Y dan Z melalui kelas TURUNAN2


A.SetX(20);

// SALAH, tidak diizinkan oleh compiler

A.SetY(30);

// SALAH, tidak diizinkan oleh compiler

A.SetZ(40);

// Statemen di bawah ini SALAH, karena mengakses bagian private


cout<<"Nilai X yang dipanggil dari kelas TURUNAN2 : ";
cout<<A.GetX()<<endl;

// Statemen di bawah ini SALAH, karena mengakses bagian private


cout<<"Nilai Y yang dipanggil dari kelas TURUNAN2 : ";
cout<<A.GetY()<<endl;
cout<<"Nilai Z yang dipanggil dari kelas TURUNAN2 : ";
cout<<A.GetZ()<<endl;
return 0;
}
Multiple Inheritance
BU: Class nama_kelas_turunan :
hak akses nama_kelas_induk1,
hak akses nama_kelas_induk2,
hak akses nama_kelas_indukN
{
// data dan fungsi
};
Contoh Program 12-5
Nani Mintarsih

Page 33

Teknik Pemrograman Terstruktur 2/C++&OOP

#include <iostream>
using namespace std;
// Membuat kelas dengan nama INDUK1
class INDUK1 {
int X;
public:
void SetX(int XX) {
X = XX;
}
int GetX() {
return X;
}
};
// Membuat kelas dengan nama INDUK2 yang tidak berkaitan
// dengan kelas INDUK1
class INDUK2 {
int Y;
public:
void SetY(int YY) {
Y = YY;
}
int GetY() {
return Y;
}
};
// Membuat kelas TURUNAN yang merupakan turunan
// dari kelas INDUK1 dan INDUK2
class TURUNAN: public INDUK1, public INDUK2 {
int Z;
public:
void SetZ(int ZZ) {
Z = ZZ;
}
Nani Mintarsih

Page 34

Teknik Pemrograman Terstruktur 2/C++&OOP

int GetZ() {
return ZZ;
}
};
// Fungsi utama
int main() {
// Melakukan instansiasi terhadap kelas TURUNAN
TURUNAN A;
// Memanggil fungsi-fungsi yang terdapat pada kelas TURUNAN
A.SetX(100);
A.SetY(200);
A.SetZ(300);
// Menampikan nilai yang telah diset
cout<<"Nilai X : "<<A.GetX()<<endl;
cout<<"Nilai Y : "<<A.GetY()<<endl;
cout<<"Nilai Z : "<<A.GetZ();
return 0;
}
Hasil
Nilai X
Nilai Y
Nilai Z

:100
: 200
: 300

Constructor pada Proses Penurunan Kelas

Contoh Program 12-6


#include <iostream>
using namespace std;

Nani Mintarsih

Page 35

Teknik Pemrograman Terstruktur 2/C++&OOP

class INDUK {
int X;
public:
// Constructor pada kelas INDUK
INDUK(int XX) {
X = XX;
cout<<"Constructor kelas INDUK"<<endl;
}
// Membuat fungsi GetX
int GetX() {
return X;
}
};
class TURUNAN: public INDUK {
int Y;
public:
// Constructor pada kelas TURUNAN
TURUNAN(int XX, int YY): INDUK(XX) {
Y = YY;
cout<<"Constructor kelas TURUNAN"<<endl;
}
// Membuat fungsi GetY
int GetY() {
return Y;
}
};
// Fungsi utama
int main() {
// Melakukan instansiasi terhadap kelas TURUNAN
TURUNAN A(10, 20);
// Melakukan pemanggilan fungsi melalui objek A
Nani Mintarsih

Page 36

Teknik Pemrograman Terstruktur 2/C++&OOP

cout<<"Nilai X : "<<A.GetX()<<endl;
cout<<"Nilai Y : "<<A.GetY();
return 0;
}
Hasil
Construktor kelas INDUK
Construktor kelas TURUNAN
Nilai X : 10
Nilai Y : 20
Cntoh Program 12-7
#include <iostream>
using namespace std;
// Membuat kelas INDUK1
class INDUK1 {
int X;
public:
// Constructor pada kelas INDUK1
INDUK1(int XX) {
X = XX;
cout<<"Constructor kelas INDUK1"<<endl;
}
// Membuat fungsi GetX
int GetX() {
return X;
}
};
// Membuat kelas INDUK2
class INDUK2 {
int Y;
public:
// Constructor pada kelas INDUK2
Nani Mintarsih

Page 37

Teknik Pemrograman Terstruktur 2/C++&OOP

INDUK2(int YY) {
Y = YY;
cout<<"Constructor kelas INDUK2"<<endl;
}
// Membuat fungsi GetY
int GetY() {
return Y;
}
};
// Membuat kelas TURUNAN
// yang diturunkan dri kelas INDUK1 dan INDUK2
class TURUNAN: public INDUK1, public INDUK2 {
int Z;
public:
// Constructor pada kelas TURUNAN
TURUNAN(int XX, int YY, int ZZ): INDUK1(XX), INDUK2(YY) {
Z = ZZ;
cout<<"Constructor kelas TURUNAN"<<endl;
}
// Membuat fungsi GetZ
int GetZ() {
return Z;
}
};
// Fungsi utama
int main() {
// Melakukan instansiasi terhadap kelas TURUNAN
TURUNAN A(10, 20, 30);
// Melakukan pemanggilan fungsi melalui objek A
Nani Mintarsih

Page 38

Teknik Pemrograman Terstruktur 2/C++&OOP

cout<<"Nilai X : "<<A.GetX()<<endl;
cout<<"Nilai Y : "<<A.GetY()<<endl;
cout<<"Nilai Z : "<<A.GetZ();
return 0;
}
Hasil :
Construktor kelas INDUK1
Construktor kelas INDUK2
Construktor Kelas TURUNAN
Nilai X : 10
Nilai Y : 20
Nilai Z : 30

VIRTUAL

DAN

POLIMORFISME

Fungsi Virtual
Adalah fungsi yang mendukung adanya polymorphic function, artinya fungsi tersebut
daat di definisikan ulang kelas-kelas turunannya,
Contoh program
class MANUSIA {
char* nama;
int tinggi;
int berat;
public:
Nani Mintarsih

Page 39

Teknik Pemrograman Terstruktur 2/C++&OOP

void SetNama(char* N) {
nama = N;
}
void SetTinggi(int T) {
tinggi = T;
}
void SetBerat(int B) {
berat = B;
}
char* GetNama() {
return nama;
}
int GetTinggi() {
return tinggi;
}
int GetBerat() {
return berat;
}
// Membuat fungsi virtual
virtual void Berjalan() {
cout<<"Berjalan"<<endl;
}
virtual void Berpakaian() {
cout<<"Berpakaian"<<endl;
}
};
Ket : fungsi Berjalan() dan Berpakaian() adalah fungsi virtual

Override
#include <iostream>
using namespace std;
Nani Mintarsih

Page 40

Teknik Pemrograman Terstruktur 2/C++&OOP

class MANUSIA {
char* nama;
int tinggi;
int berat;
public:
void SetNama(char* N) {
nama = N;
}
void SetTinggi(int T) {
tinggi = T;
}
void SetBerat(int B) {
berat = B;
}
char* GetNama() {
return nama;
}
int GetTinggi() {
return tinggi;
}
int GetBerat() {
return berat;
}
// Membuat fungsi virtual
virtual void Berjalan() {
cout<<"Berjalan"<<endl;
}
virtual void Berpakaian() {
cout<<"Berpakaian"<<endl;
}
};
class MAHASISWA: public MANUSIA {
char* universitas;
Nani Mintarsih

Page 41

Teknik Pemrograman Terstruktur 2/C++&OOP

char* jurusan;
int semester;
public:
void SetUniversitas(char* U) {
universitas = U;
}
void SetJurusan(char* J) {
jurusan = J;
}
void SetSemester(int smt) {
semester = smt;
}
char* GetUniversitas() {
return universitas;
}
char* GetJurusan() {
return jurusan;
}
int GetSemester() {
return semester;
}
// Melakukan override terhadap fungsi Berjalan
void Berjalan() {
cout<<"Berjalan dengan cara SANTAI"<<endl;
}
// Melakukan override terhadap fungsi Berpakaian
void Berpakaian() {
cout<<"Berpakaian dengan baju BEBAS"<<endl;
}
};
class TENTARA: public MANUSIA {
char* pangkat;
char* kesatuan;
public:
Nani Mintarsih

Page 42

Teknik Pemrograman Terstruktur 2/C++&OOP

void SetPangkat(char* pkt) {


pangkat = pkt;
}
void SetKesatuan(char* kstn) {
kesatuan = kstn;
}
char* GetPangkat() {
return pangkat;
}
char* GetKesatuan() {
return kesatuan;
}
// Melakukan override terhadap fungsi Berjalan
void Berjalan() {
cout<<"Berjalan dengan cara TEGAP"<<endl;
}
// Melakukan override terhadap fungsi Berpakaian
void Berpakaian() {
cout<<"Berpakaian dengan baju SERAGAM"<<endl;
}
};
// Fungsi utama
int main() {
// Melakukan instansiasi terhadap kelas MANUSIA
MANUSIA M;
// Melakukan instansiasi terhadap kelas MAHASISWA
MAHASISWA MHS;
// Melakukan instansiasi terhadap kelas TENTARA
TENTARA TTR;
// Memanggil fungsi Berjalan dari masing-masing kelas
Nani Mintarsih

Page 43

Teknik Pemrograman Terstruktur 2/C++&OOP

M.Berjalan();
MHS.Berjalan();
TTR.Berjalan();
cout<<'\n';
// Memanggil fungsi Berpakaian dari masing-masing kelas
M.Berpakaian();
MHS. Berpakaian ();
TTR. Berpakaian ();
return 0;
}
Hasil
Berjalan
Berjalan dengan cara SANTAI
Berjalan dengan cara TEGAP
Berpakaian
Berpakaian dengan baju BEBAS
Berpakaian dengan baju SERAGAM

Nani Mintarsih

Page 44

Teknik Pemrograman Terstruktur 2/C++&OOP

PREPROCESSOR DIRECTIVE
Dalam C++, terdapat berbagai macam perintah ke compiler melalui preprocessor
directive , yaitu perintah yang diawali dengan tanda pound (#). Perlu diperhatikan
bahwa sebuah perintah yang memggunakan preprocessor directive harus diletakkan
dalam satu baris tersendiri.Adapaun beberapa directive ysng terdapat dalam C+
+adalah sebagai berikut :
Directive #include
Digunakan untuk memasukkan file header ke dalam kode program yang kita
tuliskan.
Contoh :
#include <iostream>
#include <cstdlib>

Directive #define
Digunakan untuk mendifinisikan sebuah makro indentifier ke dalam sebuah
program. Prinsip dasar dari cara kerja #define ini menggantikan makro identifier
tersebut dengan sebuah nilai yang kita definisikan di belakangnya.
Contoh:
Nani Mintarsih

Page 45

Teknik Pemrograman Terstruktur 2/C++&OOP

#define TEST 10
Contoh Program 15.1
#include <iostream>
#define TEST 10
using namespace std;
int main() {
// berarti hasil = (10 * 10) + 10
int hasil = (TEST * TEST) + TEST;
cout<<"Hasilnya : "<<hasil;
return 0;
}

Hasilnya : 110
Contoh Program 15.2
#include <iostream>
#define TEKS "Saya sangat menyukai C++"
using namespace std;
int main() {
cout<<TEKS;
return 0;
}
Hasil
Saya sangat menyukai C++

Membuat Makro Fungsi dengan Directive #define

Nani Mintarsih

Page 46

Teknik Pemrograman Terstruktur 2/C++&OOP

Sebuah makro fungsi hanya terdiri dari satu baris perintah dan cara kerjanya sama
dengan sebuah fungsi inline, yaitu melakukan penyalinan perintah yang terdapat
pada baris tersebut ke dalam baris tertentu di dalam kode program
Contoh :
#define F(x) ( (x*x) + (2*x) + 1
#define ABS(y) (y)<0 ? (y) : (y)
Contoh Program 15.3
#include <iostream>
// Mendefinsikan fungsi F(x) = x2 + 2x + 1
#define F(x) ((x*x) + (2*x) + 1)
// Mendefinsikan fungsi untuk menentukan harga mutlak
// dari sebuah bilangan
#define ABS(y) (y)<0 ? -(y) : (y)
using namespace std;
int main() {
// Mendeklarasikan varaibel a dan b yang bertipe int
int a = 10, b = 5;
// Mendeklarasikan variabel c yang bertipe double
double c = -4.56;
// Memanggil fungsi makro dan menampilkan hasilnya ke layar
cout<<"F("<<a<<")
: "<<F(a)<<endl;
cout<<"ABS("<<b<<")
: "<<ABS(b)<<endl;
cout<<"ABS("<<c<<")
: "<<ABS(c)<<endl;

return 0;

F(10)
ABS(5)
ABS

:121
:5
:4.56

Contoh Program 15.4


Nani Mintarsih

Page 47

Teknik Pemrograman Terstruktur 2/C++&OOP

#include <iostream>
// Mendefinsikan fungsi untuk menghitung x3
#define F(x) x * x * x
using namespace std;
int main() {
cout<<F(5);
return 0;
}
Hasil :
125
Contoh Program 15.5
#include <iostream>
// Mendefinsikan fungsi untuk menghitung x3
#define F(x) (x) * (x) * (x)
using namespace std;
int main() {
cout<<F(5);

return 0;

Hasil :
5*5*5

Pemilihan dengan Menggunakan Directive #if


1.

Untuk satu buah kondisi


BU : #if kondisi

Nani Mintarsih

Page 48

Teknik Pemrograman Terstruktur 2/C++&OOP

Statemen yang akan dilakukan;


..
#endif
Contoh Program 15.6
#include <iostream>
#define X 200
using namespace std;
// Fungsi utama
int main() {
// Melakukan pengecekan
#if X > 100
cout<<X<<" lebih besar dari 100";
#endif
return 0;
}
200 lebih besar dari 100
2. Untuk dua buah kondisi
BU : #if kondisi
Statement yang akan dilakukan jika kondisi terpenuhi;
#else
Statement yang akan dilakukan jika kondisi tidak terpenuhi;
#endif
Contoh Program 15.7
#include <iostream>
#define X 80
using namespace std;
// Fungsi utama
int main() {
Nani Mintarsih

Page 49

Teknik Pemrograman Terstruktur 2/C++&OOP

// Melakukan pengecekan
#if X > 100
cout<<X<<" lebih besar dari 100";
#else
cout<<X<<" lebih kecil dari 100";
#endif

return 0;

Hasil:
80 lebih kecil dari 100
3.

Untuk kondisi lebih dari dua


BU : #if kondisi1
Statement1;

#elif kondisi2
Statement2;

#elif kondisiN
Statement3;

#else
Statement_terakhir;

#endif
Contoh Program 15.8
#include <iostream>
#define X 100
using namespace std;
// Fungsi utama
int main() {
// Melakukan pengecekan

Nani Mintarsih

Page 50

Teknik Pemrograman Terstruktur 2/C++&OOP

#if X > 100


cout<<X<<" lebih besar dari 100";
#elif X = 100
cout<<" Nilai yang didefinisikan adalah 100";
#else
cout<<X<<" lebih kecil dari 100";
#endif

return 0;

Nilai yang didefinisikan adalah 100

Pemilihan dengan Menggunakan Directive #ifdef


Digunakan untuk pengecekan apakah makro sudah di definisikan apa belum.
Statement di akhiri oleh #endif.
Contoh Program 15.9
#include <iostream>
#define X 200
using namespace std;
int main() {
// Melakukan pengecekan dengan directive #ifdef
#ifdef X
cout<<"X telah didefinsikan"<<endl;
#else
cout<<"X belum didefinsikan"<<endl;
#endif
return 0;
}
Atau

Contoh Program 15.10


#include <iostream>
Nani Mintarsih

Page 51

Teknik Pemrograman Terstruktur 2/C++&OOP

#define X 200
using namespace std;
int main() {
// Melakukan pengecekan dengan #if defined
#if defined X
cout<<"X telah didefinsikan"<<endl;
#else
cout<<"X belum didefinsikan"<<endl;
#endif

return 0;

Hasil :
X telah didefinikan

Contoh Program 15.11


#include <isotream>
using namespace std;
int main() {
// Melakukan pengecekan dengan #ifdef
#ifdef X
cout<<"X telah didefinsikan"<<endl;
#else
cout<<"X belum didefinsikan"<<endl;
#endif
return 0;
}

Nani Mintarsih

Page 52

Teknik Pemrograman Terstruktur 2/C++&OOP

Hasil:
X belum didefinisikan
Contoh Program 15.12
#include <iostream>
using namespace std;
int main() {
#ifdef X
cout<<"X telah didefinsikan"<<endl;
#else
cout<<"Mendefinisikan X"<<endl;
#define X 500
#endif
cout<<"X = ";
return 0;
}
Hasil :
Mendefinisikan X
X = 50

Pemilihan dengan Menggunakan Directive #ifndef


Cara kerja #ifndef merupakan kebalikan dari #ifdef
Contoh Program 15.13
#include <iostream>
using namespace std;
int main() {
#ifndef X
// bisa dituliskan dengan #if !defined
cout<<"X belum didefinisikan"<<endl;
Nani Mintarsih

Page 53

Teknik Pemrograman Terstruktur 2/C++&OOP

#else
cout<<"X telah didefinisikan"<<endl;
#endif

return 0;

Hasil :
Xbelum didefinisikan
Contoh Program 15.14
#include <iostream>
using namespace std;
int main() {
#ifndef X
cout<<"X belum didefinisikan"<<endl;
#define X 32 // Mendefinisikan X
cout<<"Sekarang X telah didefinisikan"<<endl;
#else
cout<<"X telah didefinisikan"<<endl;
#endif
cout<<"X = "<<X<<endl;
return 0;
}
Hasil:
X belum didefinisikan
Sekarang X telah didefinisikan
X=32

Directive #undef
Berguna umtuk menghapus makro yang telah didefinisikan sebelumnya. Ini berguna
jika ingin melakukan perubahan nilai dari makro tersebut. #undef kebalikan dai
#define.
Contoh Program 15.5

Nani Mintarsih

Page 54

Teknik Pemrograman Terstruktur 2/C++&OOP

#include <iostream>
#define X 154
using namespace std;
int main() {
cout<<X<<endl;
#undef X

// Menghapus definisi makro X

cout<<X<<endl;
lagi

// SALAH,karena definisi X sudah tidak ada

return 0;
}
Contoh Program 15.16
#include <iostream>
#define X 154
using namespace std;
int main() {
#ifdef X
cout<<"X telah didefinisikan"<<endl;
cout<<"X = "<<X<<endl;
#else
cout<<"X belum didefinisikan"<<endl;
#endif
#undef X// Mengapus definisi makro X
#ifndef X
cout<<"Sekarang X tidak didefinisikan lagi"<<endl;
#else
Nani Mintarsih

Page 55

Teknik Pemrograman Terstruktur 2/C++&OOP

cout<<"X masih terdefinsi"<<endl;


#endif
return 0;
}
Hasil:
X telah didefinisikan
X=154
Sekarang X tidak didefinisikan lagi

Directive #error
Digunakan untuk menghentikan proses kompilasi dan selanjutnya menampilkan
pesan kesalahan
BU :
#error pesan_kesalahan
Contoh Program 15.17
#include <iostream>
#define X -10
using namespace std;
int main()
#if X == -10
#error X tidak boleh bernilai negatif
#endif
return 0;
}
Hasil :
X tidak boleh bernilai negatif

Nani Mintarsih

Page 56

Teknik Pemrograman Terstruktur 2/C++&OOP

Latihan Soal :

1.

Yang termasuk syarat pembuatan variable dalam C++ adalah, kecuali :


a. case sensitive

2.

c. .c

d. cpp

b. 5

c. 5

d. 5.00

b. 5

c. 5

d. 5.00

b. 5

c. 5

d. 5.00

b. 5

c. 5

d. 5.00

b. float

c. benar semua

d. salah semua

b. float

c. benar semua

d. salah semua

Memberikan nilai awal dari terhadap suatu dari variabel adalah pengertian dari :
a. pointer

12.

b.. turbo

Untuk pembagian campuran, yaitu bila pembilang atau penyebut atau kedua duanya merupakan float,
maka hasilnya akan menjadi .
a. integer

11.

d. link

Untuk pembagian integer, yaitu bila pembilang dan penyebut kedua duanya berbentuk integer maka
hasilnya akan :
a. integer

10.

c. paste

Yang termasuk sebagai variabel string sbb


a. lima

9.

b. running

Yang termasuk sebagai variabel character sbb


a. lima

8.

d. semua benar

Yang termasuk sebagai variabel float sbb


a. lima

7.

c. double precision

Yang termasuk sebagai variabel integer sbb :


a. lima

6..

b. floating point

Extention pada source program C++ adalah :


a. .pas

5..

d. sesuai kebutuhan

Proses menterjemahkan C++ hingga menjadi bahasa yang dikenal oleh mesin di sebut :
a. compiler

4.

c. diawali angka

Variabel numeric yang terdapat pada C++, adalah yang di bawah ini, kecuali
a. integer

3.

b. tidak ada spasi

b. looping

c. inisialisasi

d. salah semua

1. dideklarasiakan di dalam fungsi

Nani Mintarsih

Page 57

Teknik Pemrograman Terstruktur 2/C++&OOP

2. Hanya dapat dipanggil oleh fungsi yang sangkutan


3. Setiap dipanggil selalu teralokasi ke niali semula
Instruksi di atas adalah cirri dari :
a. variabel global
13.

c. :=

d. +=

b. if..else

c. else ..if

d. do while

b. ke2

c. dua#2

d. salah semua

b. @nilai

c. $nilai

d.&nilai

b. ke_2

c. nilai+tugas

d. salah semua

c. tgl22

d. semua benar

c. start()

d. end

Di bawah ini termasuk penulisan variabel yang salah :


a. char

20.

b. ==

Di bawah ini termasuk penulisan variabel yang salah :


a. no1

19.

d. \r

Di bawah ini termasuk penulisan variabel yang benar :


a. _nilai

18..

c. \n

Di bawah ini termasuk penulisan variabel yang benar :


a. 2tahun

17.

b. \f

Dibawah ini termasuk kondisi percabangan pada C++, kecuali :


a. if

16.

d. semua benar

Pemberian nial awal pada program C++ ,maka operator yang di guanakan adalah :
a. =

15

c. variabel statis

Perintah Escape Sequences yang digunakan membentuk baris baru adalah :


a. \b

14.

b. variabel lokal

b. fungsi_printf

Dalam memulai program C digunakan suatu fungsi :


a. begin()

b. main()

Program ini untuk no. 21 sd 23


Include <iostream.h>
main()
{
int a1 = 10, a2, a3, a4;
Nani Mintarsih

Page 58

Teknik Pemrograman Terstruktur 2/C++&OOP

float b1 =1.5 ;

a2= a1/b1+2.75;
a3=45/a1+3;
a4=45.0/a1+3;

cout << a2 :<<a2 <<endl;


cout << a3 :<<a3 <<endl;
cout << a4 :<<a4 <<endl;
}
21.

Output untuk variabel a2 adalah :


a.9

22..

b. 7

c. 8

d. 10

c. 8

d. 10

c. 8

d. 10

Output untuk variabel a3 adalah :


a.9

23.

b. 7

Output untuk variabel a4 adalah :


a.9

b. 7

Program untuk no 24 sd 28
Include <iostream.h>
main()
{
int bil =5;
cout << ++bil <<endl; ..(a)
cout << bil <<endl; ...(b)
bil+=2;
cout << ++bil <<endl; ..(c)
cout << ++bil <<endl; ..(d)
bil*=2;
Nani Mintarsih

Page 59

Teknik Pemrograman Terstruktur 2/C++&OOP

bil-=6;
cout << --bil <<endl; ..(e)}
24..

Output variabel bil pada abjad (a) pada program diatas adalah :
a. 6

25.

d. 14

b. 9

c. 10

d. 14

b. for

c. if

d. salah semua

b. if..else

c. else..if

d. salah semua

b. >=

c. !

d. salah semua

b. +=

c. &&

d. salah semua

b. else if

c. semua salah

d. semua benar

b.while(0)

c. while( )

d. semua benar

Pernyataan yang berfungsi untuk menghentikan dan keluar dari loop adalah :
a. break

36

c. 10

Bentuk perulangan yang disebut sebagai perulangan tiada akhir adalah :


a.While(1)

35

b. 9

Yang termasuk sebagai statement percabangan bersyarat adalah :


a. if else

34.

d. 14

Dibawah ini yang termasuk operator logika :


a. ==

33..

c. 10

Di bawah ini yang termasuk operator relasi, kecuali :


a. ==

32.

b. 9

Bila pada proses percabangan ada lebih dari 2 kondisi bersyarat di guna kan :
a. if

31..

d. 14

Untuk mengulang proses yang belum diketahuai jumalang perulangannya, digunakan:


a. while

30.

c. 10

Output variabel bil pada abjad (e) pada program diatas adalah :
a. 6

29..

b. 9

Output variabel bil pada abjad (d) pada program diatas adalah :
a. 6

28.

d. 14

Output variabel bil pada abjad (c) pada program diatas adalah :
a. 6

27..

c. 10

Output variabel bil pada abjad (b) pada program diatas adalah :
a. 6

26.

b. 9

b. continue

c. quit

d. close

Perintah yang di gunakan untuk menciptakan baris baru, digunakan :

Nani Mintarsih

Page 60

Teknik Pemrograman Terstruktur 2/C++&OOP

a. \n
37.

b. pointer

c. alamat memori

d. var konstanta

b. *p=x

c. p=&x

d. semua benar

Sebuah variable yang terdiri atas beberapa elemen yang memiliki jenis data yang sama disebut
a. Record

40.

d. benar semua

Untuk menentukan suatu pointer (p ) menunjuk ke suatu variabel x, maka :


a. int p : int x:

39.

c. salah semua

Suatu variabel yang menyimpan alamat memori (variabel yang di tunjuk). Definisi tersebut adalah
pengertian:
a. reference

38..

b. endl

b. string

c. array

d. salah semua

Kejadian dimana terdapat memory yang terbuang / kebocorn memory disebut :


a. memory empty

b. overload memory

c. memory leak

d. read memory

Referensi
Abdul Kadir, Pemrograman C++ Membahas Pemrograman Berorientasi Objek
Menggunakan Turbo C++ dan Borland C++, Andi Yogyakarta ,2003
Budi Raharjo, Pemrograman C++, INFORMATIKA 2007

Nani Mintarsih

Page 61

Anda mungkin juga menyukai