Anda di halaman 1dari 23

PERCOBAAN DAN TUGAS

NAMA : CHRISTIAN ROI TUA SINAGA


NIM : 2005181004
KELAS : TRPL 1-A

1. PERTEMUAN : 5 dan 6
2. JUDUL : STRUKTUR KONTROL (PENGAMBILAN
KEPUTUSAN)
3. TUJUAN :
a. Menjelaskan dan menggunakan operator kondisi (operator relasi dan
logika)
b. Menggunaan pernyataan if
c. Menggunaan pernyataan if-else
d. Menggunaan pernyataan if dalam if
e. Menggunaan pernyataan switch

PERCOBAAN
1. Menghitung nilai discount menggunakan if.
/* File program : discount.c
*/ #include <stdio.h>
main()
{
double total_pembelian, discount =
0; clrscr();
printf("Total pembelian = Rp ");
scanf("%lf", &total_pembelian);
if(total_pembelian >= 100000)
discount = 0.05 *
total_pembelian;
printf("Besarnya discount = Rp %.2lf\n", discount); getch();}
2. Menghitung nilai absolut suatu bilangan.
/* File program : absolut.c
*/ #include <stdio.h>
main()
{
int bil,
abs;
clrscr();
printf("Masukkan bilangan bulat :
"); scanf("%d", &bil);
if(bil <
0) 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>
main()
{
float a,
b;
clrscr();
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();
}
4. Pemakaian if-else untuk mengecek hasil modulus.
/* File program : bagi2.c
*/ #include <stdio.h>
main()
{
int bil1, bil2,
sisa; clrscr();
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\n\n", bil1, bil2);
getch();
}
5. Mengkategorikan karakter masukan
/* File program : tebak.c
*/ #include <stdio.h>
main()
{
char
karakter;
clrscr();
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();
}
6. Mengkategorikan bilangan bulat dengan memberinya tanda 1, 0 atau -1.
/* File program : bulat.c
*/ #include <stdio.h>
main()
{
int bil, tanda;
clrscr();
printf("Masukkan sebuah bilangan :
"); scanf("%d", &bil);
if (bil < 0)
tanda = -1;
else if (bil ==
0) tanda = 0;
else
tanda = 1;
printf("Bilangan %d memiliki tanda %d\n", bil,
tanda); getch();
}
7. Implementasi program kalkulator sederhana menggunakan else-if.
/* File program : kalkulator1.c
*/ #include <stdio.h>
main()
{ /* valid_operator diinisialisasi dg logika 1
*/ int valid_operator = 1;
char operator;
float bil1, bil2,
hasil; clrscr();
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 * bil2;
else if(operator ==
'/') hasil = bil1 / bil2;
else if(operator ==
'+') hasil = bil1 + bil2;
else if(operator == '-')
hasil = bil1 - bil2;
else
valid_operator =
0;
if(valid_operator)
printf("%g %c %g is %g\n", bil1, operator,
bil2, hasil);
else
printf("Invalid
operator!\n"); getch();
}
8.
Implementasi program kalkulator sederhana menggunakan switch - case.
/* File program : kalkulator2.c
*/ #include <stdio.h>
main()
{
/* valid_operator diinisialisasi dg logika 1
*/ int valid_operator = 1;
char operator;
float bil1, bil2,
hasil; clrscr();
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, operator,
bil2,hasil); else
printf("Invalid
operator!\n"); getch();
}
9. Program untuk menhitung nilai akhir suatu matakuliah
#include<stdio.h>
main()
{
float absen,tugas,mid,uas,na;
char nama[15];
char nh;
clrscr();
printf(“Input Nama : “); scanf(“%s”,&nama);
printf("Input nilai kehadiran : "); scanf("%f" ,&absen);
printf("Input nilai Tugas : "); scanf("%f" ,&tugas);
printf("Input nilai mid : "); scanf("%f" ,&mid);
printf("Input nilai UAS :" ); scanf("%f" ,&uas);
na=0.1*absen+0.2*tugas+0.3*mid+0.4*uas;
printf("Nilai Akhir = %.2f\n",na);
if (na>=80 && na<=100)
nh='A';
if (na>=70 && na<=79)
nh='B';
if (na>=60 && na<=69)
nh='C';
if (na>=50 && na<=59)
nh='D';
if (na>=0 && na<=49)
nh='E';
printf("Nilai Huruf = %c\n",nh);
if (na>=60)
printf("Anda Lulus\n" );
else
printf("Anda tidak lulus\n");
getch();
}

10. Program untuk menghitung diskon dan jumlah bayar harga barang
#include <stdio.h>
main()
{
float j,h,hbrg,diskon,jb;
clrscr();
printf("Inputkan Jumlah Barang :");
scanf("%f",&j);
printf("Inputkan Harga Barang :");
scanf("%f",&h);
hbrg=j*h;
printf("Jumlah Harga Barang = %.2f\n",hbrg);
if (hbrg>=500000)
{
diskon=0.5*hbrg;
jb=hbrg-diskon;
}
if (hbrg<500000)
{
diskon=0.2*hbrg;
jb=hbrg-diskon;
}
printf("Jumlah Diskon = %.2f\n",diskon);
printf("JumlaH Bayar = %.2f\n",jb);
getch();
}

TUGAS
a. Buatlah algoritma dan program untuk menerima input 2 buah bilangan bulat.
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).
JAWABAN :
Algoritma :
Start

Bil1,Bil2
Jika “Tidak” Jika bil2=0
Jika bil2
≠0 maka, muncul
pesan
kesalahan
Jika “Ya”

Bil1 / Bil 2 = hasil

Tampilkan
Hasil bagi

End

Program dan Output :


b. Buatlah algoritma dan program untuk menghitung determinan dan mencari
2
akar-akar dari persamaan kuadrat : ax + bx + c = 0 , dengan ketentuan sbb :
2
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
JAWABAN :
Algoritma :
Program & Output
c. Buatlah algoritma dan 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
JAWABAN : Algoritma :

Start

Input pilihan
menu

Jika Pil
1. Vol Tampilakan
Input sisi (s) Vol = s*s*s nilai volume
kubus

Jika Pil 2 Tampilakn


luas
Input jari
Luas=3,14*r luas
lingkaran jari(r)
lingkaran

Jika pil 3 Tampilkan


vol Input r, t Vol=3,14*r*t volume
silinder silinder
Input Pesan
kesalahan
pilihan

End

Program dan Output :


d. Kumpulkan hasil Program berikut dan modifikasi ke bentuk Switch case
#include<stdio.h>
main()
{
char nip[9],
nama[15]; int gol,st;
float
gapok,tjg,gk,pph,gb;
clrscr();
printf("DAFTAR GAJI PEGAWAI\n");
printf("Inputkan NIP Pegawai : "); scanf("%s" ,&nip);
printf("Inputkan Nama Pegawai : "); scanf("%s"
,&nama); printf("Inputkan Golongan (1-4) : "); scanf("%d" ,&gol);
printf("Inputkan Status (1=Maried,2=single): "); scanf("%d" ,&st);

if (gol==1)

gapok=900000;
if (gol==2)
gapok=1250000
;
if (gol==3)
gapok=1750000
;
if (gol==4)
gapok=2500000
;
if (st==1)
tjg=0.25*gapok
;
if (st==2)
tjg=0.05*gapok
;
gk=gapok+tjg;
pph=0.1*gapok
; gb=gk-pph;
printf("Gaji Pokok :
%.2f\n",gapok); printf("Tunjangan : %.2f\n",tjg);
printf("Gaji Kotor : %.2f\n",gk );
printf("PPh : %.2f\n",pph);
printf("Gaji Bersih : %.2f\n",gb
); getch();
}
If case :

Program Modifikasi Switch Case :


Output Modifikasi Switch case :

e. Buat program untuk mencetak kwitansi pemesanan


makanan pada restoran fast food.
Data input : Nama Paket, jumlah paket
Output :
KWITANSI PEMBAYARAN MAKANAN
Nama Paket :
Jumlah Paket:
Harga/Paket:
Jumlah Harga:
PPn (10%):
Jumlah Bayar:
Terima Kasih Atas Kunjungan Anda

Program :

Output :

Anda mungkin juga menyukai