modul3

21
PRAKTIKUM PEMROGRAMAN TERSTRUKTUR MODUL KE – 3 PERULANGAN (Looping) Oleh : SEPTIAN ADI PRASETYO (201110370311452) LABORATORIUM DMAG DAN RPL

Upload: lutfi-jrs

Post on 24-Dec-2015

221 views

Category:

Documents


3 download

DESCRIPTION

Modul C++

TRANSCRIPT

Page 1: Modul3

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

Page 2: Modul3

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,

Page 3: Modul3

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

Page 4: Modul3

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

Page 5: Modul3

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

Page 6: Modul3

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).

Page 7: Modul3

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

Page 8: Modul3

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

Page 9: Modul3

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();}

Page 10: Modul3

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++

Page 11: Modul3

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"

Page 12: Modul3

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();}

Page 13: Modul3

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"

Page 14: Modul3

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();}

Page 15: Modul3

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++

Page 16: Modul3

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();}

Page 17: Modul3

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).