Menjelaskan penggunaan pernyataan if-else 4. Menjelaskan penggunaan pernyataan if dalam if 5. Menjelaskan penggunaan pernyataan else-if 6. Menjelaskan penggunaan pernyataan switch B. PERCOBAAN 1. Menghitung nilai discount menggunakan if.
/* File program : discount.c */ #include <stdio.h> #include <conio.h> main() { double total_pembelian, discount = 0; printf("Total pembelian = Rp "); scanf("%lf", &total_pembelian); if(total_pembelian >= 100.000) discount = 0.05 * total_pembelian; printf("Besarnya discount = Rp %.2lf\n", discount); getch(); } Hasil percobaan seperti gambar di bawah ini
2. Menghitung nilai absolut suatu bilangan. /* File program : absolut.c */ #include <stdio.h> #include <conio.h> main() { int bil, abs; printf("Masukkan bilangan bulat : "); scanf("%d", &bil); if(bil < 0) abs = -bil; else abs = bil; printf("Nilai absolut dari %d adalah %d\n\n", bil, abs); getch(); }
3. Pemakaian if-else untuk menyeleksi bilangan pembagi. /* File program : bagi1.c */ #include <stdio.h> #include <conio.h> main() { float a, b; printf("Masukkan nilai a : "); scanf("%f", &a); printf("Masukkan nilai b : "); scanf("%f", &b); printf("\n"); if (b == 0) printf("%g dibagi dengan nol = TAK BERHINGGA\n", a); else printf("%g dibagi dengan %g = %g\n", a, b, a/b); getch(); }
Hasil percobaan seperti gambar di bawah ini
4. Pemakaian if-else untuk mengecek hasil modulus. /* File program : bagi2.c */ #include <stdio.h> #include <conio.h> main() { int bil1, bil2, sisa; printf("Masukkan bilangan pertama : "); scanf("%d", &bil1); printf("Masukkan bilangan kedua : "); scanf("%d", &bil2);
sisa = bil1 % bil2; printf("\n"); if (sisa == 0) printf("%d habis dibagi dengan %d\n\n", bil1, bil2); else printf("%d tidak habis dibagi dengan%d, sisa hasil bagi adalah %d\n\n", bil1, bil2, sisa); getch(); }
Hasil percobaan seperti gambar di bawah ini
5. Mengkategorikan karakter masukan. /* File program : tebak.c */ #include <stdio.h> #include <conio.h> main() { char karakter; printf("Masukkan sebuah karakter : "); scanf("%c", &karakter); if ((karakter >= 'a' && karakter <= 'z') || (karakter >= 'A' && karakter <= 'Z')) printf("%c adalah karakter alphabet\n", karakter); else if (karakter >= '0' && karakter <= '9') printf("%c adalah bilangan\n", karakter); else printf("%c adalah karakter khusus\n", karakter); getch(); }
Hasil percobaan seperti gambar di bawah ini
6. Mengkategorikan bilangan bulat dengan memberinya tanda 1, 0 atau -1. /* File program : bulat.c */ #include <stdio.h> #include <conio.h> main() { int bil, tanda; printf("Masukkan sebuah bilangan : "); scanf("%d", &bil); if (bil < 0) tanda = -1; else if (bil == 0) tanda = 0; else if (bil > 1) tanda = 1; printf("Bilangan %d memiliki tanda %d\n", bil, tanda); getch(); }
Hasil percobaan seperti gambar di bawah ini
7. Implementasi program kalkulator sederhana menggunakan else-if. /* File program : kalkulator1.c */ #include <stdio.h> #include <conio.h> main() { /* valid_operator diinisialisasi dg logika 1 */ int valid_operator = 1; char Operator; float bil1, bil2, hasil;
printf("Masukkan 2 buah bilangan dan sebuah operator\n"); printf("dengan format : bil1 operator bil2\n\n"); scanf("%f %c %f", &bil1, &Operator, &bil2); if(Operator == '*')
hasil = bil1 * else if(Operator hasil = bil1 / else if(Operator hasil = bil1 + else if(Operator hasil = bil1 else valid_operator =
if(valid_operator) printf("%g %c %g is %g\n", bil1, Operator, bil2, hasil); else printf("Invalid operator!\n"); getch(); }
Hasil percobaan seperti gambar di bawah ini
8. Implementasi program kalkulator sederhana menggunakan switch - case. /* File program : kalkulator2.c */ #include <stdio.h> #include <conio.h> main() { /* valid_operator diinisialisasi dg logika 1 */ int valid_operator = 1; char OPERATOR; float bil1, bil2, hasil; printf("Masukkan 2 buah bilangan dan sebuah operator\n"); printf("dengan format : bil1 operator bil2\n\n"); scanf("%f %c %f", &bil1, &OPERATOR, &bil2); switch(OPERATOR) { case '*' : hasil = bil1 * bil2; break; case '/' : hasil = bil1 / bil2; break; case '+' : hasil = bil1 + bil2; break; case '-' : hasil = bil1 - bil2; break;
default : valid_operator = 0; } if(valid_operator) printf("%g %c %g is %g\n", bil1, bil2,hasil); else printf("Invalid operator!\n"); getch(); }
Hasil percobaan seperti gambar di bawah ini
OPERATOR,
C. SOAL 1. Buatlah program untuk menerima 2 buah bilangan bulat masukan. Tampilkan hasil dari pembagian bilangan pertama dengan bilangan kedua, dengan ketelitian 3 desimal. Input : bil1 dan bil2 Output : hasil bagi bil1 dengan bil2 Nilai tambah : program bisa mengecek pembagian dengan nol, yaitu jika bilangan kedua adalah nol, maka tidak dilakukan proses pembagian, namun ditampilkan pesan kesalahannya (division by zero).
D = b - 4ac Jika D = 0 , maka terdapat 2 akar real yang kembar, yaitu : x1 = x2 = -b / 2a Jika D > 0 , maka terdapat 2 akar real yang berlainan, yaitu : x1 = (-b + sqrt(D)) / 2a x2 = (-b - sqrt(D)) / 2a Jika D < 0 , maka terdapat 2 akar imaginair yang berlainan, yaitu : x1 = -b / 2a + (sqrt(-D) / 2a) i x2 = -b / 2a - (sqrt(-D) / 2a) i Input : a, b, c (float) Output : Nilai Determinan serta nilai akar-akar persamaan tsb (x1& x2). Petunjuk : - untuk mencari akar dari x, gunakan : sqrt(x) yang didefinisikan pada <math.h>.
- gunakan else if 3. Buatlah program untuk menampilkan menu dan melakukan proses sbb : Menu : 1. Menghitung volume kubus 2. Menghitung luas lingkaran 3. Menghitung volume silinder. Input : pilihan user (1, 2 atau 3) Jika pilihan = 1, maka : Input : panjang sisi kubus
3
Output : Volume kubus (vol = sisi ) Jika pilihan = 2, maka : Input : panjang jari-jari lingkaran
2
Output : Luas lingkaran (luas = 3.14 * r ) Jika pilihan = 3, maka : Input : panjang jari-jari lingkaran & tinggi silinder
2
Output : Volume silinder (vol = 3.14 * r * t) Jika pilihan selain 1, 2 & 3 (default) : Tampilkan pesan kesalahan. Petunjuk : gunakan switch-case
D. JAWABAN 1. #include<stdio.h> #include <conio.h> main() { float bil1, bil2; printf("Masukkan bil1 : "); scanf("%f", &bil1); printf("Masukkan bil2 : "); scanf("%f", &bil2); printf("\n"); if (bil2 == 0) printf("division by zero\n\n"); else printf("Hasil Bagi Bil1 dengan Bil2 = %.2f\n\n", bil1/bil2); getch(); }
2. #include<stdio.h> #include<math.h> #include<conio.h> using namespace std; main() { int a, b, c, D =0; float x1, x2, imajiner; printf("Mencari akar-akar persamaan kuadrat ax2+bx+c=0 \n"); printf (" Masukan 3 angka: \n"); scanf ("%d %d %d", &a, &b, &c); D = b * b - 4 * a * c; /* menghitung nilai deskriminan */ if (D>=0) if (D==0) { x1 = -b / (2*a); printf ("\n dua akar real kembar yaitu: \n"); printf ("x1 = x2 = %g\n", x1); } else { x1 = ( -b + sqrt(D))/ (2*a); x2 = ( -b - sqrt(D))/ (2*a); printf ("\n dua akar real berlainan yaitu:\n"); printf ("x1 = %g\n", x1); printf ("x2 = %g\n", x2); } else {
imajiner = (sqrt(-D) / (2*a)); x1 = -b / (2*a); printf ("\n dua akar imaginer berlainayaitu\n"); printf ("x1 = %g + %gi\n", x1, imajiner); printf ("x2 = %g - %gi\n", x1, imajiner); } getch(); }
Hasil soal seperti gambar di bawah ini
3. #include <stdio.h> #include <conio.h> main() { float k,l,s,t; float hasil; char kode; printf("Pilih kode 1-3\n1. volume kubus \n2. luas lingkaran \n3. volume silinder \npilihan anda adalah :"); scanf("%c",&kode); switch(kode) { case '1' : printf("Menghitung volume kubus \nmasukkan sisi kubus: "); scanf("%f",&k); hasil = k*k*k; printf("%.3f\n",hasil); break; case '2':
printf("Menghitung luas lingkaran \nmasukkan jari-jari lingkaran: "); scanf("%f",&l); hasil = 3.14*l*l; printf("%3f\n",hasil); break; case '3': printf("Menghitung volume silinder\n"); printf("masukkan jari-jari alas silinder: "); scanf("%f",&s, &t); printf("masukkan tinggi silinder: "); scanf("%f",&t); hasil = 3.14*s*s*t; printf("%.3f\n",hasil); break; default : printf("kode tidak ada\n"); } getch(); }
Hasil soal seperti gambar di bawah ini