Operator & Percabangan
Operator aritmetika, perbandingan, logika, if/else if/else, operator ternary, serta switch klasik dan switch expression modern.
Operator aritmetika
| Operator | Arti | Contoh |
|---|---|---|
+ - * / | tambah, kurang, kali, bagi | 10 / 4 → 2 (int) |
% | sisa bagi (modulus) | 10 % 4 → 2 |
++ -- | tambah/kurang 1 | i++ |
+= -= *= /= | operasi lalu simpan | total += 5 |
Operator perbandingan & logika
| Operator | Arti |
|---|---|
== != < > <= >= | menghasilkan boolean |
&& | DAN (keduanya benar) |
|| | ATAU (salah satu benar) |
! | TIDAK (membalik) |
Penting: untuk membandingkan isi String gunakan equals(), bukan ==. Operator == pada objek membandingkan alamat memori, bukan isi.
String a = new String("java");
String b = new String("java");
System.out.println(a == b); // false (objek berbeda)
System.out.println(a.equals(b)); // true (isi sama)
System.out.println("JAVA".equalsIgnoreCase(a)); // true
if / else if / else
int nilai = 78;
if (nilai >= 90) {
System.out.println("A");
} else if (nilai >= 75) {
System.out.println("B");
} else if (nilai >= 60) {
System.out.println("C");
} else {
System.out.println("Perlu belajar lagi");
}
Kondisi di dalam if harus bertipe boolean. Java mengecek dari atas ke bawah dan berhenti di cabang pertama yang benar. Gabungkan kondisi dengan && dan ||:
if (umur >= 17 && punyaKtp) {
System.out.println("Boleh mendaftar");
}
Operator ternary
String status = (nilai >= 60) ? "Lulus" : "Tidak lulus";
Bentuknya kondisi ? nilaiJikaBenar : nilaiJikaSalah. Cocok untuk pilihan sederhana.
switch klasik
int hari = 3;
switch (hari) {
case 1:
System.out.println("Senin");
break;
case 2:
System.out.println("Selasa");
break;
default:
System.out.println("Hari lain");
}
Tanpa break, eksekusi "jatuh" ke case berikutnya (fall-through) — sumber bug yang umum.
switch expression (Java 14+)
Versi modern memakai panah ->, tidak ada fall-through, dan mengembalikan nilai:
int hari = 3;
String namaHari = switch (hari) {
case 1 -> "Senin";
case 2 -> "Selasa";
case 3 -> "Rabu";
case 6, 7 -> "Akhir pekan"; // beberapa nilai sekaligus
default -> "Tidak dikenal";
};
Ia juga bisa dipakai pada String dan enum. Karena berupa ekspresi, setiap kemungkinan harus tertangani (biasanya lewat default).
Latihan berpikir
- Apa hasil
5 + 3 * 2? 11 — perkalian didahulukan; pakai kurung untuk mengubah urutan. - Apa hasil
10 % 3? 1. - Mengapa
if (x = 5)error di Java? Karena=adalah penugasan (hasilnya int), sedangkanifbutuh boolean; maksudmu mungkin==.