Anda di halaman 1dari 43

LAPORAN HASIL PRAKTIKUM 5 b

ALGORITMA DAN PEMROGRAMAN EP


“Pengambilan Keputusan Berjenjang”
Dosen Pengampu :
Rosalia Arum Kumalasanti M.T.

Oleh
Nama : Marta Yulianti
NIM : 215314154

PROGRAM STUDI INFORMATIKA


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2021
A. TUJUAN

1. Mahasiswa mampu menulis program yang dapat melakukan pengambilan keputusan secara
berjenjang.
2. Mahasiswa mampu menyelesaikan persoalan konkrit yang memerlukan pengambilan keputusan
secara berjenjang.

B. Dasar Teori

BLOK PERNYATAAN DAN PERCABANGAN SEDERHANA

4.1. Pengantar

Sejauh ini program yang Anda tulis akan dikerjakan oleh compiler urut dari atas ke
bawah dan tidak ada satu perintahpun yang dilompati. Dalam prakteknya, tidak mungkin Anda
menulis program yang strukturnya hanya urut saja dari atas ke bawah. Hal ini karena masalah
yang harus diselesaikan oleh program sangatlah kompleks sehingga membutuhkan langkah
program yang tidak mungkin sepenuhnya urut. Program Anda terpaksa harus melakukan pilihan-
pilihan perintah untuk dikerjakan ketika program berjalan. Sebagai contoh, untuk menentukan
berat ideal seseorang memakai rumus berat ideal = tinggi – 100, program Anda harus memberi
tahu apakah seseorang memiliki berat ideal atau belum. Untuk bisa melakukan hal ini maka
program harus mempunyai cara dalam memastikan apakah berat orang tersebut sama, lebih besar
atau lebih kecil dari berat idealnya. Program harus mencetak pesan apakah orang tersebut terlalu
kurus, sudah ideal beratnya ataukah malah terlalu gemuk. Dengan kata lain, program harus
mempunyai kemampuan untuk memilih pesan manakah yang tepat untuk ditampilkan. Hal ini
tidak mungkin dilakukan kalau pernyataan dalam program hanya dikerjakan secara runtut dari
atas ke bawah. Compiler harus diberi tahu apakah pesan “terlalu kurus”, “sudah ideal” atau
“terlalu gemuk” yang harus ditampilkan di layar. Cara memberi tahu compiler untuk melakukan
hal inilah yang disebut dengan perintah percabangan. Dengan perintah ini compiler akan
mengerjakan beberapa perintah jika memenuhi syarat tertentu dan akan melompatinya jika syarat
tersebut tidak dipenuhi.

4.2. Blok Pernyataan

Sebelum Anda menulis program yang memuat perintah percabangan, ada hal mendasar
yang harus Anda ketahui yakni blok pernyataan. Yang dimaksud dengan blok pernyataan
adalah rangkaian atau gabungan beberapa pernyataan yang akan Anda perlakukan sebagai satu
kesatuan. Blok pernyataan ini nantinya akan berfungsi seperti unit terkecil penyusun program
Anda. Untuk
membedakan apakah suatu pernyataan/perintah menjadi bagian atau tidak dari suatu blok maka
pernyataan-pernyataan tersebut diletakkan di antara dua kurung kurawal, yakni

{
pernyataan1;
pernyataan 2;
…………..
pernyataan n;
}

Sebagai contoh, berikut adalah dau buah blok program yang berbeda

{
System.out.print(" Nama Anda adalah : ");
System.out.println(nama);
}

{
// Blok ini menukar isi dua variabel x dan y
int tampunganSementara; // tempat menampung sementara
tampunganSementara = x; // simpan isi x ke tampungan sementara
x = y; // isi variabel x dengan isi dari y
y = tampunganSementara; // kemudian isi y dengan tampungan sementara.
}

Penulisan blok pernyataan dengan diawali dan diakhiri kurung kurawal dengan semua
pernyataan ditulis dengan sedikit menjorok ke dalam tersebut menjadikan blok pernyataan
tampak sebagai satu kesatuan dan mudah dibaca. Ini penting sekali karena dalam praktek nanti,
program Anda akan tersusun dalam banyak blok pernyataan dan blok-blok tersebut bisa tersusun
secara bertingkat yakni satu blok memuat beberapa blok dan masing-masing blok tersebut bisa
saja memuat blok yang lain, demikian seterusnya. Oleh karena itu, Anda harus pandai-pandai
menempatkan tanda kurung kurawal buka dan tutup di posisi yang tepat meskipun Netbeans juga
akan membantu Anda dalam penulisan blok pernyataan ini. Sebagai panduan praktis, jumlah
kurung kurawal buka harus sama dengan jumlah kurung kurawal tutup. Dengan kata lain jumlah
kurung kurawal haruslah genap. Dengan demikian struktur program Anda bisa jadi berbentuk
seperti ini

{
Pernyataan 1;
Pernyataan 2;
{
Pernyataan 3;
{
Pernyataan 4;
Pernyataan 5;
}
Pernyataan 6;
}
Pernyataan 7;
}

4.3. Percabangan Sederhana

Andaikan program Anda harus mengambil keputusan untuk menentukan apakah seorang
mahasiswa lulus atau tidak dari suatu matakuliah. Aturan yang digunakan dalam hal ini adalah
jika nilai lebih dari atau sama dengan 65 maka mahasiswa tersebut lulus dan jika nilainya kurang
dari
65 maka ia tidak lulus. Andaikan Anda mempunyai variabel nilai yang menyimpan nilai
matakuliah mahasiswa tersebut maka secara kasar struktur program Anda haruslah berbentuk

jika (nilai >= 65) {


cetak tulisan “lulus”;
}
jika tidak {
cetak tulisan “tidak lulus”;
}
Struktur program di atas menjadi berbentuk demikian di Java

if (nilai >= 65 ) {
System.out.println(“Anda lulus.”);
}
else {

System.out.println(“Anda tidak lulus.”);


}

Perhatikan bahwa dalam program di atas ada 2 blok pernyataan yakni

{
System.out.println(“Anda lulus.”);
}
dan

{
System.out.println(“Anda tidak lulus.”);
}

Kedua blok pernyataan ini tidak akan semuanya dieksekusi oleh compiler tetapi hanya
salah satu saja dan hal itu tergantung apakah isi variabel nilai lebih dari 65 atau tidak. Jika
memang isi variabel nilai lebih dari 65 maka blok pernyataan yang pertama yang akan dieksekusi
tetapi jika misalnya isi variabel nilai hanya 50 maka blok pernyataan yang kedualah yang akan
dieksekusi. Dengan kata lain, apabila pernyataan nilai >= 65 bernilai benar maka blok pertama
yang dikerjakan dan apabila nilai >= 65 bernilai salah maka blok kedua yang dikerjakan
compiler.

Secara umum pengambilan keputusan dalam program dilakukan dengan memakai perintah

if (ekspresi logika/boolean)
{ blok pernyataan 1 }
else
{ blok pernyataan 1 }
Blok pernyataan 1 akan dikerjakan apabila ekspresi logika yang mengikuti perintah if bernilai
benar dan blok pernyataan 2 hanya dikerjakan apabila ekspresi logika tersebut bernilai salah.

Percabangan di atas juga dapat digambarkan memakai diagram alir (flowchart) berikut:

Ada kemungkinan Anda dihadapkan pada persoalan untuk mengeksekusi blok pernyataan
pertama jika ekspresi logika benar dan bila salah lanjutkan saja ke perintah-perintah berikutnya.
Artinya keadaan memang tidak menuntut adanya blok pernyataan kedua. Jika seperti ini
situasinya maka Java memungkinkan Anda memberi perintah dengan struktur berikut

if (ekspresi logika/boolean)
{ blok pernyataan 1 }

Berikut adalah program untuk menghitung bunga deposito yang besar bunganya
berdasarkan besarnya tabungan. Jika tabungannya lebih dari 50 juta maka besarnya bungan 1 %
per bulan sedang apabila tabungannya kurang dari 50 juta maka besar bunganya hanya 0,75 %.
1
2 package percabangan;
3
4 /**
5 *Program menghitung bunga bank
6 */
7 import java.util.Scanner;
8
9 public class BungaBank {
10 public static void main(String[] args) {
11
12 double deposito, bunga; // variable untuk menyimpan data deposito dan bunganya
13
14 Scanner dataBank = new Scanner(System.in);
15
16 System.out.print("Masukkan jumlah deposito Anda: ");//pemasukan data deposito
17 deposito = dataBank.nextDouble();
18
19 if (deposito >= 50000000){ // perhitungan bunga dng syarat besarnya deposito
20 bunga = 0.01 * deposito; // jika deposito lebih dari 50 juta
21 }
22 else {
23 bunga = 0.0075 * deposito; // jika deposito kurang dari 50 juta
24 }
25 System.out.println("Bunga deposito Anda per bulan adalah Rp "+ bunga);
26 }
27 }
Ketika dijalankan maka hasilnya adalah sbb

Latihan

1. Buatlah program untuk mengecek apakah bilangan yang dimasukkan merupakan


bilangan ganjil atau genap

4.4. Ekspresi Boolean

Untuk mengambil keputusan atau menarik kesimpulan dari pernyataan if di atas, maka
diperlukan pengecekan terhadap ekspresi boolean / logika. Apakah yang dimaksud dengan
ekspresi boolean ? Ekspresi boolean adalah ekspresi yang mengandung nilai kebenaran. Contoh
ekspresi Boolean yang dimengerti oleh komputer adalah :

1. ((suka == ‘Matematika’) && (hobi == ‘Komputer’))

2. ((no_rumah == 46) && (warna == ‘putih’))

3. (bil % 2 == 0)

Jika bil bernilai 4 maka ekspresi Boolean tersebut mempunyai nilai kebenaran true atau 1.
Hasil dari setiap ekspresi boolean akan bernilai benar atau salah. Dalam bahasa pemrograman
Java, nilai benar akan dinyatakan dengan true, dan nilai salah akan dinyatakan dengan false.
Untuk membentuk ekspresi Boolean, diperlukan operator relasional dan operator logikal. Kita
mengulang dari bab sebelumnya tentang operator relasional dan operator logikal yang dipakai
dalam bahasa pemrograman Java
4.4.1. Operator Relasional

Operator relasional adalah operator yang membandingkan beberapa ekspresi.

Operator Arti
==
Sama dengan Lebih besar
>
dari
>=
Lebih besar atau sama
<
dengan Kurang dari
<= Kurang atau sama dengan
!= Tidak sama dengan

4.4.2. Operator Logikal

Operator logikal adalah operator yang menggabungkan ekspresi yang mengandung


operator relasional.

OperatorArtiKeterangan
&&AND / DANBernilai 1 hanya jika ekspresi pada kedua sisi bernilai 1

| OR / ATAUBernilai 1 jika satu atau kedua ekspresi bernilai 1


|
NOT /Jika ekspresi bernilai 1 maka hasil akhir bernilai 0, sebaliknya TIDAKjika
! ekspresi bernilai 0 maka hasil akhirnya bernilai 1.

Tabel Kebenaran operator logikal untuk satu atau dua ekspresi

Ekspresi 1(p) Ekspresi 2 (q) ( p && q ) ( p || !p


q)
1 1 1 0
1
1 0 0 0
1
0 1 0 1
1
0 0 0 1
0
Contoh :

Ekspresi boolean ((a > 5) && (a <= 10))

Nilai a (a > 5) (a <= 10) (a > 5) && (a <= 10)

7 1 1 1

12 1 0 0

10 1 1 1

3 0 1 0

4.4.3. Ekuivalensi Tipe

Dalam sebuah ekspresi Boolean, pernyataan-pernyataan yang dibandingkan tersebut harus


mempunyai tipe data yang sama.

Contoh :

1. Jika variabel A = ‘5’ maka :

Ekspresi Boolean (A > 5) merupakan ekspresi Boolean yang tidak sah, karena variabel A
bertipe char (character), sedangkan 5 bertipe int (integer).

2. Jika variabel A = ‘5’ maka :

Ekspresi Boolean (A == ‘R’) merupakan ekspresi Boolean yang sah, karena variabel A
bertipe char, sedangkan ‘R’ juga bertipe char.

4.4.4. Order/Urutan Operator

Jika terdapat lebih dari satu operator dalam satu ekspresi, maka urutan/order pengerjaan
dari setiap operator adalah sebagai berikut:
Urutan Operator

1 ()

2 *, /, %

3 +, -

4 !

5 >, >=, <, <=

6 ==, !=

7 &&

8 ||

Contoh :

public static void main()


{
int a= 3, b = 23;
boolean y;
y = !a > 9;
z= !(a > 9) ;
System.out.println(”Hasil dari ekspresi pertama adalah “+y);
System.out.println(“Hasil dari ekspresi kedua adalah “+z);

1. Hasil y = !a > 9 adalah 0 karena :

Ekspresi Evaluasi Nilai kebenaran

!a !3 0

!a > 9 0>9 0
2. Hasil z = !(a > 9) adalah 1 karena :

Ekspresi Evaluasi Nilai kebenaran

A>9 3>9 0

!(a > 9) !(0) 1

Hati-hati !

Operator relasi == sering keliru dengan operator penugasan =.


Contoh dibawah ini adalah kedua ekspresi yang benar tetapi mengandung arti yang
berbeda :
int y = 3;
x = ((y > 2) && (y == 4)) => nilai x adalah false
x = ((y > 2) && (y = 4)) => nilai x adalah true
Mengapa ?

4.5. Latihan

1. Carilah nilai kebenaran ekspresi Boolean berdasarkan statemen berikut :

int x = 3;

int y = 5;

int z = 2;

int u = 3;

a. (x == u) bernilai true/1

b. x !=u

c. !(x >= u) && (y != z)

d. (y == x) || (u > z)

e. x + 2 < 10 && y -2 < 5 || u + 4 < z


4.6. Gabungan if

Setelah mempelajari statemen if dan if - else, maka anda harus bijaksana dalam
menggunakannya. Gunakanlah statemen if untuk mengambil keputusan yang sederhana dan
gunakanlah statemen if - else untuk memilih satu dari dua buah kemungkinan.

Contoh :

import java.util.Scanner;
public static void main(String[] args)
{ Scanner sc=new
Scanner(System.in); int
jumPelanggan;
double totalJual;
System.out.println("Berapa banyak
pelanggan ?"); jumPelanggan=sc.nextInt();
System.out.println("Berapa total penjualan ?");
totalJual=sc.nextDouble();
if (jumPelanggan > 25) // if pertama, memuat hanya 1 perintah, tak perlu pakai { }
System.out.println("Pesan makanan lebih banyak untuk besok \n");

if (totalJual >= 10000000) { //if –else kedua, tidak berhubungan dengan if pertama
System.out.println("Cek kembali stock \n");
System.out.println("Beri penghargaan untuk sales \n");
}
else {
System.out.println("Pecat sales \n");
}

if ((jumPelanggan >= 50) && (totalJual >= 100000000)) { //if ketiga, berdiri
sendiri System.out.println("Liburkan penjualan \n");
System.out.println("Cek kembali stock \n");
}
}
4.7. Percabangan Bertingkat

Seringkali pengambilan keputusan yang harus dilakukan oleh program berlangsung


secara bertingkat. Sebagai contoh dalam penerimaan mahasiswa baru, calon mahasiswa
mempunyai 3 pilihan program studi yakni pilihan 1, pilihan 2 dan pilihan 3. Seorang calon
mahasiswa bisa diterima di pilihan 1 (tentu saja !) tetapi ia hanya bisa diterima di pilihan 2 kalau
tidak diterima di pilihan 1 dan baru bisa diterima di pilihan 3 kalau tidak diterima di pilihan 1
dan pilihan 2. Situasi pengambilan keputusan ini dapat digambarkan memakai diagram alir

seperti di bawah ini.

Di java alur di atas menjadi seperti berikut:

if ( lulusPilihan1) {
diterima = pilihan1;
}
else if (lulusPilihan2) {
diterima = pilihan2;
}
else {
diterima = pilihan3;
}
Contoh:

Persamaan kuadarat yang berbentuk ax2 + bx + c = 0 mempunyai tiga bentuk


penyelesaian tergantung kepada besarnya nilai D = b2 – 4ac. Jika D < 0 maka persamaan kuadrat
tersebut tidak mempunyai akar yang real, sedang jika D = 0 maka hanya mempunyai satu
penyelesaian/akar dan jika D > 0 maka akarnya ada 2 buah. Secara umum apabila D ≥ 0 maka
akarnya dapat dicari memakai rumus berikut

x1,2 = (- b ±  D ) / (2 a)

dengan kata lain x 1 =(- b +  D ) / (2 a) dan x2 = (- b -  D ) / (2 a). Berikut program


untuk mencari dan menetukan jenis akar persamaan kuadrat tersebut.

import java.util. Scanner;


public class PersamaanKuadrat {
public static void main(String[] args)
{ double a, b, c, D, x1, x2;
Scanner dataKuadrat = new Scanner(System,in);

// Baca data koefisien persamaan dari


keyboard System.out.println(" Koefisien x2 (a) :
");
a = dataKuadrat.nextDouble();
System.out.println(" Koefisien x (b) : ");
b = dataKuadrat.nextDouble();
System.out.println(" Konstanta (c) :
"); c = dataKuadrat.nextDouble();

// Hitung nilai D
D = b* b - (4*a*c);
// Hitung akar sesuai nilai D
if (D <0 ){ // tidak punya akar real
System.out.println("Tidak mempunyai akar
nyata/real");
}
else if (D == 0 ) { // akarnya sama
x1 = -b/(2*a);
System.out.println("Akarnya tunggal yakni : "+x1);
}
else { // akarnya dua berbeda
x1 = (-b + Math.sqrt(D))/ (2*a);
x2 = (-b - Math.sqrt(D))/ (2*a);
System.out.println("Akar pertama :
"+x1); System.out.println("Akar kedua :
"+x2);
}
}
}

C. Analisis

1. Soal_No1

a. Uraian soal

Tulis dan jalankan program untuk mencari akar persamaan kuadrat yang telah diberikan di
modul !

b. Rancangan program

Output

Koefisien x2 (a) : …
Koefisien x (b) : …
Koefisien (c) : …
D=…
Proses
Akar pertama = …
Akar kedua = …
Menampilkan tulisan Koefisien x2 (a) dan input
angka/nilai yang akan diinput sendiri oleh user

Menampilkan tulisan Koefisien x (b) dan input


angka/nilai yang akan diinput sendiri oleh user

Menampilkan tulisan Koefisien (c) dan input angka/nilai


yang akan diinput sendiri oleh user

Menghitung nilai D = (b * b) - (4 * a * c) dan cetak


nilainya
Input

Memesan memori bernama a, b, c, D, x1, x2 dengan tipe


data bilangan real

Scanner input

c. Algoritma memakai pseudocode informal (input, proses, output)

Deklarasi :
Input variable a, b, c, D, x1, x2 : double
Scanner input

Proses :
Input a
Input b
Input c
D  (b * b) - (4 * a * c)
Cetak nilai D
if (D < 0 || a == 0)
Cetak "Tidak mempunyai akar nyata/real"
else if (D == 0)
Hitung x1 = -b / (2 * a)
Cetak “Akarnya tunggal yakni : " + x1
else
x1 = (-b + Math.sqrt(D)) / 2 * a
x2 = (-b - Math.sqrt(D)) / 2 * a
Cetak “Akar pertama = " + x1
Cetak "Akar kedua = " + x2

d. Teks program memakai tabel berikut

Perintah Arti
import java.util.Scanner; Merupakan class yang menyediakan fungsi-fungsi
untuk mengambil input dari keyboard
public class Soal_No1 { Deklarasi class
public static void main(String [] args) { Deklarasi metode main

double a, b, c, D, x1, x2; Memesan tempat untuk bilangan real dengan nama a,
b, c, D, x1, x2
Scanner input = new Scanner(System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard
System.out.print("Koefisien x2 (a) : "); Mencetak tulisan Koefisien x2 (a)
a = input.nextDouble(); Perintah untuk membaca angka/nilai (dalam bilangan
real) yang diinput sendiri oleh user
System.out.print("Koefisien x (b) : "); Mencetak tulisan Koefisien x (b)
b = input.nextDouble(); Perintah untuk membaca angka/nilai (dalam bilangan
real) yang diinput sendiri oleh user
System.out.print("Koefisien (c) : "); Mencetak tulisan Koefisien (c)
c = input.nextDouble(); Perintah untuk membaca angka/nilai (dalam bilangan
real) yang diinput sendiri oleh user
D = (b * b) - (4 * a * c); Menghitung nilai D
System.out.println("D = " + D); Mencetak variable D beserta nilainya

if (D < 0 || a == 0){ Jika kondisi (D < 0 || a == 0) bernilai true maka :


System.out.println("Tidak mempunyai cetak “Tidak mempunyai akar nyata/real"
akar nyata/real");
}
else if (D == 0){ Jika kondisi (D < 0 || a == 0) bernilai false dan
x1 = -b / (2 * a); kondisi (D == 0) bernilai true maka :
System.out.println(" Akarnya tunggal Hitung x1 = -b / (2 * a) dan cetak “Akarnya tunggal
yakni : " + x1); yakni : " + x1
}
else{ Jika kondisi (D < 0 || a == 0) dan (D == 0) bernilai
x1 = (-b + Math.sqrt(D)) / 2 * a; false maka:
x2 = (-b - Math.sqrt(D)) / 2 * a; Hitung x1 = (-b + Math.sqrt(D)) / 2 * a
System.out.println("Akar pertama = " + x2 = (-b - Math.sqrt(D)) / 2 * a
x1); dan cetak "Akar pertama = " + x1
System.out.println("Akar kedua = " + x2); cetak "Akar kedua = " + x2
}
}
}

e. Screenshot Program dan Output


Screenshot Program
Screenshot Output

2. Soal_No_2a

a. Uraian soal

Buat rancangan, pseudocode informal dan program untuk persoalan berikut:


Menentukan jumlah uang yang harus dibayarkan oleh pelanggan yang membeli sejumlah
kaos di mana harga per biji tergantung ukurannya seperti dalam tabel di bawah. Ukuran dan
jumlah kaos yang dibeli dimasukkan lewat keyboard.

Ukuran Harga per buah (Rp)


S 30.000
M 38.000
L 45.000
XL 50.000
XXL 60.000

b. Rancangan program

Output

Ukuran :…
Jumlah Kaos : …
Total Harga : Rp. …

Proses

Menampilkan tulisan “Ukuran” dan input angka/nilai


yang akan diinput sendiri oleh user

Menampilkan tulisan “Jumlah Kaos” dan input


angka/nilai yang akan diinput sendiri oleh user

Buat percabangan if dengan syarat


if ("S".equals(ukuran)) bernilai true, maka :
Hitung harga = 30000 * jumlahkaos dan
Cetak ("Total Harga : Rp." + harga)

else if ("M".equals(ukuran)) bernilai true, maka :


Hitung harga = 38000 * jumlahkaos dan
Cetak ("Total Harga : Rp." + harga)

else if ("L".equals(ukuran)) bernilai true, maka :


Hitung harga = 45000 * jumlahkaos dan
Cetak ("Total Harga : Rp." + harga)

else if ("XL".equals(ukuran)) bernilai true, maka :


Hitung harga = 50000 * jumlahkaos dan
Cetak ("Total Harga : Rp." + harga)

else if ("XXL".equals(ukuran)) bernilai true, maka :


Hitung harga = 60000 * jumlahkaos dan
Cetak ("Total Harga : Rp." + harga)

Input

Memesan memori bernama ukuran dengan tipe data


String dan harga, jumlahkaos dengan tipe data bilangan
c. Algoritma memakai pseudocode informal (input, proses, output)

Deklarasi :
Input variable ukuran : String
Input variable harga, jumlahkaos : Integer
Scanner input

Proses :
Input ukuran
Input jumlahkaos
if ("S".equals(ukuran))
Hitung harga = 30000 * jumlahkaos
Cetak ("Total Harga : Rp." + harga)
else if ("M".equals(ukuran))
Hitung harga = 38000 * jumlahkaos
Cetak ("Total Harga : Rp." + harga)
else if ("L".equals(ukuran))
Hitung harga = 45000 * jumlahkaos
Cetak ("Total Harga : Rp." + harga)
else if ("XL".equals(ukuran))
Hitung harga = 50000 * jumlahkaos
Cetak ("Total Harga : Rp." + harga)
else if ("XXL".equals(ukuran))
Hitung harga = 60000 * jumlahkaos
Cetak ("Total Harga : Rp." + harga)

d. Teks program memakai tabel berikut

Perintah Arti
import java.util.Scanner; Merupakan class yang menyediakan fungsi-fungsi
untuk mengambil input dari keyboard
public class Soal_No_2a { Deklarasi class
public static void main(String [] args) { Deklarasi metode main

String ukuran; Memesan tempat dengan tipe data String dengan


nama ukuran
int harga, jumlahkaos; Memesan tempat untuk bilangan bulat dengan nama
harga, jumlahkaos
Scanner input = new Scanner(System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard
System.out.print("Ukuran : "); Mencetak tulisan Ukuran
ukuran = input.next(); Perintah untuk membaca angka/nilai (dengan tipe
data String) yang diinput sendiri oleh user
System.out.print("Jumlah Kaos : "); Mencetak tulisan Jumlah Kaos
jumlahkaos = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user

if ("S".equals(ukuran)){ Jika kondisi ("S".equals(ukuran)) bernilai true maka :


harga = 30000 * jumlahkaos; Hitung harga = 30000 * jumlahkaos dan,
System.out.println("Total Harga : Rp." + Cetak "Total Harga : Rp." + harga
harga);
}
else if ("M".equals(ukuran)){ Jika kondisi ("S".equals(ukuran)) bernilai false dan
harga = 38000 * jumlahkaos; kondisi ("M".equals(ukuran)) bernilai true maka :
System.out.println("Total Harga : Rp." + Hitung harga = 38000 * jumlahkaos dan,
harga); Cetak "Total Harga : Rp." + harga
}
else if ("L".equals(ukuran)){ Jika kondisi ("S".equals(ukuran)) dan
harga = 45000 * jumlahkaos; ("M".equals(ukuran)) bernilai false dan kondisi
System.out.println("Total Harga : Rp."+ ("L".equals(ukuran)) bernilai true maka :
harga); Hitung harga = 45000 * jumlahkaos dan,
} Cetak "Total Harga : Rp." + harga
else if ("XL".equals(ukuran)){ Jika kondisi ("S".equals(ukuran)),
harga = 50000 * jumlahkaos; ("M".equals(ukuran)) dan ("L".equals(ukuran))
System.out.println("Total Harga : Rp."+ bernilai false dan kondisi ("XL".equals(ukuran))
harga); bernilai true maka :
} Hitung harga = 50000 * jumlahkaos dan,
Cetak "Total Harga : Rp." + harga
else if ("XXL".equals(ukuran)){ Jika kondisi ("S".equals(ukuran)),
harga = 60000 * jumlahkaos; ("M".equals(ukuran)), ("L".equals(ukuran)) dan
System.out.println("Total Harga : Rp." + ("XL".equals(ukuran)) bernilai false dan kondisi
harga); ("XXL".equals(ukuran)) bernilai true maka :
} Hitung harga = 60000 * jumlahkaos dan,
Cetak "Total Harga : Rp." + harga
}
}

e. Screenshot Program dan Output


Screenshot Program

Screenshot Output

3. Soal_No_2b

a. Uraian soal
Menentukan besarnya bonus akhir tahun karyawan yang ditentukan berdasarkan prosentase
dari gaji pokok dengan memakai rumus seperti di dalam tabel. Golongan dan masa kerja
golongan (berupa tahun) dimasukkan lewat keyboard.

Masa Kerja (tahun)


Golongan 0 – 10 11 - 20 21 - 30
I 50 % 60 % 70 %
II 60 % 70 % 80 %
III 70 % 80 % 90 %
IV 80 % 90 % 100 %

b. Rancangan program

Output

Golongan : …
Gajih Pokok : …
Masa Kerja : …
Bonus : Rp. …

Proses

Menampilkan tulisan “Golongan” dan input angka/nilai


yang akan diinput sendiri oleh user

Menampilkan tulisan “Gajih Pokok” dan input angka/nilai


yang akan diinput sendiri oleh user

Menampilkan tulisan “Masa Kerja” dan input angka/nilai


yang akan diinput sendiri oleh user
else if (masakerja >= 11 && masakerja <= 20) bernilai
true
Buat percabangan if dengan syarat
Maka : Hitung bonus
if ("I".equals(golongan)) = gajihpokok
bernilai true dan *0.6 dan
if (masakerja >= 0 && masakerja" +<=bonus)
Cetak ("Bonus : Rp. 10) bernilai true
Maka : Hitung bonus = gajihpokok * 0.5 dan
else if (masakerja >= 21 &&
Cetak ("Bonus masakerja
: Rp. <= 30) bernilai
" + bonus)
true
Maka : Hitung bonus = gajihpokok * 0.7 dan
Cetak ("Bonus : Rp. " + bonus)

if ("II".equals(golongan)) bernilai true dan


if (masakerja >= 0 && masakerja <= 10) bernilai true
Maka : Hitung bonus = gajihpokok * 0.6 dan
Cetak ("Bonus : Rp. " + bonus)

else if (masakerja >= 11 && masakerja <= 20) bernilai


Input

Memesan memori bernama :


golongan dengan tipe data String
gajihpokok, masakerja dengan tipe data bilangan bulat
bonus dengan tipe data bilangan real

Scanner input

c. Algoritma memakai pseudocode informal (input, proses, output)

Deklarasi :
Input variable golongan : String
Input variable masakerja, gajihpokok : integer
Input variable bonus : double
Scanner input

Proses :
Input golongan
Input gajihpokok
Input masakerja
if ("I".equals(golongan)) bernilai true dan
if (masakerja >= 0 && masakerja <= 10) bernilai true
Hitung bonus = gajihpokok * 0.5
Cetak ("Bonus : Rp. " + bonus)

else if (masakerja >= 11 && masakerja <= 20) bernilai true


Hitung bonus = gajihpokok *0.6
Cetak ("Bonus : Rp. " + bonus)

else if (masakerja >= 21 && masakerja <= 30) bernilai true


Hitung bonus = gajihpokok * 0.7
Cetak ("Bonus : Rp. " + bonus)

if ("II".equals(golongan)) bernilai true dan


if (masakerja >= 0 && masakerja <= 10) bernilai true
Hitung bonus = gajihpokok * 0.6
Cetak ("Bonus : Rp. " + bonus)

else if (masakerja >= 11 && masakerja <= 20) bernilai true


Hitung bonus = gajihpokok *0.7
Cetak ("Bonus : Rp. " + bonus)

else if (masakerja >= 21 && masakerja <= 30) bernilai true


Hitung bonus = gajihpokok * 0.8
Cetak ("Bonus : Rp. " + bonus)

if ("III".equals(golongan)) bernilai true dan


if (masakerja >= 0 && masakerja <= 10) bernilai true
Hitung bonus = gajihpokok * 0.7
Cetak ("Bonus : Rp. " + bonus)

else if (masakerja >= 11 && masakerja <= 20) bernilai true


Hitung bonus = gajihpokok *0.8
Cetak ("Bonus : Rp. " + bonus)

else if (masakerja >= 21 && masakerja <= 30) bernilai true


Hitung bonus = gajihpokok * 0.9
Cetak ("Bonus : Rp. " + bonus)

if ("IV".equals(golongan)) bernilai true dan


if (masakerja >= 0 && masakerja <= 10) bernilai true
Hitung bonus = gajihpokok * 0.8
Cetak ("Bonus : Rp. " + bonus)

else if (masakerja >= 11 && masakerja <= 20) bernilai true


Hitung bonus = gajihpokok *0.9
Cetak ("Bonus : Rp. " + bonus)

else if (masakerja >= 21 && masakerja <= 30) bernilai true


Hitung bonus = gajihpokok * 1
Cetak ("Bonus : Rp. " + bonus)

d. Teks program memakai tabel berikut

Perintah Arti
import java.util.Scanner; Merupakan class yang menyediakan fungsi-fungsi untuk
mengambil input dari keyboard
public class Soal_No_2b { Deklarasi class
public static void main(String [] args) { Deklarasi metode main

String golongan; Memesan tempat dengan tipe data String dengan nama
golongan
int masakerja, gajihpokok; Memesan tempat untuk bilangan bulat dengan nama
masakerja, gajihpokok
double bonus; Memesan tempat untuk bilangan real dengan nama
bonus
Scanner input = new Scanner(System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard

System.out.print("Golongan : "); Mencetak tulisan Golongan


golongan = input.next(); Perintah untuk membaca angka/nilai (dengan tipe data
String) yang diinput sendiri oleh user
System.out.print("Gajih Pokok : "); Mencetak tulisan Gajih Pokok
gajihpokok = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user
System.out.print("Masa Kerja : "); Mencetak tulisan Masa Kerja
masakerja = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user

if ("I".equals(golongan)){ Jika kondisi 1 ("I".equals(golongan)) bernilai true dan


if (masakerja >= 0 && masakerja <= 10){ Jika kondisi 2 (masakerja >= 0 && masakerja <= 10)
bonus = gajihpokok * 0.5; bernilai true
System.out.println("Bonus : Rp. " + Maka : Hitung bonus = gajihpokok * 0.5 dan
bonus); Cetak “Bonus : Rp. " + bonus
}
Jika kondisi 2 bernilai false dan kondisi 3 (masakerja >=
else if (masakerja >= 11 && masakerja <= 11 && masakerja <= 20) bernilai true
20){ Maka : Hitung bonus = gajihpokok *0.6 dan
bonus = gajihpokok *0.6; Cetak Bonus : Rp. " + bonus
System.out.println("Bonus : Rp. " + bonus);
} Jika kondisi 2 dan 3 bernilai false dan kondisi 4
(masakerja >= 21 && masakerja <= 30) bernilai true
else if (masakerja >= 21 && masakerja <= 30) Maka : Hitung bonus = gajihpokok * 0.7 dan
{ Cetak Bonus : Rp. " + bonus
bonus = gajihpokok * 0.7;
System.out.println("Bonus : Rp. " + bonus);
}
}
if ("II".equals(golongan)){ Jika kondisi 1 bernilai false dan kondisi 5
if (masakerja >= 0 && masakerja <= 10){ ("II".equals(golongan)) bernilai true dan
bonus = gajihpokok * 0.6; Jika kondisi 6 (masakerja >= 0 && masakerja <= 10)
System.out.println("Bonus : Rp. " + bernilai true
bonus); Maka : Hitung bonus = gajihpokok * 0.6 dan
} Cetak “Bonus : Rp. " + bonus

Jika kondisi 6 bernilai false dan kondisi 7 (masakerja >=


else if (masakerja >= 11 && masakerja <= 11 && masakerja <= 20) bernilai true
20){ Maka : Hitung bonus = gajihpokok *0.7 dan
bonus = gajihpokok *0.7; Cetak Bonus : Rp. " + bonus
System.out.println("Bonus : Rp. " +
bonus); Jika kondisi 6 dan 7 bernilai false dan kondisi 8
} ( (masakerja >= 21 && masakerja <= 30) bernilai true
Maka : Hitung bonus = gajihpokok * 0.8 dan
else if (masakerja >= 21 && masakerja <= Cetak Bonus : Rp. " + bonus
30){
bonus = gajihpokok * 0.8;
System.out.println("Bonus : Rp. " +
bonus);
}
}
if ("III".equals(golongan)){ Jika kondisi 1 dan 5 bernilai false dan kondisi 9
if (masakerja >= 0 && masakerja <= 10){ ("III".equals(golongan)) bernilai true dan
bonus = gajihpokok * 0.7; Jika kondisi 10 (masakerja >= 0 && masakerja <= 10)
System.out.println("Bonus : Rp. " + bernilai true
bonus); Maka : Hitung bonus = gajihpokok * 0.7 dan
} Cetak “Bonus : Rp. " + bonus

Jika kondisi 10 bernilai false dan kondisi 11 (masakerja


else if (masakerja >= 11 && masakerja <= >= 11 && masakerja <= 20) bernilai true
20){ Maka : Hitung bonus = gajihpokok *0.8 dan
bonus = gajihpokok *0.8; Cetak Bonus : Rp. " + bonus
System.out.println("Bonus : Rp. " +
bonus); Jika kondisi 10 dan 11 bernilai false dan kondisi 12
} (masakerja >= 21 && masakerja <= 30) bernilai true
Maka : Hitung bonus = gajihpokok * 0.9 dan
else if (masakerja >= 21 && masakerja <= Cetak Bonus : Rp. " + bonus
30){
bonus = gajihpokok * 0.9;
System.out.println("Bonus : Rp. " +
bonus);
}
}
if ("IV".equals(golongan)){ Jika kondisi 1, 5 dan 9 bernilai false dan kondisi 13
if (masakerja >= 0 && masakerja <= 10){ ("IV".equals(golongan)) bernilai true dan
bonus = gajihpokok * 0.8; Jika kondisi 14 (masakerja >= 0 && masakerja <= 10)
System.out.println("Bonus : Rp. " + bernilai true
bonus); Maka : Hitung bonus = gajihpokok * 0.8 dan
} Cetak “Bonus : Rp. " + bonus

Jika kondisi 14 bernilai false dan kondisi 15 (masakerja


else if (masakerja >= 11 && masakerja <= >= 11 && masakerja <= 20) bernilai true
20){ Maka : Hitung bonus = gajihpokok *0.9 dan
bonus = gajihpokok *0.9; Cetak Bonus : Rp. " + bonus
System.out.println("Bonus : Rp. " +
bonus); Jika kondisi 14 dan 15 bernilai false dan kondisi 16
} (masakerja >= 21 && masakerja <= 30) bernilai true
Maka : Hitung bonus = gajihpokok * 1 dan
else if (masakerja >= 21 && masakerja <= Cetak Bonus : Rp. " + bonus
30){
bonus = gajihpokok * 1;
System.out.println("Bonus : Rp. " +
bonus);
}
}
}
}

e. Screenshot Program dan Output


Screenshot Program
Screenshot Output

4. Soal_No_2c

a. Uraian soal

Menentukan bintang (zodiac) seseorang berdasarkan tanggal lahirnya yang dimasukkan


lewat keyboard. Format tanggal yang Anda gunakan cukup berupa tanggal dan bulan yang
berupa bilangan bulat. Program Anda selain dapat menentukan nama bintang seseorang juga
dapat menampilkan sifat-sifat pokok dari bintang tersebut yang adapat Anda cari lewat
Google. Contoh input dan output program Anda adalah sbb:

Nama : Edi
Alamat : Jln. Colombo Purwokerto
Tanggal lahir : 20
Bulan lahir :5
Anda berbintang : Taurus
Sifat Anda : Murah hati dan penyanyang…..dst dst

-Aquarius : 20 Januari-18 Februari


-Pisces : 19 Februari-20 Maret
-Aries : 21 Maret-19 April
-Taurus : 20 April-20 Mei
-Gemini : 21 Mei-20 Juni
-Cancer : 21 Juni-22 Juli
-Leo : 23 Juli-22 Agustus
-Virgo : 23 Agustus-22 September
-Libra : 23 September-22 Oktober
-Scorpio : 23 Oktober-21 November
-Sagitarius: 22 November-21 Desember
- Capicron : 22 Desember- 19 Januari

b. Rancangan program

Output

Nama : …
Alamat : …
Bulan Lahir : …
Tanggal Lahir : …
Zodiak Anda Adalah …
Proses
Sifat Anda : …

Menampilkan tulisan “Nama” dan input angka/nilai yang


akan diinput sendiri oleh user

Menampilkan tulisan “Alamat” dan input angka/nilai yang


akan diinput sendiri oleh user

Menampilkan tulisan “Bulan Lahir” dan input angka/nilai


yang akan diinput sendiri oleh user

Menampilkan tulisan “Tanggal Lahir” dan input angka/nilai


yang akan diinput sendiri oleh user

Buat percabangan if dengan syarat


if (bulan == 1 && tanggal >= 20 && tanggal <= 31 || bulan
== 2 && tanggal >= 1 && tanggal <= 18) bernilai true,
Maka: Cetak "Zodiak Anda Adalah Aquarius"
Cetak "Sifat Anda : Berjiwa kemanusian dan
pemberontak"

else if (bulan == 2 && tanggal >= 19 && tanggal <= 28 ||


bulan == 3 && tanggal >= 1 && tanggal <= 20) bernilai true,
Maka : Cetak “Zodiak Anda Adalah Pisces"
Cetak “Sifat Anda : Pantang menyerah, manja dan
mudah khawatir"

else if (bulan == 3 && tanggal >= 21 && tanggal <= 31 ||


bulan == 4 && tanggal >= 1 && tanggal <= 19) bernilai true,
Maka : Cetak "Zodiak Anda Adalah Aries"
Cetak “Sifat Anda : Berani, inisiatif dan agresif"
else if (bulan == 7 && tanggal >= 23 && tanggal <= 31 ||
bulan == 8 && tanggal >= 1 && tanggal <= 22) bernilai
true,
Maka : Cetak "Zodiak Anda Adalah Leo"
Cetak "Sifat Anda : Pemimpin, murah hati, berani,
ramah dan banyak bicara"

else if (bulan == 8 && tanggal >= 23 && tanggal <= 31 ||


bulan == 9 && tanggal >= 1 && tanggal <= 22) bernilai
true,
Maka : Cetak "Zodiak Anda Adalah Virgo"
Cetak "Sifat Anda : Disiplin dan cerewet"

else if (bulan == 9 && tanggal >= 23 && tanggal <= 30 ||


bulan == 10 && tanggal >= 1 && tanggal <= 22) bernilai
true,
Maka : Cetak “Zodiak Anda Adalah Libra"
Cetak "Sifat Anda : Suka membantu, ceria dan
tidak jujur"

else if (bulan == 10 && tanggal >= 23 && tanggal <= 31 ||


bulan == 11 && tanggal >= 1 && tanggal <= 21) bernilai
true,
Maka : Cetak "Zodiak Anda Adalah Scorpio"
Cetak “Sifat Anda : Kreativ dan fanatik"

else if (bulan == 11 && tanggal >= 22 && tanggal <= 30 ||


bulan == 12 && tanggal >= 1 && tanggal <= 21) bernilai
true,
Maka : Cetak “Zodiak Anda Adalah Sagitarius"
Cetak "Sifat Anda : Optimis, bijaksana dan
cenderung tidak bertanggung jawab"

else
Inputif (bulan == 12 && tanggal >= 22 && tanggal <= 31 ||
bulan == 1 && tanggal >= 1 && tanggal <= 19) bernilai
true,
Memesan memori bernama :
Maka
nama,: alamat,
Cetak “Zodiak Anda
zodiac dan Adalah
sifat Capricorn"
dengan tipe data String
Cetak
tanggal dan “Sifat
bulan Anda :tipe
dengan Ambisius dan terlalu
data bilangan khawatir”
bulat

Scanner input

c. Algoritma memakai pseudocode informal (input, proses, output)

Deklarasi :
Input variable nama, alamat, zodiac, sifat : String
Input variable tanggal, bulan : integer
Scanner input

Proses :
Input Nama
Input Alamat
Input Bulan Lahir
Input Tanggal Lahir
if (bulan == 1 && tanggal >= 20 && tanggal <= 31 || bulan == 2 && tanggal >= 1 &&
tanggal <= 18)
Cetak "Zodiak Anda Adalah Aquarius"
Cetak "Sifat Anda : Berjiwa kemanusian dan pemberontak"

else if (bulan == 2 && tanggal >= 19 && tanggal <= 28 || bulan == 3 && tanggal >= 1 &&
tanggal <= 20)
Cetak “Zodiak Anda Adalah Pisces"
Cetak “Sifat Anda : Pantang menyerah, manja dan mudah khawatir"

else if (bulan == 3 && tanggal >= 21 && tanggal <= 31 || bulan == 4 && tanggal >= 1 &&
tanggal <= 19)
Cetak "Zodiak Anda Adalah Aries"
Cetak “Sifat Anda : Berani, inisiatif dan agresif"

else if (bulan == 4 && tanggal >= 20 && tanggal <= 30 || bulan == 5 && tanggal >= 1 &&
tanggal <= 20)
Cetak "Zodiak Anda Adalah Taurus"
Cetak “Sifat Anda : Loyalitas tinggi dan keras hati"

else if (bulan == 5 && tanggal >= 21 && tanggal <= 31 || bulan == 6 && tanggal >= 1 &&
tanggal <= 20)
Cetak "Zodiak Anda Adalah Gemini"
Cetak ("Sifat Anda : Aktif, cerdas, multi talenta dan gugup"

else if (bulan == 6 && tanggal >= 21 && tanggal <= 30 || bulan == 7 && tanggal >= 1 &&
tanggal <= 22)
Cetak "Zodiak Anda Adalah Cancer"
Cetak “Sifat Anda : Ramah, jujur, sabar dan kekanak-kanakan"

else if (bulan == 7 && tanggal >= 23 && tanggal <= 31 || bulan == 8 && tanggal >= 1 &&
tanggal <= 22)
Cetak "Zodiak Anda Adalah Leo"
Cetak "Sifat Anda : Pemimpin, murah hati, berani, ramah dan banyak bicara"

else if (bulan == 8 && tanggal >= 23 && tanggal <= 31 || bulan == 9 && tanggal >= 1 &&
tanggal <= 22)
Cetak "Zodiak Anda Adalah Virgo"
Cetak "Sifat Anda : Disiplin dan cerewet"

else if (bulan == 9 && tanggal >= 23 && tanggal <= 30 || bulan == 10 && tanggal >= 1
&& tanggal <= 22)
Cetak “Zodiak Anda Adalah Libra"
Cetak "Sifat Anda : Suka membantu, ceria dan tidak jujur"

else if (bulan == 10 && tanggal >= 23 && tanggal <= 31 || bulan == 11 && tanggal >= 1
&& tanggal <= 21)
Cetak "Zodiak Anda Adalah Scorpio"
Cetak “Sifat Anda : Kreativ dan fanatik"

else if (bulan == 11 && tanggal >= 22 && tanggal <= 30 || bulan == 12 && tanggal >= 1
&& tanggal <= 21)
Cetak “Zodiak Anda Adalah Sagitarius"
Cetak "Sifat Anda : Optimis, bijaksana dan cenderung tidak bertanggung jawab"

else if (bulan == 12 && tanggal >= 22 && tanggal <= 31 || bulan == 1 && tanggal >= 1
&& tanggal <= 19)
Cetak “Zodiak Anda Adalah Capricorn"
Cetak “Sifat Anda : Ambisius dan terlalu khawatir”

d. Teks program memakai tabel berikut

Perintah Arti
import java.util.Scanner; Merupakan class yang menyediakan fungsi-fungsi untuk
mengambil input dari keyboard
public class Soal_No_2c { Deklarasi class
public static void main(String [] args) { Deklarasi metode main

String nama, alamat, zodiac, sifat; Memesan tempat dengan tipe data String dengan nama,
nama, alamat, zodiac dan sifat
int tanggal, bulan; Memesan tempat untuk bilangan bulat dengan nama
tanggal, bulan
Scanner input = new Scanner(System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard

System.out.print("Nama : "); Mencetak tulisan Nama


nama = input.nextLine(); Perintah untuk membaca angka/nilai (dengan tipe data
String) yang diinput sendiri oleh user
System.out.print("Alamat : "); Mencetak tulisan Alamat
alamat = input.nextLine(); Perintah untuk membaca angka/nilai (dengan tipe data
String) yang diinput sendiri oleh user
System.out.print("Bulan Lahir : "); Mencetak tulisan Bulan Lahir
bulan = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user
System.out.print("Tanggal Lahir : "); Mencetak tulisan Tanggal Lahir
tanggal = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user

if (bulan == 1 && tanggal >= 20 && tanggal Jika kondisi 1 (bulan == 1 && tanggal >= 20 &&
<= 31 || bulan == 2 && tanggal >= 1 && tanggal <= 31 || bulan == 2 && tanggal >= 1 &&
tanggal <= 18){ tanggal <= 18) bernilai true
System.out.println("Zodiak Anda Adalah Maka : Cetak "Zodiak Anda Adalah Aquarius"
Aquarius"); Cetak "Sifat Anda : Berjiwa kemanusian dan
System.out.println("Sifat Anda : Berjiwa pemberontak"
kemanusian dan pemberontak");
}
else if (bulan == 2 && tanggal >= 19 && Jika kondisi 1 bernilai false dan kondisi 2 (bulan == 2
tanggal <= 28 || bulan == 3 && tanggal >= 1 && tanggal >= 19 && tanggal <= 28 || bulan == 3 &&
&& tanggal <= 20){ tanggal >= 1 && tanggal <= 20) bernilai true,
System.out.println("Zodiak Anda Adalah Maka : Cetak “Zodiak Anda Adalah Pisces"
Pisces"); Cetak "Sifat Anda : Pantang menyerah, manja
System.out.println("Sifat Anda : Pantang dan mudah khawatir"
menyerah, manja dan mudah khawatir");
}
else if (bulan == 3 && tanggal >= 21 && Jika kondisi 1 dan 2 bernilai false dan kondisi 3 (bulan
tanggal <= 31 || bulan == 4 && tanggal >= 1 == 3 && tanggal >= 21 && tanggal <= 31 || bulan == 4
&& tanggal <= 19){ && tanggal >= 1 && tanggal <= 19) bernilai true,
System.out.println("Zodiak Anda Adalah Maka : Cetak "Zodiak Anda Adalah Aries"
Aries"); Cetak “Sifat Anda : Berani, inisiatif dan agresif"
System.out.println("Sifat Anda : Berani,
inisiatif dan agresif");
}
else if (bulan == 4 && tanggal >= 20 && Jika kondisi 1, 2 dan 3 bernilai false dan kondisi 4
tanggal <= 30 || bulan == 5 && tanggal >= 1 (bulan == 4 && tanggal >= 20 && tanggal <= 30 ||
&& tanggal <= 20){ bulan == 5 && tanggal >= 1 && tanggal <= 20)
System.out.println("Zodiak Anda Adalah bernilai true,
Taurus"); Maka : Cetak "Zodiak Anda Adalah Taurus"
System.out.println("Sifat Anda : Loyalitas Cetak "Sifat Anda : Loyalitas tinggi dan keras
tinggi dan keras hati"); hati"
}
else if (bulan == 5 && tanggal >= 21 && Jika kondisi 1, 2, 3 dan 4 bernilai false dan kondisi 5
tanggal <= 31 || bulan == 6 && tanggal >= 1 (bulan == 5 && tanggal >= 21 && tanggal <= 31 ||
&& tanggal <= 20){ bulan == 6 && tanggal >= 1 && tanggal <= 20)
System.out.println("Zodiak Anda Adalah bernilai true,
Gemini"); Maka : Cetak "Zodiak Anda Adalah Gemini"
System.out.println("Sifat Anda : Aktif, Cetak "Sifat Anda : Aktif, cerdas, multi talenta
cerdas, multi talenta dan gugup"); dan gugup"
}
else if (bulan == 6 && tanggal >= 21 && Jika kondisi 1, 2, 3, 4 dan 5 bernilai false dan kondisi 6
tanggal <= 30 || bulan == 7 && tanggal >= 1 (bulan == 6 && tanggal >= 21 && tanggal <= 30 ||
&& tanggal <= 22){ bulan == 7 && tanggal >= 1 && tanggal <= 22)
System.out.println("Zodiak Anda Adalah bernilai true,
Cancer"); Maka : Cetak "Zodiak Anda Adalah Cancer"
System.out.println("Sifat Anda : Ramah, Cetak “Sifat Anda : Ramah, jujur, sabar dan
jujur, sabar dan kekanak-kanakan"); kekanak-kanakan"
}
else if (bulan == 7 && tanggal >= 23 && Jika kondisi 1, 2, 3, 4, 5 dan 6 bernilai false dan kondisi
tanggal <= 31 || bulan == 8 && tanggal >= 1 7 (bulan == 7 && tanggal >= 23 && tanggal <= 31 ||
&& tanggal <= 22){ bulan == 8 && tanggal >= 1 && tanggal <= 22)
System.out.println("Zodiak Anda Adalah bernilai true,
Leo"); Maka : Cetak "Zodiak Anda Adalah Leo"
System.out.println("Sifat Anda : Pemimpin, Cetak “Sifat Anda : Pemimpin, murah hati,
murah hati, berani, ramah dan banyak berani, ramah dan banyak bicara"
bicara");
}
else if (bulan == 8 && tanggal >= 23 && Jika kondisin 1, 2, 3, 4, 5, 6 dan 7 bernilai false dan
tanggal <= 31 || bulan == 9 && tanggal >= 1 kondisi 8 (bulan == 8 && tanggal >= 23 && tanggal <=
&& tanggal <= 22){ 31 || bulan == 9 && tanggal >= 1 && tanggal <= 22)
System.out.println("Zodiak Anda Adalah bernilai true,
Virgo"); Maka : Cetak “Zodiak Anda Adalah Virgo"
System.out.println("Sifat Anda : Disiplin dan Cetak "Sifat Anda : Disiplin dan cerewet"
cerewet");
}
else if (bulan == 9 && tanggal >= 23 && Jika kondisi 1, 2, 3, 4, 5, 6, 7 dan 8 bernilai false dan
tanggal <= 30 || bulan == 10 && tanggal >= 1 kondisi 9 (bulan == 9 && tanggal >= 23 && tanggal <=
&& tanggal <= 22){ 30 || bulan == 10 && tanggal >= 1 && tanggal <= 22)
System.out.println("Zodiak Anda Adalah bernilai true,
Libra"); Maka : Cetak "Zodiak Anda Adalah Libra"
System.out.println("Sifat Anda : Suka Cetak "Sifat Anda : Suka membantu, ceria dan
membantu, ceria dan tidak jujur"); tidak jujur"
}
else if (bulan == 10 && tanggal >= 23 && Jika kondisi 1, 2, 3, 4, 5, 6, 7, 8 dan 9 bnernilai false dan
tanggal <= 31 || bulan == 11 && tanggal >= 1 kondisi 10 (bulan == 10 && tanggal >= 23 && tanggal
&& tanggal <= 21){ <= 31 || bulan == 11 && tanggal >= 1 && tanggal <=
System.out.println("Zodiak Anda Adalah 21) bernilai true,
Scorpio"); Maka : Cetak "Zodiak Anda Adalah Scorpio"
System.out.println("Sifat Anda : Kreativ dan Cetak “Sifat Anda : Kreativ dan fanatik"
fanatik");
}
else if (bulan == 11 && tanggal >= 22 && Jika kondisi 1, 2, 3, 4, 5, 6, 7, 8, 9 dan 10 bernilai false
tanggal <= 30 || bulan == 12 && tanggal >= 1 dan kondisi 11 (bulan == 11 && tanggal >= 22 &&
&& tanggal <= 21){ tanggal <= 30 || bulan == 12 && tanggal >= 1 &&
System.out.println("Zodiak Anda Adalah tanggal <= 21) bernilai true,
Sagitarius"); Maka : Cetak "Zodiak Anda Adalah Sagitarius"
System.out.println("Sifat Anda : Optimis, Cetak "Sifat Anda : Optimis, bijaksana dan
bijaksana dan cenderung tidak bertanggung cenderung tidak bertanggung jawab"
jawab");
}
else if (bulan == 12 && tanggal >= 22 && Jika kondisi 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 dan 11 bernilai
tanggal <= 31 || bulan == 1 && tanggal >= 1 false dan kondisi 12 (bulan == 12 && tanggal >= 22
&& tanggal <= 19){ && tanggal <= 31 || bulan == 1 && tanggal >= 1 &&
System.out.println("Zodiak Anda Adalah tanggal <= 19) bernilai trus,
Capricorn"); Maka : Cetak "Zodiak Anda Adalah Capricorn"
System.out.println("Sifat Anda : Ambisius Cetak “Sifat Anda : Ambisius dan terlalu
dan terlalu khawatir"); khawatir"
}
}
}

e. Screenshot Program dan Output


Screenshot Program
Screenshot Output
5. Soal_No_2d

a. Uraian soal

Menentukan jenis segitiga berdasarkan panjang ketiga buah sisinya yang dimasukkan lewat
keyboard. Jenis segitiga adalah segitiga siku-siku, segitiga sama kaki, segitiga sama sisi, dan
segitiga sembarang
b. Rancangan program
Output

Panjang Sisi A : …
Panjang Sisi B : …
Panjang Sisi C : …
Segitiga ….

Proses

Menampilkan tulisan Panjang Sisi A dan input


angka/nilai yang akan diinput sendiri oleh user

Menampilkan tulisan Panjang Sisi B dan input angka/nilai


yang akan diinput sendiri oleh user

Menampilkan tulisan Panjang Sisi C dan input angka/nilai


yang akan diinput sendiri oleh user

Buat percabangan if dengan syarat :


if ((a*a)+(b*b)==(c*c) || (a*a)+(c*c)==(b*b) || (c*c)+
(b*b)==(a*a)) bernilai true, maka cetak Segitiga Siku-Siku

else if ((a==b) || (a==c) || (b==c)) bernilai true, maka


cetak Segitiga Sama Kaki

else if ((a == b) && (b == c)) bernilai true, maka cetak


Segitiga Sama Sisi

else cetak Segitiga Sembarang

Input

Memesan memori bernama a, b, c dengan tipe data


bilangan bulat
c. Algoritma memakai pseudocode informal (input, proses, output)

Deklarasi :
Input variable a, b, c: int
Scanner input

Proses :
Input a
Input b
Input c
if ((a*a)+(b*b)==(c*c) || (a*a)+(c*c)==(b*b) || (c*c)+(b*b)==(a*a))
Cetak Segitiga Siku-Siku
if ((a==b) || (a==c) || (b==c))
Cetak Segitiga Sama Kaki
if ((a == b) && (b == c))
Cetak Segitiga Sama Sisi
else
Cetak Segitiga Sembarang

d. Teks program memakai tabel berikut

Perintah Arti
import java.util.Scanner; Merupakan class yang menyediakan fungsi-fungsi
untuk mengambil input dari keyboard
public class Soal_No6 { Deklarasi class
public static void main(String [] args) { Deklarasi metode main

int a, b, c; Memesan tempat untuk bilangan bulat dengan nama


a, b, c
Scanner input = new Scanner(System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard

System.out.print("Panjang Sisi A : "); Mencetak tulisan Panjang Sisi A


a = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user
System.out.print("Panjang Sisi B : "); Mencetak tulisan Panjang Sisi B
b = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user
System.out.print("Panjang Sisi C : "); Mencetak tulisan Panjang Sisi C
c = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user
if ((a*a)+(b*b)==(c*c) || (a*a)+(c*c)==(b*b) || Jika kondisi 1 ((a*a)+(b*b)==(c*c) || (a*a)+
(c*c)+(b*b)==(a*a)){ (c*c)==(b*b) || (c*c)+(b*b)==(a*a)) bernilai true
System.out.println("Segitiga Siku-Siku"); maka : Cetak Segitiga Siku-Siku pada baris
} berikutnya
else if ((a==b) || (a==c) || (b==c)){ Jika kondisi 1 bernilai false dan kondisi 2 ((a==b) ||
System.out.println("Segitiga Sama (a==c) || (b==c)) bernilai true maka : Cetak Segitiga
Kaki"); Sama Kaki pada baris berikutnya
}
else if ((a == b) && (b == c)){ Jika kondisi 1 dan 2 bernilai false dan kondisi 3 ((a
System.out.println("Segitiga Sama Sisi"); == b) && (b == c)) bernilai true maka : Cetak
} Segitiga Sama Sisi pada baris berikutnya
else Jika kondisi 1, 2 dan 3 bernilai false maka cetak
System.out.println("Segitiga Segitiga Sembarang pada baris berikutnya
Sembarang");
}
}

e. Screenshot Program dan Output


Screenshot Program

Screenshot Output
D. DAFTAR PUSTAKA

Lestari, Estrin Vanadianti., 2021, Kenali Sifat 12 Zodiak Lengkap Beserta Ulasan Terbaru 2021,
https://www.cekaja.com/info/kenali-sifat-12-zodiak-lengkap-beserta-ulasan-terbaru , diakses pada 30
September 2021 19:31 WIB.

Modul IV “Blok Pernyataan dan Percabangan Sederhana”

Anda mungkin juga menyukai