BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

60
BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN TERSTRUKTUR 2 Oleh Margi Cahyanti UNIVERSITAS GUNADARMA JAKARTA ATA 2019/2020

Transcript of BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

Page 1: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

BAHAN AJAR MATA KULIAH

TEKNIK PEMROGRAMAN TERSTRUKTUR 2

Oleh

Margi Cahyanti

UNIVERSITAS GUNADARMA

JAKARTA

ATA 2019/2020

Page 2: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

i

DAFTAR ISI

Halaman

KATA PENGANTAR ..................................................................................... i

DAFTAR ISI .................................................................................................... ii

BAB I PENGENALAN C++ .......................................................................... 1

BAB 2 FUNGSI MANIPULATOR PADA C++ ............................................ 2

BAB 3 PERCABANGAN KONDISI IF BAHASA C++ ............................... 6

BAB 4 PERULANGAN FOR, WHILE & DO WHILE BAHASA C++ ....... 14

BAB 5 ARRAY .............................................................................................. 23

BAB 6 POINTER PADA C++........................................................................ 28

BAB 7 FUNCTION ........................................................................................ 31

BAB 8 STRUKTUR C++ ............................................................................... 45

BAB 9 OBJECT ORIENTED PROGRAMMING ......................................... 49

DAFTAR PUSTAKA ...................................................................................... 57

Page 3: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

vi

KATA PENGANTAR

Segala puji serta syukur penulis panjatkan kehadirat Allah SWT, atas segala rahmat

dan limpahan anugerah serta keridhoan-Nya yang telah memungkinkan bagi penulis untuk

menyelesaikan tesis ini.

Adapun maksud dan tujuan dari pembuatan modul ini untuk melengkapi bahan ajar

mata kuliah ‘Teknik Pemrograman Terstruktur 2’.

Saya berharap, semoga modul ini dapat memberikan manfaat dan memberikan

pengetahuan lebih bagi para Civitas Universitas Gunadarma. Akhir kata, semoga Allah SWT

membalas segala kebaikan.

Page 4: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

1

BAB I

PENGENALAN BAHASA PEMROGRAMAN C++

Bahasa Pemrograman C++ adalah bahasa Pemrograman Komputer Tingkat Tinggi (High Level

Language), tapi C++ juga dimungkinkan untuk menulis Bahasa Pemrograman Tinggkat

Rendah (Low Level Language) di dalam pengkodingan.

karena C++ merupakan peluasan dari Bahasa Pemrograman C yang tergolong dalam Bahasa

Pemrograman Tingat Menengah (Middle Level Language), yang berarti Bahasa Pemrograman

C++ memiliki semua fitur dan kelebihan yang bahasa pemrograman C miliki, termasuk

kelebihan Bahasa C yaitu kita dimungkinkan untuk menggunakan Bahasa Pemrograman

Assembly di dalam pengkodingan C, dan juga menyediakan fasilitas untuk memanipulasi

memori tingkat rendah.

C++ adalah peluasan dan penyempurnaan dari bahasa pemrograman sebelumnya yaitu bahasa

C, oleh Bjarne Stroustrup pada tahun 1980. Awal C++ mempunyai nama yaitu “C with

Classes” dan berganti nama menjadi C++ pada tahun 1983. Bjarne Stroustrup membuat bahasa

pemrograman C++ dengan tambahan fasilitas, yang sangat berguna pada tahun itu sampai

sekarang, yaitu bahasa pemrograman yang mendukung OOP (Object Oriented Programming).

C++ dirancang sebagai bias terhadap sistem pemrograman dan embedded sistem, dengan

mengutamakan kinerja, kecepatan, efisiensi dan fleksibilitas penggunaan. C++ telah dan sangat

berguna dalam banyak hal, seperti pembuatan aplikasi desktop, server dan performance-

critical (misalnya switch telepon dan pesawat luar angkasa).

Fitur-fitur C ++

• Merupakan salah satu bahasa pemrograman yang paling banyak digunakan di dunia dan

hampir semua program di dunia dibuat dengan menggunakan C/C++.

• Portable. Karena memiliki banyak kompiler yang berjalan di berbagai platform dan

secara eksklusif menggunakan Standar Library C++ yang akan berjalan pada

banyak platform dengan tidak adanya perubahan fungsi-fungsi pada Library C++.

• Mendukung Manifest dan Inferred Typing. Fitur tersebut sudah ada semenjak kelahiran

C++ pertama hingga C++ Modern saat ini, C ++ memungkinkan fleksibilitas dan juga

menyediakan kesederhanaan dalam menulis program.

• C++ Menawarkan banyak pilihan paradigma. Beberapa adalah paradigm yang sangat

terkenal dalam C++ adalah menawarkan dukungan luar biasa untuk Pemrograman

Prosedural, Generik, Berorientasi Objek (OOP) dan masih banyak paradigm yang

memberikan kemudahan untuk programmer C++.

• Memiliki dukungan Library yang luar biasa. C++ memiliki Standar Library C++ yang

memiliki banyak sekali fungsi dan tidak hanya itu, banyak juga programmer lain yang

mengembangkan C++ dan membuat Library tambahan yang sangat berguna.

• Bahasa yang dikompilasi. C ++ mengkompilasi langsung ke bahasa mesin, yang

menjadikanya menjadi salah satu bahasa pemrograman tercepat di dunia.

Page 5: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

2

BAB II

FUNGSI MANIPULATOR PADA C++

PENGERTIAN MANIPULATOR

Manipulator adalah fungsi pembantu yang memungkinkan untuk mengontrol input / output

stream. Manipulator pada umumnya digunakan untuk mengatur tampilan layar. Contohnya

untuk mengatur supaya suatu nilai ditampilkan dengan lebar 8 karakter dan diatur rata kiri

terhadap lebar tersebut.

Dalam C++, terdapat beberapa manipulator yang merupakan fitur baru, yang baru

ditambahkan. hal ini karena compiler C++ klasik (belum distandarisasi) tidak mendukung

adanya manipulator.

JENIS-JENIS MANIPULATOR C++, LENGKAP CONTOH PROGRAM

1. endl

endl adalah sebuah fungsi manipulator yang berguna untuk memasukkan karakter NewLine

atau mengatur pindah baris, dengan kata lain fungsi manipulator ini serupa dengan "\n". Fungsi

endl sangat dibutuhkan untuk piranti keluaran berupa file di disk. Untuk menggunakan

manipulator ini, kita harus menyertakan file header <iostream>

2. ends

ends adalah sebuah fungsi manipulator yang berguna untuk menambah karakter null (nilai

ASCII NOL) kederetan suatu karakter. Fungsi seperti ini seringkali diperlukan, misalnya untuk

mengirim sejumlah karakter ke file di disk atau modem dan mengakhirinya dengan karakter

NULL. Untuk menggunakan manipulator ini, kita harus menyertakan file header <iostream>

Contoh :

cout<<'M'<<'D'<<ends;

Pernyataan di atas mengirimkan 2 buah karakter (M dan D) serta sebuah karakter null. Pada

layar, ends akan menimbulkan sebuah karakter kosong. #include <iostream>

using namespace std;

int main ()

{

int nilai1=100, nilai2=80;

int jumlah = nilai1 + nilai2;

cout<<"Nilai 1 : "<<nilai1<<".";

cout<<"\nNilai 2 : "<<nilai2<<ends<<ends<<".";

cout<<"\n\nJumlah Kedua Nilai : "<<jumlah;

return 0;

}

3. setw( )

setw( ) adalah sebuah fungsi manipulator yang berguna untuk mengatur lebar dari suatu

tampilan data. Seandainya kita akan menggunakan manipulator ini, kita harus menyertakan file

header <iomanip>. Bentuk umum penulisan setw() adalah sebgai berikut:

setw(int n);

Page 6: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

3

n = adalah nilai lebar tampilan data, yang bernilai integer.

Untuk lebih jelasnya, fungsi manipulator setw() dapat dilihat pada program dibawah ini: #include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

int jumbar1 = 1300, jumbar2 = 80, jumbar3 = 520;

cout<<"Barang 1 = "<<setw(8)<<jumbar1<<endl;

cout<<"Barang 2 = "<<setw(8)<<jumbar2<<endl;

cout<<"Barang 3 = "<<setw(4)<<jumbar3<<endl;

return 0;

}

4. dec( ), oct( ) dan hex( )

dec, oct dan hex adalah sebuah fungsi manipulator yang berguna untuk memunculkan data

dalam bentuk hexadesimal (bilangan berbasis 16), oktal (bilangan berbasis 8) dan desimal

(bilangan berbasis 10). Seandainya kita akan menggunakan manipulator ini, sobat harus

menyertakan file header <iomanip>.

#include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

int nilai = 500;

cout<<"Nilai Awal= "<<nilai<<endl<<endl;

cout<<"Nilai ke Desimal = "<<dec<<nilai<<endl;

cout<<"Nilai ke Oktal = "<<oct<<nilai<<endl;

cout<<"Nilai ke Hexadesimal = "<<hex<<nilai<<endl;

return 0;

}

5. setbase( )

setbase( ) adalah sebuah fungsi manipulator yang berguna untuk konversi bilangan desimal,

oktal dan hexadesimal. Seandainya kita akan menggunakan manipulator setbase(), sobat

harus menyertakan file header <iomanip>. Bentuk penulisannya setbase() adalah sebgai

berikut:

setbase(base bilangan); #include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

int MD;

cout<<"Penerapan Manipulator setbase()"<<"\n\n";

cout<<"Desimal Oktal Hexadesimal"<<endl;

cout<<"----------------------------"<<"\n";

for(MD=180;MD<=190;MD++){

cout<<setbase(10)<<MD<<" ";

cout<<setbase(8)<<MD<<" ";

cout<<setbase(16)<<MD<<endl;

}

return 0;

}

Page 7: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

4

6. setfill( )

setfill( ) adalah sebuah fungsi manipulator yang berguna untuk menampilkan suatu karakter

yang diletakkan didepan nilai yang diatur oleh fungsi setfill(). Untuk menggunakan

manipulator setfill(), kita harus menyertakan file header <iomanip>. Bentuk penulisannya

setfill() adalah sebgai berikut:

setfill(charakter); #include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

int MD;

cout<<"Penggunan Manipulator setfill()"<<"\n\n";

for(MD=1;MD<=15;MD++)

{

cout<<setfill('*');

cout<<setw(MD)<<MD<<endl;

}

return 0;

}

7. setprecision( )

setprecision( ) adalah sebuah fungsi manipulator yang berguna untuk mengatur jumlah digit

desimal yang ingin ditampilkan. biasanya setprecision() digunakan jika sobat bekerja dengan

menggunakan bilangan pecahan, dengan setprecision() kita dapat mengatur jumah digit

pecahan yang ingin ditampilkan, Untuk menggunakan manipulator setprecision(), kita harus

menyertakan file header <iomanip>

#include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

float M,D,MD;

M = 12.34;

D = 38.56;

MD = M * D;

cout<<setiosflags(ios::fixed);

cout<<setprecision(0)<<MD<<endl;

cout<<setprecision(2)<<MD<<endl;

cout<<setprecision(4)<<MD<<endl;

cout<<setprecision(6)<<MD<<endl;

cout<<setprecision(8)<<MD<<endl;

return 0;

}

8. setiosflags( )

setiosflags( ) adalah sebuah fungsi manipulator yang dipakai untuk mengatur berbagai format

keluaran data, Untuk menggunakan manipulator setiosflags(), sobat harus menyertakan file

header <iomanip>. Terdapat berbagai format keluaran (outout) untuk fungsi setiosflags(),

diantaranya adalah sebagai berikut:

Tabel Tanda format untuk menampilkan setiosflags() dan resetiosflags()

Page 8: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

5

Tanda Format Keterangan

ios::right Menyetel rata kanan pada lebar field yang diatur melalui

setw()

ios::left Menyetel rata kiri pada lebar field yang diatur melalui

setw()

ios::fixed Memformat keluaran dalam bentuk notasi desimal

ios::scientific Memformat keluaran pada notasi eksponensial

ios::oct Memformat keluaran pada basis 8 (oktal)

ios::hex Memformat keluaran pada basis 16 (heksadesimal)

ios::dec Memformat keluaran pada basis 10 (desimal)

ios::uppercase Memformat huruf dalam notasi heksadesimal pada

bentuk huruf kapital

ios::showpoint Menampilkan titik desimal dalam bilangan pecahan yang

tidak mempunyai bagian pecahan

ios::showbase Menampilkan awalan 0x bagi bilangan heksadesimal

atau 0 (nol) bagi bilangan oktal

ios::showpos Untuk menampilkan tanda + pada bilangan positif

Untuk lebih jelasnya, fungsi manipulator setiosflags( ) yang menggunakan tanda format

ios::left dan ios::right dapat dilihat pada contoh program dibawah ini: #include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

int M = 20, D = 35;

// Contoh fungsi manipulator setiosflags()

cout<<"\nPenggunaan ios::left dan ios::right\n";

cout<<"\nRata Sebelah Kiri = ";

cout<<setiosflags(ios::left)<<setw(8)<<M;

cout<<setiosflags(ios::left)<<setw(8)<<D;

cout<<"\nRata Sebelah Kanan = ";

cout<<setiosflags(ios::right)<<setw(8)<<M;

cout<<setiosflags(ios::right)<<setw(8)<<D;

return 0;

}

Page 9: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

6

BAB III

PERCABANGAN KONDISI IF ELSE BAHASA C++

PENGERTIAN KONDISI IF ELSE BAHASA C++

Pada dasarnya, kondisi IF ELSE merupakan modifikasi tambahan dari kondisi IF yang sudah

kita pelajari sebelumnya.

Blok kode program IF tetap akan dijalankan ketika kondisi true (1), namun sekarang terdapat

tambahan bagian ELSE akan dijalankan ketika kondisi false (0).

Berikut format dasarnya:

if (condition)

{

//Kode program yang akan dijalankan jika condition berisi nilai True (1)

}

else

{

//Kode program yang akan dijalankan jika condition berisi nilai False (0)

}

Bagian condition berperan sebagai penentu dari struktur percabangan ini.

Jika condition terpenuhi (menghasilkan nilai TRUE atau 1), blok kode program milik IF akan

dijalankan. Jika condition tidak terpenuhi (menghasilkan nilai FALSE atau 0), blok kode

program bagian ELSE-lah yang akan diproses.

CONTOH KODE PROGRAM PERCABANGAN IF ELSE BAHASA C++

Pada tutorial sebelumnya saya membuat program pencari bilangan genap / ganjil menggunakan

2 buah kondisi IF sebagai berikut:

if (a % 2 == 0) {

cout<<" adalah angka genap \n"<< a;

}

if (a % 2 == 1) {

cout<<" adalah angka ganjil \n"<< a;

}

Alur ini sebenarnya akan lebih sederhana (dan lebih efisien) jika kita ubah ke dalam struktur IF

ELSE. Jika sebuah angka tidak genap, maka pasti itu adalah angka ganjil. Sehingga jika

kondisi if (a % 2 == 0) tidak terpenuhi (false), maka variabel a pasti berisi angka ganjil.

Dengan demikian kode programnya bisa saya tulis ulang sebagai berikut:

#include <iostream.h>

int main()

{

int a;

cout<<"Input sembarang angka: ";

cin>>a;

cout<<("\n");

if (a % 2 == 0) {

cout<<" adalah angka genap \n"<< a;

}

else {

Page 10: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

7

cout<<" adalah angka ganjil \n"<< a;

}

return 0;

}

Sekarang jika kondisi if (a % 2 == 0) menghasilkan false, bagian ELSE lah yang akan di

proses. Kode program akan jadi lebih efisien karena pemeriksaan kondisi hanya perlu

dilakukan 1 kali saja.

Berikut contoh lain dari struktur kondisi IF ELSE:

#include <iostream.h>

int main()

{

int a;

cout<<"Input nilai ujian: ";

cin>> a;

printf("\n");

if (a >= 75) {

printf("Selamat, anda lulus \n");

}

else {

printf("Maaf, silahkan coba lagi tahun depan \n");

}

return 0;

}

Hasil kode program:

1

2

3

4

5

Input nilai ujian: 60

Maaf, silahkan coba lagi tahun depan

Input nilai ujian: 80

Selamat, anda lulus

Di sini saya membuat kondisi if (a >= 75), yakni jika variabel a berisi angka lebih besar atau

sama dengan 75 maka jalankan perintah printf(“Selamat, anda lulus \n”). Jika tidak, blok

ELSE lah yang akan di eksekusi, yakni printf(“Maaf, silahkan coba lagi tahun depan \n”).

PERCABANGAN KONDISI IF ELSE IF BAHASA C++

Pengertian Kondisi IF ELSE IF bahasa C++

Pada dasarnya, kondisi IF ELSE IF adalah sebuah struktur logika program yang di dapat

dengan cara menyambung beberapa kondisi IF ELSE menjadi sebuah kesatuan.

Jika kondisi pertama tidak terpenuhi atau bernilai false, maka kode program akan lanjut ke

kondisi IF di bawahnya. Jika ternyata tidak juga terpenuhi, akan lanjut lagi ke kondisi IF di

bawahnya, dst hingga blok ELSE terakhir atau terdapat kondisi IF yang bernilai true.

Page 11: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

8

Berikut format dasar penulisan kondisi IF ELSE IF dalam bahasa C:

if (condition_1) {

// Kode program yang dijalankan jika condition_1 berisi nilai True

}

else if (condition_2) {

// Kode program yang dijalankan jika condition_2 berisi nilai True

}

else if (condition_3) {

// Kode program yang dijalankan jika condition_3 berisi nilai True

}

else {

// Kode program yang dijalankan jika semua kondisi tidak terpenuhi

}

Contoh Kode Program Percabangan IF ELSE IF Bahasa C++

Sebagai contoh pertama, saya ingin membuat sebuah kode program untuk menampilkan nilai.

User diminta menginput sebuah huruf antara ‘A’ – ‘E’. Kemudian kode program akan

menampilkan hasil tampilan yang berbeda-beda untuk setiap huruf yang diinput, termasuk jika

huruf tersebut di luar ‘A’ – ‘E’.

Berikut contoh kode programnya:

#include <iostream.h>

int main()

{

char nilai;

cout<<"Input Nilai Anda (A - E): ";

cin>>nila);

if (nilai == 'A' ) {

cout<<("Pertahankan! \n");

}

else if (nilai == 'B' ) {

cout<<("Harus lebih baik lagi \n");

}

else if (nilai == 'C' ) {

cout<<("Perbanyak belajar \n");

}

else if (nilai == 'D' ) {

cout<<("Jangan keseringan main \n");

}

else if (nilai == 'E' ) {

cout<<("Kebanyakan bolos... \n");

}

else {

cout<<("Maaf, format nilai tidak sesuai \n");

}

return 0;

}

Hasil kode program:

Input Nilai Anda (A - E): A

Pertahankan!

Input Nilai Anda (A - E): D

Jangan keseringan main

Page 12: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

9

Input Nilai Anda (A - E): E

Kebanyakan bolos...

Input Nilai Anda (A - E): F

Maaf, format nilai tidak sesuai

Di baris 6 saya mendefinisikan sebuah variabel nilai sebagai char. Variabel nilai ini

kemudian dipakai untuk menampung input dari perintah scanf di baris 8. Mulai dari baris 10

hingga 24, terdapat 5 buah pemeriksaan kondisi, yakni satu untuk setiap block IF ELSE. Dalam

setiap kondisi, isi variabel nilai akan di diperiksa, apakah itu berupa karakter ‘A’, ‘B’, hingga

‘E’. Jika salah satu kondisi ini terpenuhi, maka block kode program yang sesuai akan di

eksekusi.

Jika ternyata nilai inputan bukan salah satu dari karakter ‘A’ – ‘E’, maka block ELSE di baris

23 lah yang akan dijalankan. Setiap kondisi dari block IF ELSE IF ini bisa diisi dengan

perbandingan yang lebih kompleks, seperti contoh berikut:

#include <iostream.h>

int main()

{

int nilai;

cout<<("Input Nilai Anda (0 - 100): ");

cin>>nilai;

if (nilai >= 90 ) {

cout<<("Pertahankan! \n");

}

else if (nilai >= 80 && nilai < 90) {

cout<<("Harus lebih baik lagi \n");

}

else if (nilai >= 60 && nilai < 80) {

cout<<("Perbanyak belajar \n");

}

else if (nilai >= 40 && nilai < 60) {

cout<<("Jangan keseringan main \n");

}

else if (nilai < 40) {

cout<<("Kebanyakan bolos... \n");

}

else {

cout<<("Maaf, format nilai tidak sesuai \n");

}

return 0;

}

Di sini kita bisa memodifikasi sedikit kode program kita sebelumnya. Sekarang nilai inputan

berupa angka antara 0 hingga 100. Angka inputan ini ditampung ke dalam variabel nilai yang

sekarang di set sebagai tipe data integer di baris 5.

Di baris 10, isi dari variabel nilai di periksa apakah berisi angka yang lebih dari 90. Jika iya,

tampilkan teks “Pertahankan!”.

Page 13: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

10

Jika kondisi di baris 10 tidak terpenuhi (yang artinya isi variabel nilai kurang dari 90), maka

kode program akan lanjut ke kondisi ELSE IF berikutnya di baris 13. Di sini saya

menggabungkan dua buah kondisi menggunakan operator logika && (yakni operator AND).

Kondisi if(nilai >= 80 && nilai < 90) hanya akan terpenuhi jika isi variabel nilai berada dalam

rentang 80 sampai 89.

Ketika membuat kondisi perbandingan, kita harus hati-hati dengan penggunaan tanda, apakah

ingin menggunakan tanda lebih besar saja (>) atau tanda lebih besar sama dengan (>=) karena

bisa mempengaruhi hasil akhir.

Jika ternyata kondisi ini tidak dipenuhi juga (artinya isi variabel nilai kurang dari 80), program

akan lanjut ke kondisi if(nilai >= 60 && nilai < 80) di baris 15, yakni apakah nilai berada

dalam rentang 60 – 79. Demikian seterusnya hingga kondisi terakhir if(nilai < 40) di baris 20.

Jika semua kondisi tidak terpenuhi, jalankan block ELSE di baris 24.

Berikut hasil percobaan dari kode program di atas:

Input Nilai Anda (0 - 100): 95

Pertahankan!

Input Nilai Anda (0 - 100): 60

Perbanyak belajar

Input Nilai Anda (0 - 100): 30

Kebanyakan bolos...

Yang cukup unik adalah, jika kita memberikan nilai di luar rentang 0 – 100, akan tetap

ditangkap oleh kondisi IF di baris 11 atau di baris 20:

Input Nilai Anda (0 - 100): 200

Pertahankan!

Input Nilai Anda (0 - 100): -1000

Kebanyakan bolos... Ini terjadi karena nilai 200 tetap memenuhi syarat if (nilai >= 90), dan nilai -1000 juga tetap

memenuhi syarat if (nilai < 40). Silahkan anda modifikasi kode program di atas agar jika

diinput angka di luar dari rentang 0 -100, akan tampil teks “Maaf, format nilai tidak sesuai”.

Untuk hal ini kita cuma perlu mengubah / menambah 2 kondisi saja.

PERCABANGAN KONDISI SWITCH CASE BAHASA C++

Pengertian Kondisi SWITCH CASE Bahasa C++

Kondisi SWITCH CASE adalah percabangan kode program dimana kita membandingkan isi

sebuah variabel dengan beberapa nilai. Jika proses perbandingan tersebut menghasilkan

nilai true, maka block kode program akan dijalankan.

Kondisi SWITCH CASE terdiri dari 2 bagian, yakni perintah SWITCH dimana terdapat

nama variabel yang akan diperiksa, serta 1 atau lebih perintah CASE, masing-masing untuk

setiap nilai yang ingin diperiksa.

Page 14: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

11

Berikut format dasar penulisan kondisi SWITCH CASE dalam bahasa C:

switch (nama_variabel) {

case 'nilai_1':

// Kode program yang dijalankan jika nama_variabel == nilai_1

break;

case 'nilai_2':

// Kode program yang dijalankan jika nama_variabel == nilai_2

break;

case 'nilai_3':

// Kode program yang dijalankan jika nama_variabel == nilai_3

break;

...

...

default:

// Kode program yang dijalankan jika tidak ada kondisi yang terpenuhi

}

Di awal kode program, terdapat perintah SWITCH untuk menginput variabel yang akan

diperiksa. Kemudian terdapat beberapa perintah CASE yang diikuti dengan sebuah nilai. Jika

isi dari variabel sama dengan salah satu nilai ini, maka blok kode program akan dijalankan.

Jika ternyata tidak ada kondisi CASE yang sesuai, blok default di baris paling bawah lah yang

akan dijalankan.

Di dalam setiap block case diakhiri dengan perintah break; agar struktur CASE langsung

berhenti begitu kondisi terpenuhi. Mari langsung kita lihat

Contoh Kode Program Percabangan SWITCH CASE Bahasa C++

Dalam tutorial sebelumnya, kita telah membuat program menampilkan nilai dengan struktur IF

ELSE IF. Kita akan coba konversi kode tersebut menjadi struktur SWITCH CASE.

Sebelumnya, berikut kode program menampilkan nilai dengan struktur IF ELSE IF:

#include <iostream.h>

int main()

{

char nilai;

cout<<("Input Nilai Anda (A - E): ");

cin>>nilai;

if (nilai == 'A' ) {

cout<<("Pertahankan! \n");

}

else if (nilai == 'B' ) {

cout<<("Harus lebih baik lagi \n");

}

else if (nilai == 'C' ) {

cout<<("Perbanyak belajar \n");

}

else if (nilai == 'D' ) {

cout<<("Jangan keseringan main \n");

}

else if (nilai == 'E' ) {

cout<<("Kebanyakan bolos... \n");

}

else {

cout<<("Maaf, format nilai tidak sesuai \n");

}

return 0;

}

Page 15: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

12

Program yang sama bisa dikonversi ke dalam bentuk SWITCH CASE berikut:

#include <iostream.h>

int main()

{

char nilai;

cout<<("Input Nilai Anda (A - E): ");

cin>>nilai;

switch (nilai) {

case 'A':

cout<<("Pertahankan! \n");

break;

case 'B':

cout<<("Harus lebih baik lagi \n");

break;

case 'C':

cout<<("Perbanyak belajar \n");

break;

case 'D':

cout<<("Jangan keseringan main \n");

break;

case 'E':

cout<<("Kebanyakan bolos... \n");

break;

default:

cout<<("Maaf, format nilai tidak sesuai \n");

}

return 0;

}

Hasil kode program:

Input Nilai Anda (A - E): A

Pertahankan!

Input Nilai Anda (A - E): D

Jangan keseringan main

Input Nilai Anda (A - E): E

Kebanyakan bolos...

Input Nilai Anda (A - E): F

Maaf, format nilai tidak sesuai

Di baris 7 saya meminta user untuk menginput salah satu huruf antara ‘A’ – ‘E’. Nilai huruf

ini disimpan ke dalam variabel nilai yang di set dengan tipe data char.

Kondisi SWITCH CASE dimulai pada baris 9. Di sini terdapat perintah switch (nilai), yang

artinya saya ingin memeriksa isi dari variabel nilai. Seluruh block SWITCH ini berada di

dalam tanda kurung kurawal, yakni mulai dari baris 9 sampai 23.

Page 16: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

13

Di baris 10 terdapat perintah case ‘A’: Ini artinya jika variabel nilai berisi karakter ‘A’, maka

jalankan isi dari block CASE, yakni perintah printf(“Pertahankan! \n”). Lalu terdapat

perintah break di baris 12 agar struktur CASE lain tidak perlu di proses lagi.

Di baris 13 terdapat perintah CASE kedua, yakni case ‘B’:. Sama seperti sebelumnya, blok ini

akan dijalankan jika variabel nilai berisi huruf ‘B’. Demikian seterusnya sampai case ‘E’ : di

baris 20. Jika ternyata tidak ada nilai yang sesuai, maka block default di baris 22 yang akan di

eksekusi.

Struktur SWITCH CASE ini terlihat lebih rapi daripada struktur IF ELSE IF, dan kadang kala

bisa lebih efisien. Namun SWITCH CASE juga memiliki batasan, yakni tidak bisa dipakai

untuk kondisi yang lebih kompleks seperti perbandingan dengan tanda lebih besar dari ” > “,

maupun penggabungan kondisi.

Kita tidak bisa membuat struktur CASE seperti berikut:

case > '90':

cout<<("Pertahankan! \n");

break;

Kondisi perbandingan di atas hanya bisa ditulis menggunakan struktur IF.

Sehingga jika kondisi yang diperiksa cukup rumit, tetap harus menggunakan struktur IF ELSE

IF. Struktur SWITCH CASE hanya cocok dipakai untuk operasi perbandingan sederhana,

dimana nilai yang diperiksa hanya terdiri dari nilai yang tetap.

Latihan :

1. Suatu Universitas melakukan seleksi penerimaan mahasiswa baru. Syarat diterima

menjadi mahasiswa jika memenuhi kriteria :

- Nilai Bahasa Indonesia diatas 60

- Nilai Bahasa Inggris diatas 55

- Nilai Tes Potensi Akademik diatas 60

Jika ketiga syarat tersebut terpenuhi, maka dinyatakan LULUS menjadi

mahasiswa. Buat program dengan menggunakan proses keputusan

2. Sebuahperusahaan menetapkan system penggajian, dengan ketentuan

- Gaji pokok :

Pegawai tetap Rp. 2000.000

Pegawai honorer Rp. 1000.000

- Bila kerja lembur mendapat tambahan honor lembur

Honor lembur = jam lembur*2% dari gaji pokok

- Tunjangan 10% dari gajipokok

- Jumlah gaji = gaji pokok + honor lembur + tunjangan

Page 17: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

14

BAB IV

PERULANGAN FOR, WHILE & DO WHILE C++

Dalam bahasa C++ (dan juga bahasa turunan C seperti C++, PHP dan Java), terdapat 3

buah struktur perulangan atau looping, yakni perulangan for, perulangan

while dan perulangan do while. Dalam bahasan bahasa pemrograman C kali ini kita akan

bahas perulangan for terlebih dahulu.

PENGERTIAN STRUKTUR PERULANGAN FOR BAHASA C++

Struktur perulangan (atau dalam bahasa inggris disebut dengan loop) adalah instruksi kode

program yang bertujuan untuk mengulang beberapa baris perintah.

Dalam merancang perulangan, kita setidaknya harus mengetahui 3 komponen:

1. Kondisi awal perulangan.

2. Kondisi pada saat perulangan.

3. Kondisi yang harus dipenuhi agar perulangan berhenti.

Berikut format dasar struktur perulangan for dalam bahasa C:

for (start; condition; increment)

{

// kode program

// kode program

}

Start adalah kondisi pada saat awal perulangan. Biasanya kondisi awal ini berisi perintah untuk

memberikan nilai kepada variabel counter. Variabel counter sendiri adalah sebuah variabel

yang akan menentukan berapa banyak perulangan dilakukan. Kebanyakan programmer

menggunakan variabel i sebagai variabel counter (ini tidak harus).

Condition adalah kondisi yang harus dipenuhi agar perulangan berjalan. Selama kondisi ini

terpenuhi, maka compiler bahasa C akan terus melakukan perulangan. Misalnya condition ini

berisi perintah i < 5, maka selama variabel counter i berisi angka yang kurang dari 5, maka

lakukan perulangan.

Increment adalah bagian yang dipakai untuk memproses variabel counter agar bisa memenuhi

kondisi akhir perulangan. Bagian ini akan selalu di eksekusi di setiap perulangan.

Disebut increment karena biasanya berisi operasi increment seperti i++, yang sama dengan i =

i + 1. Maksudnya, dalam setiap perulangan naikkan variabel i sebanyak 1 angka. Namun kita

juga bisa memberikan nilai lain, misalnya i = i + 2, sehingga variabel counter akan naik 2 angka

setiap perulangan.

Sebagai tambahan, terdapat istilah iterasi (iteration), yang berarti 1 kali perulangan. Istilah ini

cukup sering dipakai ketika membahas tentang struktur perulangan.

Contoh Kode Program Perulangan For Bahasa C

Sebagai contoh pertama, menampilkan teks “Hello World” sebanyak 5 kali.

Berikut kode programnya:

Page 18: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

15

#include <iostream.h>

int main()

{

int i;

for (i = 1; i < 5; i++) {

cout<<("Hello World \n");

}

return 0;

}

Di baris 5 kita lihat sebuah variabel i yang di set dengan tipe data integer. Variabel ini nantinya

akan kita pakai sebagai variabel counter, yakni variabel yang menentukan kondisi akhir

perulangan.

Perintah di baris 6, yakni for (i = 1; i < 5; i++), bisa dibaca:

“Jalankan perulangan, mulai dari variabel i = 1 sampai i < 5. Dalam setiap iterasi, naikkan

nilai variabel i sebanyak 1 angka menggunakan perintah i++“.

Berikut hasilnya:

Hello World

Hello World

Hello World

Hello World Pertanyaannya, kenapa hanya tampil 4 baris “Hello World“? Padahal kita mengulang dari i =

1 sampai i < 5.

Ini berkaitan dengan penggunaan tanda. Kondisi akhir perulangan adalah i < 5, yang artinya

akan selalu bernilai true jika i kurang dari 5, tapi jika sudah sampai dengan 5 maka kondisi

menjadi false dan perulangan berhenti.

Agar teks “Hello World” bisa tampil sebanyak 5 kali, ada 2 alternatif, yakni mengubah kondisi

awal menjadi i = 0, atau mengubah kondisi akhir menjadi i <=5. Pilihan kedua ini tambak lebih

baik:

#include <iostream.h>

int main()

{

int i;

for (i = 1; i <= 5; i++) {

cout<<("Hello World \n");

}

return 0;

}

Hasil kode program:

Hello World

Hello World

Hello World

Hello World

Hello World

Page 19: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

16

Sekarang teks “Hello World” sudah tampil sebanyak 5 kali. Sekali lagi, hati-hati dengan

menggunakan tanda perbandingan, terutama antara “<” dengan “<=“.

Di dalam perulangan, kita juga bisa mengakses variabel counter seperti contoh berikut:

#include <iostream.h>

int main()

{

int i;

for (i = 1; i <= 5; i++) {

cout<<("Hello World %i \n",i);

}

return 0;

}

Hasil kode program:

Hello World 1

Hello World 2

Hello World 3

Hello World 4

Hello World 5

Sekarang setelah teks “Hello World“, tampil angka yang berasal dari nilai variabel i. Karena

dalam setiap iterasi variabel counter i akan dinaikkan 1 angka (proses increment), maka

nilainya juga akan naik 1 angka untuk setiap iterasi.

Variabel counter i juga tidak haris di increment, tapi juga bisa di decrement untuk membuat

perulangan menurun. Berikut contohnya:

#include <iostream.h>

int main()

{

int i;

for (i = 5; i >= 1; i--) {

cout<<("Hello World %i \n",i);

}

return 0;

}

Hasil kode program:

Hello World 5

Hello World 4

Hello World 3

Hello World 2

Hello World 1 Kode kita sangat mirip seperti sebelumnya, tapi perhatikan perintah for di baris 6: for (i = 5; i

>= 1; i--). Ini bisa dibaca:

“Jalankan perulangan, mulai dari variabel i = 5 sampai i >= 1. Dalam setiap iterasi,

turunkan nilai variabel i sebanyak 1 angka menggunakan perintah i--“.

Page 20: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

17

Hasilnya, nilai variabel counter i akan berkurang 1 angka dalam setiap iterasi. Sebagai contoh

terakhir, bisakah anda membuat perulangan untuk menampilkan angka kelipatan 3 sebanyak

10 kali? Hasil akhir yang kita inginkan adalah sebagai berikut:

3 6 9 12 15 18 21 24 27 30

Terdapat beberapa cara untuk menghasilkan deret ini. Pertama, ubah di sisi block perintah

yang akan dijalankan. Dimana variabel counter i tetap naik dari 1 sampai 10:

#include <iostream.h>

int main()

{

int i;

for (i = 1; i <= 10; i++) {

cout<<("%i ",i*3);

}

cout<<("\n");

return 0;

}

Agar menghasilkan angka yang naik kelipatan 3, teknik yang dipakai adalah mengalikan nilai

variabel counter i dengan angka 3 untuk setiap iterasi. Cara kedua adalah memodifikasi

proses increment dari variabel counter:

#include <iostream.h>

int main()

{

int i;

for (i = 3; i <= 30; i = i + 3) {

cout<<("%i ",i);

}

cout<<("\n");

return 0;

}

Perhatikan perintah perulangan for di baris 6. Perintah for (I = 3; I <= 30; I = I + 3) bisa

dibaca:

“Jalankan perulangan, mulai dari 17ariable I = 3 sampai I <= 30. Dalam setiap iterasi,

naikkan nilai 17ariable I sebanyak 3 angka menggunakan perintah I = I + 3“.

PERULANGAN WHILE & DO WHILE BAHASA C++

Pengertian Struktur Perulangan While Bahasa C++

Dalam bahasan sebelumnya, yakni tentang perulangan FOR. Kita telah membahas bahwa

sebuah perulangan setidaknya memiliki 3 syarat: kondisi awal perulangan, kondisi pada

saat perulangan, dan kondisi akhir perulangan. Dalam perulangan FOR, ketiga syarat ini

ditulis dalam 1 baris perintah, seperti: for (i = 1; i < 5; i++). Di dalam perulangan WHILE,

ketiga kondisi ini saling terpisah.

Berikut format dasar struktur perulangan WHILE dalam bahasa C:

Page 21: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

18

start;

while (condition)

{

// kode program

// kode program

increment;

}

Di bagian start biasanya berupa perintah inisialisasi variabel counter, misalnya i = 0. Di

bagian condition terdapat kondisi yang harus dipenuhi agar perulangan berjalan, misalnya i <

5. Kemudian perintah increment di dalam block perulangan yang di pakai untuk menaikkan

nilai variabel counter, misalnya dengan perintah i++.

Contoh Kode Program Perulangan While Bahasa C++

Sebagai praktek pertama, berikut kode program perulangan WHILE untuk menampilkan teks

“Hello World” sebanyak 5 kali:

#include <iostream.h>

int main()

{

int i = 1;

while (i <= 5){

cout<<("Hello World \n");

i++;

}

return 0;

}

Hasil kode program:

Hello World

Hello World

Hello World

Hello World

Hello World

Di baris 5 terdapat perintah untuk menginput angka 1 ke dalam variabel i. Nantinya, variabel i

ini akan menjadi variabel counter yang dipakai untuk menentukan jumlah perulangan. Proses

perulangan di mulai di baris 6. Perintah while (i <= 5) artinya, selama nilai variabel i kurang

atau sama dengan 5, maka jalankan perulangan.

Di dalam blok perulangan terdapat perintah printf(“Hello World \n”) di baris 7. Ini dipakai

untuk menampilkan teks “Hello World“. Kemudian di baris 8 terdapat perintah increment,

yakni i++. Perintah ini akan menaikkan nilai variabel i sebanyak 1 angka dalam setiap iterasi.

Perulangan while di atas akan di ulang sebanyak 5 kali, mulai dari i = 1, i = 2, i = 3, i = 4,

hingga i = 5. Ketika nilai variabel counter i sudah mencapai 6, maka kondisi while (i <=

5) tidak terpenuhi lagi (false), sehingga perulangan berhenti.

Salah satu hal yang harus selalu diingat ketika membuat perulangan while adalah, jangan lupa

membuat perintah increment. Jika tidak, kondisi akhir tidak akan pernah terpenuhi dan

perulangan akan berjalan terus menerus. Ini dikenal dengan istilah infinity loop. Berikut

Page 22: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

19

Contohnya:

#include <stdio.h>

int main(void)

{

int i = 1;

while (i <= 5){

cout<<("Hello World \n");

}

return 0;

}

Jika kita menjalankan kode program di atas, teks “Hello World” akan ditampilkan terus

menerus, tidak pernah selesai. Penyebabnya karena kondisi while (i <= 5) akan selalu

bernilai true. Di dalam blok perulangan tidak ada perintah yang bisa mengubah nilai variabel

i agar kondisi while (i <= 5) bernilai false.

Untuk menghentikan infinity loop, tutup paksa jendela hasil dengan men-klik tanda (x) di sudut

kanan atas, atau tekan kombinasi CTRL + C. Sama seperti perulangan FOR, di dalam block

perulangan WHILE kita juga bisa mengakses nilai dari variabel counter i:

#include <stdio.h>

int main()

{

int i = 1;

while (i <= 5){

cout<<("Hello World %i \n",i);

i++;

}

return 0;

}

Hasil kode program:

Hello World 1

Hello World 2

Hello World 3

Hello World 4

Hello World 5

Bagaimana dengan perulangan menurun? tidak masalah. Kita tinggal mengatur kondisi

awal, kondisi akhir, serta proses decrement:

#include <stdio.h>

int main()

{

int i = 10;

while (i > 5){

cout<<("Hello World %i \n",i);

i--;

}

return 0;

}

Page 23: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

20

Hasil kode program:

Hello World 10

Hello World 9

Hello World 8

Hello World 7

Hello World 6

Di sini saya mengisi nilai awal variabel counter i dengan angka 10. Kondisi perulangan

adalah while (i > 5), artinya selama nilai variabel i di atas 5, jalankan perulangan. Dan karena

kita ingin membuat perulangan menurun, maka dipakai perintah decrement i-- yang akan

mengurangi nilai variabel i sebanyak 1 angka dalam setiap iterasi.

Pengertian Struktur Perulangan DO WHILE Bahasa C

Perulangan DO WHILE merupakan modifikasi dari perulangan WHILE, yakni dengan

memindahkan posisi pemeriksaan kondisi ke akhir perulangan. Artinya, kita akan lakukan dulu

sebuah perulangan, baru di akhir diperiksa apakah kondisi variabel counter sudah terpenuhi

atau belum.

Berikut format dasar struktur perulangan DO WHILE dalam bahasa C:

start;

do

{

// kode program

// kode program

increment;

}

while (condition)

Sama seperti perulangan WHILE, di bagian start biasanya terdapat perintah inisialisasi

variabel counter, misalnya i = 0. Kemudian di dalam block do ditulis kode program yang akan

di ulang, tidak lupa sebuah perintah untuk menaikkan nilai variabel counter, misalnya dengan

perintah i++.

Di bagian paling bawah, terdapat perintah while (condition). Di sinilah kondisi perulangan

akan diperiksa. Selama kondisi ini menghasilkan nilai true, maka perulangan akan lanjut ke

iterasi berikutnya.

Contoh Kode Program Perulangan Do While Bahasa C++

Agar bisa dibandingkan dengan bahasan di perulangan FOR dan WHILE, berikut contoh kode

program bahasa C untuk menampilkan 5 kali teks ‘Hello World’ menggunakan perulangan DO

WHILE:

#include <stdio.h>

int main()

{

int i = 1;

do {

cout<<("Hello World \n");

i++;

}

while (i <= 5);

return 0;

}

Page 24: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

21

Hasil kode program:

Hello World

Hello World

Hello World

Hello World

Hello World Di baris 5 (int i= 1) saya mendefinisikan variabel counter i dan memberikan nilai awal 1.

Kemudian terdapat block kode program do di baris 6 – 9. Inilah kode program yang akan di

ulang, yakni berisi sebuah perintah printf untuk menampilkan teks ‘Hello World’, dan sebuah

perintah increment i++ untuk menaikkan nilai variabel i sebanyak 1 angka.

Terakhir di baris 10 terdapat perintah while (i <= 5). Artinya, selama variabel counter i bernilai

kurang dari atau sama dengan 5, jalankan kembali perulangan.

Dalam perulangan DO WHILE ini kita juga bisa mengakses variabel counter, seperti contoh

berikut:

#include <stdio.h>

int main()

{

int i = 1;

do {

cout<<("%i ",i*3);

i++;

}

while (i <= 5);

return 0;

}

ini adalah kode program untuk membuat sebuah deret dengan kelipatan 3:

3 6 9 12 15

Kunci penting yang membedakan perulangan DO WHILE dengan perulangan DO

adalah posisi pemeriksaan kondisi. Karena dalam perulangan DO WHILE pemeriksaan

kondisi di lakukan di akhir, maka perulangan akan selalu di jalankan minimal 1 kali,

meskipun syarat perulangan sudah tidak dipenuhi.

Berikut contoh kasusnya:

#include <stdio.h>

int main()

{

int i = 10;

do {

cout<<("%i ",i*3);

i++;

}

while (i <= 5);

return 0;

}

Hasil kode program: 30.

Page 25: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

22

Di baris 5 saya mengisi angka 10 ke dalam variabel counter i. Namun syarat kondisi

adalah while (i <= 5). Apakah i <=5 ? tidak (false). Namun meskipun kondisi ini tidak

dipenuhi, perulangan akan tetap dijalankan 1 kali.

Jika kondisi yang sama dibuat menggunakan WHILE, perulangan tidak akan pernah dijalankan

karena kondisi di periksa di awal. Inilah yang jadi perbedaan antara perulangan WHILE dan

DO WHILE dalam bahasa C++.

Latihan :

1. Buatlah program untukmenampilkan bilangan dalam segitiga dengan tampilan

1*

2**

3***

4****

5*****

2. Buatlah program untuk menampilkan bilangan dalam segitiga dengan tampilan

*

* *

* * *

* * * * *

* * * * * *

Page 26: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

23

BAB V

PENGERTIAN TIPE DATA ARRAY

Tipe data array adalah tipe data yang terdiri dari kumpulan tipe data lain. Dalam bahasa

Indonesia, array dikenal juga dengan istilah Larik. Dengan array, proses penyimpanan data ke

dalam variabel menjadi lebih efisien dan mudah, terutama jika kita memiliki data dalam jumlah

banyak.

Anggota atau isi dari array itu sendiri harus satu jenis tipe data, misalkan terdiri dari kumpulan

angka bulat saja (integer), kumpulan karakter saja (char), maupun kumpulan angka pecahan

saja (float). Di dalam bahasa C, kita tidak bisa membuat 1 array dengan berbagai tipe data

(harus 1 jenis saja).

Sebagai contoh, misalkan saya ingin menyimpan dan memproses 5 buah nilai. Jika

menggunakan variabel biasa, penulisannya bisa seperti ini:

int bilangan1;

int bilangan2;

int bilangan3;

int bilangan4;

int bilangan5;

Data diatas banyak dan berulang untuk 1 tipe data saja, sehingga akan lebih efisien jika

menggunakan array:

int bilangan[5];

Dengan kode program diatas, variabel bilangan akan menjadi sebuah array yang bisa

menampung 5 data bertipe integer. Format pendefinisian array di dalam bahasa C++ adalah

sebagai berikut:

tipe_data nama_variabel[jumlah_element]

Element adalah sebutan untuk isi atau anggota sebuah array.

Sebagai contoh, jika kita ingin membuat array dengan 100 element yang bisa diisi dengan tipe

data float, pendefinisiannya adalah sebagai berikut:

float bilangan[100];

Berikutnya, bagaimana cara mengakses dan mengisi element array ini? Kita tinggal menuliskan

nomor urut dari element yang akan akan diakses, nomor urut ini dikenal juga dengan

istilah index. Berikut contohnya:

bilangan[5] = 3,14;

Page 27: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

24

Yang harus perlu diperhatikan adalah, nomor urut atau index array dimulai dari 0, bukan

1. Akibatnya jika kita ingin mengakses element pertama dari array bilangan, penulisannya

adalah bilangan[0]. Untuk bisa mengakses element ke-100 dari array bilangan, penulisannya

adalah bilangan[99].

Index array yang dimulai dari 0 ini hampir selalu menjadi ciri khas di seluruh bahasa

pemrograman modern, termasuk C++, PHP, dan JavaScript.

Sebagai contoh pertama, saya ingin membuat array bilangan dengan 5 element bertipe

data integer, lalu mengisi dan menampilkan nilainya menggunakan perintah cout:

#include <iostream.h>

int main()

{

int bilangan[5];

bilangan[0] = 6;

bilangan[1] = 9;

bilangan[2] = -8;

bilangan[3] = 24;

bilangan[4] = -99;

cout<<"Isi array bilangan pertama: %d \n” << bilangan[0]);

cout<<"Isi array bilangan kedua: %d \n"<< bilangan[1]);

cout<<"Isi array bilangan ketiga: %d \n"<< bilangan[2]);

cout<<"Isi array bilangan keempat: %d \n<< bilangan[3]);

cou<<("Isi array bilangan kelima: %d \n"<< bilangan[4]);

return 0;

}

Di awal kode program, baris int bilangan[5]; dipakai untuk membuat sebuah array

bernama bilangan dengan 5 element atau 5 anggota. Array bilangan ini di set sebagai int,

yang artinya setiap element array hanya bisa diisi dengan bilangan bulat (integer).

Setelah pendefinisian array bilangan, selanjutnya saya mengisi setiap element array dengan

angka. Kembali diingat bahwa index array dimulai dari 0, sehingga untuk mengakses element

pertama dari array bilangan, penulisannya adalah bilangan[0].

Di akhir program, saya menampilkan seluruh element array menggunakan perintah cout.

Dalam contoh diatas, pengisian nilai array diproses satu persatu. Namun kita juga bisa mengisi

element array langsung pada saat pendefinisiannya, seperti contoh berikut:

#include <iostream.h>

int main()

{

int bilangan[5] = {6, 9, -8, 24, -99};

cout<<"Isi array bilangan pertama: %d \n"<< bilangan[0]);

cout<<"Isi array bilangan kedua: %d \n"<< bilangan[1]);

cout<<"Isi array bilangan ketika: %d \n"<< bilangan[2]);

cout<<"Isi array bilangan keempat: %d \n"<< bilangan[3]);

cout<<"Isi array bilangan kelima: %d \n"<< bilangan[4]);

return 0;

}

Page 28: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

25

Kali ini, semua isi array diinput sekaligus pada saat pembuatan, yakni dengan perintah int

bilangan[5] = {6, 9, -8, 24, -99}. Tanda koma dipakai sebagai pemisah antara satu nilai dengan

nilai lain. Hasil kode program diatas akan sama persis seperti contoh kode program pertama.

Yang cukup unik, kita juga bisa mendefiniskan array tanpa harus menulis jumlah elemen

anggotanya, seperti contoh berikut:

#include <iostream.h>

int main()

{

char kumpulan_huruf[] = {'a','C','x'};

cout<<"Isi array kumpulan_huruf: ");

cout<<("%c, %c, %c

\n",kumpulan_huruf[0],kumpulan_huruf[1],kumpulan_huruf[2]);

return 0;

}

Isi dari element array sama halnya seperti variabel biasa, dimana kita bisa mengubah nilai

element array sepanjang program, seperti contoh berikut:

#include <iostream.h>

int main()

{

float pecahan[] = {3.14,-99.01,0.002};

cout<<"Isi array pecahan: ";

cout<<("%.3f, %.3f, %.3f \n",pecahan[0],pecahan[1],pecahan[2]);

cout<<(" \n");

pecahan[1] = 9.123;

pecahan[2] = 12.9925;

cout<<"Isi array pecahan: ";

cout<<"%.3f, %.3f, %.3f \n",pecahan[0],pecahan[1],pecahan[2]);

return 0;

}

Pengertian Array 2 Dimensi

Array dua dimensi adalah sebutan untuk array yang penomoran index-nya menggunakan 2

buah angka. Analogi yang sering dipakai seperti titik koordinat dalam diagram kartesius.

Diagram kartesius merupakan diagram yang biasa kita pakai untuk membuat grafik. Disini

terdapat sumbu X dan sumbu Y. Sebuah titik dalam diagram kartesius ini harus disebut secara

berpasangan, seperti (2,3) atau (-3, 1).

Page 29: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

26

Contoh bentuk diagram kartesius (sumber – wikipedia)

Analogi lain adalah matriks. Dalam matematika, matrik terdiri dari kolom dan baris. Kembali,

untuk menentukan nilai dari sebuah matriks, kita harus sebut secara berpasangan seperti baris

1 kolom 2, atau baris 3 kolom 1. Konsep seperti inilah yang menjadi dasar dari array 2 dimensi.

Untuk membuat array 2 dimensi di dalam bahasa C, kita membuat 2 kali tanda kurung siku

setelah nama variabel, seperti contoh berikut:

int bilangan[2][2];

Baris diatas akan membuat array 2 dimensi dengan nama variabel: bilangan.

Variabel bilangan ini akan berisi 4 element (2 x 2). Atau jika diibaratkan sebagai matriks,

disini kita membuat matriks 2 x 2.

Untuk mengakses setiap element array, penulisan index juga harus ditulis 2 kali, seperti

contoh berikut:

bilangan[0][0] = 100;

bilangan[0][1] = 101;

bilangan[1][0] = 110;

bilangan[1][1] = 111;

Berikut contoh kode program pertama dari pembuatan array 2 dimensi di dalam bahasa C++:

#include <iostream.h>

int main()

{

int bilangan[2][2];

bilangan[0][0] = 100;

bilangan[0][1] = 101;

bilangan[1][0] = 110;

bilangan[1][1] = 111;

cout<<"Isi array bilangan: \n";

cout<<"%d, %d \n”<<bilangan[0][0],bilangan[0][1]);

cout<<"%d, %d \n"<<bilangan[1][0],bilangan[1][1]);

return 0;

Page 30: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

27

}

Di awal kode program diatas array bilangan dengan perintah int bilangan[2][2];. Artinya,

array bilangan adalah sebuah array 2 dimensi dengan 4 element. Proses pengisian setiap

element array dilakukan setelahnya, kemudian ditampilkan dengan perintah printf. Pengisian

element array 2 dimensi juga bisa dilakukan pada saat array itu di definisikan, seperti contoh

berikut:

#include <iostream.h>

int main()

{

int matrix[2][3] = {{1,2,3},{7,8,9}};

cout<<"Isi array matrix: \n";

cout<<"%d %d %d \n", matrix[0][0], matrix[0][1], matrix[0][2]);

cout<<"%d %d %d \n", matrix[1][0], matrix[1][1], matrix[1][2]);

return 0;

}

Page 31: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

28

BAB VI

POINTER PADA PEMROGRAMAN C++

Pointer adalah penunjuk suatu variabel. Karena menunjuk suatu variabel, maka pointer wajib

memiliki alamat dari variabel yang ditunjuknya. Kadangkala dalam program yang besar,

penghematan memori wajib untuk dilakukan. Dengan mekanisme copy dan paste nilai variabel

satu kedalam variabel lain, akan sangat memboroskan memori. Dengan mekanisme pointer,

suatu variabel dalam suatu fungsi dapat diakses oleh fungsi yang lain.

Alamat Dari Variabel

Misalkan kamu memiliki variabel x dan terletak di memori 0x000001. Jika kamu ingin

memasukkan nilai 100 kedalam variabel x, maka processor harus membawa nilai 100 tersebut

kedalam variabel x yang terletak di alamat memori 0x000001. Hal yang perlu kamu ketahui

adalah, setiap variabel ternyata memiliki ukuran byte yang berbeda-beda dalam memori.

Sebagai contoh suatu variabel bertipe int memiliki ukuran 4 byte dalam memori. Maka variabel

tersebut akan menempati 4 kapling lokasi dalam memori, misalkan 0x000001, 0x000002,

0x000003, dan 0x000004. Jika terdapat dua buah variabel bertipe int yang bersebelahan, maka

alamat variabel pertama terletak di 0x000001 dan variabel kedua terletak dialamat 0x000005.

Memori menggunakan bilangan heksadesimal yang ditandai dengan awalan ‘0x’, sehingga jika

suatu variabel menempati blok kesepuluh dalam memori, maka alamatnya adalah 0x00000a

Deference (*)

Deference (*) merupakan suatu operator yang berfungsi untuk menanyakan alamat dari suatu

variabel . Apabila kita memberikansimbol & pada awal variable dan mencetak hasilnya pada

window cli, maka yang akan tercetak adalah alamat darivariabel tersebut bukan nilai yang

ditampung oleh variable tersebut. Lihat contoh di bawah ini : #include <iostream>

using namespace std;

int main(){

int a=5; //Memberikan nilai 5 pada variabel a

int *b; //Mendeklarasikan variabel b sebagai pointer

b = &a; //Mengkopikan alamat variabel a kedalam variabel pointer b

cout<<"Nilai variabel a adalah "<<a<<endl;

cout<<"Alamat variabel a adalah "<<&a<<endl;

cout<<"Isi dari variabel b adalah "<<b<<endl;

cout<<"Nilai yang tertampung dalam variabel b adalah "<<*b<<endl;

return 0;

Page 32: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

29

}

Hasil output programnya adalah:

Dari hasil output program di atas dapat dipahami bahwa, nilai variabel b sama dengan variabel

a, walaupun variabel b tidak diberikan nilai yang sama dengan variabel a. Hal ini terjadi karena

variabel pointer b menunjuk alamat variabel a dan variabel pointer b dapat mengakses nilai

yang terkandung dalam alamat yang ditunjuknya.

Pointer dan Array

Jka kita menuliskan sebuah array tanpa tanda kurung kotak ([]) maupun indeksnya, maka array

tersebut menunjuk atau bersi alamat elem pertama dari array tersebut. Misalkan kamu membuat

sebuah pointer bertipe int dengan nama pointerArray dan sebuah array dengan tipe yang sama

yaitu int dengan nama nilaiArray, maka pemberian nilai berikut sah dan dapat dilakukan:

int *pointerArray;

int nilaiArray[5];

pointerArray = nilaiArray; //memberikan alamat elemen pertama array pada

variabel pointer

Dari sintaks di atas, variabel pointer dengan nama pointrArray sekarang menunjuk pada alamat

memori elemen pertama array dengan nama nilaiArray. Nah secara tidak langsung kita dapat

mengakses nilai elemen array dengan menggunakan variabel pointer. Berikut contoh sintaks

pemrogramannya:

#include <iostream>

using namespace std;

int main(){

int nilaiArray[5] = {2,5,4,6,7};

int *pointerArray;

pointerArray = nilaiArray;

cout<<"Nilai pada elemen 0 nilaiArray adalah = "<<nilaiArray[0]<<endl;

cout<<"Nilai pada elemen 0 nilaiArray (Pointer) adalah =

"<<*pointerArray<<endl;

pointerArray++; // naikan alamat yang ditunjuk pointer sejauh 1 integer

*pointerArray = 10; //Ubah nilai elemen 1 array (nilaiArray) menjadi 10

cout<<"Nilai pada elemen 1 nilaiArray adalah = "<<nilaiArray[1]<<endl;

cout<<"Nilai pada elemen 1 nilaiArray (Pointer) adalah =

"<<*pointerArray<<endl;

pointerArray = nilaiArray; //kembalikan pointer pada elemen pertama

cout<<endl;

cout<<"Akses nilai semua array dengan pointer dan looping for"<<endl;

for (int i=0; i<5; i++){

cout<<"Nilai indeks ["<<i<<"] adalah = "<<*(pointerArray+i)<<endl;

}

return 0;

Page 33: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

30

}

Dari hasil di atas, dapat kita lihat bagaimana cara mengakses nilai array dengan menggunakan

pointer. Suatu pointer bertipe int hanya dapat digunakan untuk menunjuk pada variabel int.

Sebab, tipe data tersebut akan menentukan sifat pointer ketika alamat pointer tersebut

dilakukan increment. Begitu juga untuk tipe data yang lain.

Pointer Sebagai Parameter Suatu Fungsi

Seperti halnya dengan array, pointer dapat digunakan sebagai parameter suatu fungsi. Karena

sifat pointer yang hanya sebagai penunjuk, maka setiap perubahan yang terjadi pada parameter,

sebenarnya terjadi pada variabel yang ditunjuk bukan pada variabel pointer. Berikut contoh

program sederhananya:

#include <iostream>

using namespace std;

void tambah(int *angka){

*angka +=20;

}

int main(){

int nilai = 10;

cout<<"Nilai variabel nilai adalah = "<<nilai<<endl;

tambah(&nilai); //Memasukkan alamat variabel nilai pada fungsi tambah

cout<<"Nilai variabel nilai adalah = "<<nilai<<endl;

return 0;

}

Perbedaan parameter berupa pointer dan non-pointer adalah, pada variabel non-pointer, ketika

kita ingin memasukkan nilai pada sebuah variabel kedalam parameter, kamu harus

memasukkan nilai dari variabel tersebut. Untuk parameter berupa pointer, kita cukup

memasukkan alamat variabel yang menampung nilai dengan operator (&) kedalam parameter

fungsi

Yang menarik adalah pada fungsi tambah di atas, walaupun fungsi tersebut merupakan fungsi

void tanpa nilai kembalian alias return, namun nilai variabel parameter berubah.

Page 34: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

31

BAB VII

FUNCTION PADA C++

Function (dalam bahasa Indonesia adalah Fungsi). Function adalah sebuah struktur,

Pengelompokan yang mengandung sekelompok pernyataan yang akan dilaksanakan oleh CPU

jika nama function tersebut dipanggil untuk dieksekusi, kecuali untuk function utama yaitu int

main() yang akan dieksekusi secara otomatis.

Sebelumnya kita sering meilihat tanpa mengerti int main() pada contoh program yang pernah

penulis berikan. Pada setiap program pasti memiliki satu function utama dan merupakan awal

dari program berjalan atau CPU melakukan eksekusi dari sekelompok pernyataan yang

diberikan, semua itu akan di mulai dari function int main(), function tersebut merupakan

function utama yang akan menjadi kepala dari program dimana semua eksekusi pernyataan

berawal.

Bisa kita bayangkan melakukan pemrograman sebuah program yang sangat-sangat besar dan

memerlukan pernyataan yang sangat panjang, apa lagi jika sebuah proses mempunyai banyak

pernyataan dan dibutuhkan tidak hanya sekali, itu pasti akan membuat anda pusing jika di dunia

ini tidak ada function. Maka, disini Function sangat membantu kita untuk membuat

pengelompokan pernyataan berdasarkan tugas, proses atau katagori. Ketika kita membutuhkan

kelompok pernyataan tersebut kita cukup memanggil nama function tersebut.

Bentuk Umum Penulisan

1

2

3

tipe nama (parameter1, parameter2, …){

Pernyataan

}

Tipe = adalah sebuah return type/data type dari Function, function dapat memiliki nilai di saat

akhir hidup dari function dan hal itu disebut pengembalian nilai. beberapa function dapat

mengembalikan nilai hasil operasi yang dilakukan di dalam function tersebut. tapi juga ada

function yang tidak akan mengembalikan nilai dari operasi di dalam function tersebut, untuk

membuat function tanpa melakukan pengembalian nilai kita bisa menggunakan tipe data void,

jika berniat membuat function yang dapat mengembalikan nilai, sesuaikanlah tipe data dengan

tipe nilai yang akan dikembalikan

Nama = nama atau identifier, adalah sebuah identitas atau nama dari function tersebut.

Parameter = kita dapat mengkosongi jika tidak membutuhkan. Parameter adalah pemesanan

memori untuk menyimpan argumen yang berisi nilai disaat pemanggilan function. parameter

tersebut akan bersifat lokal bagi function tersebut, tidak bisa digunakan diluar function. Kita

bisa membuat parameter lebih dari satu, dan masing-masing parameter akan dipisah dengan

tanda koma.

Deklarasi Function

Untuk bentuk penulisan sama seperti apa yang pernah kita tulis untuk membuat function

utama int main(), yang berbeda adalah kita bebas memberi nama function, memberi return

type, menambahkan parameter pada function kustom kita dan function kustom tidak akan

dieksekusi oleh CPU jika nama function buatan tidak dipanggil di dalam function utama.

Page 35: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

32

//Tanpa Parameter

void cetakPesan (){

cout<<”Belajar Function C++”;

}

//Dengan Parameter

Int tambah (int a, int b){

return a+b;

}

Pada contoh pertama merupakan contoh yang menunjukan bentuk function tanpa

menggunakan parameter dan tanpa pengembalian nilai. Lalu pada contoh kedua merupakan

contoh menggunakan dua parameter yang dipisahkan dengan tanda koma ,. pada baris ke satu

dari function yang memiliki parameter terdapat return a+b; akan memberi hasil penjumlahan

dari dua parameter a dan b kepada function sebagai nilai return. sehingga ketika kita

memanggil function itu akan memberikan nilai hasil proses penjumlahan tersebut.

Mengakses Fuction

CPU Hanya akan melaksanakan pernyataan-pernyataan yang berada di dalam function

utama int main. Saat mendirikan sebuah function kustom, pernyataan-pernyataan yang ada di

dalam function kustom tidak akan dibaca oleh CPU jika nama atau identifier pada function

yang kita buat tidak dipanggil di dalam fungsi utama atau dalam function lain yang sudah

terjamin CPU akan melewainya.

Jalur pembacaan CPU, CPU akan melaksanakan semua pernyataan yang dilewati. Ketika CPU

itu melewati sebuah pernyataan yang merupakan sebuah nama dari function maka CPU akan

melaksanakan semua pernyataan di dalam function itu hingga selesai. jika sudah, CPU akan

melanjutkan pembacaan pernyataan pada function sebelumnya. Kita juga bisa membuat

function buatan memanggil function buatan lainya.

Untuk memanggil function, kita cukup menuliskan nama dari function tersebut dan memberi

sepasang tanda ( ), itu merupakan tempat dimana nilai arguments untuk parameter function

tersebut, kita bisa mengkosonginya jika memang function tersebut tidak membutuhkan

argument.

1

2

3

4

//Function Tanpa Parameter

cetakPesan ();

//Function Dengan Parameter

tambah (argument1, argument2);

Contoh Program

//Deklarasi dan Pemanggilan Function

#include <iostream>

using namespace std;

int result;

void cetakPesan (){

cout<<"Belajar C++"<<endl<<endl;

}

int tambah (int a, int b){

result = a+b;

Page 36: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

33

//atau kita bisa menggunakan return

return a+b;

}

int main () {

cetakPesan();

cout<<"tambah(5,6) = "<<tambah(5,6)<<endl;

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

return 0;

}

Bukan hanya itu saja, Function tersebut juga bisa memanggil function itu sendiri. Itu sangat

membantu saat melakukan rumus matematika, salah satunnya seperti rumus factorial.

Standard Function

Function buatan oleh programmer bisa disebut sebagai function kustom (Custom Function).

Dalam C/C++ juga disediakan function bawaan dari Bahasa tersebut, dinamakan dengan

function standar (Standard Function).

Function standar di dalam suatu Bahasa biasanya dikemas dalam suatu liblary,

seperti printf() dan scanf() yang berada pada header stdio. function-function standar tersebut

memang sudah disediakan dari awal oleh pembuat bahasa pemrograman untuk mempermudah

kita dalam membuat program.

Pengertian Parameter

Parameter adalah tempat penyimpanan (variabel) di dalam function, yang digunakan untuk

melakukan pemeberian data dari pemanggil ke dalam function. Parameter terletak di antara

tanda kurung ( dan ) setelah identitas dari function, dan sebuah function dapat memiliki

beberapa parameter yang dipisahkan dengan tanda koma ,.

Function biasanya membutuhkan data untuk beroperasi, Yang biasa kita lalukan dalam

mendapatkan data adalah dengan memanggil variabel, tapi kita harus ingat dengan

peraturan variabel lokal dalam ruang lingkup. Kita tidak bisa dengan mudah mendapatkan data

dari scope lain.

Hal tersebut merupakan satu alasan kenapa parameter itu ada dalam Bahasa pemrograman. Jika

kita tidak bisa mendapatkan data dari scope lain secara langsung, kita bisa memberikan data

tersebut saat pemanggilan function dengan perantara yaitu parameter.

Jika kita mempunyai variabel int a dalam function utama dan function kustom dengan satu

parameter int b, ketika kita memberikan nilai dari variabel int a ke dalam function kustom.

Kita dapat menggunakan parameter int b untuk perantara sekaligus tempat yang akan menjadi

variabel local dalam function kustom. apa yang terjadi adalah Data dari int a akan di salin ke

variabel int b. dengan hal itu function kustom kita akan memiliki data dari scope luar (scope

pemanggil).

Parameter dalam Bahasa pemrograman biasanya memiliki 2 jenis, yaitu :

• Function Parameter / Parameter Formal

• Argument / Actual Parameter

Page 37: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

34

JENIS-JENIS PARAMETER

Function Parameter

Function Parameter atau juga disebut sebagai Parameter Formal, adalah variabel lokal yang

didirikan di dalam deklarasi function (bukan definisi), Yang merupakan tempat penyimpanan

nilai dari argument yang diberikan saat pemanggilan function.

Bentuk Umum Penulisan

1

2

3

returnType identitas (Function Parameters){

//…definisi…

}

Function parameter berada di dalam deklarasi function, di antara tanda ( dan ) setelah identitas

dari function. di dalam tanda kurung tersebut anda bisa membuat banyak parameter, dan

masing-masing dipisahkan dengan tanda koma ,.

Contoh Penulisan

1

2

3

int myFunction(int a) { ... }

double myFunction(double a, double b) { … }

void functionNoReturn(int a, char b, double c) { … }

Argument

Argument adalah parameter yang menyertai pemanggilan function. merupakan tempat dimana

anda bisa memberikan data untuk digunakan di dalam function yang dipanggil dan diberikan

saat pemanggilan function tersebut.

Argument adalah parameter yang menyertai pemanggilan function. merupakan tempat dimana

anda bisa memberikan data untuk digunakan di dalam function yang dipanggil dan diberikan

saat pemanggilan function tersebut.

Pemberian data ke dalam function kustom dapat berupa data langsung, data dari suatu variabel,

data dari konstanta, data dari pengembalian function atau merupakan hasil dari operasi.

Pemberian data ke dalam function harus mengikuti aturan yang telah ditetapkan oleh function

parameter.

Bentuk Umum Penulisan

1 nama(arguments);

jika lebih dari 1 argument, masing-masing argument akan dipisahkan dengan tanda koma.

Pemberian arguments harus sesuai dengan parameter.

Contoh :

1

2

3

myFunction(2) ;

myFuntion(a+b, a+4) ;

myFunction(“Arguments”, ‘A’, variabel) ;

Contoh Program : #include <iostream>

using namespace std;

void myFunction(int a, int b, int c=20){ // Fuction Parameter atau

Parameter Formal

cout<<a<<endl;

cout<<b<<endl;

Page 38: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

35

cout<<c<<endl;

}

int main(){

myFunction(1,2,3); //Arguments atau Parameter Actual

return 0;

}

Pengertian Pass by Value

Pass by value (memberikan nilai) adalah salah satu metode untuk memberikan argumen

kepada function parameter di saat pemanggilan function. Pada dasarnya C/C++ memberikan

argument kepada funtion parameter dalam bentuk nilai (value). Ketika kita memberikan

argument pada function, maka nilai dari argument akan di salin ke dalam function parameter.

Dalam menentukan argument kita dapat membuatnya dalam bentuk nilai,

ekspresi, variabel, literal, object, enum dan lain-lain yang mengandung nilai di dalamnya.

Contoh Program :

#include <iostream>

using namespace std;

int tambah (int a, int b){

return a+b;

}

int main () {

cout<<tambah(5,6)<<endl; //pass by value

return 0;

}

Function parameter sebenarnya hanyalah variabel lokal. Setiap ketentuan yang ada pada

variabel lokal berlaku pada function parameter. Perbedaanya adalah hanya pada segi

peletakanya.

Contoh Program :

#include <iostream>

using namespace std;

int tambah (int a, int b){

return a+b;

}

int main () {

cout<<tambah(5,6)<<endl; //pass by value

cout<<tambah(19,24)<<endl; //pass by value

cout<<tambah(79,64)<<endl; //pass by value

return 0;

}

Dari program di atas, terlihat bahwa function kustom tambah() dipanggil berulang kali.

Dengan argument yang berbeda-beda. Itu bukan berarti bahwa nilai function parameter selalu

diperbaharui setiap function itu di panggil dan diberi argument baru, melainkan function

parameternya lah yang selalu baru.

Page 39: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

36

Sama seperti variabel lokal, bahwa function parameter termasuk dalam Automatic duration

dengan arti bahwa variabel tersebut hanya akan ada pada saat function tersebut sedang berjalan.

sebelum itu dan sesudah itu, semua local variabel di dalamnya akan hilang atau tidak ada.

Contoh Program :

#include <iostream>

using namespace std;

int ubah(int x){

x = 99;

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

}

int main () {

int a = 1;

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

ubah(a); //pass by value

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

return 0;

}

Metode ini tidak cocok digunakan untuk memberikan argument berupa array, object dan segala

sesuatu yang cukup memakan memori besar. karena apa yang terjadi adalah nilai dari argument

di salin ke function parameter, hal itu dapat menurunkan performa program anda.

Contoh Program :

#include <iostream>

using namespace std;

void myFunction(int a,double b,char c);//function prototype

int main(){

int var=29029;

myFunction(var-29000,2,'A'); //pass by value

return 0;

}

void myFunction(int a,double b,char c){

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

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

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

}

Pengertian Pass by Reference

Pass by Reference adalah salah satu metode pemberian argument kepada function

parameter saat pemanggilan function, dengan memanfaatkan reference pada function

parameter. Pada pembuatan function parameter kita dimungkinkan untuk menggunakan

reference. metode ini tidak jauh beda dengan pass by value, keduanya merupakan metode yang

memberikan argument kepada parameter. Tapi hal yang berbeda di sini adalah bagaimana

function parameter menerima argument tersebut.

Page 40: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

37

Contoh Penulisan :

//parameter

void myFunction (int &a,int &b){

}

//pemanggilan

myfunction (argument1,argument2);

Pada pass by value kita mengetahuhi sifat dari metode pass by value, yaitu ketika kita

memberikan argument kepada function parameter, yang CPU lakukan adalah nilai dari variabel

argument akan disalin kepada variabel function paremeter, keduanya akan berdiri sendiri

sebagai variabel. jadi ketka nterjad perubahan nilai pada function parameter tidak akan

mempengaruhi argument, Nilai pada argument akan selalu aman saat function tersebut sedang

berjalan.

Contoh Program :

#include <iostream>

using namespace std;

void myF(int x);//function prototype

int main(){

int a=1;

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

myF(a);

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

return 0;

}

void myF(int x){

x++;

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

}

Tapi hal itu akan berbeda jika kita menggunakan reference pada function parameter. Reference

pada function parameter masih memiliki fungsi yang sama seperti kita menggunakanya pada

variabel biasa. Apa yang terjadi pada argument adalah cpu akan membuat function parameter

sebagai referensi dari argument, atau dengan arti lain bahwa function parameter akan menjadi

alias / variabel dari memori argument yang deberikan.

Jadi function parameter akan menjadi argument tersebut dengan identitas berbeda, apapun yang

terjadi pada nilai function parameter maka akan berpengaruh kepada argument tersebut. hal itu

terjadi karena function parameter dan argument memiliki satu memori yang sama.

Contoh program :

#include <iostream>

using namespace std;

void myF(int &x);

int main(){

int a=1;

Page 41: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

38

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

myF(a);

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

return 0;

}

void myF(int &x){

x++;

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

}

Untuk membuktikan hal tersebut, kalian bisa melihat pada contoh program di atas. Semua

perubahan nilai pada function parameter &x dari function kustom myF() akan berpengaruh

juga pada argument a pada function utama int main().

Fungsi dari metode ini biasanya digunakan untuk mengembalikan nilai. saat kita

mengoperasikan sebuah function kustom, terkadang kita menginginkan function kustom

tersebut dapat mengembalikan nilai yang lebih dari satu. Kadang ini tidak dimungkinkan jika

kita menggunakan keyword return.

Dan metode ini bisa kita gunakan untuk mengatasi permasalahan tersebut. kita dapat membuat

function kustom yang dapat mengembalikan nilai lebih dari satu. Nilai yang dikembalikan tidak

perlu menjadi RValue tapi akan langsung diberikan kebada argument.

Contoh program :

#include <iostream>

using namespace std;

void naik_turun(int &penaikan, int &penurunan, int nilai, int

jumlah);//function prototype

int main(){

int hasilNaik=0, hasilTurun=0, nilai=10;

naik_turun(hasilNaik, hasilTurun, nilai, 3);

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

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

return 0;

}

void naik_turun(int &penaikan, int &penurunan, int nilai, int jumlah){

penaikan = nilai + jumlah;

penurunan = nilai - jumlah;

}

Bukan hanya itu saja keuntungan dalam menggunakan metode ini. Metode pass by reference

juga dapat meningkatkan performa program anda, khususnya saat kita mencoba untuk

memberikan variabel yang cukup besar seperti array, object dan lain-lain.

Page 42: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

39

Pengertian Pass by Address

Pass by address kadang juga disebut sebagai Pass by pointer. adalah salah satu metode untuk

memberikan argument kepada function parameter saat pemanggilan function, dengan

memanfaatkan pointer dereference *.

Contoh Penulisan

1

2

3

4

5

//function parameter

int myFunction (int *par){

}

//function parameter

myFunction(&var);

Function parameter merupakan sebuah variable, hal yang berbeda antara function parameter

dan variabel hanyalah pada penepatanya. Karena function parameter merupakan variabel, maka

saat pembuatan function parameter kita juga dimungkinkan untuk menggunakan operator

dereference, untuk membuat function parameter berupa variabel pointer. Pointer merupakan

variabel yang dapat menunjuk ke sebuah alamat memori, atau dalam pengertian lain yaitu,

variabel yang memiliki kemampuan untuk memiliki alamat memori sebagai nilai dari variabel

pointer tersebut. dari variabel pointer kita dimungkinkan untuk mengakses nilai dari alamat

memori yang ditunjuk. Dalam segi pemberian argument kepada function parameter mirip

seperti metode pass by value, ketika kita memberikan argument kepada function parameter,

apa yang terjadi adalah nilai dari argument yang diberikan akan disalin dan diberikan kepada

function parameter. Tapi ketahui bahwa pointer hanya dapat menyimpan alamat memori

sebagai nilai dari variabel pointer dan, perbedaanya antara pass by value dan pass by address

adalah, nilai yang disalin pada metode pass by address merupakan alamat memori.

Contoh Program :

#include <iostream>

using namespace std;

void myFunction(int *x)

{

*x = *x+1;

cout<<"x = "<<x<<" = "<<*x<<endl;

}

int main()

{

int a=2;

cout<<"a = "<<&a<<" = "<<a<<endl;

myFunction(&a);

cout<<"a = "<<&a<<" = "<<a<<endl;

}

Page 43: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

40

Cara mengoperasikan variabel pointer pada function parameter masih sama seperti kita

mengoperasikan variabel pointer dengan metode Lvalue dan Rvalue.

int *lvalue = &rvalue;

Untuk memberikan nilai yang berupa alamat memoir dari sebuah variabel ke sebuah variabel

pointer, meskipun variabel pointer tersebut merupakan function parameter, kita tetap akan

membutuhkan operator Address-of &.

Pada contoh program di atas kita diperlihatkan kemampuan dari penggunaan pemberian

argument dengan metode pass by address. Pada program di atas function parameter x memiliki

kemampuan dapat mengakses variabel a yang diberikan sebagai argument, Meskipun variabel

tersebut berada pada luar function.

Pada program di atas kita diperlihatkan bahwa function parameter x dapat mengubah dan

melihat nilai dari variabel a yang berada di luar function dan diakses secara langsung.

Contoh Program

#include <iostream>

using namespace std;

void cetakArrayInt(int *theArr, int panjang)

{

//Jika argumen adalah null

if(!theArr){

cout<<"Array tidak ditemukan"<<endl;

return;

}

//jika array kosong

if(!panjang){

cout<<"Array kosong"<<endl;

return;

}

for(int i=0; i<panjang; i++){

cout<<theArr[i]<<" ";

}

}

int main()

{

int myArr[]={2, 3, 5, 8, 1};

cetakArrayInt(myArr, sizeof(myArr)/sizeof(int));

return 0;

}

Dari ketiga metode tersebut masing-masing memiliki kelebihan dan kekurangan. tapi penulis

tidak mencoba untuk menyampaikan perbandingan dan mencari tau metode yang terbaik untuk

digunakan, karena ketiga metode tersebut saling melengkapi dan masing-masing berguna

dalam dalam situasi tertentu.

Page 44: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

41

Untuk apa saja yang cocok menggunakan 3 metode tersebut ? :

• Jika akan memberikan argument yang memiliki tipe data dasar, cukup gunakan Pass by

value.

• Jika akan memberikan argument yang merupakan class, struct dan argument yang

cukup memakan banyak memori, gunakan Pass by reference.

• Jika akan memberikan argument yang berupa array, gunakan pass by address atas pass

by reference.

• Jika akan membuat argument yang nilainya tidak bisa diubah, gunakan pass by value

atau anda juga bisa gunakan pass by address dan reference dengan mengubah function

parameter menjadi literal/konstanta.

• Jika akan membuat nilai dari argument yang diberikan dapat di ubah, jangan gunakan

pass by value.

Fungsi dari Return pada Function

return berfungsi untuk mengakhri eksekusi dari function tersebut, dan return juga dapat

memberikan nilai pada saat akhir dari function kepada pemanggil.

Bentuk penulisan

1

2

return; //pengembalian tanpa nilai.

return nilai;//pengembalian dengan nilai.

Contoh penulisan //pengembalian tanpa nilai

return;

//pengembalian dengan nilai

return true;

return myVar;

return “belajarcpp.com”;

return 6+myVar/5;

Function memiliki dua jenis, yaitu function yang tidak mengembalikan nilai dan function yang

dapat mengembalikan nilai pada pemanggil. Dan return adalah keyword untuk mengatur hal

tersebut.

Function tidak mengembalikan nilai

Function yang tidak mengembalikan nilai biasanya menggunakan return type yang bertipe

void.

Contoh Program #include <iostream>

#include <string>

using namespace std;

void hallo(string a=""){

if(a == ""){

return;

}

cout<<"Hallo "<<a<<" !"<<endl;

}

int main(){

Page 45: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

42

hallo();

return 0;

}

Saat CPU mendapatkan pernyataan return, CPU akan keluar dari function itu dan akan

mengabaikan segala hal, meskipun setelah pernyataan tersebut masih terdapat banyak

pernyataan lain.

Pada contoh program di atas, terjadi pemanggilan function hallo() dengan menggunakan satu

parameter string, lalu pada function tersebut terdapat penyeleksian untuk memeriksa nilai dari

parameter. Lalu dibawahnya terdapat pernyataan keluaran.

Jadi jika pengguna memanggil dan memberikan argument yang tidak kosong maka akan

program tersebut akan mengeluarkan keluara “hallo ” di ikuti dengan nilai argument yang

pengguna berikan.

Tapi jika kosong maka CPU akan meloncati dan mengabaikan pernyataan keluaran tersebut,

alhasil pada program tidak akan menampilkan keluaran apapun.

Function yang mengembalikan nilai

Dan jenis dari function yang lain adalah Function yang dapat mengembalikan nilai. Setiap

function yang bukan function dengan return type void merupakan function yang dapat

mengembalikan sebuah nilai kepada pemanggil.

Contoh program #include <iostream>

#include <string>

using namespace std;

string hallo(string a=""){

return "Hallo "+a+" !";

}

int main(){

cout<<hallo("Belajar C++");

return 0;

}

Untuk mengembalikan nilai kepada pemanggil kita bisa melakukanya dengan memberikan

data, string, konstanta, identitas variabel, ekspresi dan lain-lain yang memiliki nilai. Pemberian

nilai tersebut diletakan sesudah keyword return.

Tapi saat kita akan mengembalikan nilai, kita harus melihat dan menyesuaikan return type apa

yang function itu gunakan, pemberian data dan return type pada function harus sesuai.

Pada contoh di atas, terdapat function kustom dengan return type string dan memiliki 1

parameter yang yang juga merupakan string.

Saat program di eksekusi akan menghasilkan keluaran yang berupa pernyataan String “Hallo ”

dan dikuti dengan nilai argument yang diberikan saat pemanggilan function.

Contoh program #include <iostream>

using namespace std;

double luasLingkaran(double r=0){

if(!r){

cout<<"Anda tidak memasukan argument r."<<endl;

Page 46: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

43

return 0;

}

const double pi = 3.14159265358979323846;

return pi*r*r;

}

int main(){

cout<<luasLingkaran(3);

return 0;

}

Di atas adalah contoh program yang dapat menghitung luas dari lingkaran.

Pada function yang dapat mengembalikan nilai. nilai dari function yang kita panggil dapat kita

abaikan. kita tidak diharuskan untuk mengambil nilai yang diberikan oleh function, yang kita

panggil.

#include <iostream>

using namespace std;

int hitungan(){

return 9+6;

}

int main(){

hitung(); //nilai yang dikembalikan diabaikan

}

hal tersebut pada program di atas dapat dilakukan, dan tidak berdampak buruk pada proses

kompilasi dan kerja program kita. Kebenaran yang lainya yang perlu anda tau adalah, bahwa

setiap function yang menggunakan return hanya dapat mengembalikan satu nilai kepada

pemanggil. Dalam pengembalian nilai sendiri kita dimungkinkan menggunakan beberapa

metode, mirip seperti saat pemberian argument kepada function parameter. Metode-metode

yang dapat dilakukan pada saat pengembalian nilai adalah return by value, return by reference

dan return by address. Secara teori metode-metode pada return mirip dengan pemberian

argument pada function parameter.

Apa arti dari return 0; pada function utama int main () ?

Pada dasarnya function yang memiliki return type selain void akan selalu mengembalikan nilai,

secara default akan mengembalikan nilai 0 atau NULL saat programmer tidak menyertakan

pernyataan return pada function tersebut.

Function utama pada Bahasa pemrograman C/C++ selalu menggunakan integer sebagai return

type, dan kita harus tau bahwa pernyataan di atas, perlakuan selalu mengembalikan nilai 0 atau

NULL secara default, tidak berlaku pada Function utama. dan itu adalah alasan kenapa kita

harus menyertakan pernyataan return 0;.

return 0; sendiri memiliki arti untuk komputer kita. Setelah program kita selesai di kompilasi,

dan saat CPU memulai mengeksekusi program kita, CPU akan selalu memulai pada function

utama dan berakhir pada function utama, yaitu int main();

Apa yang terjadi adalah, untuk mengeksekusi program kita, CPU akan memanggil function

utama, dan pada saat program berakhir, program juga akan menyertakan nilai yang

dikembalikan oleh function utama. biasanya program anda memberikan nilai 0 kepada CPU.

nilai 0 tersebut memiliki arti berbeda pada CPU, yaitu program anda memberikan informasi

Page 47: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

44

kepada CPU bahwa program anda telah berjalan dengan baik. Secara default CPU akan

menganggap suatu program telah berjalan dengan baik jika mereka mengembalikan nilai 0

yang dilakukan oleh pernyataan return 0. Jika program mengembalikan nilai selain 0, maka

menyatakan informasi kepada CPU bahwa program berakhir dengan tidak wajar.

Page 48: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

45

BAB VIII

STRUKTUR PADA C++

Data Structures struct adalah salah satu fitur bahasa pemrograman C/C++, merupakan

keyword yang memungkinkan kita untuk membuat sebuah deklarasi untuk membuat

pengelompokan variabel dengan tipe data yang berbeda.

Deklarasi Struct

struct merupakan keyword yang memungkinkan membuat deklarasi yang di dalamnya dapat

terdapat banyak variabel, hasil deklarasi ini akan menghasilkan user-defined data

type yaitu tipe structure yang berguna untuk mendirikan object.

bentuk penulisan

1

2

3

4

5

struct nama_struct{

/*macam-macam deklarasi variabel

*…

*/

}nama_object;

Keterangan

nama_struct : merupakan identitas dari struct tersebut.

{ …variabel… } : merupakan sepasang block, tempat dimana semua variabel dikelompokan

sebagai member dari struct tersebut. pembuatan variabel di dalam struct sama sekali tidak ada

perbedaan dengan mendirikan variabel biasa.

nama_object : merupakan deklarasi yang menggunakan struct tersebut menjadi tipe data dari

deklarasi tersebut. kita dapat mendirikan banyak object di tempat tersebut, masing-masing

dipisahkan dengan tanda koma , . Object selalu diletakan setelah penutup block dan sebelum

semicolon ; .

Penggunaan dari nama_struct dan nama_object merupakan opsional, kita bisa mendirikan

tanpa hal tersebut, tapi kita tidak bisa mengabaikan keduanya. Dan masing-masing tindakan

akan membuat struct memiliki sifat yang berbeda.

Jika kita mendirikan struct tanpa menggunakan nama_struct, maka kita diharuskan

menggunakan object. Jika tindakan ini dilakukan maka akan membuat struct tidak bisa di pakai

di luar deklarasi struct (kita tidak bisa mendirikan object diluar struct tersebut). biasanya

tindakan ini digunakan untuk membuat sebuah struct yang tidak di anjurkan untuk digunakan

(agar tidak terjadi pembuatan object di luar deklarasi struct).

Contoh penulisan struct{

int no_induk ;

std::string nama;

float nilai ;

}budi;

Dan pembuatan object sendiri itu opsional, kita dapat mendirikan di dalam deklarasi struct atau

di luar struct.

Page 49: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

46

Penjelasan Object

Struct sebenarnya hanyalah deklarasi untuk membuat sebuah tipe data baru yang didirikan oleh

programmer sebagai data structure. Data structure tersebut akan digunakan sebagai pembuatan

object, pembuatan object itu dapat dilakukan didalam deklarasi struct atau diluar deklarasi

struct.

Pembuaan object sendiri sama seperti pembuatan variabel seperti biasanya, yang berbeda

hanya kita menggunakan tipe structure sebagai tipe datanya.

Contoh Program : #include <iostream>

#include <string>

using namespace std;

int main(){

struct siswa{

int no_induk ;

string nama;

float nilai ;

}adi, bambang; //deklarasi object di dalam deklarasi struct

siswa budi, tono; //deklarasi object di luar struct

return 0;

}

Pada contoh di atas, semua deklarasi object masing-masing akan memiliki isi dari tipe structure

tersebut.

Mengakses Member dari Struct

1

2

3

4

struct siswa{

string nama; //member

float nilai ; //member

}

Kita tidak bisa menggunakan member-member dari struct sebelum didirikan object yang

didirikan menggunakan data structure tersebut. karena struct hanyalah sebuah rancangan dari

tipe structure.

Setelah kita berhasil membuat sebuah deklarasi object. untuk mengakses member struct dari

object tersebut kita membutuhkan Member Access Operator . di antara nama object dan nama

anggota variabel struct.

Contoh penulisan

1

2

3

umar.noInduk

rafa.nama

rahmi.nilaiUjian

Contoh Proram #include <iostream>

#include <string>

using namespace std;

struct siswa{

int no_induk ;

string nama;

Page 50: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

47

float nilai ;

};

int main(){

siswa budi, tono; //deklarasi object di luar struct

umar.no_induk = 1;

umar.nama = "Budi Januar";

umar.nilai = 75.5;

rafa.no_induk = 2;

rafa.nama = "Tono Laksono";

rafa.nilai = 89.9;

cout<<umar.nama<<" mendapatkan nilai "<<umar.nilai<<endl;

cout<<rafa.nama<<" mendapatkan nilai "<<rafa.nilai<<endl;

return 0;

}

Inisialisasi object

Inisialisasi (Initialization) adalah tugas pemberian nilai awal yang dilakukan saat deklarasi

variabel atau obyek. Inisialisasi sangat disarankan untuk dilakukan setiap mendirikan sebuah

deklarasi.

Non-static Member adalah suatu tindakan memberikan nilai awal member structure kepada

object dengan cara memberikan nilai di saat mendirikan member dari struct.

Dengan cara tersebut, nilai inisialisasi akan berlaku ke semua object yang menggunakan tipe

structure tersebut.

Contoh penulisan struct siswa{

int no_induk = 0;

string nama = “ ”;

float nilai = 0;

};

Contoh Program #include <iostream>

#include <string>

using namespace std;

struct siswa{

int no_induk = 0;

string nama = "kosong";

float nilai = 0;

};

int main(){

siswa budi, tono;

cout<<budi.nama<<" mendapatkan nilai "<<budi.nilai<<endl;

cout<<tono.nama<<" mendapatkan nilai "<<tono.nilai<<endl;

return 0;

}

Page 51: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

48

Initializer List adalah cara inisialisasi dengan memberikan nilai awal disaat mendirikan

object, nilai tersebut hanya akan berlaku pada object itu sendiri.

Contoh penulisan

1 struct siswa umar = {20103,umar alvaradri,8.75};

Uniform Initialization merupakan inisialisasi yang masih sama seperti initializer list, hanya

saja tidak menggunakan tanda = . Dan cara ini berasal dari C++11.

Contoh penulisan

1 siswa rafa {1, “Rafa Malique”, 9,85};

Contoh program #include <iostream>

#include <string>

using namespace std;

struct siswa{

int no_induk;

string nama;

float nilai;

};

int main(){

siswa budi={1, "Budi Susanto", 75.5}; //Initializer List

siswa toni{2,"Toni Hartono", 89.9}; //Uniform Initialization

cout<<budi.nama<<" mendapatkan nilai "<<budi.nilai<<endl;

cout<<tono.nama<<" mendapatkan nilai "<<toni.nilai<<endl;

return 0;

}

Page 52: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

49

BAB IX

OBJECT ORIENTED PROGRAMMING

OOP bukanlah sebuah bahasa pemrograman melainkan sebuah cara untuk menjadikan program

yang kita buat lebih modular karena suatu permasalahan akan dikumpulkan dalam suatu objek,

yang selanjutnya akan disebut dengan kelas.

KELAS

Suatu Kelas (class) merupakan sutu metode logis untuk mengorganisasi data dan fungsi 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 variabel yang didefinisikan sendiri oleh pemrogram.

Pada sebuah Kelas, item-item di dalamnya bisa bersifat private atau public . Secara default semua

item didalam Kelas bersifat Private.

a. Publik pada Kelas

Public menyatakan bahwa deklarasi variabel atau item-item yang ada di dalam Kelas dapat

diakses dari luar Kelas

Contoh :

#include<conio.h>

#include<iostream.h>

#include<string.h>

#include<iomanip.h>

class motor

{

public :

char merk [50];

char jenis [50];

double harga;

int stock;

};

motor sport ;

void main() {

strcpy (sport.merk, “Honda CB1100SF X11”);

strcpy (sport.jenis, “HONDA”);

sport .harga = 67800000;

sport.stok = 150;

cout << “Merk Motor Sport : “<<sport.merk<<endl;

cout<<”Jenis Motor : “<<sport.jenis<<endl;

cout<<setiosflags (ios:fixed) ;

cout<<” Harga Motor : “ ;

cout<<setprecision (0)<<sport.harga<<endl;

cout<<”Stock Motor : “<<sport.stok<<endl;

getche ();

}

Page 53: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

50

Output yang dihasilkan dari program diatas adalah

Merk Motor Sport : Honda CB1100SF X11

Jenis Motor : Honda

Harga Motor : 67800000

Stock Motor : 150

b. Private pada Kelas

Private digunakan pada Kelas untuk memproteksi anggota-anggota tertentunya agar tidak

diakses dari luar kelas secara langsung

Contoh : #include<conio.h>

#include<iostream.h>

#include<iomanip.h>

class motor

{

private :

char merk [50];

char jenis [50];

double harga;

int stock;

public :

void daftar (char *Merk, char *Jenis, double Harga, int Stock)

{

strcpy (merk, Merk) ;

strcpy (jenis, Jenis) ;

harga = Harga ;

stok = Stock ;

}

void jalankan ()

{

cout <<”Merk Motor Sport : “<<merk<<endl;

cout<<”Jenis Motor : “<<jenis<<endl;

cout<<setiosflags (ios:fixed) ;

cout<<” Harga Motor : “ ;

cout<<setprecision (0)<<sport.harga<<endl;

cout<<”Stock Motor : “<<stok<<endl;

}

} ;

void main () ;

{

clrscr ( ) ;

motor sport ;

sport. daftar (“Honda VFR 750f”, “HONDA”, 17800000,15) ;

sport.jalankan () ;

getch () ;

}

Page 54: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

51

Output yang dihasilakan program diatas adalah

Merk Motor Sport : Honda VFR 750f

Jenis Motor : HONDA

Harga Motor : 17800000

Stock Motor : 15

c. Mendefinisikan Lebih Dari Satu Objek

Di dalam suatu Kelas dapat didefinisikan lebih dari satu objek.

Contoh :

#include<conio.h>

#include<iostream.h>

Class lagu {

private :

char judul [45];

char band [45];

int tahun;

public :

void musik (char *Judul, char *Band, int Tahun) {

strcpy (judul, Judul) ;

strcpy (band, Bnad) ;

tahun = Tahun;

}

void mainkan ( ) {

cout<<”Judul = “<<judul<<endl;

cout<<”Band = “<<band<<endl;

cout<<”Tahun = “<<tahun<<endl;

};

Lagu metal, punk , clasicrock;

void main ( ) {

metal.musik (“Seek And Destroy”, “Metallica”, 1988);

punk.musik (“Ruby Soho”, “Rancid”, 1996);

clasicrock.musik (“Blind Man Cry”, “Deep Purple”, 1976);

metal.mainkan ( ) ; cout<<endl;

punk.mainkan ( ); cout<<endl;

clasicrock.mainkan ( );

getch ( );

}

Output dari program diatas adalah :

Judul = Seek And Destroy

Band = Metallica

Page 55: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

52

Tahun = 1988

Judul = Ruby Soho

Band = Rancid

Tahun = 1996

Judul = Blind Man Cry

Band = Deep Purple

Tahun = 1976

KONSTRUKTOR ( CONSTRUCTOR)

Konstruktor merupakan suatu fungsi dari anggota suatu kelas yang memiliki nama yang sama

dengan nama kelas tempat fungsi itu berada. Konstruktor ini digunakan untuk mengalokasikan

ruang untuk suatu objek dan untuk memberikan nilai awal.

Contoh : #include<iostream.h>

#include<conio.h>

#include<stdlib.h>

class Hitung {

private :

int a;

int b;

public :

inta( ) ;

intb( ) ;

Hitung (int mudah) ; //argumen pada constructor

};

Hitung : : Hitung (int mudah)

{

mudah = 0 ;

}

int Hitung : : inta()

{

a = 2 ;

return a;

}

int Hitung :: intb ( )

{

b = 3 ;

return b ;

}

int main ( ) {

int hasil ;

Hitung f (hasil) ;

hasil = f. inta() + f.intb() ;

cout <<”HASILNYA ADALAH : “<<hasil;

getch () ;

Page 56: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

53

return 0;

}

Output program diatas adalah :

HASILNYA ADALAH : 5

DESTRUKTOR

Destruktor merupakan suatu fungsi anggota yang dijalankan secara otomatis manakala sutu objek

akan terbebas dari memori karena lingkup keberadaannya telah menyelsaikan tugasnya.

Destruktor harus mempunyai nama yang sama dengan kelas dan diawali karakter ~ (tilde) atau

karakter tak berhingga.

Contoh :

#include<iostream.h>

#include<conio.h>

#include<stdlib.h>

Class motor {

private :

char *dijalankan [12] ;

public :

motor ( ) constructor

~motor ( ) destruktor void ket ( ) :

} ;

void main ( )

{

motor dijalankan ; // mendefinisikan object dijalankan.ket ( ) ;

cout<<”\nMotor Berhenti………..”<<endl ; fungsi main berakhir }

motor : : motor ( )

{

cout<<”\nConstructor motor dijalankan …….”<<endl;

*dijalankan = “Ngebutttt….”;

}

motor : : ~motor ( ) //destruktor dijalankan

{

cout<<”\nMotor tidak digunakan………”<<endl ;

cout<<”Motor dinonaktifkan…….”<<endl;

getch ( ) ;

}

void motor : : ket ( )

{

cout<<”\nMotor Anda Sekarang…………”<< *dijalankan ;

cout<<endl;

}

Page 57: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

54

Output program diatas adalah :

Constructor Motor dijalankan……..

Motor Anda Sekarang…….. Ngebuttt…..

Motor Berhenti……

Motor tidak digunakan…..

Motor dinonaktifkan……

INHERITANCE

Menciptakan atau menurunkan suatu kelas baru dengan menggunakan kelas yang lain sebagai

dasar disebut Inheritance (pewarisan) di dalam C++. Inheritance dapat digunakan kembali untuk

membangun, mengorganisasikan dan menggunakan kembali kelas-kelas. Inheritance merupakan

suatu aspek atau pengarah pokok kecerdasan manusia untuk mencari, mengenali dan menciptakan

hubungan antar konsep.

Tanpa inheritance, kelas merupakan sebuah unit yang berdiri sendiri. Inheritance akan membentuk

suatu konsep di mana jika konsep yang diatas berubah maka perubahan juga akan berlaku pada

yang ada di bawahnya. Inheritance sangat mirip dengan hubungan orangtua dengan anak. Apabila

suatu kelas menerima warisan, semua anggota data dan fungsi juga akan menerima warisan,

walaupun tidak semuanya akan dapat diakses oleh anggota fungsi dari kelas.

Penentu akases pada Inheritance ada tiga macam yaitu : Publik, Private, dan Protected.

Contoh : #include <iostream.h>

#include <conio.h>

enum KETURUNAN { Puma, Tutul, Singa, Macan };

class Predator

{

public :

//constructors

Predator ( ) : Usianya (10), Bobotnya (5) ( )

~Predator ( ) { }

//accessors

int umurnya ( ) const { return usianya ;}

void SetUmur (int Umur) {Usianya = Umur ;}

int Beratnya ( ) const {return bobotnya ; }

void SetBerat (int Berat) { Bobotnya = Berat ;}

//methode lainnya

void Meraung ( ) const { cout <<”Meraung……..Suara Predator!\n”;}

void Tidur ( ) const { cout << “sshh…….Predator Tidur.\n” ; }

protected :

int Usianya ;

int Bobotnya;

} ;

class Kucing_Besar : public Predator

Page 58: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

55

{

public :

//Constructors

Kucing_Besar ( ) : Keturunannya (SINGA) { }

~Kucing_Besar ( ) { }

//Accessors

KETURUNAN DptKeturunan ( ) const { return Keturunannya ; }

void SetKeturunan (KETURUNAN keturunan ) { Keturunannya = keturunan ; }

//other methods

void Melompat ( ) { cout << “Melompat……..\n” ; }

void Berburu ( ) { cout << “Berburu…..mengawali untuk Makan…\n” ; }

private :

KETURUNAN Keturunannya ;

} ;

int main ( )

{

Kucing_Besar Sibelang ;

Sibelang.Meraung ( ) ;

Sibelang. Berburu ( ) ;

cout << “Umur Raja Hutan adalah “ << Sibelang.Umurnya ( ) ;

cout << “ Tahun Usianya \n “ ;

getche ( ) ;

}

Output yang dihasilkan dari program diatas :

Meraung…….. Suara Predator !

Berburu……. mengawali untuk Makan……

Umur Raja Hutan adalah 10 Tahun Usianya

KONSTRUKTOR Dan DESTRUKTOR pada Inheritance

Contoh :

#include<iostream.h>

#include<conio.h>

#include<string.h>

class motor {

private :

char nama [15] ;

public :

motor (char *nama_motor = “KING” )

{

strcpy (nama, nama_motor ) ;

cout <<”Aktifkan Mesin Motor Anda…….” ;

cout <<”(Constructor aktif ) “ ;

Page 59: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

56

cout<<endl ;

}

`motor ( )

{

cout<<”Hentikan Mesin Motor Anda….” ;

cout<<”(Destructor Aktif) “ ;

cout<< endl;

}

void ket_motor ( )

{

cout<<nama<< “Sedang Ngebut……”<<endl;

}

} ;

class bebek : public motor

{

public :

bebek ( char *nama_ bebek) : motor (nama_bebek)

{

cout<<”Jalankan Motor Bebek Sport Anda…..<<endl ;

}

~bebek ( )

{

Cout<<”Pelankan Motor Bebek Sport Anda……<<endl;

}

} ;

void main ( )

{

bebek sport (“BEBEK SPORT”) ;

sport.ket_ motor ( ) ;

cout<<”\nTrack terakhir………..”<<endl;

getche ( ) ;

}

Output diatas adalah :

Aktifkan Mesin Motor Anda………….(Constructor Aktif)

Jalankan Motor Bebek Sport Anda…..

BEBEK SPORT Sedang Ngebut…..

Track terakhir………

Pelankan Motor Bebek Sport Anda……

Hentikan Mesin Motor Anda……..(Destructor Aktif)

Page 60: BAHAN AJAR MATA KULIAH TEKNIK PEMROGRAMAN …

57

DAFTAR PUSTAKA

1. Raharjo, B. (2007). Pemrograman C++: Mudah dan Cepat Menjadi Master C++.

Bandung: Informatika.

2. Sjukani, M. (2013). Algoritma dan Struktur Data 1 dengan C, C++ dan Java.

3. Penerbitdeepublish.com. (2020). Diakses pada 5 Maret 2020, dari

https://www.duniailkom.com/tutorial-belajar-bahasa-pemrograman-c-bagi-pemula/

4. Frieyadie (2009). Panduan Pemrograman C++. Andi. ISBN: 979-763-369-1.

5. Belajar C++. (2020). Tutorial. Diakses pada 5 Maret 2020.

https://www.belajarcpp.com/category/tutorial/.