Praktikum 10 Looping : while, do ... While A. TUJUAN PEMBELAJARAN 1. Menjelaskan perbedaan for dan while serta do-while 2. Menjelaskan proses pengulangan menggunakan pernyataan while 3. Menjelaskan proses pengulangan menggunakan pernyataan do-while B. TUGAS RESMI 1. Untuk setiap listing program dari percobaan-percobaan di atas, ambil capture outputnya. A. Gunakan loop while untuk membuat program yang dapat menampilkan semua yang diketikkan di keyboard sampai yang diketikkan pada keybord huruf ‘X’ (x besar). Source code : #include <stdio.h> main(){ char input; input = getchar(); while(input != 'X'){ scanf("%c", &input); } printf("Berhenti pada saat ada X \n"); } Output : Analisa : B. Gunakan loop while untuk membuat program yang dapat mencari total angka yang dimasukkan. Source code : #include <stdio.h> main(){ int a=1, input, hasil; char kepu='y'; while(kepu == 'y' || kepu == 'Y'){ printf("Masukkan bilangan ke-%d : ", a); scanf("%d", &input); printf("Mau memasukkan data lagi [y/t] ? : "); scanf("\n%c", &kepu); hasil = hasil + input; a++; } printf("Total bilangan : %d\n", hasil); } Output : Analisa : C. Pada program no 2 tambahkan rata-rata, maksimum dan minimum dari angka yang dimasukkan. Source code : #include <stdio.h> main(){ int a=1, input=1, max, min, hasil=0; float rata; char kepu='y'; printf("Masukkan bilangan ke-%d : ", a); scanf("%d", &input); printf("Mau memasukkan data lagi [y/t] ? : "); scanf("\n%c", &kepu); max = input; min = input; while(kepu == 'y' || kepu == 'Y'){ a++; printf("Masukkan bilangan ke-%d : ", a); scanf("%d", &input); printf("Mau memasukkan data lagi [y/t] ? : "); scanf("\n%c", &kepu); hasil = hasil + input; rata = hasil / a; if(input > max){ max = input; } else if(input < min){ min = input; } } printf("Total bilangan : %d\n", hasil); printf("Rata bilangan : %.2f\n", rata); printf("Max bilangan : %d\n", max); printf("Min bilangan : %d\n", min); } Output : Analisa : D. Dengan menggunakan pernyataan looping, 0 1 3 6 10 15 21 28 .... Bilangan ke n. Source code : #include <stdio.h> main(){ int aw=0, la=0, input; printf("Input : "); scanf("%d", &input); while(input > aw){ while(input > la){ la++; printf("%d ", aw); aw = aw + la; } aw++; } } Output : Analisa : E. Gunakan while pada program yang digunakan untuk menghitung banyaknya karakter dari kalimat yang melalui keyboard (termasuk karakter spasi). Untuk mengakhiri pemasukan kalimat, tombol ENTER (‘\n’) ditekan. Source code : #include <stdio.h> main(){ int kata=0, spas=0; char input, cek; printf("masukkan opo wae : "); scanf("%c", &input); while((input=getchar()) != '\n'){ kata++; if(input == ' ') spas++; } printf("kata : %d\n", kata); printf("spas : %d\n", spas); } Output : Analisa : F. Buatlah program untuk menghitung jumlah angka dari suatu bilangan. Source code : #include <stdio.h> main(){ int input, hasil, pros; printf("input angka : "); scanf("%d", &input); while(input != 0){ pros = input % 10; input = input / 10; printf("%d", pros); if(input == 0){ printf("= ");} else{ printf("+");} hasil = hasil + pros; } printf("%d", hasil); } Output : Analisa : G. Buat program tabungan untuk ibadah haji. Source code : #include <stdio.h> main(){ int awal=0, cicil=0, persen=0, bulan=0, a=0, naik; printf("biaya awal : "); scanf("%d", &awal); printf("cicilan : "); scanf("%d", &cicil); printf("persen : "); scanf("%d", &persen); naik = awal * persen/100; while(awal > 0){ bulan++; if(bulan % 12 == 0){ awal = awal + naik; } awal = awal - cicil; } printf("waktu melunasi %d bulan\n", bulan); } Output : Analisa : 2. Tuliskan kesimpulan dari percobaan yang telah anda lakukan. Dari semua percobaan diatas saya dapat mengimplementasikan pernyataan while sebagai perulangan. Fungsi dari while ini sendiri dapat mengulang apa yang kita kehendaki, seperti menampilkan angka 1 sampai 1000 itu tidak perlu lagi menggunakan printf() sebanyak 1000 kali. Hanya cukup dengan perintah while ini saja sudah dapat menampilkan angka 1 sampai 1000 dengan satu statement saja. Penulisan dari pernyataan while adalah : While(kondisi){ Statement1; Statement2; .......... StatementN; } 3. Untuk soal no.6 jika nilai c adalah kenaikan dari tahun sebelumnya dan setiap 6 bulan sekali dia bonus gaji d ribu yang selalu dia gunakan untuk menambah tabungan hajinya berapa bulan dia butuhkan agar biaya hajinya terpenuhi? Source code : #include <stdio.h> main(){ int awal=0, cicil=0, persen=0, bulan=0, a=0, naik, bonus=0; printf("biaya awal : "); scanf("%d", &awal); printf("cicilan : "); scanf("%d", &cicil); printf("persen : "); scanf("%d", &persen); printf("bonus per 6 bulan : "); scanf("%d", &bonus); naik = awal * persen/100; while(awal > 0){ bulan++; if(bulan % 12 == 0){ awal = awal + naik; awal = awal - (2 * bonus); } awal = awal - cicil; } printf("waktu melunasi %d bulan\n", bulan); } Output :