Operator dalam Java
Operator dalam Java adalah simbol-simbol khusus yang digunakan untuk melakukan operasi pada variabel dan nilai.
Berikut adalah pembagian operator di Java yang paling sering digunakan:
1️⃣ Operator Aritmatika
Digunakan untuk melakukan operasi matematika dasar.
| Operator | Nama | Contoh |
|---|---|---|
+ | Penjumlahan | 10 + 5 = 15 |
- | Pengurangan | 10 - 5 = 5 |
* | Perkalian | 10 * 5 = 50 |
/ | Pembagian | 10 / 5 = 2 |
% | Modulo (Sisa Bagi) | 10 % 3 = 1 |
Contoh :
int a = 10;
int b = 3;
System.out.println("10 + 3 = " + (a + b)); // 13
System.out.println("10 - 3 = " + (a - b)); // 7
System.out.println("10 * 3 = " + (a * b)); // 30
System.out.println("10 / 3 = " + (a / b)); // 3 (Hasil bulat karena tipe int)
System.out.println("10 % 3 = " + (a % b)); // 1 (Sisa bagi)
2️⃣ Operator Penugasan (Assignment)
Digunakan untuk memberikan atau mengisi nilai ke dalam variabel.
| Operator | Contoh | Sama Dengan |
|---|---|---|
= | x = 5 | x = 5 |
+= | x += 3 | x = x + 3 |
-= | x -= 3 | x = x - 3 |
*= | x *= 3 | x = x * 3 |
/= | x /= 3 | x = x / 3 |
%= | x %= 3 | x = x % 3 |
Contoh :
int x = 5;
x += 5; // Sama dengan x = x + 5 -> x sekarang 10
x -= 2; // Sama dengan x = x - 2 -> x sekarang 8
x *= 2; // Sama dengan x = x * 2 -> x sekarang 16
System.out.println("Nilai akhir x: " + x);
3️⃣ Operator Perbandingan (Relational)
Digunakan untuk membandingkan dua nilai. Hasil dari operasi ini selalu berupa boolean (true atau false).
| Operator | Nama | Contoh |
|---|---|---|
== | Sama dengan | 5 == 5 (true) |
!= | Tidak sama dengan | 5 != 3 (true) |
> | Lebih besar dari | 5 > 8 (false) |
< | Lebih kecil dari | 5 < 8 (true) |
>= | Lebih besar atau sama dengan | 5 >= 5 (true) |
<= | Lebih kecil atau sama dengan | 5 <= 5 (true) |
Contoh :
int p = 10;
int q = 20;
System.out.println(p == q); // false
System.out.println(p != q); // true
System.out.println(p > q); // false
System.out.println(p <= q); // true
4️⃣ Operator Logika (Boolean)
Digunakan untuk menentukan logika antara variabel atau nilai. Biasanya digunakan pada percabangan (if).
| Operator | Nama | Deskripsi |
|---|---|---|
&& | Logical AND | Bernilai true jika keduanya benar. |
|| | Logical OR | Bernilai true jika salah satu benar |
! | Logical NOT | Membalikkan hasil (true jadi false). |
Contoh :
boolean punyaKunci = true;
boolean punyaPassword = false;
// AND (&&): Harus keduanya true agar hasilnya true
System.out.println(punyaKunci && punyaPassword); // false
// OR (||): Salah satu saja true, maka hasilnya true
System.out.println(punyaKunci || punyaPassword); // true
// NOT (!): Membalikkan keadaan
System.out.println(!punyaKunci); // false
Tabel Kebenaran (Truth Table)
Misalkan ada dua variabel A dan B:
| A | B | A && B (AND) | A || B (OR) |
|---|---|---|---|
true | true | true | true |
true | false | false | true |
false | true | false | true |
false | false | false | false |
Contoh:
public class PerbandinganOperator {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
// Logical
System.out.println("AND: " + (a && b)); // false
System.out.println("OR : " + (a || b)); // true
// Bitwise (Angka)
int x = 5; // 0101
int y = 3; // 0011
System.out.println("Bitwise AND: " + (x & y)); // 1
System.out.println("Bitwise OR : " + (x | y)); // 7
}
}
5️⃣ Operator Unary (Increment & Decrement)
Digunakan untuk menambah atau mengurangi nilai variabel sebanyak 1.
++xataux++: Menambah nilai 1 (Increment).--xataux--: Mengurangi nilai 1 (Decrement).-: Negative.+: Positive.!: Boolean kebalikan.
Catatan: Ada perbedaan antara Prefix (++x) dan Postfix (x++). Prefix mengubah nilai sebelum digunakan, sedangkan Postfix menggunakan nilai lama dulu baru kemudian mengubahnya.
Contoh :
int i = 5;
// Postfix: Gunakan nilai lama, lalu tambah 1
System.out.println(i++); // Output: 5 (i sekarang jadi 6)
// Prefix: Tambah 1 dulu, baru gunakan nilainya
System.out.println(++i); // Output: 7 (i dari 6 ditambah 1 dulu)
6️⃣ Operator Ternary
Ini adalah cara singkat untuk menulis if-else. Strukturnya menggunakan simbol ? dan :.
Contoh :
int nilai = 80;
String hasil = (nilai >= 75) ? "Lulus" : "Tidak Lulus";
System.out.println(hasil); // Output: Lulus
7️⃣ Presedensi Operator (Urutan Operasi)
Sama seperti matematika, Java memiliki aturan urutan mana yang dikerjakan duluan.
- Kurung
() - Increment/Decrement
++,-- - Perkalian/Pembagian
*,/,% - Penjumlahan/Pengurangan
+,- - Perbandingan
<,>,<=,>= - Logika
&&,||
Contoh :
public class BelajarOperator {
public static void main(String[] args) {
int a = 10;
int b = 20;
// Menggunakan Aritmatika dan Perbandingan
boolean apakahLebihBesar = (a + 5) > b;
System.out.println("Hasil: " + apakahLebihBesar); // Output: false (15 > 20)
}
}
8️⃣ Bitwise Operators
Meskipun jarang digunakan di level pemula, operator ini bekerja pada level bit (biner 0 dan 1).
| Operator | Nama | Contoh (5 & 3) |
|---|---|---|
& | AND | 0101 & 0011 = 0001 (1) |
| | OR | 0101 | 0101 = 0111 (7) |
^ | XOR | 0101 ^ 0011 = 0110 (6) |
~ | NOT | Membalikkan semua bit |
<< | Shift kiri | Menggeser bit ke kiri (sama dengan dikali 2) |
>> | Shift kanan | Menggeser bit ke kanan (sama dengan dibagi 2) |
Contoh Kode:
public class Main {
public static void main(String[] args) {
int a = 5; // biner: 0101
int b = 3; // biner: 0011
int hasil = a | b; // Operasi Bitwise OR
System.out.println("Hasil dari 5 | 3 adalah: " + hasil);
// Output: Hasil dari 5 | 3 adalah: 7
}
}
- Contoh Left Shift (
<<):5 << 2- Biner 5:
00000101 - Geser 2 ke kiri:
00010100 - Hasil Desimal: 20
(Karena 5 * 2^2 = 5 * 4 = 20)
- Biner 5:
- Contoh Right Shift (
>>):20 >> 2- Biner 20:
00010100 - Geser 2 ke kanan:
00000101 - Hasil Desimal: 5 (Karena
20 / 2^2 = 20 / 4 = 5)
- Biner 20: