Anda di halaman 1dari 26

TKD1205 Pemrograman Komputer RM

Mingguke9,10&11
PERNYATAANPENGUJIANDANPENGULANGAN

PENDAHULUAN

1. Deskripsi singkat
Pada minggu ini dipelajari beberapa pernyataan pada C++ yang digunakan untuk
operasi pengujian dan pengulangan (looping). Secara berturutan, dipelajari
terlebih dulu pengertian dan penggunaan pernyataan majemuk yang akan sering
dijumpai pada pernyataan pengujian dan pengulangan serta pernyataan goto
yang digunakan untuk meloncati beberapa pernyataan. Beberapa pernyataan
pengujian yang akan dipelajari meliputi: pernyataan if, if... else..., dan nested-if.
Sedangkan beberapa pernyataan pengulangan yang akan dipelajari meliputi:
pernyataan while, do-while, for, nested-for, dan break. Semua hal tersebut
dipraktekkan dengan membuat program yang dilakukan baik di kelas maupun di
lab. Komputer.

2. Manfaat, relevansi
Ada kalanya pernyataan-pernyataan yang terdapat di dalam sebuah program tidak
harus dieksekusi secara urut dari atas ke bawah (sequential). Sering kali sebuah
atau beberapa pernyataan dieksekusi secara berulang-ulang. Ada juga sebuah
pernyataan baru akan dieksekusi jika hasil pengujian terhadap pernyataan
sebelumnya bernilai benar, tetapi jika salah maka pernyataan tersebut tidak akan
dieksekusi. Bahkan ada pula beberapa pernyataan yang tidak dieksekusi sama
sekali karena adanya suatu pernyataan yang diminta untuk meloncati beberapa
pernyataan tersebut. Semua hal tersebut, di dalam bahasa pemrograman dikenal
dengan istilah pernyataan kendali yang meliputi pernyataan pengujian dan
pengulangan. Dengan mengenali dan menguasai karakteristik dari pernyataan
kendali tersebut, seorang programmer akan dapat menyusun program aplikasi
yang lebih kompleks dengan tetap berdasar pada algoritma yang benar, logik dan
terstruktur.

3. Learning Outcomes
Kognitif:
Menjelaskan dan menunjukkan prosedur penggunaan pernyataan pengujian dan
pernyataan pengulangan/berkalang (looping) dalam sebuah program, serta dapat
mengidentifikasi kesalahan yang terjadi.

Psikomotorik:
Mengaplikasikan pernyataan kendali (proses pengujian dan pengulangan/
berkalang) dalam pembuatan sebuah program.

Afektif:
Dapat bekerja dalam sebuah kelompok, dan mendiskusikan hasil kerjanya, serta
berpikir logis dan terstruktur.

Program Studi Teknik Geodesi dan Geomatika FT-UGM 1


TKD1205 Pemrograman Komputer RM

PENYAJIAN

1. Pernyataan Majemuk
Beberapa pernyataan (statements) yang telah dipelajari pada minggu-
minggu sebelumnya adalah meliputi pernyataan deklarasi/definisi dan pernyataan
ungkapan. Pernyataan deklarasi digunakan untuk mendefinisikan nama variabel
beserta tipe datanya. Contoh:
double jarak;
Pernyataan ungkapan biasanya digunakan untuk memberikan nilai kepada suatu
variabel atau pemanggilan fungsi. Contoh:
bil1 = 100;
bil1++;
Pernyataan majemuk sering disebut dengan istilah blok, yaitu sejumlah
pernyataan yang berada di dalam kurung kurawal { }. Contoh:
{
bil2 = 10;
bil2++;
}
Ketentuan penting yang terkait dengan blok adalah, bahwa suatu pengenal
yang didefinisikan di dalam sebuah blok, maka hanya dikenal di dalam blok itu
saja. Sebagai contoh perhatikan Program 1.1 berikut ini.

Program 1.1

// *------------------------------------*
// * Contoh pemakaian variabel yang *
// * dideklarasikan di dalam suatu blok *
// *------------------------------------*

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

void main()
{
clrscr();

int bil = 25;


cout << "Nilai bilangan dalam blok ini = " << bil << endl;

{
int bil = 575; // bil hanya dikenal dalam blok ini
cout << "Nilai bilangan dalam blok ini = " << bil << endl;
}

cout << "Nilai bilangan dalam blok ini = " << bil << endl;
}

Akhir Program

Pernyataan majemuk akan sering dijumpai pada pernyataan pengujian dan


pengulangan.

Program Studi Teknik Geodesi dan Geomatika FT-UGM 2


TKD1205 Pemrograman Komputer RM

2. Pernyataan Goto
Pernyataan goto digunakan untuk melompatkan proses eksekusi, sehingga
komputer melaksanakan eksekusi tidak dengan urutan yang normal (tidak urut).
Syntax-nya adalah:
goto label;
label:
pernyataan;
Dalam hal ini, label berupa suatu goto hitung;
pengenal (namanya mengikuti
aturan nama pengenal).
Ilustrasi penggunaan pernyataan
goto dapat dilihat pada Gambar 1. hitung:
Program 2.1 berikut menunjukkan
akibat penggunaan pernyataan
goto.

Gambar 1. Ilustrasi goto

Program 2.1
// *-----------------------*
// * Contoh pemakaian goto *
// *-----------------------*

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

void main()
{
int panjang = 10,
lebar = 5;
int luas, keliling;

clrscr();

cout << "Menghitung luas dan keliling segiempat" << endl;


goto hitung;

luas = panjang * lebar;


cout << "\nLuas segiempat = " << luas << endl;

hitung:
keliling = 2 * (panjang + lebar);
cout << "\nKeliling segiempat = " << keliling << endl;
}

Akhir Program

Jika program di atas dieksekusi, adakah pernyataan-pernyataan yang


ternyata tidak dijalankan? Dalam pembuatan program yang baik dan terstruktur,
pemakaian goto sebaiknya dihindari, karena akan membuat program menjadi
rumit untuk dipahami.

Program Studi Teknik Geodesi dan Geomatika FT-UGM 3


TKD1205 Pemrograman Komputer RM

3. Pernyataan Pengujian
Pernyataan pengujian digunakan untuk melakukan pengetesan terhadap
suatu kondisi yang akan menghasilkan dua buah kemungkinan, yaitu kondisi yang
dites bernilai benar atau salah. Keduanya akan menentukan pernyataan-
pernyataan mana yang akan dipilih untuk dieksekusi. Oleh karena itu terdapat
kemungkinan adanya beberapa pernyataan yang tidak akan dieksekusi. Untuk
melakukan proses pengujian terhadap suatu kondisi, dapat melibatkan operator
relasi (==, <, >, !=) atapun operator logika (&&, ||, !) yang telah dijelaskan pada
Minggu ke 5 & 6.

a. Pernyataan if
Syntax pernyataan if adalah:
if(kondisi)
pernyataan;
kondisi menyatakan pembandingan
antara 2 variabel atau salah satu salah
kondisi
dapat berupa konstanta, dimana
A > 20
operator relasi atau logika digunakan
?
pernyataan dapat berupa sebuah
pernyataan ataupun pernyataan
majemuk, yang akan dijalankan jika
kondisi yang dites bernilai benar benar
Ilustrasi pernyataan if dapat dilihat pernyataan
pada Gambar 2, dan Program 3.1 mis: cetak A
menunjukkan penggunaan
pernyataan if tersebut.

Gambar 2. Ilustrasi pernyataan if

Program 3.1
// *-------------------------------------*
// * Contoh pernyataan if yang sederhana *
// *-------------------------------------*

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

void main()
{
int bil;

clrscr();

cout << "Masukkan suatu bilangan bulat : ";


cin >> bil;

Program Studi Teknik Geodesi dan Geomatika FT-UGM 4


TKD1205 Pemrograman Komputer RM

if (bil > 20) // Perhatikan tidak pakai titik koma (;)


{
cout << "\nBilangan yang anda masukkan = " << bil << endl;
cout << "Berarti lebih besar dari 20" << endl;
}

cout << "\nProgram selesai" << endl;


}

Akhir Program

Perhatikan Program 3.2 yang merupakan modifikasi dari Program 3.1.

Program 3.2
// *-------------------------------------*
// * Contoh pernyataan if yang sederhana *
// * modifikasi dari program sebelumnya *
// *-------------------------------------*

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

void main()
{
int bil;
int bilangan_1 = 10;

clrscr();

cout << "Masukkan suatu bilangan bulat : ";


cin >> bil;

if (bil > 20) // Perhatikan tidak pakai titik koma (;)


{
bilangan_1 = bil * 5;
cout << "\nBilangan yang anda masukkan = " << bil << endl;
cout << "Berarti lebih besar dari 20" << endl;
cout << "dan Hasil kalinya dengan 5 = " << bilangan_1 << endl;
}

cout << "\nNilai bilangan 1 = " << bilangan_1 << endl;


cout << "\nProgram selesai" << endl;
}

Akhir Program

Jika pada Program 3.2 di atas, pernyataan yang berada di dalam blok:
bilangan_1 = bil * 5;
diganti dengan pernyataan:
int bilangan_1 = bil * 5;
apakah output-nya masih sama dengan output Program 3.2? Jelaskan kenapa!

b. Pernyataan if ... else ...


Syntax pernyataan if ... else adalah:

Program Studi Teknik Geodesi dan Geomatika FT-UGM 5


TKD1205 Pemrograman Komputer RM

if (kondisi)
pernyataan1;
else
pernyataan2;
pernyataan1 akan dijalankan jika kondisi yang dites benar
pernyataan2 akan dijalankan jika kondisi yang dites salah
Ilustrasi pernyataan if ... else ... dapat dilihat pada Gambar 3.

benar kondisi salah


A > 20
?

pernyataan1 pernyataan2

Gambar 3. Ilustrasi pernyataan if ... else ...

Pernyataan1 pada if dan pernyataan2 pada else dapat berupa pernyataan


tunggal ataupun majemuk, sehingga kemungkinan yang lain selain syntax
di atas:
Kemungkinan 2:
if(kondisi)
pernyataan1;
else
{
pernyataan21;
pernyataan22;
...
}

Kemungkinan 3:
if(kondisi)
{
pernyataan11;
pernyataan12;

Program Studi Teknik Geodesi dan Geomatika FT-UGM 6


TKD1205 Pemrograman Komputer RM

...
}
else
pernyataan2;

Kemungkinan 4:
if(kondisi)
{
pernyataan11;
pernyataan12;
...
}
else
{
pernyataan21;
pernyataan22;
...
}

Program 3.3
// *--------------------------------------*
// * Contoh pernyataan if else *
// * modifikasi dari program if sederhana *
// *--------------------------------------*

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

void main()
{
int bil;

clrscr();

cout << "Masukkan suatu bilangan bulat : ";


cin >> bil;

if (bil > 20) // Perhatikan tidak pakai titik koma (;)


{
cout << "\nBilangan yang anda masukkan = " << bil << endl;
cout << "Berarti lebih besar dari 20" << endl;
}
else
{
cout << "\nBilangan yang anda masukkan = " << bil << endl;
cout << "Berarti lebih kecil dari 20" << endl;
}

cout << "\nProgram selesai" << endl;


}

Akhir Program

Program Studi Teknik Geodesi dan Geomatika FT-UGM 7


TKD1205 Pemrograman Komputer RM

c. Pernyataan if di dalam if (if bersarang atau nested-if)


Syntax-nya adalah:
if (kondisi1)
pernyataan1;
else if (kondisi2)
pernyataan2;
else if (kondisi3)
pernyataan3;
else if (kondisiM)
pernyataanM;
else /* opsional */
pernyataanN; /* opsional */

Ilustrasi pernyataan if bersarang dapat dilihat pada Gambar 4.

salah salah salah


kondisi1 kondisi2 kondisiM

benar benar benar

pernyataan1 pernyataan2 pernyataanM pernyataanN

Gambar 4. Ilustrasi pernyataan if bersarang

Pernyataan1, pernyataan2, dst., dapat juga berupa pernyataan majemuk,


yang berarti terdiri atas beberapa pernyataan yang diletakkan dalam blok.

Program 3.4
// *-----------------------------*
// * Contoh program if berkalang *
// * untuk meng-konversi nilai *
// *-----------------------------*

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

void main()
{

Program Studi Teknik Geodesi dan Geomatika FT-UGM 8


TKD1205 Pemrograman Komputer RM

float nil_angka;
char nil_huruf;

clrscr();
cout << "Konversi Nilai Angka ke Nilai Huruf" << endl;
cout << ">= 85 : A >= 70 - < 85 : B >= 55 - < 70 : C"
<< endl;
cout << ">= 40 - < 55 : D < 40 : E" << endl;

cout << "\nMasukkan nilai angka yang akan dikonversi : ";


cin >> nil_angka;

if (nil_angka >= 85)


nil_huruf = 'A';
else if (nil_angka >= 70)
nil_huruf = 'B';
else if (nil_angka >= 55)
nil_huruf = 'C';
else if (nil_angka >= 40)
nil_huruf = 'D';
else
nil_huruf = 'E';

cout << "\nHasil konversi nilai angka " << nil_angka


<< " dalam huruf adalah = " << nil_huruf << endl;
}

Akhir Program

Program 3.5 berikut ini merupakan contoh penggunaan operator logika


pada pernyataan if.

Program 3.5
// *----------------------------------*
// * Contoh pemakaian operator logika *
// * pada pernyataan if *
// *----------------------------------*

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

void main()
{
float x, y;

clrscr();

cout << "Masukkan 2 buah bilangan positif atau negatif" << endl;
cout << "Nilai x = ";
cin >> x;
cout << "Nilai y = ";
cin >> y;

if ((x >= 0) && (y >= 0))


cout << "\nKedua bilangan yang anda masukkan semuanya positif"
<< endl;
else if ((x < 0) && (y < 0))

Program Studi Teknik Geodesi dan Geomatika FT-UGM 9


TKD1205 Pemrograman Komputer RM

cout << "\nKedua bilangan yang anda masukkan semuanya negatif"


<< endl;
else
cout << "\nSalah satu dari 2 bilangan tersebut ada yang negatif"
<< endl;
}

Akhir Program

4. Pernyataan Pengulangan
Sesuai namanya, pernyataan pengulangan (berkalang) dimaksudkan untuk
menjalankan sebuah atau beberapa pernyataan beberapa kali sebanyak yang
diinginkan oleh program.
a. Pernyataan while
Syntax-nya adalah:
while (ungkapan)
pernyataan;
Bagian pernyataan dapat juga berupa pernyataan majemuk, sehingga
syntax-nya menjadi:
while (ungkapan)
{
pernyataan1;
pernyataan2;
...
pernyataanN;
}
Bagian pernyataan akan dieksekusi secara berulang, selama ungkapan
pada while bernilai benar ( 0). Mengingat pengujian terhadap ungkapan
pada while dilakukan sebelum bagian pernyataan, maka ada kemungkinan
bagian pernyataan pada while tidak akan dijalankan sama sekali, yaitu jika
ungkapan yang dites bernilai salah. Ilustrasi pernyataan while dapat dilihat
pada Gambar 5.

benar
ungkapan pernyataan

salah

akhir while

Gambar 5. Ilustrasi pernyataan while

Program Studi Teknik Geodesi dan Geomatika FT-UGM 10


TKD1205 Pemrograman Komputer RM

Program 4.1
// *-----------------------------------------*
// * Contoh pemakaian while untuk *
// * menghitung rata-rata dari sejumlah data *
// *-----------------------------------------*

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

void main()
{
int banyak_data, pencacah;
float nilai, jumlah;

clrscr();

cout << "Program menghitung nilai rata-rata" << endl;


cout << "\nBanyaknya data = ";
cin >> banyak_data;

pencacah = 1; // mula-mula diisi dengan satu


jumlah = 0; // sementara variabel jumlah diisi nol

while (pencacah <= banyak_data) // Perhatikan tidak pakai titik


// koma
{
cout << "Untuk data ke " << pencacah
<< ", masukkan nilainya = ";
cin >> nilai;

jumlah += nilai; // identik dengan jumlah = jumlah + nilai


pencacah++; // pencacah dinaikkan 1
}

cout << "\nNilai rata-ratanya = " << jumlah / banyak_data << endl;
}

Akhir Program

b. Pernyataan do-while
Syntax-nya adalah:
do
{
pernyataan1;
pernyataan2;

pernyataanN;
} while (ungkapan);
Bagian pernyataan1 sampai pernyataanN akan dijalankan secara
berulang sampai ungkapan bernilai salah (= 0). Namun berbeda dengan
pernyataan while, mengingat pengujian terhadap ungkapan dilakukan
setelah bagian pernyataan, maka bagian pernyataan pada do-while
minimal akan dijalankan satu kali. Ilustrasi pernyataan do-while dapat

Program Studi Teknik Geodesi dan Geomatika FT-UGM 11


TKD1205 Pemrograman Komputer RM

dilihat pada Gambar 6.

pernyataan

benar
ungkapan

salah

akhir do-while

Gambar 6. Ilustrasi pernyataan do-while

Perhatikan Program 4.2 dan Program 4.3 berikut, yang keduanya akan
menampilkan tulisan Selamat Belajar C++ lebih dari satu kali. Berapa kali
tulisan tersebut akan dimunculkan oleh kedua program? Sama tidak
jumlahnya?

Program 4.2
// *--------------------------------------------------*
// * Contoh pemakaian while untuk menampilkan tulisan *
// * Selamat Belajar C++ lebih dari satu kali *
// *--------------------------------------------------*

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

void main()
{
int i;

clrscr();

i = 1; // mula-mula diisi 1

while (i <= 10)


{
cout << "Selamat Belajar C++" << endl;
i++; // pencacah i dinaikkan 1, identik dengan i = i + 1
}
}

Akhir Program

Program Studi Teknik Geodesi dan Geomatika FT-UGM 12


TKD1205 Pemrograman Komputer RM

Program 4.3
// *-----------------------------------------------------*
// * Contoh pemakaian do-while untuk menampilkan tulisan *
// * Selamat Belajar C++ lebih dari satu kali *
// *-----------------------------------------------------*

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

void main()
{
int i;

clrscr();

i = 1; // mula-mula diisi 1

do
{
cout << "Selamat Belajar C++" << endl;
i++; // pencacah i dinaikkan 1
} while (i <= 10);
}

Akhir Program

c. Pernyataan for
Syntax-nya adalah:
for (ungkapan1; ungkapan2; ungkapan3)
pernyataan;
Bagian pernyataan dapat juga berupa pernyataan majemuk, sehingga
syntax-nya menjadi:
for (ungkapan1; ungkapan2; ungkapan3)
{
pernyataan1;
pernyataan2;
pernyataan3;
}
ungkapan1 berisi variabel pencacah dengan suatu konstanta atau
ekspresi yang menyatakan batas awal pengulangan
ungkapan2 berisi variabel pencacah dengan suatu konstanta atau
ekspresi yang menyatakan batas akhir pengulangan
ungkapan3 mengatur penambahan pencacah
pernyataan menunjukkan proses yang akan dijalankan secara berulang
Contoh:
for (i = 1; i <= 10; i++) pencacah i akan berjalan mulai
dari 1 sampai 10 dengan
kenaikan 1. Artinya pernyataan
dalam kalang akan dikerjakan
sebanyak 10 kali

Program Studi Teknik Geodesi dan Geomatika FT-UGM 13


TKD1205 Pemrograman Komputer RM

for (j = 0; i <= 10; j+=3) pencacah j akan berjalan mulai


dari 0 sampai 10 dengan
kenaikan 3. Jadi pencacah j akan
berharga mulai dari 0, 3, 6, dan 9
for (n = 10; n >= 0; n-=2) pencacah n akan berjalan mulai
dari 10, 8, 6, dan seterusnya
sampai 0

Perhatikan Program 4.4 dan 4.5 berikut yang menunjukkan contoh


program pemakaian pernyataan for, dan merupakan modifikasi dari
pemakaian pernyataan while pada Program 4.1 dan 4.2, serta pernyataan
do-while pada Program 4.3.

Program 4.4
// *-------------------------------------------------*
// * Contoh pemakaian for untuk menghitung rata-rata *
// * modifikasi dari program sebelumnya : while *
// *-------------------------------------------------*

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

void main()
{
int banyak_data, pencacah;
float nilai, jumlah;

clrscr();

cout << "Program menghitung nilai rata-rata" << endl;


cout << "\nBanyaknya data = ";
cin >> banyak_data;

jumlah = 0; // mula-mula variabel jumlah diisi nol

for (pencacah = 1; pencacah <= banyak_data; pencacah++)


{
cout << "Untuk data ke " << pencacah
<< ", masukkan nilainya = ";
cin >> nilai;

jumlah += nilai; // identik dengan jumlah = jumlah + nilai


} // akhir dari for

cout << "\nNilai rata-ratanya = " << jumlah / banyak_data << endl;
}

Akhir Program

Program 4.5
// *------------------------------------------------*
// * Contoh pemakaian for untuk menampilkan tulisan *

Program Studi Teknik Geodesi dan Geomatika FT-UGM 14


TKD1205 Pemrograman Komputer RM

// * Selamat Belajar C++ sebanyak 10 kali, *


// * bandingkan dengan while & do-while *
// *------------------------------------------------*

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

void main()
{
int i;

clrscr();

for (i = 1; i <= 10; i++) // pada ungkapan2 tidak boleh i = 10


cout << "Selamat Belajar C++" << endl;
cout << "\nProgram selesai" << endl;
}

Akhir Program

d. Pernyataan for bersarang (nested-for)


Di dalam kalang (looping) diperbolehkan adanya kalang lain, artinya
terdapat pernyataan for yang juga berada di dalam pernyataan for. Inilah
yang dinamakan nested-for. Urutan pengerjaannya, harus dimulai dari
kalang yang paling dalam, artinya proses pengulangan pada kalang dalam
diselesaikan dulu, baru kemudian pada kalang luar.
Ada suatu aturan dalam pernyataan for bersarang yang tidak boleh
dilanggar, yaitu bahwa kalang-kalang yang terlibat di dalamnya tidak boleh
saling berpotongan satu sama lain, seperti diilustrasikan pada Gambar 7.

Operasi nested for yang tidak


Operasi nested for yang
diperbolehkan, karena ada ka-
diperbolehkan
lang yang saling berpotongan

Gambar 7. Ilustrasi aturan nested-for

Program 4.6
// *------------------------------*
// * Contoh pernyataan nested for *

Program Studi Teknik Geodesi dan Geomatika FT-UGM 15


TKD1205 Pemrograman Komputer RM

// *------------------------------*

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

void main()
{
int i, j; // pencacah yang digunakan

clrscr();

for (i = 1; i <= 3; i++)


{
cout << "Untuk i = " << i << " --> kalang luar" << endl;
for (j = 1; j <= 2; j++)
{
cout << " maka j = " << j << " --> kalang dalam" << endl;
} // akhir dari for j (kalang dalam)
cout << "---------------------------------" << endl;
} // akhir dari for i (kalang luar)
}

Akhir Program

e. Pernyataan break
Pernyataan break digunakan untuk loncat keluar dari proses berulang
(looping) yang telah dinyatakan pada pernyataan while, do-while, dan for.
Aturan terkait dengan eksekusi loncat ke dalam ataupun keluar dari kalang
dapat dilihat pada Gambar 8.

Pernyataan masuk

Pernyataan
keluar

Eksekusi loncat ke
Eksekusi loncat keluar
dalam kalang tidak
dari kalang diperbolehkan
diperbolehkan

Gambar 8. Aturan eksekusi loncat pada kalang

Gambar 9 memperlihatkan ilustrasi pernyataan break yang digunakan


untuk meloncat dari pernyataan for.

Program Studi Teknik Geodesi dan Geomatika FT-UGM 16


TKD1205 Pemrograman Komputer RM

for (; ; )
{
...

if ()
break;


} // akhir for

cout << Selesai


<< endl;

Gambar 9. Ilustrasi pernyataan break pada pernyataan for

Perhatikan Program 4.7 dan Program 4.8 berikut ini, yang menunjukkan
pemakaian pernyataan break pada pernyataan while dan for. Apakah hasil
keluaran (output) kedua program tersebut sama? Jelaskan!

Program 4.7
// *------------------------*
// * Contoh efek break pada *
// * pernyataan while *
// *------------------------*

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

void main()
{
int i;

clrscr();

i = 1; // mula-mula diisi 1

while (i <= 10)


{
if (i == 5) // perhatikan operator relasi sama dengan
break;
cout << "Selamat Belajar C++" << endl;
i++; // pencacah i dinaikkan 1, identik dengan i = i + 1
}
}

Akhir Program

Program Studi Teknik Geodesi dan Geomatika FT-UGM 17


TKD1205 Pemrograman Komputer RM

Program 4.8
// *------------------------*
// * Contoh efek break pada *
// * pernyataan for *
// *------------------------*

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

void main()
{
int i;

clrscr();

for (i = 1; i <= 10; i++)


{
if (i > 5)
break;
cout << "Selamat Belajar C++" << endl;
}
}

Akhir Program

5. Aktivitas
Ada dua jenis aktivitas yang dikerjakan mahasiswa terkait dengan materi
yang diberikan pada minggu ke 9, 10 & 11 ini, yaitu:
a. Klasikal, yang meliputi:
Diskusi kelompok
Mengerjakan quiz
Mengerjakan tugas
b. Praktikum di Lab. Komputer, dapat mengerjakan materi tugas

6. Tugas
a. Amati semua program yang telah diberikan di atas.
i. Selidiki dan identifikasi jika ada kesalahan.
ii. Tanpa harus mengkompilasi program-program tersebut terlebih dulu,
tuliskan output dari program-program tersebut.
iii. Eksekusilah program-program tersebut, dan bandingkan output yang
diperoleh dengan prakiraan output yang telah Anda lakukan pada
butir ii. Jika tidak sama, jelaskan mengapa?
b. Buatlah program dengan C++ untuk:
i. Menentukan bilangan genap atau ganjil dari suatu masukan bilangan
bulat (gunakan cin untuk input data).
ii. Menentukan bilangan terbesar dari dua buah bilangan bulat
(gunakan cin untuk input data). Petunjuk: lihat diagram alir Gambar
5, materi Algoritma dan Diagram Alir yang diberikan pada Minggu 4.
iii. Menentukan predikat kelulusan berdasarkan atas masukan nilai IPK
(gunakan cin untuk input data), dengan menguji terlebih dulu nilai
IPK, yaitu:

Program Studi Teknik Geodesi dan Geomatika FT-UGM 18


TKD1205 Pemrograman Komputer RM

Jika IPK < 2.00, tulis Predikat Gagal


Jika 2.00 IPK 2.75, tulis Predikat Memuaskan
Jika 2.75 < IPK 3.50, tulis Predikat Sangat Memuaskan
Jika 3.50 < IPK 4.00, tulis Predikat Cum Laude
iv. Diagram alir berikut:
Mulai

Input A, B

C=AxB

Tidak
C < 20 Input A, B

Ya

A>B

Tidak
Ya
A=B A=C

Cetak A, B

Selesai
v. Menghitung akar persamaan kuadrat: ax2 + bx + c, yang diketahui
koefisien-koefisien persamaannya (a, b, dan c gunakan cin)
dengan menguji terlebih dulu harga deskriminannya, yaitu:
Jika deskriminan > 0, ada dua akar berlainan
Jika deskriminan = 0, ada satu akar (akar kembar)
Jika deskriminan < 0, cukup ditulis akar imajiner
vi. Memodifikasi Program 4.1 di atas dengan menggunakan pernyataan
do-while.
vii. Mengkonversi suhu dalam derajad Celcius (C) ke dalam derajad
Reamur (R) dan Fahrenheit (F) mulai dari 5o C sampai 100o C
dengan kenaikan 5o. Diberikan rumus konversinya sebagai berikut:
R = 4/5 x C
F = 9/5 x C + 32
Gunakan pernyataan while, do-while, maupun for.
viii. Menghitung 1/2 + 2/3 + 3/4 + 4/5 + ... + 99/100, baik menggunakan

Program Studi Teknik Geodesi dan Geomatika FT-UGM 19


TKD1205 Pemrograman Komputer RM

pernyataan while, do-while, maupun for.


ix. Menampilkan deret bilangan sebagai berikut dengan menggunakan
pernyataan while, do-while, maupun for.
50000000 5
5000000 50
500000 500
50000 5000
atau
5000 50000
500 500000
50 5000000
5 50000000
x. Mengurutkan bilangan ganjil dari 100 sampai 500 dengan urutan
turun (hasil keluaran ditampilkan urut dari kiri ke kanan, bukan dari
atas ke bawah), menghitung jumlah dan nilai rata-ratanya, baik
menggunakan pernyataan while, do-while, maupun for.
xi. Menghitung nilai faktorial dari bilangan 2 sampai 10, baik
menggunakan pernyataan while, do-while, maupun for.
xii. Menampilkan bilangan prima dari 1 sampai 100.

7. Rangkuman
Dalam pembuatan sebuah program yang sudah kompleks, sering kali
terdapat pernyataan-pernyataan yang memang disusun sedemikian rupa agar
nantinya ketika program tersebut dijalankan, pernyataan-pernyataan yang ada di
dalam program tersebut tidak harus dieksekusi secara urut dari atas ke bawah
(sequential). Pernyataan seperti itu dinamakan dengan pernyataan kendali. Salah
satu pernyataan kendali yang dapat digunakan untuk meloncati beberapa
pernyataan yang lain adalah pernyataan goto. Pernyataan kendali yang lain
adalah berupa pernyataan pengujian dan pengulangan (kalang/looping).
Pernyataan pengujian digunakan untuk menguji suatu kondisi, yang akan
menghasilkan dua buah kemungkinan eksekusi, tergantung dari kondisi yang diuji
apakah bernilai benar ( 0) atau salah (= 0). Pernyataan pengujian ini meliputi
pernyataan if, if ... else ..., dan if bersarang (nested-if).
Pernyataan pengulangan digunakan untuk menjalankan sebuah atau
beberapa pernyataan berulang kali selama kondisinya benar. Pernyataan
pengulangan ini meliputi pernyataan while, do-while, for, dan for bersarang
(nested-for). Pernyataan break sering kali digunakan untuk meloncat keluar dari
pernyataan kalang tersebut.
Di dalam penggunaannya, baik pada pernyataan pengujian maupun
pengulangan, sering kali dijumpai adanya pernyataan majemuk. Pernyataan
majemuk adalah sejumlah pernyataan yang diletakkan diantara tanda kurung
kurawal { }.

PENUTUP

Tes Formatif
1. Bolehkan penulisan pernyataan for seperti berikut ini? Jelaskan!
for (int i = 0; i <= 100, i+=2)

Program Studi Teknik Geodesi dan Geomatika FT-UGM 20


TKD1205 Pemrograman Komputer RM

2. Diberikan sebuah program sebagai berikut:


line statement
1 #include <iostream.h>
2 #include <conio.h>
3 void main()
4 {
5 int p = 4, q = 5, n = 2;
6 int r;
7 clrscr();
8 r = p * q;
9 if (r = 20)
10 p = 10, q = 20;
11 if (p < 5);
12 p == q;
13 else;
14 p = r;
15 for (int a = 1, a <= 3, a++);
16 {
17 n += a;
18 n += 3;
19 }
20 cout << p << " " << q << endl;
21 cout << "N = " << n;
22 }
a. Program di atas masih mengandung 5 kesalahan, sebutkan pada baris
berapa saja dan tuliskan pembetulannya.
b. Jika program di atas sudah menjadi benar, tuliskan output-nya.
3. Jika variabel i dan c bertipe int, maka statement dalam bahasa C++ :
for(i = 10; i <= 20; i++)
{
c = i * 2;
if (c > 30)
break;
}
cout << i << " " << c << endl;
akan memberikan hasil/output :
4. Jika variabel a dan b bertipe int, maka statement dalam bahasa C++ :
int i = 2;
do
{
a = 2 * i;
b = i * a;
i += 3;
} while (i <= 10);
cout << a << " " << b << endl;
akan memberikan hasil/output :

Jawaban Tes Formatif


1. Boleh, terutama penulisan int i = 0 pada pernyataan for tersebut adalah
merupakan suatu bentuk inisialisasi variabel, artinya variabel i dideklarasikan
bertipe int dan kemudian diberi nilai sama dengan 0.
2. a. baris 9, pembetulannya menjadi: if (r == 20)

Program Studi Teknik Geodesi dan Geomatika FT-UGM 21


TKD1205 Pemrograman Komputer RM

baris 11, pembetulannya menjadi: if (p < 5)


baris 12, pembetulannya menjadi: p = q;
baris 13, pembetulannya menjadi: else
baris 15, pembetulannya menjadi: for (int a = 1; a <= 3; a++)
b. Output program tersebut adalah:
20 20
N = 17
3. 16 32
4. 16 128

Petunjuk Penilaian
Mahasiswa dinilai dari hasil quiz (skor 0 100), hasil tugas dan praktikum yang
dilakukan di Lab. Komputer dengan memperhatikan learning outcomes yang telah
disebutkan di atas dan berdasarkan kriteria-kriteria yang ditunjukkan dalam rubrik
penilaian sebagai berikut :
No. Kriteria 1 2 3
Aspek Kognitif
1. Menjelaskan Tidak dapat Hanya dapat Dapat
penggunaan menjelaskan menjelaskan menjelaskan
pernyataan sama sekali penggunaan dengan benar
pengujian (if, if pernyataan dan tepat
... else ..., pengujian if saja penggunaan
nested-if) semua
pernyataan
pengujian
2. Menjelaskan Tidak dapat Hanya dapat Dapat
penggunaan menjelaskan menjelaskan menjelaskan
pernyataan sama sekali penggunaan dengan benar
pengulangan pernyataan dan tepat
(while, do-while, pengujian while, penggunaan
for, nested-for, do-while, dan for semua
break) saja pernyataan
pengulangan
3. Menunjukkan Tidak dapat Dapat Dapat
prosedur menunjukkan menunjukkan menunjukkan
penggunaan sama sekali prosedur prosedur
pernyataan penggunaan penggunaan
pengujian dan pernyataan pernyataan
pengulangan pengujian dan pengujian dan
(looping) dalam pengulangan pengulangan
program-program (looping) pada (looping) pada
yang diberikan sebuah program semua program
tertentu saja, yang diberikan
untuk program dengan benar
yang lain dan tepat
mengalami
kesulitan

Program Studi Teknik Geodesi dan Geomatika FT-UGM 22


TKD1205 Pemrograman Komputer RM

4. Mengidentifikasi Tidak dapat Dapat Dapat


kesalahan yang mengidentifikasi mengidentifikasi mengidentifikasi
terjadi pada adanya adanya sebagian adanya semua
program, terkait kesalahan sama kesalahan, kesalahan, dan
dengan sekali namun belum sekaligus dapat
penggunaan dapat membetulkannya
pernyataan membetulkannya
pengujian dan
pengulangan
(looping)
Aspek Psikomotorik
1. Membuat Tidak dapat Dapat membuat Dapat membuat
program dengan membuat program dengan program
menggunakan program dengan hasil yang benar menggunakan
pernyataan menggunakan hanya untuk semua
pengujian (if, if pernyataan pernyataan pernyataan
... else ..., pengujian sama pengujian if saja, pengujian
nested-if) sekali untuk 2 dengan tepat,
pernyataan serta hasilnya
pengujian yang benar
lain (if ... else ...,
dan nested-if)
hasilnya masih
belum benar
2. Membuat Tidak dapat Dapat membuat Dapat membuat
program dengan membuat program dengan program
menggunakan program dengan hasil yang benar menggunakan
pernyataan menggunakan hanya untuk semua
pengulangan pernyataan salah satu dari pernyataan
(while, do-while, pengulangan pernyataan pengulangan
for, nested-for, sama sekali pengulangan dengan tepat,
break) saja, untuk serta hasilnya
pernyataan benar
pengulangan
yang lain hasilnya
belum benar
3. Membuat Tidak dapat Dapat membuat Dapat membuat
program dengan membuat program dengan program dengan
mengaplikasikan program dengan mengaplikasikan mengaplikasikan
pernyataan mengaplikasikan pernyataan pernyataan
pengujian dan pernyataan pengujian dan pengujian dan
pengulangan pengujian dan pengulangan pengulangan
secara bersama pengulangan secara bersama, secara bersama,
secara bersama namun hasilnya serta hasilnya
masih salah benar

Umpan Balik
Umpan balik dari mahasiswa dapat diperoleh dari tingkat keaktifan mahasiswa
pada saat pelaksanaan diskusi kelompok, hasil quiz dan tugas, serta dari hasil

Program Studi Teknik Geodesi dan Geomatika FT-UGM 23


TKD1205 Pemrograman Komputer RM

praktikum di Lab. Komputer.

Tindak Lanjut
1. Untuk mahasiswa yang tingkat keaktifannya dalam pelaksanaan diskusi
kelompok masih kurang, diharapkan untuk mempelajari terlebih dahulu materi
pada minggu berikutnya dan membuat daftar pertanyaan untuk didiskusikan
pada sesi klasikal minggu tersebut.
2. Untuk mahasiswa yang hasil quiznya masih belum baik, diharapkan untuk
membaca dan mempelajari lagi bahan ajar dan pustaka yang diacu.
3. Untuk mahasiswa yang hasil tugasnya masih belum baik, diharapkan menemui
asisten untuk memperoleh bantuan tutorial/asistensi.
4. Untuk mahasiswa yang hasil praktikumnya masih belum baik, diharapkan
untuk mengulangi kembali materi yang dipraktekkan dengan menggunakan PC
atau laptop milik mereka sendiri di rumah dan dapat menghubungi asisten
untuk memperoleh bantuan asistensi.

Daftar Pustaka
6. Kadir, A., 2003, Pemrograman C++, Penerbit Andi Offset, Yogyakarta.
7. Kadir, A., dan Heriyanto, 2005, Algoritma Pemrograman Menggunakan
C++, Penerbit Andi Offset, Yogyakarta.
8. Lippman, S.B., et all, 2012, C++ Primer, Fifth Edition, Addison-Wesley

Program Studi Teknik Geodesi dan Geomatika FT-UGM 24


TKD1205 Pemrograman Komputer RM

Rencana Kegiatan Pembelajaran Mingguan (RKPM) Minggu ke 9, 10 & 11


Media Ajar
Minggu ke

Lembar Kerja
Soal-Tugas
Presentasi
Laptop/PC
LO (Learning Pokok
Metode Ajar Aktivitas Metode Evaluasi Sumber
Outcomes) yang Bahasan Sub Pokok Bahasan Aktivitas Dosen

Teks

Web
(STAR) Mahasiswa dan Penilaian Ajar
akan dicapai (Topik)

9, Kognitif: Pernyataan a. Pernyataan majemuk - - Klasikal, a. Baca bahan ajar a. Menentukan Quiz Pustaka: 6, 7,
10, Menjelaskan dan pengujian dan b. Pernyataan kendali goto mahasiswa sebelum kuliah kelompok Skoring 0-100 8
11 menunjukkan prosedur pengulangan dan kelemahannya berkelompok b. Diskusi antar b. Menyiapkan dan
penggunaan c. Pernyataan pengujian (if, dan berdiskusi kelompok menjelaskan Tugas: membuat
pernyataan pengujian if... else..., nested-if) (Cooperative c. Mengerjakan materi program dengan
dan pernyataan d. Pernyataan pengulangan learning & tugas c. Fasilitator & bahasa C++ untuk:
pengulangan/berkalang (while, do-while, for, Problem-based evaluator diskusi Proses pengujian
(looping) dalam sebuah nested-for, break) learning) d. Memberikan dengan
program, serta e. Aplikasi program dengan tugas mengambil
mengidentifikasi menggunakan kombinasi e. Membuat soal contoh kasus
kesalahan yang terjadi pernyataan pengujian quiz penentuan
dan pengulangan banyaknya SKS
Afektif: berdasarkan
Dapat bekerja dalam input nilai ip
sebuah kelompok, dan semester
mendiskusikan hasil Menguji nilai
kerjanya, serta berpikir diskriminan dari
logis dan terstruktur suatu persamaan
kuadrat untuk
menghasilkan
nilai akar-
akarnya
Mengurutkan
bilangan ganjil
atau genap
dengan urutan
naik atau turun
dan menghitung

Program Studi Teknik Geodesi dan Geomatika FT-UGM 25


TKD1205 Pemrograman Komputer RM
jumlah serta rata-
ratanya
Menentukan
bilangan prima
Menghitung nilai
faktorial

Tabel rubrik
Kriteria penilaian 1-
3
Psikomotorik: - - - Praktek di lab. Praktek membuat a. Menjelaskan Tabel rubrik
Mengaplikasikan Komputer program dengan materi praktek Kriteria penilaian 1-
pernyataan kendali (setiap menggunakan b. Membimbing 3
(proses pengujian dan mahasiswa pernyataan dan mengawasi
pengulangan/ mendapat 1 PC) pengujian dan pelaksanaan
berkalang) dalam pengulangan praktek bersama
pembuatan sebuah (dapat asisten
program menggunakan
materi tugas yang
diberikan pada saat
perkuliahan)

Program Studi Teknik Geodesi dan Geomatika FT-UGM 26