Anda di halaman 1dari 38

LAPORAN HASIL PRAKTIKUM 6

ALGORITMA DAN PEMROGRAMAN EP


“Percabangan Menggunakan Switch”
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 semakin menguasai penulisan program yang menuntut percabangan atau


kendali/control
2. Mahasiswa dapat menyelesaikan masalah sederhana memakai perintah switch – case

B. Dasar Teori

PERCABANGAN MENGGUNAKAN SWITCH

5.1. Pengantar

Selain if dan pasangan if - else, Java juga menyediakan fasilitas percabangan lain
memakai perintah switch. Perintah ini lebih intuitif dan lebih mudah dibaca khususnya ketika
Anda menghadapi masalah untuk melakukan banyak pilihan sekaligus. Namun demikian,
penggunaan switch harus dilakukan dengan cermat dan hati-hati karena dalam banyak hal
mempunyai perbedaan yang mendasar dengan if - else.

5.2. Percabangan memakai switch

Bentuk umum perinah switch adalah sebagai berikut.

switch (<ekspresi>) {
case konstanta-1 :
pernyataan_1
break;
case konstanta-2 :
pernyataan_2
break;
.
. // (case-case yang lain)
.
case konstanta-N:
pernyataan_N
break;
default: // pilihan default (tidak harus ada)
pernyataan_N+1
} // akhir perintah switch
Melalui perintah switch di atas, pernyataan mana yang akan dikerjakan oleh compiler
tergantung kepada konstanta manakah yang nilainya sama dengan <ekspresi> yang mengikuti
kata switch. Jika konstanta 2 nilainya sama dengan <ekspresi> maka pernyataan_2 yang akan
dikerjakan. Karena Anda menghendakai hanya pernyataan_2 yang dikerjakan oleh compiler
maka setelah pernyataan_2 harus diikuti dengan perintah break. Perintah break akan
mengarahkan compiler untuk menuju perintah setelah switch. Sebenarnya perintah break boleh
dihilangkan tetapi konsekuensinya compiler akan terus mengevaluasi setiap case yang ada dan
hal ini tentu tidak Anda inginkan sebab akan memperpanjang waktu eksekusi program. Yang
Anda inginkan adalah jika salah satu case sudah terpenuhi maka Anda akan mengarahkan
compiler menuju perintah setelah switch. Perhatikan bahwa perintah default merupakan hal yang
opsional yakni boleh ada maupun tidak. Berikut adalah contoh pemakaian switch.

switch ( N ) { // (Andaikan N adalah bilangan bulat positif (int).)


case 1:
System.out.println("Bilangan tersebut adalah 1.");
break;
case 2:
case 4:
case 8:
System.out.println("Bilangan tersebut adalah 2, 4, atau 8.");
System.out.println("yakni bilangan kelipatan 2 dan kurang dari 10");
break;
case 3:
case 6:
case 9:
System.out.println("Bilangan tersebut adalah 3, 6, atau 9.");
System.out.println("(yakni bilangan kelipatan 3 dan kurang dari 10");
break;
case 5:
System.out.println("Bilangan tersebut adalah 5.");
break;
default:
System.out.println("Bilangan tersebut adalah 7 atau lebih dari 9.");
}

Perhatikan bahwa ekspresi yang dipakai dalam perintah switch dapat berupa int, byte
maupun char tetapi tidak diijinkan jika bertipe double ataupun float. Untuk Java versi 7, ekspresi
juga dapat berupa String. Berikut contoh bentuk percabangan switch menggunakan ekspresi
bertipe char.
switch ( NilaiHuruf ) { // (Andaikan NilaiHuruf bertipe char)
case ‘A’:
System.out.println("Excellent !.");
break;
case ‘B’:
System.out.println("Bagus");
break;
case ‘C’:
System.out.println("Lumayan.");
break;

case ‘D’:
System.out.println("Kurang bagus");
break;
case ‘E’:
System.out.println("Gagal alias tidak lulus");
break;
case ‘F’:
System.out.println("Tidak lengkap");
break;
}

5.3. Switch dan Tipe Data enum

Tipe data yang banyak gunanya tetapi tidak termasuk ke dalam tipe data dasar/primitive
Java adalah tipe enum. Tipe data enum paling mudah dibayangkan sebagai sebuah data yang
berada dalam himpunan diskrit. Misalnya Anda dapat membentuk himpunan hari = { SENIN,
SELASA, RABU, KAMIS, JUMAT, SABTU, MINGGU}. Namun demikian, tipe data enum
bukan sekedar seperti himpunan tetapi sejatinya enum adalah singkatan dari enumerated number
yakni bilangan terurut. Tentu saja yang dimaksud adalah tipe data yang mempunyai urutan atau
order. Di dalam statistic, tipe data ini juga disebut dengan tipe data ordinal.
Tipe data enum dideklarasikan memakai format berikut

enum <nama-tipe-enum> { daftar anggota }

Berikut contoh deklarasi data dengan tipe enum

enum Musim {SEMI, PANAS, GUGUR, DINGIN}

enum Hari {SENIN, SELASA, RABU, KAMIS, JUMAT,SABTU,MINGGU}

Sebagai kebiasaan, data dari tipe enum dituliskan dengan huurf besar semua karena dapat
dipandang sebagi konstanta.

Tipe data enum sebenarnya berupa class dan datanya berupa obyek tetapi untuk
memakainya dalam perintah switch, Anda dapat memperlakukannya tanpa melihatnya sebagai
class dan obyek. Dengan demikian, meskipun secara lengkap konstanta dalam Musim harus
ditulis Musim.SEMI atau Musim.PANAS tetapi ketika tipe enum digunakan dalam perintah
switch maka nama tipe enum dapat dihilangkan sehingga cukup ditulis dengan SEMI, PANAS,
GUGUR atau DINGIN. Berikut contoh penggunaan switch memakai tipe data enum.

enum Musim {SEMI, PANAS, GUGUR, DINGIN};


Musim musimEropa
switch ( musimEropa )
{
case DINGIN: // ( tidak perlu ditulis
musimEropa.DINGIN ! )
System.out.println("Desember, Januari, Februari");
break;
case SEMI:
System.out.println("Maret, April, Mei");
break;
case PANAS:
System.out.println("Juni, Juli,
Agustus"); break;
case GUGUR:
System.out.println("September, Oktober,
Nopember"); break;
}
5.4. Praktikum

1. Tulis dan jalankan program berikut


public class SwitchDemo {
public static void main(String[] args) {

int month = 8;
String monthString;
switch (month) {
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid month";
break;
}
System.out.println(monthString);
}
}

2. Ubahlah program di atas sehingga data bulan (month) diperoleh lewat keyboard

3. Buat program untuk menentukan jumlah hari dari bulan yang dimasukkan lewat keyboard
memakai switch-case.

4. Buat program memakai switch – case untuk menentukan jumlah uang yang harus dibayarkan
oleh pelanggan yang membeli sejumlah kaos di mana hargan per biji tergantung ukurannya
yakni
Ukuran Harga per buah (Rp)
S 30.000
M 38.000
L 45.000
XL 50.000
XXL 60.000

5. Bonus akhir tahun karyawan ditentukan berdasarkan prosentase dari gaji pokok dengan
memakai rumus berikut

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 %

Buat program memakai switch-case dan if – else yang dapat menghitung bonus karyawan
berdasarkan gaji pokok, golongan serta masa kerja yang dimasukkan lewat keyboard.

6. Buat program memakai gabungan antara switch-case dan enum yang dapat menentukan nama
kitab suci beserta nabinya dari agama-agam besar, antara lain :

Agama Kitab Suci Nabi


Hindu Veda -
Budha Tripitaka Sidarta Gautama
Yahudi Taurat Musa
Katolik Injil Yesus
Kristen Injil Yesus
Islam Alquran Muhamad
C. Analisis

1. Soal_No1

a. Uraian soal
Tulis dan jalankan program berikut
public class SwitchDemo {
public static void main(String[] args) {

int month = 8;
String monthString;
switch (month) {
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid month";
break;
}
System.out.println(monthString);
}
}
b. Rancangan program

Output

August
Proses

Menyimpan bilangan bulat 8 ke memori bernama month

switch (month)
case 8: monthString = "August"
break

Cetak (monthString)

Input

Memesan memori bernama month dengan tipe data


bilangan bulat dan monthString dengan tipe data String

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

Deklarasi :
Input variable month : integer
Input variabel montString : String

Begin :
month  8
switch (month)
case 1: monthString = "January"
break
case 2: monthString = "February"
break
case 3: monthString = "March"
break
case 4: monthString = "April"
break
case 5: monthString = "May"
break
case 6: monthString = "June"
break
case 7: monthString = "July"
break
case 8: monthString = "August"
break
case 9: monthString = "September"
break
case 10: monthString = "October"
break
case 11: monthString = "November"
break
case 12: monthString = "December"
break
default: monthString = "Invalid month"
break
Cetak (monthString)

d. Teks program memakai tabel berikut

Perintah Arti
public class Soal_No1 { Deklarasi class Soal_No1
public static void main(String [] args) { Deklarasi metode main

int month = 8; Memesan tempat untuk bilangan bulat dengan nama


month
String monthString; Memesan tempat dengan tipe data String dengan
nama monthString

switch (month) { Month merupakan variabel atau ekspresi yang akan


diuji
case 1: monthString = "January"; Jika konstanta 1 sama dengan ekspresi (month) yang
break; mengikuti switch, maka monthString = January
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 2: monthString = "February"; Jika konstanta 2 sama dengan ekspresi (month) yang
break; mengikuti switch, maka monthString = February
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 3: monthString = "March"; Jika konstanta 3 sama dengan ekspresi (month) yang
break; mengikuti switch, maka monthString = March
Break digunakan untuk menjalankan case
berikutnya jika case tidak bernilai true
case 4: monthString = "April"; Jika konstanta 4 sama dengan ekspresi (month) yang
break; mengikuti switch, maka monthString = April
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 5: monthString = "May"; Jika konstanta 5 sama dengan ekspresi (month) yang
break; mengikuti switch, maka monthString = May
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 6: monthString = "June"; Jika konstanta 6 sama dengan ekspresi (month) yang
break; mengikuti switch, maka monthString = June
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 7: monthString = "July"; Jika konstanta 7 sama dengan ekspresi (month) yang
break; mengikuti switch, maka monthString = July
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 8: monthString = "August"; Jika konstanta 8 sama dengan ekspresi (month) yang
break; mengikuti switch, maka monthString = August
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 9: monthString = "September"; Jika konstanta 9 sama dengan ekspresi (month) yang
break; mengikuti switch, maka monthString = September
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 10: monthString = "October"; Jika konstanta 10 sama dengan ekspresi (month)
break; yang mengikuti switch, maka monthString = October
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 11: monthString = "November"; Jika konstanta 11 sama dengan ekspresi (month)
break; yang mengikuti switch, maka monthString =
November
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 12: monthString = "December"; Jika konstanta 12 sama dengan ekspresi (month)
break; yang mengikuti switch, maka monthString =
December
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
default: monthString = "Invalid month"; Default merupakan statement dari switch yang
break; dijalankan ketika semua kondisi dari case tidak
bernilai true, maka monthString = Invalid month
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
}
System.out.println(monthString); Menampilkan hasil dari isi variabel monthString
pada output dengan menambahkan baris baru
}
}

e. Screenshot Program dan Output


Screenshot Program
Screenshot Output

2. Soal_No2

a. Uraian soal
Ubahlah program di atas sehingga data bulan (month) diperoleh lewat keyboard

b. Rancangan program

Output

Masukkan Angka Bulan (1 - 12) : 7


Nama Bulan : July

Proses

Menginput bilangan bulat 7 bernama month melalui


Input

Memesan memori bernama month dengan tipe data


bilangan bulat

Scanner input

Menampilkan tulisan Masukkan Angka Bulan (1 - 12) dan


input angka/nilai yang akan diinput sendiri oleh user

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

Deklarasi :
Input variable month : integer
Scanner input
Cetak ("Masukkan Angka Bulan (1 - 12) : ")
Input month

Begin :
switch (month)
case 1:
Cetak ("Nama Bulan : January")
break
case 2:
Cetak ("Nama Bulan : February")
break
case 3:
Cetak ("Nama Bulan : March")
break
case 4:
Cetak ("Nama Bulan : April")
break
case 5:
Cetak ("Nama Bulan : May")
break
case 6:
Cetak ("Nama Bulan : June")
break
case 7:
Cetak ("Nama Bulan : July")
break
case 8:
Cetak ("Nama Bulan : August")
break
case 9:
Cetak (“Nama Bulan : September")
break
case 10:
Cetak ("Nama Bulan : October")
break
case 11:
Cetak ("Nama Bulan : November")
break
case 12:
Cetak ("Nama Bulan : December")
break

d. Teks program memakai tabel berikut

Perintah Arti
import java.util.Scanner; Scanner merupakan kelas yang menyediakan fungsi-
fungsi untuk mengambil input dari keyboard. Agar
kita dapat menggunakan Scanner, kita perlu
mengimpornya ke dalam code import
java.util.Scanner
public class Soal_No2 { Deklarasi class Soal_No2
public static void main(String [] args) { Deklarasi metode main

int month; Memesan tempat untuk bilangan bulat dengan nama


month
Scanner input = new Scanner (System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard
System.out.print("Masukkan Angka Bulan (1 Menampilkan tulisan Masukkan Angka Bulan (1 -
- 12) : "); 12) pada output tanpa menambahkan baris baru
month = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user

switch (month) { Month merupakan variabel atau ekspresi yang akan


diuji
case 1: Jika konstanta 1 sama dengan ekspresi (month) yang
System.out.println("Nama Bulan : mengikuti switch, maka cetak Nama Bulan : January
January"); pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 2: Jika konstanta 2 sama dengan ekspresi (month) yang
System.out.println("Nama Bulan : mengikuti switch, maka cetak Nama Bulan :
February"); February pada output dengan menambahkan baris
break; baru
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 3: Jika konstanta 3 sama dengan ekspresi (month) yang
System.out.println("Nama Bulan : mengikuti switch, maka cetak Nama Bulan : March
March"); pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 4: Jika konstanta 4 sama dengan ekspresi (month) yang
System.out.println("Nama Bulan : April"); mengikuti switch, maka cetak Nama Bulan : April
break; pada output dengan menambahkan baris baru
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 5: Jika konstanta 5 sama dengan ekspresi (month) yang
System.out.println("Nama Bulan : May"); mengikuti switch, maka cetak Nama Bulan : May
break; pada output dengan menambahkan baris baru
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 6: Jika konstanta 6 sama dengan ekspresi (month) yang
System.out.println("Nama Bulan : June"); mengikuti switch, maka cetak Nama Bulan : June
break; pada output dengan menambahkan baris baru
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 7: Jika konstanta 7 sama dengan ekspresi (month) yang
System.out.println("Nama Bulan : July"); mengikuti switch, maka cetak Nama Bulan : July
break; pada output dengan menambahkan baris baru
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 8: Jika konstanta 8 sama dengan ekspresi (month) yang
System.out.println("Nama Bulan : mengikuti switch, maka cetak Nama Bulan : August
August"); pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 9: Jika konstanta 9 sama dengan ekspresi (month) yang
System.out.println("Nama Bulan : mengikuti switch, maka cetak Nama Bulan :
September"); September pada output dengan menambahkan baris
break; baru
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 10: Jika konstanta 10 sama dengan ekspresi (month)
System.out.println("Nama Bulan : yang mengikuti switch, maka cetak Nama Bulan :
October"); October pada output dengan menambahkan baris
break; baru
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 11: Jika konstanta 11 sama dengan ekspresi (month)
System.out.println("Nama Bulan : yang mengikuti switch, maka cetak Nama Bulan :
November"); November pada output dengan menambahkan baris
break; baru
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 12: Jika konstanta 12 sama dengan ekspresi (month)
System.out.println("Nama Bulan : yang mengikuti switch, maka cetak Nama Bulan :
December"); December pada output dengan menambahkan baris
break; baru
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
}
}
}

e. Screenshot Program dan Output


Screenshot Program
Screenshot Output

3. Soal_No3

a. Uraian soal

Buat program untuk menentukan jumlah hari dari bulan yang dimasukkan lewat keyboard
memakai switch-case.

b. Rancangan program

Output

Masukkan Angka Bulan (1 - 12) : 1


Jumlah Hari adalah 31 hari

Proses

Menginput bilangan bulat 1 bernama bulan melalui


keyboard

switch (bulan)
case 1:
Cetak “Jumlah Hari adalah 31 hari”
break
Input

Memesan memori bernama bulan dengan tipe data


bilangan bulat

Scanner input

Menampilkan tulisan Masukkan Angka Bulan (1 - 12) dan


input angka/nilai yang akan diinput sendiri oleh user

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

Deklarasi :
Input variable bulan : integer
Scanner input
Cetak ("Masukkan Angka Bulan (1 - 12) : ")
Input bulan

Begin :
switch (bulan)
case 1:
Cetak ("Jumlah Hari adalah 31 hari")
break
case 2:
Cetak ("Jumlah Hari adalah 28 hari")
break
case 3:
Cetak ("Jumlah Hari adalah 31 hari")
break
case 4:
Cetak ("Jumlah Hari adalah 30 hari")
break
case 5:
Cetak (“Jumlah Hari adalah 31 hari")
break
case 6:
Cetak ("Jumlah Hari adalah 30 hari")
break
case 7:
Cetak ("Jumlah Hari adalah 31 hari")
break
case 8:
Cetak ("Jumlah Hari adalah 31 hari")
break
case 9:
Cetak ("Jumlah Hari adalah 30 hari")
break
case 10:
Cetak ("Jumlah Hari adalah 31 hari")
break
case 11:
Cetak ("Jumlah Hari adalah 30 hari")
break
case 12:
Cetak ("Jumlah Hari adalah 31 hari")
break

d. Teks program memakai tabel berikut

Perintah Arti
import java.util.Scanner; Scanner merupakan kelas yang menyediakan fungsi-
fungsi untuk mengambil input dari keyboard. Agar
kita dapat menggunakan Scanner, kita perlu
mengimpornya ke dalam code import
java.util.Scanner
public class Soal_No3 { Deklarasi class Soal_No3
public static void main(String [] args) { Deklarasi metode main

int bulan; Memesan tempat untuk bilangan bulat dengan nama


bulan
Scanner input = new Scanner (System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard
System.out.print("Masukkan Angka Bulan (1 Menampilkan tulisan Masukkan Angka Bulan (1 -
- 12) : "); 12) pada output tanpa menambahkan baris baru
bulan = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user

switch (bulan) { Bulan merupakan variabel atau ekspresi yang akan


diuji
case 1: Jika konstanta 1 sama dengan ekspresi (bulan) yang
System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 31
31 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 2: Jika konstanta 2 sama dengan ekspresi (bulan) yang
System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 28
28 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 3: Jika konstanta 3 sama dengan ekspresi (bulan) yang
System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 31
31 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true

case 4: Jika konstanta 4 sama dengan ekspresi (bulan) yang


System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 30
30 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 5: Jika konstanta 5 sama dengan ekspresi (bulan) yang
System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 31
31 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 6: Jika konstanta 6 sama dengan ekspresi (bulan) yang
System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 30
30 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 7: Jika konstanta 7 sama dengan ekspresi (bulan) yang
System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 31
31 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 8: Jika konstanta 8 sama dengan ekspresi (bulan) yang
System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 31
31 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 9: Jika konstanta 9 sama dengan ekspresi (bulan) yang
System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 30
30 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 10: Jika konstanta 10 sama dengan ekspresi (bulan) yang
System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 31
31 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 11: Jika konstanta 11 sama dengan ekspresi (bulan) yang
System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 30
30 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case 12: Jika konstanta 12 sama dengan ekspresi (bulan) yang
System.out.println("Jumlah Hari adalah mengikuti switch, maka cetak Jumlah Hari adalah 31
31 hari"); hari pada output dengan menambahkan baris baru
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
}
}
}

e. Screenshot Program dan Output


Screenshot Program
Screenshot Output

4. Soal_No4

a. Uraian soal
Buat program memakai switch – case untuk menentukan jumlah uang yang harus dibayarkan
oleh pelanggan yang membeli sejumlah kaos di mana hargan per biji tergantung ukurannya
yakni
Ukuran Harga per buah (Rp)
S 35.000
M 40.000
L 50.000
XL 65.000
XXL 80.000

b. Rancangan program

Output

Ukuran :L
Jumlah Kaos : 3
Total Harga : Rp.150000

Proses

Menginput huruf L bernama ukuran melalui keyboard

Menginput bilangan bulat 3 bernama jumlahkaos


melalui keyboard

case "L":
harga = 50000 * jumlahkaos
break
Cetak "Total Harga : Rp." + harga

Input

Memesan memori bernama harga, jumlahkaos dengan


tipe data bilangan bulat

Memesan memori bernama ukuran dengan tipe data


String

Scanner input

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

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


Deklarasi :
Input variable harga, jumlahkaos : integer
Input variabel ukuran : String
Scanner input
Print ("Ukuran : ")
Input ukuran
Print ("Jumlah Kaos : ")
Input jumlahkaos

Begin :
switch (ukuran)
case "S":
harga = 35000 * jumlahkaos
break
case "M":
harga = 40000 * jumlahkaos
break
case "L":
harga = 50000 * jumlahkaos
break
case "XL":
harga = 65000 * jumlahkaos
break
case "XXL":
harga = 80000 * jumlahkaos
break
default :
harga = 0
break
Cetak ("Total Harga : Rp." + harga)

d. Teks program memakai tabel berikut

Perintah Arti
import java.util.Scanner; Scanner merupakan kelas yang menyediakan fungsi-
fungsi untuk mengambil input dari keyboard. Agar
kita dapat menggunakan Scanner, kita perlu
mengimpornya ke dalam code import
java.util.Scanner
public class Soal_No4 { Deklarasi class Soal_No4
public static void main(String [] args) { Deklarasi metode main
int harga, jumlahkaos; Memesan tempat untuk bilangan bulat dengan nama
harga, jumlahkaos
String ukuran; Memesan tempat dengan tipe data String dengan
nama ukuran
Scanner input = new Scanner (System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard

System.out.print("Ukuran : "); Menampilkan tulisan Ukuran pada output tanpa


menambahkan baris baru
ukuran = input.next(); Perintah untuk membaca angka/nilai (dengan tipe
data String) yang diinput sendiri oleh user
System.out.print("Jumlah Kaos : "); Menampilkan tulisan Jumlah Kaos pada output tanpa
menambahkan baris baru
jumlahkaos = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user
switch (ukuran) { Ukuran merupakan variabel atau ekspresi yang akan
diuji
case "S": Jika konstanta S sama dengan ekspresi (ukuran) yang
harga = 35000 * jumlahkaos; mengikuti switch, maka Hitung harga = 35000 *
break; jumlahkaos
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case "M": Jika konstanta M sama dengan ekspresi (ukuran)
harga = 40000 * jumlahkaos; yang mengikuti switch, maka Hitung harga = 40000
break; * jumlahkaos
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case "L": Jika konstanta L sama dengan ekspresi (ukuran) yang
harga = 50000 * jumlahkaos; mengikuti switch, maka Hitung harga = 50000 *
break; jumlahkaos
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case "XL": Jika konstanta XL sama dengan ekspresi (ukuran)
harga = 65000 * jumlahkaos; yang mengikuti switch, maka Hitung harga = 65000
break; * jumlahkaos
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case "XXL": Jika konstanta XXL sama dengan ekspresi (ukuran)
harga = 80000 * jumlahkaos; yang mengikuti switch, maka Hitung harga = 80000
break; * jumlahkaos
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
default : Default merupakan statement dari switch yang
harga = 0; dijalankan ketika semua kondisi dari case tidak
break; bernilai true, maka harga = 0
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
}
System.out.println("Total Harga : Rp." + Menampilkan tulisan Total Harga beserta nilainya
harga); pada output dengan menambahkan baris baru
}
}

e. Screenshot Program dan Output


Screenshot Program

Screenshot Output

5. Soal_No5
a. Uraian soal
Bonus akhir tahun karyawan ditentukan berdasarkan prosentase dari gaji pokok dengan
memakai rumus berikut
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 %

Buat program memakai switch-case dan if – else yang dapat menghitung bonus karyawan
berdasarkan gaji pokok, golongan serta masa kerja yang dimasukkan lewat keyboard.

b. Rancangan program

Output

Golongan : III
Gajih Pokok : 10000000
Masa Kerja : 15
Bonus : Rp. 8000000.0

Proses

Menginput huruf III bernama golongan melalui


keyboard

Menginput bilangan bulat 10000000 bernama gajih


melalui keyboard

Menginput bilangan bulat 15 bernama kerja melalui


keyboard
Input
case "III":
Memesanif memori
(kerja >=bernama
0 && kerja <= 10){
kerja, gajih dengan tipe data
bonus
bilangan bulat = gajih * 0.7
}
Memesanelse if (kerjabernama
memori >= 11 && kerja <= dengan
golongan 20){ tipe data
String bonus = gajih * 0.8
}
Memesanelse if (kerjabernama
memori >= 21 && bonus
kerja <=dengan
30){ tipe data
bonus
bilangan real = gajih * 0.9
}
Menyimpan break
bilangan real 0 ke variabel bonus
Cetak "Bonus : Rp. " + bonus
Scanner input
c. Algoritma memakai pseudocode informal (input, proses, output)

Deklarasi :
Input variable kerja, gajih : integer
Input variabel golongan : String
Input variabel bonus : double
bonus  0
Scanner input
Print ("Golongan : ”)
Input golongan
Print ("Gajih Pokok : ")
Input gajih
Print ("Masa Kerja : ")
Input kerja

Begin :
switch (golongan)
case "I":
if (kerja >= 0 && kerja <= 10){
bonus = gajih * 0.5
}
else if (kerja >= 11 && kerja <= 20){
bonus = gajih * 0.6
}
else if (kerja >= 21 && kerja <= 30){
bonus = gajih * 0.7
}
break
case "II":
if (kerja >= 0 && kerja <= 10){
bonus = gajih * 0.6
}
else if (kerja >= 11 && kerja <= 20){
bonus = gajih * 0.7
}
else if (kerja >= 21 && kerja <= 30){
bonus = gajih * 0.8
}
break
case "III":
if (kerja >= 0 && kerja <= 10){
bonus = gajih * 0.7
}
else if (kerja >= 11 && kerja <= 20){
bonus = gajih * 0.8
}
else if (kerja >= 21 && kerja <= 30){
bonus = gajih * 0.9
}
break
case "IV":
if (kerja >= 0 && kerja <= 10){
bonus = gajih * 0.8
}
else if (kerja >= 11 && kerja <= 20){
bonus = gajih * 0.9
}
else if (kerja >= 21 && kerja <= 30){
bonus = gajih * 1
}
break
default:
bonus = 0
break
Cetak ("Bonus : Rp. " + bonus)

d. Teks program memakai tabel berikut

Perintah Arti
import java.util.Scanner; Scanner merupakan kelas yang menyediakan fungsi-
fungsi untuk mengambil input dari keyboard. Agar
kita dapat menggunakan Scanner, kita perlu
mengimpornya ke dalam code import
java.util.Scanner
public class Soal_No5 { Deklarasi class Soal_No5
public static void main(String [] args) { Deklarasi metode main

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

System.out.print("Golongan : "); Menampilkan tulisan Golongan pada output tanpa


menambahkan baris baru
golongan = input.next(); Perintah untuk membaca angka/nilai (dengan tipe
data String) yang diinput sendiri oleh user
System.out.print("Gajih Pokok : "); Menampilkan tulisan Gajih Pokok pada output tanpa
menambahkan baris baru
gajih = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user
System.out.print("Masa Kerja : "); Menampilkan tulisan Masa Kerja pada output tanpa
menambahkan baris baru
kerja = input.nextInt(); Perintah untuk membaca angka/nilai (dalam bilangan
bulat) yang diinput sendiri oleh user
switch (golongan){ Golongan merupakan variabel atau ekspresi yang
akan diuji
case "I": Jika konstanta I sama dengan ekspresi (golongan)
if (kerja >= 0 && kerja <= 10){ yang mengikuti switch, dan
bonus = gajih * 0.5; Jika kondisi (kerja >= 0 && kerja <= 10) bernilai
} true
else if (kerja >= 11 && kerja <= 20){ Maka : Hitung bonus = gajih * 0.5
bonus = gajih * 0.6;
} Jika kondisi (kerja >= 0 && kerja <= 10) bernilai
else if (kerja >= 21 && kerja <= 30){ false dan kondisi (kerja >= 11 && kerja <= 20)
bonus = gajih * 0.7; bernilai true
} Maka : Hitung bonus = gajih * 0.6
break;
Jika kondisi (kerja >= 0 && kerja <= 10) dan (kerja
>= 11 && kerja <= 20) bernilai false dan kondisi
(kerja >= 21 && kerja <= 30) bernilai true
Maka : Hitung bonus = gajih * 0.7

Break digunakan untuk menjalankan case berikutnya


jika case tidak bernilai true
case "II": Jika konstanta II sama dengan ekspresi (golongan)
if (kerja >= 0 && kerja <= 10){ yang mengikuti switch, dan
bonus = gajih * 0.6; Jika kondisi (kerja >= 0 && kerja <= 10) bernilai
} true
else if (kerja >= 11 && kerja <= 20){ Maka : Hitung bonus = gajih * 0.6
bonus = gajih * 0.7;
} Jika kondisi (kerja >= 0 && kerja <= 10) bernilai
else if (kerja >= 21 && kerja <= 30){ false dan kondisi (kerja >= 11 && kerja <= 20)
bonus = gajih * 0.8; bernilai true
} Maka : Hitung bonus = gajih * 0.7
break;
Jika kondisi (kerja >= 0 && kerja <= 10) dan (kerja
>= 11 && kerja <= 20) bernilai false dan kondisi
(kerja >= 21 && kerja <= 30) bernilai true
Maka : Hitung bonus = gajih * 0.8

Break digunakan untuk menjalankan case berikutnya


jika case tidak bernilai true
case "III": Jika konstanta III sama dengan ekspresi (golongan)
if (kerja >= 0 && kerja <= 10){ yang mengikuti switch, dan
bonus = gajih * 0.7; Jika kondisi (kerja >= 0 && kerja <= 10) bernilai
} true
else if (kerja >= 11 && kerja <= 20){ Maka : Hitung bonus = gajih * 0.7
bonus = gajih * 0.8;
} Jika kondisi (kerja >= 0 && kerja <= 10) bernilai
else if (kerja >= 21 && kerja <= 30){ false dan kondisi (kerja >= 11 && kerja <= 20)
bonus = gajih * 0.9; bernilai true
} Maka : Hitung bonus = gajih * 0.8
break;
Jika kondisi (kerja >= 0 && kerja <= 10) dan (kerja
>= 11 && kerja <= 20) bernilai false dan kondisi
(kerja >= 21 && kerja <= 30) bernilai true
Maka : Hitung bonus = gajih * 0.9

Break digunakan untuk menjalankan case berikutnya


jika case tidak bernilai true
case "IV": Jika konstanta IV sama dengan ekspresi (golongan)
if (kerja >= 0 && kerja <= 10){ yang mengikuti switch, dan
bonus = gajih * 0.8; Jika kondisi (kerja >= 0 && kerja <= 10) bernilai
} true
else if (kerja >= 11 && kerja <= 20){ Maka : Hitung bonus = gajih * 0.8
bonus = gajih * 0.9;
} Jika kondisi (kerja >= 0 && kerja <= 10) bernilai
else if (kerja >= 21 && kerja <= 30){ false dan kondisi (kerja >= 11 && kerja <= 20)
bonus = gajih * 1; bernilai true
} Maka : Hitung bonus = gajih * 0.9
break;
Jika kondisi (kerja >= 0 && kerja <= 10) dan (kerja
>= 11 && kerja <= 20) bernilai false dan kondisi
(kerja >= 21 && kerja <= 30) bernilai true
Maka : Hitung bonus = gajih * 1
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
default: Default merupakan statement dari switch yang
bonus = 0; dijalankan ketika semua kondisi dari case tidak
break; bernilai true, maka bonus = 0
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
}
System.out.println("Bonus : Rp. " + bonus); Menampilkan tulisan Bonus : Rp. beserta nilainya
pada output dengan menambahkan baris baru
}
}

e. Screenshot Program dan Output


Screenshot Program
Screenshot Output
6. Soal_No6

a. Uraian soal
Buat program memakai gabungan antara switch-case dan enum yang dapat menentukan
nama kitab suci beserta nabinya dari agama-agam besar, antara lain :

Agama Kitab Suci Nabi


Hindu Veda -
Budha Tripitaka Sidarta Gautama
Yahudi Taurat Musa
Katolik Injil Yesus
Kristen Injil Yesus
Islam Alquran Muhamad

b. Rancangan program

Output

Masukkan Nama Agama : Katolik


Kitab Suci : Injil
Nabi : Yesus

Proses

Menginput huruf Katolik bernama agama melalui


keyboard

case "Katolik":
kitabsuci = "Injil"
nabi = "Yesus"
break

Cetak "Kitab Suci : " + kitabsuci


Cetak "Nabi : " + nabi

Input

Deklarasi enum bernama Agama dengan objek Hindu,


Budha, Yahudi, Katolik, Kristen, Islam

Memesan memori bernama agama, kitabsuci, nabi


dengan tipe data String

Scanner input

Menampilkan tulisan Masukkan Nama Agama dan input


angka/nilai yang akan diinput sendiri oleh user
c. Algoritma memakai pseudocode informal (input, proses, output)

Deklarasi :
enum Agama {
Hindu, Budha, Yahudi, Katolik, Kristen, Islam
}
Input variabel agama, kitabsuci, nabi : String
Scanner input
Print ("Masukkan Nama Agama : ")
Input agama

Begin :
switch (agama)
case "Hindu":
kitabsuci = "Veda"
nabi = "-"
break
case "Budha":
kitabsuci = "Tripitaka"
nabi = "Sidarta Gautama"
break
case "Yahudi":
kitabsuci = "Taurat"
nabi = "Musa"
break
case "Katolik":
kitabsuci = "Injil"
nabi = "Yesus"
break
case "Kristen":
kitabsuci = "Injil"
nabi = "Yesus"
break
case "Islam":
kitabsuci = "Alquran"
nabi = "Muhamad"
break
default:
kitabsuci = "-"
nabi = "-"
cetak ("Kitab Suci : " + kitabsuci)
cetak ("Nabi : " + nabi)
d. Teks program memakai tabel berikut

Perintah Arti
import java.util.Scanner; Scanner merupakan kelas yang menyediakan fungsi-
fungsi untuk mengambil input dari keyboard. Agar
kita dapat menggunakan Scanner, kita perlu
mengimpornya ke dalam code import
java.util.Scanner
enum Agama { Deklarasi class enum Agama
Hindu, Budha, Yahudi, Katolik, Kristen, Islam; Hindu, Budha, Yahudi, Katolik, Kristen, Islam
adalah obyek dari class enum
}
public class Soal_No6 { Deklarasi class Soal_No6
public static void main(String [] args) { Deklarasi metode main

String agama, kitabsuci, nabi; Memesan tempat dengan tipe data String dengan
nama agama, kitabsuci, nabi
Scanner input = new Scanner (System.in); Membaca variable input agar bisa mengaktifkan
kemampuan input dari keyboard

System.out.print("Masukkan Nama Agama : Menampilkan tulisan Masukkan Nama Agama pada


"); output tanpa menambahkan baris baru
agama = input.next(); Perintah untuk membaca angka/nilai (dengan tipe
data String) yang diinput sendiri oleh user
switch (agama){ Agama merupakan variabel atau ekspresi yang akan
diuji
case "Hindu": Jika konstanta Hindu sama dengan ekspresi (agama)
kitabsuci = "Veda"; yang mengikuti switch maka kitabsuci = veda
nabi = "-"; nabi = “-“
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case "Budha": Jika konstanta Budha sama dengan ekspresi (agama)
kitabsuci = "Tripitaka"; yang mengikuti switch maka kitabsuci = Tripitaka
nabi = "Sidarta Gautama"; nabi = Sidarta Gautama
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case "Yahudi": Jika konstanta Yahudi sama dengan ekspresi (agama)
kitabsuci = "Taurat"; yang mengikuti switch maka kitabsuci = Taurat
nabi = "Musa"; nabi = Musa
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case "Katolik": Jika konstanta Katolik sama dengan ekspresi (agama)
kitabsuci = "Injil"; yang mengikuti switch maka kitabsuci = Injil
nabi = "Yesus"; nabi = Yesus
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case "Kristen": Jika konstanta Kristen sama dengan ekspresi (agama)
kitabsuci = "Injil"; yang mengikuti switch maka kitabsuci = Injil
nabi = "Yesus"; nabi = Yesus
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
case "Islam": Jika konstanta Islam sama dengan ekspresi (agama)
kitabsuci = "Alquran"; yang mengikuti switch maka kitabsuci = Alquran
nabi = "Muhamad"; nabi = Muhamad
break; Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
default: Default merupakan statement dari switch yang
kitabsuci = "-"; dijalankan ketika semua kondisi dari case tidak
nabi = "-"; bernilai true, maka kitabsuci = “-”
nabi = “-”
Break digunakan untuk menjalankan case berikutnya
jika case tidak bernilai true
}
System.out.println("Kitab Suci : " + Menampilkan tulisan Kitab Suci beserta nilainya
kitabsuci); pada output dengan menambahkan baris baru
System.out.println("Nabi : " + nabi); Menampilkan tulisan Nabi beserta nilainya pada
output dengan menambahkan baris baru
}
}

e. Screenshot Program dan Output


Screenshot Program
Screenshot Output

D. DAFTAR PUSTAKA

Java Programming, Switch-Case, http://javaprogramming26.blogspot.com/2009/09/switch-


case.html, diakses pada 6 Oktober 2021 15:21 WIB.

Modul VI “Percabangan Menggunakan Switch”

Anda mungkin juga menyukai