Anda di halaman 1dari 14

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER


UNIVERSITAS BRAWIJAYA

BAB : SELEKSI KONDISI


NAMA : MAULANA AHMAD MALIKI
NIM : 185150200111042
TANGGAL : 28/09/2018
ASISTEN : - ABDUL GHONIY NUR CHASANA
- YAHYA SAHAJA

A. DEFINISI MASALAH
1. Buatlah program sebagai berikut dengan menggunakan metode switch case
Menu :
1. menghitung luas dan keliling persegi panjang
2. menghitung luas dan keliling lingkaran
3. menghitung luas dan keliling segitiga
Pilihan anda : 3
Masukkan a : 3
Masukkan b : 4
Masukkan r : 5

Keliling segitiga : 12 cm
Luas segitiga : 6 cm2

Pilihan anda : 10 Data tak ditemukan, program dihentikan ...

2. Untuk menentukan kriteria kegemukan, digunakan IMT (Indeks Massa Tubuh),


yang bisa dihitung menggunakan rumus :
IMT = b / t2
b = berat badan (kg)
t= tinggi badan (m)
Kriteria untuk nilai IMT ditabelkan sebagai berikut :
Nilai IMT Kriteria
IMT ≤ 18,5 Kurus
18,5 < IMT ≤ Normal
25
25 < IMT ≤ 30 Gemuk
IMT > 30 Kegemukan
Susun program dengan tampilan sebagai berikut dengan menggunakan metode if-
else!
Berat badan (kg) : 45
Tinggi badan (m) :1.72
IMT = 15,21 Termasuk kurus
Berat badan (kg) : 85
Tinggi badan (m) :1.71
IMT = 27,76 Termasuk gemuk

3. Susun program untuk masalah pengajian sebagai berikut : Masukan yang dibutuhkan
oleh program adalah : jumlah jam kerja tiap minggu.Keluaran program adalah : total
upah dari pegawai tertentu.
Aturan yang diterapkan adalah :
- Batas kerja maksimal adalah 60 jam / minggu, dengan upah Rp. 5000,- / jam.
Kelebihan jam kerja dari batas maksimum akan dianggap sebagai lembur dengan
upah Rp. 6000,- / jam.
- Batas kerja minimal adalah 50 jam / minggu. Apabila pegawai mempunyai jam kerja
di bawah batas kerja minimal ini, maka akan dikenakan denda sebesar Rp. 1000, - /
jam. Contoh tampilan :

Jam kerja : 55
Upah = Rp. 275000
Lembur = Rp. 0
Denda = Rp. 0
---------------------
Total = Rp. 275000

Jam kerja : 70
Upah = Rp. 300000
Lembur = Rp. 60000
Denda = Rp. 0
---------------------
Total = Rp. 360000

Jam kerja : 40
Upah = Rp. 200000
Lembur = Rp. 0
Denda = Rp. 10000
---------------------
Total = Rp. 190000
B. SOURCE CODE
tugas1.java
1 package praktikumbab2;
2 import java.util.Scanner;
3 public class tugas1 {
4 public static void main(String[] args) {
5 Scanner in = new Scanner(System.in);
6 int a,b,c,pilihan; double phi=3.14;
7 System.out.println("Pilih menu :");
8 System.out.println("1. Menghitung luas dan keliling
persegi panjang");
9 System.out.println("2. Menghitung luas dan keliling
lingkaran");
10 System.out.println("3. Menghitung luas dan keliling
segitiga");
11 System.out.printf("%-25s%c ","Masukkan pilihan anda
",':');pilihan = in.nextInt();
12 switch (pilihan) {
13 case 1:
14 System.out.printf("%-25s%c%s\n","Pilihan
anda ",':'," Menghitung luas dan keliling persegi panjang");
15 System.out.printf("%-25s%c ","Masukkan
panjang ",':');a = in.nextInt();
16 System.out.printf("%-25s%c ","Masukkan lebar
",':');b = in.nextInt();
17 System.out.printf("%-25s%c %s \n","Luas
persegi panjang",':', a * b + " cm");
18 System.out.printf("%-25s%c %s \n","Keliling
persegi panjang",':', 2*(a * b) + " cm");
19 break;
20 case 2:
21 System.out.printf("%-25s%c%s\n","Pilihan
anda ",':'," Menghitung luas dan keliling persegi
lingkaran");
22 System.out.printf("%-25s%c ","Masukkan jari
- jari ",':');a = in.nextInt();
23 System.out.printf("%-25s%c %s \n","Luas
persegi panjang",':', phi*Math.pow(a, 2) + " cm");
24 System.out.printf("%-25s%c %g%s
\n","Keliling persegi panjang",':', 2*(phi * a) ," cm");
25 break;
26 case 3:
27 System.out.printf("%-25s%c%s\n","Pilihan
anda ",':'," Menghitung luas dan keliling persegi
segitiga");
28 System.out.printf("%-25s%c ","Masukkan
alas",':');a = in.nextInt();
29 System.out.printf("%-25s%c ","Masukkan
tinggi", ':');c = in.nextInt();
30 System.out.printf("%-25s%c ","Masukkan
sisi", ':');b = in.nextInt();
31 System.out.printf("%-25s%c %s \n","Luas
persegi panjang",':', (double) (a/2) * c + " cm");
32 System.out.printf("%-25s%c %s \n","Keliling
persegi panjang",':', a * b + " cm");
33 break;
34 default:
35 System.out.println("Pilihan anda : "+
pilihan +" menu tak ditemukan");
36 break;
37 }
38 }
39 }

tugas2.java
1 package praktikumbab2;
2 import java.util.Scanner;
3 public class tugas2 {
4 public static void main(String[] args) {
5 Scanner in = new Scanner(System.in);
6 int a; double b,c;
7 System.out.printf("%-20s%c ","Berat badan (kg)
",':');a = in.nextInt();
8 System.out.printf("%-20s%c ","Tinggi badan (m)
",':');b = in.nextDouble();
9 c = a / Math.pow(b, 2);
10 if (c < 18.5) {
11 System.out.printf("%-20s%c %6.2f%s
\n","IMT",'=', c, " Termasuk kurus");
12 }else if(c <= 18.5 && c < 25){
13 System.out.printf("%-20s%c %6.2f%s
\n","IMT",'=', c, " Termasuk normal");
14 }else if(c <= 25 && c < 30){
15 System.out.printf("%-20s%c %6.2f%s
\n","IMT",'=', c, " Termasuk gemuk");
16 }else if(c <= 30){
17 System.out.printf("%-20s%c %6.2f%s
\n","IMT",'=', c, " Termasuk kegemukan");
18 }
19 }
20 }

tugas3.java
1 package praktikumbab2;
2 import java.util.Scanner;
3 public class tugas3 {
4 public static void main(String[] args) {
5 int a,b=0,c=0;
6 Scanner in = new Scanner(System.in);
7 System.out.printf("%-10s%c ","Jam kerja ",':'); a =
in.nextInt();
8 if (a<=50 && a>=60) {
9 b = 0; c=0;
10 }else if(a>60){
11 b = a-60; c=0; a=60;
12 }else if(a<50){
13 b = 0; c=a-50;
14 }
15 System.out.printf("%-8s%c%s \n","Upah ",':'," Rp. "+
(a * 5000));
16 System.out.printf("%-8s%c%s \n","Lembur ",':'," Rp.
"+ (b * 6000));
17 System.out.printf("%-8s%c%s \n","Denda ",':'," Rp.
"+ (c * 1000));
18 System.out.printf("%-20s\n","--------------------");
19 System.out.printf("%-8s%c%s \n","Total ",':'," Rp.
"+ (a*5000 + b*6000 + c*1000));
20 }
21 }

C. PEMBAHASAN
tugas1.java
1 Deklarasi package dengan nama praktikumbab2
2 Import kelas Scanner berfungsi untuk membaca inputan dari usir
3 Deklarasi kelas dengan nama tugas1
4 Deklarasi nama method dengan nama main berfungsi untuk menjalankan satu
program
5 Deklarasi kelas Scanner ke dalam variabel in untuk menampung inputan dari usir
6 Deklarasi nilai Integer pada variabel a,b,c,pilihan dan Deklarasi nilai double/
pecahan pada variabel Phie dengan nilai 3,14
7 Menampilkan perintah pilihan menu
8 Menampilkna perintah kepada user “1. Menghitung luas dan keliling persegi
panjang”
9 Menampilkna perintah kepada user “2. Menghitung luas dan keliling lingkaran”
10 Menampilkna perintah kepada user “3. Menghitung luas dan keliling segitiga”
11 Menampilkan perintah kepada user untuk memasukan pilihan menu
12 Kondisi program untuk mengecek pilihan menu user
13 Mengecek pilihan menu yang dipilih user dengan kondisi menu 1
14 Menampilkan perintah kepada user “Pilihan menu : Menghitung luas dan keliling
persegi panjang”
15 Perintah kepada user untuk memasukan panjang
16 Perintah kepada user untuk memasukan lebar
17 Menampilkan hitungan dari luas persegi panjang
18 Menampilkan hitungan dari keliling persegi panjang
19 Perintah untuk menghentikan kondisi menu 1
20 Mengecek pilihan menu yang dipilih user dengan kondisi menu 2
21 Menampilkan perintah kepada user “Pilihan menu : Menghitung luas dan keliling
lingkaran”
22 Perintah kepada user untuk memasukan jari – jari lingkaran
23 Menampilkan hitungan dari luas lingkaran
24 Menampilkan hitungan dari keliling lingkaran
25 Perintah untuk menghentikan kondisi menu 2
26 Mengecek pilihan menu yang dipilih user dengan kondisi menu 3
27 Menampilkan perintah kepada user “Pilihan menu : Menghitung luas dan keliling
segitiga”
28 Perintah kepada user untuk memasukan alas segitiga
29 Perintah kepada user untuk memasukan tinggi segitiga
30 Perintah kepada user untuk memasukan sisi segitiga
31 Menampilkan hitungan dari luas segitiga
32 Menampilkan hitungan dari keliling segetiga
33 Perintah untuk menghentikan kondisi menu 3
34 Perintah untuk kondisi yang tidak ada
35 Menampilkan “Pilihan anda tidak ditemukan”
36 Perintah untuk menghentikan kondisi default
37 Penutup kondisi sebagai akhir dari sebuah kondisi
38 Penutup method main sebagai akhir dari seuah proses di dalam method
39 Penutup akhir kelas untuk mengakhiri sebuah program
tugas2.java
1 Deklarasi package dengan nama praktikumbab2
2 Import kelas Scaner untuk membaca inputan dari user
3 Deklarasi nama kelas dengan nama tugas2
4 Deklarasi nama method dengan nama main untuk menjalankan sesuatu program
5 Deklarasi kelas Scanner kepada variabel in untuk menampung inputan user
6 Deklarasi Integer untuk variabel a dan doubel untuk variabel b dan c
7 Menampilkan inputan Berat badan kepada user
8 Menampilkan inputan Tinggi badan kepada user
9 Proses untuk menghitung IMT dan disimpan kepada variabel c
10 Kondisi untuk mengecek variabel c apakah c lebih kecil dari 18.5
11 Menampilkan hasil inputan IMT dan digolongkan kurus
12 Kondisi untuk mengecek variabel c apakah c lebih kecil sama dengan dari 18.5
dan c lebih kecil dari 25
13 Menampilkan hasil inputan IMT dan digolongkan normal
14 Kondisi untuk mengecek variabel c apakah c lebih kecil sama dengan dari 25 dan
c lebih kecil dari 30
15 Menampilkan hasil inputan IMT dan digolongkan gemuk
16 Kondisi untuk mengecek variabel c apakah c lebih kecil sama dengan dari 30
17 Menampilkan hasil inputan IMT dan digolongkan kegemuk
18 Penutup kondisi sebagai akhir dari sebuah kondisi
19 Penutup method main sebagai akhir dari seuah proses di dalam method
20 Penutup akhir kelas untuk mengakhiri sebuah program

tugas3.java
1 Deklarasi package dengan nam praktikumbab2
2 Import kelas Scaner untuk membaca inputan dari user
3 Deklarasi nama kelas dengan nama tugas3
4 Deklarasi nama method dengan nama main untuk menjalankan sesuatu program
5 Deklarasi integer kepada variabel a,b dengan nilai 0 dan c dengan nilai 0
6 Deklarasi kelas Scanner kepada variabel in untuk menampung inputan user
7 Perintah kepada user untuk memasukan jamkerja dan disimpan kedalam variabel a
8 Kondisi untuk mengecek variabel a apakah variabel a lebih besar sama dengan 50
dan lebih kecil sama dengan 60
9 Proses untuk menginisialisasi nilai variabel b sama dengan 0 dan c sama dengan
10 Kondisi untuk mengecek variabel a apakah a lebih besar dari 60
11 Proses untuk menginisialisasi nilai variabel b sama dengan variabel a dikurang 60,
c sama dengan 0, dan a sama dengan 60
12 Kondisi untuk mengecek variabel a apakah a lebih kecil dari 50
13 Proses untuk menginisialisasi nilai variabel b sama dengan 0 dan c sama dengan
variabel a dikurang 50
14 Penutup kondisi untuk mengakhiri sebuah kondisi
15 Menampilkan Upah dari hasil penghitungan variabel a dikali 5000
16 Menampilkan Lembur dari hasil penghitungan variabel b dikali 6000
17 Menampilkan Denda dari hasil penghitungan variabel c dikali 1000
18 Menampilkan garis pembatas untuk menghitungan nilai total
19 Menampilkan Total gaji dengan menambahkan variabel a,b dan c
20 Penutup method main sebagai akhir dari seuah proses di dalam method
21 Penutup akhir kelas untuk mengakhiri sebuah program
D. SCREENSHOT PROGRAM
tugas1.java

tugas2.java

tugas3.java

E. PRAKTIKUM
A. Conditional Assignment
1. Jalankan file constAss.java dan benahi jika menemukan kesalahan!
Tidak ada kesalahan
2. Ubah kode diatas pada baris ke empat dengan merubah type data String menjadi
int, amati yang terjadi kemudian jelaskan!
Terjadi error karena di dalam variabel s terdapat nilai kata sedangkan tipe data
integer adalah tipe data yang menyimpan sebuah angka

3. Tambahkan kode dibawah baris 5 dengan menambahkan program yang meminta


inputan user dengan memasukkan nama dan nim masing-masing mahasiswa
dan jika benar maka akan mencetak nama dan nim mahasiswa, jika salah maka
mencetak “input nama salah” jika memasukkan nama yang salah, “input nim
salah” jika memasukka nim yang salah

4. Buat program yang meminta untuk memasukkan nama dan password kemudian
program akan meminta user untuk memasukkan nama dan password sesuai
inputan sebelumnya. Jika benar maka program akan mencetak informasi
biodata mahasiswa dan jika salah maka program akan mencetak “data tak
ditemukan”.
B. If else
1. Jalankan file seleksi1.java dan benahi jika menemukan kesalahan!
Tidak ada kesalahan

2. Masukkan nilai 30, 60 dan 80 saat program dijalankan, dan jawablah dengan
screenshot hasil keluaran dari program!
Nilai 30

Nilai 60

Nilai 80

3. Pada baris 9, ubahlah kode program menjadi System.out.println("Nilai kurang


!");, Pengaruh apa yang ditimbulkan setelah dilakukan pengubahan kode diatas!
Program akan mengangap nilai yang lebih besar dari 60 menjadi “nilai kurang
karang !” sedangkan awalnya nilai lebih besar dari 60 adalah anda lulus
C. Switch case
1. Jalankan file seleksi2.java dan benahi jika menemukan kesalahan!
Tidak ada kesalahan

2. Masukkan nilai 5, 20, 30 saat program dijalankan, jelaskan alur jalan program
dan beri screenshot keluaran dari program!
Nilai 5

Jika di inputkan nilai 5 maka akan menampilkan Filkom dan UB karena nilai 5
masuk dalam kondisi nilai kurang dari sama dengan 20 karena 5 * 2 = 10
kemudian 10 ditambah 10 maka hasilnya 20. Kemudian 20 kurang dari sama
dengan 20 yang akan menampilkan “Filkom” kemudian nilai 20 akan dicek
dengan modulo 2 jika hasilnya 1 makan akan tampil “UB”, Jika 0 akan tampil
“Brawijaya”

Nilai 20

Jika di inputkan nilai 20 maka akan menampilkan PTTIK dan Brawijaya karena
nilai 20 masuk dalam kondisi tidak nilai kurang dari sama dengan 20 karena 20
* 2 = 40 kemudian 40 ditambah 10 maka hasilnya 50. Kemudian 50 tidak kurang
dari sama dengan 20 yang akan menampilkan “PTTIK” kemudian nilai 50 akan
dicek dengan modulo 2 jika hasilnya 1 makan akan tampil “UB”, Jika 0 akan
tampil “Brawijaya”
Nilai 30

Jika di inputkan nilai 30 maka akan menampilkan PTTIK dan Brawijaya karena
nilai 20 masuk dalam kondisi tidak nilai kurang dari sama dengan 20 karena 30
* 2 = 60 kemudian 60 ditambah 10 maka hasilnya 70. Kemudian 70 tidak kurang
dari sama dengan 20 yang akan menampilkan “PTTIK” kemudian nilai 70 akan
dicek dengan modulo 2 jika hasilnya 1 makan akan tampil “UB”, Jika 0 akan
tampil “Brawijaya”

3. Ubah kode diatas dengan memanfaatkan operasi and!

D. Switch case
1. Jalankan file seleksi3.java dan benahi jika menemukan kesalahan!
Tidak ada kesalahan
2. Pada baris 18,22,26,30 dan 34 hapus kode break, pengaruh apa yang terjadi
setelah pengubahan kode tersebut!
Jika semua break dihapus maka akan berpengaruh pada kondisi karena di
kondisi switch case setiap kondisi harus dikasih break untuk mengakhiri sebuah
kondisi tersebut kalau breaknya dihapus akan menampilkan kondisi berikutnya

3. Apa perbedaan seleksi kondisi dengan menggunakan switch case dan if-else,
dan kapan kita harus menggunakan if-else dan kapan menggunakan switch
case?
Switch Case percabangan yang digunakan saat sebuah Algoritma memiliki
banyak kondisi (lebih dari 2. Switch Case digunakan untuk menangani
pengambilan keputusan yang melibatkan sejumlah atau banyak alternatif
penyelesaian
If-Else percabangan if else digunakan saat sebuah Algoritma memiliki dua
pernyataan dengan syarat tertentu. Digunakan apabila ada kondisi jika benar
maka perintah pertama akan langsung dikerjakan, jika salah maka diseleksi
kembali menuju perintah kedua, dan seterusnya.

F. KESIMPULAN
Percabangan adalah satu pilihan atau opsi dengan kondisi tertentu. Jika kondisi
memenuhi syarat maka opsi atau pilihan akan dijalankan jika tidak memenuhi syarat
maka tidak akan dijalankan. Dalam sebuah pemrograman terdapat 4 macam
percabangan yaitu Conditional Assignment, If-else, Nested If, dan Switch Case. Dari
masing – masing percabangan memeliki penggunaannya berikut penjelasan tentang
penggunaan mengenai tiap – tiap percabangan :
1. Conditional Assignment
Percabangan ini digunakan jika hanya memiliki satu pernyaatan yang akan
dijalankan dengan syarat tertentu dan hanya memiliki dua kondisi yaitu benar
dan salah.
Contoh :
kondisi ? pernyataan_benar : pernyataan_salah
Dari kode diatas dapat dijelaskan bahwa satu kondisi jika kondisi benar maka
program akan berjalan ke pernyaataan benar namun jika salah maka akan
melakukan pernytaan salah.
Contoh :
(5>2) ? “Berhasil” : “Gagal”;
Jika program tersebut dijalankan maka akan mencetak “Berhasil karena”
kondisi pada conditional assignment tersebut benar.
2. If-else
Percabangan ini digunakan saat kita memiliki dua pernyatan atau lebih
dengan syarat tertentu jika kita ingin menggunakan percabangan tunggal kita
dapat menggunakan if saja namun untuk percabangan lebih dari satu
percabangan kita dapat menggunakan if-else.
Bentuk dasar dari statemen ini adalah :

if (kondisi){
Blok pernyataan;
}
else{
Blok pernyataan
}
Namun untuk percabangan yang lebih dari 2, bentuk dasar yang digunakan
adalah :

if (kondisi){
Blok pernytaan 1;
}
else if (kondisi){
Blok pernyataan 2;
}
else if (kondisi){
Blok pernyataan 3;
}
else{
Blok pernyataan 4;
}

3. Nested If
Percabangan ini adalah sebuah percabangan yang biasanya disebut sebagai
if bersarang yang di dalamnya terdapat satu if di dalam if itulah yang disebut
nested if. Alur programnya adalah jika kondisi if pertama benar maka program
aku mengecek if kedua yang ada di dalam sebuah kondisi if tersebut dan
seterusnya.
Bentuk dasar dari nested if adalah :

if (kondisi){
if(kondisi){
if(kondisi){
blok pernyataan;
}
Else{
Blok pernyataan;
}
}
Else{
Blok pernyataan;
}
}
Else{
Blok pernyataan;
}

4. Switch Case
Switch case merupakan pernyataan yang dirancang untuk menangani
pengambilan peputusan yang melibatkan sejumlah atau banyak alternatif
penyelesaian. Pernyataan switch Chase ini memiliki kegunaan yang sama
seperti if-else.
Statement switch-case digunakan sebagai instruksi pemilihan aksi yang
akan dikerjakan pada statement yang tergantung pada nilai dari satu macam
variabel yang menentukan ini mempunyai banyak macam nilai dan setiap nilai
mempunyai kaitan dengan satu macam aktivitas statement switch case
digunakan untuk menyederhanakan susunan if-else yang terlalu banyak
Bentuk dasar switch Chase adalah :
Switch(kondisi){
Case nilai1 :
statemen-1;
break;

Case nilai2 :
statemen-2;
break;

Case nilai3 :
statemen-3;
break;

Default :
Statemen-4;
}

Anda mungkin juga menyukai