Looping : For
A. Dasar Teori
Untuk kasus 1 seharusnya menggunakan perulangan dengan penyataan for . Sedangkan pada
kasus 2a dan 2b akan menggunakan pernyataa while atau do while.
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 :
Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 1
B. Tugas Pendahuluan
a. Algoritma
i = 1
Deklarasikan i dan n sebagai bilangan bulat
Y
b. Flowchart →
PRINT
i
i = i + 2
END
START
2. Program Penghitung Bilangan Triangular
a. Algoritma jum = 0
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.
b. Flowchart →
i = i + 1
END
a. Algoritma
Deklarasikan i dan n sebagai bilangan bulat i = 1
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
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
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
Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 5
C. Percobaan
a. Listing Program
#include <stdio.h>
main()
{
int i,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;
if(i != 1)
printf("+ ");
}
printf("= %d \n",jum);
}
b. Capture Program
c. Analisis Program
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");
//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;
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;
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;
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;
}
printf("\n");
}
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.
Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 13
B. Tugas Pendahuluan
jum = 0 i = 0
READ jwb = ’y’ min = 0
huruf max = 0
jum = 0
jwb = ’y’
READ
n
IF READ
huruf != ‘X’ n
N
END
IF
jwb == ‘y’
N IF
max < bil
Y
||
Y max == 0
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
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;
huruf = getchar();
while(huruf != 'X')
{
huruf = getchar();
}
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;
do
Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 17
{
fflush(stdin);
printf("\nMasukkan bilangan ke %d \t = ",i);
scanf("%d", &bil);
fflush(stdin);
scanf("%c",&jwb);
i++;
} while(jwb == 'Y' || jwb == 'y');
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';
Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 18
if(max < bil || max == 0)
max = bil;
fflush(stdin);
scanf("%c",&jwb);
i++;
}
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");
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
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;
} while(karakter != '\n');
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;
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;
sisa = total;
while(sisa > 0)
{
i++;
if(i % 12 == 0)
sisa = sisa + (total * (kenaikan / 100));
sisa = sisa - cicilan;
}
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;
} while(karakter != '\n');
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;
sisa = total;
while(sisa > 0)
{
i++;
if(i % 12 == 0)
sisa = sisa + (total * (kenaikan / 100));
if(i % 6 == 0)
sisa = sisa - bonus;
Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 25
}
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.
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:
Bagian yang terletak dalam bingkai di depan dapat dapat diperoleh melalui
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
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
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
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");
do
{
if(huruf == '\n')
break;
huruf = getchar();
} while(1);
b. Capture Program
c. Analisis Program
a. Listing Program
#include <stdio.h>
main()
{
int i,n;
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;
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;
a. Listing Program
#include <stdio.h>
main()
{
int i,n;
float nilai, jum = 0, max = 0, min = 0, rata;
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);
if(i == 1)
{
max = nilai;
min = nilai;
}
else
{
if(max < nilai)
max = nilai;
b. Capture Program
c. Analisis Program
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;
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;
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;
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
Laporan Praktikum Konsep Pemrograman – Pengulangan | Rendra Budi Hutama | 2110131036 Halaman 39