Masukkan Password
16 The Complete Kotlin Course #15 - String Equality - Kotlin Tutorials for Beginners
Di lesson ini kita masuk ke topik String Equality, yaitu bagaimana Kotlin membandingkan dua buah String. Ini penting karena sebelumnya kita sudah belajar bahwa operator perbandingan tidak hanya bisa digunakan pada angka, tetapi juga bisa digunakan pada teks.
Ada satu hal yang sangat penting di awal:
Di Kotlin, kita bisa membandingkan isi dua
Stringmenggunakan==.
Dan ini berbeda dari cara Java yang sering membingungkan pemula.
1. Review materi sebelumnya
Sebelumnya kita sudah belajar comparison operators:
== sama dengan
!= tidak sama dengan
< lebih kecil
<= lebih kecil atau sama
> lebih besar
>= lebih besar atau sama
Contoh dengan angka:
val age = 20
val result = age >= 18
Kotlin mengevaluasi:
20 >= 18
↓
true
Jadi result bertipe Boolean.
Sekarang pertanyaannya:
Apakah operator tersebut juga bisa digunakan untuk
String?
Jawabannya: bisa.
2. Membandingkan String dengan ==
Misalnya:
val x = "Kotlin"
val y = "Java"
val result = x == y
Kita bisa membaca:
“Apakah isi
xsama dengan isiy?”
Nilai x:
"Kotlin"
Nilai y:
"Java"
Jelas berbeda.
Maka:
"Kotlin" == "Java"
↓
false
Sehingga:
println(result)
menghasilkan:
false
3. == menghasilkan Boolean
Ini sama seperti ketika kita membandingkan angka.
Contoh angka:
val result = 10 == 10
Hasil:
true
Contoh String:
val result = "Kotlin" == "Kotlin"
Hasil:
true
Jadi pola dasarnya:
String == String
↓
Boolean
Misalnya:
val answer = "Kotlin"
val correctAnswer = "Kotlin"
val isCorrect = answer == correctAnswer
Maka:
"Kotlin" == "Kotlin"
↓
true
Ini sangat berguna untuk membuat quiz, validasi input, login, pencarian, dan sebagainya.
4. Contoh quiz
Ini sebenarnya contoh yang diberikan subtitle.
Misalnya kita membuat quiz:
“Bahasa pemrograman yang sedang kita pelajari adalah apa?”
Jawaban yang benar:
val correctAnswer = "Kotlin"
Jawaban dari pemain:
val playerAnswer = "Kotlin"
Kemudian:
val isCorrect = playerAnswer == correctAnswer
Kotlin akan melakukan:
"Kotlin" == "Kotlin"
↓
true
Jadi:
isCorrect
berisi:
true
Nanti Boolean ini bisa kita gunakan untuk control flow:
if (isCorrect) {
println("Correct!")
}
Jadi kita mulai melihat hubungan antara materi-materi sebelumnya:
String
↓
Comparison ==
↓
Boolean
↓
if
↓
Control Flow
5. Bagaimana kalau jawabannya salah?
Misalnya:
val correctAnswer = "Kotlin"
val playerAnswer = "Java"
val isCorrect = playerAnswer == correctAnswer
Evaluasinya:
"Java" == "Kotlin"
↓
false
Jadi:
isCorrect
berisi:
false
Kemudian:
if (isCorrect) {
println("Correct!")
} else {
println("Wrong!")
}
Karena isCorrect adalah false, maka:
Wrong!
Ini adalah contoh sederhana bagaimana String comparison digunakan dalam control flow.
6. != juga bisa digunakan pada String
Kalau == berarti:
Apakah sama?
Maka != berarti:
Apakah berbeda?
Contoh:
val answer = "Java"
val correctAnswer = "Kotlin"
val isWrong = answer != correctAnswer
Evaluasi:
"Java" != "Kotlin"
↓
true
Karena memang berbeda.
Contoh lain:
val result = "Kotlin" != "Kotlin"
Hasil:
false
Karena kedua String sama.
7. String juga bisa dibandingkan dengan <, >, dan lainnya
Ini bagian subtitle yang cukup menarik.
Kotlin juga memungkinkan perbandingan seperti:
"PHP" < "Java"
Tetapi jangan membayangkannya sebagai panjang String.
Maksudnya adalah Kotlin membandingkan urutan String berdasarkan urutan leksikografis, yang secara sederhana bisa kamu pahami sebagai urutan alfabet untuk contoh-contoh sederhana.
8. Contoh "PHP" < "Java"
Misalnya:
val result = "PHP" < "Java"
Kita bertanya:
Apakah
"PHP"berada sebelum"Java"dalam urutan perbandingan String?
Bandingkan karakter pertama:
P
J
Secara urutan alfabet:
J
...
P
Jadi J berada sebelum P.
Maka:
"PHP" < "Java"
↓
false
9. Contoh yang lebih mudah: "Apple" < "Banana"
val result = "Apple" < "Banana"
Bandingkan huruf pertama:
A
B
A berada sebelum B.
Maka:
"Apple" < "Banana"
↓
true
10. Bagaimana perbandingan String bekerja?
Untuk pemula, bayangkan Kotlin membandingkan String dari kiri ke kanan.
Contoh:
"Apple"
"Banana"
Karakter pertama:
A vs B
Karena sudah berbeda, perbandingan bisa ditentukan.
A < B
↓
true
Jadi:
"Apple" < "Banana"
↓
true
11. Bagaimana kalau huruf pertama sama?
Misalnya:
"Apple"
"April"
Keduanya dimulai dengan:
A
Maka perbandingan lanjut ke karakter berikutnya:
p
p
Masih sama.
Lanjut:
p
r
Nah, di sini berbeda.
Karena p berada sebelum r, maka:
"Apple" < "April"
bernilai:
true
Jadi prinsip sederhananya:
Bandingkan dari kiri ke kanan sampai menemukan karakter yang berbeda.
12. Bukan berarti < melihat jumlah karakter
Ini kesalahan pemahaman yang cukup mudah terjadi.
Misalnya:
"Zoo" > "Apple"
Ini bukan karena "Zoo" mempunyai lebih banyak karakter.
Keduanya sama-sama memiliki 3–5? Wait, let’s use simpler.
"Cat" > "Apple"
"Cat" memiliki 3 karakter, "Apple" memiliki 5 karakter.
Tetapi:
"Cat" > "Apple"
tetap bisa bernilai true, karena yang menentukan adalah urutan perbandingan String, bukan jumlah karakternya.
Huruf pertama:
C vs A
C berada setelah A.
Jadi:
"Cat" > "Apple"
↓
true
13. Hati-hati dengan huruf besar dan kecil
String comparison juga dipengaruhi oleh karakter yang dibandingkan.
Misalnya:
"apple" == "Apple"
Hasilnya:
false
Karena:
a
dan:
A
adalah karakter yang berbeda.
Jadi == pada String secara default bersifat case-sensitive.
Artinya:
"Kotlin"
berbeda dari:
"kotlin"
dan:
"KOTLIN"
14. Contoh case-sensitive
val answer = "kotlin"
val correctAnswer = "Kotlin"
println(answer == correctAnswer)
Hasil:
false
Walaupun bagi manusia mungkin kita menganggap jawabannya sama, Kotlin melihat:
"kotlin"
"Kotlin"
↑
berbeda
Karena k dan K berbeda.
Nanti ada cara untuk melakukan perbandingan tanpa memperhatikan huruf besar/kecil, tetapi itu akan masuk ke materi String functions.
15. Bagian Java yang disebut subtitle
Subtitle mengatakan bahwa di Java kita menggunakan:
.equals()
Ini perlu sedikit diluruskan.
Di Java, untuk membandingkan isi String biasanya digunakan:
str1.equals(str2)
bukan:
str1 == str2
Karena == pada object/reference di Java memiliki semantik yang berbeda.
Sedangkan di Kotlin, kita biasanya cukup menggunakan:
str1 == str2
Kotlin membuat perbandingan equality menjadi lebih sederhana dan aman untuk penggunaan umum.
Contoh Kotlin:
val a = "Kotlin"
val b = "Kotlin"
println(a == b)
Hasil:
true
16. Jangan menyamakan = dan ==
Ini masih sangat penting.
=
Untuk memberikan/mengubah nilai.
var name = "Andi"
name = "Budi"
Artinya:
Simpan
"Budi"ke dalamname.
==
Untuk membandingkan.
val result = name == "Budi"
Artinya:
Apakah
namesama dengan"Budi"?
Hasilnya Boolean:
true
Jadi:
= → assignment
== → comparison
17. String comparison + logical operator
Sekarang kita gabungkan dengan lesson sebelumnya.
Misalnya:
val username = "Andi"
val password = "12345"
val validUsername = username == "Andi"
val validPassword = password == "12345"
val isValid = validUsername && validPassword
Evaluasinya:
username == "Andi"
↓
true
dan:
password == "12345"
↓
true
Kemudian:
true && true
↓
true
Jadi:
isValid
berisi true.
Ini contoh nyata bagaimana materi sebelumnya mulai digunakan bersama-sama.
18. Contoh kalau password salah
val username = "Andi"
val password = "wrong"
val validUsername = username == "Andi"
val validPassword = password == "12345"
val isValid = validUsername && validPassword
Evaluasi:
"Andi" == "Andi"
↓
true
Tetapi:
"wrong" == "12345"
↓
false
Maka:
true && false
↓
false
Jadi login tidak valid.
19. String equality sangat sering digunakan
Dalam program nyata, kita sering membandingkan String.
Misalnya:
Quiz
answer == "Kotlin"
Username
username == "admin"
Command
command == "start"
Status
status == "success"
Validasi
email == enteredEmail
Jadi jangan menganggap String comparison hanya sebagai contoh sederhana di course. Ini akan sering kamu gunakan.
20. Hubungkan semua materi yang sudah dipelajari
Sekarang kita sudah mempunyai beberapa lapisan konsep.
Layer 1 — Data
val age = 20
val name = "Andi"
Layer 2 — Comparison
age >= 18
name == "Andi"
Layer 3 — Boolean
Hasil comparison:
true
false
Layer 4 — Logical operator
age >= 18 && name == "Andi"
Layer 5 — Control flow
if (age >= 18 && name == "Andi") {
println("Allowed")
}
Jadi sebenarnya kita sedang membangun fondasi untuk membuat program yang bisa mengambil keputusan.
21. Diagram mental
Coba simpan pola ini:
DATA
↓
┌────────┴────────┐
↓ ↓
String Number
↓ ↓
== >=
↓ ↓
Boolean Boolean
└────────┬────────┘
↓
&&
↓
Boolean
↓
if
↓
Program mengambil
keputusan
Ini adalah salah satu pola terpenting dalam control flow.
22. Yang perlu diluruskan dari subtitle
Ada beberapa bagian subtitle yang sebaiknya kamu pahami dengan lebih tepat.
① “String equality” bukan hanya ==
== memang sangat penting untuk equality:
"a" == "a"
Tetapi ada juga:
"a" != "b"
untuk mengecek ketidaksamaan.
② < dan > pada String bukan “lebih panjang”
Ketika kita menulis:
"Apple" < "Banana"
yang dibandingkan adalah urutan String secara leksikografis, bukan jumlah karakter.
Jadi jangan berpikir:
< = lebih pendek
> = lebih panjang
Itu tidak benar untuk String.
③ Perbandingan String sensitif terhadap huruf besar/kecil
"Kotlin" == "kotlin"
hasilnya:
false
Karena K dan k berbeda.
④ Java dan Kotlin berbeda dalam equality
Di Java, untuk membandingkan isi String umumnya:
a.equals(b)
Sedangkan Kotlin:
a == b
lebih sederhana untuk equality biasa.
23. Contoh program lengkap
Berikut contoh kecil yang menggabungkan semua yang sudah kita pelajari:
fun main() {
val correctAnswer = "Kotlin"
val playerAnswer = "Kotlin"
val isCorrect = playerAnswer == correctAnswer
println("Correct answer: $correctAnswer")
println("Your answer: $playerAnswer")
println("Is your answer correct? $isCorrect")
if (isCorrect) {
println("Congratulations!")
} else {
println("Wrong answer!")
}
}
Alurnya:
correctAnswer = "Kotlin"
playerAnswer = "Kotlin"
↓
playerAnswer == correctAnswer
↓
true
↓
isCorrect
↓
if
↓
"Congratulations!"
24. Ringkasan lesson
Yang perlu kamu kuasai dari lesson ini:
String bisa dibandingkan dengan ==
"Kotlin" == "Kotlin" // true
"Kotlin" == "Java" // false
Bisa menggunakan !=
"Kotlin" != "Java" // true
"Kotlin" != "Kotlin" // false
String juga dapat dibandingkan dengan <, >, <=, >=
"Apple" < "Banana" // true
Perbandingan ini berdasarkan urutan leksikografis, bukan panjang String.
== menghasilkan Boolean
val result = "Kotlin" == "Java"
result bertipe:
Boolean
dengan nilai:
false
Kemudian Boolean bisa digabungkan
val result = name == "Andi" && age >= 18
Kemudian digunakan dalam:
if (result) {
// ...
}
🧠 Inti yang harus benar-benar kamu ingat
Kalau sebelumnya kita belajar:
10 > 5
hasilnya:
true
Sekarang kamu tahu bahwa konsep yang sama bisa diterapkan pada String:
"Kotlin" == "Kotlin"
hasilnya:
true
Dan akhirnya bisa digabungkan:
val isValid = name == "Andi" && age >= 18
Jadi fondasi control flow yang sedang kamu bangun adalah:
Bandingkan data → dapatkan
true/false→ gabungkan kondisi bila perlu → gunakan hasilnya untuk menentukan jalannya program.
Lesson berikutnya tentang conditional statements/expressions (if, else, dan seterusnya) akan terasa jauh lebih masuk akal karena semua materi ini memang sedang dipersiapkan untuk itu.