Anda di halaman 1dari 58

BAB 1.

Pengenalan Bahasa Pemrograman

Pada umumnya, bahasa merupakan alat komunikasi antar manusia dengan


menggunakan kata-kata atau istilah. Jika komunikasi antarmanusia menggunakan
bahasa berbentuk kata-kata atau istilah, untuk dapat berkomunikasi dengan
perangkat komputer, dibutuhkan bentuk bahasa berbeda. Bahasa ini dinyatakan
dalam kode-kode unik yang disebut bahasa pemrograman.

Bahasa pemrograman adalah sebuah instruksi standar untuk memerintah suatu


perangkat agar menjalankan fungsi tertentu.

Bahasa pemrograman dapat dibagi menjadi 3 tingkat, yaitu :

1. Bahasa tingkat tinggi, merupakan bahasa yang mudah dimengerti oleh manusia
karena menggunakan bahasa yang biasa digunakan oleh manusia, yang biasanya
didominasi menggunakan bahasa inggris.

Contoh : Java, C++, PHP, dll.

2. Bahasa tingkat menengah, merupakan bahasa yang mendekati bahasa mesin


tetapi masih menggunakan bahasa manusia.

Contoh : C, PL/S, MOL-360, dll.

3. Bahasa tingkat rendah, merupakan bahasa yang berupa kode-kode singkatan dan
sulit dipahami karena instruksinya menggunakan bahasa mesin.

Contoh : Assembly.

Untuk pembahasan materi ini, bahasa pemrograman yang akan dipelajari adalah
bahasa C++, karena C++ merupakan perkembangan dari bahasa C yang
merupakan bahasa yang banyak digunakan pada mikrokontroler.

Algoritma
Setiap jenis bahasa memiliki struktur penyusunnya sendiri berupa prosedur
sistematis yang dinyatakan dalam kode untuk membuat perintah. Dalam
penyusunan prosedur tersebut diperlukan sebuah algoritma. Algoritma merupakan
deretan instruksi yang jelas dalam menyelesaikan suatu masalah.

Contoh Algoritma Menghitung Luas Segitiga

Analisis :

o Input : a (alas) dan t (tinggi)
o Luas Segitiga = a*t/2

Algoritma :

1.
a. Masukan nilai alas (a) dan nilai tinggi segitiga (t)
b. Maka untuk menghitung luas digunakan rumus alas dengan tinggi
yang sudah ditentukan
c. Rumus untuk menghitung Luas Segitiga yaitu L = 1/2*a*t
d. Nilai L (Luas) akan dicetak sebagai output ke perangkat output
(keluaran)

Flowchart
Akan tetapi kalau hanya algoritma saja mungkin agak susah dipahami, oleh karena
itu agar mudah dipahami maka diperlukan sebuah flowchart. Flowchart adalah
adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan
proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan
proses lainnya dalam suatu program.

Simbol flowchart
Contoh Flowchart untuk mencari luas segitiga 
Gambar Flowchart Menghitung Luas Segitiga

Syntax / Perintah Dasar pada Bahasa C++


Dalam pembuatan program diperlukan berbagai macam perintah dan
pendeklarasian. Berikut merupakan beberapa syntax/perintah dasar pada bahasa
C++.

Pendeklarasian :

#include Pada bagian ini, kita mendefinisikan library (pustaka) apa saja yang akan kita gun
<iostream> program. Library bisa kita anggap sebagai program lain yang ingin kita gunakan d
program kita. Sebagai contoh <iostream> merupakan library berisi fungsi untuk in

using Bagian ini sebenarnya bersifat opsional, bisa ditulis bisa tidak. Pada contoh, kita m
namespace namespace std karena fungsi-fungsi pada iostream dibungkus dalam namespace
std; kita tidak menggunakan namespace std, maka untuk menggunakan fungsi cin da
pada iostream harus diawali dengan std::.

int main () { Bagian ini adalah bagian terpenting, karena pada bagian ini kita akan banyak men
  program. Fungsi main() adalah fungsi yang akan dieksekusi pertama kali saat pro
Fungsi ini wajib ada di setiap program yang dibuat untuk dieksekusi.
}

 ; Setiap selesai menulis satu perintah, pastikan diakhiri dengan tanda “;” yang men
bahwa satu baris perintah itu telah selesai
Perintah Output :

cout digunakan untuk menampilkan teks ke layar.


 

simbol << ditambahkan setelah cout dan kemudian baru bisa ditampilkan teks ke layar da
ingin ditampilkan harus berada di dalam tanda petik (“ ”) agar bisa dicetak. untuk membua
bisa menggunakan “endl” atau simbol “\n”.
contoh :
cout<<”Hello World!”<< endl ;
cout<<”Hello World! /n” ;

cerr digunakan untuk menampilkan error

clog digunakan untuk menampilkan log

printf( digunakan untuk menampilkan output, fungsi ini dari bahasa C


)
Perintah Input :

cin digunakan untuk mengambil input dari keyboard. Fungsi cin membutuhkan variabel untuk
data yang diinputkan. Variabel berfungsi untuk menyimpan data saat program berjalan. U
akan dibahas pada BAB 6. tipe data
Contoh :
int x;
  cout<<“Masukkan x : “;
  cin>>x;

scanf() Fungsi scanf() sebenarnya dari bahasa C, tapi bisa juga digunakan pada C++. Fungsi sca
fungsi untuk mengambil input dari keyboard.
Operator Aritmatika :

+ Penjumlahan

– Pengurangan

* Perkalian

/ Pembagian

% Sisa Bagi
Operator Penugasan :

= Pengisian nilai

+= Pengisian dan penambahan

-= Pengisian dan Pengurangan

*= Pengisian dan Perkalian

/= Pengisian dan Pembagian

%= Pengisian dan Sisa bagi

<<= Pengisian dan Shift left

>>= Pengisian dan Shift right

&= Pengisian dan Bitwise AND

|= Pengisian dan Bitwise OR

^= Pengisian dan Bitwise XOR


Operator Pembanding : 

> Lebih besar

< Lebih kecil

== Sama dengan

!= Tidak sama dengan

>= Lebih besar sama dengan

<= Lebih kecil sama dengan


Operator Logika : 

&& Logika AND

|| Logika OR

! Negasi / Kebalikan
Operator Bitwise : 

& AND

| OR
^ XOR

~ NOT

<< Left shift

>> Right shit


Operator Lainnya : 

Alat memori & untuk mengambil alat memori

Pointer * untuk membuat pointer

Ternary ?: untuk membuat kondisi

Increment ++ untuk menambah 1

Decrement — untuk mengurangi 1


 

Contoh dan hasil dari program dari perhitungan luas segitiga dengan
menggunakan bahasa C++ 

Program :

#include &lt;iostream&gt;;
#include &lt;string&gt;;
using namespace std;
int main()

{
 int a, t;
  float luas;
  cout&lt;&lt;&quot;Masukkan panjang alas: &quot;;
  cin&gt;&gt;a;
  cout&lt;&lt;&quot;Masukkan tinggi segitiga: &quot;;
  cin&gt;&gt;t;
  luas = 0.5*a*t;
  cout&lt;&lt;&quot;Luas segitiga adalah &quot;&lt;&lt; luas;
}

Hasil :
Gambar Hasil Perhitungan Luas Segitiga

Program diatas dapat disimulasikan di web http://cpp.sh/

Sumber :


o informatikalogi.com
o ppns.ac.id
o w3schools.com
o cplusplus.com
BAB 2. Condition

Dalam berbagai sumber, Conditional Statement dijelaskan sebagai “Conditional


statements are used to perform different actions based on different conditions.” Yang
artinya Conditional Statement adalah sebuah metode dasar untuk menjalankan
program pada kondisi yang berbeda.

1. Kondisi “if”
Kondisi if digunakan untuk mengeksekusi sebuah statement atau blok program
hanya jika kondisi yang dipersyaratkan terpenuhi. 

Gambar Flowchart Kondisi if

Format penggunaan if adalah sebagai berikut :

if (kondisi)

 
 statement

Dengan kondisi merupakan ekspresi yang akan diuji. Jika hasil pengujian kondisi
terpenuhi (bernilai benar), maka statement akan dieksekusi. Jika hasil pengujian
kondisi tidak terpenuhi (bernilai salah), maka statement tidak akan dijalankan
(diabaikan), dan program akan melanjutkan mengeksekusi statement-statement
program selanjutnya. Sebagai contoh, program berikut akan menuliskan “x bernilai
seratus” apabila nilai yang tersimpan pada variabel x adalah 100.

if (x == 100)

       cout &lt;&lt; “x bernilai 100 ”;


Apabila statement yang akan dijalankan tidak hanya satu, namun terdiri dari
beberapa statement atau blok, maka statement-statement tersebut diletakkan
diantara tanda titik koma (;).

if (x == 100){

       cout &lt;&lt; “x bernilai “;

       cout &lt;&lt; x;

Program lengkapnya 

#include &lt;iostream&gt;

using namespace std;

int main()

 int x;

  cout&lt;&lt;&quot;Masukkan x : &quot;;

  cin&gt;&gt;x;

  if (x == 100){

       cout &lt;&lt; &quot;x bernilai &quot;;

       cout &lt;&lt; x ;

    }

Gambar Statement Benar

Gambar Statement Salah


 

2. Kondisi “if-else”
Untuk dapat mengatur tindakan apa yang akan dijalankan oleh program seandainya
kondisi yang dipersyaratkan tidak terpenuhi, maka dapat menggunakan
kondisi else yang digunakan bersama-sama dengan if. Kondisi else berarti apabila
semua kondisi tidak terpenuhi, maka statement pada kondisi else yang akan
menjadi keluarannya. Format penggunaan if..else adalah sebagai berikut :

if (kondisi)

 
 statement1

 
else statement2

Contoh program

if (x == 100) {

       cout &lt;&lt; “x bernilai 100”;

    }

    else {

       cout &lt;&lt; “x bukan 100”;

    }

Statement cout << “x bernilai 100” akan dicetak di layar monitor apabila nilai
masukan x adalah 100. Apabila nilai masukan x tidak sama dengan 100, maka pada
layar monitor akan tercetak tulisan : x bukan 100.

Program lengkapnya

#include &lt;iostream&gt;

using namespace std;

int main()

{
 int x;

  cout&lt;&lt;&quot;Masukkan x : &quot;;

  cin&gt;&gt;x;

  if (x == 100) {

       cout &lt;&lt; &quot;x bernilai 100&quot;;

    }

    else {

       cout &lt;&lt; &quot;x bukan 100&quot;;

    }

Gambar Statement Benar

Gambar Statement Lainnya

3. Kondisi “if Bersarang”


Struktur if + else dapat dijadikan bentuk concatenated atau bentuk gabungan
dengan pengujian sejumlah kondisi. Berikut merupakan flowchart dari
kondisi if bersarang :
Gambar Flowchart if Bersarang

Berikut ini adalah kode program yang akan menguji apakah nilai yang tersimpan
pada variabel x merupakan bilangan : positif, negatif, atau nol.

if (x&gt;0) {

       cout &lt;&lt; “x adalah positif”;

    }

    else if (x&lt;0) {

       cout &lt;&lt; “x adalah negatif”;

    }

    else {

       cout &lt;&lt; “x adalah 0”;

    }

Program diatas menjelaskan apabila nilai masukan x lebih dari 0 maka bilangan x
adalah positif, kemudian apabila nilai masukan x kurang dari 0 maka bilangan x
adalah negatif. Pada statement terakhir apabila nilai masukan x adalah bukan
bilangan positif atau negatif, maka nilai x adalah 0 karena hanya bilangan 0 yang
bukan merupakan bilangan negatif maupun bilangan positif.

Program lengkapnya 

#include &lt;iostream&gt;

using namespace std;

int main()

 int x;

  cout&lt;&lt;&quot;Masukkan x : &quot;;

  cin&gt;&gt;x;

  if (x&gt;0) {

       cout &lt;&lt; &quot;x adalah positif&quot;;

    }

    else if (x&lt;0) {

       cout &lt;&lt; &quot;x adalah negatif&quot;;

    }

    else {

       cout &lt;&lt; &quot;x adalah 0&quot;;

    }

Gambar Statement 1

Gambar Statement 2
Gambar Statement Lainnya

4. Kondisi “switch-case”
Kondisi switch-case digunakan untuk mengecek sejumlah atau beberapa
kemungkinan ekspresi. Berikut flowchart dari switch-case :

Gambar Flowchart Switch-Case

Format penggunaan switch-case adalah sebagai berikut :

switch (ekspresi){

   case konstanta 1 :

      kumpulan statement1; break;

   case konstanta 2 :
      kumpulan statement 2; break;

   default :

      kumpulan statement default;

Switch-case akan mengevaluasi ekspresi dan akan mengecek nilai ekspresi. Jika


hasil pengecekan ekspresi bernilai sesuai dengan konstanta 1, maka program akan
menjalankan kumpulan statement 1 hingga dijumpai statement break.

Program selanjutnya akan melompat ke akhir switch-case dan menjalankan


statement-statement program di luar struktur switch-case. Jika ekspresi tidak sesuai
dengan konstanta 1, maka akan dicek apakah ekspresi bernilai sesuai dengan
konstanta 2. Jika ya, maka program akan menjalankan kumpulan statement 2
hingga ketemu dengan pernyataan break.

Program selanjutnya akan melompat ke bagian akhir struktur switch-case, dan


menjalankan perintah selanjutnya.

Contoh programnya sebagai berikut 

switch (x) {

       case 1 :

          cout &lt;&lt; “x adalah 1”;

          break;

       case 2 :

          cout &lt;&lt; “x adalah 2”;

          break;

       default :

          cout &lt;&lt; “nilai x tak diketahui”;

Penggunaan sintaks switch-case memerlukan perhatian khusus karena sintaks ini


menggunakan label, sehingga diperlukan perintah break yang akan memaksa
program untuk keluar dari struktur switch apabila kumpulan statement yang sesuai
dengan ekspresi telah selesai dieksekusi. Jika pernyataan break tidak
diikutsertakan, maka sisa statement yang berada setelahnya akan dieksekusi juga
oleh program.

Program lengkapnya 
#include &lt;iostream&gt;

using namespace std;

int main()

 int x;

  cout&lt;&lt;&quot;Masukkan x : &quot;;

  cin&gt;&gt;x;

  switch (x) {

       case 1 :

          cout &lt;&lt; &quot;x adalah 1&quot;;

          break;

       case 2 :

          cout &lt;&lt; &quot;x adalah 2&quot;;

          break;

       default :

          cout &lt;&lt; &quot;nilai x tak diketahui&quot;;

  }

Gambar Statement 1

Gambar Statement 2
Gambar Statement default

Sumber :


o uny.ac.id
o w3schools.com
o cplusplus.com
o medium.com
BAB 3. Looping

1. Loop “while”
Format penggunaan while adalah sebagai berikut :

while (ekspresi)
    statement

Fungsi penggunaan while adalah untuk menjalankan perintah yang terdapat dalam


statement apabila ekspresi yang dipersyaratkan terpenuhi. Jika ekspresi yang
dipersyaratkan tidak terpenuhi (bernilai salah), maka statement tidak akan dijalankan
(diabaikan), dan program akan melanjutkan mengeksekusi statement-statement
program selanjutnya yang berada di luar struktur while.

Berikut flowchart perintah while :

Gambar Flowchart Perintah While

Sebagai contoh, dapat dilihat program berikut :

#include &lt;iostream&gt;
using namespace std;

int main(){
       int n;
       cout &lt;&lt; &quot;masukkan angka mulai = &quot;;
       cin &gt;&gt; n;
       while (n &gt; 0){
          cout &lt;&lt; n &lt;&lt; &quot;, &quot;;
          --n;
       }
       cout &lt;&lt; &quot;FIRE!&quot;;
       return 0;
}
Output program :

Gambar Output Perintah While

Dalam menggunakan loop while, pastikan program akan berakhir pada titik tertentu.
Jika tidak, loop akan berlanjut hingga tak terhingga. Seperti contoh program di atas,
pengulangan while berakhir dikarenakan kondisi n>0 sudah tidak terpenuhi akibat
dari nilai n dikurangi dengan 1 (melalui perintah –n) mencapai angka 0.

2. Loop “do-while” 
Format penggunaan do…while adalah sebagai berikut :

do statement
 
while (kondisi);
Kondisi do-while hampir sama seperti loop while, bedanya hanya pada letak
statementnya. Loop do-while akan mengevaluasi nilai kondisi yang dipersyaratkan
setelah statement do dijalankan.

Berikut merupakan flowchart pada perulangan do-while :


Gambar Flowchart Perulangan Do-While

Sebagai contoh, dapat dilihat pada program berikut :

#include &lt;iostream&gt;
using namespace std;

int main (){


   unsigned long n;
   do {
      cout &lt;&lt; &quot;Masukkan angka (0 untuk mengakhiri) :  &quot;;
      cin &gt;&gt; n;
      cout &lt;&lt; &quot;Anda menekan :  &quot; &lt;&lt; n &lt;&lt;
&quot;\n&quot;;
   } while (n != 0) ;
   return 0;
}
Gambar Output Perulangan Do-While

3. Loop “for”
Format penggunaan for adalah sebagai berikut :

for (inisialisasi; kondisi; increase) statement;


Fungsi for adalah untuk melakukan perulangan jika kondisi yang dipersyaratkan
terpenuhi. Perbedaan loop for dengan loop lain adalah pada loop for telah
ditentukan nilai awal dan akhir suatu perulangan, dan juga kenaikan atau penurunan
yang harus dilakukan.

Berikut flowchart perulangan for :

Gambar Flowchart Perulangan For

Sebagai contoh, dapat dilihat pada program berikut :

#include &lt;iostream&gt;
using namespace std;
int main(){
   for (int n = 10; n &gt; 0; n--){
      cout &lt;&lt; n &lt;&lt; &quot;,  &quot;;
   }
   cout &lt;&lt; &quot;FIRE!&quot;;
   return 0;
}
Output :

Gambar Output 

Statement Jump
a. Statement : break
Dengan menggunakan perintah break, loop dapat dilompati meskipun kondisi akhir
masih belum terjadi. Hal ini dapat dilakukan sebagai strategi untuk menghindari loop
yang tak terhingga atau memaksa program untuk menghentikan operasi perulangan.

Berikut merupakan flowchart dari statement break :

Gambar Flowchart Statement Break
 

Berikut contoh program yang akan menghentikan perulangan sebelum kondisi akhir
perulangan terpenuhi :

#include &lt;iostream&gt;
using namespace std;
int main (){
   int n;

   for (n = 10; n &gt; 0; n--){


      cout &lt;&lt; n &lt;&lt; &quot;,  &quot;;
      if (n == 3){
         cout &lt;&lt; &quot;hitung mundur dibatalkan!&quot;;
         break;
      }

   }
   return 0;
}
Output :

Gambar Output Statement Break

b. Statement : continue
Statement continue menyebabkan program men-skip sisa loop yang sedang
dijalankan (seperti telah menemui akhir loop) dan menyebabkan program melompat
ke awal perulangan.

Berikut merupakan flowchart statement continue :
Gambar Flowchart Statement Continue

Berikut contoh program yang akan men-skip saat n = 5 :

#include &lt;iostream&gt;
using namespace std;

int main(){
   for (int n = 10; n &gt; 0; n--){
      if (n == 5) continue;
      cout &lt;&lt; n &lt;&lt; “,  “;
   }
   cout &lt;&lt; “FIRE!”;
   return 0;
}

Output :

Gambar Output Statementi Continue

c. Statement : goto
Goto mengakibatkan program melompat secara mutlak ke titik atau bagian lain pada
program. Kode program yang menjadi tujuan dari lompatan goto diidentifikasi
dengan label, yang kemudian digunakan sebagai argumen bagi statement goto.
Label tersebut merupakan sebuah identifier yang diikuti dengan tanda titik dua (:).

Berikut merupakan flowchart dari statementi goto :

Gambar Flowchart Statement Goto

Berikut contoh program perhitungan langkah mundur menggunakan


statement goto :

#include &lt;iostream&gt;
using namespace std;
int main(){
   int n;
   cout&lt;&lt;&quot;Masukkan nilai : &quot;;
   cin&gt;&gt;n;

   loop :
   cout &lt;&lt; n &lt;&lt; &quot;,  &quot;;
   n--;
   if (n&gt;0) goto loop;
   cout &lt;&lt; &quot;FIRE!&quot;;
   return 0;
}
Output :

Gambar Output Statement Goto

 Sumber :


o uny.ac.id
o w3schools.com
o cplusplus.com
o medium.com
BAB 4. Fungsi dan Rekursi

Fungsi
Sebuah fungsi (function) merupakan sekumpulan statement yang akan dieksekusi
apabila fungsi tersebut dipanggil pada titik tertentu dalam program. Format
penggunaan fungsi dalam program C++ adalah sebagai berikut :

tipe nama (parameter1, parameter2, …) {statement}

Keterangan :


o tipe             : merupakan tipe data yang nilainya dikembalikan oleh fungsi
yang bersangkutan.
o nama          : merupakan identifier yang digunakan untuk memanggil
fungsi yang bersangkutan.
o parameter  : setiap parameter terdiri dari tipe data dan identifier (contoh :
int x), dan bertindak sebagai variabel lokal dalam fungsi tersebut.
Parameter-parameter yang berbeda dipisahkan dengan tanda koma (,).
o statement   : merupakan tubuh fungsi, yang berupa blok program yang
berada diantara tanda kurung kurawal ({ }).

Berikut contoh program fungsi:

#include <iostream>

using namespace std;

int addition (int a, int b){

   int r;

   r = a + b;

   return (r);  //untuk mengembalikan nilai

     

int main(){

   int z;

   z = addition (5, 3); //pemanggilan fungsi addition

   cout << "hasilnya adalah " << z;

   return 0;
}

Output :

Gambar Output Penggunaan Fungsi

1. Fungsi “void” 
Void adalah fungsi yang tidak perlu mengembalikan sebuah nilai. Fungsi void dapat
digunakan seperti pada program berikut :

#include <iostream>

using namespace std;

void printmessage(){        //tidak diawali dengan tipe data

   cout << "ini adalah fungsi";

int main (){

   printmessage();

Output : 

Gambar Output Penggunaan Fungsi void

Fungsi pada program tersebut hanyalah sebagai mencetak pesan dan tidak perlu
ada pengembalian sebuah nilai.

2. Fungsi “Rekursif”
Rekursif adalah suatu proses dari sebuah fungsi yang dapat memanggil dirinya
sendiri secara berulang-ulang. Berikut contoh program fungsi rekursif :
#include <iostream>

using namespace std;

int faktorial (int a){

   if (a == 1) return (a);

   else return (a * faktorial(a-1));    //memanggil dirinya sendiri

 
int main(){

   int r, hasil;

   cout << "Masukkan nilai = ";

   cin >> r;

   hasil = faktorial(r);    //pemanggilan fungsi faktorial

   cout << "Faktorial " << r << "! = " << hasil;

Output :

Gambar Output Rekursif

Sumber :


o cplusplus.com
o petanikode.com
o w3schools.com
o uny.ac.id
BAB 5. Array

Array merupakan struktur data yang digunakan untuk menyimpan sekumpulan data
dalam satu tempat. Setiap data dalam Array memiliki indeks, sehingga kita akan
mudah memprosesnya. Indeks array selalu dimulai dari angka nol (0).

A. Array 1 Dimensi
Array digunakan untuk menyimpan lebih dari 1 data dengan tipe data yang sama.
Ilustrasi Array dapat dilihat sebagai berikut :

Setiap kotak pada gambar di atas merepresentasikan elemen-elemen array (dalam


hal ini terdapat 5) dengan tipe integer. Penomoran pada elemen-elemen array
dimulai dari 0, sehingga :


o Array Data elemen pertama ditulis sebagai data[0]
o Array Data elemen kedua ditulis sebagai data[1]
o Array Data elemen ketiga ditulis sebagai data[2]
o Array Data elemen keempat ditulis sebagai data[3]
o Array Data elemen kelima ditulis sebagai data[4]

Jadi dari ilustrasi di atas, dapat diinisialisasikan :

int Data[5] = {16, 2, 77, 40, 12071}

atau :

    int Data[] = {16, 2, 77, 40, 12071}

Penulisan jumlah elemen pada array juga mempengaruhi isi array, sebagai
contoh :int

Data[5] = {10, 20, 30}

Isi dalam array :

 
Jadi isi Data pada elemen ketiga dan keempat akan kosong jika jumlah elemen
sudah ditetapkan. tetapi jika jumlah elemen tidak ditetapkan (Data[]), maka array
akan menyesuaikan sendiri.

Contoh program array dan cara pemanggilannya adalah sebagai berikut :

#include <iostream>

    using namespace std;

    int data[] = {10, 20, 30, 40, 50};

    int n;

     

    int main (){

       data[0] = 5;         //inisialisasi elemen pertama array

   cout << “memanggil sekali : “ << data[0] << endl;

       cout << “memanggil semua : “;

       for (n = 0; n < 5; n++){

          cout << data[n] << “  “;

       }

       return 0;

    }

Output :

Gambar Output Pemanggilan Array

B. Array Multidimensi
Array multidimensi dapat dideskripsikan sebagai tabel. Sebagai contoh, array dua
dimensi dapat dibayangkan sebagai sebagai tabel dua dimensi dengan masing-
masing elemen terdiri dari elemen baris dan kolom, serta memiliki tipe data yang
sama. Array multidimensi biasanya digunakan untuk membuat matriks.
Contoh array 2 dimensi dan ilustrasinya :

int data[3,4];

Inisialisasi array dapat dilakukan dengan menyebutkan indeksnya. Sebagai contoh,

elemen [1,0] akan diisi dengan bilangan 7, maka statementnya :

data[1, 0] = 7;

Array multidimensi tidak hanya terbatas dalam 2 dimensi. Namun hendaknya


pemakaian array multidimensi mempertimbangkan kebutuhan. Semakin banyak
dimensi array yang dipakai, alokasi ke memori semakin besar, sehingga program
menjadi relatif lebih lambat untuk dijalankan.

Contoh program array dan cara pemanggilannya adalah sebagai berikut :

#include <iostream>

using namespace std;

 
int main(){

    int matriks[3][3] = {

        {1, 3, 5},

        {5, 3, 1},

        {6, 2, 3}

    };

 
    cout<<"Isi Data pada indeks ke-(2,1): "<< matriks[2][1];

 
    return 0;

Output :

Gambar Output Pemanggilan Array


 

Sumber :


o cplusplus.com
o uny.ac.id
o w3schools.com
BAB 6. Variabel dan Tipe Data

Variabel adalah sebuah nama lokasi penyimpanan di dalam memori. Sementara tipe
data adalah jenis data yang akan disimpan di dalam variabel. Pembuatan variabel
atau deklarasi variabel di C++ dapat kita lakukan seperti : 

string nama;

int umur;

char jenis_kelamin;

Macam-macam tipe data di C++ sebagai berikut :

Tipe Data Angka


Tipe data ini khusus untuk menyimpan angka dan yang berhubungan dengan
aritmatika. Macam-macam tipe data angka :

1. int

Untuk menyimpan angka tanpa desimal. Maksimal size int adalah 4 bytes. Contoh


program seperti berikut :

#include <iostream>

using namespace std;

int main (){

   int bilangan = 1000;

   cout << bilangan;

   return 0;

Output :

1000

2. float

Untuk menyimpan angka dengan desimal. Maksimal size float adalah 4


bytes. Contoh program seperti berikut :
#include <iostream>

using namespace std;

int main () {

   float bilangan = 6.65;

   cout << bilangan;

   return 0;

Output :

6.65

3. double

Untuk menyimpan angka dengan desimal. Maksimal size double adalah 8


bytes. Contoh program seperti berikut :

#include <iostream>

using namespace std;

int main () {

   double bilangan = 99.99;

   cout << bilangan;

   return 0;

Output :

99.99

Tipe Data Boolean


Tipe data ini untuk menyimpan logika benar (true atau 1) dan salah (false atau 0).
Tipe data boolean dideklarasikan dengan keyword bool. 

Contoh program sebagai berikut :


#include <iostream>

using namespace std;

int main() {

   bool codingNotFun = false;

   bool dogCanWalk = true;

   cout << codingNotFun << "\n";    //output 0 (false)

   cout << dogCanWalk;        //output 1 (true)

   return 0;

Output :

Tipe Data Karakter


Tipe data ini khusus untuk menyimpan single karakter. Tipe data karakter
dideklarasikan dengan keyword char dan menggunakan single quotes (‘ ‘).

Contoh program sebagai berikut :

#include <iostream>

using namespace std;

int main () {

   char nilai = 'B';

   cout << nilai;

   return 0;

Output :

 
Selain itu, bisa menggunakan kode ASCII untuk menampilkan karakter tertentu :

#include <iostream>

using namespace std;

int main () {

   char a = 65, b = 66, c = 67;

   cout << a<< "\n";    //output A

   cout << b<< "\n";    //output B

   cout << c<< "\n";    //output C

   return 0;

Output :

Tipe Data String


Tipe data ini untuk menyimpan teks dan bukan untuk operasi aritmatika. Tipe data
string dideklarasikan dengan keyword string dan menggunakan double quotes (“ “).

#include <iostream>

using namespace std;

int main() {

   string kata = "Hello";

   cout << kata;

   return 0;

Output :

Hello
 

Sumber :


o w3schools.com
o cplusplus.com
o tutorialspoint.com
BAB 7. Stack dan Queue

A. Stack
Stack adalah struktur data yang mengikuti prinsip LIFO (Last In First Out), yang
berarti elemen yang dimasukkan terakhir akan dikeluarkan terlebih dahulu.
Ilustrasinya dapat dilihat sebagai berikut :

Gambar Prinsip LIFO (Last In First Out)

Berikut adalah contoh program stack :

#include <iostream>

#define MAX 10

using namespace std;

  

struct Stack {

  int top, data[MAX];

} Tumpukan;

  

void init() {

  Tumpukan.top = -1;
}

  

bool isEmpty() {

  return Tumpukan.top == -1;

  

bool isFull() {

  return Tumpukan.top == MAX - 1;

  

void push() {

  if (isFull()) {

    cout << "\nTumpukan penuh" << endl;

  } else {

    Tumpukan.top++;

    cout << "\nMasukkan data = ";

    cin >> Tumpukan.data[Tumpukan.top];

    cout << "Data " << Tumpukan.data[Tumpukan.top] << " masuk ke stack"

    << endl;

  }

  

void pop() {

  if (isEmpty()) {

    cout << "\nData kosong\n" << endl;

  } else {

    cout << "\nData " << Tumpukan.data[Tumpukan.top] << " sudah terambil"

    << endl;

    Tumpukan.top--;

  }
}

  

void printStack() {

  if (isEmpty()) {

    cout << "Tumpukan kosong";

  } else {

    cout << "\nTumpukan : ";

    for (int i = Tumpukan.top; i >= 0; i--)

      cout << Tumpukan.data[i] << ((i == 0) ? "" : ",");

  }

  

int main() {

  int pilihan, data;

  init();

  do {

    printStack();

    cout << "\n1. Input (Push)\n"

    << "2. Hapus (Pop)\n"

    << "3. Keluar\n"

    << "Masukkan Pilihan: ";

    cin >> pilihan;

    switch (pilihan) {

    case 1:

      push();

      break;

    case 2:

      pop();

      break;

    default:
      cout << "Pilihan tidak tersedia" << endl;

      break;

    }

  } while (pilihan != 3);

Outputnya :

Gambar Hasil Program Stack


 

B. Queue
Queue adalah struktur data yang mengikuti prinsip FIFO (First In First Out), yang
berarti elemen yang dimasukkan pertama akan dikeluarkan terlebih dahulu.
Ilustrasinya dapat dilihat sebagai berikut :

Gambar Prinsip FIFO (First In First Out)

Berikut adalah contoh program queue:


#include <iostream>

#define MAX 20 //maksimum data queue

using namespace std;

 
//Deklarasi struct antrian

struct Queue {

    int front, rear, data[MAX];

}Q;

 
//cek apakah antrian penuh

bool isFull() {

    return Q.rear == MAX;

 
//cek apakah antrian kosong

bool isEmpty() {

    return Q.rear == 0;

 
//Menampilkan Queue

void printQueue() {

    if (isEmpty()) {

    cout << "Antrian kosong"<<endl;

    }

    else {

        cout << "QUEUE : ";

        for (int i = Q.front; i < Q.rear; i++)

        //menambahkan koma jika data tidak terdapat di antrian pertama

            cout << Q.data[i] << ((Q.rear-1 == i) ? "" : ",");

        cout << endl;


  }

 
//manambahkan data ke antrian

void enqueue() {

    if (isFull())

    {

        cout << "Antrian penuh!"<<endl;

    }

    else {

        int data;

        //menambahkan data ke antrian

        cout << "Masukkan Data : ";cin >> data;

        Q.data[Q.rear] = data;

        //menempatkan tail pada elemen data terakhir yang ditambahkan

        Q.rear++;

        cout << "Data ditambahkan\n";

        printQueue();

    }

 
// mengambil data dari antrian

void dequeue() {

    if (isEmpty())

    {

        cout << "Antrian masih kosong"<<endl;

    }

    else{

        cout << "Mengambil data \"" << Q.data[Q.front] << "\"..." << endl;

        //menggeser antrian data ke head


        for (int i = Q.front; i < Q.rear; i++)

            Q.data[i] = Q.data[i + 1];

        //menempatkan tail pada data terakhir yang digeser

        Q.rear--;

        printQueue();

    }

int main() {

    int choose;

    do

    {

        //Tampilan menu

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

            << "   Menu Pilihan\n"

            << "-------------------\n"

            << " [1] Enqueue \n"

            << " [2] Dequeue\n"

            << " [3] Keluar \n\n"

            << "-------------------\n"

            << "Masukkan pilihan : "; cin >> choose;

        switch (choose)

        {

        case 1:

            enqueue();

            break;

        case 2:

            dequeue();

            break;

        default:
            cout << "Pilihan tidak tersedia";

            break;

        }

    } while (choose !=3);

    return 0;

Output :
Gambar Hasil Queue

Sumber :


o hackerearth.com
o bekti.net
o geeksforgeeks.org
BAB 8. Algoritma Pengurutan (Sorting)

Algoritma Pengurutan (Sorting)


Algoritma pengurutan atau Sorting Algorithm dipakai untuk mengurutkan elemen-
elemen array atau list. Sebagai contoh, sebuah list yang berisi karakter diurutkan
secara ascending (naik) berdasarkan kode ASCII :

B A C A  =====>  A A B C

Sorting Algorithm ada banyak macam teknik, beberapa diantaranya :

1. Selection Sort
Mencari elemen minimum diantara array[m…n], dan menaruhnya di array[m].
Misalkan elemen-elemen yang akan diurutkan : 64, 25, 12, 22, 11


o Elemen minimum diantara array[0…4]  

11, 25, 12, 22, 64


o Elemen minimum diantara array[1…4]

11, 12, 25, 22, 64


o Elemen minimum diantara array[2…4] 

11, 12, 22 ,25, 64


o Elemen minimum diantara array[3…4]

11, 12, 22, 25, 64

Contoh program sorting dengan metode Selection sort dengan array pada
program :

#include<iostream>
using namespace std;

void selectionSort(int a[], int n) {

  int i, j, min, temp;

  for (i = 0; i < n - 1; i++) {

     min = i;

     for (j = i + 1; j < n; j++)

        if (a[j] < a[min])

           min = j;

           temp = a[i];

           a[i] = a[min];

           a[min] = temp;

  }

   

int main() {

  int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 };

  int n = sizeof(a)/ sizeof(a[0]);

  int i;

  cout<<"Given array is:"<<endl;

  for (i = 0; i < n; i++)

  cout<< a[i] <<" ";

  cout<<endl;

  selectionSort(a, n);

  printf("\nSorted array is: \n");

  for (i = 0; i < n; i++)

  cout<< a[i] <<" ";

  return 0;

Output :
Gambar Output Selection Sort

2. Bubble Sort
Membandingkan 2 elemen dan menukarnya jika syarat terpenuhi. Misalkan elemen-
elemen yang akan diurutkan : 5, 1, 4, 2, 8


o Percobaan pertama:

5, 1, 4, 2, 8  =>  1, 5, 4, 2, 8  

1, 5, 4, 2, 8  =>  1, 4, 5, 2, 8

1, 4, 5, 2, 8  =>  1, 4, 2, 5, 8

1, 4, 2, 5, 8  =>  1, 4, 2, 5, 8


o Percobaan kedua:

1, 4, 2, 5, 8  =>  1, 4, 2, 5, 8

1, 4, 2, 5, 8  =>  1, 2, 4, 5, 8

1, 2, 4, 5, 8  =>  1, 2, 4, 5, 8

1, 2, 4, 5, 8  =>  1, 2, 4, 5, 8


o Percobaan ketiga dibutuhkan untuk memastikan bahwa elemen-elemen
sudah terurut :

1, 2, 4, 5, 8  =>  1, 2, 4, 5, 8

1, 2, 4, 5, 8  =>  1, 2, 4, 5, 8

1, 2, 4, 5, 8  =>  1, 2, 4, 5, 8

1, 2, 4, 5, 8  =>  1, 2, 4, 5, 8

3. Insertion Sort
Menempatkan elemen minimum ke awal array setelah dibandingkan dengan
elemen-elemen sebelumnya. Misalkan elemen-elemen array yang akan diurutkan :
12, 11, 13, 5, 6


o Elemen 2 dibandingkan dengan elemen 1

12, 11, 13, 5, 6  =>  11, 12, 13, 5, 6


o Elemen 3 dibandingkan dengan elemen 1 dan 2

11, 12, 13, 5, 6  =>  11, 12, 13, 5, 6


o Elemen 4 dibandingkan dengan elemen 1, 2 dan 3

11, 12, 13, 5, 6  =>  5, 11, 12, 13, 6


o Elemen 5 dibandingkan dengan elemen 1, 2, 3 dan 4

5, 11, 12, 13, 6  =>  5, 6, 11, 12, 13

Sumber :


o geeksforgeeks.org
o tutorialspoint.com
o kodedasar.com

BAB 9. Algoritma Pencarian (Searching)

Algoritma pencarian atau Searching Algorithm dipakai untuk mengecek suatu


elemen atau mengambil sebuah elemen dari suatu struktur data. Secara
umum, Searching Algorithm dapat dikategorikan menjadi 2 :

1. Sequential Search 
Dalam pencarian suatu elemen, list atau array dilalui secara berurutan dan setiap
elemennya diperiksa. Salah satu contohnya adalah Linear Search.

Contoh program pencarian metode Sequential Search dengan mencari nilai


pada array yang ada di dalam program :

#include <iostream>

int seqSearch(int list[], int start, int bounds, int key);

int main(void){

   int iArray[] = {1706, 30, 45, 60, 90, 42, 1138, 47, 451, 6174, 73};

   int key, returnVal = 0;

   std::cout << "Please enter a value to search for: ";

   std::cin >> key;

   if((returnVal=seqSearch(iArray, 0, sizeof(iArray) / sizeof(int),


key))<0){

       std::cout << "Value not found." << std:: endl;

   } else {
       std::cout << "Value found at index " << returnVal << std::endl;

   }

   return 0;

int seqSearch(int list[], int start, int bounds, int key){

   while(start < bounds){

       if(list[start]==key){

           return start;

       } else {

           start++;

       }      

   }

   //no match found

   return -1;

Output :

Gambar Output Sequential Search

2. Interval Search
Dikhususkan untuk mencari struktur data yang sudah terurut. Dalam pencarian,
Algoritma tipe ini lebih efisien dibanding Linear Search karena dilakukan dengan
terus mengincar titik tengah dari suatu struktur data dan membagi search space-nya
menjadi 2.

Salah satu contohnya adalah Binary Search.


 

Sumber :


o tutorialspoint.com
o geeksforgeeks.org
o slideplayer.info

Anda mungkin juga menyukai