Struktur Kendali Dalam C++ Page 1 STRUKTUR PERULANGAN (LOOPING)
Merupakan fasilitas bahasa C++ yang mampu melakukan proses pengulangan karena itu komputer dapat mengerjakan proses berulang-ulang dengan cepat dan tepat.
Konstruksi pengulangan dalam C++ meliputi: - Perintah for
- Perintah do-while - Perintah while
For Loop
C++ memiliki dua jenis pengulangan for-fixed dan conditional. Syntax:
for ( <initialisai variable pengulangan>; <kondisi>; <penambahan/pengurangan variable> ) { <statement> ... <statement> } Contoh :
for (i=0; i<10; i=i+1) cout << i << “\n”; Contoh Program: #include <iostream.h> #include <conio.h> main() { double sum=0; double sumx=0.0; int first,last,temp;
cout << "Enter the first integer : "; cin >> first; cout << "Enter the second integer : "; cin >> last; if (first>last) { temp = first; first = last; last = temp; }
for (int i=first; i<=last; i++) {
Struktur Kendali Dalam C++ Page 2
sumx += (double) i; }
cout << "Sum of integer from "<< first << " to " << last << " = " << sumx << "\n";
cout << "Avarage value = " << sumx/sum << endl; getch();
}
Hasil Program :
Infinite Loop
C++ mengijinkan pembentukan infinite loop / open loop, dengan menghilangkan ketiga parameter yang ada pada for loop.
Contoh program :
// nama file :infinite-loop-1.cpp #include <iostream.h>
#include <conio.h>
#include <ctype.h> // toupper main() { char ch; double x,y; for (;;) {
cout << "\nEnter a number = "; cin >> x; if (x!=0)
{ y=1/x;
cout << "1/"<<x<<" = " << y << "\n"; cout <<"More calculation? (Y/N)"; cin >> ch; ch=toupper(ch); if (ch!='Y') break; } else
Struktur Kendali Dalam C++ Page 3
cout << "Error : cannot accept 0\n"; }
getch(); }
Hasil Program :
Do-While Loop
Loop ini dikenal dengan nama conditional loop, dimana kondisi pengulangan diperiksa pada akhir blok loop. Syntax : do { <sequence of statements> } while (condition); Contoh : int i = 2; do { cout << i << “ ^2 = “ << i * i << “\n”; } while ( ++i < 11 ); Contoh Program :
// nama file :infinite-loop-1.cpp #include <iostream.h> #include <conio.h> #include <math.h> main() { char ch; double x,y; do {
cout << "Enter a number = "; cin >> x; if (x!=0)
Struktur Kendali Dalam C++ Page 4
{
y=sqrt(x);
cout << "sqrt("<<x<<") = " << y << "\n"; }
cout <<"More calculation? (Y/N)"; cin >> ch;
cout << "\n";
} while (ch=='Y' || ch=='y'); }
Hasil Program :
While Loop
Loop ini juga merupakan conditional loop, dimana kondisi pengulangan diuji pada awal blok pengulangan.
Syntax :
while (condition)
statement | { sequence of statement } Contoh : int i = 2; while ( i<11 ) { cout << i << “ ^2 = “ << i * i << “\n”; i++; } Contoh Program :
// Nama file program : while-1.cpp #include <iostream.h> #include <conio.h> main() { double sum=0; double sumx=0.0;
Struktur Kendali Dalam C++ Page 5
int first,last,temp,i;
cout << "Enter the first integer : "; cin >> first; cout << "Enter the second integer : "; cin >> last; if (first>last) { temp = first; first = last; last = temp; } i=first; while (i<=last) { sum++; sumx += (double) i; i++; }
cout << "Sum of integer from "<< first << " to " << last << " = " << sumx << "\n";
cout << "Avarage value = " << sumx/sum << endl; getch();
}
Hasil Program :
Perulangan Dalam Perulangan (Nested Loop) Didalam perulangan bisa terdapat perulangan lagi. Contoh :
1. Buatlah program C++ untuk melakukan perulangan dalam perulangan dengan tampilan sebagai berikut :
1 : 1 2 3 2 : 1 2 3 3 : 1 2 3 Listing Program : // Nested Loop (while) #include <iostream.h>
Struktur Kendali Dalam C++ Page 6 #include <conio.h> main() { int a,b; a=1; while (a<=3) { cout << a << " : "; b=1; while( b<=3 ) { cout << b << " "; b++; } cout << endl; a++; } getch(); }
2. Buatlah program C++ untuk menampilkan hasil sebagai berikut : * ** *** **** ***** Listing Program : // Nested Loop (while) #include <iostream.h> #include <conio.h> main() { int a,b; a=1; while (a<=5) { b=1; while( b<=a ) { cout << '*'; b++; } cout << endl; a++;
Struktur Kendali Dalam C++ Page 7
} getch(); }
3. Buatlah program C++ untuk menampilkan hasil sebagai berikut : +++++ ++++ +++ ++ + Listing Program : // Nested Loop (while) #include <iostream.h> #include <conio.h> main() { int a,b; a=5; while (a>=1) { b=1; while( b<=a ) { cout << '+'; b++; } cout << endl; a--; } getch(); }
4. Buatlah program C++ untuk menampilkan hasil sebagai berikut : * ** *** **** ***** **** *** ** * Listing Program : // Nested Loop (while) #include <iostream.h>
Struktur Kendali Dalam C++ Page 8 #include <conio.h> main() { int a,b; a=1; while (a<=5) { b=1; while( b<=a ) { cout << '*'; b++; } cout << endl; a++; } a=5; while (a>=1) { b=1; while( b<=a ) { cout << '*'; b++; } cout << endl; a--; } getch(); }
5. Buatlah program C++ untuk melakukan pengolahan data nilai mahasiswa sebanyak 40 mahasiswa dan setiap mahasiswa dapat mengambil 7 matakuliah. Data mahasiswa terdiri dari NPM, nama mahasiswa, kelas dan data matakuliah terdiri dari kode matakuliah, nama matakuliah, sks dan nilai akhir. Keterangan ditentukan dari nilai akhir dimana jika nilai akhir>=55, maka keterangan=”Lulus” jika tidak keterangan=”Gagal”. Adapun format tampilannya adalah sebagai berikut :
Pengolahan Data Nilai Mahasiswa Data Mahasiswa-1 NPM : Nama : Kelas : Data Matakuliah-1 Kode Matakuliah :
Struktur Kendali Dalam C++ Page 9 Nama Matakuliah : SKS : Nilai Akhir : Keterangan : . dst Data matakuliah-7 . dst Pembahasan :
Variabel yang digunakan :
1. a = untuk perulangan data mahasiswa
2. npm = npm
3. nm = nama mahasiswa
4. kls = kelas
5. b = untuk perulangan data matakuliah
6. kmk = kode matakuliah 7. nmk = nama matakuliah 8. sks = sks 9. na = nilai akhir 10. ket = keterangan Input 1. npm 2. nm 3. kls 4. kmk 5. nmk 6. sks 7. na
Proses: Set Awal :
1. a=a+1 1. a=1
2. b=b+1 2. b=1 (1. awal, 2. setiap pergantian mhs)
3. Jika na>=55, maka ket=”Lulus” Jika na<55, maka ket=”Gagal” Output :
1. ket
Listing Program : // Nested Loop (while)
#include <iostream.h> // cout, cin #include <conio.h> // getch, clrscr #include <stdio.h> // gets
Struktur Kendali Dalam C++ Page 10
main() {
int a; // perulangan data mahasiswa char npm[10];
char nm[20]; char kls[3];
int b; // perulangan data matakuliah char kmk[8]; char nmk[20]; int sks; float na; char ket[6]; a=1; while (a<=45) { clrscr();
cout << "Pengolahan Data Nilai Mahasiswa\n\n"; cout << "Data Mahasiswa-" << a << endl;
cout << "NPM = "; gets(npm); cout << "Nama = "; gets(nm); cout << "Kelas = "; gets(kls); b=1;
while (b<=7) {
cout << "\nData Matakuliah-" << b << endl; cout << "Kode Matakuliah = "; gets(kmk); cout << "Nama Matakuliah = "; gets(nmk); cout << "SKS = "; cin>>sks; cout << "Nilai Angka = "; cin>>na; if (na>=55)
strcpy(ket,"Lulus"); else
strcpy(ket,"Gagal");
cout << "Keterangan = " << ket << endl; b=b+1;
} // akhir perulangan data matakuliah getch();
a=a+1;
} // akhir perulangan data mahsiswa } // akhir main/program utama
6. Buatlah logika program dan program C++ untuk melakukan pengolahan data nilai beberapa orang mahasiswa. Setiap mahasiswa dapat mengambil beberapa matakuliah. Data mahasiswa terdiri dari NPM, nama mahasiswa, kelas dan data matakuliah terdiri dari kode matakuliah, nama matakuliah, sks dan nilai akhir. Adapun format tampilannya adalah sebagai berikut :
Struktur Kendali Dalam C++ Page 11
Pengolahan Data Nilai Mahasiswa Data Mahasiswa-1 NPM : Nama : Kelas : Data Matakuliah-1 Kode Matakuliah : Nama Matakuliah : SKS : Nilai Akhir : Keterangan :
Ada data matakuliah lainnya [Y/T] : ... dst
Total SKS :
Jumlah matakuliah yang lulus : Jumlah matakuliah yang gagal : Ada data mahasiswa lainnya [Y/T] : .... dst
Ketentuan proses :
- Perulangan input data mahasiswa dilakukan selama nilai ada data mahasiswa lainnya dijawab ‘Y’.
- Perulangan input data matakuliah dilakukan selama nilai ada data matakuliah lainnya dijawab ‘Y’.
- Keterangan ditentukan dari nilai akhir :
- Jika nilai akhir >=55, maka keterangan=”Lulus” - Jika tidak (nilai akhir <55), maka keterangan=”Gagal”
-- Setelah perulangan input data matakuliah dijawab T maka tampilkan : Total SKS setiap mahasiswa
Jumlah matakuliah yang lulus Jumlah matakuliah yang gagal Pembahasan :
Variabel yang digunakan :
1. a = data mahasiswa ke-
2. npm = npm
3. nm = nama mahasiswa
4. kls = kelas
5. b = data matakuliah ke-
6. kmk = kode matakuliah
7. nmk = nama matakuliah
Struktur Kendali Dalam C++ Page 12
9. na = nilai akhir 10. ket = keterangan 11. tsks = total sks
12. jml = jumlah matakuliah yang lulus 13. jmg = jumlah matakuliah yang gagal
14. admhs = perulangan ada data mahasiswa lainnya 15. admk = perulangan ada data matakuliah lainnya Input 1. npm 2. nm 3. kls 4. kmk 5. nmk 6. sks 7. na 8. admhs 9. admk
Proses: Set Awal :
1. a=a+1 1. a=1
2. b=b+1 2. b=1
3. tsks=tsks+sks 3. tsks=0
4. Jika na>=55, maka: 4. jml=0
- ket=”Lulus” 5. jmg=0
- jml=jml+1 6. admhs=’Y’n
Jika na<55, maka : 7. admk=’Y’
- ket=”Gagal” - jmg=jmg+1 Output : 1. ket 2. tsks 3. jml 4. jmg Listing Program : // Nested Loop (while)
#include <iostream.h> // cout, cin #include <conio.h> // getch, clrscr #include <stdio.h> // gets
#include <string.h> // strcpy main()
{
int a; // data mahasiswa ke- char npm[10];
char nm[20]; char kls[3];
Struktur Kendali Dalam C++ Page 13
char admhs; // perulangan data mahasiswa int b; // data matakuliah ke-
char kmk[8]; char nmk[20]; int sks; float na; char ket[6];
char admk; // perulangan data matakuliah int tsks,jml,jmg;
admhs='Y'; a=1;
while (admhs=='Y'||admhs==’y’) {
clrscr();
cout << "Pengolahan Data Nilai Mahasiswa\n\n"; cout << "Data Mahasiswa-" << a << endl;
cout << "NPM = "; gets(npm); cout << "Nama = "; gets(nm); cout << "Kelas = "; gets(kls); admk='Y'; b=1;
while (admk=='Y'||admk==’y’) {
tsks=0; jml=0; jmg=0;
cout << "\nData Matakuliah-" << b << endl; cout << "Kode Matakuliah = "; gets(kmk); cout << "Nama Matakuliah = "; gets(nmk); cout << "SKS = "; cin>>sks; cout << "Nilai Akhir = "; cin>>na; if (na>=55) { strcpy(ket,"Lulus"); jml=jml+1; } else { strcpy(ket,"Gagal"); jmg=jmg+1; } tsks=tsks+sks;
cout << "Keterangan = " << ket << endl; b=b+1;
cout << "Ada Data matakuliah lainnya[Y/y/T/t] = "; cin >> admk;
} // akhir perulangan data matakuliah cout << "\nTotal SKS = " << tsks << endl;
cout << "Jumlah matakuliah yang Lulus = "<< jml << endl; cout << "Jumlah matakuliah yang Gagal = "<< jmg << endl; a=a+1;
Struktur Kendali Dalam C++ Page 14
cout << "Ada Data mahasiswa lainnya[Y/y/T/t] = "; cin >> admhs;
} // akhir perulangan data mahsiswa } // akhir main/program utama