Anda di halaman 1dari 72

TUGAS RESPONSI

SDAA B 2020
MATERI DASAR C++

OLEH:
MUHAMMAD ALFAREZY CANNAVARO
(2009106055)
1.DEFINISI C++
Bahasa Pemrograman C++ adalah bahasa pemrograman komputer yang bisa dipakai
untuk membuat berbagai aplikasi (general-purpose programming language), dan merupakan
pengembangan dari bahasa pemrograman C.

Bahasa C++ kadang disebut juga sebagai “C with Classes“. Ini karena perbedaan
paling utama antara bahasa C dan C++ ada di dukungan ke pemrograman berbasis object
(object oriented programming). Bahasa C++ sudah mendukung pemrograman berbasis
object, sedangkan bahasa C belum.

Karena termasuk general-purpose programming language, yakni bahasa


pemrograman yang bisa membuat berbagai aplikasi, bahasa pemrograman C++ bisa dipakai
untuk membuat aplikasi desktop seperti antivirus, software pengolah gambar (image
processing), aplikasi pengolah kata (word processing), hingga untuk membuat compiler
bahasa pemrograman lain.

2.TIPE DATA
Kita lanjut ke materi kedua tentang tipe tipe data pada Bahasa C++. Fungsi dari tipe
data tersebut ialah untuk membedakan data data apa saja yang akan kita inputkan pada
program yang kita buat,langsung saja inilah tipe tipe data yang ada pada Bahasa C++:
.1 Void (KOSONG)

Tipe data yang tidak bertipe karena mempunyai ukuran 0 byte biasanya digunakan
untuk tipe data kosong seperti membuat fungsi.

#include<iostream.h>
#include<conio.h>

void main(){
cout<<" Hello Dunia !!!!"<<endl;
getch();

}
.2 Char (KARAKTER)

tipe data untuk karakter yang sering digunakan untuk tipe data yang menggunakan
huruf dan angka sebagai datanya.

#include<iostream>
#include<conio.h>
using namespace std;

main(){

char jwb[4] = "D";

cout<<"1. Bahasa Pemrograman C++ Memiliki Berapa Tipe Data ?"<<endl;


cout<<"A.1 Tipe Data B.2 Tipe Data C.3 Tipe Data D.7 Tipe Data"<<endl;
cout<<"Jawabanya adalah "<<jwb<<endl;
getch();
}

.3 Int (INTEGER)

Tipe Data untuk numerik yang sering digunakan untuk data yang berbentuk angka.

#include<iostream>
#include<conio.h>
using namespace std;

main(){

int panjang,lebar;

panjang=10;

lebar=15;

cout<<"Persegi Panjang Memiliki Panjang "<<panjang<<endl;

cout<<"Persegi Panjang Memiliki Lebar "<<lebar<<endl;

cout<<"Luas Persegi Panjang Adalah : "<<panjang*lebar<<endl;

getch();
}
.4 Float (FLOATING POINT)

tipe data untuk numerik yang digunakan untuk data berupa angka pecahan.

#include<iostream>
#include<conio.h>
using namespace std;

main(){

float phi = 3.14, luas;


int r = 15;

luas = phi*r*r;

cout<<"Disini Diketahui lingkaran berdiameter "<<r<<" cm"<<endl;


cout<<"Lalu luas lingkaran Berikut adalah : "<<luas<<" cm^2"<<endl;

getch();
}

.5 Double (DOUBLE FLOATING POINT)

tipe data untuk numerik yang digunakan untuk data berupa angka pecahan yang nilai
decimalnya dua kali lebih banyak.

#include<iostream>
#include<conio.h>
using namespace std;

int main(){

double diskon = 0.05;


int harga = 100000;

cout<<"harga Rp."<<harga<<endl;
cout<<"mendapatkan diskon sebesar 5%"<<endl;
cout<<"diskon yang didapat menjadi Rp."<<diskon*harga<<endl;
getch();
}
.6 Boolean

tipe data yang digunakan untuk menentukan false dan true, tipe data ini sama seperti
bilangan biner hanya ada dua angka saja yaitu 0 dan 1.

#include<iostream>
#include<conio.h>
using namespace std;

main(){

bool log = false;

cout<<"jika kondisi salah maka bilangan bool adalah "<<log++<<endl;

cout<<"jika kondisi benar maka bilangan bool adalah "<<log<<endl;

getch();

Modifikasi Tipe Data C++


Beberapa macam tipe data dapat dimodifikasi sesuai kegunaannya dengan menambahkan
fungsi ini didepan tipe data :

1. Short : memodifikasi jangkauan nilai ke dalam bit yang lebih kecil (16bit).
2. Long  : memodifikasi jangkauan nilai ke dalam bit yang lebih besar (32bit)
3. Signed : memodifikasi jangkauan nilainya negatif dan positif.
4. Unsigned : memodifikasi jangkauan nilainya 0
3.Operator
Operator adalah sebuah simbol…

Simbol yang digunakan untuk melakukan operasi tertentu.

Misalnya:

Kita ingin menjumlahkan nilai dari variabel x dan y, maka kita bisa menggunakan operator
penjumlahan (+).

x+y
Ada enam jenis kelompok operator dalam pemrograman C++ yang harus kamu ketahui:

1. Operator Artimatika;
2. Operator Penugasan;
3. Operator Pembanding;
4. Operator Logika;
5. Operator Bitwise;
6. dan Operator Lain-lain.

.1 Operator Aritmatika
Operator aritmatika merupakan operator yang digunakan untuk melakukan operasi
aritmatika.

Operator ini terdiri dari:

NAMA OPERATOR SIMBOL

Penjumlahan +

Pengurangan -

Perkalian *

Pembagian /

Sisa Bagi %
Bagaimana Cara Penggunaan nya?

#include <iostream>

using namespace std;

int main(){

int d, a, i;

cout << "Inputkan nilai d: ";

cin >> d;

cout << "Inputkan nilai a: ";

cin >> a;

// Contoh menggunakan operator penjumlahan

i = d + a;

cout << "Hasil d + a = " << i << endl;

return 0;

}
.2 Operator Penugasan

Operator penugasan (Assignment Operator) merupakan operator untuk meberikan


tugas pada variabel. Biasanya untuk mengisi nilai.

Operator Penugasan terdiri dari:

NAMA OPERATOR SIMBOL


Pengisian Nilai =
Pengisian dan Penambahan +=
Pengisian dan Pengurangan -=
Pengisian dan Perkalian *=
Pengisian dan Pembagian /=
Pengisian dan Sisa Bagi %=
Pengisian dan Shift Left <<=
Pengisian dan Shift Right >>=
Pengisian dan bitwise AND &=
Pengisian dan bitwise OR |=
Pengisian dan bitwise XOR ^=

Bagaimana Cara Pengerjaan nya?

#include <iostream>

using namespace std;

int main(){

int c, d;

// contoh pengisian nilai dengan operator =

c = 5;

d = 10;

// contoh pengisian sekaligus penambahan

d += c; // ini sama seperti d = d + c

cout << "Hasil d += c adalah " << d << endl;

// contoh sekaligus pengurangan

d -= c; // ini sama seperti d = d - c


cout << "Hasil d -= c adalah " << d << endl;

// contoh sekaligus perkalian

d *= c; // ini sama seperti d = d * c

cout << "Hasil d *= c adalah " << d << endl;

// contoh sekaligus pembagian

d /= c; // ini sama seperti d = d / c

cout << "Hasil d /= c adalah " << d << endl;

// contoh sekaligus penambahan

d %= c; // ini sama seperti d = d % c

cout << "Hasil d %= c adalah " << d << endl;

return 0;

.3 Operator Pembanding

Operator pembanding adalah operator untuk memabndingkan dua buah nilai.


Operator ini juga dikenal dengan operator relasi.

Operator pembanding terdiri dari:

NAMA OPERATOR SIMBOL

Lebih Besar >

Lebih Kecil <

Sama Dengan ==

Tidak Sama Dengan !=

Lebih Besar Sama Dengan >=

Lebih Kecil Sama Dengan <=


Nilai yang dihasilkan dari operasi pembanding akan berupa true dan false.

Pada bahasa C++, nilai true akan samadengan 1 dan false akan samadengan 0.

Bagaimana Cara Pengerjaan nya?

#include <iostream>

using namespace std;

int main(){

int a = 8, b = 7;

bool hasil;

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

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

// contoh menggunakan operator pembanding

hasil = a > b;

cout << "a > b = " << hasil << endl;

hasil = a < b;

cout << "a < b = " << hasil << endl;

hasil = a >= b;

cout << "a >= b = " << hasil << endl;

hasil = a <= b;

cout << "a <= b = " << hasil << endl;

hasil = a == b;

cout << "a == b = " << hasil << endl;

hasil = a != b;

cout << "a != b = " << hasil << endl;

return 0;

}
.4 Operator Logika

Kalau kamu pernah belajar logika matematika, pasti tidak akan asing dengan
operator ini.

NAMA OPERATOR SIMBOL


Logika AND &&
Logika OR ||
Negasi Kebalikan !

Operator Logika digunakan untuk membuat operasi logika.

Bagaimana Cara Pengerjaan nya?

int main(){

int c = 1; // true

int d = 0; // false

bool hasil;

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

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

// Contoh logika AND

hasil = c && d;

cout << "c && d = " << hasil << endl;

// Contoh logika OR

hasil = c || d;

cout << "c || d = " << hasil << endl;

// Contoh logika NOT

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

return 0;

}
.5 Operator Bitwise

Operator bitwise merupkan operator yang digunakan untuk operasi berdasarkan bit
(biner) dari sebuah nilai.

NAMA OPERATOR SIMBOL


AND &
OR |
XOR ^
NOT/Komplemen ~
Left Shift <<
Right Shift >>

Buat yang sudah pernah belajar sistem bilangan dan sistem digital akan mudah memahami
cara kerja operator ini.

Bagaimana Cara Pengerjaan nya?

#include <iostream>

using namespace std;

int main(){

int a = 13;

int b = 6;

int hasil;

// contoh menggunakan operator bitwise and

hasil = a & b;

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

return 0;

}
.6 Operator Lain – Lain

Selain dari operator yang kita bahas di atas, terdapat beberapa operator lain yang harus
diketahui:

NAMA OPERATOR SIMBOL KETERANGAN


Alamat Memori & Untuk Mengambil Alat
Memori
Pointer * Untuk Membuat Pointer
Ternary ?: Untuk Membuat Kondisi
Increment ++ Untuk Menambah
Decrement -- Untuk Mengurangi

Operator & jika digunakan pada satu variabel, akan berfungsi untuk mengambil alamat
memori dari variabel tersebut.

Dan operator * kan berfungsi untuk membut sebuah pointer.

#include <iostream>

using namespace std;

int main(){

int a = 7;

int *ptr_a = &a;

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

// mengubah nilai a dari pointer

cout << "Nilai a awal = " << a << endl;

*ptr_a = 23;

cout << "Nilai a diubah = " << a << endl;

return 0;

}
Berikutnya ada operator ternary untuk membuat kondisi. Cara kerjanya seperti  percabangan
if/else.

#include <iostream>

using namespace std;

int main(){

int b = 5;

// contoh menggunakan operator ternary

string hasil = b > 1 ? "benar": "salah";

cout << "b > 1 adalah " << hasil << endl;

return 0;

}
Terakhir ada operator increment dan decrement untuk menambah dan mengurangi nilai
dengan 1.

#include <iostream>

using namespace std;

int main(){

int b = 4;

// increment b

b++;

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

// increment lagi b

++b;

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

// decrement b

b--;

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


// decrement lagi b

--b;

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

return 0;

4.INPUT & OUTPUT

Input adalah sesuatu data yang kita masukan ke dalam program.

Input biasanya diambil dari perangakat inputan seperti keyboard, mouse, kamera,
microphone, dll.

Proses adalah langkah-langkah yang harus dilakukan program untuk menghasilkan output.

Output adalah informasi yang dihasilkan setelah dilakukan proses. Output biasanya


ditampilkan ke layar komputer.

Pada bahasa pemrograman C++, terdapat beberapa fungsi dasar untuk menampilkan output
dan mengambil input.

Fungsi Output pada C++


C++ memiliki empat fungsi dasar untuk menampilkan output:

1. cout untuk menampilkan teks ke layar;


2. cerr untuk menampilkan error;
3. clog untuk menampilkan log;
4. printf() untuk menampilkan output, fungsi ini dari C;

Kita akan fokus memabahas yang dua saja, yakni cout dan printf().

Dikarenakan cerr dan clog, cara pakainya sama seperti cout.

Bedanya sih pada konteks penggunaanya, yakni untuk error dan log.

*FUNGSI COUT

Fungsi cout adalah fungsi standar pada C++ untuk menampilkan output ke layar.

Berikut ini struktur dasar fungsi cout:

Setelah simbol << kita bisa menuliskan teks yang akan ditampilkan ke layar.


Teks harus diapit dengan tanda petik dan untuk membuat baris baru bisa
menggunakan endl atau simbol \n.

Pembuatan baris baru bersifat opsional, terserah kita mau ditambahkan atau tidak.

cout << "Namaku adalah ";

cout << "Muhammad Alfarezy";


Maka outputnya akan ditampilkan dalam satu baris:

Namaku adalah Muhammad Alfarezy


Sedangkan kalau kita membuat menggunakan endl atau \n

cout << "Namaku adalah " << endl;

cout << "Muhammad Alfarezy";


Hasilnya akan ditampilkan dalam dua baris:

Namaku Adalah

Muhammad Alfarezy
Apapun setelah simbol << akan ditampilkan ke layar. Jika kita ingin menampilkan variabel,
kita bisa menulisnya seperti ini:

string nama = "Muhammad Alfarezy Cannavaro";

cout << "Hello " << nama << endl;


Hasilnya:

Hello Muhammad Alfarezy Cannavaro


Bukankah Begitu Gampang Teman Teman?
Mari Kita Coba Praktikan Langsung Kita Membuat Program Yang sederhana

#include <iostream>

using namespace std;

int main(){

cout << "=========== PROGRAM OUTPUT ===========" << endl;

cout << "Program ini adalah program\n";

cout << "Menampilkan contoh program yang telah saya buat\n";

cout << "Semangat Buat Teman Teman Aslab\n";

cout << "Semoga Sehat Selalu.\n";

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

cout << endl;

cout << "Program ini dibuat oleh Muhammad Alfarezy Cannavaro" << endl;

return 0;

Output:
*FUNGSI PRINTF

Fungsi printf() merupakan fungsi yang aslinya dari bahasa C, tapi bisa juga dipakai pada
C++.

Fungsi printf() merupakan fungsi untuk menampilkan output ke layar komputer.

Fungsi ini terdapat pada library <stdio.h> dan juga <iostream>.

Berikut ini struktur dasar fungsi printf():

Mari Kita Perhatikan Dengan Seksama:

"format" adalah sebuah teks (string) untuk ditampilkan. Lalu tanda ... akan berisi


sebuah variabel atau nilai untuk ditampilkan berdasarkan format yang diberikan
pada teks "format".

#include <iostream>

using namespace std;

int main(){

printf("Hello, ini Teks Output\n");

printf("Nama saya %s\n", "Muhammad Alfarezy Cannavaro");

printf("Usia saya %d\n", 18);

return 0;

Output:

Ada beberapa hal yang perlu di perhatikan…

Pada fungsi printf() kita menggunakan simbol %s, %d, dan \n untuk format teks.


Disini kita akan membahas arti dari simbol tersebut:

 %s adalah simbol untuk menampilkan nilai string;


 %d adalah simbol untuk menampilkan nilai angka atau bilangan desimal;
 \n adalah simbol untuk membuat baris baru.

Selain tiga simbol diatas, masih banyak lagi simbol yang lain yang harus di diketahui.

SIMBOL ARTI ATAU FUNGSI


%c untuk menampilkan karakter
%s untuk menampilkan teks (string)
%d, %i untuk menampilkan bilangan desimal
%f untuk menampilkan bilangan pecahan
%o untuk menampilkan bilangan oktal
%x untuk menampilkan bilangan
heksadesimal
\t untuk membuat tabs

Fungsi Input pada C++


Sementara untuk mengambil input, C++ memiliki fungsi cin dan bisa juga
menggunakan scanf() dari bahasa C.

*FUNGSI CIN

Fungsi cin (c input) adalah fungsi untuk mengambil input dari keyboard.

Berikut ini bentuk dasar fungsi cin:

Fungsi cin membutuhkan variabel untuk menyimpan data yang diinputkan.

variabel berfungsi untuk meyimpan data saat program berjalan.


Mari Gunakan Contoh Progam Fungsi ini:

#include <iostream>

using namespace std;

int main(){

string nama;

cout << "Tuliskan nama anda: ";

cin >> nama;

cout << "HALLO " << nama;

cout << " Selamat datang di Aplikasi Input !" << endl;

return 0;

Output:

*FUNGSI SCANF

Fungsi scanf() sebenarnya dari bahasa C, tapi bisa juga digunakan pada C++.

Fungsi scanf() adalah fungsi untuk mengambil input dari keyboard. Fungsi ini memiliki
format seperti fungsi printf().

Format yang diberikan tergantung dari jenis tipe data apa yang ingin kita ambil.

Misalnya mau mengambil angka, maka kita bisa pakai %d atau %i.


Mari Kita Praktikkan Ke Program Fungsi Ini:

#include <iostream>

using namespace std;

int main () {

// membuat variabel

char nama[40], umur[30];

printf("Nama: ");

scanf("%s", &nama);

printf("umur: ");

scanf("%s", &umur);

printf("\n------------------------------\n");

printf("Nama yang diinputkan: %s\n", nama);

printf("Umur yang diinputkan: %s\n", umur);

return 0;

Output:
Dalam menggunakan scanf(), kita dianjurkan menggunakan simbol & sebelum
nama variabel.

#include <stdio.h>

int main(){

int d, e, f;

printf("Inputkan nilai d: ");

scanf("%i", &d);

printf("Inputkan nilai e: ");

scanf("%i", &e);

f = d + e;

printf("Hasil d + e: %i", f);

Output:

Simbol & berfungsi untuk mengambil alamat memori dari sebuah variabel.

Fungsi scanf() membutuhkan tempat untuk menyimpan nilai yang akan diinputkan.

Karena itu kita memberikan simbol & di depan nama variabel untuk menentukan alamat
memori yang akan digunakan oleh scanf().
5.ARRAY

Apa yang akan kamu lakukan jika diminta untuk menyimpan banyak data di program?

Misalkan kita ingin menyimpan nama-nama teman untuk data kontak.

Mungkin saja, kita akan menyimpannya seperti ini:

string namaKontakWA1 = "Ezy";

string namaKontakWA2 = "Indro";

string namaKontakWA3 = "Hada";

string namaKontakWA4 = "Faisal";

string namaKontakWA5 = "Wendra";

Apa itu Array?


Array merupakan struktur data yang digunakan untuk menyimpan sekumpulan
data dalam satu tempat.

Setiap data dalam Array memiliki indeks, sehingga kita akan mudah memprosesnya.

Indeks array selalu dimulai dari angka nol (0).

Pada teori struktur data ukuran array akan bergantung dari banyaknya data yang disimpan
di dalamnya.

Cara Membuat Array pada C++


Pada C++, array dapat kita buat dengan cara seperti ini.

// membuat array kosong dengan tipe data integer dan panjang 10

int nama_array[10];

// membuat array dengan langsung diisi

int nama_arr[4] = {0, 3, 2,8}

Cara membuat array hampir sama seperti cara membuat variabel biasa.

Bedanya… pada array kita harus menentukan panjangnya.

Cara Mengambil Data dari Array


Seperti yang sudah kita kethaui…
Array akan menyimpan sekumpulan data dan memberinya nomer indeks agar mudah
diakses.

Indeks array selalu dimauli dari nol 0.

Misalkan kita punya array seperti ini:

char huruf[6] = {'a', 'b', 'c', 'd', 'e', 'f'};


Bagaimana cara mengambil huruf c?

Jawabannya:

huruf[2];
Mengapa bukan huruf[3]?

Indeks Array Selalu dimulai Dari 0.

Disini kita akan mencoba membuat program untuk array

#include <iostream>

using namespace std;

int main(){

char huruf[6] = {'a', 'b', 'c', 'd', 'e', 'f'};

// mengambil data pada array

cout << "Huruf: " << huruf[2] << endl;

return 0;

}
Output:
Mengisi Ulang Data pada Array
Data pada array dapat kita isi ulang dengan cara seperti ini:

huruf[2] = 'g';

Maka isi array huruf pada indeks ke-2 akan bernilai 'z'.

Kalau tidak percaya…

Mari Kita coba buktikan.

#include <iostream>

using namespace std;

int main(){

// isi awal array

char huruf[6] = {'a', 'b', 'c', 'd', 'e', 'f'};

// mengubah isi data array

huruf[2] = 'g';

// mencetak isi array

cout << "Huruf: " << huruf[2] << endl;

return 0;

Output:
Contoh Lain Untuk Programnya:

#include <iostream>

using namespace std;

int main(){

// contoh membuat array kosong

int nilai[5];

// contoh mengisi array

nilai[0] = 38;

nilai[1] = 45;

nilai[2] = 79;

nilai[3] = 35;

nilai[4] = 75;

// mencetak isi array

cout << "Nilai ke-1: " << nilai[0] << endl;

cout << "Nilai ke-2: " << nilai[1] << endl;

cout << "Nilai ke-3: " << nilai[2] << endl;

cout << "Nilai ke-4: " << nilai[3] << endl;

cout << "Nilai ke-5: " << nilai[4] << endl;

return 0;

Output:
Menggunakan Perulangan dan Array
Pada contoh di atas, kita menggunakan perintah cout secara berulang untuk mencetak
semua isi array.

cout << "Nilai ke-1: " << nilai[0] << endl;

cout << "Nilai ke-2: " << nilai[1] << endl;

cout << "Nilai ke-3: " << nilai[2] << endl;

cout << "Nilai ke-4: " << nilai[3] << endl;

cout << "Nilai ke-5: " << nilai[4] << endl;

Apabila Isi Array Tersebut ada ribuan apakah kalian sanggup Mengisi Array Tersebut satu
persatu,Tentu Tidak kan?

Oleh Sebab itu kitab isa memanfaatkan perulangan untuk mencetaknya.

#include <iostream>

using namespace std;

int main(){

// contoh membuat array kosong

int nilai[5];

// contoh mengisi array

nilai[0] = 38;

nilai[1] = 45;

nilai[2] = 79;

nilai[3] = 35;

nilai[4] = 75;

// mencetak isi array dengan perulangan

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

printf("Nilai ke-%d: %d\n", i, nilai[i]);

}
return 0;

Jauh lebih sederhana bukan…

Tapi ada yang masih kurang.

Pada perulangan di atas kita memberikan batas maksimal secara manual, yaitu:  i < 5.

Nilai 5 seharusnya diganti dengan ukuran atau jumlah isi array.

Sehingga akan menjadi seperti ini:

int length = sizeof(nilai) / sizeof(*nilai);

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

printf("Nilai ke-1: %d\n", nilai[i]);

Mengambil Panjang Array


Ada dua cara untuk mendapatkan panjang array:

1. Partama cara seperti di atas (seperti bahasa C);


2. Menggunakan Class array dari C++.

Kita bahas dulu cara yang pertama..

Pada contoh di atas, kita menggunakan fungsi sizeof() untuk mengambil panajang atau


ukuran array.

Fungsi sizeof() sebenarnya akan mengambil ukuran memori dari array.

Misalkan saya mempunyai array seperti ini:

int nilai[2] = {3, 4};


Isi array-nya berupa integer, tipe data integer memiliki ukuran 4 byte dalam
memori. Maka ukuran array tersebut adalah 8 byte.

Lalu bagaimana cara mendapatkan banyaknya isi array?

Karena di bahasa C belum memiliki fungsi khusus untuk mengambil banyaknya isi
array.
Kita harus membaginya dengan panjang pointernya.

Disini saya akan memberikan contohnya:

int array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

/* ukuran array dalam byte */

int size = sizeof(array);

/* banyaknya isi array `array` */

int length = sizeof(array) / sizeof(*array);

Kita Akan Membuktikan Di Program:

#include<iostream>

#include <stdio.h>

using namespace std;

int main(){

// membuat array

string contact[] = {"Ezy", "Indro", "Hada", "Faisal", "Wendra"};

// mengambil banyaknya isi array

int length = sizeof(contact) / sizeof(*contact);

printf("Banyaknya isi array nilai: %d\n", length);

Output:
Program Hitung Rata-Rata

Anggap saja kita diminta untuk membuat program untuk menghitung tinggi rata-rata dari
sepuluh orang.

Pertama kita pasti akan membutuhkan sebuah array dengan panjang 10 yang berisi
kumpulan tinggi badan.

int berat_badan[10] = {85, 65, 90, 57, 84, 56, 63, 76, 71, 40};

Kita Langsung Terapkan Ke Program…

#include <iostream>

using namespace std;

int main(){

// membuat array dari berat badan

int Berat_badan[10] = {85, 65, 66, 57, 84, 56, 63, 76, 71, };

// length itu sama dengan n

int length = sizeof(Berat_badan) / sizeof(Berat_badan[0]);

int sum = 0;

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

sum += Berat_badan[i];

// rata-rata berat badan

float rata_rata = (float)sum / (float)length;

printf("Rata-rata berat badan: %.2f\n", rata_rata);

return 0;

Output:
Array Multi Dimensi
Array yang kita buat pada contoh-contoh program di atas adalah array satu dimensi.

Array bisa dibuat dua dimensi bahkan lebih.

Array multidimensi biasanya digunakan untuk membuat matriks.

Contoh array dua dimensi:

int matriks[3][3] = {

{1, 3, 5},

{3, 5, 1},

{2, 6, 3}

};

Array dua dimensi biasanya digunakan untuk membuat matriks.

Lalu bagaimana cara mengambil data dari array dua dimensi?

matriks[1][2];

Lalu Disini saya akan memberikan contoh programnya:

#include <iostream>

using namespace std;

int main(){

int matriks[3][3] = {

{1, 3, 5},

{3, 5, 1},

{2, 6, 3}

};

printf("Isi Data pada indeks ke-(1,0): %d\n", matriks[1][0]);


return 0;

Output:

6.PERCABANGAN

Apa itu percabangan dan kenapa dinamakan percabangan?

Buat yang belum pernah kuliah atau belajar tentang algoritma dan flowchart, mungkin ini
istilah yang baru pertama kamu dengar.

Isitilah ini sebenarnya untuk menggambarkan alur program yang bercabang.

Pada flow chart, logika “jika…maka” digambarkan dalam bentuk cabang.

Karena itu, ini disebut percabangan.

Selain percabangan, struktur ini juga disebut: control flow, decision, struktur kondisi,


Struktur if, dsb.

Percabangan akan mampu membuat program berpikir dan menentukan tindakan sesuai
dengan logika/kondisi yang kita berikan.

Pada pemrograman C++, terdapat 6 bentuk percabangan yang harus kita ketahui.

Langsung Saja Ke Pembahasannya:


1.Percabangan IF

Percabangan if merupakan percabangan yang hanya memiliki satu blok pilihan saat kondisi


bernilai benar. Mari kita coba dalam program C++.

#include <iostream>

using namespace std;

int main(){

cout << "=== Contoh Program Pembayaran By Alfarezy ===" << endl;

unsigned int total_belanja;

cout << "Masukan total belanja Anda: ";

cin >> total_belanja;

// Contoh menggunakan percabangan if

if(total_belanja > 100000){

cout << "Selamat! anda dapat hadiah" << endl;

cout << "Terimakasih sudah berbelanja di toko kami" << endl;

return 0;

Output:
Kompilasi kode tersebut dengan perintah:

g++ if.cpp -o if

Lalu Eksekusi Dengan Perintah Ini:

./if

Perhatikan pada bagian ini:

// contoh menggunakan percabangan if

if(total_belanja > 100000){

cout << "Selamat! anda dapat hadiah" << endl;

Inilah yang disebut blok program.

Blok program berisi sekumpulan ekpresi dan statement untuk dikerjakan oleh komputer.

Blok program pada C++, selalu diawali dengan tanda buka kurung kurawal { dan akan
diakhiri dengan tutup kurung kurawal }.

Apabila di dalam blok hanya terdapat satu baris ekspresi atau statement, maka boleh tidak
ditulis tanda kurungnya.

if (total_belanja > 100000)

cout << "Selamat! anda dapat hadiah" << endl;


2.Percabangan IF/ELSE

Percabangan if/else merupakan percabangan yang memiliki dua blok pilihan.

Blok pilihan pertama untuk kondisi benar, dan pilihan kedua untuk kondisi salah (else).

Untuk lebih Detailnya, mari kita coba Praktikan dalam program.

#include <iostream>

using namespace std;

int main(){

string password;

cout << "========= Login Dulu Teman =========" << endl;

cout << "Masukan password: ";

cin >> password;

// percabangan if/else

if (password == "kopidulubro"){

cout << "Selamat datang Teman KU!" << endl;

} else {

cout << "Password salah, Silahkan coba lagi!" << endl;

cout << "Terimakasih sudah menggunakan aplikasi ini Ya Jumpa Lagi!" << endl;

return 0;

Output Apabila Berhasil:


Output Apabila Salah:

3.Percabangan IF/ELSE/IF

Percabangan if/else/if merupakan percabangan yang memiliki lebih dari dua blok pilihan.

Dan Saya Akan Memberikan Contohnya:

#include <iostream>

using namespace std;

int main(){

int nilai;

string grade;

cout << "=== Program Grade Nilai by Alfarezy ===" << endl;

cout << "Inputkan nilai akhir Anda: ";

cin >> nilai;

// Contoh menggunakan percabangan if/esle/if

if (nilai >= 90) {

grade = "A";

} else if (nilai >= 80) {

grade = "B+";

} else if (nilai >= 70) {


grade = "B";

} else if (nilai >= 60) {

grade = "C+";

} else if (nilai >= 50) {

grade = "C";

} else if (nilai >= 40) {

grade = "D";

} else if (nilai >= 30) {

grade = "E";

} else {

grade = "F";

cout << "Grade anda: " << grade << endl;

return 0;

Output:

Anda Tinggal Memasukkan Nilai Akhir Anda Dan Anda Akan Mendapatkan Grade anda.
4.Percabangan Switch/Case

Percabangan switch/case adalah bentuk lain dari percabangan if/else/if.

Strukturnya Kurang Lebih seperti ini:

switch(variabel){

case <value>:

// blok kode

break;

case <value>:

// blok kode

break;

default:

// blok kode

Kita dapat mermbuat blok kode (case) sebanyak yang diinginkan di dalam blok switch.

Pada <value>, kita bisa isi dengan nilai yang nanti akan dibandingkan dengan varabel.

Setiap case harus diakhiri dengan break. Khusus untuk default, tidak perlu diakhiri


dengan break karena dia terletak di bagian akhir.

Pemberian break bertujuan agar program berhenti mengecek case berikutnya saat


sebuah case terpenuhi.

Contoh Program:

#include <iostream>
using namespace std;

int main(){

char grade;

cout << "Inputkan grade: ";

cin >> grade;

switch (toupper(grade)){

case 'A':

cout << "Luar biasa!" << endl;

break;

case 'B':

case 'C':

cout << "Bagus!" << endl;

break;

case 'D':

cout << "Kurang Bagus" << endl;

break;

case 'E':

case 'F':

cout << "Anda remidi" << endl;

break;

default:

cout << "Grade Salah!" << endl;


}

return 0;

Output Apabila Menginput Grade A:

Output Apabila Menginput Grade B-C:

Output Apabila Menginput D:

Output Apabila Mengintput E-F:

Output Apabila Menginput Salah:

Kita menggunakan fungsi toupper() untuk mengubah huruf kecil menjadi huruf kapital atau
huruf besar.

switch (toupper(grade)){

...

Mengapa menggunakan toupper()?
Ini karena agar kita dapat menginputkan huruf kecil dan huruf besar untuk
mengecek grade.

5.Percabangan dengan Opertor Ternary

Percabangan menggunakan opreator ternary merupakan bentuk lain dari percabangan


if/else.

Bisa dibilang:

Bentuk singkatnya dari if/else.

Operator ternary juga dikenal dengan sebutan operator kondisi (conditional operator).

Bentuk strukturnya kurang lebih seperti ini:

kondisi) ? true : false

Bagian kondisi dapat kita isi dengan ekspresi yang menghasilkan nilai true dan false.

Lalu setlah tanda tanya ? adalah bagian pilihan.

Jika kondisi bernilai benar, maka true yang akan dipilih. Tapi kalau salah, maka false yang


akan dipilih.

Untuk lebih detailnya, akan kita coba deprogram:

#include <iostream>

using namespace std;

int main(){

int jawaban;

cout << "Berapakah hasil dari Perkalian 3*4?" << endl;

cout << "jawab> ";

cin >> jawaban;


string hasil = (jawaban == 12) ? "Benar" : "Salah";

cout << "Jawaban anda: " << hasil << endl;

return 0;

Output Jika Benar:

Output Jika Salah:

6.Percabangan Bersarang (Nested)

Kita juga dapat membuat blok percabangan di dalam percabangan. Ini disebut percabangan
bersarng atau nested if.

Disini Saya Akan Memberikan Contoh:

#include <iostream>

using namespace std;

int main(){

string username, password;

cout << "=== Welcome to My Program By Alfarezy ===" << endl;

cout << "Username: ";

cin >> username;

cout << "Password: ";

cin >> password;


if (username == "Alfarezy"){

if (password == "kopidulubro"){

cout << "Selamat datang TEMANKU !" << endl;

} else {

cout << "Password salah, coba lagi TEMANKU!" << endl;

} else {

cout << "Anda tidak terdaftar,Mohon Daftar Dulu" << endl;

return 0;

Output Jika Benar:

Output Jika Tidak Terdaftar:


7.Perulangan

Apa yang akan kamu lakukan saat disuruh mencetak kalimat berulang-ulang?

Misalnya:

Tolong tampilkan kalimat "Tutorial Pemrograman C++!" sebanyak 10x ke layar!

Mungkin kamu akan menggunakan cout sebanyak 10 kali seperti ini:

#include <iostream>

using namespace std;

int main(){

cout << "Tugas Pemrograman C++ IFB 2020!" << endl;

cout << "Tugas Pemrograman C++ IFB 2020!" << endl;

cout << "Tugas Pemrograman C++ IFB 2020!" << endl;

cout << "Tugas Pemrograman C++ IFB 2020!" << endl;

cout << "Tugas Pemrograman C++ IFB 2020!" << endl;

cout << "Tugas Pemrograman C++ IFB 2020!" << endl;

cout << "Tugas Pemrograman C++ IFB 2020!" << endl;

cout << "Tugas Pemrograman C++ IFB 2020!" << endl;

cout << "Tugas Pemrograman C++ IFB 2020!" << endl;


cout << "Tugas Pemrograman C++ IFB 2020!" << endl;

return 0;

Apakah boleh seperti ini?

Ya, boleh-boleh saja.

Tapi…

Bagaimana kalau nanti mau menampilkan sebanyak 1000 kali.

Pasti capek donk ngetiknya.

Karena itu, kita harus menggunakan perulangan.

Perulangan akan membantu kita mengeksekusi kode yang berulang-ulang, berapapun yang
kita mau.

Ada empat macam bentuk perulangan pada C.

Secara umum, dibagi menjadi dua kelompok.

Yaitu: counted loop dan uncounted loop.

Perbedaanya:

 Counted Loop merupakan perulangan yang jelas dan sudah tentu banyak kali
perulangannya.
 Sedangkan Uncounted Loop, merupakan perulangan yang tidak jelas berapa kali ia
harus mengulang.

Perulangan yang termasuk dalam Counted Loop:

1. Perulangan For

Perulangan yang termasuk dalam Uncounted Loop:

1. Perulangan While
2. Perulangan Do/While

Kita akan bahas satu persatu:

1.Blok Perulangan For


Perulangan for merupakan perulangan yang termasuk dalam couted loop, karena sudah jelas
berapa kali ia akan mengulang.

Bentuknya kodenya seperti ini:

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

printf("Perulangan ke-%i\n", i);

}
Yang perlu diperhatikan adalah kondisi yang ada di dalam kurung setelah kata  for.

Kondisi ini akan menentukan:

 Hitungan akan dimulai dari 0 (i = 0);


 Hitungannya sampai berapa? Sampai i < 10;
 Lalu di setiap perulangan i akan bertambah +1 (i++).

Variabel i pada perulangan for berfungsi untuk menyimpan nilai hitungan.

Jadi setiap perulangan dilakukan nilai i akan selalu bertambah satu. Karena kita
menentukannya di bagian i++.

Contoh program loop dengan for:

#include <iostream>

using namespace std;

int main(){

cout << "Welcome To Program Perulangan" << endl;

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

printf("Perulangan ke-%i\n", i);

return 0;

}
Apakah nama variabelnya harus selalu i?

Tidak.

Kita juga bisa menggunakan nama lain.

Misalnya:

#include <iostream>

using namespace std;

int main(){

cout << "Welcome To Program Perulangan" << endl;

for(int Counter = 0; Counter < 10; Counter += 2){

printf("Perulangan ke-%i\n", Counter);

return 0;

Pada contoh tersebut, kita melakukan perulangan dimulai dari nol 0. Lalu di setiap
perulangan nilai variabel counter akan ditambah 2 (counter+=2).

Bagaimana kalau counter perulangannya dimulai dari akanga yang lebih besar sampai yang
ke paling kecil?

Ini biasanya kita buat saat ingin menghitung mundur…

Caranya gampang.

Kita tinggal isi nilai counter dengan nilai terbesarnya.

Misalnya kita akan mulai hitungan dari 10 sampai ke 0.

Maka nilai counter, kita isi awalnya dengan 10.

Lalu di kondisi perbandingannya, kita berikan counter > 0. Artinya perulangan akan


dilakukan selama nilai counter lebih besar dari 0.

Lalu kita kurangi (-1) nilai counter di setiap perulangan (counter--).

for(int counter = 10; counter > 0; counter--){


printf("Perulangan ke-%i\n", counter);

Mengapa tidak sampai nol (0)?

Karena kondisi yang kita berikan counter > 0. Apabila counter bernilai 0, maka kondisi ini
akan menjadi false.

Kecuali kita menggunakan operator lebih besar sama dengan (>=), maka
jika counter bernilai 0, kondisi akan menjadi true.

2.Perulangan While

Perulangan while merupakan perulangan yang termasuk dalam perulangan uncounted loop.

Perulangan while juga dapat menjadi perulangan yang counted loop dengan


memberikan counter di dalamnya.

Untuk memahami perulangan ini…

Kita Akan Membuat contoh programnya:

#include <iostream>

using namespace std;

int main(){

char ulangi = 'y';

int counter = 0;

// perulangan while

while(ulangi == 'y'){

printf("Apakah kamu mau mengulang lagi?\n");

printf("Jawab (y/t): ");


cin >> ulangi;

// increment counter

counter++;

printf("\n\n----------\n");

printf("Perulangan Selesai Teman!\n");

printf("Kamu mengulang sebanyak %i kali.\n", counter);

return 0;

Output:

Coba perhatikan blok kode while:

// perulangan while

while(ulangi == 'y'){

printf("Apakah kamu mau mengulang lagi?\n");

printf("Jawab (y/t): ");

cin >> ulangi;

// increment counter
counter++;

Di sana… Perulangan akan terjadi selama variabel ulangi brenilai y.

Lalu kita menggunakan fungsi scanf() untuk mengambil input.

Selama kita menjawab y pada input, maka perulangan akan terus dilakukan.

Tapi kalau kita jawab yang lain, maka perulangan akan dihentikan.

Karena kondisi perulangannya tidak terpenuhi.

3.Perulangan Do/While

Perulangan do/while sama seperti perulangan while.

Perbedaanya:

Perulangan do/while akan melakukan perulangan sebanyak 1 kali terlebih dahulu, lalu


mengecek kondisi yang ada di dalam kurung while.

Bentuk kodenya Kurang lebih seperti ini:

do {

// blok kode yang akan diulang

} while (<kondisi>);

Jadi perbedaanya:

Perulangan do/while akan mengecek kondisi di belakang (sesudah mengulang),


sedangkan while akan mencek kondisi di depan atau awal (sbelum mengulang).

Contoh Programnya:
#include <iostream>

using namespace std;


int main(){

char ulangi = 'y';

int counter = 0;

do {

printf("Apakah kamu mau mengulang lagi?\n");

printf("Jawab (y/t): ");

cin >> ulangi;

// increment counter

counter++;

} while(ulangi == 'y');

printf("\n\n----------\n");

printf("Perulangan Selesai Teman!\n");

printf("Kamu mengulang sebanyak %i kali.\n", counter);

return 0;

Output:

Contoh tersebut sama seperti contoh pada perulangan while.

Saat perulangan pertama, cobalah untuk membatalkan perulangannya dengan menjawab  t.

4.Perulangan Bersarang (Nested Loop)

Di dalam blok perulangan, kita juga dapat membuat perulangan.


Ini disebut dengan nested loop atau perulangan bersarang atau perulangan di dalam
perualangan.

Mari kita coba lihat contohnya:

#include <iostream>

using namespace std;

int main(){

cout << "Welcome Program Looping (Perulangan)" << endl;

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

for(int j = 0; j < 10; j++){

printf("Perulangan ke (%d, %d)\n", i, j);

return 0;

Output:
Contoh Output dan masih banyak perulangan Yang Terjadi di outputnya.

8.STRUCT

Apa itu Struct?


Structure atau struct adalah kumpulan dari beberapa variabel dengan beragam tipe data
yang dibungkus dalam satu varabel.
Struct juga dikenal dengan records dalam bahasa pemrograman lain seperti Pascal.

Mengapa kita membutuhkan struct?

Sekarang coba pikirkan…

Misalnya kita ingin menyimpan data mahasiswa. Kita bisa saja melakukannya seperti ini:

char name[] = "Muhammad Alfarezy Cannavaro";

char address[] = "Samarinda";

int age = 18;


Lalu bagaimana kalau ada lebih dari satu mahasiswa?

Mungkin bisa saja kita buat seperti ini:

char name[] = "Muhammad Alfarezy Cannavaro";

char address[] = "Samarinda";

int age = 18;

char name2[] = "Rifqi Riawan";

char address2[] = "Samarinda";

int age2 = 19;

char name3[] = "Muhammad Sheryza Vieri Afnanto";

char address3[] = "Samarinda";

int age3 = 19;

Cara terbaik adalah menyimpan data ini adalah menggunakan struct struct.

Cara Membuat Struct


Struct dapat kita buat dengan kata kunci struct kemudian diikuti dengan nama struct dan
isinya.
Contohnya:

struct Mahasiswaunmul

char *name;

char *address;

int age;

};

Catatan: kita menggunakan pointer * untuk data string


Kita sudah tahu cara membuat struct, lalu bagaimana cara menggunakannya?

Cara Menggunakan Struct


Agar struct dapat digunakan, kita harus membuat variabel untuknya.

Contoh Programnya:

#include <stdio.h>

// membuat struct

struct Mahasiswa {

char *name;

char *address;

int age;

};

void main(){

// menggunakan struct

struct Mahasiswa mhs1, mhs2;

// mengisi nilai ke struct

mhs1.name = "Muhammad Alfarezy Cannavaro";

mhs1.address = "Samarinda";
mhs1.age = 18;

mhs2.name = "Muhammad Sheryza Vieri Afnanto";

mhs2.address = "Samarinda";

mhs2.age = 19;

// mencetak isi struct

printf("## Mahasiswa 1 ##\n");

printf("Nama: %s\n", mhs1.name);

printf("Alamat: %s\n", mhs1.address);

printf("Umur: %d\n", mhs1.age);

printf("## Mahasiswa 2 ##\n");

printf("Nama: %s\n", mhs2.name);

printf("Alamat: %s\n", mhs2.address);

printf("Umur: %d\n", mhs2.age);

Menggunakan typedef pada Struct
Kata kunci typedef adalah kata kunci untuk mendefinisikan tipe data baru.

Kita bisa menggunakan kata kunci ini di depan struct untuk menyatakannya sebagai tipe
data baru.

Contoh:

Tanpa typedef kita akan menggunakan struct seperti ini.

// membuat struct

struct Distance{
int feet;

float inch;

};

void main() {

// menggunakan struct

struct Distance d1, d2;

}
Nah, kalau menggunakan typedef akan menjadi seperti ini:

// membuat struct dengan typedef

typedef struct Distance{

int feet;

float inch;

} distances;

void main() {

// menggunakan struct

distances dist1, dist2, sum;

Struct Bersarang
Struct dapat dibuat bersarang (nested). Bersarang artinya ada struct di dalam struct.
Contoh Penerapannya:

struct complex

int imag;

float real;

};

struct number

struct complex comp;

int integers;

} num1, num2;
Lalu cara menggunanya akan seperti ini:

num1.integer = 13;

num1.comp.real = 45.12;

num2.comp.imag = 11;

Passing Struct ke dalam Fungsi


Struct dapat kita buat sebagai parameter untuk fungsi.
Contoh Penerapannya:

#include <stdio.h>

struct student

char nama[50];

int umur;

};

void main() {

struct student s1;

printf("Enter nama: ");

scanf("%[^\n]%*c", s1.nama);

printf("Enter umur: ");

scanf("%d", &s1.umur);

display(s1); // passing structure as an argument

// contoh membuat fungsi dengan struct sebagai parameter

void display(struct student s) {

printf("\nDisplaying information\n");

printf("Name: %s", s.nama);

printf("\nRoll: %d", s.umur);

9.FUNGSI
Dalam pemrograman, fungsi atau prosedur sering digunakan untuk membungkus program
menjadi bagian-bagian kecil.

Tujuannya agar program tidak menumpuk pada fungsi main() saja.

Bayangkan saja, kalau program kita tambah besar dan kompleks..

Kalau semua kodenya ditulis di dalam fungsi main(), maka kita akan kesulitan
membacanya.

Karena itu, kita harus menggunakan Fungsi.

Apa itu fungsi?

dan Bagaimana cara menggunakannya di C++?

Langsung Saja Kita Jelaskan:

Apa itu Fungsi?


Fungsi adalah sub-program yang bisa digunakan kembali baik di dalam program itu sendiri,
maupun di program yang lain.

Fungsi dapat menerima input dan menghasilkan output.

Contoh fungsi yang sering kita buat adalah fungsi main().

Fungsi ini memang wajib ada di setiap program C++, karena fungsi inilah yang akan
dieksekusi pertama kali saat program berjalan.

Seperti yang saya bilang tadi:

“Kalau kita menumpuk semua kode program di dalam fungsi main(), maka program akan
menjadi sulit terbaca.”

Karena itu, kita perlu membuat fungsi tersendiri agar program tidak berantakan.

Bagaimana cara buatnya?

Silahkan lanjutkan membaca:

Cara Membuat Fungsi pada Bahasa C++


Fungsi biasanya akan mengembalikan sebuah nilai dari hasil prosesnya. Karena itu, kita
harus menentukan tipe data untuk nilai yang akan dikembalikan.

Apabila fungsi tersebut tidak memiliki nilai kembalian, maka kita harus menggunakan
tipe void untuk menyatakan kalau fungsi tersebut tidak akan mengembalikan nilai apa-apa.

Contoh Penerapanya:

void nama_fungsi(){
cout << "Ini Adalah Sebuah Fungsi Bahasa C++\n";

}
Lalu untuk parameter bersifat opsional, boleh ada boleh tidak.

Tergantung dari fungsi yang dibuat. Jika fungsi itu membutuhkan input, maka kita harus
membuatkan paramter.

Tapi kalau tidak menerima input apapun, ya tidak perlu dibuat.

Fungsi yang tidak menerima input, kadang juga disebut dengan prosedur.

Okee..

Sekarang mari kita coba membuat fungsi pada program C++:

#include <iostream>

using namespace std;

// membuat fungsi say_hello()

void say_hello(){

cout << "Hello Selamat Datang Temannn!\n";

int main(){

// memanggil fungsi say_hello()

say_hello();

return 0;

Output:

Fungsi say_hello() dapat kita panggil berulang kali pada fungsi main().

#include <iostream>
using namespace std;

// membuat fungsi say_hello()

void say_hello(){

cout << "Hello Selamat Datang Temannn!\n";

int main(){

// memanggil fungsi say_hello()

say_hello();

say_hello();

say_hello();

return 0;

Output:
Deklarasi dan Definisi Fungsi
Pada contoh di atas, kita membuat fungsi dengan cara mendefinisikan langsung fungsinya.

Kita juga bisa membuatnya dengan deklarasi.

Contoh Penerapannya:

#include <iostream>

using namespace std;

// deklarasi fungsi

void say_hello();

int main(){

// memanggil fungsi say_hello()

say_hello();

say_hello();

say_hello();

return 0;

// Definisi fungsi

void say_hello(){

cout << "Hello Selamat Datang Temannn!\n";

Output:
Apa bedanya dengan yang tadi?

Jika kita membuat fungsi secara definisi, kita harus membuat fungsinya di atas fungsi main.

Jika dibuat di bawah fungsi main, maka program akan error.

Soalnya program C++ dieksekusi dari atas ke bawah.

Tapi berkat deklarasi, masalah ini bisa teratasi.

Jadi kamu mau pilih cara yang mana?

Deklarasi dulu atau langsung definisikan fungsinya?

Fungsi dengan Parameter


Parameter adalah variabel yang menyimpan nilai untuk diproses di dalam fungsi.

Parameter berfungsi untuk menyimpan nilai yang akan diinputkan ke fungsi.

Contoh Programnya:

void say_hello(string name){

cout << "Hello " << name << "!\n";

Perhatikan!

nama adalah sebuah parameter dengan tipe string.

Parameter ini akan menyimpan nilai yang diinputkan ke fungsi say_hello().

Lalu, bagaimana cara kita memberikan input ke fungsi?

Berikut caranya:

say_hello("Muhammad Alfarezy Cannavaro");


Perhatikan!

"Muhammad Alfarezy Cannavaro" adalah nilai yang akan kita berikan ke fungsi.

Biar lebih paham… mari kita coba dalam program.

Disini Kita akan membuat programnya:


#include <iostream>

using namespace std;

void say_hello(string name){

cout << "Hello " << name << "!\n";

int main(){

say_hello("Alfarezy");

say_hello("Afnan");

say_hello("Indro");

return 0;

Output:

Hasil outputnya akan menyesuaikan dengan nilai parameter yang kita berikan ke fungsi.

Lalu bagaimana kalau ada lebih dari satu parameter?

Sangat Mudah Mari kita coba……

Tinggal ditambahkan dan dipisah dengan tanda koma seperti ini:

void add(int a, int b){

printf("%d + %d = %d\n", a, b, a+b);

Langsung Kita Coba Membuat Program Baru Untuk Mencobanya:


#include <iostream>

using namespace std;

void add(int a, int b){

printf("%d + %d = %d\n", a, b, a+b);

int main(){

add(4, 1);

add(2, 8);

add(2, 3);

return 0;

Output:

Fungsi yang Mengembalikan Nilai


Pada contoh di atas, kita memberikan nilai input ke fungsi berupa integer

lalu di dalamnya dilakukan operasi penjumlahan.

void add(int a, int b){

printf("%d + %d = %d\n", a, b, a+b);

Fungsi ini tidak mengembalikan apa-apa, karena tipe data yang diberikan pada nilai
kembalian adalah void.
Fungsi juga kadang harus menghasilkan output.

Mengapa?

Karena kadang kita membutuhkan hasil dari fungsi tersebut untuk digunakan pada proses
berikutnya.

Kita bisa menggunakan kata kunci return untuk mengembalikan nilai dari fungsi.

Contoh:

int add(int a, int b){

return a+b;

Maka fungsi add() akan mengembalikan nilai berupa integer dari hasil penjumlahan


nilai a dan b.

Mari kita coba contoh yang lain…

#include <iostream>

using namespace std;

float bagi(int a, int b){

float hasil = (float)a / (float)b;

return hasil;

int main(){

printf("Hasil 5/2: %.2f\n", bagi(5, 2));

return 0;

Output:
Variabel Lokal dan Variabel Global
Variabel lokal dan variabel global akan sering kita temukan dalam pembuatan fungsi.

Variabel global adalah variabel yang bisa diakses dari semua fungsi. Sedangkan variabel
lokal adalah variabel yang hanya bisa diakses dari dalam fungsi itu sendiri.

Contoh:

#include <iostream>

using namespace std;

// contoh membuat variabel global

int nilai = 9;

int main(){

// membuat variabel lokal

int nilai = 7;

// mencetak variabel

printf("Nilai: %d\n", nilai);

return 0;

Output:

Pada contoh di atas, kita membuat variabel global bernama nilai.

Fungsi ini berada di luar fungsi main.

Lalu di dalam fungsi main(), kita membuat variabel lagi bernama nilai dengan nilai yang
berbeda.

Variabel yang ada di dalam fungsi main() adalah variabel lokal.

Lalu, pertanyaanya:

Berapakah hasil outputnya?

Jawabannya: 7
Mengapa bisa 7?

Karena variabel nilai kita buat ulang di dalam fungsi main.

Sekarang coba hapus variabel lokal yang ada di dalam main, sehingga akan menjadi seperti
ini:

#include <iostream>

using namespace std;

// membuat variabel global

int nilai = 9;

int main(){

// membuat variabel lokal

//int nilai = 7;

// mencetak variabel

printf("Nilai: %d\n", nilai);

return 0;

Output:

Maka hasil outputnya akan 9. Karena variabel yang dipakai adalah variabel global.

Pass by Value dan Pass by Reference


Pass by value dan pass by reference adalah cara untuk memberikan nilai pada paramaeter.

Biasanya kita langsung memberikan nilai kepada parameter dengan cara seperti ini:

kali_dua(4);
Ini disebut pass by value, karena di sana kita memberikan nilai 4 secara langsung.
Nah kalau seperti ini:

kali_dua(&nama_variabel);

Contoh Programnya:

#include <iostream>

using namespace std;

void kali_dua(int *num){

*num = *num * 2;

int main(){

int angka = 9;

// memanggil fungsi

kali_dua(&angka);

// mencetak isi variabel

// setelah fungsi dipanggil

cout << "isi variabel angka Yang Ada = " << angka << endl;

return 0;

Output:

Fungsi kali_dua() memiliki parameter berupa pointer, artinya kita harus memberikan alamat


memori untuk pointer ini.

Pada saat pemanggilan, fungsi kali_dua() kita isi parameternya dengan alamat memori dari
variabel angka.

Maka hasilnya nilai variabel angka akan dikalikan dengan 2 berdasarkan rumus pada fungsi
yang kita berikan.
Fungsi Rekursif pada C++
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri.

Maksudnya?

Biasanya kita memanggil fungsi pada fungsi main atau fungsi yang lainnya. Namun, pada
fungsi rekursif

fungsi itu akan memanggil dirinya sendiri di dalam tubuh fungsi.

Mari Perhatikan Program Ini Dengan Seksama:

#include <iostream>

using namespace std;

// deklarasi fungsi

int sum(int n);

int main(){

int number, result;

printf("Enter a positive integer: ");

scanf("%d", &number);

result = sum(number);

printf("sum = %d", result);

return 0;

// definisi fungsi

int sum(int num){

if (num!=0)

return num + sum(num-1); // fungsi sum() memanggil dirinya sendiri

else

return num;

}
Output:

DAFTAR PUSTAKA

https://andhikanurafian.web.id/tipe-data-pemorgraman-c-dasar/

https://www.petanikode.com/cpp-operator/

https://www.petanikode.com/cpp-input-output/

https://www.petanikode.com/cpp-array/

https://www.petanikode.com/cpp-percabangan/

https://www.petanikode.com/cpp-perulangan/

https://www.petanikode.com/cpp-fungsi/

https://www.petanikode.com/c-struct/

Anda mungkin juga menyukai