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.
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(){
.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;
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(){
luas = phi*r*r;
getch();
}
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(){
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(){
getch();
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…
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.
Penjumlahan +
Pengurangan -
Perkalian *
Pembagian /
Sisa Bagi %
Bagaimana Cara Penggunaan nya?
#include <iostream>
int main(){
int d, a, i;
cin >> d;
cin >> a;
i = d + a;
return 0;
}
.2 Operator Penugasan
#include <iostream>
int main(){
int c, d;
c = 5;
d = 10;
return 0;
.3 Operator Pembanding
Sama Dengan ==
#include <iostream>
int main(){
int a = 8, b = 7;
bool hasil;
hasil = a > b;
hasil = a < b;
hasil = a >= b;
hasil = a <= b;
hasil = a == b;
hasil = a != b;
return 0;
}
.4 Operator Logika
Kalau kamu pernah belajar logika matematika, pasti tidak akan asing dengan
operator ini.
int main(){
int c = 1; // true
int d = 0; // false
bool hasil;
hasil = c && d;
// Contoh logika OR
hasil = c || d;
return 0;
}
.5 Operator Bitwise
Operator bitwise merupkan operator yang digunakan untuk operasi berdasarkan bit
(biner) dari sebuah nilai.
Buat yang sudah pernah belajar sistem bilangan dan sistem digital akan mudah memahami
cara kerja operator ini.
#include <iostream>
int main(){
int a = 13;
int b = 6;
int hasil;
hasil = a & b;
return 0;
}
.6 Operator Lain – Lain
Selain dari operator yang kita bahas di atas, terdapat beberapa operator lain yang harus
diketahui:
Operator & jika digunakan pada satu variabel, akan berfungsi untuk mengambil alamat
memori dari variabel tersebut.
#include <iostream>
int main(){
int a = 7;
cout << "Alamat memori variabel a adalah " << &a << endl;
*ptr_a = 23;
return 0;
}
Berikutnya ada operator ternary untuk membuat kondisi. Cara kerjanya seperti percabangan
if/else.
#include <iostream>
int main(){
int b = 5;
cout << "b > 1 adalah " << hasil << endl;
return 0;
}
Terakhir ada operator increment dan decrement untuk menambah dan mengurangi nilai
dengan 1.
#include <iostream>
int main(){
int b = 4;
// increment b
b++;
// increment lagi b
++b;
// decrement b
b--;
--b;
return 0;
Input biasanya diambil dari perangakat inputan seperti keyboard, mouse, kamera,
microphone, dll.
Pada bahasa pemrograman C++, terdapat beberapa fungsi dasar untuk menampilkan output
dan mengambil input.
Bedanya sih pada konteks penggunaanya, yakni untuk error dan log.
*FUNGSI COUT
Pembuatan baris baru bersifat opsional, terserah kita mau ditambahkan atau tidak.
Namaku Adalah
Muhammad Alfarezy
Apapun setelah simbol << akan ditampilkan ke layar. Jika kita ingin menampilkan variabel,
kita bisa menulisnya seperti ini:
#include <iostream>
int main(){
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++.
#include <iostream>
int main(){
return 0;
Output:
Selain tiga simbol diatas, masih banyak lagi simbol yang lain yang harus di diketahui.
*FUNGSI CIN
#include <iostream>
int main(){
string nama;
cout << " Selamat datang di Aplikasi Input !" << endl;
return 0;
Output:
*FUNGSI SCANF
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.
#include <iostream>
int main () {
// membuat variabel
printf("Nama: ");
scanf("%s", &nama);
printf("umur: ");
scanf("%s", &umur);
printf("\n------------------------------\n");
return 0;
Output:
Dalam menggunakan scanf(), kita dianjurkan menggunakan simbol & sebelum
nama variabel.
#include <stdio.h>
int main(){
int d, e, f;
scanf("%i", &d);
scanf("%i", &e);
f = d + e;
Output:
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?
Setiap data dalam Array memiliki indeks, sehingga kita akan mudah memprosesnya.
Pada teori struktur data ukuran array akan bergantung dari banyaknya data yang disimpan
di dalamnya.
int nama_array[10];
Cara membuat array hampir sama seperti cara membuat variabel biasa.
Jawabannya:
huruf[2];
Mengapa bukan huruf[3]?
#include <iostream>
int main(){
return 0;
}
Output:
Mengisi Ulang Data pada Array
Data pada array dapat kita isi ulang dengan cara seperti ini:
huruf[2] = 'g';
#include <iostream>
int main(){
huruf[2] = 'g';
return 0;
Output:
Contoh Lain Untuk Programnya:
#include <iostream>
int main(){
int nilai[5];
nilai[0] = 38;
nilai[1] = 45;
nilai[2] = 79;
nilai[3] = 35;
nilai[4] = 75;
return 0;
Output:
Menggunakan Perulangan dan Array
Pada contoh di atas, kita menggunakan perintah cout secara berulang untuk mencetak
semua isi array.
Apabila Isi Array Tersebut ada ribuan apakah kalian sanggup Mengisi Array Tersebut satu
persatu,Tentu Tidak kan?
#include <iostream>
int main(){
int nilai[5];
nilai[0] = 38;
nilai[1] = 45;
nilai[2] = 79;
nilai[3] = 35;
nilai[4] = 75;
}
return 0;
Pada perulangan di atas kita memberikan batas maksimal secara manual, yaitu: i < 5.
Karena di bahasa C belum memiliki fungsi khusus untuk mengambil banyaknya isi
array.
Kita harus membaginya dengan panjang pointernya.
int array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
#include<iostream>
#include <stdio.h>
int main(){
// membuat array
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};
#include <iostream>
int main(){
int Berat_badan[10] = {85, 65, 66, 57, 84, 56, 63, 76, 71, };
int sum = 0;
sum += Berat_badan[i];
return 0;
Output:
Array Multi Dimensi
Array yang kita buat pada contoh-contoh program di atas adalah array satu dimensi.
int matriks[3][3] = {
{1, 3, 5},
{3, 5, 1},
{2, 6, 3}
};
matriks[1][2];
#include <iostream>
int main(){
int matriks[3][3] = {
{1, 3, 5},
{3, 5, 1},
{2, 6, 3}
};
Output:
6.PERCABANGAN
Buat yang belum pernah kuliah atau belajar tentang algoritma dan flowchart, mungkin ini
istilah yang baru pertama kamu dengar.
Percabangan akan mampu membuat program berpikir dan menentukan tindakan sesuai
dengan logika/kondisi yang kita berikan.
#include <iostream>
int main(){
cout << "=== Contoh Program Pembayaran By Alfarezy ===" << endl;
return 0;
Output:
Kompilasi kode tersebut dengan perintah:
g++ if.cpp -o if
./if
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.
Blok pilihan pertama untuk kondisi benar, dan pilihan kedua untuk kondisi salah (else).
#include <iostream>
int main(){
string password;
// percabangan if/else
if (password == "kopidulubro"){
} else {
cout << "Terimakasih sudah menggunakan aplikasi ini Ya Jumpa Lagi!" << endl;
return 0;
3.Percabangan IF/ELSE/IF
#include <iostream>
int main(){
int nilai;
string grade;
cout << "=== Program Grade Nilai by Alfarezy ===" << endl;
grade = "A";
grade = "B+";
grade = "C+";
grade = "C";
grade = "D";
grade = "E";
} else {
grade = "F";
return 0;
Output:
Anda Tinggal Memasukkan Nilai Akhir Anda Dan Anda Akan Mendapatkan Grade anda.
4.Percabangan Switch/Case
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.
Contoh Program:
#include <iostream>
using namespace std;
int main(){
char grade;
switch (toupper(grade)){
case 'A':
break;
case 'B':
case 'C':
break;
case 'D':
break;
case 'E':
case 'F':
break;
default:
return 0;
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.
Bisa dibilang:
#include <iostream>
int main(){
int jawaban;
return 0;
Kita juga dapat membuat blok percabangan di dalam percabangan. Ini disebut percabangan
bersarng atau nested if.
#include <iostream>
int main(){
if (password == "kopidulubro"){
} else {
} else {
return 0;
Apa yang akan kamu lakukan saat disuruh mencetak kalimat berulang-ulang?
Misalnya:
#include <iostream>
int main(){
return 0;
Tapi…
Perulangan akan membantu kita mengeksekusi kode yang berulang-ulang, berapapun yang
kita mau.
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.
1. Perulangan For
1. Perulangan While
2. Perulangan Do/While
}
Yang perlu diperhatikan adalah kondisi yang ada di dalam kurung setelah kata for.
Jadi setiap perulangan dilakukan nilai i akan selalu bertambah satu. Karena kita
menentukannya di bagian i++.
#include <iostream>
int main(){
return 0;
}
Apakah nama variabelnya harus selalu i?
Tidak.
Misalnya:
#include <iostream>
int main(){
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?
Caranya gampang.
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
#include <iostream>
int main(){
int counter = 0;
// perulangan while
while(ulangi == 'y'){
// increment counter
counter++;
printf("\n\n----------\n");
return 0;
Output:
// perulangan while
while(ulangi == 'y'){
// increment counter
counter++;
Tapi kalau kita jawab yang lain, maka perulangan akan dihentikan.
3.Perulangan Do/While
Perbedaanya:
do {
} while (<kondisi>);
Jadi perbedaanya:
Contoh Programnya:
#include <iostream>
int counter = 0;
do {
// increment counter
counter++;
} while(ulangi == 'y');
printf("\n\n----------\n");
return 0;
Output:
Saat perulangan pertama, cobalah untuk membatalkan perulangannya dengan menjawab t.
#include <iostream>
int main(){
return 0;
Output:
Contoh Output dan masih banyak perulangan Yang Terjadi di outputnya.
8.STRUCT
Misalnya kita ingin menyimpan data mahasiswa. Kita bisa saja melakukannya seperti ini:
Cara terbaik adalah menyimpan data ini adalah menggunakan struct struct.
struct Mahasiswaunmul
char *name;
char *address;
int age;
};
Contoh Programnya:
#include <stdio.h>
// membuat struct
struct Mahasiswa {
char *name;
char *address;
int age;
};
void main(){
// menggunakan struct
mhs1.address = "Samarinda";
mhs1.age = 18;
mhs2.address = "Samarinda";
mhs2.age = 19;
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:
// membuat struct
struct Distance{
int feet;
float inch;
};
void main() {
// menggunakan struct
}
Nah, kalau menggunakan typedef akan menjadi seperti ini:
int feet;
float inch;
} distances;
void main() {
// menggunakan struct
Struct Bersarang
Struct dapat dibuat bersarang (nested). Bersarang artinya ada struct di dalam struct.
Contoh Penerapannya:
struct complex
int imag;
float real;
};
struct number
int integers;
} num1, num2;
Lalu cara menggunanya akan seperti ini:
num1.integer = 13;
num1.comp.real = 45.12;
num2.comp.imag = 11;
#include <stdio.h>
struct student
char nama[50];
int umur;
};
void main() {
scanf("%[^\n]%*c", s1.nama);
scanf("%d", &s1.umur);
printf("\nDisplaying information\n");
9.FUNGSI
Dalam pemrograman, fungsi atau prosedur sering digunakan untuk membungkus program
menjadi bagian-bagian kecil.
Kalau semua kodenya ditulis di dalam fungsi main(), maka kita akan kesulitan
membacanya.
Fungsi ini memang wajib ada di setiap program C++, karena fungsi inilah yang akan
dieksekusi pertama kali saat program berjalan.
“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.
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.
Okee..
#include <iostream>
void say_hello(){
int main(){
say_hello();
return 0;
Output:
#include <iostream>
using namespace std;
void say_hello(){
int main(){
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.
Contoh Penerapannya:
#include <iostream>
// deklarasi fungsi
void say_hello();
int main(){
say_hello();
say_hello();
say_hello();
return 0;
// Definisi fungsi
void say_hello(){
Output:
Apa bedanya dengan yang tadi?
Jika kita membuat fungsi secara definisi, kita harus membuat fungsinya di atas fungsi main.
Contoh Programnya:
Perhatikan!
Berikut caranya:
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.
int main(){
add(4, 1);
add(2, 8);
add(2, 3);
return 0;
Output:
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.
Contoh:
return a+b;
#include <iostream>
return hasil;
int main(){
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>
int nilai = 9;
int main(){
int nilai = 7;
// mencetak variabel
return 0;
Output:
Lalu di dalam fungsi main(), kita membuat variabel lagi bernama nilai dengan nilai yang
berbeda.
Lalu, pertanyaanya:
Jawabannya: 7
Mengapa bisa 7?
Sekarang coba hapus variabel lokal yang ada di dalam main, sehingga akan menjadi seperti
ini:
#include <iostream>
int nilai = 9;
int main(){
//int nilai = 7;
// mencetak variabel
return 0;
Output:
Maka hasil outputnya akan 9. Karena variabel yang dipakai adalah variabel global.
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>
*num = *num * 2;
int main(){
int angka = 9;
// memanggil fungsi
kali_dua(&angka);
cout << "isi variabel angka Yang Ada = " << angka << endl;
return 0;
Output:
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
#include <iostream>
// deklarasi fungsi
int main(){
scanf("%d", &number);
result = sum(number);
return 0;
// definisi fungsi
if (num!=0)
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/