280 likes | 411 Views
Algoritme dan Pemrograman. Kuliah #5 Compound statement Kontrol Program : IF, SWITCH, WHILE. Simple and Compound statement. Compound statement adalah beberapa pernyataan sederhana ( simple statements ) yang diapit oleh tanda kurung kurawal {…} Contoh : #include < stdio.h > main() {
E N D
AlgoritmedanPemrograman Kuliah #5 Compound statement Kontrol Program : IF, SWITCH, WHILE
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Simple and Compound statement • Compound statement adalahbeberapapernyataansederhana (simple statements) yang diapitolehtandakurungkurawal {…} • Contoh: #include <stdio.h> main() { inti=0, j=1; printf("A"); i = i + 1; return 0; } compound statement
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Sequential structures • Prosesterhadapsuatu program yang terdiridaribeberapa statement dilakukanberurutansecarasekuensial, satu per satu, mulaidariataskebawah sequential. • Contoh: output program berikutadalah ABC #include <stdio.h> main() { inti=0, j=1; printf("A"); i = i + 1; printf("B"); j = j + 1; printf("C"); return 0; }
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Selection control structures • Program akanmemilihsatuataulebih statement untukdiprosesatautidakdiprosesberdasarkankondisitertentu. • Kondisidinyatakansebagaiekspresi. • Pernyataan yang digunakandisebutconditional statement. • Adaduajenis: • Pernyataan IF • Pernyataan SWITCH
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Conditional statement:IF Bentukumum: if (kondisi) simple or compound statement; atau if (kondisi) simple or compound statement; else simple or compound statement;
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Conditional statement:IF kondisi ? kondisi ? FALSE FALSE TRUE TRUE statements statements statements
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Pernyataan IF:Contoh #1 #include <stdio.h> main(){ int a, b; scanf("%d %d", &a, &b); if (a<b) printf("%d\n", b-a); printf("%d\n", a-b); return 0; } • Apa output program jikadiberi input 5 20 ? • Apa output program jikadiberi input 20 5 ? -15 15 15
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Pernyataan IF:Contoh #2 #include <stdio.h> main(){ int a, b; scanf("%d %d", &a, &b); if (a<b) { printf("%d\n", b-a); printf("%d\n", a-b); } return 0; } • Apa output program jikadiberi input 20 5 ?
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Pernyataan IF:Contoh #3 #include <stdio.h> main(){ int a, b; scanf("%d %d", &a, &b); if (a<b) {printf("%d\n", b-a); printf (“a lebih kecil”); } else {printf("%d\n", a-b); printf (“a lebih besar”); } return 0; } • Apa output program jikadiberi input 5 20 ? • Apa output program jikadiberi input 20 5 ? 15 alebihkecil 15 a lebihbesar
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Conditional statement:Nested IF • Strukturseleksiif yang bercabangdenganbanyakkondisi. • Contoh, berapanilai b jikadiberikan input 12? scanf("%d", &a); if (a<5) b=1; else if (a<10) b=2; else if (a<15) b=3; else b=4;
Strukturelse if : if(syarat) { …. perintah; …. perintah; } else if(syarat) { …. perintah; …. perintah; } else if(syarat) { …. perintah; …. perintah; } else if(syarat) { …. perintah; …. perintah; } else { …. perintah; …. perintah; } else yang terakhir sifatnya ’optional’, boleh ada boleh juga tidak.
Bentuk Nested IF dengan banyak perintah : if(syarat) { …. perintah; …. perintah; if(syarat) { …. perintah; …. perintah; } else { …. perintah; …. perintah; } } else { …. perintah; …. perintah; if(syarat) { …. perintah; …. perintah; } else { …. perintah; …. perintah; } }
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Conditional statement:SWITCH • Strukturdenganbanyakkondisi yang berbentukekspresilogikakesamaan. • Perhatikanpotongan program berikut (apa yang dilakukan?) intbil, hasil; scanf("%d", &bil); hasil = bil % 3; if (hasil==0) printf("NOL\n"); else if (hasil==1) printf("SATU\n"); else printf("DUA\n");
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Conditional statement:SWITCH Bentukumumstruktur SWITCH switch(switch_expr) { case (constant expr1) : S1; S2; …; break; case (constant expr2) : S3; S4; …; break; ..... default : S5; S6; …; break; }
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Conditional statement:SWITCH Modifikasi program sebelumnya: intbil, hasil; scanf("%d", &bil); hasil = bil % 3; switch (hasil) { case 0: printf("NOL\n"); break; case 1: printf("SATU\n");break; default: printf("DUA\n"); break; }
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Loop control structures • Program akan mengulang satu atau lebih statement untuk diproses atau tidak diproses berdasarkan kondisi tertentu. • Kondisi dinyatakan sebagai ekspresi. • Pernyataan yang digunakan disebut loop statement. • Ada tiga jenis: • Pernyataan WHILE • Pernyataan DO … WHILE • Pernyataan FOR
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Loop control structures:WHILE • Implementasidaripernyataan: lakukansesuatuberulang-ulangselamakondisibernilai true (berartijugahentikanmelakukanitujikakondisibernilai false). • Format: while (kondisi) simple or compound statement;
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Loop control structures:WHILE while (kondisi) statement; kondisi ? FALSE Pernyataan (statements) didalamstruktur WHILE akandiproses minimum NOL kali. Mengapa? TRUE statement
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Loop control structures:WHILE • Perhatikanpotongan program berikut: int i=0; while (i<5) { printf("%d", i); i++; } • Output program tersebutadalah: 01234
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Loop control structures:WHILE • Apa output potongan program berikut? int i=0; while (i<5) printf("%d", i++); • Bagaimanadenganpotongan program berikut? int i=0; while (i++<5) printf("%d", i); 01234 12345
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Latihan #1 Apa output potongan program berikutjikadiberikan input data 8 20 ? Apa yang dilakukan? int a, b, t; scanf("%d %d", &a, &b); while (b) { t = a%b; a = b; b = t; } printf("%d\n", a); 4
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Latihan #2 Apa output potongan program berikutjikadiberikan input data 8 20 3 -99 ? Apa yang dilakukan? intbil, c=0; scanf("%d", &bil); while (bil!=-99) { c++; scanf("%d", &bil); } printf("%d\n", c); 3
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Latihan #3 Apa output potongan program berikutjikadiberikan input data 9872 ? Apa yang dilakukan? intbil, t=0; scanf("%d", &bil); while (bil) { t = (t*10) + (bil%10); bil/=10; } printf("%d\n", t); 2789
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Latihan #4 Suatualat sensor dipasangpadatanamanapeluntukmengatursuplai air. Alatsecaraperiodikmenerima data berupakandungan air tanahdisekitartanaman. Jikaalattersebutmenerima data kandungan air tanahkurangdari 4.5 satuan, makaalatakanmenyuplai air dengan volume 0.12 liter. Demikianseterusnyasampaidiperoleh data kandungan air tanahlebihbesaratausamadengan 4.5 satuandanalatakanberhentisementara. Buat program C untukmenghitung total volume air yang disuplaisampaialattersebutberhentisementara. Output ditulisdalamduadesimaldibelakangtitik. Contoh input : 1.2 4.2 4.3 4.4 5.2 Contoh output : 0.48 Contoh input : 4.9 Contoh output : 0.00
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR float bil=0, jum=0; while (bil<4.5) { jum=jum+0.12; scanf("%d", &bil); } printf("%d\n", jum);
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR Latihan #5 Seoranganaksukabermaindenganbilanganbulat. Jikadiberikanbilanganbulatlebihbesaratausamadengan 100, diahanyaakanmengambildigit paling kiridanpaling kananuntukmembentuksuatubilanganbarudengandua digit. Misalkandiberikannilai 7895, diamembentukbilanganbaruyaitu 75. Selanjutnya, diamenuliskansisapembagianbilanganbarutersebutdengan6dikertas. Jikabilanganbulat yang diberikankurangdari 100, makadiatidakmelakukanapa-apa. Buat program C untukmendapatkannilaiseperti yang dituliskananaktadi. Contoh input : 7895 Contoh input : 37 Contoh output : 3 Contoh output :
intkiri,kanan,bil,jum, i, sisa; scanf("%d", &bil); kanan = bil % 10; while (bil>10) { bil = bil/10; } kiri = bil * 10; bil = kiri + kanan; printf("%d\n", bil);
Latihan #6 1 2 3 • int a=3, b=0;while (b++<a) printf("%d", b);int a=3, b=0;while (++b<a) printf("%d", b);int a=5, b=0;while (b++<a) printf("%d", b++);int a=3, b=0;while (b=a--) printf("%d %d\n", a,b);int a=3, b=0;while (b=--a) printf("%d %d\n", a,b);int a=5, b, c;while (c=--a, b=a--) printf("%d %d %d\n", a,b,c); 1 2 1 3 5 2 3 1 2 0 1 2 2 1 1 3 4 4 1 2 2