Struktur Kendali Proses (Bab 4) Dr. Anto Satriyo Nugroho, M.Eng Web: Mata Kuliah: Dasar Pemrograman
Pengecekan segitiga siku-siku #include main() { float a,b,c; printf(“Masukkan nilai a. a= ”);scanf(“%f”,&a); printf(“Masukkan nilai b. b= ”);scanf(“%f”,&b); printf(“Masukkan nilai c. c= ”);scanf(“%f”,&c); if (a*a+ b*b == c*c) printf(“segitiga siku-siku\n"); else printf(“bukan segitiga siku-siku\n"); }
scanf Cara penulisan: halaman 42 Contoh pemakaian #include main() { float a; int b; printf(“Masukkan nilai a\n“); scanf(“%f”,&a); printf(“a: %f\n“,a); printf(“Masukkan nilai b\n“); scanf(“%d”,&b); printf(“b: %d\n“,b); getchar(); } #include main() { float a; int b; scanf(“%f”, a); printf(“a: %f\n“,a); scanf(“%d”, b); printf(“b: %d\n“,b); }
scanf #include main() { float a,b,c; scanf(“%f”,&a); scanf(“%f”,&b); scanf(“%c”,&c); tinggi=4.0; if (a*a+ b*b == c*c) printf(“segitiga siku-siku\n"); else printf(“bukan segitiga siku-siku\n"); }
Instruksi if Cara penulisan: if (expression) {statement1; statement2; statement3; } statement4; Contoh if (a*a + b*b == c*c) { printf(“segitiga siku-siku\n”); }
Klausa if else Cara penulisan: if (expression) statement1; else statement2; if (a*a + b*b == c*c) { printf(“segitiga siku-siku\n”); }else { printf(“bukan segitiga siku-siku\n”); }
Instruksi switch Cara penulisan switch(expression) { case constant_1: statement_1; break; case constant_2: statement_2; break;… case constant_n: statement_n; break; [default: statement_x; ] } Perhatian:constant_1, constant_2, … dst harus integer Jawaban expression harus integer
Contoh #include main() { int tanggal; printf("Bulan Oktober 2009 dimulai dari hari Kamis. Masukkan sebarang tanggal: "); scanf("%d",&tanggal); if(tanggal > 31) { printf(“tanggal harus kurang dari atau sama dengan 31\n”); } else switch(tanggal%7){ case 0: printf("Tanggal %d adalah hari Rabu\n",tanggal); break; case 1: printf("Tanggal %d adalah hari Kamis\n",tanggal); break;
case 2: printf("Tanggal %d adalah hari Jumat\n",tanggal); break; case 3: printf("Tanggal %d adalah hari Sabtu\n",tanggal); break; case 4: printf("Tanggal %d adalah hari Minggu\n",tanggal); break; case 5: printf("Tanggal %d adalah hari Senin\n",tanggal); break; case 6: printf("Tanggal %d adalah hari Selasa\n",tanggal); break; default: printf("Salah \n"); } getchar(); }
Struktur Kendali Pengulangan: for Cara penulisan: for ( [expr1]; [expr2]; [expr3] ) statement; expr1untuk inisialisasi expr2bila bernilai TRUE, kerjakan statement. Setelah itu eksekusikan expr3, dan kembali evaluasi dengan expr2 expr3menaikkan/menurunkan nilai pengendali
Struktur Kendali Pengulangan: for Contoh1 for(i=0;i>5;i++) printf(“i %d\n”,i); Contoh2 int sum,i; sum=0; for(i=0;i<5;i++) sum=sum+i; printf(“sum= %d\n”,sum);
Contoh: Bilangan prima atau bukan ? #include main() { int i,x,flag; printf("masukkan sebarang bilangan bulat x. x: "); scanf("%d",&x); flag=0; for(i=2;i<x;i++) { if(x%i==0) flag=1; } if(flag==1) { printf("%d bukan bilangan prima\n",x); } else { printf("%d adalah bilangan prima\n",x); }
#include main() { int i,x,flag; int j; for(j=3;j<1000;j++) { flag=0; for(i=2;i<j;i++) { if(j%i==0) flag=1; } if(flag==1) { printf("%d bukan bilangan prima\n",j); } else { printf("%d adalah bilangan prima\n",j); } getchar(); }
Inga inga ! Definisi bilangan Prima Bilangan prima adalah bilangan yang habis dibagi hanya oleh 1 dan bilangan itu sendiri Kalau x habis dibagi oleh bilangan selain x atau 1, berarti x BUKAN PRIMA flag =0; for(i=2;i<x;i++){ if(x%i==0) flag=1; } Nilai akhir flag=0, berarti bilangan prima. Kalau flag=1, berarti BUKAN prima
Double Loop #include main() { int i,j; for(j=0;j<5;j++) for(i=0;i<5;i++) printf(“%d x %d = %d \n”,j,i,j*i); getchar(); }
Buatlah program untuk menemukan semua bilangan prima di bawah 1000 ! Tugas
1.Buatlah program untuk memeriksa apakah sebuah segitiga dengan 3 sisi a,b,c adalah segitiga siku-siku atau bukan. a,b dan c dimasukkan oleh user, dimana c adalah sisi yang terpanjang. 2.Modifikasilah program di atas agar tetap bisa bekerja dengan benar, walaupun sisi yang terpanjang bukan c Latihan 1
Buatlah program untuk mengkonversikan suhu dari Celcius ke Fahrenheit, jika diketahui rumus konversinya sbb. Fahrenheit = ( Celcius x 9/5 ) +32 Pertanyaan: tipe data apakah yang dipakai untuk menyatakan suhu ? float ataukah int ? Jelaskan alasanmu ! Latihan 2
Buatlah program untuk menemukan semua bilangan dari 0 hingga 10 ribu yang habis dibagi 3 Latihan 3
Latihan 4 Buatlah program untuk menghitung
Latihan 5 Buatlah program untuk menghitung factorial sebuah bilangan n. n! = n x (n-1) x (n-2) x … x 2 x 1
Kesalahan yang paling sering terjadi ditulis Lupa menutup sebuah statement dengan “;” Tidak hati-hati dalam menulis nama variabel float a;scanf(“%f”, a) kesalahan: a seharusnya ditulis &a