MODUL II
STATEMENT CONTROL DAN
LOOPING
2.1. TUJUAN PRAKTIKUM
1.
Mahasiswa
bisa membuat program yang memerlukan perulangan.
2.
Mahasiswa
bisa memilih/menentukan statement looping yang paling sesuai dengan
permasalahan yang harus dipecahkan.
3.
Mahasiswa
bisa menentukan statement control yang tepat untuk program
yang dibuat.
2.2. DASAR TEORI
2.2.1 Satement Control
Statement control merupakan sebuah statement yang terdiri dari kondisi – kondisi yang di mana jika
kondisi tersebut terpenuhi, program akan melakukan sesuatu instruksi tertentu.
Jadi dapat dikatakan statement control
merupakan petunjuk arah bagi suatu urutan suatu program.
Dalam bahasa C++
terdapat beberapa jenis statement control
sebagai berikut:
a.
Pola If
Pola ini
merupakan bentuk pola yang paling sederhana karena pemilihan yang dilakukan
hanya satu saja. Jika kondisi benar, maka perintah akan dikerjakan. Jadi,
pemeriksaan kondisi akan berakhir jika ternyata kondisi yang diperiksa salah.
Pada kasus – kasus tertenru pola ini sangat berguna.
Syntax:
if(<kondisi>)<statement_jika_benar>;
|
b.
Pola If
Else
Pada bentuk if else, pemeriksaan kondisi akan
dilakukan seperti dalam perintah if
sebelumnya. Jika kondisi benar, maka perintah akan dijalankan. Namun bentuk ini
juga memberi alternatif lain, yaitu jika kondisi salah, maka bagian else akan dikerjakan. Jadi bentuk ini
pasti akan mengerjakan salah satu bagian dari perintah if atau else, baru
kemudian dilanjutkan ke baris perintah berikutnya.
Syntax:
if(<kondisi>)<statement_jika_benar>;
else<statement_jika_salah>;
|
c.
Pola If
Bersarang
Perintah if di dalam if biasa juga disebut nested
– if atau if bersarang. Perintah
ini memiliki bentuk umum sebagai berikut:
if(<kondisi>){
if(<kondisi>)
<statement_1>;
else
<statement_2>;}
else<statement_lain>;
|
Perintah nested – if juga mempunyai bentuk umum
yang majemuk yang sering disebut if
bertingkat. Bentuk umumnya adalah sebagai berikut:
if(<kondisi
1>){
<statement_benar_1>;
<statement_benar_2>;
<statement_benar_3>;
.
.
.
<statement_benar_n>;}
else
if(<kondisi 2>){
<statement_benar_1>;
<statement_benar_2>;
<statement_benar_3>;
.
.
.
<statement_benar_n>;}
else{
<statement_salah_1>;
<statement_salah_2>;
<statement_salah_3>;
.
.
. <statement_salah_n>;}
|
Bentuk umum di
atas berarti jika kondisi 1 benar, maka statement
benar yang ada pada kondisi 1 akan dikerjakan. Apabila kondisi 1 salah,
maka program akan memeriksa kondisi 2. Jika kondisi 2 benar, maka statement benar yang ada pada kondisi 2
yang akan dikerjakan. Apabila kondisi 2 salah, maka akan dikerjakan statement salah.
d.
Pola Switch
Perintah ini
digunakan sebagai alternatif pengganti dari syntax
if else secara sederhana di mana alternatif pilihan bisa lebih dari
satu. Namun switch tidak bisa
digunakan untuk pilihan yang mengandung kondisi tertentu. Dengan perintah ini
program percabangan akan semakin mudah dibuat dan dipelajari.
Syntax umum:
switch(<variabel>){
case <konstanta_1>: <statement_1>;
break;
case <konstanta_2>: <statement_2>;
break;
default : <statement_default>;
}
|
Karakteristik
perintah switch:
1.
Perintah
switch akan menyeleksi kondisi yang
diberikan dan kemudian membandingkan
hasilnya dengan konstanta – konstanta yang ada di case.
2.
Pembandingan
akan dimulai dari konstanta 1 sampai konstanta terakhir.
3.
Jika
hasil dari kondisi sama dengan nilai konstanta tertentu, misalnya konstanta 1,
maka statement 1 akan dijalankan
sampai ditemukan break.
4.
Pernyataan
break akan membawa proses keluar dari
perintah switch. Jika hasil dari
kondisi tidak ada yang sama dengan konstanta – konstanta yang diberikan,
maka pernyataan pada default akan
dijalankan.[2]
2.2.2 Satement
Looping
Statement
looping atau pengulangan
di mana suatu instruksi dapat dilaksanakan secara terus – menerus tergantung
jumlah pengulangan atau batas pengulangan yang telah ditentukan.
a.
Struktur For
Jenis loop dalam bahasa C++ adalah loop for. For sangat ideal untuk situasi yang memerlukan penghitung karena ekspresinya
sudah built-in (menjadi satu) dengan
memperbarui variabel.
Berikut syntax programnya:
for(inisialisasi_awal;
syarat_perulangan; kondisi)
statement;
|
b.
Struktur While
Bentuk perulangan while dikendalikan oleh syarat tertentu. Pernyataan (statement) dalam while akan dilaksanakan berulangkali selama syarat bernilai benar.
Jika syarat bernilai salah pengulangan tidak akan dilakukan, yang berarti
perulangan selesai.
Berikut syntax programnya:
inisialisasi_awal;
while(syarat_perulangan){
statement;
}
|
c.
Struktur Do While
Bentuk
perulangan do while dikendalikan oleh
syarat tertentu. Pernyataan (statement)
dalam do while akan dilakukan berulangkali
selama syarat bernilai benar. Perbedaan
dengan while yaitu, pada do while statement perulangannya dilakukan terlebih dahulu baru dicek
kondisinya. Akibat dari hal ini adalah dalam do while minimal terdapat sekali perulangan.[1]
Berikut syntax programnya:
inisialisasi_awal;
do{
statement;
}while(syarat_perulangan);
|
2.3. PERMASALAHAN
1.
Buatlah
program untuk menentukan kelipatan 3 dan
4, 3 atau 4, atau tidak keduanya!
2.
Buatlah
program untuk menampilkan bilangan berikut:
1 4 7 10 5 0 -5
3.
Buatlah
program untuk menghitung usia berdasarkan tanggal lahir dan tanggal sekarang!
2.4. HASIL PERCOBAAN
PEMBAHASAN
1.
Berikut
algoritma, pseudocode, flowchart, beserta source code dari permasalahan nomor 1:
a.
Algoritma
1.
Masukan nilai yang diinginkan.
2.
Jika nilai habis dibagi 3 dan habis dibagi 4, maka
akan menampilkan nilai tersebut kelipatan 3 dan 4.
3.
Jika nilai habis dibagi 3, maka akan menampilkan
nilai tersebut kelipatan 3.
4.
Jika nilai habis dibagi 4, maka akan menampilkan
nilai tersebut kelipatan 4.
5.
Selain itu akan menampilkan nilai bukan kelipatan 3
atau 4.
6.
Jika anda ingin mengulang, input ‘y’ kemudian
lakukan langkah 2.
b.
Pseudocode
Step
1: Start
Step2: Input
bilangan is integer
Step 3: If
bilangan mod 3←0 and bilangan mod
4←0 THEN
Print bilangan merupakan kelipatan 3 dan 4
End if
Step 4: If
bilangan mod 3←0 THEN
Print bilangan merupakan kelipatan 3
End if
Step
5: If bilangan mod 4←0 THEN
Print bilangan merupakan kelipatan 4
End if
Step
7: Else
Print bilangan bukan kelipatan 3 dan 4
Step 8:
Back to step 2
Step 9: End
c.
Flowchart
Gambar 2.1 Flowchart permasalahan 1
d. Source
code
#include <iostream>
#include <stdlib>
#include <conio>
void main(){
int a;
char keputusan;
do{
clrscr();
cout<<"Masukkan nilai: ";
cin>>a;
if(a%3==0 && a%4==0){
cout<<"Biliangan
tersebut kelipatan 3 dan 4"<<endl;
}
else if(a%3==0){
cout<<"Bilangan tersebut kelipatan
3"<<endl;}
else if(a%4==0){
cout<<"Bilangan
tersebut kelipatan 4"<<endl;}
else{
cout<<"Bilangan
tersebut bukan kelipatan 3 dan 4"<<endl;}
cout<<"Apakah anda ingin mengulang (y/n)?";
cin>>keputusan;
}while(keputusan=='y');
system("pause");
}
|
Gambar 2.2 Tampilan program
permasalahan 1
2.
Berikut
algoritma, pseudocode, flowchart, beserta source code dari permasalahan nomor 2:
a.
Algoritma
1.
Masukkan
variabel a, i dengan a dan i diberi nilai 1.
2.
Cetak
nilai a.
3.
Lakukan
perulangan dari variabel i sebanyak 7 kali.
4.
Jika
nilai i lebih kecil dari 4, hitung nilai a dengan rumus:
a=a+3.
5.
Cetak
nilai a.
6.
Jika
nilai i lebih besar atau sama dengan 4 hingga i lebih kecil dari 7, hitung
nilai a dengan rumus:
a=a-5.
7.
Cetak
nilai a.
b.
Pseudocode
Step
1: Start
Step
2: Input a←1, i←1 are integer
Step
3: Print a
Step
3: For i←1; i less than or equal
to 7; i++ DO
Step
4: If i less than 4 THEN
a←a+3
End if
Step 5: Print
a
Step
6: If i more than 4 and i less than 7 THEN
a←a-5
End if
Step 8: Print
a
Step 9: End
c.
Flowchart
Gambar 2.3 Flowchart
permasalahan
2
d.
Source code
#include
<iostream>
#include
<stdlib>
void
main(){
int a,i;
a=1;
cout<<" "<<a;
for(i=1;i<=7;i++){
cout<<"
";
if(i<4){
a+=3;
cout<<" "<<a;
}
if(i>=4 && i<7){
a-=5;
cout<<" "<<a;
}
}
cout<<endl;
system("pause");
}
|
Gambar 2.4 Tampilan program
permasalahan 2
3.
Berikut
algoritma, pseudocode, flowchart, beserta source code dari permasalahan nomor 3:
a.
Algoritma
1.
Mendeklarasikan
variabel h1, b1, t1, h2, b2, t2, hari, bulan, dan tahun.
2.
Masukkan
nilai dari variabel h1, b1, t1.
3.
Masukkan
nilai dari variabel h2, b2, t2.
4.
Jika
h2 lebih kecil dari h1
b2=b2-1
h2=h2+30.
5.
Jika
b2 lebih kecil dari b1
t2=t2-1
b2=b2+12.
6.
Hitung
umur dengan rumus:
hari = h2-h1
bulan = b2-b1
tahun = t2-t1.
7.
Cetak
nilai hari, bulan, dan tahun.
8.
Jika anda ingin mengulang, input ‘y’ kemudian
lakukan langkah 3.
b.
Pseudocode
Step 1: Start
Step
2: h1, b1, t1, h2, b2,
t2, hari, bulan, tahun are integer
Step
3: Input h1, b1, t1
Step 4: Input
h2, b2, t2
Step
5: If h2 less than h1 THEN
b2←b2-1
h2←h2+30
End if
Step 6: If
b2 less than b1 THEN
t2←t2-1
b2←b2+12
End
if
Step 7: hari←h2-h1
bulan←b2-b1
tahun←t2-t1
Step 8: Print
hari, bulan, tahun
Step 9: Back
to step 3
Step 10: End
c.
Flowchart
Gambar 2.5 Flowchart permasalahan 3
d.
Source code
#include
<iostream>
#include
<stdlib>
#include
<conio>
void
main()
{
int h1,b1,t1,h2,b2,t2,hari, bulan,
tahun;
char a='y';
while(a=='y'){
cout<<"masukkan tanggal lahir =
";
cin>>h1;
cout<<"masukkan bulan lahir =
";
cin>>b1;
cout<<"masukkan tahun lahir =
";
cin>>t1;
cout<<endl;
cout<<"masukkan tanggal
sekarang = ";
cin>>h2;
cout<<"masukkan bulan sekarang
= ";
cin>>b2;
cout<<"masukkan tahun sekarang
= ";
cin>>t2;
if (h2<h1)
{
b2-=1;
h2+=30;
}
if (b2<b1)
{
t2-=1;
b2+=12;
}
hari = h2-h1;
bulan = b2-b1;
tahun = t2-t1;
cout<<"hari =
"<<hari<<endl;
cout<<"bulan =
"<<bulan<<endl;
cout<<"tahun =
"<<tahun<<endl;
cout<<"Apakah anda ingin
mengulang(y/n)?";
cin>>a;
clrscr();
}
system("pause");
}
|
Gambar 2.6 Tampilan program
permasalahan 3
2.5. ANALISIS DATA
1.
Analisa
dari permasalahan 1:
int a;
char
keputusan;
|
Ø Pendeklarasian variabel ”a” bertipe integer.
Ø Pendeklarasian variabel ”keputusan” bertipe character.
do{
clrscr();
cout<<"Masukkan nilai: ";
cin>>a;
|
Ø Perintah do{ di atas merupakan proses perulangan
yang akan dilakukan sebanyak satu kali sebelum melakukan pengecekan kondisi.
Ø clrscr(); merpakan
perintah untk membersihkan layar dari perintah sebelumnya.
Ø cout<<"Masukkan nilai: "; digunakan untuk menampilkan kata” masukan nilai”.
Ø cin>>a; digunakan untuk
meng-input-kan data.
if(a%3==0
&& a%4==0){
cout<<"Biliangan tersebut
kelipatan 3 dan 4"<<endl;
|
Pada baris pertama terdapat if(a%3==0 && a%4==0).Bagian
ini digunakan untuk pemeriksaan kondisi.Dimana pada sintaks di atas terlihat, jika kondisi a modulus 3==0 dan a modulus 4==0,maka bilangan
tersebut bilangan kelipatan 3 dan 4.
else if(a%4==0){
cout<<"Bilangan
tersebut kelipatan 4"<<endl;}
|
Pada kondisi ini, jika nilai a modulus 4 ==0 maka bilangan yang akan ditampilkan adalah bilangan
kelipatan 4.
}while(keputusan=='y');
system("puuse");
}
|
Ø while(keputusan=='y'); merupakan
proses pengecekan kondisi.
Ø system("pause");
perintah ini digunakan untuk menahan suatu program.
Ø Tanda tutup kurawal “}” ini digunakan untuk mengakhiri program.
2. Analisa dari permasalahan 2:
a=1;
cout<<" "<<a;
for(i=1;i<=7;i++){
cout<<" ";
|
Ø a= 1; merupakan insialisasi awal
dari program yang akan dibuat.
Ø cout<<" "<<a; untuk
menampilkan a
pada output-nya.
Ø for(i=1;i<=7;i++){fungsi
perulangan dimna nilai awal i=1 dan nilai akhir i<=7 dan terdapat increment
atau fungsi penambahan.
if(i<4){
a+=3;
cout<<" "<<a;
}
|
Pada baris pertama terdapat kondisi
dimana jika nilai i<4,maka akan dilanjutkan pada baris kedua yaitu proses penjumlahan denan
rumus a+=3 yang akan
dilakukan jika kodisi bernilai benar. Baris ketiga digunakan untuk menampilkan a. Sedangkan tanda tutup kurawal digunakan untuk menutup
kondisi tersebut.
3. Analisa
dari permasalahan 3:
int
a,b,c,d,e,f,hari, tahun, bulan;
cout<<"masukkan tanggal lahir = ";
cin>>a;
|
Pada baris
pertama terdapat int a,b,c,d,e,f,hari, tahun,
bulan; merupakan pendeklarasian variabel. Pada baris kedua digunakan
untuk menampilkan kalimat “masukkan tanggal lahir “ pada output-nya. Baris ketiga digunakan untuk meng-input-kan nilai a.
if (e<b && d<a)
{
f-=1;
e-=1;
e+=12;
d+=30;
}
|
if (e<b &&
d<a) jika kondisi didalam fungsi if bernilai benar maka akan dilakukan perintah dibawahnya
yaitu f-=1; e-=1; e+=12;
d+=30;.
if (e<b)
{
f-=1;
e+=12;
}
|
Jika
kondisi dalam fungsi if (e<b)bernilai benar maka program akan melakukan perintah
yang terdapat dalam fungsi if tersebut. Yaitu f-=1; e+=12;.
if (d<a)
{
e-=1;
d+=30;
}
|
Jika
kondisi dalam fungsi if (d<a)bernilai benar maka program akan melakukan perintah
yang terdapat dalam fungsi if tersebut. Yaitu e-=1; d+=30;.
hari = d-a;
bulan =
e-b;
tahun =
f-c;
|
Jika semua pengecekan kondisi telah dilakukan maka
instruksi di atas akan dilakukan untuk mencari hasil yang diinginkan oleh programmer.
2.6. KESIMPULAN
Dari permasalahan diatas
dapat diambil kesimpulan sebagai
berikut :
1.
Dapat mengetahui perbedaan fungsi antara while, do-while dan for.While
digunakan apabila dalam program tersebut belum diketahui berapa jumlah
perulangan yang akan dilakukan. Do-while
melakukan perulangan terlebih dahulu,baru melakukan pengecekan kondisi. For digunakan apabila program sudah
mengetahui jumlah perulangan yang akan dilakukan.
2.
Mengunakan intruksi for
apabila program sudah diketahui berapa kali perulangan yang akan dilkaukan.
3.
Dapat menggunakan statement control
pada program tertentu, karena masing
masing statementcontrol seperti if,if
else,if else bersarang dan switch case memiliki fungsi yang berbeda
beda.
DAFTAR PUSTAKA
[1] Dewanto, Adi. 2008. Bahasa Pemrograman. Jakarta: Departemen
Pendidikan Nasional.
[2] Rachmat,
Antonius C. 2010. Algorima dan
Pemrograman dengan Bahasa C. Yogyakarta: Andi Offset.
TUGAS 1
1.
Membuat
program permasalahan jurnal nomor 2 menggunakan statement looping while.
Source code:
#include <iostream.h>
#include <stdlib.h>
void main(){
int a,i;
a=1;
cout<<a;
while(i<=7)
{
cout<<ends;
if(i<3)
{
a+=3;
cout<<a;
}
if(i>=3
&& i<6)
{
a-=5;
cout<<a;
}
i++;
}
cout<<endl;
system("pause");
}
|
GambaSr 2.7 Tampilan program tugas 1
TUGAS II
1. Membuat
segitiga sama kaki menggunakan simbol bintang (*).
·
Syntax
#include <iostream.h>
#include <conio.h>
main()
{
int t=10,s,b,c;
cout<<"Segitiga Sama
Kaki"<<endl;
for(s=t;s>=0;s--){
for(b=s;b>=0;b--){
cout<<" ";
}
for(c=1;c<=t-s;c++){
cout<<"*";
}
for(c=1;c<t-s;c++){
cout<<"*";
}
cout<<endl;
}
getch();
}
|
·
Hasil run
dari syntax diatas
Gambar 2.8 Hasil run
dari syntax diatas
TUGAS III
1. Membuat
program membuat menu
a.
Faktorial
b.
Bilangan ganjil genap
c.
Menentukan bilangan biner
·
Syntax
#include <iostream.h>
#include <stdlib.h>
main ()
{
int opsi;
cout<<"Program yang akan di
jalankan"<<endl;
cout<<"no 1.
FAKTORIAL"<<endl;
cout<<"no 2. BILANGAN GANJIL
GENAP"<<endl;
cout<<"no 3. MENENTUKAN
BINER"<<endl;
cout<<"masukkan pilihan
anda"<<endl;
cin>>opsi;
switch (opsi)
{
int n,hasil,bil,a;
case 1:
cout<<"\n Masukkan NIlai yang Difaktorialkan= ";
cin>>n;
hasil=1;
for(bil=n; bil>=1; bil--)
{
hasil=hasil*bil;
}
cout<<"Hasil Faktorial dari
"<<n<<" adalah
"<<hasil<<"\n";
break;
case 2:
cout<<"masukkan nilai = ";
cin>>a;
if (a % 2 == 1 )
cout<<"angka yang anda masukkan adalah bilangan
GANJIL";
else
cout<<"angka yang
anda masukkan adalah bilangan GENAP";
cout<<endl;
break ;
case 3:
cout<<" Masukan Nilai = ";
cin>>a;
cout<<"
Nilai Binernya adalah = ";
while
(a>=1)
{
n=a%2;
cout<<ends<<n;
a=a/2;
}
cout<<endl<<endl;
break;
default:
cout<<"MOHON
TELITI LAGIS PAS MEMASUKKAN NOMER PILIHAN ANDA"<<endl;
}
system ("pause");
}
|
Gambar 2.9 hasil run case
1
Gambar 2.10 hasil run case
2
Gambar 2.11 hasil run case
3