Skip to content Skip to sidebar Skip to footer

Modul Belajar Bahasa Pemrograman C++ Untuk Pemula [#BelajarDiRumah]

Assalamu‘alaikum wr. wb.

Hello guys, Kembali lagi bersama Inzaghi's Blog! Pastinya kalian yang ingin jago di bidang IT pastinya ingin mempelajari tentang Bahasa Pemrograman (Programing Languages)? Dan biasanya bagi kalian sebagai Pemula pastinya merasa kesulitan untuk mempelajari Koding (Coding)? Salah satunya adalah Bahasa Pemrograman C++ yang merupakan turunan dari Bahasa Pemrograman C.



Sumber Artikel Utama : Niagahoster.co.id dan Duniailkom.com

Bahasa pemrograman C++ banyak digunakan untuk membuat berbagai aplikasi. Oleh karena itu, bagi Anda yang masih pemula, belajar C++ bisa menjadi langkah tepat untuk membangun karir sebagai seorang developer handal. 

Nah, bagaimana menguasai bahasa pemrograman C++ dengan baik? Tenang saja, di artikel ini kami akan membahas semuanya, mulai dari pengertian, konsep dasar, keunggulan, dan contoh Program C++.

APA ITU BAHASA PEMROGRAMAN C++? (DAN SEJARAH SINGKAT)


Bahasa Pemrograman C++ adalah bahasa yang bisa digunakan untuk membuat berbagai aplikasi. Misalnya, aplikasi pengolah gambar, software gadget, game, hingga sistem operasi baru.

Sejarah Singkat C++

Bahasa pemrograman C++ dirintis sejak Tahun 1979 oleh Bjarne Stroustrup, seorang ilmuwan komputer asal Denmark. Pengembangan bahasa C++ terinspirasi dari Penelitian Tesis PhD yang dulunya pernah dikerjakan oleh Stroustrup.

Pada saat itu, Stroustrup tertarik dengan bahasa Simula yang sangat mudah dipakai untuk pembuatan aplikasi skala besar. Varian bahasa Simula, yakni Simula 67 dianggap sebagai bahasa pemrograman pertama yang menerapkan konsep pemrograman berbasis object.

Akan tetapi bahasa Simula dianggap terlalu lambat untuk penggunaan sehari-hari. Di sisi lain ada juga bahasa BCPL yang sangat cepat tapi kurang cocok untuk pembuatan aplikasi besar.

Ketika bekerja di laboratorium perusahaan AT&T Bell Labs, Bjarne Stroustrup memiliki masalah di pengembangan sistem operasi UNIX. Pada saat itu ia teringat tesis yang dulu dikerjakan dan ingin menerapkannya ke dalam bahasa C. Pemilihan bahasa C karena sudah cukup populer dan juga di eksekusi dengan cepat. Apalagi sistem operasi UNIX juga dibuat menggunakan bahasa C.

Akhirnya pada Tahun 1982 Bjarne Stroustrup mulai menambah fitur-fitur baru ke dalam Bahasa C, terutama dukungan class agar bahasa C bisa menggunakan paradigma object oriented programming (pemrograman berbasis object). Stroustrup terinspirasi dari bahasa Simula dan juga bahasa pemrograman lain seperti ALGOL 68, Ada, CLU and ML.

Bahasa baru ini disebut sebagai C++ yang diambil dari operator increment ” ++ ” . Operator Increment biasa di pakai dalam bahasa pemrograman untuk menaikkan nilai variabel sebanyak 1 angka. Dengan demikian C++ juga berarti sebuah penambahan dari bahasa C standar.

Pada tahun 1985, Bjarne Stroustrup membuat buku yang sangat terkenal berjudul C++ Programming Language. Buku ini menjadi referensi utama dan menjadi “standar tidak resmi” dari bahasa C++ pada saat itu. Pada tahun yang sama, dikembangkan pula compiler komersil C++ pertama.

Seiring perkembangan waktu, organisasi standar ISO secara resmi mengeluarkan standar C++98 pada Tahun 1998, yang kemudian diikuti standar C++03 di tahun 2003.

Setelah itu secara bergantian di rilis standar C++11 di tahun 2011, standar C++14 di tahun 2014 serta standar C++17 di tahun 2017. Di akhir tahun 2020 ini di rencanakan rilis standar C++ 20.

Untuk Apa Belajar C++?

Saya yakin sebagian besar Pembaca, yang belajar Bahasa C++ karena diwajibkan oleh Guru atau Dosen. Ini tidak mengherankan karena bahasa C++ termasuk bahasa dasar yang sering dipakai untuk mempelajari dasar algoritma dan pemrograman. Alternatif lain bisa juga menggunakan bahasa Pascal dan juga bahasa C (tergantung dosen senangnya pakai bahasa apa).

Pemilihan Bahasa C++ sebagai bahasa pertama atau bahasa dasar sebenarnya juga sangat bermanfaat meskipun tidak diwajibkan dosen atau bagi yang belajar Otodidak. Ini karena bahasa C dan C++ menjadi dasar dari banyak bahasa pemrograman modern.

Jika anda sudah familiar dengan syntax / aturan penulisan bahasa C++, akan sangat mudah beralih ke bahasa yang lebih modern seperti Java, C#, PHP, atau JavaScript. Karena bahasa-bahasa ini semuanya turunan dari bahasa C dan C++.

Di luar fungsinya untuk belajar pemrograman dasar, bahasa C++ juga bisa dipakai untuk membuat berbagai aplikasi. Yang paling menonjol menurut saya ada di game programming, yakni bahasa pemrograman yang dipakai untuk membuat game.

Game modern sudah terbilang sangat kompleks, apalagi untuk game desktop. Umumnya programmer game butuh sebuah Game Engine yang berisi kumpulan kode program siap pakai (disebut sebagai library). Fungsinya untuk membantu pembuatan game dengan cepat, tidak lagi membuat semuanya dari nol.

Game Engine yang paling terkenal diantaranya Unreal Engine, Unity, CryEngine, dan Construct. Daftar lengkap dari Aplikasi Game Engine bisa dilihat ke List of Game Engines. Di halaman tersebut bisa terlihat bahwa C++ adalah bahasa pemrograman yang paling banyak dipakai.

Jadi jika anda tertarik menjadi seorang programmer game (terutama game desktop), C++ adalah bahasa dasar paling pas!

Diluar itu, C++ juga cocok dipakai untuk membuat aplikasi yang perlu banyak mengakses hardware seperti di perangkat IoT (Internet of Things), embedded system, hingga membuat Aplikasi Desktop berbasis grafis, terutama saat digabung dengan Microsoft Visual Studio.

Meme Bahasa Pemrograman C++

Eits, C++ yang ada pada Gambar di atas bukan berarti PacMan ya guys! PacMan itu adalah Game Lawas/Jadul yang dikembangkan pada Tahun 1980, sedangkan C++ baru dikembangkan pada Tahun 1983. Kembali lagi ke Topik Awal, apa saja sih konsep dasar Bahasa Pemrograman C++? Simak pembahasan selanjutnya.


KEUNGGULAN BAHASA PEMROGRAMAN C++

Sebelum Anda belajar lebih jauh tentang coding C++, tentu Anda harus tahu dulu keunggulan bahasa pemrograman ini. Yuk simak lebih lanjut!

1. Portabel

Bahasa Pemrograman C++ itu Portabel. Artinya, Anda bisa melakukan coding, lalu melakukan Compile pada sistem operasi yang berbeda-beda. Misalnya, Anda bisa menulis kode di Sistem Operasi Linux dan melakukan compile kode tersebut di Windows. Dengan kata lain, saat Belajar Pemrograman C++, Anda bebas menggunakan sistem operasi apapun.

2. Object Oriented

C++ adalah bahasa pemrograman yang Object Oriented atau berfokus pada Objek. Artinya, data dan function disatukan dalam kelas dan objek untuk bekerjasama memecahkan sebuah masalah. 

Objek yang saling terkait akan mempercepat penulisan kode. Sebab, Anda bisa menggunakan kode class yang sama melalui fitur inheritance untuk menghindari pengulangan kode. OOP juga memudahkan Anda untuk mendeteksi permasalahan apabila ada kendala pada aplikasi.

3. Mudah Mengatur Memori

Bahasa pemrograman C++ memiliki Dynamic Memory Allocation atau kemampuan mengatur memori dengan dinamis. Dengan pengaturan tersebut, Anda lebih mudah mendapatkan memori tambahan saat program berjalan. 

Kemudahan ini cukup membantu programmer untuk mengatur Linked List atau Tree sesuai kebutuhan. 

4. Memiliki Skalabilitas yang Baik

C++ memiliki skalabilitas yang cukup baik. Artinya, program yang dibuat bisa dikembangkan sesuai kebutuhan Anda. Jadi, Anda bisa membuat program sederhana yang kecil dulu sebelum mengembangkannya menjadi aplikasi yang lebih besar.

5. Eksekusi Lebih Cepat

Bahasa pemrograman C++ adalah bahasa yang memungkinkan Anda melakukan low level manipulation. Artinya, meskipun merupakan sebuah high level language, C++ mampu membuat eksekusi kode bisa berjalan lebih cepat di komputer karena minim jeda waktu saat interpretasi kode yang dilakukan.


CONTOH PROGRAM C++ YANG SERING DIGUNAKAN

Setelah mempelajari konsep dasar bahasa pemrograman C++, Anda bisa menggunakannya untuk berbagai pengembangan aplikasi. Berikut ini adalah contoh Aplikasi yang menggunakan Bahasa Pemrograman C++ :

1. Aplikasi Grafis

Coding C++ banyak digunakan untuk mengembangkan aplikasi pengolah grafis. Misalnya, Adobe Photoshop Adobe Illustrator, Adobe dan Premiere. Sebagian aplikasi ini membutuhkan proses image processing yang cukup intensif dan C++ dianggap cukup sesuai untuk membangun program tersebut.

Nah, jika belajar pemrograman C++, bukanlah suatu hal yang mustahil bila di masa mendatang Anda bisa menciptakan software kompleks seperti yang kami sebutkan di atas.

2. Software Games

Bahasa pemrograman C++ juga digunakan untuk mengembangkan software games 3D yang rumit. Salah satu game terkenal yang dikembangkan dengan C++ adalah Call of Duty: Black Ops II.

C++ cocok untuk pengembangan game karena kebutuhan proses eksekusi yang cepat. Nah, dengan kemampuan low level manipulation, C++ tentu mampu melakukannya lebih baik dibanding bahasa pemrograman lain.  

3. Browser

Cukup banyak browser terkenal yang dikembangkan dengan bahasa pemrograman C++ seperti Google Chrome dan Mozilla Firefox. Salah satu alasannya tentu adalah portability yang dimiliki oleh C++. Sebab, sebuah browser tentu akan dibuat agar multiplatform untuk memudahkan penggunanya. 

Pun demikian, sebuah browser biasanya tidak hanya dikembangkan dengan bahasa pemrograman C++ saja, tapi juga dengan bahasa lain seperti Java dan lainnya. 

4. Akses Database

Bahasa pemrograman C++ banyak digunakan untuk mengembangkan database.  Misalnya, MySQL dan MongoDB. Sebab, bahasa pemrograman C++ termasuk bahasa modern yang portable untuk mengakses banyak library database. 

5. Media Player

C++ juga bisa Anda digunakan untuk membuat aplikasi media player seperti Winamp Player yang cukup mumpuni sebagai media untuk memainkan file audio dan video.

6. Sistem Operasi

Sebagian besar sistem operasi dikembangkan dengan C++, seperti Windows, macOS, dan Linux. Namun tentu saja dengan didukung oleh Bahasa Pemrograman lain, misalnya Swift. 

Salah satu alasan utama penggunaan Coding C++ pada sistem operasi adalah kecepatan Eksekusi di Komputer yang menjadi kunci sebuah OS dapat berjalan dengan baik. 


KONSEP DASAR BAHASA PEMROGRAMAN C++


Kalau Anda ingin belajar C++, penting untuk memahami konsep dasar bahasa pemrograman C++ berikut ini :

A. Variabel dan Tipe Data

Variabel adalah penanda identitas yang digunakan untuk menampung suatu nilai. Artinya, variabel akan menunjukkan suatu lokasi yang ada di memori komputer atau RAM. Jadi, saat Anda membuat satu variabel, akan ada satu Slot memori untuk menampung nilai tersebut. 


Bahasa C++ termasuk bahasa pemrograman dengan Konsep Strongly-Typed. Artinya, saat melakukan deklarasi, Anda harus memberi tipe data di dalam setiap variabel.

Berikut ini adalah Tipe-tipe Data yang ada di dalam Variabel C++ :

Nama Tipe Data
Ukuran dalam Memori
Rentang Nilai
char
1 byte
-127 sampai 127 atau 0 sampai 255
unsigned char
1 byte
0 sampai 255
signed char
1 byte
-127 sampai 127
int
4 bytes
-2.147.483.648 sampai 2.147.483.647
unsigned int
4 bytes
0 sampai 4294967295
signed int
4 bytes
-2147483648 sampai 2147483647
short int
2 bytes
-32768 sampai 32767
unsigned short int
Range
0 sampai 65,535
signed short int
Range
-32768 sampai 32767
long int
4 bytes
-2.147.483.648 sampai 2.147.483.647
signed long int
4 bytes
Same as long int
unsigned long int
4 bytes
0 sampai 4,294,967,295
float
4 bytes
+/- 3.4E-38 sampai +/- 3.4E+38 (~7 digits)
double
8 bytes
+/- 1.7E-308 sampai +/- 1.7E+308 (~15 digits)
long double
8 bytes
+/- 1.7E- 308 sampai +/- 1.7E+ 308 (~15 digits)
wchar_t
2 / 4 bytes
1 wide character
boolean
4 bytes
true atau false

Lalu bagaimana cara menuliskan variabel dalam bahasa C++? Ada dua langkah untuk melakukannya, yaitu Deklarasi dan Inisialisasi.

Deklarasi dilakukan sebelum program dimulai. Namun, Anda juga bisa melakukan deklarasi di tengah program. Akan tetapi, deklarasi harus sudah selesai sebelum Anda menggunakan program. Berikut ini adalah Contoh Deklarasi :

int i;      //  contoh deklarasi
char c; 
int i, j, k;  // banyak deklarasi

Sedangkan Inisialisasi artinya mengisi nilai di dalam variabel yang sudah dideklarasikan. Contohnya seperti ini :

int i;   // deklarasi
i = 10;  // inisialisasi

Jika dilakukan secara bersamaan, hasilnya seperti ini :

int i=10;         // contoh deklarasi dan inisialisasi 
int i=10, j=11;

Jika Anda melakukan deklarasi tanpa inisialisasi, atau melakukan deklarasi ulang pada Variabel yang ada dalam satu cakupan, maka akan muncul error. Contohnya seperti ini :

int i,j;
i=10;
j=20;
int j=i+j;   // compile time error

Seluruh Variabel yang Anda tulis memiliki cakupan fungsinya masing-masing. Artinya, variabel tidak akan berfungsi jika Anda menuliskannya di luar cakupan. Cakupan suatu variabel biasanya berupa Kurung Kurawal. 

Ada 2 (Dua) Cakupan dalam Bahasa C++, yaitu Variabel Global dan Variabel Lokal. 

Variabel Global adalah variabel yang ketika Anda deklarasikan, bisa digunakan lagi dalam class dan function apapun selama program masih berjalan. Variabel ini dideklarasikan di luar function main(). Contohnya seperti ini :

#include <iostream>
using namespace std;

int x;                // Deklarasi variabel global 
int main()
{
    x=10;                 // inisialisasi pertama
    cout <<"first value of x = "<< x;
    x=20;                 // inisialisasi kedua
    cout <<"diinisialisasi lagi dengan value = "<< x;
}
Sedangkan Variabel Lokal adalah variabel yang hanya bisa berfungsi jika dideklarasikan di dalam function main(). Artinya, jika dideklarasikan di luar main () maka Anda akan menemui Error.

#include <iostream>
using namespace std;

int main()
{
    int i=10;
    if(i<20)        // batas awal cakupan
    {
        int n=100;   // variabel lokal dideklarasikan dan diinisialisasi
    }              // batas akhir cakupan
    cout << n;      // Compile time error
}
Berikut, inilah Contoh-contoh Pemrograman dari Tipe Data dalam Bahasa C++ :

1. Void (Kosong)

Void adalah tipe data yang tidak bertipe karena mempunyai ukuran 0 byte biasanya digunakan untuk tipe data kosong seperti membuat fungsi. Contohnya :

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

void main(){
  cout<<" Hello World !!!!"<<endl; 
  getch();
}
2. Char (Karakter)

Char adalah tipe data untuk karakter yang sering digunakan untuk tipe data yang menggunakan huruf dan angka sebagai datanya. Misalnya seperti contoh dibawah ini :

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

int main(){
    
    char jwb[2] = "B";
    
    cout<<"1. Bahasa Pemrograman C++ dirancangan untuk"<<endl; 
    cout<<"A.PFC B.PBO C.CFP D.PBA"<<endl; 
    cout<<"Jawabanya adalah "<<jwb<<endl; 
    getch();    
}
3. Int (Integer)

Int adalah tipe data untuk numerik yang sering digunakan untuk data berupa angka. untuk fungsinya bisa dilihat contoh program dibawah ini :

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

int main(){
    
    int sisi;

    sisi=10
    
    cout<<"Pesergi memiliki sisi sebesar "<<sisi<<endl;
    cout<<"dan luas persegi adalah "<<sisi*sisi<<endl; 
    getch();    
}
4. Float (Floating Point) 

Float adalah tipe data untuk numerik yang digunakan untuk data berupa Angka Pecahan, untuk fungsinya bisa dilihat contoh program dibawah ini :


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

int main(){
    
    float phi = 3.14, luas;
    int r = 20;
    
    luas = phi*r*r;
    
    cout<<"Diketahui lingkaran berdiameter "<<r<<" cm"<<endl;
    cout<<"luas lingkaran adalah "<<luas<<" cm^2"<<endl;
 
    getch();    
}

5. Double (Double Floating Point)

Double adalah tipe data untuk numerik yang digunakan untuk data berupa angka pecahan yang nilai decimalnya dua kali lebih banyak. contoh programnya :

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

void main(){
    
    double diskon = 0.02;
    int harga = 100000;
    
    cout<<"Potongan harga Rp."<<harga<<endl; 
    cout<<"mendapatkan diskon sebesar 2%"<<endl; 
  
    cout<<"menjadi Rp."<<diskon*harga<<endl; 
    getch();    
}
6. Bool (Boolean)

Bool adalah tipe data yang digunakan untuk menentukan False (Salah) dan True (Benar), tipe data ini sama seperti bilangan biner hanya ada dua angka saja yaitu 0 dan 1. untuk contoh program dengan Tipe Data Boolean :

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

int 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();

}
7. Wchar_t

Wchar_t adalah tipe data yang digunakan sama seperti char yang menyimpan karakter besar, biasanya digunakan untuk menyimpan karakter yang tidak ada di Huruf Alphabet (Seperti Latin dan Cyrillic) misalnya Aksara Kana Jepang, Han Tionghoa, Hangul Korea, Arab, Devanagari, dll. Contoh programnya seperti dibawah ini :

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

int main(){
    char kanji[6] = "å­¦ē”Ÿ";
    wchar_t kanji2[6] = L"å­¦ē”Ÿ";
    
    cout<<"huruf kanji siswa (char) : "<<kanji<<endl;
    cout<<"huruf kanji siswa (wchar_t) : "<<kanji2<<endl;

    getch();
}
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

B. Operator

Sumber : Duniailkom.com

Sebelum masuk ke jenis-jenis operator di dalam Bahasa C++, terdapat istilah operand dan operator. Operand adalah nilai asal yang dipakai dalam sebuah proses operasi. Sedangkan Operator adalah instruksi yang diberikan untuk mendapatkan hasil dari proses tersebut.

Biasanya operator berbentuk karakter matematis atau perintah singkat sederhana. Sebagai contoh, pada operasi: 10 + 2. Angka 10 dan 2 disebut sebagai operand, sedangkan tanda tambah (karakter +) adalah operator.

Operator Unary, Binary dan Ternary

Berdasarkan jumlah operand-nya, operator C++ dibagi menjadi 3 jenis: Operator Unary, Operator Binary dan Operator Ternary.
  • Operator Unary adalah operator yang hanya terdiri dari 1 operand. Contohnya adalah operator Positif (Plus) : +7, +9, +10.111
  • Operator Binary adalah operator yang terdiri dari 2 operand. Sebagian besar operator di dalam bahasa C++ termasuk ke dalam operator binary. Contohnya seperti operator Aritmatika : 4 + 8, 9 * 2, 8 % 2, dll.
  • Operator Ternary adalah operator yang terdiri dari 3 operand. Bahasa C++ memiliki 1 operator ternary, yakni ” ? : ” seperti (a == 1) ? 20: 30.

Jenis-jenis Operator dalam Bahasa Pemrograman C++

Berikut jenis-jenis operator dalam Bahasa Pemrograman C++ :
  • Operator Aritmatika
  • Operator Increment dan Decrement
  • Operator Perbandingan / Relasional
  • Operator Logika / Boolean
  • Operator Bitwise
  • Operator Assignment
  • Operator Lainnya
Daftar di atas bisa saja berbeda karena cara pengelompokkan yang dipakai, misalnya operator increment atau decrement kadang dimasukkan ke dalam operator artmatika. Kita akan bahas sekilas tentang pengertian dari operator-operator ini.

1. Operator Aritmatika

Operator Aritmatika adalah operator yang biasa kita temukan untuk operasi matematika. Aritmatika sendiri merupakan cabang ilmu matematika yang membahas perhitungan sederhana, seperti kali, bagi, tambah dan kurang (kabataku)

Selain keempat operasi tersebut, bahasa C++ juga memiliki operasi modulo division, atau operator % yang dipakai untuk mencari sisa hasil bagi. Tabel berikut merangkum Operator Aritmatika dalam Bahasa Pemrograman C++ :

Operator
Penjelasan
Contoh
+
Penambahan
a = 5 + 2
Pengurangan
a = 5 – 2
*
Perkalian
a = 5 * 2
/
Pembagian (Real/Pecahan)
a = 5 / 2
%
Sisa Hasil Bagi (Modulus)
a = 5 % 2

Operator Aritmatika Unary : 

Operator
Penjelasan
Contoh
+
Positif (plus)
+5
Negatif (min)
-3

Contoh :

#include <iostream>
using namespace std;

float tambah(float x, float y){
    return (x+y);
}

float kurang(float x, float y){
    return (x-y);
}

float kali(float x, float y){
    return (x*y);
}

float bagi(float x, float y){
    return (x/y);
}


int main(){
    int add, sub, mul;
    float dvd;
    int a = 9;
    int b = 4;
    add = tambah(a, b);
    sub = kurang(a, b);
    mul = kali(a, b);
    dvd = bagi(a, b);
   
    cout<<"a = "<<a<<", b = "<<b<<endl;
    cout<<"a + b = "<<add<<endl;
    cout<<"a - b = "<<sub<<endl;
    cout<<"a * b = "<<mul<<endl;
    cout<<"a / b = "<<dvd<<endl;
}

2. Operator Increment dan Decrement

Operator increment dan decrement adalah sebutan untuk operasi seperti a++, dan a--. Ini sebenarnya penulisan singkat dari operasi a = a + 1 serta a = a – 1.

Increment digunakan untuk menambah Variabel sebanyak 1 angka, sedangkan decrement digunakan untuk mengurangi Variabel sebanyak 1 angka.

Penulisannya menggunakan tanda tambah 2 kali untuk Increment, dan tanda kurang 2 kali untuk decrement. Penempatan tanda tambah atau kurang ini boleh di awal seperti ++a dan --a, atau di akhir variabel seperti a++ dan a--.

Dengan demikian terdapat 4 Jenis Increment dan decrement dalam Bahasa C++ :

Operator
Contoh
Penjelasan
Pre-increment
++a
Tambah a sebanyak 1 angka, lalu tampilkan hasilnya
Post-increment
a++
Tampilkan nilai a, lalu tambah a sebanyak 1 angka
Pre-decrement
--a
Kurangi a sebanyak 1 angka, lalu tampilkan hasilnya
Post-decrement
a--
Tampilkan nilai a, lalu kurangi a sebanyak 1 angka

3. Operator Perbandingan / Relasional

Operator perbandingan dipakai untuk membandingkan 2 buah nilai, apakah nilai tersebut sama besar, lebih kecil, lebih besar, dll. Hasil dari operator perbandingan ini adalah boolean true atau false.

Ketika ditampilkan dengan perintah cout, true dan false ini akan ditampilkan C++ sebagai integer 1 atau 0.

Operator
Penjelasan
Contoh
Hasil
==
Sama dengan
5 == 5
1 (true)
!=
Tidak sama dengan
5 != 5
0 (false)
> 
Lebih besar
5 > 6
0 (false)
< 
Lebih kecil
5 < 6
1 (true)
>=
Lebih besar atau sama dengan
5 >= 3
1 (true)
<=
Lebih kecil atau sama dengan
5 <= 5
1 (true)

4. Operator Logika / Boolean

Operator Logika dipakai untuk menghasilkan nilai boolean true atau false dari 2 kondisi atau lebih.

Operator
Nama
Penjelasan
Contoh
&&
And
Akan menghasilkan true jika kedua operand true
true && false, hasilnya: false
||
Or
Akan menghasilkan true jika salah satu operand true
true || false, hasilnya: true
!
Not
Akan menghasilkan true jika operand false
!false, hasilnya: true

Rumus yang dipakai adalah sebagai berikut :
  • Operator && hanya akan menghasilkan true jika kedua operand bernilai true, selain itu hasilnya false.
  • Operator || hanya akan menghasilkan false jika kedua operand bernilai false, selain itu hasilnya true.
  • Operator ! Akan membalikkan logika, !false menjadi true, !true menjadi false.

5. Operator Bitwise

Bitwise adalah operator khusus untuk menangani operasi logika bilangan biner dalam bentuk bit.

Bilangan biner sendiri merupakan jenis bilangan yang hanya terdiri dari 2 jenis angka, yakni 0 dan 1. Jika nilai asal yang dipakai bukan bilangan biner, akan dikonversi secara otomatis oleh Compiler C++ menjadi bilangan biner. Misalnya 7 desimal = 0111 dalam bilangan biner.

Bahasa C++ mendukung 6 jenis operator bitwise. Daftar lengkapnya dapat dilihat pada tabel berikut :

Operator
Nama
Contoh
Biner
Hasil (Biner)
Hasil (Desimal)
&
AND
10 & 12
1010 & 1100
1000
8
|
OR
10 | 12
1010 | 1100
1110
14
^
XOR
10 ^ 1
1010 ^ 1100
0110
6
~
NOT
~ 5
 ~0101
1011
-11 (Two’s complement)
<< 
Left shift
10 << 1
1010 << 1
10100
20
>> 
Right shift
10 >> 1
1010 >> 1
101
5

6. Operator Assignment

Operator assignment adalah operator yang digunakan untuk memberikan nilai ke dalam suatu variabel. Di dalam bahasa C++, operator assignment menggunakan tanda sama dengan ” = “. Nantinya juga terdapat operator assignment gabungan, seperti ” += “, ” -= “, dsb.

Penjelasan lebih lanjut tentang operator assignment beserta contoh kode program bisa ke: Tutorial C++ Jenis-jenis Operator Penugasan (Assignment).

7. Operator Lainnya

Operator Lainnya ini adalah kelompok operator khusus yang tidak termasuk ke dalam kelompok sebelumnya, diantaranya adalah operator sizeof dan Operator Ternary ” ? : “.

C. Jenis-jenis File Header


Bahasa pemrograman memiliki cara yang tersendiri untuk mendapatkan akses memori. Dalam bahasa C maupun C++ membutuhkan suatu file yang digunakan untuk mengakses hal tersebut yaitu File Header. File Header adalah file yang berisi deklarasi untuk berbagai fungsi yang dibutuhkan oleh program baik itu sebagai standar Input/Output maupun sebagai Syntax.

Fungsi File Header antara kain sebagai berikut :
  • Untuk manajement memori
  • Untuk memanggil routines ROM BIOs
  • Untuk fungsi matematika komplek
  • Untuk memanggil console DOS Input Output
  • Untuk routing basic di C++
  • Untuk beberapa fungsi rutin (Seperti konversi)
  • Untuk Menguakkan manipulator
  • Untuk operasi string dan karakter
Macam-macam File Header yang sering digunakan adalah sebagai berikut :

1. stdio.h

"stdio.h" Merupakan singkatan dari standar input output header yang digunakan sebagai standar input output operasi yang digunakan oleh bahasa C, akan tetapi bisa juga digunakan dalam bahasa C++. Fungsi-fungsi yang ada didalam stdio.h antara lain sebagai berikut :
  • printf() : merupakan fungsi keluaran yang digunakan untuk menampilkan informasi/pesan kelayar secara terformat (menentukan tipe data yang akan dikeluarkan).
  • puts() : merupakan fungsi keluaran yang digunakan untuk menampilkan informasi/pesan yang bertipe data string (tanpa harus melakukan penentuan tipe data terlebih dahulu).
  • putchar() : merupakan fungsi keluaran yang digunakan untuk menampilkan informasi/pesan yang bertipe data char(tanpa harus melakukan penentuan tipe data terlebih dahulu).
  • scanf() : merupakan fungsi masukan yang digunakan untuk menginputkan data numerik, karakter, dan string secara terformat (menentukan tipe data yang akan dimasukan).
  • gets() : merupakan fungsi masukan yang khusus untuk menerima masukan tipe data string (tanpa harus melakukan penentuan tipe data terlebih dahulu).
2. iostream.h

"iostream.h" Merupakan singkatan dari input outout stream header yang digunakan sebagai standar input output operasi yang digunakan oleh bahasa C++. Fungsi-fungsi yang ada didalam iostream.h antara lain sebagai berikut :
  • cout : merupakan fungsi keluaran pada C++ yang menampilkan data dengan tipe data apapun kelayar.
  • cin : merupakan fungsi masukan pada C++  yang bisa memasukan data berupa numerik dan karakter.
  • endl : merupakan suatu fungsi yang manipulator yang digunakan untuk melakukan perintah Newline atau pindah baris.
3. conio.h

"conio.h" Merupakan File Header yang berfungsi untuk menampilkan hasil antarmuka kepada pengguna. Fungsi -fungsi yang ada didalam conio.h antara lain sebagai berikut :
  • getch() : merupakan singkatan dari get character and echo yang digunakan untuk menahan (pause) output suatu program dan akan kembali mengeksekusi setelah kita melakukan inputan baik itu tombol enter atau tombol lainnya dan inputan tersebut tidak ditampilkan dalam window.
  • getche() : secara fungsi sama dengan getch() akan tetapi ketika melakukan inputan, inputan tersebut tampil dalam window.
  • clrscr() : merupakan singkatan dari clear screen yang digunakan untuk membersihkan layar windows.
4. math.h

"math.h" Merupakan file header yang berfungsi untuk Operasi Matematika. Fungsi-fungsi yang ada di math.h antara lain sebagai berikut :
  • sqrt() : Fungsi ini digunakan untuk menghitung akar dari suatu bilangan. Bentuk umum penulisannya  adalah sqrt(bilangan);.
  • pow() : Fungsi ini digunakan untuk menghitung hasil dari perpangkatan suatu bilangan. Bentuk umum penulisannya adalah pow(bilangan,pangkat);
  • sin(), cos(), tan() : Fungsi ini digunakan untuk menghitung nilai Trigonometri Sinus, Cosinus, dan Tangen. Bentuk umum penulisannya adalah sin(bilangan);.
  • sinh(), cosh(), tanh() : Fungsi ini digunakan untuk menghitung nilai Hiperbolik Sinus, Cosinus, dan Tangen. Bentuk umum penulisannya adalah sinh(bilangan);.
  • exp() : Fungsi ini untuk menghitung perpangkatan atau Eksponensial.
  • log(), log10() : Untuk menghitung nilai Logaritma. Jika log(bilangan) untuk menghitung Logaritma Natural (Berbasis e = 2,7183), sedangkan log10(bilangan) untuk menghitung Logaritma berbasis 10.
Contoh Program dengan menggunakan math.h :

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

int main()
{
    int a = 45;
    int b = 4;
    int c = 2;
    float ipangkat, iakar, isin ,icos, itan;
    iakar = sqrt(b);
    cout<<"Akar dari "<<b<<" adalah"<<iakar<<endl;
    ipangkat = pow(b,c);
    cout<<b<<" pangkat "<<c<<" adalah"<<ipangkat<<endl;
    isin = sin(a);
    cout<<"sin sudut "<<a<<" derajat adalah"<<isin<<endl;
    icos = cos(a);
    cout<<"cos sudut "<<a<<" derajat adalah"<<icos<<endl;
    itan = tan(a);
    cout<<"tan sudut "<<a<<" derajat adalah"<<itan;
    getch();
}
Untuk selengkpnya terkait dengan Fungsi Matematika dalam C++, silahkan lihat di sini (Filesop.com).

5. stdlib.h

"stdlib.h" Merupakan file header yang berfungsi untuk operasi pembanding dan operasi konversi. Fungsi-fungsi yang ada di stdlib.h antara lain sebagai berikut :
  • max() : fungsi ini digunakan untuk menentukan nilai maximum dari 2 bilangan yang diinputkan. Bentuk penulisannya adalah max(bilangan1,bilangan2);.
  • min() : fungsi ini digunakan untuk menentukan nilai minimum dari 2 bilangan yang diinputkan. Bentuk penulisannya adalah min(bilangan1,bilangan2);.
  • atof() : fungsi ini digunakan untuk mengkonversi nilai string menjadi bilangan bertipe double. Bentuk umum penulisannya adalah atof(char nama_variabel);.
  • atoi() : fungi ini digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer. Bentuk umum penulisannya adalah atoi(char nama_variabel);.

Contoh Program dengan menggunakan stdlib.h :

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

int main()
{
    char a[10], b[10];
    int bil1, bil2,imax, imin;
    cout<<"Masukan Bilangan 1 : ";cin>>a;
    cout<<"Masukan Bilangan 2 : ";cin>>b;
    bil1 = atoi(a);
    cout<<"Bilangan 1 adalah "<<bil1<<endl;
    bil2 = atoi(b);
    cout<<"Bilangan 2 adalah "<<bil2<<endl;
    imax = max(bil1,bil2);
    cout<<"Nilai yang paling besar adalah "<<imax<<endl;
    imin = min(bil1,bil2);
    cout<<"Nilai yang paling kecil adalah "<<imin;
    getch();
}
6. string.h

"string.h" Merupakan file header yang berfungsi untuk melakukan manipulasi string. Fungsi-fungsi yang ada di string.h antara lain sebagai berikut :
  • strcpy() : fungsi ini digunakan untuk menyalin suatu string ke variabel tujuan. Bentuk umum penulisannya adalah strcpy(variabeltujuan, string);.
  • strlen() : fungsi ini digunakan untuk menghitung jumlah karakter yang ada dalam suatu string. Bentuk umum penulisannya adalah strlen(string);.
  • strcmp() : fungsi ini digunakan untuk membandingkan 2 buah string. Bentuk umum penulisannya adalah  strcmp(string1,string2);.
  • strrev() : fungsi ini digunakan untuk membalikan urutan suatu string. Bentuk umum penulisannya adalah strrev (string);.
  • strlwr() : fungsi ini digunakan untuk mengubah semua huruf menjadi huruf kecil. Bentuk umum penulisannya adalah strlwr(sterng);.
  • strupr() : fungsi ini digunakan untuk mengubah semua huruf menjadi huruf kapital. Bentuk umum penulisannya adalah strupr(string);.
  • strcat() : fungsi ini digunakan untuk menggabungkan 2 buah string, untuk menggunakan fungsi ini juga harus menambahkan file header ctype.h. Bentuk umum penulisannya adalah strcat(variabeltujuan, string);.

Contoh Program dengan menggunakan string.h :

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

int main()
{
    char kata[50];
    char kata2[50];
    cout<<"Masukan Kata : ";gets(kata);
    cout<<"Panjang kata = "<<strlen(kata)<<" karakter"<<endl;
    strcpy(kata2,kata);
    strlwr(kata);
    cout<<"Kata yang di copy          : "<<kata2<<endl;
    cout<<"Kata menjadi huruf kecil   : "<<kata<<endl;
    strupr(kata);
    cout<<"Kata menjadi huruf kapital : "<<kata<<endl;
    strrev(kata);
    cout<<"Kata yang dibalik          : "<<kata<<endl;
    getch();
}

D. Struktur If Else

Sumber (Lainnya) : Duniailkom.com (If Else If)

Control Struktur adalah konsep dasar untuk menentukan keputusan dalam setiap baris Pembacaan Kode atau Code Flow. 

Bagaimana cara kerjanya?

Saat program membaca baris kode satu persatu menggunakan compiler, compiler akan menemukan titik pengambilan keputusan. Titik keputusan itu berupa penyeleksian dan pengulangan kode. 

Nah, Control Structure akan membantu Compiler menetapkan keputusan apakah penyeleksian atau perulangan itu akan dipecahkan atau dilewati. 

Berikut ini adalah Control Structure penyeleksian bahasa pemrograman C++ :

1. Statement If

Statement if digunakan untuk mencari kebenaran dari conditional expression yang berupa nilai Boolean dengan nilai True atau False. Begini contohnya :

#include <iostream.h>
using namespace std;

int main( )
{
    int x,y;
    x=37;
    y=25;
    if (x > y )
    {
        cout << "x lebih besar daripada y";
    }
}
2. Statement Else If

Ketika compiler menemukan penyeleksian dengan statement if, CPU akan memeriksa kebenaran dari conditional expression. Jika hasilnya True, maka perintah kode akan dijalankan. Namun, jika hasilnya False, maka compiler akan memeriksa kode dengan statemen else if. 

#include <iostream>
using namespace std;

void main( )
{
    int x,y;
    x=15;
    y=19;
    if (x > y )
    {
        cout << "x lebih besar daripada y";
    }
    else
    {
        cout << "y lebih besar daripada x";
    }
}
3. Statement If Else If (Nested If)

Pada dasarnya, kondisi If Else If adalah sebuah struktur logika program yang di dapat dengan cara menyambung beberapa perintah 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 lagi, dst hingga blok Else terakhir atau terdapat kondisi If yang menghasilkan nilai true.

Sebagai contoh pertama, saya ingin membuat kode program untuk menampilkan nilai. User diminta menginput sebuah huruf antara ‘A’ – ‘E’. Kemudian program akan menampilkan hasil yang berbeda-beda untuk setiap huruf, termasuk jika huruf tersebut di luar ‘A’ – ‘E’.

Berikut, inilah contoh kode programnya :

#include <iostream>
using namespace std;

int main()
{
  char nilai;
 
  cout << "Input Nilai Anda (A - E): ";
  cin >> nilai;
 
  if (nilai == 'A' ) {
    cout << "Pandai!" << endl;
  }
  else if (nilai == 'B' ) {
    cout << "Bagus!" << endl;
  }
  else if (nilai == 'C' ) {
    cout << "Cukup!" << endl;
  }
  else if (nilai == 'D' ) {
    cout << "Kurang!" << endl;
  }
  else if (nilai == 'E' ) {
    cout << "Jelek!" << endl;
  }
  else {
    cout << "Invalid" << endl;
  }
 
  return 0;
}
Hasil Kode Program :

Input Nilai Anda (A - E): A
Pandai!
 
Input Nilai Anda (A - E): D
Kurang!
 
Input Nilai Anda (A - E): E
Jelek!
 
Input Nilai Anda (A - E): F
Invalid

Jika ternyata nilai inputan bukan salah satu dari karakter ‘A’ – ‘E’, maka block ELSE di baris 28 lah yang akan dijalankan.

Setiap kondisi dari block IF ELSE IF bisa diisi dengan perbandingan yang lebih kompleks, seperti contoh berikut :

#include <iostream>
using namespace std;
 
int main()
{
  short nilai;
 
  cout << "Input Nilai Anda (0 - 100): ";
  cin >> nilai;
 
  if (nilai >= 90 ) {
    cout << "Pandai!" << endl;
  }
  else if (nilai >= 80 && nilai < 90) {
    cout << "Bagus!" << endl;
  }
  else if (nilai >= 60 && nilai < 80) {
    cout << "Cukup!" << endl;
  }
  else if (nilai >= 40 && nilai < 60) {
    cout << "Kurang!" << endl;;
  }
  else if (nilai < 40) {
    cout << "Jelek!" << endl;
  }
  else {
    cout << "Invalid" << endl;
  }
 
  return 0;
}
Angka inputan ini ditampung ke dalam variabel nilai yang sekarang di set sebagai tipe data short di baris 7. Tipe data short adalah salah satu tipe data angka bulat (integer) dalam bahasa C++ yang bisa menampung antara -32,768 hingga +32,767.

Di baris 12, variabel nilai di periksa apakah berisi angka yang lebih dari 90. Jika iya, tampilkan teks “Pandai!”.

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 18, yakni apakah isi variabel nilai berada dalam rentang 60 – 79. Demikian seterusnya hingga kondisi terakhir if(nilai < 40) di baris 24.

Jika semua kondisi tidak terpenuhi, jalankan Block Else di baris 27. Berikut hasil percobaan dari kode program di atas :

Input Nilai Anda (0 - 100): 96
Pandai!
 
Input Nilai Anda (0 - 100): 70
Cukup!
 
Input Nilai Anda (0 - 100): 35
Jelek!

Yang cukup unik adalah, jika kita memberikan nilai di luar rentang 0 – 100, akan tetap ditangkap oleh kondisi IF di baris 10 atau di baris 22 :

Input Nilai Anda (0 - 100): 150
Pandai!
 
Input Nilai Anda (0 - 100): -50
Jelek!

Ini terjadi karena nilai 190 tetap memenuhi syarat if (nilai >= 90), dan nilai -100 juga tetap memenuhi syarat if (nilai < 40). Silahkan anda modifikasi kode program di atas agar ketika diinput angka di luar dari rentang 0 – 100, tampil teks “Invalid”. Untuk hal ini kita cuma perlu mengubah / menambah 2 kondisi saja.

Untuk melihat bagian If Else, selengkapnya baca di Artikel tentang Flowchart di sini. Dan berikut, inilah contoh lainnya dari If Else :

1. Nama-nama Hari dalam Seminggu

#include <iostream>
using namespace std;

int main(){
    int hari;
    cout<<"Masukkan Hari : ";
    cin>>hari;
   
    if (hari == 1){
        cout<<"Senin";
    }
    else if (hari == 2){
        cout<<"Selasa";
    }
    else if (hari == 3){
        cout<<"Rabu";
    }
    else if (hari == 4){
        cout<<"Kamis";
    }
    else if (hari == 5){
        cout<<"Jumat";
    }
    else if (hari == 6){
        cout<<"Sabtu";
    }
    else if (hari == 7){
        cout<<"Minggu";
    }
    else {
        cout<<"Invalid";
    }
    return 0;
}
2. Nama-nama Bulan dalam Setahun (Masehi/Gregorian)

#include <iostream>
using namespace std;

int main(){
    int bulanMasehi;
    cout<<"Masukkan Bulan : ";
    cin>>bulanMasehi;
   
    if (bulanMasehi == 1){
        cout<<"Januari";
    }
    else if (bulanMasehi == 2){
        cout<<"Februari";
    }
    else if (bulanMasehi == 3){
        cout<<"Maret";
    }
    else if (bulanMasehi == 4){
        cout<<"April";
    }
    else if (bulanMasehi == 5){
        cout<<"Mei";
    }
    else if (bulanMasehi == 6){
        cout<<"Juni";
    }
    else if (bulanMasehi == 7){
        cout<<"Juli";
    }
    else if (bulanMasehi == 8){
        cout<<"Agustus";
    }
    else if (bulanMasehi == 9){
        cout<<"September";
    }
    else if (bulanMasehi == 10){
        cout<<"Oktober";
    }
    else if (bulanMasehi == 11){
        cout<<"November";
    }
    else if (bulanMasehi == 12){
        cout<<"Desember";
    }
    else {
        cout<<"Invalid";
    }
    return 0;
}
3. Nama-nama Bulan dalam Setahun (Hijriah)

#include <iostream>
using namespace std;

int main(){
    int bulanHijriah;
    cout<<"Masukkan Bulan : ";
    cin>>bulanHijriah;
   
    if (bulanHijriah == 1){
        cout<<"Muharram";
    }
    else if (bulanHijriah == 2){
        cout<<"Shafar";
    }
    else if (bulanHijriah == 3){
        cout<<"Rabiul Awal";
    }
    else if (bulanHijriah == 4){
        cout<<"Rabiul Akhir";
    }
    else if (bulanHijriah == 5){
        cout<<"Jumadil Awal";
    }
    else if (bulanHijriah == 6){
        cout<<"Jumadil Akhir";
    }
    else if (bulanHijriah == 7){
        cout<<"Rajab";
    }
    else if (bulanHijriah == 8){
        cout<<"Syaban";
    }
    else if (bulanHijriah == 9){
        cout<<"Ramadhan";
    }
    else if (bulanHijriah == 10){
        cout<<"Syawal";
    }
    else if (bulanHijriah == 11){
        cout<<"Dzulqaidah";
    }
    else if (bulanHijriah == 12){
        cout<<"Dzulhijjah";
    }
    else {
        cout<<"Invalid";
    }
    return 0;
}

E. Switch Case

Sumber : Duniailkom.com

1. Pengertian 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 true, maka block kode program akan di proses.

Kondisi SWITCH CASE terdiri dari 2 bagian, yakni perintah SWITCH dimana terdapat nama variabel yang akan diperiksa, serta 1 atau lebih perintah CASE untuk setiap nilai yang akan diperiksa.

Berikut saya tampilkan kembali kode program dengan struktur If Else If :

#include <iostream>
using namespace std;
 
int main()
{
  char nilai;
 
  cout << "Input Nilai Anda (A - E): ";
  cin >> nilai;
 
  if (nilai == 'A' ) {
    cout << "Pandai!" << endl;
  }
  else if (nilai == 'B' ) {
    cout << "Bagus!" << endl;
  }
  else if (nilai == 'C' ) {
    cout << "Cukup!" << endl;
  }
  else if (nilai == 'D' ) {
    cout << "Kurang!" << endl;
  }
  else if (nilai == 'E' ) {
    cout << "Jelek!" << endl;
  }
  else {
    cout << "Invalid" << endl;
  }
 
  return 0;
}
Program yang sama bisa dikonversi ke dalam bentuk Switch Case berikut ini :

#include <iostream>
using namespace std;

int main()
{
  char nilai;

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

  switch (nilai) {
  case 'A':
    cout << "Pandai!" << endl;
    break;
  case 'B':
    cout << "Bagus!" << endl;
    break;
  case 'C':
    cout << "Cukup!" << endl;
    break;
  case 'D':
    cout << "Kurang!" << endl;
    break;
  case 'E':
    cout << "Jelek!" << endl;
    break;
  default:
    cout << "Invalid" << endl;
  }

  return 0;
}
Hasil Kode Program :

Input Nilai Anda (A - E): A
Pandai!
 
Input Nilai Anda (A - E): B
Bagus!
 
Input Nilai Anda (A - E): C
Cukup!
 
Input Nilai Anda (A - E): F
Invalid

Di baris 10 terdapat perintah untuk meminta user menginput salah satu huruf antara ‘A’ – ‘E’. Nilai huruf ini kemudian disimpan ke dalam variabel nilai yang sudah di set ber tipe data char.

Kondisi Switch Case dimulai pada baris 12. Di sini terdapat perintah switch (nilai) yang artinya kita ingin memeriksa isi dari variabel nilai. Seluruh block SWITCH berada di dalam tanda kurung kurawal yang dimulai dari baris 12 sampai 30.

Di baris 13 terdapat perintah case ‘A’: Ini artinya jika variabel nilai berisi karakter ‘A‘, maka jalankan isi dari block CASE, yakni perintah cout << “Pandai!” << endl. Lalu terdapat perintah break di baris 15 agar struktur CASE lain tidak perlu di proses lagi.

Di baris 16 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 25.

Jika ternyata tidak ada nilai yang sesuai, maka block default di baris 28 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, dimana tidak bisa dipakai untuk kondisi yang lebih kompleks seperti perbandingan dengan tanda lebih besar dari ” > “, maupun penggabungan kondisi.

Contoh lainnya dari Switch Case :

1. Nama-nama Hari dalam Seminggu

#include <iostream>
using namespace std;

int main() {
    int hari;
    cout<<"Masukkan Hari : ";
    cin>>hari;
   
    switch (hari) {
        case 1 :
        cout << "Senin" << endl;
        break;
        case 2 :
        cout << "Selasa" << endl;
        break;
        case 3 :
        cout << "Rabu" << endl;
        break;
        case 4 :
        cout << "Kamis" << endl;
        break;
        case 5 :
        cout << "Jumat" << endl;
        break;
        case 6 :
        cout << "Sabtu" << endl;
        break;
        case 7 :
        cout << "Minggu" << endl;
        break;
    }
   
    return 0;
}
2. Nama-nama Bulan dalam Setahun (Masehi/Gregorian)

#include <iostream>
using namespace std;

int main() {
    int bulanMasehi;
    cout<<"Masukkan Bulan : ";
    cin>>bulanMasehi;
   
    switch (bulanMasehi) {
        case 1 :
        cout << "Januari" << endl;
        break;
        case 2 :
        cout << "Februari" << endl;
        break;
        case 3 :
        cout << "Maret" << endl;
        break;
        case 4 :
        cout << "April" << endl;
        break;
        case 5 :
        cout << "Mei" << endl;
        break;
        case 6 :
        cout << "Juni" << endl;
        break;
        case 7 :
        cout << "Juli" << endl;
        break;
        case 8 :
        cout << "Agustus" << endl;
        break;
        case 9 :
        cout << "September" << endl;
        break;
        case 10 :
        cout << "Oktober" << endl;
        break;
        case 11 :
        cout << "November" << endl;
        break;
        case 12 :
        cout << "Desember" << endl;
        break;
    }
   
    return 0;
}
3. Nama-nama Bulan dalam Setahun (Hijriah)

#include <iostream>
using namespace std;

int main() {
    int bulanHijriah;
    cout<<"Masukkan Bulan : ";
    cin>>bulanHijriah;
   
    switch (bulanHijriah) {
        case 1 :
        cout << "Muharram" << endl;
        break;
        case 2 :
        cout << "Shafar" << endl;
        break;
        case 3 :
        cout << "Rabiul Awal" << endl;
        break;
        case 4 :
        cout << "Rabiul Akhir" << endl;
        break;
        case 5 :
        cout << "Jumadil Awal" << endl;
        break;
        case 6 :
        cout << "Jumadil Akhir" << endl;
        break;
        case 7 :
        cout << "Rajab" << endl;
        break;
        case 8 :
        cout << "Syaban" << endl;
        break;
        case 9 :
        cout << "Ramadhan" << endl;
        break;
        case 10 :
        cout << "Syawal" << endl;
        break;
        case 11 :
        cout << "Dzulqaidah" << endl;
        break;
        case 12 :
        cout << "Dzulhijjah" << endl;
        break;
    }
   
    return 0;
}

F. Struktur Perulangan


C++ menyediakan banyak sekali resource untuk dapat kita pakai dan merangkainya menjadi sebuah source code program. Dari sekian banyak resource, beberapa digunakan untuk membentuk struktur perulangan. Ada tiga bentuk perulangan “populer” di C++, yaitu : For, Whike, dan Do While. Tetapi terlepas dari ketiga bentuk tersebut, sebenarnya ada sebuah bentuk lagi, yaitu Goto. Namun, karena perulangan bentuk ini kurang terstruktur sehingga tidak banyak digunakan.

Sebelum memasuki inti, apa itu perulangan? Secara morfologis, perulangan terdiri dari kata dasar “ulang” yang diberi imbuhan “pe-an” yang artinya suatu kegiatan. Jadi, dapat dikatakan perulangan adalah kegiatan mengulang. Tetapi, pada konteks pemrograman, perulangan dapat secara spesifik diartikan sebagai kegiatan mengulang suatu statement menurut batas tertentu yang telah ditentukan.

Adanya perulangan ini tentu sangat membantu dalam mempersingkat penulisan kode program. Contohnya saja jika kita ingin menampilkan isi pada sebuah array, kita bisa menggunakan perulangan untuk menampilkan isi array tersebut sesuai dengan index array tersebut. Tetapi, masalah muncul ketika kita dihadapkan pada sebuah kasus tertentu yang menuntut kita menggunakan bentuk perulangan yang sesuai. Bagaimana jika kita hanya ingin meampilkan index array yang sudah terisi sedangkan kita tidak tahu apakah semua index pada array tersebut telah terisi. Atau bagaimana jika kita ingin membentuk suatu deret bilangan dimana deret tersebut harus terdiri dari sepuluh hasil yang terbentuk menurut iterasi tertentu.

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

Ada 4 (Empat) macam bentuk perulangan pada C++. Secara umum, dibagi menjadi 2 (Dua) Kelompok yaitu Counted Loop dan Uncounted Loop. Berikut, inilah 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 yang termasuk dalam Counted Loop :
  • Perulangan For
    2. Perulangan yang termasuk dalam Uncounted Loop :
  • Perulangan While
  • Perulangan Do/While

Manakah bentuk perulangan yang sesuai? Berikut, inilah pembahasannya :

1. 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);
}
Atau seperti ini :

for (start; condition; increment) 
{
   // kode program
   // kode program
}

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<<"Masukkan jumlah nilai yang akan dihitung rata - ratanya "
    int n,i; int jumlah=0; cin>>n;
    int nilai[n];
    for(i=0;i<n;i++){ cin>>nilai[i];
        jumlah +=nilai[i];
    }
    float mean = (float)jumlah/n;
    cout<<"Rata - ratanya adalah "<<mean;
    return 0;
}
Atau yang ini :

#include <iostream>
using namespace std;
int main() {
    int a;
    for(a = 1;a <= 10;a++) {
        cout<<"a = "<<a<<endl;
    }
}

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.

Bentuk Flowchart-nya sama seperti Flowchart for.


Bentuk kodenya seperti ini :

start;
while (condition) 
{
   // kode program
   // kode program
  increment;
}

Untuk memahami perulangan ini, mari kita coba lihat contohnya :

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

int main() {
    int i=1;
    while (i<=10)
    {
        cout<<"Belajar Perulangan While "<<i<<endl;
        i++;    
    }
    getch();
}
Dan inilah Contoh Lainnya :

#include <iostream>
using namespace std;
 
int main()
{
  int i = 1;
  while (i <= 5){
    cout << "Hello World" << endl;
    i++;
  }
 
  return 0;
}
Output :

Hello World
Hello World
Hello World
Hello World
Hello World

Di baris 7 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 8. Perintah while (i <= 5) artinya, selama nilai variabel i kurang atau sama dengan 5, maka jalankan perulangan.

Di dalam blok perulangan terdapat perintah cout << “Hello World” << endl di baris 9. Ini dipakai untuk menampilkan teks “Hello World“. Kemudian di baris 10 terdapat perintah increment, yakni i++. Perintah ini akan menaikkan nilai variabel i sebanyak 1 angka dalam setiap iterasi.

Perulangan while 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.

Contoh lainnya untuk mencetak secara Kustom (Input secara Kustom) :

#include <iostream>
using namespace std;
 
int main(){
    int n;
   
    cout<<"Masukkan nilai n : ";
    cin>>n;

    int i = 1;
    while (i <= n){
    cout << "Hello World" << endl;
    i++;
  }
 
  return 0;
}
Dan inilah Program untuk penulisan Fungsi Iterasi (Iterated/Nesting Function) dengan menggunakan Struktur Perulangan While :

#include <iostream>
using namespace std;
 
int main(){
    int n, i = 1;;
   
    cout<<"f^n(x)"<<endl;
    cout<<"Input n : ";
    cin>>n;

    i = 1;
    while (i <= n){
        cout<<"f(";
    i++;
    }
   
    cout<<"x";
   
    i = 1;
    while (i <= n){
        cout<<")";
    i++;
    }

  return 0;
}

3. Perulangan Do-While

Perulangan do/while sama seperti perulangan while. Perbedaanya adalah jika Perulangan do/while akan melakukan perulangan sebanyak 1 kali terlebih dahulu, lalu mengecek kondisi yang ada di dalam kurung while. Flowchart perulangan do-while :


Bentuk kodenya seperti ini :

do {
    // blok kode yang akan diulang
} while (<kondisi>);
Atau seperti ini :

start;
do
{
 // kode program
 // kode program
 increment;
} 
while (condition)

Jadi perbedaannya adalah :

Perulangan do-while akan mengecek kondisi di belakang (sesudah mengulang), sedangkan while akan mencek kondisi di depan atau awal (sebelum mengulang).

Mari kita coba lihat contohnya :

#include <conio.h>
#include <iostream>
using namespace std;
int main() {
    int i=1;
    do {
        cout<<"Belajar Perulangan Do While "<<i<<endl;
        i++;    
    } while (i<=10);
    getch();
}
Contoh tersebut sama seperti contoh pada perulangan while. Dan inilah contoh lainnya dengan menggunakan perulangan Do While :

#include <iostream>
using namespace std;
 
int main()
{
  int i = 1;
  do {
    cout << "Hello World" << endl;
    i++;
  }
  while (i <= 5);
 
  return 0;
}
Output :

Hello World
Hello World
Hello World
Hello World
Hello World

Dalam perulangan Do While kita juga bisa mengakses variabel counter seperti contoh berikut :

#include <iostream>
using namespace std;
 
int main()
{
  int i = 1;
  do {
    cout << i * 3 << " ";
    i++;
  }
  while (i <= 5);
 
  return 0;
}
Yup, ini adalah Kode Program untuk membuat sebuah deret dengan Kelipatan 3. Dan inilah Output-nya :

3 6 9 12 15

Kunci utama yang membedakan perulangan DO WHILE dengan perulangan WHILE 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 <iostream>
using namespace std;
 
int main()
{
  int i = 10;
  do {
    cout << i * 3 << " ";
    i++;
  }
  while (i <= 5);
 
  return 0;
}
Hasil Kode Program : 30.

Di baris 7 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.

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.

#include <iostream>
using namespace std;

int main(){
    for(int i = 0; i < 10; i++){
        for(int j = 0; j < 10; j++){
            printf("Perulangan ke (%d%d)\n", i, j);
        }
    }

    return 0;
}
Pada perulangan tersebut, kita menggunakan 2 (Dua) Perulangan for. Perulangan pertama menggunakan variabel i sebagai counter, sedangkan perultangan kedua menggunakan variabel j sebagai counter.

Atau juga bisa ditulis seperti ini :

#include <iostream>
using namespace std;

int main(){
    for(int i = 0; i < 10; i++){
        for(int j = 0; j < 10; j++){
            cout<<"Perulangan ke ("<<i<<", "<<j<<")"<<endl;
        }
    }

    return 0;
}

5. Perulangan Tak Hingga (Infinite Loop)

Sumber : Beginnersbook.com (Lalu diterjemahkan melalui Google Translate)

Ada suatu kondisi (dari data misalnya) atau bahkan kesalahan/bug dari kode yang dibuat sehingga menyebabkan proses looping tidak berhenti atau disebut Infinite Loops.

Hal ini akan mempuat proses dalam Aplikasi yang kita buat menjalankan proses terus-menerus sampai not responding dan hanya dapat dihentikan dengan paksa (Task Manager -> End Task). Karena itu dalam membuat perulangan kita harus sangat berhati-hati.

Infinite Loop juga bisa dibentuk dalam Struktur Perulangan For dan While. Contoh Infinite Loop dengan Struktur Perulangan While :

#include <iostream>
using namespace std;
 
int main()
{
  int i = 1;
  while (i <= 5){
    cout << "Hello World" << endl;
  }
 
  return 0;
}
Dan juga Infinite Loop yang terbentuk dengan Struktur Perulangan For :

#include <iostream>
using namespace std;

int main(){
   for(int i=1; i>=1; i++){
      cout<<"Nilai dari vaiabel i adalah : "<<i<<endl;
   }
   return 0;
}
Ini adalah Infinite Loop karena kita menaikkan nilai i sehingga selalu memenuhi kondisi i >= 1, kondisi tidak akan pernah kembali False.


ARRAY DALAM BAHASA PEMROGRAMAN C++

Di kebanyakan bahasa pemrograman array sangat penting dan banyak digunakan. Array membantu kita untuk membuat sebuah variabel yang dapat diisi oleh banyak nilai, dengan kata lain kita tidak perlu membuat banyak variabel. Cukup satu variabel namun bisa menampung banyak nilai, dengan catatan tipe data yang digunakan harus sama ya. jadi misalnya sebuah array menggunakan tipe Integer maka semua nilai dalam variabel tersebut harus ber-tipe sama yaitu Integer.

Array adalah sebuah variabel yang punya kemampuan untuk menyimpan lebih dari 1 nilai yang memiliki tipe yang sama. Atau dalam kata lain array adalah sekumpulan data dengan tipe data yang sama.

A. Array 1 Dimensi


1. Inisialisasi Array di C++

Didalam Bahasa Pemrograman C++ kita dapat mendeklarasikan variabel array dengan bentuk yang umum adalah sebagai berikut :
  • Tipe data adalah tipe jenis data yang digunakan pada variabel array tersebut. bisa berupa karakter string atau sebuah bilangan.
  • Nama array adalah nama yang kalian gunakan. bebas untuk membuat nama array. Namun perlu diperhatikan standar yang baik untuk nama sebuah variabel array.
  • ukuran adalah sebuah nilai kapasitas untuk menentukan berapa space yang disediakan untuk menampung nilai didalam array tersebut.

tipe _data nama_array [ukuran];

Contoh :

int nilai[10];

Sebenarnya didalam c++ kita juga dapat membuat array tanpa perlu menentukan ukurannya, hanya saja kita perlu langsung menginisialisasi nilainya. Jadinya seperti ini :

int nilai[]={23,4,10,9};

2. Inisialisasi Nilai Array

Kita dapat memasukan nilai dalam sebuah variabel array berdasarkan ukuran dari array tersebut. Dengan catatan jika kita menentukan ukurannya, sementara bila tidak maka array tersebut bersifat dinamis menyesuaikan jumlah nilai didalamnya.

Contoh : 

//inisialisasi array dengan ukuran.
int nilai[5]={2,4,9,15,22};

// inisialisasi array tanpa ukuran
int nilai[]={2,4,9,15,22};

3. Mengakses Variabel Array

Untuk mengakses nilai di dalam variabel array menggunakan index. Array selalu diawali dari index ke-0. Contoh jika berdasarkan array yang kita buat diatas dan kita ingin mencetak nilai 2 dan 15 maka index yang diakses adalah 0 dan 3 karena nilai 2 berada pada index ke 0 dan nilai 5 berada pada index ke-3. Lihat program berikut :

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

int main() {

    int nilai[5]={2,4,9,15,22};
   
    cout<<nilai[0]<<endl;
    cout<<nilai[3]<<endl;
   
    getch();
}
4. Mengakses Nilai Array dengan Perulangan

Untuk nilai array kebanyakan cara mengaksesnya menggunakan bantuan perulangan for. karena akses index membutuhkan deretan angka yang dapat kita buat dengan mudah menggunakan Perulangan.

Contoh : 

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

int main() {

    int nilai[5]={2,4,9,15,22};
   
    for (int i=0;i<5;i++){
        cout<<nilai[i]<<endl;
    }
   
    getch();
}
5. Studi Kasus Contoh Program Tentang Array di C++

Input : 

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

int main()
{
    int n;
    string nama[10],status[10];
    int nilai[10];

    cout<<"Masukan Jumlah Data = ";
    cin>>n;
    cout<<endl;

    for (int i=0; i<n; i++) {
        cout<<endl;
       
        cout<<"Data ke-"<<i+1<<endl;
        cout<<"Masukan Nama = ";
        cin>>nama[i];
        cout<<"Masukan Nilai = ";
        cin>>nilai[i];
       
        if (nilai[i]<=60) {
            status[i]="Tidak Lulus";
        } else {
            status[i]="Lulus";
        }
    }
    cout<<endl;
    cout<<"DAFTAR NILAI MAHASISWA"<<endl;
    cout<<"-------------------------------------------"<<endl;
    cout<<"No    Nama           Nilai           Status         "<<endl;
    cout<<"-------------------------------------------"<<endl;

    for (int i=0; i<n;i++) {
    cout<<i+1<<"   "<<nama[i]<<"            "<<nilai[i]<<"          "<<status[i]<<endl;
    cout<<"-------------------------------------------"<<endl;
    }

getch();
}
Output :


Pada program diatas merupakan implementasi penggunaan array di C++. Disini saya membuat beberapa variabel array seperti nama dan status dengan tipe string dan nilai dengan tipe integer. Masing-masing saya beri Slot 10 Space, dari sini dapat kita ketahui bahwa program ini hanya akan mampu menampung nilai kurang dari atau sama dengan 10 nilai yang dapat di tampung di variabel array tersebut.

User akan memasukan nama dan nilai yang akan dilakukan perulangan berdasarkan jumlah data yang akan diinput. Jika nilai yang dimasukan kurang dari 50 maka status mahasiswa tersebut tidak lulus. Natinya sistem akan menampilkan data mahasiswa tersebut dan juga status kelulusannya.

B. Array 2 Dimensi


Array 2 Dimensi adalah array yang memiliki lebih 2 bentuk index array. Jika pada array 1 dimensi hanya memiliki satu bentuk index, di array 2 dimensi atau bisa kita sebut array multidimensi memiliki lebih dari satu bentuk Index Array.

1. Bentuk Array 2 Dimensi

Jika didalam Array 1 Dimensi hanya menggunakan sebuah tanda [] (bracket) namun pada Array 2 Dimensi kita membuat 2 tanda [] tersebut. Berikut ini adalah bentuk umum Array 2 Dimensi.

tipe_data nama_array[jumlah elemen baris][jumlah elemen kolom];

Contoh :

int A[3][4];

Contoh diatas kita mendeklarasikan sebuah variabel array 2 dimensi dengan menggunakan tipe data Integer dengan nama A memiliki ukuran 3 Jumlah elemen baris dan 4 Kolom.

2. Inisialisasi Nilai Array 2 Dimensi

Inisialisasi nilai Array 2 Dimensi dapat dibuat dengan cara manual ataupun dapat diinput oleh pengguna saat program dijalankan. Karena Array 2 dimensi mempunyai lebih dari satu bentuk index array, maka ketika kita melakukan inisialisasi nilai (secara manual) perlu menggunakan tanda {} untuk membentuk baris array.

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

Sebagai contoh jika kita memilii array dengan jumlah elemen baris sebanyak 3 Elemen, maka setiap elemen baris tersebut di apit dengan tanda {} dan dipisahkan dengan tanda koma. Didalam elemen baris tersebut baru kemudian kita memasukan nilai sesuai dengan jumlah elemen kolom yang dibuat (dalam hal ini berjumlah 4 Kolom).

Untuk dapat melihat lebih jelas inisialisasi array yang dibuat diatas dapat digambarkan lewat Tabel berikut :


Karena index array dimulai dari 0 maka setiap elemem baris dan kolom dimulai dari 0. Nilai 3 akan menempati pada baris ke 0 dan kolom ke 0. nilai 4 menempati baris ke 0 kolom ke 1 nilai 8 pada baris ke 0 dan kolom ke 2 dan seterusnya.

3. Mengakses Nilai Array 2 Dimensi

Mengakses nilai array dapat dilakukan dengan cara manual dimana kita langsung mencetak sesuai dengan index baris dan kolom pada array tersebut. Sebagai contoh jika kita ingin mengakses nilai 1 maka index array yang kita akses adalah A[1][3]; karena 1 berada pada elemen baris ke-1 dan pada kolom ke-3.

Selain itu kita juga dapat menggunakan perulangan for. Berikut ini contoh programnya : 

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

int main() {
   
    int A[3][4]={{3,4,8,0},{3,9,2,1},{6,3,0,2}};
   
    for (int b=0;b<3;b++){
        for (int k=0;k<4;k++){
            cout<<A[b][k]<<" ";
        }
        cout << endl;
    }
getch();
}
Pada program diatas kita membuat dua buah perulangan for perulangan yang pertama untuk mengakses elemen BARIS pada array A. kemudian didalam perulangan tersebut kita buat sebuah perulangan lagi untuk mengakses elemen KOLOM pada Array A.

4. Contoh Program Input Nilai dari User

Input : 

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

int main() {
   
    int A[3][4];
   
    for (int b=0;b<3;b++){
        for (int k=0;k<4;k++){
              cout<<"A["<<b<<"]["<<k<<"] = ";
              cin>>A[b][k];
        }
        cout << endl;
    }
   
    for (int b=0;b<3;b++){
        for (int k=0;k<4;k++){
             cout<<A[b][k]<<" ";
        }
        cout << endl;
    }
    getch();
}
Output :



INPUT-OUTPUT (I/O) FILE DALAM BAHASA PEMROGRAMAN C++

Sumber  Materi : Petanikode.com

A. Tampilan Input-Output (I/O) dalam C++

C++ memiliki 4 (Empat) fungsi dasar untuk menampilkan Output :
  • cout untuk menampilkan teks ke layar;
  • cerr untuk menampilkan error;
  • clog untuk menampilkan log;
  • printf() untuk menampilkan output, fungsi ini dari C;
Kita akan fokus memabahas yang 2 saja, yakni cout dan printf(). Soalnya cerr dan clog, cara pakainya sama seperti cout. Bedanya sih pada konteks penggunaanya, yakni untuk error dan log.

1. 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.

Contoh :

cout << "Namaku adalah ";
cout << "Inzaghi Posuma";
Maka outputnya akan ditampilkan dalam 1 (Satu) Baris :

Namaku adalah Inzaghi Posuma
Sedangkan kalau kita menggunakan endl atau \n.

cout << "Namaku adalah " << endl;
cout << "Inzaghi Posuma";
Hasilnya akan ditampilkan dalam 2 (Dua) Baris :

Namaku adalah
Inzaghi Posuma
Apapun setelah simbol << akan ditampilkan ke layar. Jika kita ingin menampilkan variabel, kita bisa menulisnya seperti ini :

string nama = "Inzaghi Posuma";
cout << "Hello " << nama << endl;
Hasilnya :

Hello Inzaghi Posuma
Mudah sekali kan?

Buatlah program bernama program_output.cpp, kemudian isi dengan kode berikut :

#include <iostream>
using namespace std;

int main(){

  cout << "=========== PROGRAM OUTPUT ===========" << endl;
  cout << "Progarm ini adalah program untuk\n";
  cout << "Menampilkan output ke layar komputer.\n";
  cout << "Output sangat penting buat menampilkan\n";
  cout << "informasi kepada user.\n";
  cout << "======================================" << endl;

  cout << endl;
  cout << "Program ini dibuat oleh Inzaghi" << endl;

  return 0;
}
Coba kita Compile dan jalankan, maka hasilnya :

=========== PROGRAM OUTPUT ===========
Progarm ini adalah program untuk
Menampilkan output ke layar komputer
Output sangat penting buat menampilkan
informasi kepada user
======================================

Program ini dibuat oleh Inzaghi

2. 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() :


Perhatikan :

"format" adalah sebuah teks (string) untuk ditampilkan. Lalu tanda ... akan berisi sebuah variabel atau nilai untuk ditampilkan berdasarkan format yang diberikan pada teks "format".

Mari kita lihat contohnya:

Buatlah sebuah program C++ bernama program_output_printf.cpp, lalu isi dengan kode berikut.

#include <iostream>
using namespace std;

int main(){
    printf("Hello, ini adalah teks output\n");
    printf("Nama saya %s\n", "Inzaghi");
    printf("Usia saya %d\n", 19);
    return 0;
}
Hasilnya :

Hello, ini adalah teks output
Nama saya Inzaghi
Usia saya 19

Ada beberapa hal yang perlu di perhatikan, yaitu pada fungsi printf() kita menggunakan simbol %s, %d, dan \n untuk format teks.

Mari kita bahas 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 3 (Tiga) Simbol tersebut, masih banyak lagi simbol yang lain.

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

Sekarang dari Fungsi Output, mari kita ke Fungsi Input.

3. 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. Intinya variabel berfungsi untuk meyimpan data saat program berjalan. Mari kita coba menggunakan fungsi cin.

Buatlah program baru bernama program_input.cpp, kemudian isi dengan kode berikut :

#include <iostream>
using namespace std;

int main(){
    string nama;
    cout << "Tuliskan nama : ";
    cin >> nama;

    cout << "Hi " << nama;
    cout << "Selamat datang di klub!" << endl;

    return 0;
}
Setelah itu, coba kita compile dan jalankan. Maka hasilnya :

Tuliskan nama : Inzaghi
Hai Inzaghi Selamat datang di klub!

4. 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 lihat contohnya :

#include <iostream>
using namepsace std;

int main () {
    // membuat variabel
    char name[20], web_address[30];

    printf("Nama : ");
    scanf("%s", &name);

    printf("Alamat Web : ");
    scanf("%s", &web_address);

    printf("\n------------------------------\n");
    printf("Nama yang diinputkan : %s\n", name);
    printf("Alamat Web yang diinputkan : %s\n", web_address);
   
    return 0;
}
Hasilnya :

Nama : Inzaghi
Alamat Web : inzaghiposuma.blogspot.com

------------------------------
Nama yang diinputkan : Inzaghi
Alamat Web yang diinputkan : inzaghiposuma.blogspot.com

Tapi saat kita menginputkan teks yang mengandung spasi, hasilnya akan dipecah menjadi 2 (Dua) seperti ini :

Nama : Inzaghi
Alamat Web : inzaghiposuma.blogspot.com
------------------------------
Nama yang diinputkan : Inzaghi
Alamat Web yang diinputkan : inzaghiposuma.blogspot.com

Untuk mengatasi masalah ini, kita bisa ubah format yang digunakan pada scanf() menjadi seperti ini :

printf("Nama: ");
scanf("%[^\n]s", name);
Maka fungsi scanf() akan menerima spasi. Dalam menggunakan scanf(), kita dianjurkan menggunakan simbol & sebelum nama variabel.

Contoh :

#include <stdio.h>

void main(){

    int a, b, c;

    printf("Inputkan nilai a: ");
    scanf("%i", &a);

    printf("Inputkan nilai b: ");
    scanf("%i", &b);

    c = a + b;

    printf("Hasil a + b: %i", c);

}
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(). Kita bisa menggunakan fungsi bawaan C++ atauapun Fungsi dari Bahasa C seperti printf(), scanf(), puts() dll.

Dan kalau saya sendiri lebih suka menggunakan cout dan cin dalam Bahasa C++, karena kalau printf() dan scanf() justru lebih mirip Bahasa C dan juga lebih sulit dan rumit.

B. Input-Output (I/O) File dalam C++


1. Pemrosesan File Dalam C++

Adapun Pemrosesan File dalam C++ yatu :
  • Pemrosesan file dalam C++ dilakukan dengan menggunakan fstream class.
  • Tidak seperti struktur FILE, fstream merupakan sebuah complete class dengan constructors, sebuah destructor and overloaded operators.
  • Untuk melakukan pemrosesan File, kita bisa mendeklerasikan sebuah instance dari sebuah objek fstream. Jika nama file yang mau diproses tidak diketahui, maka cukup gunakan default
  • constructor.
  • Tidak seperti struktur FILE, fstream class menyediakan dua buah distinct class untuk pemrosesan file. Satu digunakan untuk menulis sebuah file sedangkan satu lagi untuk membaca sebuah file.

2. Input/Output File

Sebelumnya kita sudah sering melakukan input output berupa karakter di layar menggunakan fungsi cout dan cin yang disediakan oleh pustaka iostream. Tapi bukan hanya itu, pada Bahasa Pemrograman C/C++ juga menyediakan pustaka yang berfungsi untuk melakukan tugas Input dan Output berupa sebuah file, seperti :
  • ofsteam : Merupakan sebuah tipe data output yang memungkinkan kita untuk melakukan pembuatan dan menulis informasi pada file.
  • ifstream : Merupakan sebuah tipe data input yang memungkinkan kita melakukan pembacaan informasi dari file.
  • fstream : Merupakan sebuah tipe data input output file yang memungkinkan kita untuk melakukan kedua hal tersebut, seperti membuat, menulis dan membaca informasi dari file.
Contoh : 

#include <iostream>
#include <fstream>
using namespace std;

int main () {
[file example.txt]
Writing this to a file.
ofstream myfile;
myfile.open ("example.txt");
myfile << "Writing this to a file.\n";
myfile.close();
return 0;
}
3. Membuka Sebuah File Dalam C++

  • Dalam C++, fungsi untuk membuka file adalah open().
  • Untuk membuka sebuah file dengan sebuah objek stream object kita menggunakan fungsi open berikut: open (filename, mode);
  • Dimana filename adalah sebuah null-terminated character yang bertipe const char * dan merupakan nama file yang akan dibuka.
  • mode adalah sebuah parameter tambahan dengan kombinasi flag-flag dibawah ini :

Contoh Untuk Membuat Sebuah File Dalam C++ :

#include <fstream>
#include <iostream>
using namespace std;

int main() {
char FirstName[30], LastName[30];
int Age; char FileName[20];
cout << "Enter First Name: "; cin >> FirstName;
cout << "Enter Last Name: "; cin >> LastName;
cout << "Enter Age: "; cin >> Age;
cout << "\nEnter the name of the file you want to create: ";
cin >> FileName;
ofstream Students(FileName, ios::out);
Students << FirstName << "\n" << LastName << "\n" << Age;
cout << "\n\n";
return 0;
}
Contoh Untuk Membuka Sebuah File Dalam C++ :

#include <fstream>
#include <iostream>
using namespace std;

int main() {
char FirstName[30], LastName[30];
int Age; char FileName[20];
cout << "Enter the name of the file you want to open: ";
cin >> FileName;
ifstream Students(FileName);
Students >> FirstName >> LastName >> Age;
cout << "\nFirst Name: " << FirstName;
cout << "\nLast Name: " << LastName;
cout << "\nEnter Age: " << Age;
cout << "\n\n";
return 0;
}
4. Menutup Sebuah File Dalam C++

Ketika kita selesai dalam melakukan operasi dan berurusan dengan file tersebut, maka disarankan untuk menutupnya. Ketika penutupan file dilakukan maka object dapat digunakan kembali untuk membuka file lainnya dan untuk file yang sudah ditutup maka akan tersedia unuk dibuka pada proses lainnya.

5. Menulis ke sebuah File

Untuk melakukan penulisan terhadap sebuah file yang telah kita buka, membutuhkan sebuah operator yang dinamakan Stream Insertion Operator << mirip seperti apa yang kita lakukan saat menggunakan obyek cout, sebagai gantinya kita di sini menggunakan ofstream atau fstream.

6. Membaca sebuah File

Untuk membaca informasi dari sebuah file yang telah kita buka kedalam program kita, membutuhkan sebuah Sream Extraction Operator >> . Mirip seperti apa yang kita lakukan saat menggunakan obyek cin. Sebagai gantinya kita menggunakan ifstream atau fstream.

7. Contoh Operasi File (Membuka, Menulis, Membaca dan Menutup File)

Setelah semua penjelasan di atas, saatnya kita melakukan percobaan membuat program untuk melakukan operasi file. Alur operasi sebuah file masih sama seperti penjeasan di atas, dimana kita harus membuka file terlebih dahulu, melakukan operasi seperti menulis dan membaca informasi dan jika sudah selesai kita akan melakukan penutupan file.

Contoh Program :

#include <fstream>
#include <iostream>
using namespace std;
 
int main () {
    string baris;
 
    // membuka file dalam mode menulis.
    ofstream outfile;
    // menunjuk ke sebuah nama file
    outfile.open("contohfile.txt");
 
    cout << ">= Menulis file, \'q\' untuk keluar" << endl;
 
    //unlimited loop untuk menulis
    while(true){
        cout << "- ";
        //mendapatkan setiap karakter dalam satu baris
        getline(cin, baris);
        //loop akan berhenti jika anda memasukan karakter q
        if(baris == "q") break;
        // menulis dan memasukan nilai dari 'baris' ke dalam file
        outfile << baris << endl;
    }
    //selesai dalam menulis sekarang tutup filenya
    outfile.close();
 
    //Membuka file dalam mode membaca
    ifstream infile;
    //menunjuk ke sebuah file
    infile.open("contohfile.txt");
 
    cout << endl << ">= Membuka dan membaca file " << endl;
    //jika file ada maka
    if (infile.is_open()){
        //melakukan perulangan setiap barus
        while ( getline (infile,baris) ){
            //dan tampilkan di sini
            cout << baris << '\n';
        }
        //tutup file tersebut setelah selsai
        infile.close();
    }
    //jika tidak ditemukan file maka akan menampilkan ini
    else cout << "Unable to open file";
    return 0;
}

POINTER DALAM C++

Sumber : Bundet.com dan Belajarcpp.com

Pointer adalah sebuah variabel atau object yang menunjuk ke variabel atau object lainnya. Sebelumnya pernah dijelaskan mengenai Variabel, menyatakan bahwa. “Variabel merupakan sebuah representasi dari alamat memori pada Komputer”.

Dan pointer hanyalah variabel yang menyimpan alamat memori, memori tersebut dapat berasal dari variabel, obyek dan lain-lain. Dengan pointer kita dimungkinkan untuk menunjuk suatu Memori, mendapatkan isi dari memori dan mengubah isi dari memori yang di tunjuk.

A. Macam-macam Operator pada Pointer

Sebelum kita mempelajari pointer, ada dua hal yang perlu anda ketahui. Dalam pointer terdapat 2 (Dua) macam Operator yang akan kita gunakan, yaitu Address-of (&) dan Dereference operator (*).

1. Operator Deference (&)

Operator ini biasanya disebut dengan address of atau operator alamat. Dengan menggunakan operator deference (&) ini, suatu variabel akan menghasilkan alamat memori.

Contoh :

int x = 45;
cout << &x;

Pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x.

2. Operator reference (*)

Operator ini biasanya disebut value pointed by. Dengan menggunakan operator ini, kita dapat mengakses secara langsung nilai yang terdapat pada suatu alamat memori.

Contoh :

int x = 45;
cout <<*&x;

Pada program di atas, akan ditampilkan nilai dari alamt memori &x.

B. Macam-macam Operator pada Pointer

Suatu variabel pointer didefinisikan dengan bentuk sebagai berikut :
  • tipe_data dapat berupa sembarang tipe seperti halnya pada pendefinisian variabel bukan pointer.
  • nama_variabel adalah nama variabel pointer.

tipe_data *nama_variabel

Contoh :

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

void main() {
int x, y; int *px;
x = 89;
y = x;
px = &x;
cout << "Nilai x = " << x << endl;
cout << "Nilai y = " << y << endl;
cout << "Alamat px = " << px << endl;
cout << "Nilai px = " << *px << endl;

getch();
}
Output :

Nilai x = 89
Nilai y = 89
Alamat px = 0×0012ff88
Nilai px = 89

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

void main() {
int x, y;
int *px;

x = 89;
y = x;
px = &x;

cout << "Nilai x = " << x << endl;
cout << "Nilai y = " << y << endl;
cout << "Alamat x = " << &x << endl;
cout << "Alamat px = " << px << endl;
cout << "Nilai px = " << *px << endl;

x = 108;
cout << "\nNilai x = " << x << endl;
cout << "Nilai y = " << y << endl;
cout << "Alamat x = " << &x << endl;
cout << "Alamat px = " << px << endl;
cout << "Nilai px = " << *px << endl;

*px = 123;
cout << "\nNilai x = " << x << endl;
cout << "Nilai y = " << y << endl;
cout << "Alamat x = " << &x << endl;
cout << "Alamat px = " << px << endl;
cout << "Nilai px = " << *px << endl;

getch();
}
Output :

Nilai x = 89
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 89

Nilai x = 108
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 108

Nilai x = 123
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 123

C. Mendeklarasikan Variabel Pointer

Suatu variabel pointer didefinisikan dengan bentuk sebagai berikut :
  • tipe_data dapat berupa sembarang tipe seperti halnya pada pendefinisian variabel bukan pointer.
  • nama_variabel adalah nama variabel pointer.
tipe_data *nama_variabel

Contoh :

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

int main() {
int x, y; int *px;
x = 89;
y = x;
px = &x;
cout << "Nilai x = " << x << endl;
cout << "Nilai y = " << y << endl;
cout << "Alamat px = " << px << endl;
cout << "Nilai px = " << *px << endl;

getch();
}
Output :

Nilai x = 89
Nilai y = 89
Alamat px = 0×0012ff88
Nilai px = 89

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

int main() {
int x, y;
int *px;

x = 89;
y = x;
px = &x;

cout << "Nilai x = " << x << endl;
cout << "Nilai y = " << y << endl;
cout << "Alamat x = " << &x << endl;
cout << "Alamat px = " << px << endl;
cout << "Nilai px = " << *px << endl;

x = 108;
cout << "\nNilai x = " << x << endl;
cout << "Nilai y = " << y << endl;
cout << "Alamat x = " << &x << endl;
cout << "Alamat px = " << px << endl;
cout << "Nilai px = " << *px << endl;

*px = 123;
cout << "\nNilai x = " << x << endl;
cout << "Nilai y = " << y << endl;
cout << "Alamat x = " << &x << endl;
cout << "Alamat px = " << px << endl;
cout << "Nilai px = " << *px << endl;

getch();
}
Output :

Nilai x = 89
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 89

Nilai x = 108
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 108

Nilai x = 123
Nilai y = 89
Alamat x = 0×0012ff88
Alamat px = 0×0012ff88
Nilai px = 123

D. Pointer pada Pointer

Tidak terbatas menunjuk alamat dari suatu variabel, pointer dapat pula menunjuk ke pointer lainnya. Dalam pendeklarasiannya, kita tambahkan pointer reference (*) pada variabel yang akan ditunjuk.

Contoh :

int x;
int *px; //pointer ke variabel int
**ppx; //pointer pada pointer

x = 100;
px = &nama;
ppx = &pNama;

Contoh : 

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

int main() {
int x;
int *px; //pointer ke variabel
int **ppx; //pointer ke pointer

x = 175;
px = &x;
ppx = &px;
cout << "Nilai x = " << x << endl;
cout << "Nilai px = " << *px << endl;
cout << "Nilai ppx = " << **ppx << endl;

getch();
}
Output :

Nilai x = 175
Nilai px = 175
Nilai ppx = 0×0012ff88

E. Pointer Pada Array

Pada Array/Larik, pointer hanya perlu menunjukan alamat elemen pertama saja karena alamat array dalam memori sudah disusun secara berurutan.

Contoh :

int a[] = {76, 67, 88, 98};
int *pa;
pa = a;

Pernyataan pa=a artinya pointer pa menyimpan alamat array a, yang alamatnya diwakili alamat elemen pertama, yaitu a[0]. Kita juga bisa mengganti perintah pa=a dengan pa=&a[0]. Untuk pembacaan semua elemen array dengan pointer, bisa menggunakan perulangan seperti pada penggalan program berikut.

for (int i=0; i < 4; i++) {
cout << *pa << " ";
pa++;
}

Contoh Program :

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

int main() {
    int a[MAX];
    int *pa; pa = a; //atau pa = &a[0]
   
    for (int i = 0; i < MAX; i++) {
    cout << "Masukkan Nilai " << i+1 << " : ";
    cin >> a[i];
    }
   
    cout << endl;
   
    for (int i = 0; i < MAX; i++) {
    cout << "Nilai a[" << i << "] = " << *pa << endl;
    pa++;
    }
   
    getch();
}
Output :

Masukkan Nilai 1 : 100
Masukkan Nilai 2 : 120
Masukkan Nilai 3 : 50
Masukkan Nilai 4 : 80
Masukkan Nilai 5 : 65

Nilai a[0] = 100
Nilai a[1] = 120
Nilai a[2] = 50
Nilai a[3] = 80
Nilai a[4] = 65

F. Pointer pada String

Pointer pada string dapat anda lihat pada contoh program berikut :

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

int main() {
char nama[] = "Albert Einstein";
char *pNama = nama;

cout << "Nama = " << nama << endl;
cout << "pNama = " << pNama << endl;
pNama += 7; cout << "\nSetelah pNama += 7" << endl;
cout << "Nama = " << nama << endl;
cout << "pNama = " << pNama << endl;

getch();
}
Output :

Nama = Albert Einstein
pNama = Albert Einstein

Setelah pNama += 7
Nama = Albert Einstein
pNama = Einstein

G. Argument Passing


Melewati informasi dari fungsi pemanggil (Method) ke fungsi yang dipanggil (method) dikenal sebagai Argument Passing, dengan menggunakan argument passing, kita dapat berbagi informasi dari satu ruang lingkup ke ruang lingkup lainnya dalam Bahasa Pemrograman C++.

Kita dapat meneruskan argumen ke dalam fungsi sesuai kebutuhan. C++ mendukung 3 (Tiga) jenis Argument Passing :
  • Pass by Value
  • Pass by Reference
  • Pass by Address

1. 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.

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;
}
Perubahan pada function parameter tidak akan berpengaruh pada argument, karena apa yang terjadi adalah function parameter hanya menyalin nilai dari argument dengan arti lain bahwa argument dan function parameter adalah variabel yang berbeda dan berdiri sendiri.

Satu hal terakhir yang perlu anda tahu sebelum melakukan metode pass by value adalah, bahwa 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;
}
2. 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 *.

//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;
}
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;
}
Setelah penyampain 3 artikel, yaitu pass by value, pass by reference dan pass by address. Bertujuan untuk memberikan pemahaman, cara-cara dan metode yang mungkin dapat anda gunakan di masa mendatang.

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.

3. 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.

//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;
 
    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.

Jika kalian ingin menggunakan pass by reference untuk menambahkan performa program anda tapi tidak ingin nilai dari argument dapat di ubah anda dapat mendambahkan fitur konstanta pada function parameter, dengan itu nilai dari argumen akan tetap aman.


VECTOR PADA BAHASA C++


Vector adalah Standard Template Library (STL) jika di dalam C/C++ memiliki bentuk std::vector. Umumnya, Vector mirip seperti Array yang memiliki kemapuan untuk menyimpan data dalam bentuk elemen-elemen yang alokasi memorinya dilakukan otomatis dan bersebelahan.

Perbedaan signifikan dalam array dan vector terdapat pada fitur, dimana jika array memiliki ukuran elemen statis atau akan tetap sepanjang runtime berdasarkan saat pengkodingan, sedangkan pada vector, ukuran memori bersifat dinamis saat runtime.

A. Kemampuan Vector

Kemampuan vector bukan hanya pada jumlah elemen yang dinamis, vector pada C/C++ juga dilengkapi dengan fitur-fitur pelengkap seperti element access, iterators, capacity, modifiers.

dan berikut merupakan beberapa function umum yang sering digunakan untuk melakukan pengolahan data pada vector adalah :

vector::assignvector::atvector::backvector::beginvector::capacityvector::cbeginvector::cendvector::clear, dan masih banyak lagi.

B. Cara Membuat Vector

Untuk membuat vector dalam Bahasa pemrograman C/C++, dibutuhkan header untuk mendapatkan kata kunci std::vector diikuti dengan penentuan tipe data, identitas dari variabel dan jumlah elemen.

Bentuk deklarasi std::vector :

std:vector<tipe data> identitas(jumlah_elemen); 

Catatan : Jumlah_elemen merupakan opsional, jika tidak disertakan maka komputer akan otomatis menentukan berdasarkan inisialisasi variabel.

Contoh Deklarasi :

//vector x yang berisi integer
vector<int> x = {4, 2, 3, 3, 4, 5};
 
//vector y yang berisi string
vector<string> y = {"tak kenal", "maka", "kenalan"};

C. Cara Menggunakan Vector

Untuk menggunakan dan mengakses data dalam vector, sama seperti array yang membutuhkan subscript [] untuk mengarah ke elemen yang spesifik.

Bentuk Penulisan :

variabel_vector[nomer_elemen];

Contoh Program :

#include <vector>
#include <iostream>
 
using namespace std;
 
int main(){
    vector<int> nomer = {1,2,3};
    int no_elemen = 1;
     
    //memodifikasi nilai
    nomer[no_elemen] = 10;
     
    //melihat nilai
    cout<<"nilai dari elemen "<<no_elemen<<" adalah "<<nomer[no_elemen];
     
    return 0;
}
D. Macam-macam member function dari std::vector

Vector memiliki banyak member function yang digunakan untuk melakukan pengolahan data pada vector dan member function pada vector bisa dikategorikan menjadi 5 (Lima) Jenis, yaitu :
  • Dasar merupakan kumpulan function umum, seperti: (constructor), (destructor), assign/operator =, dan get_allocator.
  • Akses Elemen atau Element Access, merupakan jenis yang digunakan untuk melakukan pengaksesan pada vector, seperti at, operator [], frontback, dan data (C++11),
  • Iterators merupakan kumpulan function yang digunakan untuk melakukan operasi iterasi dalam vector, yaitu begin / cbegin (C++11), end / cend (C++11), rbegin / crbegin (C++11), dan rend / crend (C++11).
  • Kapasitas atau Capacity merupakan jenis-jenis member function yang digunakan untuk operasi kapasitas pada vector, yaitu emptysizemax_sizereservecapacity, dan shrink_to_fit (C++11)
  • Pengubah atau Modifiers merupakan kumpulan member function yang memiliki jenis untuk melakukan operasi data pada vector, yaitu clearinsertemplace (C++11), erasepush_backemplace_back (C++11), pop_backresize, dan swap.
Untuk detail cara menggunakan member-member function yang disediakan oleh Vector C++ STL, akan penulis pisah pada artikel selanjutnya.


CONTOH PROGRAM DENGAN BAHASA C++

Sumber lainnya : W3resource.com dan Duniailkom.com

Dan berikut, inilah Contoh Program Sederhana hingga Kompleks dengan Bahasa C++ :

Luas Segitiga

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

int main() {
  float luas;
  int a, t;
   
  cout<<"Masukan Alas : ";
  cin>>a;
  cout<<"Masukan Tinggi : ";
  cin>>t;
  cout<<endl;
   
  luas = 0.5*a*t;
  cout<<"Luas Segitiga = "<<luas<<endl;

  getch();
}
Luas dan Keliling Persegi

#include <iostream>
using namespace std;

int main (){
    float sisi, keliling, luas;
    cout<<"PROGRAM MENGHITUNG LUAS & KELILING PERSEGI   "<<endl;
    cout<<"---------------------------------------------"<<endl;
   
    cout<<"Masukan Sisi \t: ";
    cin>>sisi;
   
    keliling = 4*sisi;
    luas = sisi*sisi;
   
    cout<<"Keliling Persegi : "<<keliling<<endl;
    cout<<"Luas Persegi \t : "<<luas<<endl;
    return 0;
}
Luas dan Keliling Persegi Panjang

#include <iostream>
using namespace std;

int main (){
    float panjang, lebar, keliling, luas;
    cout<<"PROGRAM MENGHITUNG LUAS & KELILING PERSEGI PANJANG"<<endl;
    cout<<"--------------------------------------------------"<<endl;
   
    cout<<"Masukan Panjang\t\t: ";
    cin>>panjang;
    cout<<"Masukan Lebar\t\t: ";
    cin>>lebar;
   
    keliling = 2*(panjang+lebar);
    luas = panjang*lebar;
   
    cout<<"Keliling Persegi Panjang : "<<keliling<<endl;
    cout<<"Luas Persegi Panjang\t : "<<luas<<endl;
    return 0;
}
Luas dan Keliling Lingkaran

#include <iostream>
using namespace std;
 
int main(){
  cout << "==============================================" << endl;
  cout << "Program Menghitung Keliling dan Luas Lingkaran" << endl;
  cout << "==============================================" << endl;
  cout << endl;
 
  float r, keliling, luas;
  double pi = 3.1416;
 
  cout << "Input Jari-jari Lingkaran: ";
  cin >> r;
  keliling = 2*pi*r;
  luas = pi*r*r;
 
  cout << "Keliling Lingkaran = "<< keliling << endl;
  cout << "Luas Lingkaran = "<< luas << endl;
 
  return 0;
}
Volume dan Luas Permukaan Kubus

#include <iostream>
using namespace std;

int main (){
    float sisi, luas_permukaan, volume;
    cout<<"PROGRAM MENGHITUNG VOLUME & LUAS PERMUKAAN KUBUS   "<<endl;
    cout<<"---------------------------------------------------"<<endl;
     
    cout<<"Masukan Sisi \t: ";
    cin>>sisi;
     
    luas_permukaan = 6*sisi*sisi;
    volume = sisi*sisi*sisi;
     
    cout<<"Luas Permukaan Kubus : "<<luas_permukaan<<endl;
    cout<<"Volume Kubus \t : "<<volume<<endl;
    return 0;
}
Volume dan Luas Permukaan Balok

#include <iostream>
using namespace std;

int main (){
    float panjang, lebar, tinggi, luas_permukaan, volume;
    cout<<"PROGRAM MENGHITUNG VOLUME & LUAS PERMUKAAN BALOK"<<endl;
    cout<<"------------------------------------------------"<<endl;
   
    cout<<"Masukan Panjang\t\t: ";
    cin>>panjang;
    cout<<"Masukan Lebar\t\t: ";
    cin>>lebar;
    cout<<"Masukan Tinggi\t\t: ";
    cin>>tinggi;
   
    luas_permukaan = 2*(panjang*lebar + panjang*tinggi + lebar*tinggi);
    volume = panjang*lebar*tinggi;
   
    cout<<"Luas Permukaan Balok : "<<luas_permukaan<<endl;
    cout<<"Volume Balok         : "<<volume<<endl;
    return 0;
}
Volume dan Luas Permukaan Tabung

#include <iostream>
using namespace std;

int main(){
    float r, t, volume, luas_permukaan;
    double pi = 3.1416;
           
    cout << "\nPROGRAM MENGHITUNG LUAS & VOLUME TABUNG"<<endl;
    cout <<"Masukan Jari-jari Lingkaran : ";
    cin >> r;
    cout <<"Masukan Tinggi Tabung : ";
    cin >> t;
    volume = pi*r*r*t;
    luas_permukaan = 2*pi*r*(r+t);
    cout <<"Volume Tabung       : "<< volume <<endl;
    cout <<"Luas Permukaan Tabung : "<< luas_permukaan;
    return 0;
}
Volume dan Luas Permukaan Kerucut

#include <iostream>
using namespace std;
 
int main(){
    float pi = 3.1416;
    float rusuk, tinggi, s;
    float luas_permukaan, volume;
 
    cout << "\tPROGRAM MENGHITUNG LUAS & VOLUME KERUCUT"<<endl;
 
    cout << "Masukkan Rusuk         : ";
    cin >> rusuk;
    cout << "Masukkan Tinggi        : ";
    cin >> tinggi;
    cout << "Masukkan Garis Pelukis : ";
    cin >> s;
 
    luas_permukaan = pi * rusuk * (rusuk + s);
    volume = 1/(float)3 * pi * rusuk * rusuk * tinggi;

    cout <<"Volume Kerucut         : "<< volume <<endl;
    cout <<"Luas Permukaan Kerucut : "<< luas_permukaan<<endl;
}
Volume dan Luas Permukaan Bola

#include <iostream>
using namespace std;

int main (){
    cout<<"PROGRAM MENGHITUNG LUAS & VOLUME BOLA"<<endl;

    const float pi=3.14;
    float rusuk, luas_permukaan, volume;

    cout<<"Masukkan Rusuk : ";
    cin>>rusuk;
    cout<<endl;

    luas_permukaan = 4*pi * rusuk*rusuk;
    volume = 4 / (float) 3 * pi * rusuk*rusuk*rusuk;

    cout<<"Luas Permukaan Bola : "<<luas_permukaan<<endl;
    cout<<"Volume Bola         : "<<volume<<endl;

    return 0;
}
Operasi Hitung Aritmatika

#include<iostream>
using namespace std;

int main() {
    double angka1, angka2, hasil;
    cout <<"Masukan Angka Pertama : ";
    cin>>angka1;
    cout <<"Masukan Angka Kedua : ";
    cin>> angka2;
   
    hasil = angka1 + angka2;
    cout<<"Penjumlahan = "<<hasil<<endl;
    hasil = angka1 - angka2;
    cout<<"Pengurangan = "<<hasil<<endl;
    hasil = angka1 * angka2;
    cout<<"Perkalian = "<<hasil<<endl;
    hasil = angka1 / angka2;
    cout<<"Pembagian = "<<hasil<<endl;
}
Operasi Hitung Perbandingan

#include<iostream>
using namespace std;

int main() {
    double angka1, angka2;
    bool hasil;
    cout <<"Masukan Angka Pertama : ";
    cin>>angka1;
    cout <<"Masukan Angka Kedua : ";
    cin>> angka2;
   
    hasil = angka1 == angka2;
    cout<<"a = b : "<<hasil<<endl;
    hasil = angka1 != angka2;
    cout<<"a != b : "<<hasil<<endl;
    hasil = angka1 > angka2;
    cout<<"a > b : "<<hasil<<endl;
    hasil = angka1 < angka2;
    cout<<"a < b : "<<hasil<<endl;
    hasil = angka1 >= angka2;
    cout<<"a >= b : "<<hasil<<endl;
    hasil = angka1 <= angka2;
    cout<<"a <= b : "<<hasil<<endl;
}
Operator Logika

#include<iostream>
using namespace std;

int main() {
    int angka1, angka2;
    bool hasil;
    cout <<"Masukan Angka Pertama : ";
    cin>>angka1;
    cout <<"Masukan Angka Kedua : ";
    cin>> angka2;
   
    hasil = angka1 & angka2;
    cout<<"a & b : "<<hasil<<endl;
    hasil = angka1 && angka2;
    cout<<"a && b : "<<hasil<<endl;
    hasil = angka1 | angka2;
    cout<<"a | b : "<<hasil<<endl;
    hasil = angka1 || angka2;
    cout<<"a || b : "<<hasil<<endl;
    hasil = angka1 ^ angka2;
    cout<<"a ^ b : "<<hasil<<endl;
}
Akar Persamaan Kuadrat

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

int main(){
    int a, b, c, D;
    float x1, x2;
   
    cout<<"Masukan nilai a : ";
    cin>>a;
    cout<<"Masukan nilai b : ";
    cin>>b;
    cout<<"Masukan nilai c : ";
    cin>>c;
    cout<<endl;
   
    cout<<"Bentuk Persamaan :"<<endl;
    cout<<a<<"x^2 + "<<b<<"x + "<<c<<" = 0"<<endl;
   
    cout<<"\nAkar-Akar Persamaan Kuadratnya adalah :"<<endl;
    D=(b*b)-(4*a*c);
   
    if (D>0){
        x1 = (-b + sqrt(D)) / (2*a);
        x2 = (-b - sqrt(D)) / (2*a);    
    }else if (D==0){
        x1 = (-b + sqrt(D)) / (2*a);
        x2 = x1;
    }else {
        cout<<"\nAkar Imajiner"<<endl;
        exit(0);
    }
    cout<<"X1 = "<<x1<<endl;
    cout<<"X2 = "<<x2<<endl;
}
Program Besaran Vektor dalam Fisika

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

int main(){
    int a, b;
    float R, theta;
    cout<<"Program Vektor dalam Fisika"<<endl;
    cout<<"Masukkan nilai A : ";
    cin>>a;
    cout<<"Masukkan nilai B : ";
    cin>>b;

    cout<<"\nResultan Dua Vektor Sejajar"<<endl;
    R = abs(a+b);
    cout<<"R = |"<<a<<"+"<<b<<"| = "<<R<<endl;

    cout<<"\nResultan Dua Vektor yang Saling Tegak Lurus"<<endl;
    R = sqrt(a*a+b*b);
    theta = atan(b/a);
    cout<<"R = sqrt("<<a<<"^2+"<<b<<"^2) = "<<R<<endl;
    cout<<"tan(Īø) = "<<b<<"/"<<a<<", Īø = tan^-1("<<b<<"/"<<a<<") = "<<theta<<"°"<<endl;

    return 0;
}
Program Rumus Kecepatan (Fisika)

#include <iostream>
using namespace std;

int main(){
    float kecepatan, waktu, jarak;
    int pilih;

    cout<<"     PROGRAM RUMUS KECEPATAN DALAM FISIKA      "<<endl;
    cout<<"==============================================="<<endl;
    cout<<"                  Keterangan                   "<<endl;
    cout<<"1. v = Kecepatan (m/s)"<<endl;
    cout<<"2. t = Waktu (s)"<<endl;
    cout<<"3. s = Jarak (m)"<<endl;
    cout<<"==============================================="<<endl;
    cout<<"Masukan Pilihan : ";
    cin>>pilih;

    if (pilih == 1) {
        int distance, time;
        cout<<"Anda ingin mencari Kecepatan"<<endl;
        cout<<"Rumus : v = s/t"<<endl;
        cout<<"============================================"<<endl;
        cout<<"Masukkan Jarak (m) : ";
        cin>>distance;
        cout<<"Masukkan Waktu (s) : ";
        cin>>time;
        kecepatan = distance/time;
        cout<<"v = "<<kecepatan<<" m/s"<<endl;
    }

    else if (pilih == 2) {
        int distance, velocity;
        cout<<"Anda ingin mencari Waktu"<<endl;
        cout<<"Rumus : t = s/v"<<endl;
        cout<<"============================================"<<endl;
        cout<<"Masukkan Jarak (m)       : ";
        cin>>distance;
        cout<<"Masukkan Kecepatan (m/s) : ";
        cin>>velocity;
        waktu = distance/velocity;
        cout<<"t = "<<waktu<<" s"<<endl;
    }

    else if (pilih == 3) {
        int velocity, time;
        cout<<"Anda ingin mencari Jarak"<<endl;
        cout<<"Rumus : s = v*t"<<endl;
        cout<<"============================================"<<endl;
        cout<<"Masukkan Kecepatan (m/s) : ";
        cin>>velocity;
        cout<<"Masukkan Waktu (s)       : ";
        cin>>time;
        jarak = velocity*time;
        cout<<"s = "<<jarak<<" m"<<endl;
    }

    else {
        cout<<"Invalid";
    }
}
Kode Hamming

#include<iostream>
 
using namespace std;
 
int main() {
    int data[10];
    int dataatrec[10],c,c1,c2,c3,i;
 
    cout<<"Enter 4 bits of data one by one\n";
    cin>>data[0];
    cin>>data[1];
    cin>>data[2];
    cin>>data[4];
 
    //Calculation of even parity
    data[6]=data[0]^data[2]^data[4];
    data[5]=data[0]^data[1]^data[4];
    data[3]=data[0]^data[1]^data[2];
 
    cout<<"\nEncoded data is\n";
    for(i=0;i<7;i++)
        cout<<data[i];
       
    cout<<"\n\nEnter received data bits one by one\n";
    for(i=0;i<7;i++)
        cin>>dataatrec[i];
   
    c1=dataatrec[6]^dataatrec[4]^dataatrec[2]^dataatrec[0];
    c2=dataatrec[5]^dataatrec[4]^dataatrec[1]^dataatrec[0];
    c3=dataatrec[3]^dataatrec[2]^dataatrec[1]^dataatrec[0];
    c=c3*4+c2*2+c1;
   
    if(c==0) {
    cout<<"\nNo error while transmission of data\n";
    }
    else {
    cout<<"\nError on position "<<c;
    cout<<"\nData sent : ";
    for(i=0;i<7;i++)
        cout<<data[i];
           
    cout<<"\nData received : ";
        for(i=0;i<7;i++)
        cout<<dataatrec[i];
    cout<<"\nCorrect message is\n";
           
    //if errorneous bit is 0 we complement it else vice versa
        if(dataatrec[7-c]==0)
        dataatrec[7-c]=1;
        else
        dataatrec[7-c]=0;
        for (i=0;i<7;i++) {
        cout<<dataatrec[i];
        }
    }
return 0;
}
Memeriksa Tahun Kabisat

#include <iostream>
using namespace std;

int main(){
    cout<<"Program Cek Tahun Kabisat (Masehi/Gregorian)"<<endl;
    cout<<"============================================"<<endl;
    cout<<endl;
 
    int day, year;
 
    cout<<"Input Tahun : ";
    cin>>year;
 
    if (year%400==0){
        day=366;
        cout<<year<<" adalah Tahun Kabisat"<<endl;
        cout<<"Jumlah Hari : "<<day<<endl;
    }
    else if (year%100==0){
        day=365;
        cout<<year<<" bukan Tahun Kabisat"<<endl;
        cout<<"Jumlah Hari : "<<day<<endl;
    }
    else if (year%4==0){
        day=366;
        cout<<year<<" adalah Tahun Kabisat"<<endl;
        cout<<"Jumlah Hari : "<<day<<endl;
    }
    else{
        day=365;
        cout<<year<<" bukan Tahun Kabisat"<<endl;
        cout<<"Jumlah Hari : "<<day<<endl;
    }
 
    return 0;
}
Program Mencetak Tanda Bintang

#include <iostream>
using namespace std;

int main(){
    cout<<"    Program Mencetak Tanda Bintang   "<<endl;
    cout<<"====================================="<<endl;
    cout<<"              Opsi Menu              "<<endl;
    cout<<"1. Persegi Bintang                   "<<endl;
    cout<<"2. Persegi Panjang Bintang           "<<endl;
    cout<<"3. Segitiga Bintang                  "<<endl;
    cout<<"4. Segitiga Bintang Terbalik         "<<endl;
    cout<<"5. Piramida Bintang                  "<<endl;
    cout<<"6. Piramida Bintang Terbalik         "<<endl;
    cout<<"====================================="<<endl;
    cout<<endl;
    int opsi, n, m, i, j, k;
    cout<<"Pilih Opsi : ";
    cin>>opsi;
   
    if (opsi==1){
        cout<<"\n1. Persegi Bintang"<<endl;
        cout<<"Masukkan Jumlah Persegi : ";
        cin>>n;
        cout<<endl;
         
        for(i=1; i<=n; i++){
            for(j=1; j<=n; j++){
                cout<<" *";
            }
            cout<<endl;
        }
    }
    else if (opsi==2){
        cout<<"\n2. Persegi Panjang Bintang"<<endl;
        cout<<"Input Tinggi Persegi : ";
        cin>>n;
        cout<<"Input Lebar Persegi : ";
        cin>>m;
        cout<<endl;
       
        for(i=1; i<=n; i++) {
            for(j=1; j<=m; j++) {
              cout << " *";
            }
            cout<<endl;
        }
    }
    else if (opsi==3){
        cout<<"\n3. Segitiga Bintang"<<endl;
        cout<<"Masukkan Tinggi Segitiga : ";
        cin>>n;
        cout << endl;
         
        for(i=1; i<=n; i++) {
            for(j=1; j<=i; j++) {
              cout << " *";
            }
        cout<<endl;
        }
    }
    else if (opsi==4){
        cout<<"\n4. Segitiga Bintang Terbalik"<<endl;
        cout<<"Masukkan Tinggi Segitiga : ";
        cin>>n;
        cout << endl;
         
        for(i = 0; i<n; i++) {
            for(j = 1; j<=n-i; j++) {
              cout << " *";
            }
        cout<<endl;
        }
    }
    else if (opsi==5){
        cout<<"\n5. Piramida Bintang"<<endl;
        cout<<"Masukkan Tinggi Piramida : ";
        cin>>n;
        cout << endl;
         
        for(i=1; i<=n; i++) {
         
            for(j=1; j<=n-i; j++) {
              cout << " ";
            }
         
            for(k=1; k<=i; k++) {
              cout << " *";
            }
            cout << endl;
        }
    }
    else if (opsi==6){
        cout<<"\n6. Piramida Bintang Terbalik"<<endl;
        cout<<"Masukkan Tinggi Piramida : ";
        cin>>n;
        cout << endl;
         
        for(i=0; i<n; i++) {
         
            for(j=1; j<=i; j++) {
              cout << " ";
            }
         
            for(k=1; k<=n-i; k++) {
              cout << " *";
            }
            cout << endl;
        }
    }
    else{
        cout<<"Invalid"<<endl;
    }
   
    return 0;
}
Faktorial Iteratif

#include <iostream>
using namespace std;

int factorial(int);
int main(){
    int i;
 
    cout<<"Masukkan Nilai : ";
    cin>>i;
     
    if (i<0)
    cout<<"Bukan Bilangan Asli";
    else
    cout<<i<<"! = "<<factorial(i)<<endl;
 
    return 0;
}
int factorial(int i){
    int result=1;
    for (int n=1; n<=i; n++){
        result *= n;
    }
    return result;
}
Faktorial Rekursif

#include <iostream
using namespace std;
 
int hitungFactorial(int input) {
  if(input > 1)
    return input * hitungFactorial(input - 1);
  else
    return 1;
}
 
int main(){
  cout << "Program C++ Hitung Faktorial" << endl;
  cout << "============================" << endl;
  cout << endl;
 
  int angka;
 
  cout << "Input Angka : ";
  cin >> angka;
 
  cout << angka << "! = " << hitungFactorial(angka);
  cout << endl;
 
  return 0;
}
Perpangkatan Iteratif (Iterative Exponentiation)

#include <iostream>
using namespace std;

int main () {
    cout<<"--------------------------------"<<endl;
    cout<<"    Program Pangkat Bilangan    "<<endl;
    cout<<"--------------------------------"<<endl;
   
    int hasil = 1;
    int angka, pangkat;
   
    cout<<"Angka    : ";
    cin>>angka;
    cout<<"Pangkat  : ";
    cin>>pangkat;
   
    for(int i=1;i<=pangkat;i++){
    hasil=hasil*angka;
    }
   
    cout<<"Hasil : "<<hasil<<endl;
}
Perpangkatan Rekursif (Recursive Exponentiation)

#include <iostream>

using namespace::std;

int pangkatRekursif(int angka, int pangkat){
    if(pangkat==0)
        return 1;
    else
        return angka*pangkatRekursif(angka,(pangkat-1));
}

int main(){
    int angka,pangkat;
    cout<<"----------------\n";
    cout<<"|    Pangkat   |\n";
    cout<<"----------------\n";
    cout<<"Angka    : ";cin>>angka;
    cout<<"Pangkat  : ";cin>>pangkat;
    cout<<"--------------- \n";
    cout<<"Hasil    : "<<pangkatRekursif(angka,pangkat);
    cout<<endl;
}
Tetrasi (Tetration)

#include <conio.h>  
#include <iostream>  
#include <math.h>  
using namespace std;  
 
int tetrasi(float angka, double tetra){
    if(tetra==0)
        return 1;
    else
        return pow(angka, tetrasi(angka, tetra-1));
}

int main(){
    long angka,tetra;
    cout<<"----------------\n";
    cout<<"|    Tetrasi   |\n";
    cout<<"----------------\n";
    cout<<"Angka    : ";cin>>angka;
    cout<<"Tetrasi  : ";cin>>tetra;
    cout<<"--------------- \n";
    cout<<"Hasil    : "<<tetrasi(angka,tetra);
    cout<<endl;
}
Fungsi Ackermann (Ackermann Function)

#include <iostream>
using namespace std;

int ack(int m, int n){
    if (m == 0){
        return n + 1;
    }
    else if((m > 0) && (n == 0)){
        return ack(m - 1, 1);
    }
    else if((m > 0) && (n > 0)){
        return ack(m - 1, ack(m, n - 1));
    }
}

int main(){
    int x, y, A;
    cout<<"Ackermann Function A(x, y)"<<endl;
    cout<<"Insert value of x : ";
    cin>>x;
    cout<<"Insert value of y : ";
    cin>>y;
    A = ack(x, y);
    cout<<"A("<<x<<", "<<y<<") = "<<A<<endl;
}
Deret Bilangan Ganjil

#include <iostream>
using namespace std;

int main(){
  int batas;
    cout<<"-----------------------------------"<<endl;
    cout<<"Program Deret Bilangan Ganjil      "<<endl;
    cout<<"-----------------------------------"<<endl;
    cout<<"Masukan Batas : ";
    cin>>batas;
    cout<<endl;

    for(int i=1;i<=batas;i++){
    if (i%2!=0)
    cout<<i<<" ";
    }
}
Deret Bilangan Genap

#include <iostream>
using namespace std;

int main(){
  int batas;
    cout<<"-----------------------------------"<<endl;
    cout<<"Program Deret Bilangan Genap       "<<endl;
    cout<<"-----------------------------------"<<endl;
    cout<<"Masukan Batas : ";
    cin>>batas;
    cout<<endl;

    for(int i=1;i<=batas;i++){
    if (i%2==0)
    cout<<i<<" ";
    }
}
Deret Bilangan Ganjil-Genap

#include <iostream>
using namespace std;

int main(){
  int pil,batas;

  cout<<"-----------------------------------"<<endl;
  cout<<"Program Deret Bilangan Ganjil Genap"<<endl;
  cout<<"-----------------------------------"<<endl;
  cout<<"Pilihan :             "<<endl;
  cout<<"1. Ganjil             "<<endl;
  cout<<"2. Genap             "<<endl;
  cout<<"-----------------------------------"<<endl;
  cout<<"Masukan Pilihan : ";
  cin>>pil;
  cout<<"Masukan Batas : ";
  cin>>batas;
  cout<<endl;

  if (pil == 1){
    cout<<"Deret Bilangan Ganjil"<<endl;
    for(int i=1;i<=batas;i++){
    if (i%2!=0)
    cout<<i<<" ";
    }
  }
  else if (pil == 2){
    cout<<"Deret Bilangan Genap"<<endl;
    for(int i=1;i<=batas;i++){
    if (i%2==0)
    cout<<i<<" ";
    }
  }
  else {
    cout<<"Invalid"<<endl;
  }
}
Deret Bilangan Prima

#include <iostream>
using namespace std;

int main(){
    int bil, awal, akhir;
    cout<<"Program Deret Bilangan Prima"<<endl;
    cout<<"Mulai dari : ";
    cin>>awal;
    cout<<"Sampai : ";
    cin>>akhir;
    cout<<"-----------------------------"<<endl;
    cout<<endl;
        for (int i=awal; i<=akhir; i++){
            bil=0;
            for (int j=1;j<=i;j++){
                if (i%j==0){
                    bil=bil+1;
                }
            }
            if (bil==2){
                cout<<i<<" ";
            }
        }
}
Menentukan Deret Bilangan Prima

#include <iostream>
using namespace std;

int ambil(int bil, int i){
    if (i == 1) {
        return 1;
    }
    else if (bil % i == 0) {
        return 1 + ambil(bil, --i);
        } else {
        return 0 + ambil(bil, --i);
    }
}

int cek(int bil){
    if (bil > 1) {
        return (ambil(bil, bil) == 2);
    }
    else
        return false;
}

int main(){
    int bil;
    cout<<"PROGRAM MENENTUKAN BILANGAN PRIMA ATAU BUKAN"<<endl;
    cout<<"Masukan Bilangan : ";
    cin>>bil;

    if (cek(bil)){
        cout<<"Bilangan Prima"<<endl;
    }else {
        cout<<"Bukan Bilangan Prima"<<endl;
    }
    return 0;
}
Deret Fibonacci

#include <iostream>
using namespace std;

int main(){
    int n, f1 = 0, f2 = 1, next = 0;
    cout<< "PROGRAM DERET BILANGAN FIBONACCI"<<endl;
    cout <<"Masukan Batas Deret Bilangan Fibonacci : ";
    cin >> n;
    cout << "Deret Fibonacci : ";

    for (int i = 1; i <= n; ++i){
        if(i == 1){
            cout << " " << f1 << " ";
            continue;
        }
        if(i == 2){
            cout << f2 << " ";
            continue;
        }
        next = f1 + f2;
        f1 = f2;
        f2 = next;
        cout << next << " ";
    }
    return 0;
}
Deret Lucas

#include <iostream>
using namespace std;

int main(){
    int n, l1 = 1, l2 = 3, next = 0;
    cout<< "PROGRAM DERET BILANGAN LUCAS"<<endl;
    cout <<"Masukan Batas Deret Bilangan Lucas : ";
    cin >> n;
    cout << "Deret Lucas : ";

    for (int i = 1; i <= n; ++i){
        if(i == 1){
            cout << " " << l1 << " ";
            continue;
        }
        if(i == 2){
            cout << l2 << " ";
            continue;
        }
        next = l1 + l2;
        l1 = l2;
        l2 = next;
        cout << next << " ";
    }
    return 0;
}
Barisan dan Deret Bilangan Aritmatika

#include <iostream>
using namespace std;
 
int main(){
    cout<<"Program Barisan Deret Aritmatika"<<endl;
    cout<<"================================"<<endl;
    cout<<endl;
   
    int a,b,n,i,hasil;
   
    cout<<"Masukan Suku Awal : ";
    cin>>a;
    cout<<"Masukan Banyak Suku : ";
    cin>>n;
    cout<<"Masukan Beda : ";
    cin>>b;
    cout<<endl;

    cout<<"Barisan Aritmatika : "<<endl;
    for(i=0;i<n;i++){
    cout<<a+(i*b)<<" ";
    }
    cout<<"\nDeret Aritmatika : "<<(2*a+(n-1)*b)*n/2;

    return 0;
}
Menghitung Nilai Rata-rata dengan Array

#include <iostream>
#include <conio.h>
using namespace std;
int main(){
    int i, n, data[100];
    float rata,jum;
   
    cout<<"Banyaknya Data : ";
    cin>>n;
    cout<<endl;
   
    for (i=0; i<n; i++){
           cout<<"Data ke-"<<i+1<<" : ";
           cin>>data[i];
           jum += data[i];
        }
       
    rata=jum/n;
       
    cout<<endl;
    cout<<"Nilai Total     : "<<jum<<endl;
    cout<<"Nilai Rata-rata : "<<rata<<endl;
  getch();
}
Konversi Suhu (Dari Celsius)

#include <iostream>
using namespace std;
 
int main(){
    cout<<"Program Konversi Suhu Celsius"<<endl;
    cout<<"============================="<<endl;
    cout<<endl;
   
    float cels, fahr, ream, rnke, kelv;
   
    cout<<"Input Suhu Celsius : ";
    cin>>cels;
    cout<<endl;
   
    fahr = (9/5 * cels) + 32;
    ream = cels * (4/5);
    rnke =  (cels + 273.15) * 9/5;
    kelv = cels + 273.15;
   
    cout << cels << " Derajat Celsius = " << fahr << " Derajat Fahrenheit" << endl;
    cout << cels << " Derajat Celsius = " << ream << " Derajat Reamur" << endl;
    cout << cels << " Derajat Celsius = " << rnke << " Derajat Rankine" << endl;
    cout << cels << " Derajat Celsius = " << kelv << " Kelvin" << endl;

    return 0;
}
Konversi Suhu (Dari Fahrenheit)

#include <iostream>
using namespace std;
 
int main(){
    cout<<"Program Konversi Suhu Fahrenheit"<<endl;
    cout<<"================================"<<endl;
    cout<<endl;
   
    float cels, fahr, ream, rnke, kelv;
   
    cout<<"Input Suhu Fahrenheit : ";
    cin>>fahr;
    cout<<endl;
   
    cels = (fahr - 32) * 5/9;
    ream = 4/9 * (fahr-32);
    rnke =  fahr + 459.67;
    kelv = (fahr + 459.67) * 5/9;
   
    cout << fahr << " Derajat Fahrenheit = " << cels << " Derajat Celsius" << endl;
    cout << fahr << " Derajat Fahrenheit = " << ream << " Derajat Reamur" << endl;
    cout << fahr << " Derajat Fahrenheit = " << rnke << " Derajat Rankine" << endl;
    cout << fahr << " Derajat Fahrenheit = " << kelv << " Kelvin" << endl;

    return 0;
}
Konversi Suhu (Dari Reamur)

#include <iostream>
using namespace std;
 
int main(){
    cout<<"Program Konversi Suhu Reamur"<<endl;
    cout<<"============================"<<endl;
    cout<<endl;
   
    float cels, fahr, ream, rnke, kelv;
   
    cout<<"Input Suhu Reamur : ";
    cin>>ream;
    cout<<endl;
   
    cels = ream / 0.8;
    fahr = (ream * 2.25) + 32;
    rnke = (ream * 2.25) + 491.67;
    kelv = (ream / 0.8) + 273.15;
   
    cout << ream << " Derajat Reamur = " << cels << " Derajat Celsius" << endl;
    cout << ream << " Derajat Reamur = " << fahr << " Derajat Fahrenheit" << endl;
    cout << ream << " Derajat Reamur = " << rnke << " Derajat Rankine" << endl;
    cout << ream << " Derajat Reamur = " << kelv << " Kelvin" << endl;

    return 0;
}
Konversi Suhu (Dari Rankine)

#include <iostream>
using namespace std;
 
int main(){
    cout<<"Program Konversi Suhu Rankine"<<endl;
    cout<<"============================="<<endl;
    cout<<endl;
   
    float cels, fahr, ream, rnke, kelv;
   
    cout<<"Input Suhu Rankine : ";
    cin>>rnke;
    cout<<endl;
   
    cels = (rnke - 491.67) * 5/9;
    fahr = rnke - 459.67;
    ream = (rnke / 1.8 + 273.15) * 0.8;
    kelv = rnke * 5/9;
   
    cout << rnke << " Derajat Rankine = " << cels << " Derajat Celsius" << endl;
    cout << rnke << " Derajat Rankine = " << fahr << " Derajat Fahrenheit" << endl;
    cout << rnke << " Derajat Rankine = " << ream << " Derajat Reamur" << endl;
    cout << rnke << " Derajat Rankine = " << kelv << " Kelvin" << endl;

    return 0;
}
Konversi Suhu (Dari Kelvin)

#include <iostream>
using namespace std;
 
int main(){
    cout<<"Program Konversi Suhu Kelvin"<<endl;
    cout<<"============================"<<endl;
    cout<<endl;
   
    float cels, fahr, ream, rnke, kelv;
   
    cout<<"Input Suhu Kelvin : ";
    cin>>kelv;
    cout<<endl;
   
    cels = kelv - 273.15;
    fahr = (kelv * 9/5) - 459.67;
    ream = 4/5 * (kelv - 273);
    rnke = kelv * 9/5;
   
    cout << kelv << " Kelvin = " << cels << " Derajat Celsius" << endl;
    cout << kelv << " Kelvin = " << fahr << " Derajat Fahrenheit" << endl;
    cout << kelv << " Kelvin = " << ream << " Derajat Reamur" << endl;
    cout << kelv << " Kelvin = " << rnke << " Derajat Rankine" << endl;

    return 0;
}
Menghitung Data Kasus COVID-19

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

int main() {
    int ptv, death, recov, act, out;
   
    cout<<"Program menghitung Data Kasus COVID-19"<<endl;
    cout<<"Kasus Terkonfirmasi Positif : ";
    cin>>ptv;
    cout<<"Kasus Kematian : ";
    cin>>death;
    cout<<"Kasus Kesembuhan : ";
    cin>>recov;
    cout<<endl;
   
    out=death+recov;
    act=ptv-out;
   
    cout<<"==== Data Kasus COVID-19 ===="<<endl;
    cout<<"Kasus Positif    : "<<ptv<<endl;
    cout<<"Kasus Kematian   : "<<death<<endl;
    cout<<"Kasus Pulih      : "<<recov<<endl;
    cout<<"Kasus Aktif      : "<<act<<endl;
    cout<<"Kasus Pasif      : "<<out<<endl;
    cout<<"============================="<<endl;

return 0;
}
Konversi Bilangan Desimal ke Biner

#include <iostream>
using namespace std;
 
int main(){
  cout << "##    Program Konversi Desimal ke Biner    ##" << endl;
  cout << "=============================================" << endl;
  cout << endl;
 
  int a[10], n, i;
 
  cout << "Input Bilangan Desimal : ";
  cin >> n;
 
  for(i=0; n>0; i++){
    a[i] = n%2;
    n = n/2;
  }
 
  cout << "Bilangan Biner adalah : ";
 
  for(i=i-1 ;i>=0 ;i--) {
    cout << a[i];
  }
  cout << endl;
 
  return 0;
}
Konversi Bilangan Desimal ke Kuartener

#include <iostream>
using namespace std;
 
int main(){
    cout << "##   Program Konversi Desimal ke Kuartener   ##" << endl;
    cout << "==============================================" << endl;
    cout << endl;
   
    int a[10], n, i;
   
    cout << "Input Bilangan Desimal : ";
    cin >> n;
   
    for(i=0; n>0; i++){
        a[i] = n%4;
        n = n/4;
    }
   
    cout << "Bilangan Kuartener adalah : ";
   
    for(i=i-1 ;i>=0 ;i--) {
        cout << a[i];
    }
    cout << endl;
   
    return 0;
}
Konversi Bilangan Desimal ke Oktal

#include <iostream>
using namespace std;
 
int main(){
    cout << "##    Program Konversi Desimal ke Oktal    ##" << endl;
    cout << "=============================================" << endl;
    cout << endl;
   
    int a[10], n, i;
   
    cout << "Input Bilangan Desimal : ";
    cin >> n;
   
    for(i=0; n>0; i++){
        a[i] = n%8;
        n = n/8;
    }
   
    cout << "Bilangan Oktal adalah : ";
   
    for(i=i-1 ;i>=0 ;i--) {
        cout << a[i];
    }
    cout << endl;
   
    return 0;
}
Konversi Bilangan Desimal ke Heksadesimal

#include<iostream>
using namespace std;

void decToHex(int n){
    int i = 0;
    char hexaDeciNum[100];
    while(n!=0){
        int temp  = 0;
        temp = n % 16;
       
        if(temp < 10){
            hexaDeciNum[i] = temp + 48;
            i++;
        }
        else{
            hexaDeciNum[i] = temp + 55;
            i++;
        }
        n = n/16;
    }
    for(int j=i-1; j>=0; j--){
        cout << hexaDeciNum[j];
    }
}

int main(){
  int n;
    cout << "##    Program Konversi Desimal ke Heksadesimal    ##" << endl;
    cout << "====================================================" << endl;
    cout << endl;

    cout<<"  Masukkan Angka Decimal : ";
    cin>>n;
   
    cout<<"  Dalam Bilangan Heksadesimal : ";  
    decToHex(n);
   
    return 0;
}
Bubble Sort

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

void prosesPerpindahan(int data[],int y){
    int x;
    for(x=0;x<y;x++){
        cout<<data[x]<<" ";
    }
    cout<<endl;
}

void prosesSorting(int data[],int y){
    int proses,x,tampung;
 
    for(proses=1;proses<y;proses++){
        for(x=0;x<y-proses;x++) {
            if(data[x]>data[x+1]){
                tampung=data[x];
                data[x]=data[x+1];
                data[x+1]=tampung;
            }
        }
    cout<<"Tahap Ke-"<<proses<<" : ";
    prosesPerpindahan(data,y);
    }
}

int main(){
    int Nilai[20];
    int i, N;
    cout<<"Masukkan Banyak Bilangan : ";
    cin>>N;
    for(i=0; i<N; i++){
        cout<<"Elemen ke-"<<i+1<<" : ";
        cin>>Nilai[i];
    }
   
    cout<<"\nProses Sorting dengan metode Bubble Sort : "<<endl;
    prosesSorting(Nilai,N);
   
    cout<<endl;
    cout<<"Setelah Di Urutkan dengan Bubble Sort : "<<endl;
    prosesPerpindahan(Nilai,N);
}
Selection Sort

#include <iostream>
using namespace std;
 
int main(){
    int Nilai[20];
    int i,j,x,N,posisi,tampung;
   
    cout<<"Masukkan Banyak Bilangan : ";
    cin>>N;
    for(i=0; i<N; i++){
        cout<<"Elemen ke-"<<i<<" : ";
        cin>>Nilai[i];
    }
   
    cout<<"Sebelum Di Urutkan : ";
    for (int i=0; i<N; i++){
        cout<<Nilai[i]<<" ";
    }
   
    cout<<endl;
    cout<<endl;
   
    for (int i=0;i<N-1;++i){
        posisi=i;
        for (int j=i+1;j<N;++j){
            if (Nilai[j]<Nilai[posisi]){
                posisi=j;  
            }
        }
   
        if (posisi!=i){
            tampung=Nilai[posisi];
            Nilai[posisi]=Nilai[i];
            Nilai[i]=tampung;
        }
       
        cout<<"Tahap Ke-"<<i+1<<" : ";
        for (int x=0;x<N;++x){
            cout<<Nilai[x]<<" ";
        }
        cout<<endl;
    }
    cout<<endl;
 
    cout<<"Setelah Di Urutkan Menggunakan Metode Selection Sort : ";
    for (int i=0;i<N;++i){
        cout<<Nilai[i]<<" ";
    }
}
Insertion Sort

#include <iostream>
using namespace std;

int main(){
    int Nilai[20];
    int i, j, k, tampung, N;

    cout<<"Masukkan Banyak Bilangan : ";
    cin>>N;
    for(i=0; i<N; i++){
        cout<<"Elemen ke-"<<i+1<<" : ";
        cin>>Nilai[i];
    }
    cout<<endl;
   
    cout<<"Data Sebelum Di Urutkan :";
    cout<<"\nTahap Ke-1 : ";
    for(i=0;i<N;i++){
        cout<<"  "<<Nilai[i];
    }
    cout<<endl;
   
    for(int i=1; i<N; i++){
        tampung = Nilai[i];
        j = i-1;
        while(j>=0 && Nilai[j] > tampung){
            Nilai[j+1] = Nilai[j];
            j--;
        }
        Nilai[j+1]=tampung;
       
        cout<<"Tahap Ke-"<<i+1<<" : ";
        for(k=0; k<N; k++){
            cout<<"  "<<Nilai[k];
        }
        cout<<endl;
    }
    cout<<"\nSetelah Di Urutkan dengan Insertion Sort : ";
    for(i=0;i<N;i++){
        cout<<"  "<<Nilai[i];
    }
}
Sequential Search

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

int main(){
    int Nilai[20];
    int i, N, Bilangan;
    bool ketemu;
   
    cout<<"Program Sequential Search     "<<endl;
    cout<<"                              "<<endl;
    cout<<"Masukkan Banyaknya Bilangan : ";
    cin>>N;
     
    for(i=0; i<N; i++){
        cout<<"Masukkan Elemen ke-"<<i<<" : ";
        cin>>Nilai[i];
    }
     
    cout<<"Deretan Bilangan : ";
    for(i=0; i<N; i++)
    cout<<Nilai[i]<<" ";
   
    cout<<"                                      "<<endl;
    cout<<"Masukkan Bilangan yang akan Dicari : ";
    cin>>Bilangan;
     
    i=0;
    do
    {
        if(Nilai[i]==Bilangan)
        ketemu = true;
        i++;
    }
    while(!(ketemu));
     
    if(ketemu)
        cout<<"Bilangan "<<Bilangan<<" ditemukan";
    else
        cout<<"Bilangan "<<Bilangan<<" tidak ditemukan";
    getch();
}
Binary Search

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

int main() {
  int Nilai[20];
  int i, j, N;
  int temp, awal, akhir, tengah, Bilangan;
 
  cout<<"Program Binary Search"<<endl;
  cout<<"Banyak Bilangan : ";
  cin>>N;
  for(i=0; i<N; i++) {
    cout<<"Elemen ke-"<<i<<" : ";
    cin>>Nilai[i];
  }
  cout<<"Elemen Sebelum diurut : ";
  for(i=0; i<N; i++)
    cout<<setw(3)<<Nilai[i];
 
  for(i=0; i<N-1; i++) {
    for(j=i+1; j<N; i++) {
      if (Nilai[i] > Nilai[j])
      {
        temp = Nilai[i];
        Nilai[i] = Nilai[j];
        Nilai[j] = temp;
      }
    }
  }
  cout<<"Elemen Setelah diurut : ";
  for(i=0; i<N; i++)
    cout<<setw(3)<<Nilai[i];
    cout<<"indeks Elemen : ";
  for(i=0; i<N; i++)
    cout<<setw(3)<<i;
    cout<<"Masukkan data yang akan anda cari : ";
    cin>>Bilangan;
 
  awal = 0;
  akhir = N-1;
  do {
    tengah = (akhir + awal)/2;
    if(Bilangan < Nilai[tengah])
      akhir = tengah - 1;
    else
      awal = tengah + 1;
  }
  while((akhir >= awal) && (Nilai[tengah] !=Bilangan));
  if(Nilai[tengah] == Bilangan) {
    cout<<"Data "<<Bilangan<<" ada dalam array";
    cout<<" pada posisi "<<tengah;
  }
  else
    cout<<"Data "<<Bilangan<<" tidak ada dalam array";
  getch();
}
Program Kasir Sederhana

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

int main(){
    //Inisialisasi atau deklarasi variabel
    int jum_beli, bayar,diskon,jumlah[50], harga[50], sub_tot[50];
    string nama_barang[50];
    float tot;
   
    cout<<"PROGRAM KASIR SEDERHANA"<<endl;
    cout<<"---------------------------"<<endl;
    cout<<endl;
    cout<<"Masukan Jumlah Beli : ";
    cin>>jum_beli; //Pengguna memasukan jumlah beli
   
    for (int i=0; i<jum_beli;i++){
        cout<<endl;
        cout<<"Masukan Barang Ke-"<<i+1<<endl;
        cout<<endl;
       
        cout<<"Nama Barang : ";
        cin>>nama_barang[i]; //Pengguna input nama barang disimpan pada array nama_barang
       
        cout<<"Jumlah      : ";
        cin>>jumlah[i]; //Pengguna input jumlah disimpan pada array jumlah
       
        cout<<"Harga       : ";
        cin>>harga[i]; //Pengguna input harga disimpan pada array harga
       
        sub_tot[i]=jumlah[i]*harga[i]; // Menjumlahkan Harga sub total barang
        tot+=sub_tot[i]; //Menjumlahkan seluruh sub total barang
    }
   
    cout<<endl;
    cout<<"STRUK BELANJA MINI MARKET ABC"<<endl;
    cout<<"---------------------------------------------------------"<<endl;
    cout<<"No   Barang    Jumlah     Harga     Sub Total"<<endl;
    for (int i=0;i<jum_beli;i++){
        cout<<i+1<<setw(8)<<nama_barang[i]<<setw(10)<<jumlah[i]<<setw(12)<<harga[i]<<setw(12)<<sub_tot[i]<<endl; //Menampilkan semua nilai array
    }
    cout<<"---------------------------------------------------------"<<endl;

    //Kondisi untuk menentukan diskon yang didapatkan berdasarkan total belanja
    if (tot>=100000){
        diskon=0.06*tot;
    } else if (tot>=50000){
        diskon=0.04;
    }else if (tot>=25000){
        diskon=0.02;
    }else {
        diskon=0;
    }
   
    //Menampilkan Keterangan
    cout<<"Jumlah Bayar : Rp."<<tot<<endl;//Menampilkan jumlah bayar (belum termasuk diskon)
    cout<<"Dikon        : Rp."<<diskon<<endl; //Menampilkan diskon
    cout<<"Total Bayar  : Rp."<<tot-diskon<<endl;//Menampilkan total harga yang harus dibayar
    cout<<"Bayar        : Rp.";
    cin>>bayar; // Input dari user untuk jumlah yang dibayar
    cout<<"Kembali      : Rp."<<(bayar-(tot-diskon))<<endl; // Menampilkan uang kembali
}
Dan masih banyak lagi Program lainnya dalam Bahasa C++.


Semoga saja Artikel ini sangat bermanfaat bagi para IT Pemula dan juga mohon maaf apabila ada kesalahan dalam penulisan Kode. Terima Kasih šŸ˜„šŸ˜˜šŸ‘ŒšŸ‘ :)

Wassalamu‘alaikum wr. wb.

Ads