Algoritma dan Struktur Data I 2014 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 (
; ; ) { <statement> ........... <statement> } Contoh : for (i=0; i<10; i=i+1) cout << i << “\n”; Contoh Program: #include #include 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++) { sum++; Struktur Kendali Dalam C++
Page 1
Algoritma dan Struktur Data I 2014 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 #include #include // 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 2
Algoritma dan Struktur Data I 2014 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 #include #include <math.h> main() { char ch; double x,y; do { cout << "Enter a number = "; cin >> x; if (x!=0) Struktur Kendali Dalam C++
Page 3
Algoritma dan Struktur Data I 2014 { 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 #include main() { double sum=0; double sumx=0.0; Struktur Kendali Dalam C++
Page 4
Algoritma dan Struktur Data I 2014 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 Struktur Kendali Dalam C++
Page 5
Algoritma dan Struktur Data I 2014 #include 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 #include main() { int a,b; a=1; while (a<=5) { b=1; while( b<=a ) { cout << '*'; b++; } cout << endl; a++; Struktur Kendali Dalam C++
Page 6
Algoritma dan Struktur Data I 2014 } getch(); } 3. Buatlah program C++ untuk menampilkan hasil sebagai berikut : +++++ ++++ +++ ++ + Listing Program : // Nested Loop (while) #include #include 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 Struktur Kendali Dalam C++
Page 7
Algoritma dan Struktur Data I 2014 #include 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 8
Algoritma dan Struktur Data I 2014 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: 1. a=a+1 2. b=b+1 3. Jika na>=55, maka ket=”Lulus” Jika na<55, maka ket=”Gagal”
Set Awal : 1. a=1 2. b=1 (1. awal, 2. setiap pergantian mhs)
Output : 1. ket Listing Program : // Nested Loop (while) #include // cout, cin #include // getch, clrscr #include <stdio.h> // gets Struktur Kendali Dalam C++
Page 9
Algoritma dan Struktur Data I 2014
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 10
Algoritma dan Struktur Data I 2014
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 ke2. npm = npm 3. nm = nama mahasiswa 4. kls = kelas 5. b = data matakuliah ke6. kmk = kode matakuliah 7. nmk = nama matakuliah 8. sks = sks Struktur Kendali Dalam C++
Page 11
Algoritma dan Struktur Data I 2014 9. 10. 11. 12. 13. 14. 15.
na = nilai akhir ket = keterangan tsks = total sks jml = jumlah matakuliah yang lulus jmg = jumlah matakuliah yang gagal admhs = perulangan ada data mahasiswa lainnya 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: 1. a=a+1 2. b=b+1 3. tsks=tsks+sks 4. Jika na>=55, maka: - ket=”Lulus” - jml=jml+1 Jika na<55, maka : - ket=”Gagal” - jmg=jmg+1
Set Awal : 1. a=1 2. b=1 3. tsks=0 4. jml=0 5. jmg=0 6. admhs=’Y’n 7. admk=’Y’
Output : 1. ket 2. tsks 3. jml 4. jmg Listing Program : // Nested Loop (while) #include // cout, cin #include // getch, clrscr #include <stdio.h> // gets #include <string.h> // strcpy main() { int a; // data mahasiswa kechar npm[10]; char nm[20]; char kls[3]; Struktur Kendali Dalam C++
Page 12
Algoritma dan Struktur Data I 2014 char admhs; // perulangan data mahasiswa int b; // data matakuliah kechar 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 13
Algoritma dan Struktur Data I 2014 cout << "Ada Data mahasiswa lainnya[Y/y/T/t] = "; cin >> admhs; } // akhir perulangan data mahsiswa } // akhir main/program utama
Struktur Kendali Dalam C++
Page 14