Pengulangan
-
Upload
sunny-ineza -
Category
Documents
-
view
60 -
download
2
description
Transcript of Pengulangan
LAPORAN AKHIR
AP – III
PENGULANGAN
SUNNY INEZA PUTRI
140310110017
I. TUGAS PRAKTIKUM
1. Buatlah program C untuk menampilkan deret Fibbonaci dengan sintaks for
Listing:
/* Program menghitung deret Fibbonaci */
/* Program 3.2 */
#include <stdio.h>
#include <conio.h>
main()
{
int a, n, bl1, bl2, bl3;
printf("Masukkan jumlah bilangan yang ingin ditampilkan
: ");
scanf("%d",&n);
printf("Masukkan bilangan pertama : ");
scanf("%d",&bl1);
printf("Masukkan bilangan kedua : ");
scanf("%d",&bl2);
printf("Output : %d,%d," ,bl1,bl2);
for(a=1; a<=n-2; a++)
{
bl3 = bl1 + bl2;
printf("%d,",bl3);
bl1 = bl2;
bl2 = bl3;
}
getch();
}
Tampilan:
Analisa:
Dalam pengulangan for dimasukkan kondisi awal a=1, dan kondisi akhir a<=n-2.
Kondisi akhir banyaknya a lebih sedikit 2 daripada n karena kita telah memasukkan
2 bilangan di awal sebagai variabel. Dan prosesnya adalah penambahan dari dua
bilangan yang sebelumnya.
2. Buatlah program C untuk menampilkan deret Fibbonaci dengan sintaks while
Listing:
/* Program menghitung fibbonaci dengan while */
/* Program 3.4 */
#include <stdio.h>
#include <conio.h>
main()
{
int a, n, bl1, bl2, bl3;
printf("Masukkan jumlah bilangan yang ingin ditampilkan
: ");
scanf("%d",&n);
printf("Masukkan bilangan pertama : ");
scanf("%d",&bl1);
printf("Masukkan bilangan kedua : ");
scanf("%d",&bl2);
printf("Output : %d,%d," ,bl1,bl2);
a=1;
while(a<=n-2)
{
bl3 = bl1 + bl2;
printf("%d,",bl3);
bl1 = bl2;
bl2 = bl3;
a++;
}
getch();
}
Tampilan:
Analisa:
Tidak berbeda dengan pengulangan dengan for. Hanya saja a=1 dan a<=n-2
diletakkan sebelum blok pengulangan. Sedangkan penaikan diletakkan di dalam
proses while. Kondisi awal dan kondisi akhir tertulis terpisah. Sebenarnya lebih
efisien jika menggunakan for karena setiap kondisi dituliskan dalam satu baris.
3. Buatlah program C untuk menampilkan deret Fibbonaci dengan sintaks do…while…
Listing:
/* Program menghitung fibbonaci dengan do-while */
/* Program 3.4 */
#include <stdio.h>
#include <conio.h>
main()
{
int a, N, bil1, bil2, bil3;
printf("Masukkan jumlah bilangan yang ingin ditampilkan
: ");
scanf("%d",&N);
printf("Masukkan bilangan pertama : ");
scanf("%d",&bil1);
printf("Masukkan bilangan kedua : ");
scanf("%d",&bil2);
printf("Output : %d,%d,",bil1,bil2);
a=1;
do
{
bil3 = bil1 + bil2;
printf("%d,",bil3);
bil1 = bil2;
bil2 = bil3;
a++;
}
while(a<=N-2);
getch();
}
Tampilan:
Analisa:
Pertama kita masukkan terlebih dahulu a=1 sebelum blok do. Di dalam blok do
program melakukan proses untuk menampilkan bilangan Fibbonaci disertai dengan
penaikan. Setelah dilakukan proses sekali, baru dilakukan pengecekan apakah a<=n-
2. Jika bernilai benar akan melakukan pengulangan. Jika bernilai salah maka akan
keluar dari pengulangan atau tidak mengalami pengulangan.
4. Buatlah program C untuk menghitung faktorial dengan sintaks for
Listing:
/* Program menghitung faktorial */
/* Program 3.3 */
#include <stdio.h>
#include <conio.h>
main()
{
int a, n, faktorial;
printf("Masukkan angka yang ingin di faktorialkan : ");
scanf("%d",&n);
faktorial = 1;
for (a=1; a<=n; a++)
{
faktorial *= a;
}
printf("Nilai faktorial = %d\n",faktorial);
getch();
}
Tampilan:
Analisa:
Kita memasukkan kondisi awal factorial=1 karena jika factorial 0 akan tetap bernilai
1. Untuk dilakukan berapa kali perkalian aga r didapat faktorialnya kita tetukan
kondisi akhir yaitu a<=n. Kemudian dalam blok pengulangan for dituliskan factorial
*= a. itu merupakan pemendekan dari factorial = factorial * a. Maka akan didapat
factorial dari suatu nilai.
5. Buatlah program C untuk menghitung faktorial dengan sintaks while
Listing:
/* Program menghitung faktorial dengan while */
/* Program 3.4 */
#include <stdio.h>
#include <conio.h>
main()
{
int a, n, faktorial;
printf("Masukkan angka yang ingin difaktorialkan : ");
scanf("%d",&n);
faktorial = 1;
a = 1;
while (a<=n)
{
faktorial = faktorial*a;
a++;
}
printf("Nilai faktorial : %d",faktorial);
printf("\n");
getch();
}
Tampilan:
Analisa:
Tidak berbeda dengan pengulangan dengan for. Hanya saja a=1 dan a<=n diletakkan
sebelum blok pengulangan. Sedangkan penaikan diletakkan di dalam proses while.
Kondisi awal dan kondisi akhir tertulis terpisah.
6. Buatlah program C untuk menghitung faktorial dengan sintaks do…while…
Listing:
/* Program menghitung faktorial dengan do-while */
/* Program 3.4 */
#include <stdio.h>
#include <conio.h>
main()
{
int a, n, faktorial;
printf("Masukkan angka yang ingin difaktorialkan : ");
scanf("%d",&n);
faktorial = 1;
a = 1;
do
{
faktorial = faktorial*a;
a++;
}
while(a<=n);
printf("Nilai faktorial : %d",faktorial);
printf("\n");
getch();
}
Tampilan:
Analisa:
Pengulangan dengan do while ini kita menentukan di awal faktorial=1 karena
awalnya akan dilakukan pengeksekusian terhadap statement di dalam do baru
dilakukan pengkondisian apakah bernilai benar atau salah. Jika benar akan dilakukan
pengulangan, jika salah akan langsung keluar dari pengulangan.
7. Buatlah program yang bertujuan untuk mengkonversi nilai mutu ke huruf mutu
dengan menggunakan sintaks switch…case…break…
Listing:
/* Program mengkonversi huruf mutu ke nilai mutu */
/* Program 3.5 */
#include <stdio.h>
#include <conio.h>
main()
{
char huruf;
printf("\nMasukkan huruf mutu = ");
scanf("%c",&huruf);
switch (huruf)
{
case 'A': printf("Nilai mutu = 4");
break;
case 'B': printf("Nilai mutu = 3");
break;
case 'C': printf("Nilai mutu = 2");
break;
case 'D': printf("Nilai mutu = 1");
break;
case 'E': printf("Nilai mutu = 0");
break;
default: printf("Anda memasukkan nilai yang
salah");
}
getch();
}
Tampilan:
Analisa:
Switch ini sebenarnya masuk ke dalam pemilihan. Kita memasukan suatu nilai yang
konstan untuk menjadi opsi. Kemudian opsi tersebut akan menjalakan perintah sesuai
dengan apa yang telah ditentukan dalam opsi tersebut prosesnya adalah kita
memasukkan suatu nilai konstan, kemudian akan dilakukan pengecekan terhadap
opsi pertama. Jika opsi pertama memenuhi akan langsung dieksekusi dan tidak akan
mengalami pengulangan karena ada "break". Jika opsi pertama akan dilakukan
pengecekan terhadap opsi selanjutnya sampai ditemukan yang sesuai dengan nilai
yang dimasukkan.
II. TUGAS AKHIR
1. Buatlah program C yang bertujuan untuk menghitung IP mahasiswa
Listing:
#include <stdio.h>
#include <conio.h>
main()
{
int jummatakul,i,SKS,am,nilai;
float IP ;
float total=0;
float SKSt = 0 ;
char hm;
printf("Masukkan jumlah mata kuliah : ");
scanf("%d", &jummatakul);
printf("\n");
for(i=1; i<=jummatakul; i++)
{
printf("Huruf Mutu mata kuliah Ke%d : ",
i);
scanf("%s", &hm);
printf("Beban SKS Mata kuliah Ke%d : ", i);
scanf("%d", &SKS);
printf("\n");
switch (hm)
{
{ case'A': case 'a':
am=4;
break; }
{ case'B': case 'b':
am=3;
break; }
{ case'C': case 'c':
am=2;
break; }
{ case'D': case 'd':
am=1;
break; }
{ case'E': case 'e':
am=0;
break; }
default:
{printf("Anda salah memasukkan huruf mutu.
\n");}
printf("\n");
}
nilai=am*SKS ;
total+=nilai;
SKSt+=SKS;
}
IP= total/SKSt;
if((0<=IP)&&(IP<=4))
printf("IP anda adalah: %4.2f",IP);
getch();
return 0;
}
Tampilan:
Analisa:
Pertama kita memasukkan jumlah mata kuliah di semester ini. Kemudian masukkan
huruf mutu dan beban sks dari mata kuliah pertama dan mata kuliah selanjutnya.
Disini kita melakukan pengulangan untuk menginput huruf mutu dan beban sks
sebanyak dengan mata kuliah yang diinput. Setelah selesai menginput data akan
dilakukan perhitungan dengan mengkonversi huruf mutu tersebut ke nilai mutu
terlebih dahulu. Mengkonversinya dengan menggunalan switch…case…break…
Karena huruf mutu yang kita masukkan benilai konstan. Setelah dikonversi kita
menghitung nilai per mata kuliah dengan cara mengalikan nilai mutu dengan beban
sksnya. Dan nilai tersebut dijumlah dengan nilai dari semua mata kuliah dan dibagi
jumlah sks yang diambil. Maka, akan ditampilkan IP pada semester ini.
2. Buatlah program yang menghasilkan gambar tertentu
Listing:
Gambar 1
#include<stdio.h>
#include<conio.h>
main()
{
int j,k;
printf("\n");
for (j=1;j<=10;j++)
{
k=1;
while(k<=j)
{
printf(" *",j*k);
k++;
}
printf("\n");
}
getch();
}
Gambar 2
#include<stdio.h>
#include<conio.h>
main()
{
int j,k;
printf("\n");
j=1;
while(j<=7)
{
for(k=1;k<=j;k++)
{
printf(" *",j*k);
}
printf("\n");
j=j+2;
}
j=9;
while(j>=1)
{
for(k=1;k<=j;k++)
{
printf(" *",j*k);
}
printf("\n");
j=j-2;
}
getch();
}
Gambar 3
#include<stdio.h>
#include<conio.h>
main()
{
int j,k;
printf("\n");
j=5;
while(j>=1)
{
for(k=1;k<=j;k++)
{
printf(" *",j*k);
}
printf("\n");
j--;
}
j=1;
while(j<=5)
{
for(k=1;k<=j;k++)
{
printf(" *",j*k);
}
printf("\n");
j++;
}
getch();
}
Tampilan:
Gambar 1
Gambar 2
Gambar 3
Analisa:
Untuk membuat suatu bentuk bidang datar dengan symbol * dapat dilakukan dengan
pengulangan. Pengulangan yang dilakukan adalah for bersarang atau while bersarang
agar lebih efisien jika dibandingkan kita harus menuliskan perulangan for yang
banyak. Yang perlu diperhatikan dalam membuat program ini adalah batas akhir yag
harus diperhitungkan agar mendapat outut sesuai kehendak.
III. ANALISA UMUM
Dalam pembuatan program terkadang kita harus melakukan pengulangan suatu aksi,
misalnya untuk melakukan perhitungan berulang dengan menggunakan formula yang
sama. Maka, kita membutuhkan suatu sistem pengulangan, adapun strukturnya yaiutu for,
while, dan do…while…. Di dalam struktur itupun kita dapat melakukan pengulangan
dalam pengulangan yang disebut dengan pengulangan bersarang. Struktur tersebut
digunakan sesuai kebutuhan dalam membuat program.
IV. KESIMPULAN
Dalam praktikum kali ini kita dapat menggunakan struktur pengulangan seperti for,
while, dan do…while… dengan baik secara normal ataupun bersarang. Struktur tersebut
digunakan sesuai dengan kebutuhan program yang akan dibuat. Dan ada yang dapat
digunakan dengan ketiga macam struktur pengulangan tersebut. Tetapi, dari ketiga
struktur tersebut struktur do…while… merupakan yang paling efisien.
Dalam modul sebelumnya kita sudah mengtahui tentang struktur penyeleksian
dengan switch…case..break…. Struktur tersebut muncul kembali dalam pengulangan
karena struktur tersebut akan melakukan pengulangan terus-menerus ketika telah
memilih case yang sesuai. Oleh karena itu, digunakanlah break untuk menghentikan
pengulangan tersebut.