Pertemuan 9-10 Operasi Looping (Pengulangan) Matapelajaran: TIK 2 /Algoritma dan Pemograman Tahun: 2011/2012 Versi: 1 1.

Презентация:



Advertisements
Похожие презентации
Pertemuan Operand dan Operator Matapelajaran: TIK 2 /Algoritma dan Pemograman Tahun: 2011/2012 Versi: 1 1.
Advertisements

Pertemuan Operasi Seleksi Matakuliah: T0616 / Algoritma dan Pemrograman Tahun: 2007 Versi: 6 1.
Pertemuan Operasi Input Output Matapelajaran: TIK 2 /Algoritma dan Pemograman Tahun: 2011/2012 Versi: 1 1.
Pertemuan Algoritma dan Pemrograman Matapelajaran: TIK 2 /Algoritma dan Pemograman Tahun: 2011/2012 Versi: 1 1.
by : R. Heroe Siswojo KeywordJuml MemoriJangkauan Nilai Integer Short Int atau Short Long Int atau Long 16 bit 32 bit s/d
Pertemuan Pointer dan Array Matapelajaran: TIK 2 /Algoritma dan Pemograman Tahun: 2011/2012 Versi: 1 1.
Algoritma rekursif dan relasi rekurensi. Deskripsi Materi ini membahas tentang algoritma rekursif beserta relasi rekurensnya.
Pertemuan Pengantar Bahasa C Matapelajaran: TIK 2 /Algoritma dan Pemograman Tahun: 2011/2012 Versi: 1 1.
Pertemuan Fungsi Matapelajaran: TIK 2 /Algoritma dan Pemograman Tahun: 2011/2012 Versi: 1 1.
Nonot Wisnu Karyanto. UTS Konsep Dasar Berkas Perangkat Keras dan Parameternya Bloking dan Buffering Penyimpanan Data Organisasi File File Sequensial.
Architectural Design. FASE PENGEMBANGAN DAN DESAIN SOFTWARE Design Code Generation (manual or automatic) Testing Setiap langkah melakukan transformasi.
1 Asimtotik. Deskripsi Materi ini membahas tentang Notasi asymptotic.
Pertemuan 1 – Pengantar Organisasi Komputer Erwin Christiant S.Kom - Arsitektur dan Organisasi Komputer.
Oleh: erwinchristiant.my1.ru. Kegiatan yang berfungsi untuk merumuskan tujuan dan ukuran dari aplikasi berbasis web serta menentukan batasannya system.
JARINGAN KOMPUTER IP Addressing. IP ADDRESS Section 1.
ORGANISASI BERKAS. Organisasi Berkas ialah suatu teknik atau cara untuk menyatakan dan menyimpan record-record dalam sebuah berkas / file Ada 4 teknik.
Passing Parameters Ada beberapa detail yang seharusnya kita perhatikan dalam passing parameter kepada API function ByVal ataupun ByRef tidak masalah,
DIAGRAM KEPUTUSAN (DECISION TREE) Susi Sulandari.
Sistem Operasi Proses dan Penjadwalan Prepared By Team Teaching Presented by WIN & TGW.
SISTEMATIKA PENULISAN TUGAS PP KOTA DALAM FORMAT PENULISAN ILMIAH (PKMI) Kiat Menyusun Artikel.
Транксрипт:

Pertemuan 9-10 Operasi Looping (Pengulangan) Matapelajaran: TIK 2 /Algoritma dan Pemograman Tahun: 2011/2012 Versi: 1 1

Learning Outcomes Pada akhir pertemuan ini, diharapkan peserta didik akan mampu : Mendemonstrasikan penulisan program dengan struktur kendali pengulangan (looping) (C3) 2

Outline Materi Operasi Pengulangan (looping) Konstruksi for, while dan do-while Nested dan infinite loop Compound atau Block statement Break dan Continue 3

Operasi Repetisi Beberapa instruksi diulang untuk suatu jumlah pengulangan yang tertentu Jumlah pengulangan dapat diketahui sebelumnya atau ditentukan dalam perjalanan program. Operasi repetisi : for while do-while 4

Operasi Repetisi : for Konstruksi for for(exp1; exp2; exp3) statement; atau: for(exp1; exp2; exp3){ statement1; statement2; ……. } exp1 :adalah ekspresi untuk inisialisasi, exp2 :adalah ekspresi conditional exp3 :adalah ekspresi increment atau decrement exp1, exp2 dan exp3 adalah sifatnya optional (boleh ada boleh tidak ada). 5

Operasi Repetisi : for exp1 dan exp3 boleh terdiri dari beberapa ekspresi yang dipisahkan dengan koma. Contoh: void reverse(char ss[]) { int c,i,j; for(i=0, j=strlen(ss)-1; i<j; i++, j--){ c=ss[i]; ss[i]=ss[j]; ss[j]=c; } 6

Operasi Repetisi : for Konstruksi for 7 true false statements exp2 exp3 exp1

Operasi Repetisi : for Contoh : for (x=1; x <= 10; x++) printf(%d\n,x); 8 x=1 x <= 10 printf(%d\n,x) x++ False True

Operasi Repetisi : for Contoh : Program mencetak angka dari 1 sampai 10 Program mencetak angka dari 10 sampai 1 9 #include int main() { int x; for ( x = 1 ; x <= 10 ; x ++ ) printf( "%d\n", x ); return(0); } #include int main() { int x; for ( x = 1 ; x <= 10 ; x ++ ) printf( "%d\n", x ); return(0); } #include int main() { int x; for ( x = 10 ; x >= 1 ; x -- ) printf( "%d\n", x); return(0); } #include int main() { int x; for ( x = 10 ; x >= 1 ; x -- ) printf( "%d\n", x); return(0); }

Operasi Repetisi : for Contoh penggunaan for dalam program. Ingin mengetahui rata-rata pengeluaran uang untuk bensin selama satu bulan, dengan data sbb : MingguPengeluaran 1Rp ,- 2Rp ,- 3Rp ,- 4Rp ,- 10 Algoritma : 1. Kosongkan variabel jumlah 2. Baca data dari keyboard dan simpan pada variabel Data 3. Tambahkan Data ke jumlah 4. Ulangi 2 dan 3 sebanyak 4 kali 5. Rerata = Jumlah / 4

Operasi Repetisi : for Contoh : 11 /* */ /* Program Hitung_Rerata */ /* */ #include int main() { float data, jumlah, rerata; int x; jumlah = 0.0; for( x = 1; x <= 4; x++) { printf(Data minggu ke-%d :,x); scanf(%f,&data); jumlah = jumlah + data; } rerata = jumlah / 4; printf(Rerata = Rp %8.2f\n,rerata); return(0); } /* */ /* Program Hitung_Rerata */ /* */ #include int main() { float data, jumlah, rerata; int x; jumlah = 0.0; for( x = 1; x <= 4; x++) { printf(Data minggu ke-%d :,x); scanf(%f,&data); jumlah = jumlah + data; } rerata = jumlah / 4; printf(Rerata = Rp %8.2f\n,rerata); return(0); }

Operasi Repetisi : for Infinite Loop Untuk membuat infinite loop dapat dilakukan dengan menggunakan for-loop, dengan menghilangkan ketiga parameter (exp1, exp2, exp3) yang ada pada for loop. Untuk keluar dari loop dapat digunakan statement break. Nested Loop Jika didalam sebuah perulangan terdapat statement yang berisi perulangan. Perulangan akan dijalankan dari yang paling dalam. 12

Operasi Repetisi : for for (int x=1;x<=5;x++) for (int y=5; y>=1; y--) printf(%d %d,x,y); 13 Output : int x, y; for (x=1;x<=5;x++) for (y=5; y>=1; y--) printf(%d %d,x,y); int x, y; for (x=1;x<=5;x++) for (y=5; y>=1; y--) printf(%d %d,x,y); Bahasa C Bahasa C++ NESTED LOOP

Operasi Repetisi : for Contoh : 14 /* Program Tabel_Kebenaran; */ #include int main() { int P,Q; printf(==============================\n); printf(P Q P or Q P and Q Not P P xor Q\n); printf(==============================\n); for(P=1; P>=0; P--) for(Q = 1; Q>=0; Q--) printf(%4d %4d %4d %4d %4d %4d\n, P, Q, P||Q, P&&Q, !P, P^Q ); printf(==============================\n); } /* Program Tabel_Kebenaran; */ #include int main() { int P,Q; printf(==============================\n); printf(P Q P or Q P and Q Not P P xor Q\n); printf(==============================\n); for(P=1; P>=0; P--) for(Q = 1; Q>=0; Q--) printf(%4d %4d %4d %4d %4d %4d\n, P, Q, P||Q, P&&Q, !P, P^Q ); printf(==============================\n); }

Operasi Repetisi : while Sintaks : while (exp) statements; atau : while(exp){ statement1; statement2; ….. } 15 Contoh : int counter = 1; while ( counter <= 10 ) { printf( "%d\n", counter ); ++counter; } Contoh : int counter = 1; while ( counter <= 10 ) { printf( "%d\n", counter ); ++counter; }

Operasi Repetisi : while Konstruksi while 16 true false statements condition

Operasi Repetisi : while exp adalah ekspresi boolean yang menghasilkan nilai True (tidak nol) atau False (sama dengan nol). Statement di-eksekusi berulang- ulang selama exp tidak Nol. Pengetesan exp dilakukan sebelum statements dilaksanakan. 17

Operasi Repetisi : while Contoh : while(product <= 1000) product = 2*product; 18 Product <= 1000 Product=2*product; False True

Operasi Repetisi : while Perintah for setara dengan while sbb: exp1; while ( exp2 ) { statement1; statement2; …. exp3 } 19 #include void main() { int x; for ( x = 1 ; x <= 10 ; x++ ) printf( "%d\n", x ); } #include void main() { int x; for ( x = 1 ; x <= 10 ; x++ ) printf( "%d\n", x ); } #include void main() { int x = 1; while (x<=10) { printf( "%d\n", x ); x++; } #include void main() { int x = 1; while (x<=10) { printf( "%d\n", x ); x++; } Program ini setara

Operasi Repetisi : do-while Sintaks : do{ ; } while(exp); Selama nilai exp true maka statement dieksekusi berulang-ulang. Pengetesan exp dilakukan setelah meng-eksekusi statement. 20 Contoh : int counter=0; do { printf( "%d ", counter ); ++counter; } while (counter <= 10); Contoh : int counter=0; do { printf( "%d ", counter ); ++counter; } while (counter <= 10);

Operasi Repetisi : do-while Konstruksi do-while 21 true false statements condition

Operasi Repetisi : do-while Contoh: do{ printf(%d\n,counter); } while(++counter <=10); 22 printf(%d\n,counter);printf(%d\n,counter); ++counter <=10 True False

Operasi Repetisi Pada konstruksi while, statement atau blok statement mungkin tidak akan pernah dilaksanakan, bila nilai ekspresi boolen (exp) bernilai False, karena sebelum konstruksi pengulangan dimasuki nilai ekspresi boolean (exp) terlebih dahulu diuji. Pada konstruksi do-while statement atau blok statement pasti dikerjakan paling sedikit satu kali, karena ekspresi boolean baru diuji pada akhir blok pengulangan. 23

Operasi Repetisi Beberapa cara untuk menghentikan pengulangan, ini dapat dilakukan dengan menambah : Sentinel atau Pembatas dengan kode khusus Pertanyaan, Apakah pengulangan akan dilanjutkan. 24

Operasi Repetisi Contoh : Cara Pertanyaan pada konstruksi While 25 #include int main() { int panjang, lebar, luar; char ulang; printf(Teruskan Perhitungan ? (Y/T) :); scanf(%c,&ulang); while((toupper(ulang)) == Y) { printf(Panjang : ); scanf(%d,&panjang); printf(Lebar : ); scanf(%d,&lebar); luas = panjang * lebar; printf(Luas = %d\n\n,luas); printf(Teruskan Perhitungan?(Y/T):); scanf(%c,&ulang); } return(0); } #include int main() { int panjang, lebar, luar; char ulang; printf(Teruskan Perhitungan ? (Y/T) :); scanf(%c,&ulang); while((toupper(ulang)) == Y) { printf(Panjang : ); scanf(%d,&panjang); printf(Lebar : ); scanf(%d,&lebar); luas = panjang * lebar; printf(Luas = %d\n\n,luas); printf(Teruskan Perhitungan?(Y/T):); scanf(%c,&ulang); } return(0); }

Operasi Repetisi Contoh : Cara sentinel pada konstruksi do-while Sebagai sentinel, digunakan nilai 0 pada variabel panjang atau variabel lebar. 26 #include int main() { int panjang,lebar,luas; char ulang; do{ printf(Panjang [0=selesai] : ); scanf(%d,&panjang); printf(Lebar [0=selesai] : ); scanf(%d,&lebar); luas = panjang * lebar; printf(Luas = %d\n,luas); } while((panjang != 0) && (lebar != 0)); return(0); } #include int main() { int panjang,lebar,luas; char ulang; do{ printf(Panjang [0=selesai] : ); scanf(%d,&panjang); printf(Lebar [0=selesai] : ); scanf(%d,&lebar); luas = panjang * lebar; printf(Luas = %d\n,luas); } while((panjang != 0) && (lebar != 0)); return(0); }

Operasi Repetisi #include int main() { int x = 1; while (x<=10) { printf( "%d\n", x ); x++; break; } return 0; } 27 Break pada loop menyebabkan program keluar dari loop tersebut Keluar loop

Break vs Continue break : Digunakan untuk keluar dari loop (for, while dan do-while) Digunakan untuk keluar dari switch continue : skip sisa instruksi dalam loop, dan eksekusi loop berjalan ke tahap selanjutnya 28

Break vs Continue Contoh : 29 #include int main() { int x; for(x=1; x<=10; x++) { if (x == 5) continue; printf("%d ", x); } return 0; } #include int main() { int x; for(x=1; x<=10; x++) { if (x == 5) continue; printf("%d ", x); } return 0; } Output :

Break vs Continue Contoh : 30 #include int main() { int x; for(x=1; x<=10; x++) { if (x == 5) break; printf("%d ", x); } return 0; } #include int main() { int x; for(x=1; x<=10; x++) { if (x == 5) break; printf("%d ", x); } return 0; } Output :

Break vs Continue 31 do { scanf(%f, &x); if(x<0) { printf\nEror. Negatif); break; } /*Proses nonnegatif */ … } while(exp); do { scanf(%f, &x); if(x<0) { printf\nEror. Negatif); break; } /*Proses nonnegatif */ … } while(exp); do { scanf(%f, &x); if(x<0) { printf\nEror. Negatif); continue; } /*Proses nonnegatif */ … } while(exp); do { scanf(%f, &x); if(x<0) { printf\nEror. Negatif); continue; } /*Proses nonnegatif */ … } while(exp);

Break vs Continue Contoh : 32 #include int main() { int x; for(x=1; x<=10; x++) { if (x == 5) goto exit; printf("%d ", x); } exit: return 0; } #include int main() { int x; for(x=1; x<=10; x++) { if (x == 5) goto exit; printf("%d ", x); } exit: return 0; } Output :

Latihan for (i=k; i < n; i++) printf(Binus\n); 1.Jika k < n maka berapa kali kata Binus di cetak dilayar monitor ? 2.Jika k=n maka berapa kali kata Binus di cetak dilayar monitor ? 3.Jika k > n maka berapa kali kata Binus di cetak dilayar monitor ? 33

Latihan for (i=k; i >= n; i--) printf(Binus\n); 1.Jika k < n maka berapa kali kata Binus di cetak dilayar monitor ? 2.Jika k=n maka berapa kali kata Binus di cetak dilayar monitor ? 3.Jika k > n maka berapa kali kata Binus di cetak dilayar monitor ? 34

Latihan Dapatkah infinite/forever loop ditulis menggunakan for loop, while loop dan do-while loop ? Jika p = pernyataan dan e = ekspresi, ubahlah loop for berikut menjadi loop while. a.for(; e ;) p; b.for(; ; e) p; 35

Latihan Bandingkan dua buah sintaks for berikut ini : Jelaskan output dan perbedaannya ! 36 for (i=0, j=1; i<8; i++, j++) printf("%d + %d = %d\n", i, j, i+j); for (i=0, j=1; i<8; ++i, ++j); printf("%d + %d = %d\n", i, j, i+j);

Latihan #include int main() { int x,y; for(x=1;x<=3;x++) for (y=3;y>=1;y--) printf("%d %d ",x,y); return 0; } 37 #include int main() { int x,y; for(x=1;x<=3;x++); for (y=3;y>=1;y--) printf("%d %d ",x,y); return 0; } #include int main() { int x,y; for(x=1;x<=3;x++); for (y=3;y>=1;y--) printf("%d %d ",x,y); return 0; } APA OUTPUT PROGRAM BERIKUT ?? awas! Ada titik koma

Latihan #include int main() { int x,y; for(x=1;x<=3;x++) for (y=3;y>=1;y--); printf("%d %d ",x,y); return 0; } 38 #include int main() { int x,y; for(x=1;x<=3;x++); for (y=3;y>=1;y--); printf("%d %d ",x,y); return 0; } APA OUTPUT PROGRAM BERIKUT ?? awas! ada titik koma Awas! ada titik koma

Latihan Jelaskan output program berikut ini : 39 #include int main() { int nilai = 0, jumlah = 0; while(nilai < 10) { jumlah += nilai; printf(\nNilai =%d, Jumlah =%d, nilai++, jumlah); } return 0; }

Latihan Jelaskan output program berikut ini : 40 #include int main() { long bil, tmp, x=1; printf(\nInput bil:); scanf(%d, &bil); tmp=bil; while(bil >= 1) x*=bil--; printf(\n%ld ! = %ld,tmp, x); return 0; }

Latihan Buat program untuk menampilkan bilangan ganjil dari 11 s/d 188, dengan menggunakan : for while do - while 41

Latihan Diasumsikan hari 1 menyatakan senin, 2 - selasa, 3 - rabu,…, 7 – minggu. Buatlah sebuah program untuk menampilkan angka hari sebanyak n yang diinput dari keyboard. Perhatikan pola berikut : N = N = N =

Latihan int x ; for(x=0 ; x<10 ; x++) printf("Hello\n"); 43 Berapa kali kata Hello dicetak di layar monitor oleh potongan program dibawah ini ! int x=0; for( ; x<10 ; x++) printf("Hello\n"); int x=0; for( ; ; x++){ if(x<10) printf("Hello\n"); else break; } int x=0; for( ; ; ){ if(x<10) printf("Hello\n"); else break; x++; }

Latihan Buatlah program untuk menampilkan gambar seperti contoh dibawah, dimana N variabel integer yg nilainya di-input dari keyboard (dengan for, while atau do-while loop). * * * * * * * * * * * 44 N N

Latihan Buatlah program untuk menampilkan gambar seperti contoh dibawah, dimana N variabel integer yg nilainya di-input dari keyboard (dengan for, while atau do-while loop). * * * * * * * * * * * 45 N N

Latihan Apa Output program dibawah ? #include int main() { int x,y,z; for(x=0; x<4; x++){ for(y=0; y<3; y++){ for(z=0; z<3; z++){ if(z==2) break; } printf("Selamat\n"); } printf("Datang\n"); } printf("di UBiNus\n"); getch(); return(0); } 46