Praktikum 11 Looping : break, continue, nested loop A. Dasar Teori Kondisional : break •Pada switch-case,breakdigunakam untuk menuju ke akhir (keluar dari) struktur switch. •Dalam looping, pernyataan ini berfungsi untuk keluar secara ‘paksa’ dari loopfor, do-whiledan while. •Jika pernyataan breakberada dalam loop yang bertingkat (nested loop), maka pernyataan breakhanya akan membuat proses keluar dari loop yang bersangkutan (tempat break dituliskan), bukan keluar dari semua loop. Kondisional : continue •Digunakan untuk mengarahkan eksekusi ke iterasi (proses) berikutnya pada loopyang sama (skip the current iteration, continue to the next iteration) •Pada do-while dan while, continue menyebabkan eksekusi menuju ke kondisi pengujian pengulangan sbb. Pada loop for, continue menyebabkan bagian control loop(ekspresi3) dikerjakan dan kondisi untuk keluar dari loop for (ekspresi2) diuji kembali. Nested loop •Dalam suatu loopbisa terkandung loopyang lain. •Loopyang terletak di dalam loopbiasa disebut dengan loopdi dalam loop(nested loop). •Contoh : for(eksp1; eksp2; eksp3) for(eksp1; eksp2; eksp3) pernyataan; exit ( ): Menghentikan Eksekusi Program •Jika di dalam suatu eksekusi terdapat suatu kondisi yang tak dikehendaki, maka eksekusi program dapat dihentikan (secara normal) melalui pemanggilan fungsi exit( ). •Prototipe dari fungsi exit()didefinisikan pada file stdlib.h, yang memiliki deklarasi sebagai berikut : void exit(int status); •Menurut kebiasaan, nilai nol diberikan pada argumen exit()untuk menunjukkan penghentian program exit(0); B. Untuk setiap soal dari percobaan-percobaan di atas, ambil capture outputnya 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> #include <stdlib.h> int main() { char huruf; printf(" "); scanf("%c", &huruf); while(huruf=='\n') { } return 0; } b. Output 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> #include <stdlib.h> int main() { int i,bil; printf("Bilangan : "); scanf("%d", &bil); for(i=1;i<bil;i+=2) { if(i%3==0) continue; printf("%d ", i); } printf("\n"); return 0; } b. Output 3. Dengan menggunakan pernyataan break dan continue, buatlah program untuk membuat program dengan input n, dna 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> #include <stdlib.h> int main() { int i,bil; printf("Bilangan : "); scanf("%d", &bil); for(i=1;i<bil;i+=2) { if(i%7==0) continue; if(i%11==0) continue; if(bil>=100) break; printf("%d ", i); } printf("\n"); } b. Output 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) a. Listing Program #include <stdio.h> #include <stdlib.h> int main() { int i,bil; printf("Bilangan : "); scanf("%d", &bil); for(i=1;i<bil;i+=2) { if(i%7==0) continue; if(i%11==0) continue; if(bil>=100) break; printf("%d ", i); } printf("\n"); } b. Output 5. Dengan menggunakan pernyataa nested loop, buatlah program berikut : a. Listing Program #include <stdio.h> #include <stdlib.h> int main() { int baris,kolom,bil; printf("Masukkan Bilangan : "); scanf("%d", &bil); for(baris=1;baris<=bil;baris++) { for(kolom=1;kolom<=bil;kolom++) { printf("%d ", kolom); } printf("\n"); } puts; return 0; } b. Output 6. Dengan menggunakan pernyataan nested loop, buatlah program berikut a. Listing program #include <stdio.h> #include <stdlib.h> int main() { int baris,kolom,bil; printf("Masukkan bilangan : "); scanf("%d", &bil); for(baris=1;baris<=bil;baris++) { for(kolom=1;kolom<=baris;kolom++) printf("%d", baris); printf("\n"); } return 0; } b. Output 7. Pada akhir setiap 4 buah program diatas tambahkan tanyaan “apakah anda ingin keluar (y/t)?’, pertanyaan tersebut hanya bias dijawab dengan huruf ‘y’ (y kecil) dan ‘t’(t kecil). Dan akan keluar dari program setelah dijawab dengan ‘y’(y kecil) Program 1 a. Listing Program #include <stdio.h> #include <stdlib.h> int main() { char huruf; do { printf(" "); scanf("%c", &huruf); while(huruf=='\n') { } do { fflush(stdin); printf("apakah anda ingin keluar (y/t) ? "); scanf("%c", &huruf); if(huruf=='y') break; } while (huruf !='t'); } while(huruf=='t'); return 0; } b. Output Program 2 a. Listing Program #include <stdio.h> #include <stdlib.h> int main() { int i,bil; char huruf; do { printf("Bilangan : "); scanf("%d", &bil); for(i=1;i<bil;i+=2) { if(i%3==0) continue; printf("%d ", i); } printf("\n"); do { fflush(stdin); printf("apakah anda ingin keluar (y/t) ? "); scanf("%c", &huruf); if(huruf=='y') break; } while (huruf !='t'); } while(huruf=='t'); return 0; } b. Output Program 3 a. Listing Program #include <stdio.h> #include <stdlib.h> int main() { int i,bil; char huruf; do { printf("Bilangan : "); scanf("%d", &bil); for(i=1;i<bil;i+=2) { if(i%7==0) continue; if(i%11==0) continue; if(bil>=100) break; printf("%d ", i); } printf("\n"); do { fflush(stdin); printf("apakah anda ingin keluar (y/t) ? "); scanf("%c", &huruf); if(huruf=='y') break; } while (huruf !='t'); } while(huruf=='t'); return 0; } b. Output Program 4 a. Listing Program #include <stdio.h> #include <stdlib.h> int main() { int bil,i,nilai; int maksimal,minimal,jum,rata; char huruf; do { maksimal=0; minimal=0; jum=0; printf("Jumlah data : "); scanf("%d", &bil); for(i=1;i<=bil;i++) { printf("Nilai ke-%d : ", i); scanf("%d", &nilai); jum=jum+nilai; if(maksimal<nilai || maksimal==0) maksimal=nilai; if(minimal>nilai || minimal==0) minimal=nilai; } rata=jum/bil; printf("Minimal : %d\n", minimal); printf("Maksimal : %d\n", maksimal); printf("Rata-rata : %d\n", rata); do { fflush(stdin); printf("apakah anda ingin keluar (y/t) ? "); scanf("%c", &huruf); if(huruf=='y') break; } while (huruf !='t'); } while(huruf=='t'); return 0; } b. Output C. Dengan menggunakan pernyataan nested loop, buatlah program beikut: Input : n Output : 2 3 5 7 11 ….. Bilangan prima ke n a. Listing Program #include <stdio.h> #include <stdlib.h> int main() { int bil,i=1,bagi=2,IsPrima; printf("Bilangan : "); scanf("%d", &bil); printf("Bilangan Prima : "); while(i<=bil) { IsPrima=1; for(bagi=2;bagi<bil;bagi++) { if(bil%bagi==0) { IsPrima=0; break; } } if(IsPrima) { printf("%d", bil); i++; } bil++; } return 0; } b. Output