Oleh
Nama : Marta Yulianti
NIM : 215314154
B. Dasar Teori
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.
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.
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;
}
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
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.
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
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 :
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
switch (month)
case 8: monthString = "August"
break
Cetak (monthString)
Input
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)
Perintah Arti
public class Soal_No1 { Deklarasi class Soal_No1
public static void main(String [] args) { Deklarasi metode main
2. Soal_No2
a. Uraian soal
Ubahlah program di atas sehingga data bulan (month) diperoleh lewat keyboard
b. Rancangan program
Output
Proses
Scanner input
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
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
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
Proses
switch (bulan)
case 1:
Cetak “Jumlah Hari adalah 31 hari”
break
Input
Scanner input
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
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
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
case "L":
harga = 50000 * jumlahkaos
break
Cetak "Total Harga : Rp." + harga
Input
Scanner input
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)
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
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
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)
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
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 :
b. Rancangan program
Output
Proses
case "Katolik":
kitabsuci = "Injil"
nabi = "Yesus"
break
Input
Scanner input
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
D. DAFTAR PUSTAKA