Anda di halaman 1dari 39

PRAKTIKUM 9

Looping : For

A. Dasar Teori

Mengulang suatu proses merupakan tindakan yang


banyak dijumpai dalam pemrograman. Pada semua bahasa
pemrograman, pengulangan proses ditangani dengan suatu
mekanisme yang disebut loop. Dengan menggunakan
loop, suatu proses yang berulang misalnya menampilkan
tulisan yang sama seratus kali pada layar dapat
diimpelementasikan dengan kode program yang pendek.

Pada pemrograman proses perulangan dapat dibagi menjadi 2


bagian utama yaitu:
1. Perulangan yang sudah di ketahui jumlah perulangannya
sebelum perulangan tersebut dilakukan.
2. Perulangan yang belum di ketahui jumlah perulangannya
sebelum perulangan tersebut di lakukan. Dalam hal ini dapat
dibagi menjadi dua bagian yaitu:
a) kondisi perulangan diperiksa diawal perulangan.
b) kondisi perulangan diperiksa diakhir perulangan.

Untuk kasus 1 seharusnya menggunakan perulangan dengan penyataan for . Sedangkan pada
kasus 2a dan 2b akan menggunakan pernyataa while atau do while.

Bentuk pernyataan for :

for (ungkapan1; ungkapan2; ungkapan3)


pernyataan;

Keterangan:
 Ungkapan1 : digunakan untuk memberikan inisialisasi terhadap variabel pengendali loop.
 Ungkapan2 : dipakai sebagai kondisi untuk keluar dari loop.
 Ungkapan3 : dipakai sebagai pengatur kenaikan nilai variabel pengendali loop.

Ketiga ungkapan dalam for tersebut harus dipisahkan dengan tanda titik koma (;).

Dalam hal ini pernyatan bisa berupa pernyataan tunggal maupun jamak. Jika pernyataannya
terbentuk jamak, maka pernyataan-pernyataan tersebut harus diletakkan di antara kurung kurawal
buka ({) dan kurung kurawal tutup (}), sehingga formatnya menjadi :

for (ungkapan1; ungkapan2; ungkapan3)


{
pernyataan;
pernyataan;
.
.
.
}

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 1
B. Tugas Pendahuluan

Buatlah desain flowchart untuk setiap soal dalam percobaan

1. Program penampil bilangan ganjil START

a. Algoritma
i = 1
Deklarasikan i dan n sebagai bilangan bulat

1. Inisiasi nilai i dengan 1 READ


2. Baca nilai n n

3. Jika i kurang dari 2 * n maka lakukan langkah 4, jika tidak


maka program langsung selesai
4. Cetak nilai dari i
5. Tambahkan i dengan angka 2 kemudian simpan di i, IF
i < 2*n
kembali ke langkah 3 N

Y
b. Flowchart →
PRINT
i

i = i + 2

END

START
2. Program Penghitung Bilangan Triangular

a. Algoritma jum = 0

Deklarasikan i, bil dan jum sebagai bilangan bulat.


READ
1. Inisiasi nilai awal jum dengan 0 bil
2. Masukkan bilangan
3. Berikan nilai bil kepada i
i = bil
4. Jika i < 0 maka lakukan langkah 5 – 7 bila tidak langsung
lakukan langkah 8
5. Cetak nilai i
6. Kurangi i dengan 1, dan simpan hasilnya di i lagi
IF
7. Tambahkan jum dengan i, dan simpan hasilnya di jum lagi i < 0
Kembali ke langkah 4 N
8. Cetak nilai jum Y

PRINT
i
b. Flowchart →

i = i - 1

jum = jum + i

PRINT
jum

END

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 2
3. Program Penampil Abjad START

a. Algoritma i = 90
Deklarasikan i, bil dan jum sebagai bilangan bulat.

1. Inisiasi nilai awal i dengan 90


2. Jika i >= 45 maka lakukan langkah 3-4 bila tidak maka IF
i>= 65
program akan langsung selesai.
N
3. Cetak nilai i sebagai huruf sesuai kode ASCIInya.
Y
4. Kurangi i dengan 1 dan simpan hasilnya di i kembali
Kembali ke langkah 2 PRINT
i sbg char

b. Flowchart →
i = i + 1

END

4. Program Penampil Bilangan Positif Negatif Berurutan START

a. Algoritma
Deklarasikan i dan n sebagai bilangan bulat i = 1

1. Inisiasi nilai i dengan 1


2. Baca nilai n READ
n
3. Jika i kurang dari n maka lakukan langkah 4,
jika tidak maka program langsung selesai i = i + 2
4. Jika sisa bagi antara i dan 2 adalah nol, maka
tampilkan hasil kali i dengan -1 bila tidak
IF
tampilkan i saja i <= n
5. Tambahkan i dengan angka 1 kemudian N
simpan di i, kembali ke langkah 3 Y

b. Flowchart → N IF
PRINT
i i % 2
== 0

PRINT
I * -1

END

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 3
5. Program Pengecek Bilangan Prima

a. Algoritma START

Deklarasikan isPrima dan i, bil sebagai


isPrima = 1
bilangan bulat

1. Inisiasi nilai isPrima dengan 1 (True) READ


2. Masukkan nilai bil. bil

3. Berikan nilai bil - 1 kepada i


4. Jika i < 0 maka lakukan langkah 5 – 7,
i = bil - 1
bila tidak langsung lakukan langkah 7
5. Jika sisa bagi bil dengan i sama dengan
nol atau nilai bil sama dengan 1 maka
ubah nilai isPrima menjadi 0 (False)
IF
dan langsung menuju ke langkah 10 i < 0
6. Kurangi i dengan 1, dan simpan N

hasilnya di i lagi Y
i = i - 1
Kembali ke langkah 4
7. Jika nilai isPrima sama dengan
1(True) maka cetak “Bilangan Prima”, IF
bila tidak maka cetak “Bukan Prima” N
Bil % 2
== 0

b. Flowchart → Y

isPrima = 0

N IF
PRINT
“Bukan Prima” isPrima
== 1

END PRINT
“Bilangan Prima”

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 4
6. Program Penghitung Indeks Prestasi Sementara
START
a. Algoritma
i = 1
1. Inisiasi nilai awal i dengan 1
2. Masukkan nilai n (banyaknya nilai)
3. Berikan nilai n ke i READ
n
4. Jika nilai i <= 5 maka lakukan langkah 5 - ?, bila tidak langsung
langkah ?
5. Masukkan nilaiHuruf dan banyaknya jam i = n
6. Konversi nilai huruf menjadi nilai angka sesuai
kriteria A -> 4, B->3, C->2, D->1, E->0
7. Hitung jumlah nilai dalam jam(jumNilaiJam) N
dengan menjumlahkan jumlah nilai IF Y
jam(jumNilaiJam) dengan perkalian nilai angka i <= 5

dan jam kemudian simpan nilainya di


jumNilaiJam i = i + 1
8. Hitung jumlah jam(jumJam) dengan
READ
menambahkan jumlah jam ditambah jam dan nilaiHuruf,
simpan hasilnya jummJam jumlahJam
9. Tambahkan nilai i dengan 1 simpan hasilnya di i lagi
Kembali ke langkah 4 a
10. Hitung ips dengan membagi jumlah nilai jam
(jumNilaiJam) dengan jumlah jam(jumJam)
11. Tampilkan nilai ips ke layar b

b. Flowchart → jumNilaiJam = jumNilaiJam + nilaiAngka * jam;


jumJam = jumJam + jam;

END PRINT
ips = jumNilaiJam/jumJam
ips

N IF N IF N IF IF
nilaiHuruf nilaiHuruf N
nilaiHuruf nilaiHuruf a
== == == ==
‘D’ ‘C’ ‘B’ ‘A’

Y Y Y Y

nilaiAngka = 0 nilaiAngka = 1 nilaiAngka = 2 nilaiAngka = 3 nilaiAngka = 4

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 5
C. Percobaan

1. Gunakan loop for untuk membuat program sebagai berikut:


input :n
output : 1 3 4 5 … m ( m = bilangan ganjil ke n)

a. Listing Program

#include <stdio.h>

main()
{
int i,n;

printf("PRAKTIKUM 9 SOAL 1\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM PENAMPIL BILANGAN GANJIL\n");
printf("\n======================================== \n");

printf("\nMasukkan jumlah bilangan ganjil : ");


scanf("%d",&n);

printf("\nHasil pengulangan : ");


n = n * 2;
for(i=1;i<n;i+=2)
{
printf("%d ",i);
}
printf("\n");
}

b. Capture Program

c. Analisis Program

Sejatinya, bilangan ganjil merupakan bilangan yang tidak habis dibagi dengan bilangan
dua. Namun, dengan cara lain, bilangan ganjil juga dapat kita peroleh dengan
menambah 2 (i+=2) tiap bilangan secara terus menerus mulai dari bilangan 1. Agar
banyaknya bilangan ganjil yang dapat ditampilkan dapat dibatasi, maka di control loop
diberikan batas yaitu sebanyak 2 kali n sehingga jumlah bilangan ganjil sesuai dengan
jumlah(n) yang kita inputkan karena pada looping ini sendiri memiliki step sebanyak 2
2 tiap loop.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 6
2. Hitunglah bilangan triangular dari masukan pengguna, yang dibaca dari keyboard
dengan menggunakan scanf(). Bilangan triangular adalah penjumlahan dari bilangan
masukan dengan seluruh bilangan sebelumnya.

Contoh
Input :7
Output : 7 + 6 + 5 + 4 + 3 + 2 + 1 = 28

a. Listing Program

#include <stdio.h>

main()
{
int i,bil,jum = 0;

printf("PRAKTIKUM 9 SOAL 2\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM PENGHITUNG BILANGAN TRIANGULAR\n");
printf("\n======================================== \n");

printf("\nMasukkan bilangan : ");


scanf("%d",&bil);

printf("\nHasil pengulangan : ");


for(i=bil;i>0;i--)
{
printf("%d ",i);
jum = jum + i;

if(i != 1)
printf("+ ");
}
printf("= %d \n",jum);
}

b. Capture Program

c. Analisis Program

Untuk menampilkan bilangan triangular seperti 5 + 4 + 3 + 2 + 1 = 28, kita dapat


menggunakan looping atau pengulangan, dimana looping tersebut adalah looping
menurun dengan operator decrement. Pertama kita harus tahu bilangan maksimal yang
diinputkan kemudian bilangan tersebut kita jadikan patokan nilai awal looping.
Selanjutnya bilangan tadi di-loop hingga bilangan tersebut habis atau sama dengan nol,
di setiap loop / putaran, bilangan tersebut dijumlah dengan bilangan sebelumnya dan
pada akhirnya total dri seluruh penjumlahan tadi dapat kita peroleh dan tampilkan.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 7
3. Gunakan loop for dengan kenaikan varibel negatif untuk menampilkan seluruh karaker
dari Z sampai dengan A dalam baris-baris yang terpisah.

a. Listing Program

#include <stdio.h>

main()
{
int i,bil,jum = 0;
printf("PRAKTIKUM 9 SOAL 3\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM PENAMPIL ABJAD\n");
printf("\n======================================== \n");

printf("Diketahui A = %d dan Z = %d\n\n",'A','Z');

//ASCII Z = 90 dan A = 65
for(i=90;i>=65;i--)
printf("%c \n",i);

printf("\n");
}

b. Capture Program

c. Analisis Program

Dalam bahasa C, setiap karakter memiliki bilangan ASCII sendiri. Untuk huruf kapital,
bilangan ASCII karakter ‘A’ adalah 65 sedangkan Z adalah 90. Maka dari itu, untuk
menampilkan abjad secara terbalik dari Z ke A, kita dapat melakukan looping secara
menurun / decreement dari bilangan 90 hingga 65, kemudian bilangan tersebut dapat
ditampilkan langsung namun harus diformat sebagai karakter.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 8
4. Gunakan loop for untuk membuat program sebagai berikut:
input : n
output : 1 -2 3 -4 5 -6 7 -8 … n

a. Listing Program

#include <stdio.h>

main()
{
int i,n;

printf("PRAKTIKUM 9 SOAL 4\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM PENAMPIL BILANGAN POSTIF NEGATIF\n");
printf("\n======================================== \n");

printf("\nMasukkan jumlah bilangan : ");


scanf("%d",&n);

printf("\nHasil pengulangan : ");


for(i=1;i<=n;i++)
{
if(i % 2 == 0)
printf("%d ",i*-1);
else
printf("%d ",i);
}
printf("\n");
}

b. Capture Program

c. Analisis Program

Sebenarnya program ini adalah program penampil bilangan biasa, namun ada
perbedaan di bilangan kelipatan dua, yaitu bilangan tesebut menjadi bilangan negatif.
Untuk melakukan hal tersebut maka di dalam looping for kita perlu menyisipkan
decision if dimana jika bilangan tersebut habis dibagi 2 maka bilangan tersebut akan
dikalikan dengan (-1) sehingga bilangan tersebut menjadi bilangan negatif, sedangkan
apabila tidak habis dibagi 2, bilangan tesebut dapat langsung ditampilkan.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 9
5. Gunakan loop for untuk mendefinisikan apakah sebuah bilangan adalah bilangan pima
atau bukan
input : 27
output : Bilangan adalah bilangan prima

a. Listing Program

#include <stdio.h>

main()
{
int i,bil,isPrima = 1;

printf("PRAKTIKUM 9 SOAL 5\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM PENGECEK BILANGAN PRIMA\n");
printf("\n======================================== \n");

printf("\nMasukkan bilangan : ");


scanf("%d",&bil);

for(i=bil-1;i>1;i--)
{
if(bil % i == 0 || bil == 1 )
{
isPrima = 0;
break;
}
}

if(isPrima)
printf("\nBilangan %d ADALAH bilangan prima.\n",bil);
else
printf("\nBilangan %d BUKAN bilangan prima.\n",bil);
printf("\n\n");
}

b. Capture Program

c. Analisis Program
Bilangan prima adalah bilangan yang hanya habis dibagi dengan bilangan 1 dan
bilangan itu sendiri. Dari definisi tersebut dapat kita aplikasikan ke dalam bahasa
pemrograman, yaitu untuk mendefiniskan suatu bilangan apakah prima atau tidak kita
dapat menggunakan looping for menurun sesuai dengan bilangan prima tadi hingga
bilangan 1, dimana di setiap loop / putaran kita akan coba apakah bilangan tersebut
habis dibagi dengan bilangan lain dibawahnya kecuali bilangan 1 atau tidak, apabila
habis dibagi, maka loop akan berhenti dan langsung dapat kita definisikan
bahwasannya bilangan tersebut bukanlah bilangan prima bila tidak ada satupun
bilangan di bawah bilangan tersebut yang membanginya habis, maka bilangan tersebut
adalah bilangan prima.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 10
6. Dengan menggunakan looping dan switch case atau else if buatlah program dalam
C untuk menghitung Indeks Prestasi Semester seorang mahasiswa, dimana yang
diinputkan adalah nilai huruf dari 5 mata kuliah yang diikutinya dan jumlah jam mata
kuliah tsb. Dimana konversi nilai huruf ke angka untuk menghitung IPS adalah sebagai
berikut: A -> 4, B->3, C->2, D->1, E->0 dan rumus IPS = jumlah (nilai *
jam)/jumlah jam keseluruhan.

a. Listing Program

#include <stdio.h>

main()
{
int i;
float nilaiAngka, jam, jumNilaiJam = 0, jumJam = 0, ips;
char nilaiHuruf;

printf("PRAKTIKUM 9 SOAL 6\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM PENGHITUNG INDEKS PRESTASI SEMENTARA\n");
printf("\n======================================== \n");

for(i=1;i<=5;i++)
{
fflush(stdin);
printf("\nMasukkan nilai huruf mata kuliah %d \t: ",i);
scanf("%c",&nilaiHuruf);
printf("Masukkan jumlah jam mata kuliah %d \t: ",i);
scanf("%f",&jam);

switch(nilaiHuruf)
{
case 'A':
case 'a' :
nilaiAngka = 4;
break;
case 'B':
case 'b':
nilaiAngka = 3;
break;
case 'C':
case 'c':
nilaiAngka = 2;
break;
case 'D':
case 'd':
nilaiAngka = 1;
break;
case 'E':
case 'e':
nilaiAngka = 0;
break;
}

jumNilaiJam = jumNilaiJam + nilaiAngka * jam;


jumJam = jumJam + jam;

printf("\n");
}

ips = jumNilaiJam / jumJam;


printf("\nIndeks Prestasi Sementara anda adalah %.2f",ips);

printf("\n\n");
}

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 11
b. Capture Program

c. Analisis Program

Pada program ini, setiap looping akan meminta masukkan / input dari user berupa nilai
huruf dan jumlah jam dari sebuah mata kuliah. Agar nilai dapat diproses, maka harus
dikonversi terlebih dahulu menjadi nilai angka, yaitu dengan menggunakan pernyataan
switch. Baru setelah itu nilai dapat diolah sedemikian rupa sehingga dapat diketahui
output berupa indeks prestasi sementara dari siswa pemilik nilai-nilai tersebut.

D. Kesimpulan

1. Pernyataan for adalah salah satu pernyataan dalam bahasa permrograman yang
digunakan untuk menjalankan pengulangan.
2. Pengulangan dengan menggunakan pernyataan for membutuhkan 3 parameter yang
harus diketahui terlebih dahulu yaitu inisialisai, batas dan pengendali loop.
3. Pengulangan menggunakan for, dapat berupa pengulangan yang menurun atau menaik
sesuai dengan operator increment atau decrement yang kita gunakan.
4. Di dalam struktur pengulangan kita dapat memberikan statement-statement atau
pernyataan-pernyataan yang nantinya diulang sesuai dengan pengulangan atau
loopingnya.
5. Jika statemen yang dijalankan hanya satu, maka tidak membutuhkan kurung kurawal
{} bila lebih dari satu maka harus diberikan kurung kurawal sebagai penanda sebuah
blok statement.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 12
PRAKTIKUM 10
Looping : while, do … while

A. Dasar Teori

Seperti yang sudah dijelaskan pada bab sebelumnya, bahwa perulangan yang sudah
diketahui berapa kali akan dijalankan, maka sebaiknya menggunakan perulangan for.
Sedangkan yang belum diketahui berapakali akan diulangi maka dapat menggunakan while atau
do-while. Menggunakan pernyataan while ketika kondisi perluangan diperiksa sebelum
menjalankan pernyataan dan menggunakan do_while ketika perulangan kodisiperulangan
tersebut diperiksa setelah mejalankan pernyataan.

Pada pernyataan while, pemeriksaan terhadap loop dilakukan di bagian awal


(sebelum tubuh loop). Pernyataan while akan diulangi terus selama kondisi bernilai benar,
atau diulangi selama kondisinya benar, jika kondisinya salah maka perulangan (loop)
dianggap selesai. Lebih jelasnya, bentuk pe rnyataan while adalah sebagai berikut :

dengan pernyataan dapat berupa pernyataan tunggal, pernyataan majemuk ataupun


pernyataan kosong. Dengan melihat gambar 10.1, tampak bahwa ada kemungkinan
pernyataan yang merupakan tubuh loop tidak dijalankan sama sekali, yaitu kalau hasil
pengujian kondisi while yang pertama kali ternyata bernilai salah.

Proses pengulangan terhadap pernyataan dijelaskan pada gambar 10.1.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 13
B. Tugas Pendahuluan

1) Flowchart program menampilkan 2) Flowchart program menjumlah 3) Flowchart program mencari


semua bilangan kecuali bilangan X inputan beberapa data jumlah, nilai maksimal, nilai
(x besar). minimal dari inputan beberapa data

START START START

jum = 0 i = 0
READ jwb = ’y’ min = 0
huruf max = 0
jum = 0
jwb = ’y’
READ
n
IF READ
huruf != ‘X’ n
N

Y jum = jum + bil

PRINT jum = jum + bil


huruf
READ
jwb
READ
jwb

END
IF
jwb == ‘y’
N IF
max < bil
Y
||
Y max == 0

READ N max = bil


bil

IF
min > bil Y
||
PRINT min == 0
jum

N min = bil

END

IF
jwb == ‘y’
N

READ
bil

PRINT
jum

END

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 14
4) Flowchart program menampilkan 5) Flowchart program mengitung
deret angka 0 1 3 6 10 15 21…. n jumlah karakter dan spasi.

START START

i = 1 jumHuruf = 0
total = 0 jumSpasi = 0

READ
n READ
huruf

IF
i <= n N
IF
N huruf == ‘’

Y
Y JumHuruf++
total = total + i;

jumSpasi++
PRINT
total

Y IF
i = i + 2 huruf
!= ‘\n’

END
N

END

START

total = 25000k
sisa = total
i = 1

READ 7) Flowchart menghitung


cicilan, naik
lamanya bulan pencicilan biaya
i++ haji

IF
sisa > 0
N

IF Y
sisa =
i % 12
== 0 total + total * naik /100

sisa =
sisa - cicilan

END PRINT
i

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 15
6) Flowchart program A
menghitung jumlah angka dari
suatu bilangan
IF Y
kar == ‘1’
START

N angka = 1

jum = 0
IF Y
kar == ‘2’

READ N angka = 2
kar

IF Y
kar == ‘3’
A

N angka = 3
B

IF Y
jum = jum + angka kar == ‘4’

N angka = 4
PRINT
kar

IF Y
kar == ‘5’

Y IF N angka = 5
huruf
!= ‘\n’

IF Y
kar == ‘6’
N

PRINT N angka = 6
kar

IF Y
kar == ‘7’
END

N angka = 7

IF Y
kar == ‘8’

N angka = 8

IF Y
kar == ‘9’

N
angka = 9

angka = 0

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 16
C. Percobaan

1. Gunakan loop while untuk membuat program yang dapat menampilkan semua
karakter yang diketikkan di keyboard sampai yang diketikkan pada keybord huruf ‘X’ (x
besar).

a. Listing Program

#include <stdio.h>

main()
{
char huruf;

printf("PRAKTIKUM 10 SOAL 1\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM BERHENTI KETIKA X DITEKAN\n");
printf("\n======================================== \n");

printf("\nKetik sembarang karakter kemudian Enter : \n");

huruf = getchar();

while(huruf != 'X')
{
huruf = getchar();
}

printf("Program dihentikan karena anda menginputkan karakter X\n");


}

b. Capture Program

c. Analisis Program

Pada program ini, pengulangan while akan melakukan seleksi terhadap masukkan
yang diinputkan user. Pengulangan while akan terus dijalankan selama kondisi benar
yaitu ketika karakter yang dimasukkan tidak sama dengan X (x besar).

2. Gunakan loop while untuk membuat program yang dapat mencari total angka yang
dimasukkan.

a. Listing Program

#include <stdio.h>

main()
{
int i = 1, jum = 0, bil;
char jwb;

printf("PRAKTIKUM 10 SOAL 2\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM PENJUMLAH BILANGAN\n");
printf("\n======================================== \n");

do
Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 17
{
fflush(stdin);
printf("\nMasukkan bilangan ke %d \t = ",i);
scanf("%d", &bil);

jum = jum + bil;

printf("Mau coba lagi [Y/T]? ");

fflush(stdin);
scanf("%c",&jwb);

i++;
} while(jwb == 'Y' || jwb == 'y');

printf("\nHasil penjumlahan diatas adalah %d",jum);


}

b. Capture Program

c. Analisis Program

Karena program ini setidaknya harus dijalankan minimal sekali, maka jenis
pengulangan yang cocok adalah pengulangan do while. Untuk setiap kali
pengulangan, program akan meminta untuk menginputkan bilangan, dari setiap
pengulangan tadi akan dilakukan operasi penjumlahan. Ketika pengulangan berhenti,
yaitu ketika user memasukkan karakter T, hasil penjumlahan dari semua bilangan
yang dimasukkan tadi dapat ditampilkan segera.

3. Pada program no 2 tambahkan rata-rata, maksimum dan minimum dari angka yang
dimasukkan.

a. Listing Program

#include <stdio.h>

main()
{
int i = 1, jum = 0, rata = 0, min=0, max=0, bil;
char jwb = 'y';

printf("PRAKTIKUM 10 SOAL 3\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM PENJUMLAH BILANGAN\n");
printf("\n======================================== \n");

while(jwb == 'Y' || jwb == 'y')


{
fflush(stdin);
printf("\nMasukkan bilangan ke %d \t = ",i);
scanf("%d", &bil);

jum = jum + bil;

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 18
if(max < bil || max == 0)
max = bil;

if(min > bil || min == 0)


min = bil;

printf("Mau coba lagi [Y/T]? ");

fflush(stdin);
scanf("%c",&jwb);

i++;
}

rata = jum / (i -1);


printf("\nTotal bilangan \t= %d",jum);
printf("\nRata-rata \t= %d",rata);
printf("\nNilai Minimal \t= %d",min);
printf("\nNilai Maksimal \t= %d",max);
}

b. Capture Program

c. Analisis Program

Sama dengan soal no 2, bedanya disini kita harus mencari nilai maksimal, minimum
dan rata-rata. Untuk memperoleh nilai maksimal kita banding-bandingkan nilai yang
dimasukkan setiap pengulangan. Jika nilai yang dimasukkan lebih besar dari nilai
maksimal sebelumnya maka nilai maksimal adalah nilai tersebut. Apabila nilai yang
dimasukkan lebih kecil daripada nilai minimal sebelumnya yang ada, maka nilai
minimal adalah nilai tersebut. Sedangkan nilai rata-rata didapat dari jumlah semua
bilangan yang kemudian dibagi dengan jumlah pengulangan.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 19
4. Dengan menggunakan pernyataan looping, buatlah program berikut:
Input : n
output : 0 1 3 6 10 15 21 28 …. Bilangan ke n

a. Listing Program

#include <stdio.h>

main()
{
int i,n,total=0;
printf("PRAKTIKUM 10 SOAL 4\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM PENAMPIL BARIS GEOMETRI\n");
printf("\n======================================== \n");

printf("\nMasukkan jumlah bilangan : ");


scanf("%d",&n);

printf("\nHasil pengulangan : ");


for(i=0;i<n;i++)
{
total = total + i;
printf("%d ",total);
}
printf("\n");
}

b. Capture Program

c. Analisis Program

Pada program ini, step atau langkah tiap pengulangan dimodifikasi sehingga di setiap
perulangan step atau langkah bertambah 1. Dengan cara tersebut maka akan dapat
ditampilkan deret seperti diatas.

5. Gunakan while pada program yang digunakan untuk menghitung banyaknya karakter
dari kalimat yang dimasukkan melalui keyboard (termasuk karakter spasi). Untuk
mengakhiri pemasukan kalimat, tombol ENTER (‘\n’) harus ditekan

Input : Ketikkan sembarang kalimat


Output :

jumlah karakter = m
jumlah spasi = n

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 20
a. Listing Program

#include <stdio.h>

main()
{
char karakter;
int jum = 0,jumspasi=0;

printf("PRAKTIKUM 10 SOAL 5\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM PENGHITUNG JUMLAH KARAKTER\n");
printf("\n======================================== \n");
printf("\nMasukkan kalimat sembarang = ");
do
{
scanf("%c",&karakter);

if(karakter == ' ')


jumspasi++;
else
jum++;

} while(karakter != '\n');

printf("\nJumlah semua karakter \t = %d",jum);


printf("\nJumlah karakter spasi \t = %d",jumspasi);
}

b. Capture Program

c. Analisis Program

Penggunaan do while pada program ini difungsikan sebagai pengulangan untuk setiap
karakter atau spasi yang dimasukkan user. Untuk setiap pengulangan, program akan
mencatat dan menghitung jumlah karakter atau spasi yang diinputkan secara
increment. Ketika pengulangan selesai atau ketika user menekan [Enter], program
akan menampilkan jumlah dari karakter dan spasi yang dimasukkan tadi.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 21
6. Buatlah program untuk menghitung jumlah angka dari suatu bilangan.
Contohnya : Jumlah angka dari bilangan 3255 = 3 + 2 + 5 + 5 = 15
Jumlah angka dari bilangan 4589 = 4 + 5 + 8 + 9 = 26
dan sebagainya
.
a. Listing Program

#include <stdio.h>

main()
{
char kar;
int i,angka,jum = 0;

printf("PRAKTIKUM 10 SOAL 6\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PENGHITUNG JUMLAH ANGKA SUATU BILANGAN\n");
printf("\n======================================== \n");

printf("\nMasukkan bilangan\t = ");

i = 1;
do
{
kar = getchar();

switch(kar)
{
case '1': angka = 1; break;
case '2': angka = 2; break;
case '3': angka = 3; break;
case '4': angka = 4; break;
case '5': angka = 5; break;
case '6': angka = 6; break;
case '7': angka = 7; break;
case '8': angka = 8; break;
case '9': angka = 9; break;
case '0': angka = 0; break;
}

if(kar != '\n')
{
jum = jum + angka;
if(i != 1) //Menghilangkan + pada angka pertama
printf("+ ");
printf("%d ", angka);
i++;
}

} while(kar != '\n');
printf("\b \b = %d \n\n",jum);
}

b. Capture Program

c. Analisis Program

Untuk melakukan operasi jumlah angka suatu bilangan, hal yang perlu kita lakukan
adalah membaca inputan bilangan user karakter per karakter dahulu. Kemudian dari

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 22
tiap karakter tadi kita konversi menjadi bilangan atau integer menggunakan decision
switch sehingga dapat kita hitung dan ketahui jumlah dari tiap angka di bilangan
tersebut.

7. Seorang mau menabung untuk pembiayaan ibadah hajinya. Biaya ibadah haji saat ini
senilai a juta. Jika tiap bulan dia mampu menabung sebesar b rupiah. Dengan program
anda yang menggunakan fungsi, bantulah orang ini untuk menghitung berapa bulan
dia butuhkan agar biaya hajinya bisa terpenuhi. Yang menjadikan masalah ini tidak
dapat diselesaikan dengan pembagian langsung a/b adalah bahwa setiap tahun biaya
haji naik rata-rata c% dari biaya awal (a). Nilai a, b, c dimasukkan oleh user.

a. Listing Program

#include <stdio.h>

main()
{
float total,cicilan,kenaikan,sisa;
int i = 0;

printf("PRAKTIKUM 10 SOAL 7\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM PENGHITUNG LAMA CICILAN HAJI\n");
printf("\n======================================== \n");

printf("\nMasukkan total biaya haji\t = Rp.");


scanf("%f",&total);
printf("\nMasukkan cicilan tiap bulan\t = Rp.");
scanf("%f",&cicilan);
printf("\nMasukkan prosentase kenaikan tiap tahun = ");
scanf("%f",&kenaikan);

sisa = total;
while(sisa > 0)
{
i++;
if(i % 12 == 0)
sisa = sisa + (total * (kenaikan / 100));
sisa = sisa - cicilan;
}

printf("\nWaktu yang dibutuhkan untuk melunasi biaya haji adalah %d


bulan",i);
}

b. Capture Program

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 23
c. Analisis Program

Seseorang dikatakan lunas membayar apabila sisa pinjamannya tidak lebih dari nol
Untuk menghitung jumlah bulan pelunasan seperti ini, kita dapat menggunakan
pengulangan do while yaitu pengulangan sampai sisa pinjaman habis. Perlakuan
khusus dengan pernyataan if diberikan tiap bulan ke-12, karena pada bulan tersebut
jumlah pinjaman meningkat sebanyak n % dari jumlah total pinjaman sehingga
menyebabkan proses pelunasan menjadi lebih lama.

D. Tugas Tambahan

1. Tambahkan program yang ada pada soal no 4 dengan menghitung huruf kecil, huruf
besar dan karakter angka.

a. Listing Program

#include <stdio.h>

main()
{
char karakter;
int jumspasi=0,jumupp=0,jumlow=0,jumint=0;

printf("PRAKTIKUM 10 SOAL Tambahan\nRENDRA | 2110131036 |


1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM PENGHITUNG JUMLAH KARAKTER\n");
printf("\n======================================== \n");

printf("A = %d, Z = %d, a = %d, z = %d, 0 = %d, 9 = %d


\n",'A','Z','a','z','0','9');
printf("\nMasukkan kalimat sembarang = ");
do
{
scanf("%c",&karakter);

if(karakter == ' ')


jumspasi++;
else if(karakter <= 90 && karakter >= 65)
jumupp++;
else if(karakter <= 122 && karakter >= 97)
jumlow++;
else if(karakter <= 57 && karakter >= 48)
jumint++;

} while(karakter != '\n');

printf("\nJumlah semua karakter \t = %d",jumspasi + jumupp +


jumlow + jumint);
printf("\nJumlah karakter spasi \t = %d",jumspasi);
printf("\nJumlah karakter kapital\t = %d",jumupp);
printf("\nJumlah karakter kecil \t = %d",jumlow);
printf("\nJumlah karakter angka \t = %d",jumint);
}

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 24
b. Capture Program

c. Analisis Program

Hampir sama dengan soal no 5, soal ini adalah pengembangannya dimana setiap
inputan yang berupa karakter kita seleksi menggunakan decision if sesuai dengan
nilai ASCII masing-masing karakter.

2. Untuk soal no.6 jika nilai c adalah kenaikan dari tahun sebelumnya dan setiap 6 bulan
sekali dia mendapatkan bonus gaji sebesar d ribu yang selalu dia gunakan untuk
menambah tabungan hajinya berapa bulan dia butuhkan agar biaya hajinya terpenuhi?

a. Listing Program

#include <stdio.h>

main()
{
float total,cicilan,kenaikan,bonus,sisa;
int i = 0;

printf("PRAKTIKUM 10 SOAL 7\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM PENGHITUNG LAMA CICILAN HAJI\n");
printf("\n======================================== \n");

printf("\nMasukkan total biaya haji\t = Rp.");


scanf("%f",&total);
printf("\nMasukkan cicilan tiap bulan\t = Rp.");
scanf("%f",&cicilan);
printf("\nMasukkan prosentase kenaikan tiap tahun = ");
scanf("%f",&kenaikan);
printf("\nMasukkan bonus gaji tiap 6 bulan\t = Rp. ");
scanf("%f",&bonus);

sisa = total;
while(sisa > 0)
{
i++;
if(i % 12 == 0)
sisa = sisa + (total * (kenaikan / 100));
if(i % 6 == 0)
sisa = sisa - bonus;

sisa = sisa - cicilan;

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 25
}

printf("\nWaktu yang dibutuhkan untuk melunasi biaya haji adalah


%d bulan",i);

b. Capture Program

c. Analisis Program

Pengembangan dari soal no 7 dimana setiap 6 bulan sekali sisa pinjaman akan
dikurangi jumlah bonus yang diterima. Untuk mengatasi hal ini, sama seperti
sebelumnya yaitu menggunakan operator modulus untuk mengetahui interval 6 bulan
tersebut.

E. Kesimpulan

1. Pernyataan while dan do while adalah pernyataan lain selain for yang digunakan untuk
melakukan pengulangan pada program
2. Perbedaan while dan do while dengan for terletak pada parameter-parameternya dimana
pada for sudah diketahui berapa kali akan dijalankan. Sedangkan pada while dan do while
tidak.
3. Pada pernyataan while kondisi diperiksa di awal ketika akan melakukan pengulangan
sehingga bisa saja pengulangan tidak terjadi.
4. Pada pernyataan do while kondisi diperiksa di akhir pengulangan sehingga mau tidak mau
program akan dijalankan minimal satu kali.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 26
PRAKTIKUM 11
Looping : Looping : break, continue, nested loop

A. Dasar Teori

Untuk keluar dari perulangan/loop dapat dilakukan setelah sarat perulangan dipenuhi.
Akan tetapi ada cara lain untuk keluar dari perulangan walaupun sarat belum terpenuhi, yaitu
dengan menggunakan pernyataan break. Pernyataan break sesungguhnya telah diperkenalkan
pada pernyataan switch. Pernyataan ini berfungsi untuk keluar dari loop for, do-while dan
while. Sedangkan pada switch yaitu untuk menuju ke akhir (keluar dari) struktur switch.
Pernyataan break digunakan untuk keluar dari satu blok
Selain pernyataan break ada juga pernyataan yang berhubungan dengan perulangan yaitu
pernyataan continue. Pernyataan continue digunakan untuk mengarahkan eksekusi ke iterasi
(proses) berikutnya pada loop yang sama. Pada do-while dan while, pernyataan continue
menyebabkan eksekusi menuju ke kondisi pengujian pengulangan. Pada loop for, pernyataan
continue menyebabkan bagian penaik variabel pengendali loop dikerjakan dan kondisi untuk
keluar dari loop for diuji kembali. Ilustrasi flowchart yang menunjukkan perbedaan break
dan continue ditunjukkan pada gambar 11.1.

Selain dua pernyataan diatas masih ada pernyataan yang berhubungan dengan loop yaitu
goto. Pernyataan goto merupakan intruksi untuk mengarahkan eksekusi ke pernyataan yang
diawali dengan suatu label. Label sendiri berupa suatu pengenal (identifier) yang diikuti
dengan tanda titik dua (:)
Contoh pemakaian goto:
goto cetak;
Mengisyaratkan agar eksekusi dilanjutkan ke pernyataan yang diawali dengan label
cetak: . Pernyataan ini sebaiknya tidak digunakan.
Untuk menghentikan program tanpa harus menyelesaikan sampai akhir pernyataan, yaitu
melalui pemanggilan fungsi exit(). Hal ini biasa dilakukan, jika di dalam suatu eksekusi terdapat
suatu kondisi yang tak dikehendaki. Prototipe dari fungsi exit() didefinisikan pada file stdlib.h,
yang memiliki deklarasi sebagai berikut :
void exit(int status);
Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 27
status biasanya diberi nilai 0 untuk pernghentian program secara normal.

Loop di dalam Loop

Dalam suatu loop bisa terkandung loop yang lain, sehingga jika loop tersebut
diulangi n kali dan loop yang didalamnya dijuga dilakukan m kali maka pernyataan yang berada
didalam nested loop sebanyak n x n. Loop yang terletak di dalam loop biasa disebut
dengan loop di dalam loop (nested loop). Salah satu contoh nested loop misalnya pada
permasalahan untuk membuat tabel perkalian:

Implementasi dalam program selengkapnya adalah sebagai berikut :

for (baris = 1; baris <= MAKS; baris++) {


for (kolom = 1; kolom <= MAKS; kolom++) {
hasil_kali = baris * kolom;
printf ("%2d", hasil_kali);
}
printf("\n"); /* pindah baris */
}

Bagian yang terletak dalam bingkai di depan dapat dapat diperoleh melalui

for (baris = 1; baris <= MAKS; baris++)


{
hasil_kali = baris * kolom;
printf (“%2d”, hasil_kali);
}

dengan MAKS didefinisikan bernilai 8. Bagian loop yang terdalam :

for (kolom = 1; kolom <= MAKS; kolom++)


{
hasil_kali = baris * kolom;
printf (“%2d”, hasil_kali);
}

digunakan untuk mencetak suatu deret hasil perkalian dalam satu baris. Untuk berpindah ke baris
berikutnya, pernyataan yang digunakan yaitu printf(“\n”); Adapun pencetakan untuk semua
baris dikendalikan melalui

for (baris = 1; baris <= MAKS; baris++)

Pernyataan di atas mempunyai arti “dari baris ke-1 sampai dengan baris ke-MAKS”.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 28
B. Tugas Pendahuluan

1) Flowchart program yang akan berhenti 2) Flowchart program menampilkan bilangan di


ketika user menekan ENTER bawah 100 kecuali kelipatan 7 dan 11

START
START

i = 1
kar = ‘ ’

READ
n

READ
kar i = i + 2

IF N
i < n
IF
huruf
== ‘\n’ Y

break
N
IF
i < 100

Y
END

break

3) Flowchart program penampil bilangan ganjil


kecuali kelipatan 3

IF
START N i % 7==0
||
i % 11== 0

i = 1
Y

continue
READ
n

i = i + 2
PRINT
i

IF
i < n
N

Y END

Y IF
continue i % 3
== 0

PRINT
i

END

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 29
4) Flowchart program untuk menerima 5) Flowchart program membentuk 6) Flowchart program
daftar nilai mahasiswa matriks n x n membentuk matriks bertingkat

START START
START

i = 0 READ READ
min = 0 n n
max = 0
jum = 0
jwb = ’y’
i = 1 i = 1

i++ i++
READ
n

i++ N N
IF IF
i <= n i <= n

N
IF Y Y
n <= i

j = 1 j = 1
Y
j++ j++
jum = jum + bil + +

N N
IF IF
j <= n j <= i
IF
Y
max < bil Y Y
||
max == 0
PRINT PRINT
j i
N max = bil

IF
min > bil Y
||
min == 0

END END
N min = bil

START
7) Flowchart program dengan
konfirmasi ingin keluar program
rata = jum / i
char jwb
atau tidak.

PRINT
jum,rata,min,max
READ
jwb

END

Kode Program

IF N
jwb
!= ‘y’

END

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 30
C. Percobaan
1. Dengan menggunakan pernyataan break, buatlah program yang dapat menampilkan
semua tampilan karakter yang diketikkan dan program berakhir ketika ditekan tombol
Enter.

a. Listing Program

#include <stdio.h>

main()
{
char huruf = ' ';
printf("PRAKTIKUM 11 SOAL 1\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM BERHENTI KETIKA ENTER DITEKAN\n");
printf("\n======================================== \n");

printf("\nKetik sembarang karakter kemudian tekan enter : \n");

do
{
if(huruf == '\n')
break;

huruf = getchar();

} while(1);

puts("Program dihentikan karena anda menekan Enter");


}

b. Capture Program

c. Analisis Program

Program ini menggunakan do while untuk melakukan pengulangan pembacaan


karakter per karakter. Pengulangan akan terus menerus dilakukan karena kondisi
dibuat selalu benar (True) hingga user mengetikkan [Enter] yang dalam bahasa C
disimbolkan dengan karakter ‘\n’.

2. Dengan menggunakan pernyataan continue, buatlah program yang dapat


menampilkan bilangan ganjil dari 1 sampai < n (n diinputkan), kecuali bilangan
ganjil tersebut kelipatan 3.
Contoh Input : 10
Output : 1 5 7

a. Listing Program
#include <stdio.h>

main()
{
int i,n;

printf("PRAKTIKUM 11 SOAL 2\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("BILANGAN GANJIL KECUALI KELIPATAN 3 \n");
printf("\n======================================== \n");
Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 31
printf("\nMasukkan jumlah bilangan ganjil : ");
scanf("%d",&n);

printf("\nHasil pengulangan : ");


for(i=1;i<n;i+=2)
{
if(i % 3 == 0)
{
continue;
}
printf("%d ",i);
}

printf("\n");
}

b. Capture Program

c. Analisis Program

Untuk menskip bilangan kelipatan 3 pada pengulangan, maka hal yang perlu kita
lakukan tentunya pertama adalah mengecek bilangan tersebut apakah kelipatan 3 atau
bukan, caranya yaitu dengan menggunakan operator modulus / sisa bagi. Jika sisa bagi
bilangan tersebut dengan 3 adalah nol, maka bisa dipastikan bilangan tersebut adalah
bilangan kelipatan 3. Dan untuk menskip nya digunakan perintah continue yang akan
melanjutkan pengulangan langsung ke pengulangan selanjutnya.

3. Dengan menggunakan pernyataan break dan continue, buatlah program untuk membuat
program dengan input n, dan output, bilangan ganjil kecuali kelipatan 7 dan 11 mulai dari
1 sampai < n atau bilangan tersebut <100
Contoh
Input : 20
Output : 1 3 5 9 13 15 17 19

a. Listing Program
#include <stdio.h>

main()
{
int i,n;

printf("PRAKTIKUM 11 SOAL 3\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("BILANGAN GANJIL < 100 KECUALI KEL. 7 & 11 \n");
printf("\n======================================== \n");

printf("\nMasukkan batas bilangan = ");


scanf("%d",&n);

printf("\nHasil pengulangan \t= ");


for(i=1;i<n;i+=2)

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 32
{
if(i > 100)
break;

if(i % 7 == 0 || i % 11 == 0)
continue;

printf("%d ",i);
}
printf("\n");
}
b. Capture Program

c. Analisis Program

Untuk menghilangkan bilangan ganjil yang kelipatan 7 dan 11, maka di setiap
pengulangan perlu kita beri perlakuan khusus dengan decision if, dimana apabila
bilangan tersebut habis dibagi dengan bilangan 7 atau 11 maka pengulangan akan di-
skip menggunakan pernyataan continue. Pengulangan akan berhenti sesuai bilangan
yang dimasukkan oleh user, tapi tidak bisa lebih dari 100 karena telah dibatasi
pernyataan break;

4. Buatlah program untuk menerima daftar nilai mahasiswa sbb :


Input : - Jumlah data (n)
- Nilai ke-1 s/d Nilai ke-n
Output : - Nilai minimal
- Nilai maksimal
- Nilai rata-rata (rata-rata = nilai total / jumlah data)
(Petunjuk : Gunakan loop for dan seleksi kondisi dengan if)

a. Listing Program

#include <stdio.h>

main()
{
int i,n;
float nilai, jum = 0, max = 0, min = 0, rata;

printf("PRAKTIKUM 11 SOAL 5\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM PENJUMLAH HINGGA BILANGAN KE-n \n");
printf("\n======================================== \n");

printf("\nMasukkan jumlah data \t = ");


scanf("%d", &n);

for(i=1;i<=n;i++)
{
Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 33
fflush(stdin);
printf("\nMasukkan nilai ke %d \t = ",i);
scanf("%f", &nilai);

jum = jum + nilai;

if(i == 1)
{
max = nilai;
min = nilai;
}
else
{
if(max < nilai)
max = nilai;

if(min > nilai)


min = nilai;
}
}

printf("\nNilai maksimal \t\t = %0.2f",max);


printf("\nNilai minimal \t\t = %0.2f",min);
printf("\nNilai rata-rata \t = %0.2f",jum / n);
}

b. Capture Program

c. Analisis Program

Untuk mengumpulkan data nilai, program akan melakukan pengulangan sesuai


jumlah data yang diinputkan sebelumnya. Di tiap pengulangan, kita akan dimintai
inputan nilai yang kemudian akan diolah untuk mendapatkan nilai max, min dan rata-
rata. Untuk memperoleh nilai maksimal kita banding-bandingkan nilai yang
dimasukkan setiap pengulangan. Jika nilai yang dimasukkan lebih besar dari nilai
maksimal sebelumnya maka nilai maksimal adalah nilai tersebut. Apabila nilai yang
dimasukkan lebih kecil daripada nilai minimal sebelumnya yang ada, maka nilai
minimal adalah nilai tersebut. Sedangkan nilai rata-rata didapat dari jumlah semua
bilangan yang kemudian dibagi dengan jumlah pengulangan.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 34
5. Dengan menggunakan pernyataan nested loop, buatlah program berikut:
Input :n
Output :

a. Listing Program

#include <stdio.h>

main()
{
int i,j,n;

printf("PRAKTIKUM 11 SOAL 5\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("MEMBUAT MATRIK n x n \n");
printf("\n======================================== \n");

printf("\nMasukkan jumlah data \t = ");


scanf("%d", &n);

printf("\n\nHasil pengulangan \t = \n");

for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%d ",j);
}
printf("\n");
}
}
b. Capture Program

c. Analisis Program

Untuk membentuk matriks seperti ini, diperlukanlah loop bersarang atau nested loop
atau bisa juga disebut loop di dalam loop. Looping pertama akan membuat baris pada
matriks sedangkan looping kedua yaitu looping yang berada di dalam loop pertama
akan menyatakan kolom dari matriks tersebut.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 35
6. Dengan menggunakan pernyataan nested loop, buatlah program berikut:
Input :n
Output :

a. Listing Program

#include <stdio.h>

main()
{
int i,j,n;

printf("PRAKTIKUM 11 SOAL 6\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("MEMBUAT MATRIK BERTAMBAH \n");
printf("\n======================================== \n");

printf("\nMasukkan jumlah data \t = ");


scanf("%d", &n);
printf("\nHasil pengulangan \t = \n\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
printf("%d ",i);
}
printf("\n");
}
}

b. Capture Program

c. Analisis Program

Sama halnya soal no 5, disini kita menggunakan nested loop dimana loop pertama
menyatakan baris sedangkan loop kedua menyatakan kolom, perbedaannya pada
program ini adalah penampilan baris dibatasi yaitu tidak lebih dari no baris.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 36
7. Pada akhir setiap 4 buah program diatas tambahkan tanyaan “apakah anda ingin
keluar (y/t)?”, pertanyaan tersebut hanya bisa di jawab dengan huruf ‘y’ (y kecil) dan ‘t’(t
kecil). Dan akan keluar dari program setelah dijawab dengan ‘y’ (y kecil)
a. Listing Program
#include <stdio.h>

main()
{
char jwb;
int i,n;
printf("PRAKTIKUM 11 SOAL 7a\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("BILANGAN GANJIL < 100 KECUALI KEL. 7 & 11 \n");
printf("\n======================================== \n");

do
{
// UNTUK 4 SCRIPT PROGRAM DIATAS BISA DITARUH DISINI, CONTOH :
printf("\nMasukkan batas bilangan = ");
scanf("%d",&n);
printf("\nHasil pengulangan \t= ");
for(i=1;i<n;i+=2)
{
if(i > 100)
break;

if(i % 7 == 0 || i % 11 == 0)
continue;

printf("%d ",i);
}
// HINGGA DISINI

printf("\n\n");
printf("Apakah anda ingin keluar [y/t]?");
fflush(stdin);
jwb = getchar();
} while(jwb != 'y');
}

b. Capture Program

c. Analisis Program
Pada program ini ditambahkan pengulangan do while agar program yang dijalankan
dapat diulang-ulang hingga user menginginkan sendiri untuk keluar yaitu dengan
memasukkan karakter [y] ketika ada pertanyaan. Pemilihan pengulangan do while
adalah karena setidaknya program akan dijalankan minimal satu kali.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 37
D. Tugas Tambahan
Dengan menggunakan pernyataan nested loop, buatlah program berikut:
Input :n
Output : 2 3 5 7 11…. Bilangan prima ke n

1. Listing Program

#include <stdio.h>

main()
{
int i = 1 ,bil = 2, pembagi, n, isPrima;

printf("PRAKTIKUM 11 SOAL TAMBAHAN\nRENDRA | 2110131036 | 1D4ITB\n");


printf("\n======================================== \n\n");
printf("PROGRAM DERET BILANGAN BRIMA \n");
printf("\n======================================== \n");

printf("\nMasukkan banyaknya bilangan \t = ");


scanf("%d", &n);

printf("\nDaftar bilangan prima \t\t = ");


while(i <= n)
{
isPrima = 1;
for(pembagi=2;pembagi<bil;pembagi++)
{
if(bil % pembagi == 0)
{
isPrima = 0;
break;
}
}

if(isPrima)
{
printf("%d ",bil);
i++;
}

bil++;
}
}

2. Capture Program

3. Analisis Program

Untuk membuat deret bilangan prima dibutuhkan nested loop. Loop pertama adalah loop
untuk menampilkan deret bilangan sedangkan loop kedua adalah loop untuk mengecek
bilangan tersebut, apakah bisa habis dibagi bilangan lain selain bilangan itu dan bilangan
satu atau tidak. Jika tidak ada satupun bilangan selain bilangan 1 di bawah bilangan
tersebut yang bisa membagi, maka bisa langsung ditampilkan di deret karena bilangan
tersebut adalah bilangan prima.

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 38
E. Kesimpulan

1. Di dalam pengulangan atau looping terdapat beberapa pernyataan yang menyebabkan


jalannya looping tersebut berubah yaitu pernyataan break dan continue.
2. Pernyataan break berfungsi untuk keluar dari loop for, do-while dan while.
3. Pernyataan continue digunakan untuk mengarahkan eksekusi ke iterasi (proses)
berikutnya pada loop yang sama.
4. Pernyataan goto merupakan intruksi untuk mengarahkan eksekusi ke pernyataan
yang diawali dengan suatu label. Label sendiri berupa suatu pengenal (identifier)
yang diikuti dengan tanda titik dua (:)
5. Pernyataan exit digunakan untuk menghentikan program tanpa harus menyelesaikan
sampai akhir pernyataan, yaitu melalui pemanggilan fungsi exit().
6. Dalam suatu loop bisa terkandung loop yang lain, sehingga jika loop tersebut
diulangi n kali dan loop yang didalamnya dijuga dilakukan m kali maka pernyataan yang
berada didalam nested loop sebanyak n x n. Loop yang terletak di dalam loop
biasa disebut dengan loop di dalam loop (nested loop).

Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 39

Anda mungkin juga menyukai