modul3
DESCRIPTION
Modul C++TRANSCRIPT
PRAKTIKUM PEMROGRAMAN TERSTRUKTUR
MODUL KE – 3
PERULANGAN (Looping)
Oleh :
SEPTIAN ADI PRASETYO
(201110370311452)
LABORATORIUM DMAG DAN RPL
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2011
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 FORIntruksi 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 LOOP3. 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 WHILEIntruksi ini digunakan apabila kita belum mengetahui secara pasti berapa kali banyaknya
perulangan yang akan dilakukan. Berakhirnya perulangan ditentukan oleh suatu kondisi. Selama 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-WHILEIntruksi 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 223 6 12 21 33 481 5 3 7 5 9
Membuat program sederhana menggunakan double(nested) for untuk membentuk matriks1 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>
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
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
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).
VII. HASIL PRAKTIKUM
Flowchart Program Pengubah Nilai Suhu ke Satuan Celcius
No
Yes
Yes No
Yes
No
StartStart
EndEnd
type,suhu,c;type,suhu,c;
(type<4 || type>4)
(type<4 || type>4)
int w=61,x=1;
int w=61,x=1;
x<=59x<=59
x++x++
("%c",w)
("%c",w)
AAAA
"\nProgram pengubah nilai suhu ke satuan celcius dari satuan :\n"
"\nProgram pengubah nilai suhu ke satuan celcius dari satuan :\n"
int y=61,z=1
int y=61,z=1
x<=59x<=59
y++y++
("%c",y)("%c",y)
BB
“Program Terminated”“Program Terminated”
CC
No No No No
Yes Yes Yes Yes
"\n1. Reamur""\n2. Fahrenheit""\n3. Kelvin""\n4. Selesai\n"
"\n1. Reamur""\n2. Fahrenheit""\n3. Kelvin""\n4. Selesai\n"
"Pilih type suhu = "scanf("%i",&type)”
"Pilih type suhu = "scanf("%i",&type)”
type==1type==1
"\nAnda memilih mode Reamur\n""Masukkan suhu = "scanf("%i",&suhu)
"\nAnda memilih mode Reamur\n""Masukkan suhu = "scanf("%i",&suhu)
c=suhu*5/4c=suhu*5/4
"%iR --> C = %i derajat Celcius\n",suhu,c"Program akan dilanjutkan\n"
"%iR --> C = %i derajat Celcius\n",suhu,c"Program akan dilanjutkan\n"
type==2type==2
type==3type==3
type>=5 || type==0
type>=5 || type==0
"\nAnda memilih mode Fahrenheit\n""Masukkan suhu = "scanf("%i",&suhu)
"\nAnda memilih mode Fahrenheit\n""Masukkan suhu = "scanf("%i",&suhu)
c=(suhu-32)*5/9c=(suhu-32)*5/9
"%iF --> C = %i derajat Celcius\n",suhu,c"Program akan dilanjutkan\n"
"%iF --> C = %i derajat Celcius\n",suhu,c"Program akan dilanjutkan\n"
"%iK --> 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",&suhu)
"\nAnda memilih mode Kelvin\n""Masukkan suhu = "scanf("%i",&suhu)
c=suhu-273c=suhu-273
"Mode tidak tersedia,coba lagi\n""Program akan
dilanjutkan\n"
"Mode tidak tersedia,coba lagi\n""Program akan
dilanjutkan\n"
BB
CC
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();}
#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();}
Running Program
Flowchart Program Tebak Angka
Yes
No
StartStart
rand((unsigned) time(NULL))rand((unsigned) time(NULL))
int angkaint x=0,y,tebakan,z
int angkaint x=0,y,tebakan,z
angka = rand()%(100)angka = rand()%(100)
"Tebaklah sebuah angka antara 0-100\n"
"Tebaklah sebuah angka antara 0-100\n"
"%c",a"%c",a
int a=61,b=1
int a=61,b=1
b<=33b<=33
a++a++
No
Yes
Yes
No
No No
Yes Yes
EndEnd
AA
AA
angkaangka
y==xy==x
y=0y=0
y++y++
"\nMasukkan tebakan
anda : "scanf("%i",&tebaka
n)
"\nMasukkan tebakan
anda : "scanf("%i",&tebaka
n)
tebakan<angkatebakan<angka
Tebakan>angka
Tebakan>angka
x=x+1x=x+1 x=x+1x=x+1
">>angka terlalu kecil\n"
">>angka terlalu kecil\n"
">>angka terlalu besar\n"
">>angka terlalu besar\n" "\nAnda
menebak sebanyak %i kali",z
"\nAnda menebak sebanyak %i kali",z
z=x+1z=x+1
">>Tebakan Benar. Anda Hebat!!!\n"
">>Tebakan Benar. Anda Hebat!!!\n"
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();}
#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();}
Running program
Flowchart Program Pemecah Digit
No
Yes
Yes
No
StartStart
int a,ribuan,ratusan,puluhan,satuan
int a,ribuan,ratusan,puluhan,satuan
"Program Pemecah Digit\n"
"Program Pemecah Digit\n"
int x=61,y=1int x=61,y=1
y<=21y<=21
y++y++
"%c",x"%c",x
"\nMasukkan 4 digit angka = "scanf("%i",&a)
"\nMasukkan 4 digit angka = "scanf("%i",&a)
a<=9999a<=9999
ribuan = a/1000*1000;ratusan = (a-ribuan)/100*100;puluhan = (a-ribuan-ratusan)/10*10;satuan = (a-ribuan-ratusan-puluhan);
ribuan = a/1000*1000;ratusan = (a-ribuan)/100*100;puluhan = (a-ribuan-ratusan)/10*10;satuan = (a-ribuan-ratusan-puluhan);
AA
"Ribuan = %i\n",ribuan
"Ribuan = %i\n",ribuan
"Satuan = %i\n",satuan"Satuan = %i\n",satuan
"Puluhan = %i\n",puluhan
"Puluhan = %i\n",puluhan
"Ratusan = %i\n",ratusan"Ratusan = %i\n",ratusan
"Angka yang anda masukkan terlalu besar"
"Angka yang anda masukkan terlalu besar"
Source code
Running program
EndEndAA
#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();}
#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();}
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();}}
#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();}}
StartStart
printf ("Berapa Banyak bilangan? "); (n)printf ("Berapa Banyak bilangan? "); (n)
i= 1i= 1
i<n i<n i<n i<n
a=a+b;b=a-b;
Deret Fibonaci
Deret Fibonaci
EndEnd
printf ("%d ", a);i++
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();}
#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();}
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).