PERTEMUAN5 SWITCH Recent site activity Chaky_182 PERTEMUAN5 SWITCH

ALGORITMA DAN
PEMROGRAMAN

SELEKSI-SWITCH

1

SINTAKS DASAR
switch (switch-expression)
{
case value1:
statement(s)1;
break;
case value2:
statement(s)2;
break;

case valueN:
statement(s)N;
break;
default:

statement(s)-for-default;
}
Modul 1 - Sejarah dan struktur
java

2

FLOWCHART

Modul 1 - Sejarah dan struktur
java

3

KETERANGAN
Switch-expression harus ditulis dalam tanda
kurung (…)
 Value1, …, dan valueN harus memiliki tipe
data yang sama dengan switch-expression
dan tidak dapat berupa expression seperti

1+x
 Jika case ditemukan, maka eksekusi dimulai
dari case tersebut sampai ditemukan break


Modul 1 - Sejarah dan struktur
java

4

KETERANGAN
 Keyword

break adalah optional
 Case default adalah optional, dieksekusi
jika tidak ada case yang memenuhi
 Case dicek secara berurutan
 Lebih baik case diurutkan dan default
diletakkan di case terakhir
 Switch-case tanpa break menyebabkan

case berikutnya dieksekusi
Modul 1 - Sejarah dan struktur
java

5

FLOWCHART TANPA BREAK

Modul 1 - Sejarah dan struktur
java

6

CONTOH
Bila ingin mengetahui kode bulan dan hari sebagai
berikut :
Bulan : 1, 3, 5, 7, 8, 10, 12
jumlah hari 31 hari
Bulan : 4, 6, 9, 11
jumlah hari 30 hari

Bulan : 2
jumlah hari 28 atau 29
Dan jika selain angka-angka tersebut dimasukan
muncul komentar “salah memasuki kode bulan”
Modul 1 - Sejarah dan struktur
java

7

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


Definiskan/masukan variabel kode_bulan
jika kode_bulan = 1, 3, 5, 7, 8, 10, 12
tampilan jumlah hari = 31
jika kode_bulan = 4, 6, 9, 11
tampilan jumlah hari = 30
jika kode_bulan = 2
tampilan jumlah hari = 28 atau 29
jika kode_bulan yang dimasukan salah
tampilkan komentar “Salah memasukan kode bulan”
Modul 1 - Sejarah dan struktur
java

8

ACTIVITY DIAGRAM

Modul 1 - Sejarah dan struktur
java

9


PROGRAM
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

import java.util.Scanner;
public class CaseBulan
{
public static void main(String args[])

{
Scanner masuk = new Scanner(System.in);
int kode_bulan;
System.out.print("Masukkan kode bulan : ");
kode_bulan=masuk.nextInt();
switch (kode_bulan) {
case 1:case 3:case 5: case 7: case 8:case 10:case 12:
System.out.println("Jumlah hari = 31 hari");
break;

Modul 1 - Sejarah dan struktur
java

10

LANJUTAN PROGRAM
14.
15.
16.
17.

18.
19.
20.
21.
22.
23.
24.
25.

case 4:case 6: case 9: case 11:
System.out.println("Jumlah hari = 30 hari");
break;
case 2:
System.out.println("Jumlah hari = 28 atau 29 hari");
break;
default:
System.out.println("Salah masukan kode bulan");
break;
}
}

}

Modul 1 - Sejarah dan struktur
java

11

OUTPUT:
 Masukan

kode bulan : 1
 Jumlah hari = 31 hari

Modul 1 - Sejarah dan struktur
java

12

KETERANGAN:



Baris 9 adalah perintah meminta masukan ke
variabel kode_bulan. Nilai itu kemudian dites pada
perintah switch. Baris 10 – 23 adalah perintah
switch-nya. Baris 11 –13 akan dikerjakan jika
masukan untuk kode_bulan adalah 1, 3, 5, 7, 8, 10,
12. Sedangkan baris 13 - 16 akan dikerjakan untuk
kode_bulan 4, 6, 9, 11. Dan baris 17 –19 dikerjakan
untuk kode_bulan 2. Jika yang dimasukkan selain
nilai-nilai diatas, maka akan dikerjakan baris 20 – 22.

Modul 1 - Sejarah dan struktur
java

13

KETERANGAN:


Yang perlu diperhatikan dalam perintah switch ini

adalah bahwa, setelah masuk ke sebuah pilihan (case
) tertentu, maka pernyataan akan keluar dari case jika
sudah menjumpai pernyataan break. Sehingga, jika
kita tidak menjumpai perintah pernyataan break, maka
akan dikerjakan semua perintah sampai ketemu break
atau kalau tidak ada, sampai pernyataan switch
berakhir. Misalnya program diatas baris ke 13
dihilangkan. Dan dijalankan dengan masukan yang
sama, maka hasilnya adalah

Modul 1 - Sejarah dan struktur
java

14

OUTPUT:
 Masukkan

kode bulan : 1
 Jumlah hari = 31 hari
 Jumlah hari = 30 hari

Modul 1 - Sejarah dan struktur
java

15

CATATAN:
Semua

program yang dibuat
dengan pernyataan switch dapat
diubah menggunakan pernyataan
if, tetapi tidak sebaliknya, karena
switch tidak menerima input
berupa floating point
Modul 1 - Sejarah dan struktur
java

16

Dari kasus kode bulan diubah
menggunakan if
import java.util.Scanner;
public class IfBulan
{
public static void main(String args[])
{
Scanner masuk = new Scanner(System.in);
int kode_bulan;
System.out.print("Masukkan kode bulan : ");
kode_bulan=masuk.nextInt();
if ((kode_bulan == 1)||(kode_bulan==3)||(kode_bulan==5)||
(kode_bulan==7) || (kode_bulan == 8)||
(kode_bulan == 10) || (kode_bulan == 12))
System.out.println("Jumlah hari = 30 hari");


Modul 1 - Sejarah dan struktur
java

17

Lanjutan
else if
((kode_bulan==4)||(kode_bulan==6)||
(kode_bulan==9)|| (kode_bulan == 11))
System.out.println("Jumlah hari = 31 hari");
else if (kode_bulan == 2)
System.out.println("Jumlah hari = 28 atau 29 hari");
else
System.out.println("Salah masukan kode bulan");
}
}

Modul 1 - Sejarah dan struktur
java

18

OUTPUT:
Masukan kode bulan : 1
 Jumlah hari = 31 hari


Masukkan kode bulan : 2
 Jumlah hari = 28 atau 29 hari


Masukkan kode bulan : 13
 Salah masukan kode bulan


Modul 1 - Sejarah dan struktur
java

19

CONTOH:
Kasus jurusan yang ada di Perguruan Tinggi
dengan ketentuan :
Pilih 1 jurusan MI/D3
Pilih 2 jurusan TK/D3
Pilih 3 jurusan KA/D3
Pilih 4 jurusan TI/S1
Pilih 5 jurusan SI/S1
Jika yang dipilih selain (1, 2, 3, 4, 5) beri
komentar “Salah masukan pilihan”
Modul 1 - Sejarah dan struktur
java

20

ALGORITMA
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

Definisikan/masukan variabel pilihan
jika pil = 1
tampilkan(jurusan MI/D3)
jika pil = 2
tampilkan (jurusan TK/D3)
jika pil = 3
tampilkan(jurusan KA/D3)
jika pil = 4
tampilkan (jurusan TI/S1)
jika pil = 5
tampilkan (jurusan SI/S1)
jika bukan beri komentar “Salah masukan pilihan”
Modul 1 - Sejarah dan struktur
java

21

ACTIVITY DIAGRAM

Modul 1 - Sejarah dan struktur
java

22

IMPLEMENTASI PROGRAM
1.
2.
3.
4.
5.
6.
7.
8.
9.

import java.util.Scanner;
public class CaseJurusan
{
public static void main(String args[])
{
Scanner masuk = new Scanner(System.in);
int pil;
System.out.print("Masukkan pilihan : ");
pil = masuk.nextInt();
Modul 1 - Sejarah dan struktur
java

23

LANJUTAN
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.

switch (pil) {
case 1:System.out.println("Jurusan MI/D3");break;
case 2:System.out.println("Jurusan TK/D3");break;
case 3:System.out.println("Jurusan KA/D3");break;
case 4:System.out.println("Jurusan TI/S1");break;
case 5:System.out.println("Jurusan SI/S1");break;
default: System.out.println("Salah masukkan pilihan");
break;
}
}
}
Modul 1 - Sejarah dan struktur
java

24

OUTPUT:
 Masukan

Pilihan : 1
 Jurusan MI/D3
 Masukan

Pilihan : 3
 Jurusan KA/D3

Modul 1 - Sejarah dan struktur
java

25

LATIHAN:
 Ubahlah

kasus jurusan pada Perguruan
Tinggi tersebut menggunakan If

Modul 1 - Sejarah dan struktur
java

26

JAWABAN:
1.
2.
3.
4.
5.
6.
7.
8.
9.

import java.util.Scanner;
public class IfJurusan
{
public static void main(String args[])
{
Scanner masuk = new Scanner(System.in);
int pil;
System.out.print("Masukkan pilihan : ");
pil = masuk.nextInt();
Modul 1 - Sejarah dan struktur
java

27

LANJUTAN
10.
11.
12.
13.
14.
15.
16.
17.

if (pil==1) System.out.println("Jurusan MI/D3");
else if (pil==2)System.out.println("Jurusan TK/D3");
else if (pil==3) System.out.println("Jurusan KA/D3");
else if (pil==4) System.out.println("Jurusan TI/S1");
else if (pil==5) System.out.println("Jurusan SI/S1");
else System.out.println("Salah masukkan pilihan");
}
}

Modul 1 - Sejarah dan struktur
java

28

OUTPUT:
 Masukan

Pilihan : 1
 Jurusan MI/D3
 Masukan

Pilihan : 3
 Jurusan KA/D3

Modul 1 - Sejarah dan struktur
java

29

CONTOH:

Modul 1 - Sejarah dan struktur
java

30

OUTPUT:

Modul 1 - Sejarah dan struktur
java

31

CONTOH:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.

public class Grade {
public static void main( String[] args )
{
int grade = 92;
switch(grade){
case 100:
System.out.println( "Excellent!" );
break;
case 90:
System.out.println(“Bagus!" );
break;
case 80:
System.out.println(“Belajar lagi!" );
break;
default:
System.out.println(“Maaf, Anda gagal.");
}
}
}

Modul 1 - Sejarah dan struktur
java

32

OUTPUT:

Modul 1 - Sejarah dan struktur
java

33

CONTOH:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

switch (N)
case 1:
System.out.println("Angka tersebut bernilai 1");
break;
case 2: case 3: case 4: case 5:
System.out.println("Angka tersebut bernilai 2, 3, 4, atau 5");
break;
case 6: case 7: case 8:
System.out.println("Angka tersebut bernilai 6, 7, atau 8");
break;
default:
System.out.println("Angka tersebut tidak bernilai 1 - 8"); }

Modul 1 - Sejarah dan struktur
java

34

MENGGUNAKAN STRING DAN
SWITCH PADA JAVA
Java tidak bisa membandingkan tipe data String pada
perintah switch . Misalnya cuplikan program yang tidak
bisa digunakan :
String a = "satu";
switch (a) {
case "satu" : System.out.println("1"); break;
case "dua" : System.out.println("2"); break;
case "tiga" : System.out.println("3"); break;
}

35



Solusi untuk mengatasi masalah di atas adalah dengan menggunakan enum
seperti contoh program di bawah ini :
public class switchString {
public enum warnaLampu {
merah, kuning, hijau, salah;
public static warnaLampu nyala(String str) {
try {
return valueOf(str);
} catch (Exception ex) {
return salah;
}
}
}

Modul 1 - Sejarah dan struktur
java

36



/** Creates a new instance of switchString */
public static void main(String[] args) {
String warna = "biru";
switch (warnaLampu.nyala(warna)) {
case merah:
System.out.println("stop"); break;
case kuning:
System.out.println("pelan"); break;
case hijau:
System.out.println("jalan"); break;
default :
System.out.println("ngaco");
}
}
}
Modul 1 - Sejarah dan struktur
java

37

CONTOH






Kita akan membuat program untuk main suit. Permainan ini
terdiri dari dua pemain. Dalam permainan real, biasanya dua
pemain mengadu suit dengan saling menunjukkan jari. Hanya
3 jari yang boleh dipakai: jempol, telunjuk, dan kelingking.
Peraturannya : Jempol menang lawan Telunjuk, Telunjuk
menang lawan Kelingking, dan Kelingking menang lawan
Jempol.
Dalam program ini, komputer adalah pemain pertama,
sedangkan user adalah pemain kedua. Komputer akan
menggunakan perintah random() untuk menghitung salah satu
dari 3 pilihan. 0 berarti Jempol, 1 berarti Telunjuk, dan 2 berarti
Kelingking.

Modul 1 - Sejarah dan struktur
java

38

KETERANGAN
User akan diberikan pertanyaan untuk
memasukkan J untuk Jempol, T untuk Telunjuk
dan K untuk Kelingking. Kemudian dengan
pernyataan switch, J, T, dan K akan diubah
menjadi angka 0, 1, dan 2 seperti pada
komputer.
 Hasil perhitungan komputer dan hasil input dari
user akan dibandingkan, kemudian hasilnya
siapa yang menang akan ditampilkan di layar.


Modul 1 - Sejarah dan struktur
java

39

JAWABAN
 http://java.lyracc.com/belajar/java-untuk-

pemula/contoh-program-switch-case

Modul 1 - Sejarah dan struktur
java

40

CONTOH

Modul 1 - Sejarah dan struktur
java

41

OUTPUT:

Modul 1 - Sejarah dan struktur
java

42

TAMBAHAN
 if(kata1.equals(kata2)==true)

dapat diganti menjadi
if(kata1.equals(kata2))
karena if akan menjalankan blok jika
bernilai true

Modul 1 - Sejarah dan struktur
java

43

KESALAHAN-KESALAHAN
Kesalahan yang paling sering dilakukan:
memberikan semicolon (;) setelah if
 Contoh yang salah:
If (radius >= 0) ;
{

}
 Kesalahan yang sering terjadi dalam switch-case
adalah lupa memberikan break


Modul 1 - Sejarah dan struktur
java

44