Latihan Soal dan Jawaban: Operator Dalam Java

Setelah sebelumnya kita mempelajari tentang operator dalam java, agar lebih memahami dan mendalami materi.
Latihan Soal dan jawan operator java

TongkolPedia - Setelah sebelumnya kita mempelajari tentang operator dalam java, agar lebih memahami dan mendalami materi maka ada baiknya dicoba untuk mengerjakan contoh soal dari materi sebelumnya mengenai oeprator dalam java berikut ini. Contoh soal ini sudah dilengkapi dengan jawaban agar lebih mudah dipahami.

Latihan 1. Operator Aritmatika

Buatlah skrip berikut ini. Analisa dan perhatikan baris kode apa saja yang tidak berjalan sesuai dengan hasil yang diinginkan atau jelaskan mengapa hasil hitungannya berbeda. Kemudian perbaiki menjadi kode yang benar.
public class Aritmatika {
	public static void main(String[] args) {
		// Buat variabel 
		int a = 12;
		int b = 8; 
		int c = 5;
		// Hitung
		int hasil1 = a + b - c; 
		int hasil2 = a * b / c; 
		int hasil3 = a + b * c; 
		int hasil4 = a + b / c; 
		int hasil5 = (a + b) * c; 
		int hasil6 = (a - b) * c;
		// Print 
    System.out.println(hasil1); 
    System.out.println(hasil2); 
    System.out.println(hasil3); 
    System.out.println(hasil4); 
    System.out.println(hasil5);
    System.out.println(hasil6);
	}
}

Output:

15
19
52
13
100
20

Pembahasan:

Semua baris kode pada skrip diatas sudah berjalan dan melakukan proses aritmatikanya sesuai dengan simbol.
  • int hasil1 = a + b – c : Variabel hasil1 bertipe data integer dan melalukan proses aritmatika sesuai dengan simbol.
  • int hasil2 = a * b / c : Variabel hasil2 bertipe data integer dan melalukan proses aritmatika sesuai engan simbol.
  • int hasil3 = a + b * c : Variabel hasil3 bertipe data integer dan melalukan proses aritmatika sesuai dengan simbol.
  • int hasil4 = a + b / c : Variabel hasil4 bertipe data integer dan melalukan proses aritmatika sesuai dengan simbol.
  • int hasil5 = (a + b) * c : Variabel hasil5 bertipe data integer dan melalukan proses aritmatika sesuai dengan simbol.
  • int hasil6 = (a – b) * c : Variabel hasil6 bertipe data integer dan melalukan proses aritmatika sesuai dengan simbol.

Latihan 2. Operator Increment dan Decrement

Buatlah skrip berikut ini. Analisa hasil output dari program tersebut. Kemudian jelaskan mengapa terjadi perbedaan hasil outputnya?
public class IncreDecre {
	public static void main(String[] args) {
      // Buat variabel awal 
      int a = 0;
      int b = 0; 
      int c = 9; 
      int d = 9;
      // Print ke 1
      System.out.println("Print	ke 1");
      System.out.println("A = "	+ a++);
      System.out.println("B = "	+ ++b);
      System.out.println("C = "	+ c--);
      System.out.println("D = "	+ --d);
      // Print ke 2	
      System.out.println("Print	ke 2");
      System.out.println("A = "	+ a++);
      System.out.println("B = "	+ ++b);
      System.out.println("C = "	+ c--);
      System.out.println("D = "	+ --d);
      // Print ke 3	
      System.out.println("Print	ke 3");
      System.out.println("A = "	+ a++);
      System.out.println("B = "	+ ++b);
      System.out.println("C = "	+ c--);
      System.out.println("D = "	+ --d);
      // Print ke 4	
      System.out.println("Print	ke 4");
      System.out.println("A = "	+ a++);
      System.out.println("B = "	+ ++b);
      System.out.println("C = "	+ c--);
      System.out.println("D = "	+ --d);
	}		
}		

Output:

Print ke 1
A = 0
B = 1 
C = 9
D = 8
Print ke 2
A = 1
B = 2
C = 8
D = 7
Print ke 3
A = 2
B = 3
C = 7
D = 6
Print ke 4 
A = 3
B = 4
C = 6
D = 5

Pembahasan:

Mengapa terjadi perbedaan hasil output?
Output pada print 1hasil dari variabel a adalah 0, dan hasil dari variabel b adalah 1.
Hal ini dikaarenakan a++ akan ditambahkan setelah dievaluasi, maksudnya nilainya akan ditambah setelah ditampilkan. sehingga nilainya tidak berubah 
Sedangkan ++b akan ditambahkan sebelum dievaluasi, maksudnya nilainya akan ditambah sebelum ditampilkan sehingga nilainya berubah

Latihan 3. Operator Perbandingan

Buatlah skrip berikut ini. Analisa dan perhatikan hasil outputnya. Jelaskan mengapa hasil outputnya seperti itu?
public class OperatorPerbandingan {
	public static void main(String[] args) {
      // Buat variabel 
      int a = 10;
      int b = 8; 
      int c = 12; 
      int d = 5;
      //  Bandingkan 
      boolean tes1 = a > b; 
      boolean tes2 = b < c;
      boolean tes3 = (a * 2) >= (b + c); 
      boolean tes4 = (a / d) <= (c - a); 
      boolean tes5 = (a - d) == d; 
      boolean tes6 = (a - b) != (b - d); 
      boolean tes7 = a > 12;
      boolean tes8 = b <= 7; 
      boolean tes9 = c == 10; 
      boolean tes10 = d != 5;
      // Print
      System.out.println("Tes ke 1 = " + tes1);
      System.out.println("Tes ke 2 = " + tes2);
      System.out.println("Tes ke 3 = " + tes3);
      System.out.println("Tes ke 4 = " + tes4);
      System.out.println("Tes ke 5 = " + tes5);
      System.out.println("Tes ke 6 = " + tes6);
      System.out.println("Tes ke 7 = " + tes7);
      System.out.println("Tes ke 8 = " + tes8);
      System.out.println("Tes ke 9 = " + tes9);
      System.out.println("Tes ke 10 = " + tes10);
	}
}

Output:

Tes ke 1 = true
Tes ke 2 = true
Tes ke 3 = true
Tes ke 4 = true
Tes ke 5 = true
Tes ke 6 = true
Tes ke 7 = false
Tes ke 8 = false
Tes ke 9 = false
Tes ke 10 = false

Pembahasan:

Mengapa hasil output menjadi seperti diatas?
Karena skrip diatas menggunakan tipe data boolean (nilainya hanya true atau false) dengan memasukkan operator perbandingan didalamnya.
  • boolean tes1 = a > b = 10 > 8. Karena benar,  maka hasilnya adalah True.
  • boolean tes2 = b < c =  8 < 12 . Karena benar,  maka hasilnya adalah True.
  • boolean tes3 = (a * 2) >= (b + c) =  20 >= 20. Karena benar, maka hasilnya adalah True.
  • boolean tes4 = (a / d) <= (c – a) = 2 <= 2. Karena benar, maka hasilnya adalah True.
  • boolean tes5 = (a – d) == d = 5 == 5. Karena benar, maka hasilnya adalah True.
  • boolean tes6 = (a – b) != (b – d) = 2 != 3. Seharusnya hasilnya adalah False, tetapi karena terdapat negasi (!) maka hasilnya berubah menjadi True.
  • boolean tes7 = a > 12 = 10 > 12. Karena salah, maka hasilnya adalah False.
  • boolean tes8 = b <= 7 = 8 <= 7. Karena salah, maka hasilnya adalah False.
  • boolean tes9 = c == 10 = 12 == 10. Karena salah, maka hasilnya adalah False.
  • boolean tes10 = d != 5 = 5 != 5. Seharusnya hasilnya adalah True, tetapi karena terdapat negasi (!) maka hasilnya berubah menjadi False.

Latihan 4. Operator Logika

Buatlah skrip berikut ini. Analisa dan perhatikan hasil outputnya. Jelaskan mengapa hasil outputnya seperti itu?
public class OperatorLogika {
	public static void main(String[] args) {
      // Buat variabel
      boolean b1 = 5 < 10;
      boolean b2 = 9 > 11; 
      boolean b3 = !b1; 
      boolean b4 = !b2;
      // Tes Logika AND
      boolean TesAND1 = b1 & b2; 
      boolean TesAND2 = b1 && b2; 
      boolean TesAND3 = b1 && b3; 
      boolean TesAND4 = b1 && b4;
      // Tes Logika OR
      boolean TesOR1 = b1 | b2; 
      boolean TesOR2 = b1 || b2; 
      boolean TesOR3 = b1 || b3; 
      boolean TesOR4 = b1 || b4;
      // Tes Logika XOR
      boolean TesXOR1 = b1 ^ b2; 
      boolean TesXOR2 = b1 ^ b3; 
      boolean TesXOR3 = b1 ^ b4;
      // Print
      System.out.println("Tes AND 1 = " + TesAND1);
      System.out.println("Tes AND 2 = " + TesAND2);
      System.out.println("Tes AND 3 = " + TesAND3);
      System.out.println("Tes AND 4 = " + TesAND4);
      System.out.println("Tes OR 1 = " + TesOR1);
      System.out.println("Tes OR 2 = " + TesOR2);
      System.out.println("Tes OR 3 = " + TesOR3);
      System.out.println("Tes OR 4 = " + TesOR4);
      System.out.println("Tes XOR 1 = " + TesXOR1);
      System.out.println("Tes XOR 2 = " + TesXOR2);
      System.out.println("Tes XOR 3 = " + TesXOR3);
	}
}

Output:

Tes AND 1 = false
Tes AND 2 = false
Tes AND 3 = false
Tes AND 4 = true
Tes OR 1 = true
Tes OR 2 = true
Tes OR 3 = true
Tes OR 4 = true
Tes XOR 1 = true
Tes XOR 2 = true
Tes XOR 3 = false

Pembahasan:

Skrip diatas menggunakan variabel bertipe data boolean dengan memasukkan operasi perbandingan di dalamnya.
Mengapa outputnya seperti itu?
Dikarenakan skrip diatas mengapliaksikan operator logika AND, OR, XOR, dan NOT. AND akan bernilai True jika b1 dan b2 bernilai True. OR akan bernilai False jika b1 dan b2 bernilai False. XOR akan bernilai True jika b1 ≠ b2. NOT merupakan kebalikan dari b1.

b1 = 5 < 10 : True
b2 = 9 > 11 : False
b3 = !b1 : False
b4 = !b2 : True

Logika AND :
boolean TesAND1 = b1 & b2 : True & False = False
boolean TesAND2 = b1 && b2 : True && False = False
boolean TesAND3 = b1 && b3 : True && False = False
boolean TesAND4 = b1 && b4 : True && True = True

Logika OR:
boolean TesOR1 = b1 | b2 : True | False = True
boolean TesOR2 = b1 || b2 : True || False = True
boolean TesOR3 = b1 || b3 : True || False = True
boolean TesOR4 = b1 || b4 : True || True = True

Logika XOR:
boolean TesXOR1 = b1 ^ b2 : True ^ False = True
boolean TesXOR2 = b1 ^ b3 : True ^ False = True
boolean TesXOR3 = b1 ^ b4 : True ^ True = False

Latihan 5. Operator

Buatlah skrip program yang menyelesaikan masalah berikut ini.

a. Jika ditentukan n1 = 10 dan n2 = 15. Buatlah skrip program untuk mengevaluasi dan menampilkan hasil evaluasi berikut ini:
  1. h1 = penjumlahan n1 dan n2, lalu dikalikan dengan penjumlahan n2 dan n1.
  2. h2 = sisa bagi dari n1 dengan 4, kemudian dikalikan dengan n2.
b. Perhatikan soal no.1, jika anda sudah mendapatkan nilai h1 dan h2, maka buat skrip program yang mengevaluasi dan menampilkan hasil evaluasi berikut ini:
  1. b1 = (h1 besar sama dengan h2)
  2. b2 = (h2 besar sama dengan h1)
  3. b3 = (h1 Mod 4) == (++h2 Mod 5)
  4. b4 = (b1 XOR b3) AND (b2 OR b3)
  5. b5 = b2 OR (b3 AND (b2 XOR b1))

Kode Program A

public class Operator {
    public static void main(String[] args) {
        // Variabel
        int n1 = 10;
        int n2 = 15;
        // Hitung
        int h1 = (n1 + n2) * (n2 + n1);
        int h2 = (n1 % 4) * n2;
        // Print
        System.out.println("h1 = " + h1);
        System.out.println("h2 = " + h2);
    }   
 }
 

Output A:

h1 = 625
h2 = 30

Kode Program B:

public class Operator {
    public static void main(String[] args) {
        // Variabel
        int n1 = 10;
        int n2 = 15;
        int h1 = (n1 + n2) * (n2 + n1);
        int h2 = (n1 % 4) * n2;
        //Perbandingan
        boolean b1 = h1 >= h2;
        boolean b2 = h2 >= h1;
        boolean b3 = (h1 % 4) == (++h2 % 5);
        boolean b4 = (b1 ^ b3) && (b2 || b3);
        boolean b5 = b2 || (b3 &&(b2 ^ b1));
        //Print
        System.out.println("b1 = " + b1);
        System.out.println("b2 = " + b2);
        System.out.println("b3 = " + b3);
        System.out.println("b4 = " + b4);
        System.out.println("b5 = " + b5);
    }   
}

Output B:

b1 = true
b2 = false
b3 = true
b4 = false
b5 = true