Percabangan Switch
Pernyataan switch(JAVA) when(kotlin) adalah pernyataan pilihan ganda. Setelah memberikan pilihan dan ekspresi yang relevan untuk setiap pilihan dan menemukan pilihan yang cocok dengan ekspresi dan mengeksekusinya.
Pernyatan IF vs SWITCH
Mungkin sekilas kedua pernyataan tersebut hampir sama, namun ada perbedaan diantra keduanya yaiut:
NO | Basic Terms | IF | SWITCH | WHEN |
---|---|---|---|
1 | Pengujian Ekspresi Bersyarat | Pernyataan if-else dapat menguji ekspresi berdasarkan rentang nilai atau kondisi | Pernyataan switch menguji ekspresi hanya berdasarkan satu integer, nilai enumerated, atau objek string. |
2 | Ideal digunakan pada case tertentu | cabang bersyarat if-else bagus untuk kondisi variabel yang menghasilkan Boolean. | cabang bersyarat if-else bagus untuk kondisi variabel yang menghasilkan Boolean. |
3 | Kondisi & ekspresi | Memiliki kondisi yang berbeda adalah mungkin. | Kita hanya dapat memiliki satu ekspresi |
Mari Kita mulai Membuat Projek
Buat projek baru. Di halaman Activity_Main.xml. Ganti Layout menjadi LinearLayout. Silahkan tambahkan komponen berikut:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="PERNYATAAN SWITCH"
android:textSize="28dp"
android:textAlignment="center"
android:background="@color/purple_500"
android:textColor="@color/white"
android:padding="15dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="KODE"
android:textSize="18dp"/>
<RadioGroup
android:id="@+id/rKode"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/rKode1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="B001" />
<RadioButton
android:id="@+id/rKode2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="B002" />
</RadioGroup>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="CEK"
android:onClick="cek"/>
<TextView
android:id="@+id/lblKet"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="KET :"
android:textSize="20dp"/>
</LinearLayout>
Perhatikan setiap komponen yang memiliki id. Sebab id ini akan dihubungkan dengan program nantinya.
Buka halaman MainActivity.java. tambahkan method cek untuk memberi nilai action terhadap button. Method ditambahkan dibawah method utama
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void cek(View view) {
}
Tampung id RadionButton dan TextView. Variabel ditulis didalam method cek:
public void cek(View view) {
RadioGroup Kode = findViewById(R.id.rKode);
TextView Ket = findViewById(R.id.lblKet);
}
Buat variable untuk menampung nilai Chekc radio dan variable untuk Ket JAVA:
public void cek(View view) {
RadioGroup Kode = findViewById(R.id.rKode);
TextView Ket = findViewById(R.id.lblKet);
int kode = Kode.getCheckedRadioButtonId();
String ket;
}
Sedamglam di Kotlin:
public void cek(View view) {
val Kode = findViewById<RadioGroup>(R.id.rKode)val Ket = findViewById<TextView>(R.id.lblKet)()int kode = Kode.getCheckedRadioButtonId
String ket
}
Buatlah logika pernyataan Swicth(Kode) dibawah variable (JAVA):
switch (kode) {
case R.id.rKode1:
ket = "Minuman";
break;
case R.id.rKode2:
ket = "Makanan";
break;
default:
ket = "Tampa keterangan";
break;
}
Sedangkan Kotlin:
when(kode) {
R.id.rKode1-> ket = "Minuman"
R.id.rKode2->ket = "Makanan"
else-> ket = "Tampa keterangan"
}
Case yang memiliki nilai R.id.rKode1 atau R.id.rKode2 merupakan id dari RadioButton yang dibuat di Activity_Main.xml tadi.
Terakhir buatlah output:
Ket.setText("Keterangan:" + ket);
program Lengkap untuk JAVA:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void cek(View view) {
RadioGroup Kode = findViewById(R.id.rKode);
TextView Ket = findViewById(R.id.lblKet);
int kode = Kode.getCheckedRadioButtonId();
String ket;
switch (kode) {
case R.id.rKode1:
ket = "Minuman";
break;
case R.id.rKode2:
ket = "Makanan";
break;
default:
ket = "Tampa keterangan";
break;
}
Ket.setText("Keterangan:" + ket);
}
}
KOTLIN
public void cek(View view) {
val Kode = findViewById<RadioGroup>(R.id.rKode)val Ket = findViewById<TextView>(R.id.lblKet)()int kode = Kode.getCheckedRadioButtonIdString ket
when(kode) {R.id.rKode1-> ket = "Minuman"}
R.id.rKode2->ket = "Makanan"
else-> ket = "Tampa keterangan"
Ket.setText("Keterangan:" + ket)
}
Penutup
Demikianlah sekilat tentang Swicth Case. Silahkan dikembangkan untuk membuat kasus yang lain. Terimakasih..