Anda di halaman 1dari 17

PRAKTIKUM PEMROGRAMAN TERSTRUKTUR

MODUL KE 3
PERULANGAN (Looping)
Oleh :
FANDI ACHMAD SHOLEH
(201110370311075)
LABORATORIUMDMAG DAN RPL
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2011
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
For (ekspresi1;ekspresi2;ekspresi3)
Statement yang akan diulang;
For (initial_value;condition_expr;incremental_expr)
I. TUJUAN
Mahasiswa memahami dan mampu menggunakan struktur for untuk perulangan
Mahasiswa memahami dan mampu menggunakan struktur while untuk perulangan
Mahasiswa memahami dan mampu menggunakan struktur do-while untuk
perulangan
II. ALAT YANG DIGUNAKAN
1. Computer
2. IDE bahasa C
III. DASAR TEORI
Dalam pembuatan program, terkadang kita harus melakukan pengulangan suatu aksi, misalnya
untuk melakukan perhitungan berulang dengan menggunakan formula yang sama. Sebagai contoh,
misalnya kita ingin membuat program yang akan menampilkan teks saya sedang belajar bahasa C
sebanyak 10 kali, maka kita tidak perlu untuk menuliskan 10 buah statement melainkan melainkan
kita hanya tinggal menempatkan satu buah statement ke dalam suatu struktur perulangan. Dengan
demikian program kita akan lebih efisien.
Dalam bahasa C, terdapat tiga buah struktur perulangan yang akan digunakan sebagai kontrol
dalam melakukan pengulangan proses, yaitu struktur for, while dan do-while. Dalam bahasa
pemrograman, proses perulangan ditangani dengan mekanisme yang dinamakan dengan LOOP.
Dengan mekanisme LOOP ini, suatu proses yang berulang dapat diimplementasikan dengan
pernyataan-pernyataan yang relatif pendek.
a. Intruksi FOR
Intruksi ini digunakan apabila kita mengetahui secara pasti banyaknya perulangan yang akan
dilakukan. Pernyataan FOR mempunyai 3 parameter, yaitu :
1. Nilai awal (initial value)
2. Test kondisi yang menentukan akhir LOOP
3. Penentu perubahan nilai.
Bentuk umum struktur FOR adalah :
Sintaksis perintah FOR sebagai berikut :
Loop FOR dapat juga berupa loop yang bersarang, artinya ada loop perulangan FOR di dalam
sebuah loop FOR yang lainnya.
b. Intruksi WHILE
Intruksi ini digunakan apabila kita belum mengetahui secara pasti berapa kali banyaknya
perulangan yang akan dilakukan. Berakhirnya perulangan ditentukan oleh suatu kondisi. Selama
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
kondisi terpenuhi, maka perulangan terus dilakukan, dan sebaliknya jika kondisinya tidak terpenuhi,
maka perulangan dihentikan.
Selain menggunakan struktur for, kita juga dapat melakukan pengulangan bersarang dengan
menggunakan struktur while. Caranya sama, yaitu dengan mendefinisikan struktur while di dalam
perulangan yang sedang dilakukan.
c. Intruksi DO-WHILE
Intruksi ini pada dasarnya sama dengan intruksi WHILE. Perbedaan yang penting antar
keduanya hanya terletak pada penempatan ekspresi kondisi. Untuk do-while, kondisi diletakkan
pada bagian bawah. Jadi statement yang berada dalam loop akan dikerjakan dahulu baru dilakukan
tes terhadap kondisi. Dapat disimpulkan, bahwa paling tidak terjadi satu kali eksekusi statement
yang berada pada loop do-while.
IV. PROSEDUR PELAKSANAAN
Source Code
Flowchart
Membuat program sederhana menggunakan for atau while dengan contoh kasus deret dengan
angka awal dan jumlah elemen merupakan input user
2 6 10 14 18 22
3 6 12 21 33 48
1 5 3 7 5 9
Membuat program sederhana menggunakan double(nested) for untuk membentuk matriks
1 2 3 4 5
1 1 2 3 4 5
2 2 4 6 8 10
3 3 6 9 12 15
4 4 8 12 16 20
5 5 10 15 20 25
Menambahkan do while untuk mengulang program
Mahasiswa mengerjakan tugas praktikum
Mahasiswa mendemokan hasil praktikum kepada asisten dan menulis laporan
Upload laporan melalui e-labit.umm.ac.id
V. LATIHAN
Contoh program untuk pembangkitan bilangan random/acak dari komputer dengan
menggunakan fungsi srand. Fungsi pembangkitan ini harus menyertakan header
#inlude<time.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
void main()
{
srand((unsigned) time(NULL));
int angka = rand()%(100);
printf("Angka yang dibangkitkan :%d\n",angka);
}
1. Buatlah sebuah program untuk menghitung nilai faktorial dapat dihitung dengan
melakukan perkalian secara terus menerus mulai dari 1 hingga bilangan tersebut.
Contoh, nilai faktorial dari 5 adalah 120. Didapat dari perkalian : 1*2*3*4*5.
2. Buatlah program untuk menampilkan bilangan prima dari 1 sampai n (dimana n
adalah input user).
VI. TUGAS PRAKTIKUM
1. Buatlah sebuah flowchart dan program yang berisikan menu untuk melakukan konversi nilai
suhu dari satuan Reamur ke Fahrenheit atau Kelvin ke Celcius. Rumus untuk melakukan
konversi nilai dari masing-masing satuan ke satuan Celcius adalah :
Celcius Reamur : 5/4 *suhu
Celcius Fahrenheit : 5/9 *(suhu-32)
Celcius Kelvin : suhu-273
Suhu merupakan input dari user.
Contoh tampilan program :
==============================================
Program pengubah nilai suhu ke satuan celcius dari satuan :
==============================================
1. Reamur
2. Fahrenheit
3. Kelvin
4. Selesai
User akan memasukkan angka sesuai dengan menu, program akan menampilkan suhu sesuai
dengan pilihan user tersebut. Program akan menampilkan menu tersebut terus menerus
sampai user memilih 4 maka program berhenti. Jika angka yang dimasukkan tidak sama
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
dengan 1-4 maka berikan pesan menu yang dimasukkan tidak tersedia.
2. Buatlah flowchart dan program permainan tebak angka antara komputer denga user. Dalam
permainan ini komputer akan memilih sebuah angka antara 1 sampai 100 secara acak dan
user harus menebak angka tersebut sampai benar. Bila tebakan user terlalu besar maka
program akan menampilkan pesan angka terlalu besar. Jika sebaliknya, maka program
akan menampilkan angka terlalu kecil. Setelah user menjawab dengan benar program
berakhir dan tampilkan pula berapa kali user menebak angka tersebut. (gunakan fungsi srand
untuk mendapatkan angka acak dari komputer).
Contoh tampilan program :
Tebaklah sebuah angka antara 0-100
==========================
Masukkan tebakkan anda : 50
>>angka terlalu kecil
Masukkan tebakkan anda : 75
>>angka terlalu kecil
Masukkan tebakkan anda : 85
>>angka terlalu besar
Masukkan tebakkan anda : 80
>>Tebakkan Benar. Anda Hebat!!!!
Anda menebak sebanyak 4 kali.
3. Buatlah flowchart dan program yang dapat memecah digit dari sebuah bilangan yang
dimasukkan oleh user. Misalkan user memasukkan bilangan 1234, maka hasilnya adalah
ribuan : 1000, ratusan : 200, puluhan : 30, satuan : 4.
4. Buatlah program untuk menampilkan deret fibonacci dari suku ke n. Misalkan suku ke-8
dari deret fibonacci adalah 21, suku ke-3 dari fibonacci adalah 2.
Deret fibonacci didapat dari penjumlahan suku ke i-1 dengan suku ke i-2, dengan ketentuan
suku ke 1 dan suku ke 2 bernilai 1. Berikut adalah contoh deret fibonacci sampai suku ke 8 :
Suku Nilai Fibonacci
1 1
2 1
3 2
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
4 3
5 5
6 8
7 13
8 21
5. Buatlah flowchart dan program untuk sebuah bentuk bangun seperti gambar dibawah ini.
(Pengerjaan harus menggunakan logika looping dan percabangan).
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
VII. HASIL PRAKTIKUM
Flowchart Program Pengubah Nilai Suhu ke Satuan Celcius
No
Yes
Yes No
Yes
No
Start
End
type,suhu
,c;
(type<4
||
type>4)
int
w=61,x=
1;
x<=59
x++
("%c",
w)
A
A
"\nProgram
pengubah nilai
suhu ke satuan
celcius dari satuan
:\n"
int
y=61,z=1
x<=59
y++
("%c",y)
B
Program
Terminated
C
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
No No No No
Yes Yes Yes Yes
"\n1. Reamur"
"\n2. Fahrenheit"
"\n3. Kelvin"
"\n4. Selesai\n"
"Pilih type suhu =
"scanf("%i",&type)
type==1
"\nAnda memilih
mode Reamur\n"
"Masukkan suhu
= "
scanf("%i",&suh
u)
c=suhu*5/4
"%iR --> C = %i
derajat
Celcius\n",suhu,c
"Program akan
dilanjutkan\n"
type==2 type==3
type>=5
||
type==0
"\nAnda memilih
mode
Fahrenheit\n"
"Masukkan suhu
= "
scanf("%i",&suh
u)
c=(suhu-32)*5/9
"%iF --> C = %i
derajat
Celcius\n",suhu,c
"Program akan
dilanjutkan\n"
"%iK --> C = %i
derajat
Celcius\n",suhu,c
"Program akan
dilanjutkan\n"
"\nAnda memilih
mode Kelvin\n"
"Masukkan suhu
= "
scanf("%i",&suh
u)
c=suhu-273
"Mode tidak
tersedia,coba
lagi\n"
"Program akan
dilanjutkan\n"
B
C
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
Source Code
#include <stdio.h>
#include <conio.h>
void main()
{
int type,suhu,c;
while(type<4 || type>4)
{
int w=61,x;
for(x=1;x<=59;x++)
{
printf("%c",w);
}
printf("\nProgram pengubah nilai suhu ke satuan celcius dari satuan :\n");
int y=61,z;
for(z=1;z<=59;z++)
{
printf("%c",y);
}
printf("\n1. Reamur");
printf("\n2. Fahrenheit");
printf("\n3. Kelvin");
printf("\n4. Selesai\n");
printf("Pilih type suhu = ");
scanf("%i",&type);
if(type==1)
{
printf("\nAnda memilih mode Reamur\n");
printf("Masukkan suhu = ");
scanf("%i",&suhu);
c=suhu*5/4;
printf("%iR --> C = %i derajat Celcius\n",suhu,c);
printf("Program akan dilanjutkan\n");
}
else if(type==2)
{
printf("\nAnda memilih mode Fahrenheit\n");
printf("Masukkan suhu = ");
scanf("%i",&suhu);
c=(suhu-32)*5/9;
printf("%iF --> C = %i derajat Celcius\n",suhu,c);
printf("Program akan dilanjutkan\n");
}
else if(type==3)
{
printf("\nAnda memilih mode Kelvin\n");
printf("Masukkan suhu = ");
scanf("%i",&suhu);
c=suhu-273;
printf("%iK --> C = %i derajat Celcius\n",suhu,c);
printf("Program akan dilanjutkan\n");
}
else if(type>=5 || type==0)
{
printf("Mode tidak tersedia,coba lagi\n");
printf("Program akan dilanjutkan\n");
}
}
printf("Program Terminated");
getch();
}
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
Running Program
Flowchart Program Tebak Angka
Yes
No
Start
rand((unsigned)
time(NULL))
int angka
int
x=0,y,teba
kan,z
angka =
rand()%(100)
"Tebaklah
sebuah angka
antara 0-
100\n"
"%c",a
int
a=61,b=1
b<=33
a++
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
No
Yes
Yes
No
No No
Yes Yes
End
A
A
angka
y==x
y=0
y++
"\nMasukk
an tebakan
anda : "
scanf("%i"
,&tebakan)
tebakan<
angka
Tebaka
n>angk
x=x+1 x=x+1
">>angk
a terlalu
kecil\n"
">>angk
a terlalu
besar\n"
"\nAnda
menebak
sebanyak
%i kali",z
z=x+1
">>Tebak
an Benar.
Anda
Hebat!!!\n
"
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
Source code
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
srand((unsigned) time(NULL));
int angka = rand()%(100);
int x=0,y,tebakan,z;
printf("Tebaklah sebuah angka antara 0-100\n");
int a=61,b;
for(b=1;b<=33;b++)
{
printf("%c",a);
}
do
{
for(y=0;y==x;y++)
{
printf("\nMasukkan tebakan anda : ");
scanf("%i",&tebakan);
if(tebakan<angka)
{
x=x+1;
printf(">>angka terlalu kecil\n");
}
else if(tebakan>angka)
{
x=x+1;
printf(">>angka terlalu besar\n");
}
else
{
printf(">>Tebakan Benar. Anda Hebat!!!\n");
z=x+1;
printf("\nAnda menebak sebanyak %i kali",z);
}
}
}
while(angka);
getch();
}
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
Running program
Flowchart Program Pemecah Digit
No
Yes
Yes
No
Start
int
a,ribuan,ra
tusan,pulu
han,satuan
"Program
Pemecah
Digit\n"
int
x=61,y=1
y<=21
y++
"%c",x
"\nMasukkan 4
digit angka = "
scanf("%i",&a)
a<=9999
ribuan = a/1000*1000;
ratusan = (a-ribuan)/100*100;
puluhan = (a-ribuan-ratusan)/10*10;
satuan = (a-ribuan-ratusan-puluhan);
A
"Ribuan =
%i\n",ribuan
"Satuan =
%i\n",satuan
"Puluhan =
%i\n",puluhan
"Ratusan =
%i\n",ratusan
"Angka yang anda
masukkan terlalu
besar"
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
Source code
Running program
End
A
#include <stdio.h>
#include <conio.h>
void main()
{
int a,ribuan,ratusan,puluhan,satuan;
printf("Program Pemecah Digit\n");
int x=61,y;
for(y=1;y<=21;y++)
{
printf("%c",x);
}
printf("\nMasukkan 4 digit angka = ");
scanf("%i",&a);
if(a<=9999)
{
ribuan = a/1000*1000;
ratusan = (a-ribuan)/100*100;
puluhan = (a-ribuan-ratusan)/10*10;
satuan = (a-ribuan-ratusan-puluhan);
printf("Ribuan = %i\n",ribuan);
printf("Ratusan = %i\n",ratusan);
printf("Puluhan = %i\n",puluhan);
printf("Satuan = %i\n",satuan);
}
else
{
printf("Angka yang anda masukkan terlalu besar");
}
getch();
}
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
Flowchart Program Deret Fibonacci
Source code
#include <stdio.h>
#include <conio.h>
void main () {
int n,i;
int a=1, b=1;
printf ("Berapa banyak bilangan ? ");
scanf ("%d", &n);
printf ("%d ", a);
for (i=1;i<n;i++)
{
printf ("%d ", a);
a=a+b;
b=a-b;
}
getch();
}}
Start
printf ("Berapa Banyak bilangan? "); (n)
i= 1
i<n
i<n
a=a+b;
b=a-b;
Deret
Fibonaci
End
printf ("%d ", a);
i++
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
Running program
Source code
#include <stdio.h>
#include <conio.h>
void main()
{
int a,b,c;
for(a=10;a>=1;a--)
{
for(b=1;b<a;b++)
{
printf(" ");
}
if(a==1 || a==2 || a==10 || a==10-1)
{
for(c=1;c<=10;c++)
{
printf("* ");
}
}
else
{
for(c=1;c<=10;c++)
{
if(c==1 || c==2 || c==10 || c==10-1)
{
printf("* ");
}
else
{
printf(" ");
}
}
}
printf("\n");
}
getch();
}
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
Running program
VII. KESIMPULAN
Di dalam program banyak dan sering menggunakan perulangan karna di butuhkan d
berbagai aspek, misalnya Mesin ATM, Kalkulator, Computer dll. Dengan modul 3 kita bisa
memahami dan mengetahui bagaimana fungsi perulangan (flooping).
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m
C
lic
k
h
e
r
e
t
o
b
u
y
A
B
B
Y
Y
P
D
F
Trans
fo
r
m
e
r
2
.
0
w
w
w
. A
BBYY
.c
o
m

Anda mungkin juga menyukai