Anda di halaman 1dari 33

PRAKTIKUM 5

Decission : if & if else

A.

Dasar Teori
Untuk keperluan pengambilan keputusan, C menyediakan beberapa jenis pernyataan,

berupa if, if-else, dan switch. Pernyataan-pernyataan tersebut memerlukan suatu kondisi,
sebagai basis dalam pengambilan keputusan. Kondisi umum yang dipakai berupa keadaan benar
dan salah.
Operator Relasi

Operator relasi biasa dipakai untuk membandingkan dua buah nilai. Hasil pembandingan
berupa keadaan benar atau salah. Keseluruhan operator relasi pada C ditunjukkan pada tabel
disamping.

Operator Logika.
Operator logika biasa dipakai untuk menghubungkan ekspresi relasi. Keseluruhan operator logika
ditunjukkan pada tabel berikut.

Bentuk pemakaian operator && dan || adalah :

Operand1 operator Operand1

Pernyataan if
Pernyataan if mempunyai bentuk umum :
if(kondisi)
pernyataan;
Bentuk ini menyatakan :

Jika kondisi yang diseleksi adalah benar


(bernilai logika = 1), maka pernyataan
yang mengikutinya akan diproses.
1

Sebaliknya, jika kondisi yang diseleksi adalah tidak benar (bernilai logika = 0), maka
pernyataan yang mengikutinya tidak akan diproses.

Mengenai kodisi harus ditulis diantara tanda kurung, sedangkan pernyataan dapat berupa
sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan kosong. Diagram alir
dapat dilihat di disamping.

Pernyataan if-else
Pernyataan if-else memiliki bentuk :
if (kondisi)
pernyataan-1;
else
pernyataan-2;
Arti dari pernyataan if-else :

Jika kondisi benar, maka pernyataan-1


dijalankan.

Sedangkan bila kondisi bernilai salah, maka pernyataaan-2 yang dijalankan.

Masing-masing pernyataan-1 dan pernyataan-2 dapat berupa sebuah pernyataan tunggal,


pernyataan majemuk ataupun pernyataan kosong. Contoh penggunaan pernyataan if-else adalah
untuk menyeleksi nilai suatu bilangan pembagi. Jika nilai bilangan pembagi adalah nol, maka
hasil pembagian dengan nilai nol akan mendapatkan hasil tak berhingga. Jika ditemui nilai
pembaginya nol, maka proses pembagian tidak akan dilakukan.

B.

Tugas Pendahuluan
1. Buat program yang membaca nilai integer dan menuliskan Nilai a positif jika a >= 0
dan Nilai a negatif jika a < 0.
a. Algoritma

b.

Deklarasikan bil sebagai bilangan bulat

START

1. Baca bilangan, dan tampung di


variabel bil
2. Jika bilangan tersebut lebih dari atau
sama dengan 0, maka lakukan
langkah 3
3. Tampilkan bil adalah bilangan
positif.
4. Jika bilagan tersebut kurang dari 0,
maka lakukan langkah 5
5. Tampilkan bil adalah bilangan
negatif

2.

Flowchart

READ
bil

IF
bil >= 0

PRINT
bilangan
positif

N
PRINT
bilangan
negatif

END

Buat program untuk menginputkan sebuah bilangan, kemudian cetak ke layar


bilangan tersebut dan beri komentar apakah bilangan tersebut ganjil atau genap.
a. Algoritma
Deklarasikan bil sebagai bilangn bulat.
1. Baca bilangan, dan tampung di
variabel bil
2. Modulus bil dengan angka 2
3. Jika hasil sisa bagi(modulus)
bilangan tersebut sama dengan 0,
lakukan langkah 4
4. Tampilkan bil adalah bilangan
genap.
5. Jika tidak maka lakukan langkah 6
6. Tampilkan bil adalah bilangan
postitif

b.

Flowchart
START

READ
bil

sisa =
bil % 2

IF
sisa == 0

PRINT
bilangan
genap

N
PRINT
bilangan
ganjil

END

3. Buat program menggunaan pernyataan if adalah untuk menentukan besarnya


potongan harga yang diterima oleh seorang pembeli, berdasarkan kriteria :

tidak ada potongan harga jika total pembelian kurang dari Rp. 100.000 (dalam hal ini
potongan harga diinisialisasi dengan nol).

bila total pembelian lebih dari atau sama dengan Rp. 100.000, potongan harga
yang diterima diubah menjadi sebesar 5% dari total pembelian.
a.

Algoritma Penentu Diskon


Deklarasikan bayar dan diskon
sebagai variabel bilangan pecahan
float sekaligus berikan nilai 0 pada
diskon
1. Baca total pembayaran, tampung
di variabel bayar
2. Jika bayar lebih dari atau sama
dengan 100000 maka kerjakan
langkah 5, jika tidak maka
langsung kerjakan langkah 6
3. Hitung diskon, dengan cara
mengalikan
bayar
dengan
0.05(5%)
4. Hitung bayar kembali dengan
cara mengurangi bayar dengan
diskon.
5. Tampilkan uang yang harus
dibayar di layar.

4.

Flowchart Penentu Diskon


START

READ
bayar

IF
bayar >= 100000

diskon = bayar * 0.5

bayar = bayar-diskon

PRINT
bayar

END

Buat program yang menerima dua buah bilangan. Output dari program adalah Bilangan
pertama adalah kelipatan persekutuan bilangan kedua jika bilangan pertama habis dibagi
bilangan kedua atau Bilangan pertama bukan kelipatan persekutuan bilangan kedua jika
tidak habis dibagi.

1.

a.

Algoritma Pengecek Kelipatan


1.
2.
3.
4.
5.
6.
7.
8.

Deklarasikan bil1 dan bil2 sebagai bilangn bulat.


Baca bilangan pertama, dan tampung di variabel bil1
Baca bilangan kedua, dan tampung di variabel bil2
Modulus bil1 dengan bil2
Jika hasil sisa bagi(modulus) bilangan tersebut sama dengan 0, lakukan langkah 4
Tampilkan bil1 adalah kelipatan bil2 .
Jika tidak maka lakukan langkah 6
Tampilkan bil1 bukan kelipatan bil2

a.

Flowchart Pengecek Kelipatan


START

READ
bil1, bil2

sisa =
bil1 % bil2

IF
sisa == 0

PRINT
Bil1 adalah
kelipatann bil2

N
PRINT
Bil1 bukan
kelipatann bil2

END

5. Gunakan pernyataan ifelse untuk membuat program yang menerima 2 buah


bilangan bulat masukan. Tampilkan hasil dari pembagian bilangan pertama dengan
bilangan kedua, dengan ketelitian 3 desimal.
a. Algoritma
Deklarasikan bil1 dan bil2 sebagai
bilangan bulat.
1. Baca bilangan pertama, dan
tampung di variabel bil1
2. Baca bilangan kedua, dan
tampung di variabel bil2
3. Jika bil2 adalah 0(nol) maka
lakukan langkah 4, bila bukan
lakukan langkah 5-6
4. Tampilkan kalimat Bilangan
pembagi tidak boleh nol
5. Bagi bil1 dengan bil2, simpan
hasilnya di hasil
6. Tampilkan hasil pembagian

b.

Flowchart
START

READ
bil1, bil2

IF
bil2 == 0

hasil =
bil1 / bil2

Y
PRINT

PRINT

Bilangan
pembagi tidak
boleh nol

hasil

END

C.

Percobaan
1. Penentu bilangan bulat positif atau negatif
a. Listing program
#include <stdio.h>
main()
{
int bil;
printf("PRAKTIKUM 5 SOAL 1\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PENENTU BILANGAN POSITIF DAN NEGATIF\n");
printf("\n======================================== \n\n");
printf("Masukkan bilangan : ");
scanf("%d",&bil);
if(bil>=0)
printf("\n%d adalah bilangan positif",bil);
else
printf("\n%d adalah bilangan negatif",bil);
printf("\n\n");
}

b. Capture program

c. Analisis
Bilangan positif ialah bilangan yang lebih dari nol sedangkan bilangan negatif
adalah bilangan kurang dari nol. Untuk menyeleksi kondisi ini diperlukan pertintah
if dimana apabila bilangan yang diinputkan user kurang dari nol maka sistem akan
menampilkan informasi bahwa bilangan tersebut adalah bilangan positif sedangakan
bila tidak maka bilangan tersebut sudah pasti bilangan adalah bilangan negatif.
2. Penentu bilangan ganjil atau genap
a. Listing program
#include <stdio.h>
main()
{
int bil;
printf("PRAKTIKUM 5 SOAL 2\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");

printf("PENENTU BILANGAN GANJIL ATAU GENAP\n");


printf("\n======================================== \n\n");
printf("Masukkan bilangan : ");
scanf("%d",&bil);
printf("\nBilangan yang anda inputkan adalah : %d",bil);
if(bil % 2 == 0)
printf("\nBilangan tersebut adalah bilangan genap",bil);
else
printf("\nBilangan tersebut adalah bilangan ganjil",bil);
printf("\n\n");
}

b. Capture program

c. Analisis
Bilangan ganjil ialah bilangan yang habis dibagi 2 sedangkan bilangan genap
adalah bilangan yang tidak habis dibagi 2, Untuk menyeleksi kedua pernyataan
tersebut diperlukan perintah if-else. Untuk mencari apakah bilangan tersebut habis
dibagi 2 atau tidak, kita memerlukan operator modulus. Setelah tahu sisa baginya
baru diseleksi menggunakan if-else.
3. Program Penghitung Diskon
a. Listing program
#include <stdio.h>
main()
{
float bayar,diskon = 0.0f;
printf("PRAKTIKUM 5 SOAL 3\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM PENGHITUNG DISKON SEDERHANA\n");
printf("\n======================================== \n\n");
printf("Masukkan total pembelian: Rp. ");
scanf("%f",&harga);
if(harga >= 100000)
{
diskon
= bayar * 0.05;
bayar = bayar - diskon;
}

printf("\nTotal pembelian anda \t: Rp. %0.2f",bayar);


printf("\n\n");
}

b. Capture program

c. Analisis
Diskon akan diberikan ketika total pembelian lebih dari Rp. 100.000. Untuk
menyeleksi diskon tersebut maka kita bisa menggunakan perintah if saja untuk
kondisi total pembelian lebih dari 100000. Jika kondisi tersebut terpenuhi, maka
program akan menghitung diskon yang diberikan kemudian mengurangi total
pembelian. Sedangkan apabila tidak terpenuhi, maka total pembelian akan tetap,
tidak dikurangi diskon.
4. Pengecek kelipatan bilangan
a. Listing program
#include <stdio.h>
main()
{
int bil1,bil2;
printf("PRAKTIKUM 5 SOAL 4\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PENGECEK KELIPATAN BILANGAN\n");
printf("\n======================================== \n\n");
printf("Masukkan bilangan pertama \t: ");
scanf("%d",&bil1);
printf("Masukkan bilangan kedua \t: ");
scanf("%d",&bil2);
if(bil2 % bil1 == 0)
printf("\nBilangan pertama[%d] ADALAH kelipatan persekutuan
bilangan kedua[%d]",bil1,bil2);
else
printf("\nBilangan pertama[%d] BUKAN kelipatan persekutuan
bilangan kedua[%d]",bil1,bil2);
}

b. Capture program

c. Analisis
Untuk mengetahui suatu bilangan apakah kelipatan dari bilangan lainnya, kita
dapat menggunakan operator modulus kemudian kondisinya kita tentukan dengan
pernyataan if-else. Suatu bilangan merupakan kelipatannya apabila bilangan
tersebut habis dengan bilangan lain, dan bukan kelipatannya bila tidak habis dibagi.
5. Program pembagi 2 bilangan
a. Listing program
#include <stdio.h>
main()
{
float bil1,bil2,hasil;
printf("PRAKTIKUM 5 SOAL 5\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM PEMBAGI BILANGAN \n");
printf("\n======================================== \n\n");
printf("Masukkan bilangan pertama \t: ");
scanf("%f",&bil1);
printf("Masukkan bilangan kedua \t: ");
scanf("%f",&bil2);
if(bil2 == 0)
printf("\nBilangan kedua tidak boleh nol!");
else
{
hasil = bil1 / bil2;
printf("\nHasil bagi %f dan %f adalah %.3f",bil1,bil2,hasil);
}
printf("\n\n");
}

b. Capture program

c. Analisis
Dalam ilmu matematika, tidak dikenal pembagian dengan bilangan nol.
Apabila hal ini dilakukan di komputer atau bahasa pemrograman maka akan
menghasilkan error pula. Oleh karena itu kita bisa membuat semacam error
handling dimana apabila bilangan pembagi atau bilangan kedua adalah bilangn nol
maka langsung berikan peringatan Bilangan kedua tidak boleh nol tanpa perlu
melakukan proses permbagian terlebih dahulu.

D.

Soal Tambahan
1) Program penentu bilangan absolut
a. Listing program
#include <stdio.h>
main()
{
int bil,abs;
printf("PRAKTIKUM 5 Tambahan 1\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM PENGHITUNG NILAI ABSOLUT \n");
printf("\n======================================== \n\n");
printf("Masukkan bilangan \t: ");
scanf("%d",&bil);
if(bil < 0)
abs = bil * -1;
else
abs = bil;
printf("\nNilai absolute dari bilangan %d adalah %d.",bil,abs);
printf("\n\n");
}

10

b. Capture program

c. Analisis
Bilangan absolut adalah bilangan yang nilainya selalu positif walaupun inputannya
berupa bilangan negatif. Untuk mencari bilangan positif tersebut kita bisa
menggunkan perintah if dimana apabila bilangan yang diinputkan adalah bilangan
negatif(kurang dari nol) bilangan tersebut harus dikalikan -1 dahulu sehingga menjadi
bilangan positif.
2) Untuk 3 flow chart di bawah ini lakukan tracing flow chart untuk menemukan
outputnya, jika input yang diberikan adalah : (1) bil = 10 (2) bil = -10 (3) bil = 0

1) Kategori A
2) (kosong)
3) (kosong)

1) Kategori A
2) Kategori B
3) Kategori B

1) Kategori A
2) Kategori B
Kategori A
3) Kategori B
Kategori A

E. Kesimpulan
1. Di dalam bahasa permrograman terdapat 3 cara yang biasanya digunakan untuk
melakukan perintah sesuai kondisi yaitu if, if else dan switch-case.
2. Suatu blok if akan dijalankan apabila memenuhi kondisi sesuai kriteria.
3. Untuk menentukan kondisi kita dapat menggunakan operator kondisi seperti ==,<, > <=
dan >=.
4. Selain itu kita juga dapat menggunakan operator logika untuk menggabungkan 2 kondisi
atau lebih.
11

PRAKTIKUM 6
Decission : Nested if & else if
A.

Dasar Teori

Pernyataan if di dalam if
Di dalam suatu pernyataan if (atau if-else) bisa saja terdapat pernyataan if (atau ifelse)
yang lain. Bentuk seperti ini dinamakan sebagai nested if. Secara umum, bentuk dari pernyataan
ini adalah sebagai berikut :

Kondisi yang akan diseleksi pertama kali adalah kondisi yang terluar (kondisi-1).
Jika kondisi-1 bernilai salah, maka statemen else yang terluar (pasangan if yang
bersangkutan) yang akan diproses. Jika else (pasangannya tsb) tidak ditulis, maka
penyeleksian kondisi akan dihentikan.
Jika kondisi-1 bernilai benar, maka kondisi berikutnya yang lebih dalam (kondisi-2)
akan diseleksi. Jika kondisi-2 bernilai salah, maka statemen else pasangan dari if yang
bersangkutan yang akan diproses. Jika else (untuk kondisi-2) tidak ditulis, maka
penyeleksian kondisi akan dihentikan.
Dengan cara yang sama, penyeleksian kondisi akan dilakukan sampai dengan
kondisi-n, jika kondisi-kondisi sebelumnya bernilai benar.

12

B.

Tugas Pendahuluan
1. Buatlah program yang menerima masukan berupa suhu dari sebuah benda. Keluaran dari
program ini adalah Benda berbentuk padat jika suhu di bawah 0 derajat, Benda
berbentuk cair jika suhu antara 0-100 dan Benda berbentuk gas jika suhu di atas 100
derajat.
a. Algoritma
Deklarasikan suhu sebagai bilangan pecahan float.
1. Masukkan suhu
2. Jika suhu kurang dari nol kerjakan langkah 3 bila tidak kerjakan langkah 4 dan
seterusnya
3. Tampilkan Benda tersebut adalah benda padat.
4. Jika suhu kurang dari seratus kerjakan langkah 5 bila tidak kerjakan langkah 6
5. Tampilkan Benda tersebut adalah benda cair.
6. Tampilkan Benda tersebut adalah benda gas.
b. Flowchart
START

READ
suhu

IF
suhu < 0

Y
PRINT
Benda Padat

IF
suhu <= 100

Y
PRINT

PRINT

Benda Cair

Benda Padat

END

2. Pada sebuah perusahaan didapatkan Rekruitmen Karyawan berdasarkan Test


Akademik, tes Ketrampilan dan Test Psikologi. Dari hasil tersebut peserta yang
dinyatakan lulus adalah yang mendapatkan nilai dari ketiga test tersebut minimal rata-rata
13

75. Sementara untuk penempatan pada 3 Departemen, jika nilai tes Akademik lebih
bagus (lebih besar) dari nilai tes Ketrampilan atau nilai tes Psikologi maka
karyawan akan ditempatkan pada bagian administrasi. Jika nilai tes Ketrampilan lebih
baik dari kedua tes tersebut maka karyawan akan ditempatkan pada bagian Produksi,
selain itu ditempatkan pada bagian Pemasaran.
a.

Algoritma Penerimaan Tenaga Kerja

Deklarasikan ak(akademik), kt(ketrampilan) dan ps(psikologi) sebagai bilangan pecahan.


1. Masukkan ak, kt, dan ps.
2. Hitung rata-rata dengan menjumlahkan ak , kt dan ps kemudia bagi dengan angka 3
3. Jika rata-rata kurang dari 75 maka lakukan langkah 3, bila tidak maka lakukan
langkah 4 dan selanjutnya.
4. Tampilkan Maaf anda tidak lolos!.
5. Jika ak lebih dari ps dan ak lebih dari kt maka lakukan langkah 5, bila tidak lakukan
langkah 6 dan selanjutnya.
6. Tampilkan Anda lolos di bagian administrasi.
7. Jika kt lebih dari ak dan kt lebih dari ps maka lakukan langkah 7, bila tidak lakukan
langkah 8.
8. Tampilkan Anda lolos di bagian produksi.
9. Tampilkan Anda lolos di bagian pemasaran.
b. Flowchart Penerimaan Tenaga Kerja
rata =
(ak + kt + ps) / 3

READ
ak,kt,ps

START

IF
kt > ak
AND
kt > ps

IF
ak > ps
AND
ak > kt

IF
rata < 75

PRINT

PRINT

PRINT

PRINT

Anda lolos
di bagian
Pemasaran

Anda lolos
di bagian
Produksi

Anda lolos
di bagian
Administrasi

Maaf, Anda
Tidak Lolos

END

3. Dengan menggunakan pernyataan else..if , buatlah program kalkulator sederhana!


a. Algoritma kalkulator sederhana

14

Deklarasikan bil1,bil2,hasil sebagai bilangan pecahan dan juga op sebagai bilangan


bulat.
1. Baca bil1, bil2 dan op
2. Jika op sama dengan 1 lakukan langkah 3, jika tidak lakukan langkah 5
3. Hitung hasil dengan menjumlahkan bil1 dengan bil2, tampung hasilnya di hasil.
4. Tampilkan hasil
5. Jika op sama dengan 2 lakukan langkah 6, jika tidak lakukan langkah 8
6. Hitung hasil dengan menjumlahkan bil1 dengan bil2, tampung hasilnya di hasil.
7. Tampilkan hasil
8. Jika op sama dengan 3 lakukan langkah 9, jika tidak lakukan langkah 11
9. Hitung hasil dengan menjumlahkan bil1 dengan bil2, tampung hasilnya di hasil.
10. Tampilkan hasil
11. Jika op sama dengan 4 lakukan langkah 12, jika tidak lakukan langkah 14
12. Hitung hasil dengan menjumlahkan bil1 dengan bil2, tampung hasilnya di hasil.
13. Tampilkan hasil
14. Tampilkan peringatan Operator yang anda masukkan salah
b. Flowchart kalkulator sederhana
READ
bil1,bil2

START

IF
Op == 4
//Perkalian

Y
hasil = bil1 * bil2

PRINT
Pilih
menu

IF
Op == 3
//Pembagian

READ
op

IF
Op == 2
//Pengurangan

Y
hasil = bil1 / bil2

IF
Op == 1
//Penjumlahan

Y
hasil = bil1 - bil2

Y
hasil = bil1 + bil2

PRINT
Operator
Salah

PRINT

PRINT

PRINT

PRINT

hasil

hasil

hasil

hasil

END

4. Buat program untuk mengkonversikan nilai angka ke nilai huruf


a. Algoritma Program konversi nilai ke huruf
Deklarasikan nilai sebagai bilangan pecahan
1. Masukkan bilangan
2. Jika bilangan lebih dari/sama dengan 0 dan kurang dari/sama dengan 40 maka
lakukan langkah 3, bila tidak, lakukan langkah 4 dan seterusnya
3. Tampilkan Nilai anda E di layar.
15

4. Jika bilangan lebih dari 40 dan kurang dari/sama dengan 55


langkah 5, bila tidak, lakukan langkah 6 dan seterusnya
5. Tampilkan Nilai anda D di layar.
6. Jika bilangan lebih dari 55 dan kurang dari/sama dengan 60
langkah 7, bila tidak, lakukan langkah 8 dan seterusnya
7. Tampilkan Nilai anda C di layar.
8. Jika bilangan lebih dari 60 dan kurang dari/sama dengan 80
langkah 9, bila tidak, lakukan langkah 10 dan seterusnya
9. Tampilkan Nilai anda B di layar.
10. Jika bilangan lebih dari 80 dan kurang dari/sama dengan 100
langkah 11, bila tidak, lakukan langkah 12
11. Tampilkan Nilai anda A di layar.
12. Tampilkan Nilai yang anda masukkan salah! di layar.

maka lakukan

maka lakukan

maka lakukan

maka lakukan

b. Flowchart Program konversi nilai ke huruf

READ
n

START

//nilai

IF
n > 80
AND
n <= 100

IF
n > 60
AND
n <= 80

IF
n > 55
AND
n <=60

IF
n > 40
AND
n <= 55

IF
n >= 0
AND
n <= 40

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

END

Nilai
Salah

5. Buatlah program simulasi penerimaan kerja.


a.

Algoritma program simulasi penerimaan kerja.

Deklarasikan kacamata,ipk,status,umur sebagai bilangan pecahan


1. Masukkan umur
2. Jika umur lebih dari 35 lakukan langkah 3, bila tidak, langkah 4 dan seterusnya
3. Tampilkan Umur anda kurang muda.
4. Masukkan nilai kacamata(1/0)
5. Jika kacamata sama dengan 0 lakukan langkah 6, bila tidak, lakukan langkah 7
dan seterusnya
6. Tampilkan Tidak menerima karyawan berkacamata.
7. Masukkan nilai status(1/0)
8. Jika status sama dengan 0 lakukan langkah 9, bila tidak, lakukan langkah 10 dan
seterusnya
16

9. Tampilkan Anda harus lajang untuk diterima.


10. Masukkan ipk
11. Jika ipk lebih dari/sama dengan 3 lakukan langkah 12, bila tidak, lakukan langkah
13 dan seterusnya
12. Tampilkan Belajar lagi saja
13. Tampilkan Selamat anda lolos seleksi!
b. Flowchart penerimaan tenaga kerja
START

READ
umur

IF
umur <
35

IF
kacamata
== 0

IF
status
== 0

IF
ipk >=
3,0

PRINT
Anda
kurang
muda

READ
kacamata

PRINT
Tidak
boleh
kacamata

READ
status

PRINT
Harus
Lajang

READ
ipk

PRINT
Belajar
lagi saja

PRINT
Anda
Lolos

END

17

C. Percobaan
1. Program penentu wujud benda
a. Listing program
#include <stdio.h>
main()
{
int suhu;
printf("PRAKTIKUM 6 SOAL 1\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM PENENTU WUJUD BENDA\n");
printf("\n======================================== \n\n");
printf("Masukkan suhu benda (Celcius): ");
scanf("%d",&suhu);
if(suhu < 0)
printf("\nSuhu
benda padat",suhu);
else if(suhu < 100)
printf("\nSuhu
benda cair",suhu);
else
printf("\nSuhu
benda gas",suhu);
}

benda

%d

celcius,

Benda

tersebut

adalah

benda

%d

celcius,

Benda

tersebut

adalah

benda

%d

celcius,

Benda

tersebut

adalah

b. Capture program

c. Analisis
Di dalam program ini membutuhkan 3 kondisi berbeda untuk menentukan
suatu benda berwujud apa sesuai suhunya. Oleh karena itu diperlukanlah perintah
if-else untuk menyeleksi masing-masing kondisi dari suhu yang telah diinputkan
oleh user. Ketika suhu yang diinputkan sesuai kriteria pada kondisi, maka
program akan langsung menampilkan wujud dari benda tersebut.

18

2. Program penerimaan karyawan


a. Listing program
#include <stdio.h>
main()
{
float akademik,psikologi,ketrampilan,rata;
printf("PRAKTIKUM
6
SOAL
2\nRENDRA
|
2110131036
1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM PENERIMAAN KARYAWAN\n");
printf("\n======================================== \n\n");
printf("Masukkan suhu benda (Celcius): ");
scanf("%d",&suhu);

printf("Masukkan Nilai Tes Akademik : ");


scanf("%f",&akademik);
printf("Masukkan Nilai Tes Psikologi : ");
scanf("%f",&psikologi);
printf("Masukkan Nilai Tes Ketrampilan : ");
scanf("%f",&ketrampilan);
rata = (akademik + psikologi + ketrampilan) / 3;
if(rata > 7.5)
{
printf("\nSelamat anda telah diterima bekerja!");
if(akademik > ketrampilan && akademik > psikologi)
printf("\nAnda ditempatkan di bagian ADMINISTRASI");
else if(ketrampilan > akademik && ketrampilan > psikologi)
printf("\nAnda ditempatkan di bagian PRODUKSI");
else
printf("\nAnda ditempatkan di bagian PEMASARAN");
}
else
printf("\nMaaf anda kurang beruntung!");
}

b. Capture program

19

c. Analisis
Untuk menyeleksi kondisi seperti pada program penerimaan karyawan ini,
diperlukanlah nested-if yaitu perintah if bersarang, atau if di dalam if. Blok if
pertama digunakan untuk mengcek apakah peserta seleksi memilki nilain yang cukup
atau tidak sedangkan blok if kedua yang berada di dalam if pertama berguna
melakukan penempatan kerja sesuai kriteria nilai yang ditentukan.
3. Program kalkulator sederhana
a. Listing program
#include <stdio.h>
main()
{
float bil1, bil2, hasil, opmenu;
printf("PRAKTIKUM 6 SOAL 3\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM Kalkulator Sederhana\n");
printf("\n======================================== \n\n");
printf("Masukkan bilangan pertama \t: ");
scanf("%f",&bil1);
printf("Masukkan bilangan kedua \t: ");
scanf("%f",&bil2);
printf("\nMENU MATEMATIKA\n");
printf("\n[1] Penjumlahan");
printf("\n[2] Pengurangan");
printf("\n[3] Pembagian");
printf("\n[4] Perkalian");
printf("\nMasukkan pilihan anda \t: ");
scanf("%f",&opmenu);
if(opmenu == 1)
hasil = bil1 +
else if(opmenu == 2)
hasil = bil1 else if(opmenu == 3)
hasil = bil1 /
else
hasil = bil1 *

bil2;
bil2;
bil2;
bil2;

printf("Hasil Operasi Tersebut \t= %.f",hasil);


}

20

c. Capture program

d. Analisis
Pada program kalkulator sederhana ini diperlukan fungsi if untuk menyeleksi
operasi aritmatika yang akan dijalankan. Oleh karena itu diperlukanlah operator atau
pilihan menu yang dapat dipilih oleh user dengan cara memasukkan nomor menu
terlebih dahulu kemudian baru program menjalankan operasi sesuai operator yang
dimasukkan.
4.

Program konversi nilai ke huruf


a. Listing program
#include <stdio.h>
main()
{
int nilai;
printf("PRAKTIKUM 6 SOAL 3\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM KONVERSI NILAI KE HURUF\n");
printf("\n======================================== \n\n");
printf("Masukkan nilai angka : ");
scanf("%d",&nilai);
if(nilai <= 40)
printf("\nNilai
else if(nilai <= 55)
printf("\nNilai
else if(nilai <= 60)
printf("\nNilai
else if(nilai <= 80)
printf("\nNilai
else if(nilai <= 100)
printf("\nNilai
else
printf("\nNilai

anda adalah E");


anda adalah D");
anda adalah C");
anda adalah B");
anda adalah A");
yang anda inputkan tidak valid!");

21

b. Capture program

c. Analisis
Program konversi nilai ke angka ini menggunakan perintah if else karena
memiliki kondisi yang cukup banyak. Setelah user menginputkan nilai, program akan
menyeleksi nilai tersebut, apakah sesuai kondisi atau tidak. Bila iya maka langsung
tampilkan nilai huruf sesuai kondisi tadi. Bila angka tidak ada yang sesuai kriteria,
program akan menampilkan informasi error.
5. Program penerimaan karyawan
a. Listing Program
#include <stdio.h>
#include <stdio.h>
main()
{
int umur,kacamata,status;
float ipk;
char coba;
printf("PRAKTIKUM 6 SOAL 5\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM PENERIMAAN KARYAWAN 2\n");
printf("\n======================================== \n\n");
printf("Berapa umur anda sekarang?");
scanf("%d",&umur);
if(umur > 35)
{
printf("\nMaaf sepertinya anda terlalu tua, silakan edit KTP
anda!");
}
else
{
printf("\nApakah anda berkacamata (1/0)? ");
scanf("%d",&kacamata);
if(kacamata)
{
printf("\nMaaf kami tidak bisa menerima orang berkacamata,
silakan lepas kacamata anda!");

22

}
else
{
printf("\nApakah anda sudah menikah (1/0)?");
scanf("%d",&status);
if(status)
{
printf("\nMaaf kami tidak bisa menerima orang yang
telah menikah!");
}
else
{
printf("\nBerapa nilai IPK anda?");
scanf("%f",&ipk);
if(ipk < 2.75)
{
printf("\nWah,
sepertinya
IPK
anda
terlalu
kecil untuk masuk sini.");
}
else
{
printf("\nSelamat! Anda berhasil menempuh semua
tahapan dari test ini!");
}
}
}
}
}

b. Capture program

c. Analisis
Di program penerimaan karyawan ini, digunakan nested-if dimana apabila suatu
kriteria dari karyawan tidak terpenuhi, program dapat langsung memberikan informasi
tidak diterimanya karyawan tanpa harus bertele-tele menanyakan hal lain.

23

D.

Soal Tambahan

1.

Program konversi angka ke hari


#include <stdio.h>
main()
{
int bil;
printf("PRAKTIKUM 6 SOAL TAMBAHAN \nRENDRA
| 2110131036
1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM KONVERSI ANGKA KE HARI\n");
printf("\n======================================== \n\n");

printf("Masukkan bilangan : ");


scanf("%d",&bil);
printf("\n");
if(bil == 1)
puts("Hari Minggu");
else if(bil == 2)
puts("Hari Senin");
else if(bil == 3)
puts("Hari Selasa");
else if(bil == 4)
puts("Hari Rabu");
else if(bil == 5)
puts("Hari Kamis");
else if(bil == 6)
puts("Hari Ju7at");
else if(bil == 7)
puts("Hari Sabtu");
else
puts("Angka tidak valid!");
printf("\n\n");
}

E. Kesimpulan
Nested-if atau if bersarang lazimnya digunakan untuk kondisi dimana apabila suatu
kondisi tidak terpenuhi akan langsung menjalankan perintah lainnya tanpa
memperdulikan pernyataan lain di dalam if tersebut.

else-if digunakan apabila terdapat kriteria kondisi lagi setelah kondisi


pertama sehingga menyebabkan pernyataan if bertingkat.

24

PRAKTIKUM 7
Decission : Switch

F.

Dasar Teori
Pernyataan switch
Pernyataan switch merupakan pernyataan yang dirancang khusus untuk menangani
pengambilan keputusan yang melibatkan sejumlah alternatif, misalnya untuk menggantikan
pernyataan if bertingkat. Bentuk umum pernyataan switch adalah :
dengan ekspresi dapat berupa ekspresi bertipe
integer atau bertipe karakter. Demikian juga
konstanta-1, konstanta-2, , konstanta-n dapat
berupa konstanta integer atau karakter. Setiap
pernyataan-i (pernyataan-1, , pernyataan-n)
dapat
berupa pernyataan tunggal ataupun
pernyataan jamak. Dalam hal ini urutan penulisan
pernyataan case tidak berpengaruh. Proses
penyeleksian berlangsung sebagai berikut :

1. pengujian pada switch akan dimulai dari


konstanta-1. Kalau nilai konstanta-1 cocok
dengan ekspresi maka
pernyataan-1
dijalankan. Kata kunci
break
harus
disertakan di
bagian
akhir
setiap
pernyataan case, yang akan mengarahkan
eksekusi ke akhir switch.
2. Kalau ternyata pernyataan-1 tidak sama
dengan nilai ekspresi, pengujian dilanjutkan
pada konstanta-2, dan berikutnya serupa dengan pengujian pada konstanta-1.
3. Jika sampai pada pengujian case yang terakhir ternyata tidak ada kecocokan, maka
pernyataan yang mengikuti kata kunci default yang akan dieksekusi. Kata kunci
default ini bersifat opsional.
4. Tanda kurung kurawal tutup (}) menandakan akhir dari proses penyeleksian kondisi case.

25

G. Tugas Pendahuluan
1. Dengan menggunakan switch case, buat program yang meminta masukan bilangan bulat
dari pengguna. Jika pengguna memasukkan 1, program menampilkan Minggu; jika
pengguna memasukkan 2, program menampilkan Senin, dan seterusnya sampai
dengan Sabtu. Jika pengguna memasukkan nilai di luar jangkauan 1 sampai
dengan, program menuliskan Hari tidak Valid.
a. Algroitma mengubah angka menjadi hari
Deklarasikan bil sebagai sebuah bilang bulat
1. Masukkan bil
2. Jika bil sama dengan 1 maka tampilkan Minggu, bila tidak ke langkah 3
3. Jika bil sama dengan 2 maka tampilkan Senin, bila tidak ke langkah 4
4. Jika bil sama dengan 3 maka tampilkan Selasa, bila tidak ke langkah 5
5. Jika bil sama dengan 4 maka tampilkan Rabu, bila tidak ke langkah 6
6. Jika bil sama dengan 6 maka tampilkan Jumat, bila tidak ke langkah 7
7. Jika bil sama dengan 7 maka tampilkan Sabtu, bila tidak ke langkah 8
8. Tampilkan Bilangan yang dimasukkan tidak valid

b. Flowchart
READ

START

bil

IF
bil==7

IF
bil==6
N

Y
PRINT
Sabtu

Y
PRINT
Jumat

IF
bil==5
Y
PRINT
Kamis

IF
bil==4

Y
PRINT
Rabu

IF
bil==3
Y
PRINT
Selasa

IF
bil==2

IF
bil==1

Y
PRINT
Senin

Y
PRINT
Minggu

PRINT

END

Invalid

2. Kalkulator sederhana
a. Algoritma Kalkulator Sederhana
Deklarasikan bil1,bil2,hasil sebagai bilangan pecahan dan juga op sebagai bilangan
bulat.
1. Baca bil1, bil2 dan op
2. Jika op sama dengan 1 lakukan langkah 3, jika tidak lakukan langkah 5
3. Hitung hasil dengan menjumlahkan bil1 dengan bil2, tampung hasilnya di hasil.
26

4. Tampilkan hasil
5. Jika op sama dengan 2 lakukan langkah 6, jika tidak lakukan langkah 8
6. Hitung hasil dengan menjumlahkan bil1 dengan bil2, tampung hasilnya di hasil.
7. Tampilkan hasil
8. Jika op sama dengan 3 lakukan langkah 9, jika tidak lakukan langkah 11
9. Hitung hasil dengan menjumlahkan bil1 dengan bil2, tampung hasilnya di hasil.
10. Tampilkan hasil
11. Jika op sama dengan 4 lakukan langkah 12, jika tidak lakukan langkah 14
12. Hitung hasil dengan menjumlahkan bil1 dengan bil2, tampung hasilnya di hasil.
13. Tampilkan hasil
14. Tampilkan peringatan Operator yang anda masukkan salah
b. Flowchart Kalkulator Sederhana
PRINT

READ
bil1,bil2

START

IF
Op == 4

//Perkalian

hasil = bil1

PRINT
Operator
Salah

PRINT
hasil

IF
Op == 3
//Pembagian

Y
bil2

READ
op

Pilih menu

hasil = bil1 /
bil2

PRINT
hasil

IF
Op == 2
//Pengurangan

IF
Op == 1
//Penjumlahan

Y
hasil = bil1 bil2

PRINT
hasil

Y
hasil = bil1 +
bil2

PRINT
hasil

END

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)
a. Algoritma
Deklarasikan menu sebagai bilangan bula, dan s,r dan t sebagai bilangan pecahan
1. Masukkan pilihan menu
2. Jika menu yang dimasukkan adalah 1 maka ke langkah 3 bila tidak, ke langkah 6
3. Masukkan r(radius) dan t(tinggi)
4. Kalikan variable diatas sesuai rumus 3.14 * r * r * t
5. Tampilkan hasilnya di layar
6. Jika menu yang dimasukkan adalah 2 maka ke langkah 7 bila tidak, ke langkah 10
27

7. Masukkan r(radius)
8. Kalikan variable diatas sesuai rumus 3.14 * r * r
9. Tampilkan hasilnya di layar
10. Jika menu yang dimasukkan adalah 3 maka ke langkah 12 bila tidak, ke langkah 14
11. Masukkan r(radius)
12. Kalikan variable diatas sesuai rumus s * s * s
13. Tampilkan hasilnya di layar
14. Tampilkan Menu yang dimasukkan tidak tersedia
b. Flowchart
READ
menu

START

IF
menu
== 3

IF
menu
== 2

//v tabung

//l lingkar

PRINT
Menu tidak
tersedia

IF
menu
== 1
//v kubus

READ
s

hasil = s*s*s

READ
r

hasil = 3.14*r*r

PRINT
hasil

PRINT
hasil

Y
READ
r,t

hasil =
3.14*r*r*t

PRINT
hasil

END

H. Percobaan
1. Program Konversi Angka ke Hari
a.
Listing program
#include <stdio.h>
main()
{
int bil;
printf("PRAKTIKUM 7 SOAL 1\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM KONVERSI ANGKA KE HARI\n");
printf("\n======================================== \n\n");
printf("Masukkan bilangan : ");
scanf("%d",&bil);
printf("\n");
switch(bil)

28

{
case 1 :
puts("Minggu");
break;
case 2 :
puts("Senin");
break;
case 3 :
puts("Selasa");
break;
case 4 :
puts("Rabu");
break;
case 5 :
puts("Kamis");
break;
case 6 :
puts("Jum\'at");
break;
case 7 :
puts("Sabtu");
break;
default :
puts("Hari tidak valid!");
break;
}
printf("\n\n");
}

b. Capture program

c. Analisis
Untuk konversi angka ke hari, perintah switch-case memanglah yang paling cocok
karena pada program ini memiliki kondisi/pilihan-pilihan yang cukup banyak dan
berstruktur. Pernyataan switch-case akan menyeleksi bilangan bulat yang dijadikan
sebagai patokan hari. Setiap kondisi atau case harus diakhiri dengan break agar
jalannnya program tidak berlanjut ke case selanjutnya.
2. Program kalkulator sederhana
a. Listing program
29

#include <stdio.h>
main()
{
int valid_op = 1;
char op;
float number1, number2, result;
printf("PRAKTIKUM 7 SOAL 2\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM KALKULATOR SEDERHANA \n");
printf("\n======================================== \n\n");
printf("Masukkan 2 buah bilangan & sebuah op\n");
printf("dengan format : number1 op number2\n\n");
scanf("%f %c %f", &number1, &op, &number2);
switch(op)
{
case '*':
result =
break;
case '/':
result =
break;
case '+':
result =
break;
case '-':
result =
break;
default:
valid_op
break;
}

number1 * number2;
number1 / number2;
number1 + number2;
number1 - number2;
= 0;

if(valid_op)
printf("\n%g %c %g adalah
result );
else
printf("Invalid op!\n");
}

%g\n",

number1,

op,

number2,

b. Capture program

30

c. Analisis
Program kalkulator sederhana yang menggunakan switch-case ini melakukan
penyeleksian terhadap operator yang dimasukkan oleh user. Setelah operator tersebut
sesuai dengan kondisi / case maka program akan melakukan operasi aritmtika yang
sesuai dengan operator.
3. Program penghitung berbagai bangun
a. Listing program
#include <stdio.h>
main()
{
int opmenu;
float
sisi_kubus,volume_kubus,radius_lingkaran,luas_lingkaran,tinggi_tabung,v
olume_tabung;
printf("PRAKTIKUM 7 SOAL 2\nRENDRA | 2110131036 | 1D4ITB\n");
printf("\n======================================== \n\n");
printf("PROGRAM PENGHITUNG BERBAGAI BANGUN\n");
printf("\n======================================== \n\n");
printf("=== MENU ===\n");
printf("[1] Menghitung volume kubus\n");
printf("[2] Menghitung luas lingkaran\n");
printf("[3] Menghitung volume tabung\n");
printf("Masukkan pilihan anda : ");
scanf("%d",&opmenu);
printf("\n");
switch(opmenu)
{
case 1:
printf("==== Menghitung volume kubus ===");
printf("\nMasukkan panjang sisi \t = ");
scanf("%f",&sisi_kubus);
volume_kubus = sisi_kubus * sisi_kubus * sisi_kubus;
printf("\nLuas kubus tersebut adalah %.2f",volume_kubus);
break;
case 2:
printf("==== Menghitung luas lingkaran ===");
printf("\nMasukkan panjang radius \t = ");
scanf("%f",&radius_lingkaran);
luas_lingkaran
=
3.14
*
radius_lingkaran
*
radius_lingkaran;
printf("\nLuas
lingkaran
tersebut
adalah
%.2f",luas_lingkaran);
break;
case 3:
printf("==== Menghitung volume tabung ===");
printf("\nMasukkan panjang radius alas \t = ");
scanf("%f",&radius_lingkaran);
printf("\nMasukkan tinggi tabung \t\t = ");

31

scanf("%f",&tinggi_tabung);
volume_tabung = 3.14 * radius_lingkaran * radius_lingkaran
* tinggi_tabung;
printf("\nVolume
tabung
tersebut
adalah
%.2f",volume_tabung);
break;
default:
printf("Menu yang anda masukkan salah!");
break;
}
}

b. Capture program

c. Analisis
Untuk program penghitung bangun ini, perintah switch-case digunakan sebagai
penyeleksi sub program yang dijalankan, apakah program penghitung luas lingkaran
atau penghitung volume kubus serta tabung.

I. Soal Tambahan
1. Perbedaan else-if dan switch-case :
A. Penggunaan else-if biasanya digunakkan ketika menjumpai kondisi yang tidak terlalu
banyak pilihan, sedangkan switch case biasanya digunakkan ketika menjumpai
kondisi yang memiliki banyak pilihan.
B. Pada else-if kita bisa menggunakan operator kondisi dan tipe data apa saja, sedangkan
pada switch-case tipe data haruslah berupa bilangan bulat(int) atau character(char)
dan tidak bisa menggunakan operator kondisi seperti <,>,>= serta <=.
C. Pada else-if program akan mengecek setiap kondisi dari atas ke bawah satu persatu
kemudia baru menjalankan isi dari statemen di blok if yang benar, sedangkan dalam
32

switch-case program akan langsung menuju kondisi yang benar tanpa mengecek case
satu persatu.
D. Pada switch case, memerlukan keyword break yang berfungsi mengakhiri perintah
ketika kondisi benar, sedangkan dalam else-if tidak perlu.

E. Kesimpulan

Pernyataan switch-case digunakan apabila kita menemui kondisi dimana terdapat banyak
pilihan/pilihan atau cases.
Pernyataan switch-case hanya bisa digunakn untuk menyeleksi bilangan bulat(int) dan
karakter(char)
Setiap case di dalam switch perlu diakhiri dengan pernyataan break apabila
menginginkan tiap case dilakukan sesuai kondisinya.
Untuk memberikan error handling, bisa menggunakan pernyataan default.

33