Last Updated on 6 years by Mas Herdi
Halo semuanya, melanjutkan tutorial saya tentang belajar Kotlin, jika sebelumnya kita telah coba belajar membuat aplikasi Hello World Kotlin, inisialisasi View menggunakan Kotlin dan konsep activity-intent menggunakan Kotlin di Android. Kali ini kita akan membahas bagaimana menggunakan conditional operator (switch-case, if-then) pada Kotlin di Android.
Conditional Operator pada Kotlin
Pada Kotlin ada dua jenis conditional operator yang masuk ke dalam kategori control flow. Yaitu :
- if…then (if then biasa seperti di Java)
- when (pengganti switch…case, operator paling fleksibel)
Pre-requisites
Oke sebelum kita memulai coding, ada baiknya kalian membaca dahulu tutorial di bawah ini :
- Membuat Project Hello World di Kotlin Android
- Inisialisasi Views di Android Menggunakan Kotlin
- Radio Button di Android
Setalah itu, kalian bisa replace file activity_main.xml pada project Kotlin Android kalian dengan code di bawah ini :
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Select Gender : " /> <RadioGroup android:id="@+id/rg_gender" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/rb_male" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="Male" /> <RadioButton android:id="@+id/rb_female" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Female" /> </RadioGroup> <Button android:id="@+id/bt_submit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Submit" /> </LinearLayout>
Jika sudah untuk class MainActivity.java nya kalian bisa replace dengan kode di bawah ini :
MainActivity.java
package co.twoh.kotlin.twohkotlin import android.content.Context import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.widget.Button import android.widget.RadioGroup import android.widget.Toast class MainActivity : AppCompatActivity() { private lateinit var rgGender : RadioGroup private lateinit var btSubmit : Button override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) btSubmit = findViewById(R.id.bt_submit) rgGender = findViewById(R.id.rg_gender) btSubmit.setOnClickListener{ val selectedId : Int = rgGender.checkedRadioButtonId if(selectedId == R.id.rb_male){ Toast.makeText(this, "Selected Male", Toast.LENGTH_SHORT).show() }else{ Toast.makeText(this, "Selected Female", Toast.LENGTH_SHORT).show() } when(selectedId){ R.id.rb_male -> Toast.makeText(this, "Selected Male", Toast.LENGTH_SHORT).show() R.id.rb_female -> Toast.makeText(this, "Selected Female", Toast.LENGTH_SHORT).show() } } } }
Kode di atas pada intinya hanya berisi dua buah RadioButton berisi pilihan gender/jenis kelamin. Dan ketika tombol diklik maka gender yang kita pilih akan ditampilkan pada Toast.
Dan jika dilihat, kita menggunakan dua buah conditional operator di atas, yaitu :
- if-then
if(selectedId == R.id.rb_male){ Toast.makeText(this, "Selected Male", Toast.LENGTH_SHORT).show() }else{ Toast.makeText(this, "Selected Female", Toast.LENGTH_SHORT).show() }
- when
when(selectedId){ R.id.rb_male -> Toast.makeText(this, "Selected Male", Toast.LENGTH_SHORT).show() R.id.rb_female -> Toast.makeText(this, "Selected Female", Toast.LENGTH_SHORT).show() }
Pada code di atas kita menggunakan when yang memeriksa value dari integer id yang diinputkan. Dalam prakteknya ada beberapa jenis when operator di Kotlin, yaitu :
- When yang menandakan suatu fungsi sukses diekskusi atau tidak
when (x) { parseInt(s) -> print("s encodes x") else -> print("s does not encode x") }
- When yang mengecek value dalam range
when (x) { in 1..10 -> print("x is in the range") in validNumbers -> print("x is valid") !in 10..20 -> print("x is outside the range") else -> print("none of the above") }
- When yang mengecek tipe data dari suatu value
when(x) { is String -> x.startsWith("prefix") else -> false }
- When tipe standar yang mengecek value seperti contoh kodingan di atas
Lebih lengkapnya bisa baca di sini.
That’s all. Jika aplikasi sudah selesai sekarang bisa kita cek demonya.
Demo
Bisa dilihat pada gambar di atas, ketika kita memilih Female dan klik Submit, maka value dari Toast akan menyesuaikan dengan apa yang kita pilih.
That’s all ! Semoga membantu. Jangan lupa untuk clone project nya sebagai Android Studio module di GitHub saya, dengan terlebih dahulu follow dan star project tersebut. Silahkan bertanya di bagian komentar jika ada yang kurang jelas.
Hi,
I’ve reached out several times but haven’t heard back, which tells me one of three things:
1. You’re interested in giving link back, but haven’t had a chance to get back to me yet.
2. You’re not interested and want me to stop emailing.
3. You’ve fallen and can’t get up – in that case let me know and I’ll call 911.
Can you please reply with 1, 2 or 3? I don’t want to be a bother.
==================== Original message =====================
Hi…ha just kidding 🙂
Hi
You probably don’t remember me..mainly because we’ve never met. i’m Alex, an Editor at Guru99.
^ This is me.
While this email is going to be me asking for a backlink, i’m doing this with a twist…
I loved reading at your https://twoh.co/2018/08/05/tutorial-belajar-if-then-menggunakan-kotlin-di-android/. Eventually i noticed that you shared https://kotlinlang.org/docs/reference/control-flow.html.
And i’d love to know if you drop us a mention on it for our https://www.guru99.com/kotlin-tutorial.html
Why is our article great? Good question..
Our article contains everything readers need to know. I hope your audience finds this a valuable-add on 🙂
What’s in it for me? You’re 2/2!
I can help you with any of the following (pick wisely):
• Social sharing of your article to our 50k social subscribers
• You will update the content and we all know Google likes that
• You will make me extremely happy
Above all, hope you’re staying positive and testing negative.
regards,
Alex.
PS: I am real a person… here is a number to contact me +1 302 308 5151