Anda di halaman 1dari 46

KU1072

Modul
Praktikum
Pengenalan Teknologi Informasi B

Institut Teknologi Bandung


2014

Daftar Isi
Bab I _______________________________________ 3
Pengenalan Algoritma dan Pemrogramana ________ 3
Algoritma _______________________________________ 4
Kompleksitas Algoritma ___________________________ 5
Algoritma dalam Pemrograman_____________________ 7
Sintaks Program _________________________________ 8
Input, Output, dan Komentar______________________ 10
Variabel dan Tipe Data ___________________________ 11

Bab II ______________________________________ 14
Ekspresi, Operator, dan Percabangan ____________ 14
Operator ______________________________________ 15
Operator Aritmatik ________________________________ 15
Operator Relasi ___________________________________ 17

Operator Logika_________________________________ 17
Struktur Percabangan (IF Conditional) _____________ 18

Bab III _____________________________________ 21


Tipe Data Bentukan __________________________ 21
Tipe Data ______________________________________ 22
1.
2.
3.

Struktur _____________________________________ 22
Enumerasi ___________________________________ 25
Typedef _____________________________________ 25
pg. 1

Bab IV _____________________________________ 26
Pengulangan (Looping) _______________________ 26
Logika Pengulangan _____________________________ 27
Switch dan Break________________________________ 27
Do-While dan While-Do Loop _____________________ 28
For Loop _______________________________________ 30

Bab V ______________________________________ 33
Array ______________________________________ 33
Array _________________________________________ 34
Dimensi _______________________________________ 34
Operasi Dengan Array ____________________________ 35

Bab VI _____________________________________ 40
Fungsi dan Prosedur __________________________ 40
Fungsi dan Prosedur _____________________________ 41
Variabel Lokal __________________________________ 41
Fungsi Rekursif _________________________________ 42

pg. 2

Bab I
Pengenalan Algoritma
dan Pemrogramana

pg. 3

Algoritma
Dalam ilmu matematika dan komputasi, algoritma berarti
langkah-langkah yang harus ditempuh untuk kalkulasi atau
pemecahan masalah. Pada dasarnya definisi algoritma
abstrak, untuk lebih mudahnya dapat dipelajari melalui
contoh studi kasus berikut.
Kasus 1a : Mengupas Kentang
Bayangkan kalian ingin mengupas kentang untuk memasak
sebuah sup. Jika disediakan sebuah pisau, mangkuk, dan
kentang bagaimana langkah-langkah mengupas kentang
untuk ditaruh di dalam mangkuk ?
Jawab :
Dengan mudah persoalan tersebut dijawab dengan langkahlangkah sebagai berikut :
1.
2.
3.
4.
5.

Ambil pisau
Ambil 1 buah kentang
Kupas kulit kentang tersebut
Taruh kentang di mangkuk
Kembalikan pisau ke tempatnya jika kentang sudah habis

Apabila kita gambarkan dalam flowchart, langkah-langkah


tersebut dapat digambarkan sebagai berikut :

pg. 4

Ambil
Pisau

Kupas
Kulit
Ambil
Kentang

Kembalikan
Pisau
Taruh di
mangkuk

Flowchart 1 - Langkah Mengupas Kentang

Kompleksitas Algoritma
Algoritma bisa saja sederhana seperti contoh mengupas
kentang pada sebelumnya. Namun, perlu diketahui
terkadang ada beberapa proses yang dilewati dan dianggap
sudah dilakukan, contohnya seperti permasalahan berikut.
Kasus 1b : Mengupas Kentang (2)
Langkah apa saja yang ditambahkan apabila pisau kalian
belum tajam dan kentang harus direbus sebelum ditaruh di
mangkuk ? (Asumsikan telah disediakan panci untuk merebus
kentang)
Jawab :
Terjadi beberapa perubahan pada flowchart mengupas
kentang seperti contoh berikut :

pg. 5

Ambil pisau

Masukkan air ke dalam


panci

Rebus Kentang

Tajamkan pisau

Nyalakan kompor

Taruh kentang di
mangkok

Ambil kentang

Kupas kulit kentang

Kembalikan pisau

Flowchart 2 - Langkah Merebus Kentang (2)

pg. 6

Algoritma dalam Pemrograman


Dalam pemrograman, algoritma adalah dasar dari program
yang akan dibuat. Algoritma akan menentukan bagaimana
keberjalanan sebuah program, tahap penyusunan algoritma
sebelum membuat program umumnya disebut pseudocoding.
Tidak ada sintaks formal untuk sebuah pseudo-code, sebuah
pseudo-code umumnya terdiri dari bahasa yang mudah
dimengerti (tidak seperti bahasa pemrograman di komputer).
Untuk lebih jelasnya akan dijelaskan oleh dosen yang
bersangkutan di kelas.
Khusus untuk flowchart pseudo-code, terdapat simbol khusus
yang memiliki arti berbeda seperti berikut :
Simbol

Makna
Menyatakan awal (start) dan akhir program (end)
Menandakan input dan output
Menandakan suatu proses
Kondisi perulangan (if conditional)
Konektor untuk algoritma
Menandakan struktur percabangan (looping)
Tabel 1- Simbol Flowchart Pseudocode

pg. 7

Sintaks Program
Sebuah program umumnya memiliki penanda awal dan akhir
dari sebuah program. Uniknya, untuk bahasa yang berbeda,
penanda awal dan akhir program juga berbeda. Di dalam
pseudocode, umumnya sebuah program diawali dengan kata
begin dan diakhiri dengan kata end.
Perlu diketahui, di beberapa bahasa pemrograman tanda
awal dan akhir program akan mirip dengan tanda awal dan
akhir fungsi (akan dijelaskan lebih lanjut pada bab
selanjutnya).
Contoh sintaks awal dan akhir program sesuai dengan
bahasanya dapat dilihat dalam tabel berikut :
Pseudocode

Pascal

Program <nama program>

program <nama program>

Begin
<isi program>
End

begin
<isi program>;
end.

C++
#include <nama library>
using namespace std;
int main ()
{
<isi program>
return 0;
}

Fortran
program <nama program>
<isi program>
end program <nama program>

Tabel 2 - Perbedaan Sintaks Awal dan Akhir Program

pg. 8

Untuk memahami lebih jauh mengenai perbedaan sintaks


dalam masing-masing bahasa, perhatikan contoh kasus
berikut.
Kasus 1c : Hello World !
Peribahasa mengatakan setiap programmer memulai
pemrograman dengan membuat program hello world,
menggunakan empat bahasa, buat program untuk
menampilkan tulisan hello world ke layar !
Jawab :
Pseudocode

Pascal

Program HelloWorld

program HelloWorld

Begin
Output (Hello World !)
End

begin
write(Hello World !);
end.

C++
#include <iostream>
using namespace std;
int main ()
{
cout << Hello World !;
return 0;
}

Fortran
program HelloWorld
write(*,*) Hello World !
end program HelloWorld

Tabel 3 - Hello World dalam Empat Bahasa


FAQ Frequently Asked Question :
Apa itu <iostream> ?
Jawab :
<iostream> merupakan library yang mengandung fungsi cin dan cout yang
digunakan di dalam program. Fungsi cout digunakan untuk menampilkan
pg. 9 teks
ke layar.

Input, Output, dan Komentar


Dalam pemrograman, dikenal istilah input, output, dan
komentar / comment. Input adalah masukan yang diberikan
oleh pengguna / user ketika program dijalankan, sementara
output adalah teks atau karakter tertentu yang ditampilkan
ke layar devais.
Agar lebih mudah dimengerti, sebuah program umumnya
mengandung komentar. Fungsi utama komentar adalah
menjelaskan maksud dari langkah yang sedang dijalankan
untuk membantu proses debugging atau membantu user
membaca source code. Daftar sintaks untuk input, output,
dan comment pada C++ adalah sebagai berikut.
Jenis Perintah
Input
Output
Comment

Pseudocode

Input <variabel>

cin >> <variabel>

Output <isi output>

cout << <isi output>

/* <isi comment> */

/* <isi comment> */

Tabel 4 - Sintaks Input dan Output

Khusus untuk tipe data string, input dilakukan menggunakan


sintaks getline (cin,<nama variabel>). Hal ini dikarenakan
cin akan berhenti membaca input setelah menemukan spasi
kosong. Untuk itu digunakan getline untuk menginput satu
line sekaligus. Untuk lebih jelasnya simak kasus berikut
Kasus 1d : Hello username !
Buatlah agar layar dapat menerima input nama user dan
menampilkan Hello <nama user> ! menggunakan bahasa C.
Jangan lupa menyertakan komentar !

pg. 10

Jawab :
#include <iostream>
#include <string>
using namespace std;
int main() {
string nama; // Deklarasi variabel nama
getline (cin,nama); // Input nama
cout << \nHello << nama << !; // Output
}

FAQ Frequently Asked Question :


Apa itu // <kalimat> dan \n ?
Jawab :
// <kalimat> adalah one line comment / 1 baris. \n merupakan penanda
pergantian baris pada C. \n bisa juga diganti menggunakan sintaks endl. Hal
yang berhubungan dengan ini akan dipelajari di subbab selanjutnya, yaitu
variabel.

Variabel dan Tipe Data


Variabel merupakan elemen yang dapat dimanipulasi dan
memiliki tipe data tertentu. Tipe data sendiri adalah jenis
yang menentukan tipe dari variabel yang bersangkutan.
Contoh sederhana adalah ketika kasus memotong kentang.
Dalam kasus tersebut, diberikan satu buah kentang. Apabila
dimisalkan
terdapat
sebuah
variabel
bernama
JumlahKentang, maka variabel tersebut memiliki nilai
sebesar 2 (bilangan bulat).

pg. 11

Tipe Data
char

Deskripsi
Merupakan tipe data karakter

int

Bilangan bulat s/d 216

long int

Bilangan bulat s/d 232

float

Bilangan desimal

string

Kata atau kalimat


Tabel 5 - Tipe Data yang Sering Digunakan

Penamaan variabel dalam C bebas, hanya saja tidak boleh


mengandung spasi maupun karakter khusus seperti garis
bawah, koma, dan titik.
Kasus 1e : Output beberapa variabel
Pada dasarnya, sebuah prosesor komputer mampu
memproses banyak variabel dalam waktu yang bersamaan.
Cobalah membuat program yang menerima input dari user
berupa nama, NIM, dan fakultas kemudian menampilkannya
ke layar sebagai output !
Jawab :
Dari soal yang diberikan diketahui bahwa dibutuhkan 3
variabel yaitu nama, NIM, dan fakultas. Nama dan fakultas
lebih tepat menggunakan variabel string, sementara NIM
dapat menggunakan long integer ataupun string.
Pada bagian output, dapat dilakukan output secara beruntun
menggunakan tanda << berkali-kali. Input string
menggunakan sintaks getline untuk mendapatkan satu baris
teks. Salah satu contoh program terdapat pada halaman
berikutnya.

pg. 12

// Program Nama, NIM, dan Fakultas


#include <iostream>
#include <string>
using namespace std;
int main () {
string nama; // deklarasi variabel nama
string fakultas; // deklarasi variabel fakultas
long int NIM; // deklarasi variabel NIM
// terima input dari user
getline (cin,nama); cout << endl;
getline (cin,fakultas); cout << endl;
cin >> NIM; cout << endl;
// output ke layar
cout << Nama anda << nama << , NIM anda << NIM
<< , Fakultas << fakultas;
return 0;
}

Contoh program yang telah dijalankan :


Adityo
16511298
STEI
Nama anda Adityo, NIM anda 16511298, Fakultas STEI

pg. 13

Bab II
Ekspresi, Operator, dan
Percabangan

pg. 14

Operator
Operator merupakan simbol tertentu dalam bahasa
pemrograman yang mampu membuat compiler (penerjemah
bahasa, dari bahasa yang ditulis pada layar menjadi bahasa
mesin) melakukan sejumlah operasi tertentu.
Terdapat beberapa macam operator dalam C. Tiga jenis
operator yang sering digunakan dalam pemrograman adalah
operator aritmatik, operator relasi, dan operator logika.

Operator Aritmatik
Pada dasarnya, pemrosesan akan membutuhkan operasi
secara matematis seperti tambah, kurang, kali, dan bagi.
Operator aritmatik memiliki fungsi untuk melakukan operasi
secara matematis pada bahasa pemrograman. Jenis operator
aritmatik dapat dilihat pada tabel berikut.
Simbol Operator
+
*
/

Nama dan Deskripsi Simbol


Tambah, berfungsi untuk operasi penambahan
Kurang, berfungsi untuk operasi pengurangan
Kali, berfungsi untuk operasi perkalian
Bagi atau Div, memiliki dua fungsi :
Untuk tipe data float, melakukan operasi
pembagian, contoh : 3.00 / 2.00 = 1.50
Untuk tipe data integer, melakukan operasi
pembagian round down, contoh 3 / 2 = 1
Modulus, mengembalikan sisa pembagian, khusus
tipe data integer, contoh 6 % 4 = 2
Tabel 6 - Operator Aritmatik pada C

Operator aritmatik dapat digunakan secara langsung untuk


mengubah nilai suatu variabel. Sintaks umumnya <variabel>
= <variabel / angka> <operator> <variabel / angka>;
contohnya adalah a = a + 3; akan menghasilkan variabel a

pg. 15

yang bernilai nilai variabel a ditambah dengan 3. Selain jenis


yang ditulis di tabel terdapat tipe increment dan decrement.
Increment dilambangkan dengan <variabel>++; dan
decrement dilambangkan dengan <variabel>--;. Tipe ini
setara dengan <variabel a> = <variabel a> + 1; dan
<variabel a> = <variabel a> - 1;.
Terdapat teknik pengubahan tipe data di dalam pemrosesan.
Pengubahan tipe data di tengah proses ini menyebabkan
operasi memiliki hasil berbeda, khususnya untuk penggunaan
simbol bagi atau div (/). Untuk lebih jelasnya, lihat studi
kasus berikut.
Kasus 2e : From integer to float
Perubahan tipe data sangat umum dalam pemrograman.
Pada sebuah program perhitungan hasil bagi, user pada
umumnya memasukkan angka dalam tipe integer. Sebagai
latihan, buat sebuah program yang menghitung hasil bagi
dua bilangan integer dalam bentuk float !
Jawab :
Dalam kasus ini, akan digunakan pengubahan tipe data
ketika operasi pembagian sedang berjalan. Contoh
programnya adalah sebagai berikut.
#include <iostream>
using namespace std;
int main () {
// Deklarasi variabel
int a,b
float hasil;
// Input dari user
cin >> a; cout << endl;
cin >> b; cout << endl;
// Proses, perhatikan (float)
hasil = (float) a/b;
// Output, panggil variabel hasil
cout << Hasil bagi kedua bilangan adalah >> hasil; pg. 16
return 0;
}

Perlu diperhatikan bahwa (float) mengubah fungsi operator


div (pembagian bil. bulat) menjadi operator pembagian biasa
(bilangan desimal). Bisa juga dilakukan lewat bentuk berikut :
hasil = float (a) / b.

Operator Relasi
Operator relasi adalah operator yang digunakan untuk
menyatakan relasi atau hubungan antara dua variabel.
Berbeda dengan operator aritmatik, operator relasi akan
selalu menghasilkan data true atau false.
Penggunaan operator relasi umumnya terdapat pada
statement if sebagai syarat true atau false. Jenis operator
relasi adalah sebagai berikut.
Simbol
==
!=
>
<
>=
<=

Definisi
Bernilai True jika
Sama dengan
10 == 10
Tidak sama dengan
8 != 10
Lebih dari
12 > 7
Kurang dari
10 < 33
Lebih dari sama dengan
14 >= 14
Kurang dari sama dengan
1 <= 1
Tabel 7 - Jenis Operator Relasi

Penggunaan operator relasi akan dijelaskan lebih lanjut pada


subbab logika if.

Operator Logika
Tipe operator yang ke tiga adalah operator logika. Operator
logika adalah simbol yang memiliki fungsi khusus untuk
melakukan operasi logika seperti and, or, dan not.

pg. 17

Penggunaan operator logika biasanya berhubungan dengan


operator relasi, yaitu sebagai penghubung antara dua
operator relasi. Lebih jelasnya, operator logika
menghubungkan hasil (true atau false) yang didapat dari
operasi relasi dan memberikan hasil baru (true atau false)
berdasarkan operasi logika matematika.
Jenis operator logika terdapat pada tabel di bawah ini.
Operator
&&
||
!

Fungsi
Contoh penggunaan
AND
true && true beroutput true
OR
true || false beroutput true
NOT
!true beroutput false
Tabel 8 - Jenis Operator Logika

Seperti operator relasi, penjelasan lebih lanjut mengenai


penggunaan operator logika akan ada pada subbab logika if.

Struktur Percabangan (IF Conditional)


Pada pemrograman, terdapat sebuah operasi logika
matematika yang biasa digunakan untuk memecahkan
masalah, operasi ini umumnya disebut operasi logika
kondisional. Dilambangkan dengan kata if, operasi ini akan
melakukan / mengeksekusi deretan perintah selanjutnya jika
kondisi awalnya telah dipenuhi. Contoh sintaks if dalam C
adalah sebagai berikut :
if <kondisi/expression>
{ statement 1 }

Start

Atau
Cond.

if <kondisi/expression>
{ statement 1 }
else
{ statement 2 }

No

Process 1

Yes
Process 2

End

pg. 18

Bagian expression adalah bagian syarat dari if-conditional.


Pada bentuk ke dua, apabila bagian expression dipenuhi,
maka program akan menjalankan statement 1, sementara
jika tidak dipenuhi, maka program akan menjalankan
statement 2. Statement berisi perintah-perintah yang akan
dijalankan oleh program seperti perintah print, scan, atau
manipulasi variabel.
Selain bentuk if-conditional standar, terdapat juga bentuk ifconditional bertingkat. Flowchart dan sintaks dari dari if
bertingkat adalah sebagai berikut.
if <kondisi/exp. 1>
{statement 1}
else { if <kondisi/exp. 2>
{statement 2}
else { if <kondisi/exp. 3>
{statement 3}
.
.
.
else { if <kondisi/exp. n>
{statement n}
else
{statement else}
}}}}}}}
// kurung kurawal tutup
// sebanyak n buah

Flowchart 3 - IF bertingkat

Untuk lebih memahami mengenai penggunaan if-logical,


simak contoh soal berikut ini.
Kasus 2a : Cek positif, negatif, atau nol
Pengecekan bilangan positif, negatif, atau nol adalah sebuah
fungsi dasar yang umum digunakan pada program berskala
kecil sampai besar. Untuk itu, buatlah program yang dapat
pg. 19

menerima input dari user berupa integer dan mengecek


apakah bilangan tersebut positif, negatif, atau bilangan nol.
Jawab :
Untuk membuat program yang menjawab permasalahan
diatas, perlu diketahui syarat-syarat atau kondisi dari
permasalahan. Kita tahu bahwa bilangan positif adalah
bilangan dengan nilai > 0, bilangan negative adalah bilangan
dengan nilai < 0, dan bilangan nol memiliki nilai = 0. Untuk itu
kita harus mengecek setiap syarat yang ada. Urutan
pengecekan sebenarnya bebas, berikut contoh jawaban.
#include <iostream>
using namespace std;
int main () {
int a; // deklarasi variabel
cin >> a; // menerima input dari user
if (a > 0)
// bilangan positif
{cout << \nbilangan ini positif;}
else
{if (a < 0)
// bilangan negatif
{cout << \nbilangan ini negatif;}
else
// tidak positif dan tidak negatif
{ cout << \nbilangan ini nol;}
}
return 0;
}

Perlu diperhatikan bahwa untuk kondisi terakhir (kondisi


ketika bilangan sama dengan nol) tidak perlu dibuat if-logical
lagi karena kondisi terakhir merupakan kondisi sisa.

pg. 20

Bab III
Tipe Data Bentukan

pg. 21

Tipe Data
Pada bahasa pemrograman C / C++, secara umum terdapat
dua buah tipe yaitu tipe dasar dan tipe bentukan. Tipe dasar
merupakan tipe data variabel standar yang telah disediakan.
Contoh tipe data dasar adalah : integer, float, boolean,
double dan char. Tipe data dasar dapat langsung digunakan
pada variabel yang dibuat.
Untuk keperluan khusus pada pemrograman, user dapat
membuat tipe bentukan sendiri. Berikut adalah jenis tipe
bentukan :

1. Struktur
Struktur adalah tipe data bentukan yang menyimpan
lebih dari satu variabel bertipe sama ataupun
berbeda. Berikut adalah bentuk umum penulisan
struktur :
struct nama_struktur {
tipe_data variabel1;
tipe_data variabel2;
.......
};

---------------------------------------------------------------struct nama_struktur {
tipe_data variabel1;
tipe_data variabel2;
.......
}nama_variabel;

pg. 22

Contoh program :
Contoh 1:
struct mahasiswa {
int NIM;
string nama;
string alamat;
};
//contoh pendeklarasian
//tipe data mahasiswa

variabel

dengan

struct mahasiswa M;
//cara mengakses variabel M
M.NIM=13211000;
M.nama=Abah;

Contoh 2:
struct mahasiswa {
int NIM;
string nama;
string alamat;
}M;
//cara akses
M.NIM=13211000;
M.nama=Abah;

pg. 23

Berdasarkan contoh diatas, dapat ditarik kesimpulan


bahwa : variabel M, memiliki tipe mahasiswa. Tipe
mahasiswa dibentuk oleh user dan memiliki sub tipe
NIM, nama dan alamat. Pada penulisan seperti
contoh 2, variabel M tidak perlu dideklarasikan dan
langsung dapat diakses.
Struktur dapat dideklarasikan secara bertingkat. Pada
kasus ini maka terdapat struktur di dalam struktur
lainnya. Contoh cara untuk deklarasi dan mengakses
struktur bertingkat :
struct namax {
string lengkap;
string panggilan;
};
struct mahasiswa {
int NIM;
struct namax nama;
string alamat;
};
//deklarasi variabel M bertipe mahasiswa
struct mahasiswa M;
//cara mengakses struktur dalam struktur
M.nama.panggilan=Budi;

Pada contoh diatas, variabel M memiliki tipe


mahasiswa dan ingin mengakses sub tipe nama.
Tipe nama sendiri merupakan variabel dengan tipe

pg. 24

bentukan namax yang salah satu sub tipe nya


adalah panggilan

2. Enumerasi
Tipe enumerasi adalah tipe data yang nilainya telah
didefinisikan sejak awal tipe tersebut dibuat oleh
user. Tipe ini digunakan untuk membentuk tipe data
yang nilainya bersifat pasti. Misalnya : nama hari dan
jenis kelamin.
Bentuk umum :
enum nama_tipe(nilai1,nilai2,nilai3,......);

3. Typedef
Typedef atau type definition berguna untuk
mencipatakan nama lain dari suatu tipe data. Salah
satu fungsi dari typedef adalah untuk mempermudah
penulisan struct yang kadang terlalu panjang. Berikut
adalah contoh pemakaian typedef :
typedef struct mahasiswa mhs;

Pada contoh diatas, dijelaskan bahwa typedef


berfungsi untuk memberi nama lain dari struct
mahasiswa menjadi mhs sehingga pada saat
pendeklarisian struktur menjadi lebih ringkas pada
bagian program selanjutnya.

pg. 25

Bab IV
Pengulangan (Looping)

pg. 26

Logika Pengulangan
Pada pemrograman, sering kali dibutuhkan pemrosesan
berulang-ulang untuk mencapai suatu hasil tertentu. Apabila
pengulangan ini dilakukan secara manual ukuran file program
akan menjadi terlalu besar. Contoh sederhana adalah jika kita
ingin menuliskan Hello World di layar sebanyak 7 kali, maka
akan dibutuhkan paling tidak 7 baris perintah. Menggunakan
sintaks pengulangan, persoalan tersebut dapat diselesaikan
hanya menggunakan 3 baris program.

int a;
for (a=1;a<=5;a++){
cout << \nHello !;
}
Output :
Hello
Hello
Hello
Hello
Hello

!
!
!
!
!

Flowchart 4 - Chart Looping

Switch dan Break


Sebelum memasuki sintaks looping, terdapat salah satu
sintaks yang umumnya digunakan untuk analisa kasus dalam
pemrograman. Sintaks switch akan mencocokan nilai suatu
variabel dengan syarat yang telah ditentukan. Perlu diketahui
bahwa switch memperlakukan pengecekan menggunakan
operator relasi sama dengan (==). Sintaks switch adalah
sebagai berikut.
pg. 27

switch (variabel) {
case <kondisi 1> :
case <kondisi 2> :

<statement 1>;
break;
<statement 2>;
break;

.
.
case <kondisi n> :
default :

<statement n>;
break;
<statement default>
break;

Terdapat salah satu perintah baru dalam sintaks diatas yaitu


break. Perintah break digunakan untuk menyelesaikan proses
looping atau pengecekan logika di dalam sebuah program.
Pada contoh diatas, apabila tidak ditulis break setelah
statement, maka variabel akan dicocokkan dengan semua
kondisi meskipun sudah ditemukan kondisi yang cocok.

Do-While dan While-Do Loop


Salah satu sintaks yang looping / pengulangan yang sering
digunakan adalah sintaks Do-While dan While-Do. Untuk
jenis Do-While, program akan menjalankan statement
terlebih dahulu sebelum melakukan pengecekan kondisi
looping. Sebaliknya, untuk While-Do, program akan
mengecek kondisi looping terlebih dahulu sebelum
menjalankan statement yang ada di dalamnya.
Dari bentuk diatas, bentuk Do-While akan selalu menjalankan
statement yang ada di dalamnya minimal sebanyak satu kali,
sementara While-Do bisa saja tidak menjalankan statement
pg. 28

di dalamnya sama sekali karena kondisi looping tidak


dipenuhi. Sintaks kedua jenis looping adalah sebagai berikut.
Do-While
do
{<statement loop>}
while (<kondisi loop>);

While-Do
while (<kondisi loop>)
{<statement loop>}

Untuk lebih jelas mengenai looping, simaklah persoalan


berikut.
Kasus 3a : Perhitungan Mundur
Pada perlombaan balap mobil, umumnya terdapat istilah
countdown atau hitung mundur untuk menandakan
dimulainya balapan. Hitung mundur ini dilakukan dengan
menampilkan teks hitungan dan tulisan START ketika
hitungan mencapai nol. Buatlah sebuah program yang
menerima input user berupa bilangan integer dan
menampilkan hitungan saat itu. Apabila hitungan mencapai
nol, program akan menampilkan tulisan START ! (Asumsi
user akan selalu memberi masukan > 0)
Jawab :
Untuk mengerjakan kasus ini, perlu diketahui terdapat 2
operasi yang dilakukan, yaitu menampilkan teks dan
melakukan perulangan. Teks yang ditampilkan dibuat dengan
logika if sederhana, jika angka tidak sama dengan nol maka
teks yang ditampilkan adalah angka tersebut. Bagian kedua,
yaitu looping, dapat dikerjakan menggunakan Do-While
maupun While-Do. Perbedaan utamanya terdapat pada
kondisi looping. Untuk lebih jelasnya, simak contoh program
pada halaman berikutnya.

pg. 29

#include <iostream>
using namespace std;
int main () {
// Deklarasi variabel
int a, i;
// Proses
cin >> a; // Input
while (a >= 0){
if (a > 0)
// a > 0, tampilkan angka
cout << a << endl;
a--;}
else
// a = 0, tampilkan START
cout << \nSTART;
a--;}
} // Eliminasi loop, a < 0
return 0;
}

Untuk solusi menggunakan Do-While dapat dicoba sendiri


dengan kondisi looping yang sedikit berbeda.

For Loop
Bentuk looping yang ke tiga adalah bentuk For. Bentuk ini
umumnya digunakan untuk pengulangan yang sudah
diketahui jumlahnya. Meskipun begitu, loop for bisa saja
dibuat seperti loop while. Sintaks loop for adalah sebagai
berikut.
for (<variabel loop>;<kondisi looping>;<inc/decrement>)
{
<statement loop>
}

pg. 30

Variabel loop adalah variabel yang digunakan untuk


menyimpan nilai hitung / counter dalam menjalankan loop
for. Umumnya variabel counter ini bertipe integer dan
mengalami increment / decrement. Untuk kondisi infinite
loop atau loop yang tak berhenti, cukup kosongkan ketiga
bagian <variable loop>, <kondisi looping>, dan
<inc/decrement>.
Contoh penggunaan loop for dapat dilihat dalam kasus
berikut ini.
Kasus 3b : Perhitungan Deret Aritmatika
Dalam matematika, deret aritmatika adalah urutan bilangan
dengan suku-suku selanjutnya merupakan penjumlahan suku
sebelumnya dengan konstanta tertentu. Contoh sederhana
deret aritmatika adalah deret seperti berikut : 0 + 1 + 2 + 3 +
4 + . + n. Menggunakan loop for, buatlah program yang
menerima masukan user berupa bilangan integer positif dan
membuat hasil penjumlahan dari deret seperti pada contoh
diatas. Input user akan selalu >= 0.
Jawab :
Sebelum menjawab kasus ini kita perlu tahu terlebih dahulu,
ada berapa variabel yang kita butuhkan dan proses seperti
apa yang berjalan di dalam kasus ini. Variabel utama yang
digunakan dalam kasus ini adalah variabel penyimpan input
user dan variabel yang digunakan sebagai counter pada loop
for. Karena diminta jumlah dari deret, maka diperlukan pula
sebuah variabel untuk menyimpan hasil penjumlahan.
Untuk prosesnya sederhana, cukup menerima input dari user,
lakukan looping, kemudian tampilkan hasil penjumlahan dari

pg. 31

looping ke layar ketika looping selesai. Contoh program


adalah sebagai berikut.
#include <iostream>
using namespace std;
int main () {
// deklarasi variabel
int i, a, sum;
// input dari user
cin >> a;
// inisialisasi sum
sum = 0;
// proses looping
for (i=0;i<=a;i++){
sum = sum + i;
} // loop selesai ketika i > a
// output ke layar
cout << \njumlah deret adalah : << sum;
return 0;
}

FAQ Frequently Asked Question :


Mengapa diperlukan inisialisasi variabel sum ?
Jawab :
Inisialisasi sum diperlukan karena pada proses penjumlahan sum akan
memanggil dirinya sendiri. Apabila sum tidak diinisialisasi, maka nilai sum
adalah null / tidak memiliki nilai sehingga akan terjadi error ketika ia
memanggil dirinya sendiri. Inisialisasi variabel sangat penting dalam
pemrograman khususnya ketika pemanggilan dirinya sendiri diperlukan.

pg. 32

Bab V
Array

pg. 33

Array
Setelah membahas mengenai variabel dan beberapa proses
seperti percabangan dan pengulangan, pada bab ini kita akan
membahas kumpulan variabel atau array.
Array adalah sebuah variabel yang didalamnya terdiri dari
sekumpulan variabel. Sebuah array umumnya dilambangkan
dengan indeks dan isi dari array tersebut. Secara visual,
penggambaran array adalah sebagai berikut.

Gambar 1 - Representasi Array

Perlu diketahui bahwa indeks array dalam C selalu dimulai


dari nol, sehingga indeks terakhir dari sebuah array adalah n1 dimana n adalah alokasi jumlah tempat pada array pada
deklarasi variabel, sintaks deklarasi array adalah <tipe
variabel> <nama variabel>[<jumlah array>];.
Untuk pemanggilan isi dari array harus menyertakan
indeksnya. Sintaksnya adalah <nama variabel>[<indeks>].

Dimensi
Seperti sebuah tabel, sebuah array dapat dibuat memiliki
beberapa dimensi. Dimensi disini berarti indeksnya memiliki
n komponen. Contoh, array berdimensi satu dengan jumlah
array 4 buah akan memiliki indeks dari nol sampai tiga. Array
dengan jumlah array 4 buah tersebut bisa saja
pg. 34

direpresentasikan menggunakan array dua dimensi dengan


ukuran 2x2. Array dua dimensi tersebut akan memiliki indeks
dari [0,0] sampai [1,1]. Untuk lebih jelasnya dapat disimak
ilustrasi berikut ini.

Gambar 2 - Array 2 Dimensi

Operasi Dengan Array


Adanya indeks dan kemampuan untuk memanggil isi array
tersebut memungkinkan kita untuk melakukan operasi
dengan array. Operasi dasar menggunakan array umumnya
melibatkan traversal atau pengecekan elemen / anggota dari
array satu persatu. Proses traversal ini dilakukan
menggunakan teknik looping yang sudah dipelajari pada bab
sebelumnya.
Menggunakan proses traversal, operasi aritmatik untuk array
dapat dilakukan dengan mudah. Pada array, operasi aritmatik
harus dilakukan satu persatu untuk setiap elemen array.
Operasi aritmatik bisa saja dilakukan secara manual dengan
menambahkan satu persatu isi array, namun dapat juga
dilakukan dengan proses traversal. Untuk lebih jelasnya,
simak kasus berikut ini.
Kasus 4a : Pengecekan Nilai Pada Tabel
pg. 35

Software pengolah data seperti Microsoft Excel mengolah


data dalam bentuk spreadsheet dan melakukan operasi
tertentu pada spreadsheet tersebut. Operasi dasar dalam
pengolahan spreadsheet adalah mencari nilai atau value
tertentu di dalam spreadsheet tersebut. Apabila diberikan
array satu dimensi dengan isi array = {0,3,4,1,2,5,6}, buatlah
sebuah program yang menerima masukan user berupa
integer dan mengecek apakah integer tersebut ada di dalam
array ! Output berupa pemberitahuan kepada user apakah
bilangan tersebut ditemukan atau tidak. Masukan user
bernilai bebas hanya saja bertipe integer.
Jawab :
Sebelum menjawab kasus ini, kelompokkan terlebih dahulu
informasi yang ada dalam soal, seperti :
1. Terdapat array satu dimensi dengan isi bilangan
{0,3,4,1,2,5,6}.
2. Program yang diminta menerima input user berupa
integer kemudian melakukan pengecekan ke array satu
dimensi tersebut untuk menemukan bilangan yang
diinput user.
3. Program akan memberikan output apabila bilangan
ditemukan. Jika bilangan tidak ditemukan, maka
program akan memberitahu user bahwa bilangan yang
dicari tidak ditemukan.
Menggunakan informasi yang ada, dapat dibuat program
seperti berikut.

pg. 36

#include <iostream>
using namespace std;
int main () {
// Deklarasi variabel
int i, a; // i = counter, a = input user
int tabel[7] = {0,3,4,1,2,5,6};
// variabel array
// Input, inisialisasi counter
cin >> a;
// Loop
for (i = 0; i < 9; i++) {
if (a == tabel[i])
// Angka ditemukan
{
cout << \nBilangan anda ditemukan;
break;
}
} // loop selesai apabila I >= 9 atau break
if (i >= 9) // tidak ditemukan, mencapai akhir
{cout << \nBilangan tidak ditemukan !;}
return 0;
}

Bagian looping pada program diatas umumnya disebut


bagian traversal. Karena pada bagian tersebut program
seolah-olah berjalan dan mengecek isi array dari yang paling
pertama sampai yang paling terakhir.
Kasus 4b : Operasi Matriks
Matriks merupakan sekumpulan variabel yang dapat
dioperasikan sesuai dengan indeksnya. Definisi matriks
sangat sesuai dengan definisi array 2 dimensi, karena itu
array juga dapat dioperasikan seperti matriks. Buatlah
program yang mampu melakukan operasi sederhana pada
matriks seperti penjumlahan ! Jumlah matriks yang
digunakan adalah 2 buah matriks dengan ukuran 2x2. Isi dari

pg. 37

matriks merupakan bilangan integer (bebas). Tampilkan hasil


operasi penjumlahan dan pengurangan ke layar user !
Jawab :
Sama seperti kasus sebelumnya, pertama-pertama
kelompokkan informasi yang ada di soal :
1. Terdapat 2 array 2 dimensi dengan ukuran 2x2
2. Isi array merupakan bilangan integer, dibebaskan.
Asumsikan isi array sudah fix.
3. Operasi yang dilakukan adalah penjumlahan antara dua
matrix, kemudian hasil operasi ditampilkan di layar.
Dari informasi yang ada, dibutuhkan empat variabel, yaitu
variabel counter 1, variabel counter 2, variabel matriks 1,
dan variabel matriks 2. Hasil operasi bisa saja dimasukkan
ke variabel baru, namun untuk mempersingkat, akan kita
buat isi program sebagai berikut.
#include <iostream>
using namespace std;
int main () {
// Inisialisasi dan deklarasi variabel
int i,n;
int mat1[2][2] = {{2,3},{5,7}};
int mat2[2][2] = {{1,6},{4,9}};
//Looping untuk baris
for (n=0;n<2;n++){
//Looping untuk kolom
for (i=0;i<2;i++){
//Output ke layar
cout << mat1[n][i]+mat2[n][i] << ;
}
//New line
cout << endl;
}
return 0;
}

pg. 38

Perlu diperhatikan bahwa terdapat 2 buah struktur loop di


dalam program di atas. Hal ini dikarenakan looping dilakukan
satu persatu, pertama looping akan dilakukan pada kolom,
ketika mencapai akhir kolom, baris akan berubah dan
counter kolom akan direset. Hal ini diulang terus menerus
hingga mencapai akhir baris.

pg. 39

Bab VI
Fungsi dan Prosedur

pg. 40

Fungsi dan Prosedur


Setelah belajar mengenai program dan berbagai proses
seperti input output, deklarasi dan operasi variabel, logika
bercabang / if, dan looping, bagian terakhir dari dasar
pemrograman adalah penggunaan fungsi dan prosedur.
Apa itu fungsi ? Fungsi adalah suatu bagian dari program
yang mampu mengerjakan tugas atau operasi tertentu di luar
program utama. Pada dasarnya sebuah prosedur adalah
fungsi, hanya saja prosedur tidak mengembalikan nilai
seperti fungsi.
Sintaks fungsi dalam C++ adalah sebagai berikut :
<tipe data> <nama fungsi> (parameter fungsi)
{
<isi fungsi>
return <nilai balik fungsi>;
}

Pemanggilan fungsi di dalam program cukup dengan


mendeklarasikan nama fungsi dan variabel yang digunakan
sebagai parameter fungsi. Pastikan variabel yang digunakan
memiliki tipe yang cocok dengan parameter fungsi. Prosedur
memiliki sintaks sama, hanya saja pada bagian <tipe data>
diisi dengan void dan tidak perlu ada sintaks return.

Variabel Lokal
Dengan adanya fungsi, variabel dibagi menjadi 2 yaitu
variabel lokal dan global. Variabel lokal adalah variabel yang
nilainya hanya berlaku di dalam fungsi tersebut. Variabel
lokal akan dihapus nilainya setelah fungsi selesai. Variabel
pg. 41

global, sebaliknya merupakan variabel yang berlaku di dalam


program. Variabel global bisa saja diubah atau dioperasikan
nilainya oleh sebuah fungsi. Tetapi, sebuah fungsi ada
baiknya hanya mengoperasikan parameter dan variabel
lokalnya ketika fungsi tersebut berjalan.
Pendeklarasian dan inisialisasi variabel lokal sama seperti
variabel global. Perbedaannya, variabel lokal dideklarasikan
di bawah fungsi tertentu.

Fungsi Rekursif
Terdapat salah satu trik yaitu penggunaan fungsi rekursif.
Rekursif berarti fungsi tersebut memanggil dirinya sendiri
terus menerus sampai suatu syarat tercapai. Fungsi rekursif
tidak banyak digunakan dalam pemrograman dasar karena
sedikit kompleks.
Untuk memahami lebih jauh mengenai penggunaan fungsi
dan prosedur dalam C, simak contoh kasus berikut ini.
Kasus 5a : Persamaan Posisi, Percepatan, dan Kecepatan
Pada ilmu fisika, terdapat suatu fungsi yang digunakan untuk
mencari posisi, percepatan, dan kecepatan dari suatu objek.
Fungsi ini biasa disebut persamaan Newton yang umumnya
dideklarasikan sebagai berikut :
vt = v0 + a. t
1
x = v0 . t + at 2
2
Fungsi akan terlalu panjang apabila ditulis dalam satu
program. Untuk itu, buatlah program yang menerima
pg. 42

masukan dari user berupa nilai kecepatan awal, percepatan,


dan waktu dengan tipe float, kemudian menampilkan nilai
kecepatan akhir dan jarak. Perhitungan kecepatan akhir,
jarak, dan penampilan hasil akhir berada pada fungsi dan
prosedur terpisah yang terdefinisi sebagai berikut.
float countpos (float v, float a, float t)
// Fungsi countpos menghitung posisi objek dengan
// kecepatan v, percepatan a, dan pada waktu t
float countvelocity(float v, float a, float t)
// Fungsi countvelocity menghitung kecepatan akhir
// objek dengan kecepatan v, percepatan a, dan waktu t
void showresult(float velo, float pos)
// Prosedur showresult menampilkan hasil perhitungan
// 2 fungsi sebelumnya ke layar

Jawab :
Seperti biasa, kelompokkan terlebih dahulu informasi yang
diperoleh dari soal seperti berikut.
1. Terdapat 3 variabel dengan tipe float yang diinput oleh
user yaitu variabel kecepatan, percepatan, dan waktu.
2. 2 Variabel hasil yaitu posisi dan kecepatan akhir.
3. Terdapat 2 fungsi dan 1 prosedur yaitu countpos,
countvelocity, dan showresult.
4. Persamaan untuk kedua fungsi didefinisikan dalam soal.
Dari hal-hal tersebut, program dapat dibuat seperti berikut.
Perlu diperhatikan bahwa penambahan jumlah variabel
untuk menyimpan nilai posisi dan kecepatan akhir tidak
bersifat wajib.
#include <iostream>
using namespace std;
// Deklarasi fungsi
float countpos (float v, float a, float t)

pg. 43

{
// Deklarasi variabel lokal
float position;
// Proses
position = v*t + (0.5*v*t*t);
// Kembalikan nilai position
return position;
}
float countvelocity (float v, float a, float t)
{
// Deklarasi variabel lokal
float velo;
// Proses
velo = v + a*t;
// Kembalikan nilai kecepatan / velo
return velo;
}
void showresult (float velo, float pos)
{
// Proses, variabel lokal tidak dibutuhkan
cout << Posisi benda adalah pada << pos << meter <<
endl;
cout << Kecepatan akhir benda adalah << velo << meter per
sekon << endl;
}
// Program utama
int main ()
{
// Deklarasi variabel
float a,v,t;
float finalvelo, finalpos;
// Proses
cout << Masukkan
cin >> v; cout <<
cout << Masukkan
cin >> a; cout <<
cout << Masukkan
cin >> t; cout <<

nilai kecepatan : ;
endl;
nilai percepatan : ;
endl;
nilai waktu : ;
endl;

// Lakukan perhitungan dan assign nilai

pg. 44

finalvelo = countvelocity(v,a,t);
finalpos = countposition(v,a,t);
// Tampilkan dengan showresult
showresult(finalvelo, finalpos);
return 0;
}

pg. 45

Anda mungkin juga menyukai