Lompat ke konten Lompat ke sidebar Lompat ke footer

Tipe Operator Java dan Fungsinya

Bahasa Java menyediakan banyak tipe dari operator yang dapat digunakan sesuai dengan kebutuhan.


Sebelum lebih lanjut mempelajari materi tentang Tipe Operator Java dan Fungsinya, terlebih dahulu pelajari materi tentang: Object Serialisasi Java Terhadap Inheritance, Object Subclass dan Subclass Java Dan Referensi Superclass, dan Overloading dan Inheritance Java dan Fungsinya.

Operator-operator tersebut dikelompokkan berdasarkan fungsi yang disediakan, beberapa diantaranya adalah:
  1. Operator aritmatika.
  2. Operator unary.
  3. Operator penugasan.
  4. Operator relasi.
  5. Operator logika.
  6. Operator ternary.
  7. Operator bitwise.
  8. Operator shift.
  9. Operator instance.

Operator Aritmatika, digunakan untuk menampilkan operasi aritmatika sederhana pada tipe data primitif, seperti:
  • * : Perkalian.
  • / : Pembagian.
  • % : Modulus.
  • + : Penambahan.
  • - : Pengurangan.

Operator Unary: adalah jenis operator yang hanya membutuhkan satu nilai operand. Operator ini digunakan untuk incrementdecrement, dan peniadaan nilai.
  • - : Unary minus, digunakan untuk mengurangi atau meniadakan nilai.
  • + : Unary plus, mengindikasikan nilai positif. Operator ini menampilkan conversi otomatis untuk int ketika tipe operannya adalah bytechar, atau short. Operator ini juga disebut sebagai unary numeric promotion.
  • ++ : Operator increment, digunakan untuk menambahkan nilai sebesar 1 pada variabel. Terdapat dua jenis atau tipe dari operator increment, yaitu Post-increment dan Pre-increment. Pada operator Post-increment nilai pertama kali digunakan untuk menghitung hasil dan kemudian baru ditambah 1 atau diinkrementasi. Pada operator Pre-increment, nilai dilakukan inkrementasi +1 terlebih dahulu baru dilakukan perhitungan hasil.
  • -- : Operator decrement, digunakan untuk mengurangi nilai sebesar -1 pada variabel. Terdapat dua jenis atau tipe dari operator decrement, yaitu Post-decrement dan Pre-decrement. Pada operator Post-decrement nilai pertama kali digunakan untuk menghitung hasil dan kemudian baru dikurangi -1 atau dilakukan dekrementasi. Pada operator Pre-decrement, nilai dilakukan dekrementasi -1 terlebih dahulu baru dilakukan perhitungan hasil.

Operator Penugasan, operator ini digunakan untuk menetapkan nilai pada setiap variabel yang telah dideklarasikan. Operator penugasan memiliki tingkat asosiativitas right to left, dimana nilai yang diberikan dari sisi kanan operator akan ditugaskan ke operator sebelah kiri dan oleh karena itu nilai sisi kanan harus dideklarasikan terlebih dahulu sebelum digunakan.

Format umum dari operator penugasan: Variabel = Nilai;

Dalam berbagai kondisi, operator penugasan dapat dikombinasikan dengan operator lainnya untuk membangun versi singkat dari statement yang disebut Compound Statement. Contoh, ketimbang membuat deklarasi a=+5, deklarasi tersebut dapat dibuat dalam bentuk lain yang lebih sederhana seperti a+=5.
  • +=, untuk penambahan nilai operand kiri dengan operand kanan dan menetapkan nilainya ke variabel pada bagian kiri.
  • =+, untuk pengurangan nilai operand kiri dengan operand kanan dan menetapkan nilainya ke variabel pada bagian kiri.
  • *=, untuk perkalian nilai operand kiri ke operand kanan dan menetapkan nilainya ke variabel pada bagian kiri.
  • /=, untuk pembagian nilai operand kiri dengan operand kanan dan menetapkan nilainya ke variabel pada bagian kiri.
  • %=, untuk modulus nilai operand kiri dengan operand kanan dan menetapkan nilainya ke variabel pada bagian kiri.

Operator Relasi, digunakan untuk memeriksa relasi atau hubungan seperti senilai, lebih dari, kurang dari, dan lain sebagainya. Nilai return yang diberikan oleh operator ini adalah berupa nilai bolean setelah dilakukan perbandingan dan biasanya secara ekstensif digunakan pada statement looping atau perulangan, juga pada statement kondisional if else. Secara umum operator relasi diperlihatkan sebagai berikut:

variable relation_operator value

Beberapa bentuk operator relasi adalah sebagai berikut:
  • ==, Senilai; akan mengembalikan return TRUE jika sisi kiri dan sisi kanan adalah senilai.
  • !=, Tidak senilai; akan mengembalikan nilai TRUE jika sisi kiri dan sisi kanan adalah tidak senilai.
  • <, kurang dari; akan mengembalikan nilai TRUE jika sisi kiri lebih kecil nilainya daripada sisi kanan.
  • <=, kurang dari sama dengan; akan mengembalikan nilai TRUE jika sisi kiri nilainya kurang dari atau sama dengan daripada sisi kanan.
  • >, lebih dari; akan mengembalikan nilai TRUE jika sisi kiri lebih besar nilainya daripada sisi kanan.
  • >=, lebih dari sama dengan; akan mengembalikan nilai TRUE jika sisi kiri nilainya lebih dari atau sama dengan daripada sisi kanan.

Operator Logika, operator ini digunakan untuk menampilkan operasi logika AND atau logika OR, atau serupa dengan logika AND dan logika OR pada materi logika pemrograman. Hal yang perlu diperhatikan pada penggunaan operator logika adalah, kondisi kedua tidak akan pernah dievaluasi jika kondisi pertama adalah bernilai FALSE. Operator ini secara ekstensif sering digunakan pada statement pembuatan keputusan. Bentuk umum operator logika adalah:
  • &&, Logika AND: akan mengembalikan nilai TRUE jika semua kondisi bernilai TRUE.
  • ||, logika OR: akan mengembalikan nilai TRUE jika salah satu kondisi ada yang bernilai TRUE.

Operator Ternary, merupakan versi singkat dari statement IF-ELSE. Operator Ternary, merupakan operator yang membutuhkan tiga operand dalam proses operasinya. Secara umum, format operator ternary adalah sebagai berikut:

condition ? if true : if false

Pernyataan diatas menyatakan jika terdapat kondisi bernilai benar, maka jalankan pernyataan setelah tanda '?', jika tidak, maka jalankan pernyataan setelah tanda ':'.

Contoh:

// Program Java untuk

// mengilustrasikan angka

// terbesar dari tiga buah

// angka menggunakan operator

// ternary.

public class operators {

 

public static void main(String[] args)

{

int a=20, b=10, c=30, result;

// Variabel menyimpan tiga

// buah angka pada tiga buah

// variabel

 

result = ((a > b)

? (a > c)

? a

: c

: (b > c)

? b

: c);

 

System.out.println("Angka”

+ "terbesar adalah = "

+ result);

}

 

}

Output:
Angka terbesar adalah = 30

Operator Bitwise: operator ini digunakan untuk menampilkan manipulasi dari satuan bit dari sebuah angka. Operator bitwise dapat digunakan dengan tipe integer apapun. Operator bitwise digunakan ketika melakukan pembaruan dan operasi kueri dari binary indexed tree.
  • &, Bitwise AND; mengembalikan bit demi bit AND dari nilai input.
  • |, Bitwise OR; mengembalikan bit demi bit OR dari nilai input.
  • ^, Bitwise XOR; mengembalilkan bit demi bit XOR dari nilai input.
  • ~, Bitwise Operator Komplemen; Merupakan operator unary yang mengembalikan representasi satu komplemen dari nilai input, yaitu dengan semua nilai bit terbalik.

Operator Shift: Operator ini digunakan untuk menggeser bit bit angka ke kiri atau ke kanan sehingga membagi atau mengali angka yang digeser tersebut dengan masing-masing nilai dua.
  • <<, Left Shift Operator: menggeser bit nomor ke kiri dan mengisi 0 pada kekosongan kiri sebagai hasilnya.
  • >>, Left Shift Operator: menggeser bit nomor ke kanan dan mengisi 0 pada kekosongan kanan sebagai hasilnya.
  • >>>>, Unsigned Right Shift Operator: menggeser bit nomor ke kanan dan mengisi 0 pada kekosongan kiri sebagai hasilnya. Bit paling kiri diatur ke 0.

Baca Juga:

Operator instance, digunakan untuk mengecekkan tipe data. Operator ini dapat digunakan untuk menguji apakah suatu object apakah merupakan bagian instance dari suatu classsubclass, atau dari GUI. Bentuk umum operator instance diperlihatkan sebagai berikut:

object instance of class/subclass/interface

Contoh:

// Program Java untuk

// mengilustrasikan instance

// dari operator

class operators {

 

public static void main(String[] args)

{

 

// Karena obj adalah tipe

// Person(), maka obj1

// bukanlah turunan dari Boy()

// atau interface.

Person obj1 = new Person();

Person obj2 = new Boy();

 

 

System.out.println("obj1"

+ "instanceof Person: "

+ (obj1 instanceof Person));

 

System.out.println("obj1"

+ " instanceof Boy: "

+ (obj1 instanceof Boy));

 

System.out.println("obj1" 

+ "instanceof MyInterface: "

+ (obj1 instanceof MyInterface));

 

// Karena obj2 adalah tipe

// Boy, yang kelas induknya

// adalah Person dan

// mengimplementasikan

// interface Myinterface, maka

// obj2 adalah turunan dari

// semua kelas tersebut.

System.out.println("obj2"

+ " instanceof Person: "

+ (obj2 instanceof Person));

 

System.out.println("obj2"

+ " instanceof Boy: "

+ (obj2 instanceof Boy));

 

System.out.println("obj2"

+ " instanceof MyInterface: "

+ (obj2 instanceof MyInterface));

}

 

}

 

class Person {}

 

class Boy extends Person 

implements MyInterface {}

 

interface MyInterface {}

Output:
obj1 instanceof Person: true
obj1 instanceof Boy: false
obj1 instanceof MyInterface: false
obj2 instanceof Person: true
obj2 instanceof Boy: true
obj2 instanceof MyInterface: true

Predesesor dan Asosiativitas dari Operator

Aturan predesesor dan asosiatifitas digunakan ketika berhadapan dengan persamaan hybrid yang melibatkan lebih dari satu tipe operator. Dalam beberapa kondisi, aturan tersebut menentukan bagian mana dari persamaan yang akan dieksekusi terlebih dahulu dari berbagai kombinasi persamaan yang melibatkan berbagai operator didalamnya. Tabel 1 berikut menggambarkan prioritas operator dalam urutan menurun sebagai besaran dengan bagian atas mewakili prioritas tertinggi dan bagian bawah menunjukkan prioritas terendah.

Tabel 1 Predesesor dan Asosiativitas Operator Java
PredesesorOperatorTipeAsosiativitas
15()
[]
·
Parentheses
Array subscript
Member selection
Left to Right
14++
--
Unary post-increment
Unary post-decrement
Right to left
13++
--
+
-
!
~
( type )
Unary pre-increment
Unary pre-decrement
Unary plus
Unary minus
Unary logical negation
Unary bitwise complement
Unary type cast
Right to left
12*
/
%
Multiplication
Division
Modulus
Left to right
11+
-
Addition
Subtraction
Left to right
10<<
>>
>>>
Bitwise left shift
Bitwise right shift with sign extension
Bitwise right shift with zero extension
Left to right
9<
<=
>
>=
instanceof
Relational less than
Relational less than or equal
Relational greater than
Relational greater than or equal
Type comparison (objects only)
Left to right
8==
!=
Relational is equal to
Relational is not equal to
Left to right
7&Bitwise ANDLeft to right
6^Bitwise exclusive ORLeft to right
5|Bitwise inclusive ORLeft to right
4&&Logical AND
Left to right
3||Logical ORLeft to right
2? :Ternary conditionalRight to left
1=
+=
-=
*=
/=
%=
Assignment
Addition assignment
Subtraction assignment
Multiplication assignment
Division assignment
Modulus assignment
Right to left

Seringkali terdapat kebingungan dalam hal persamaan hybrid, yaitu persamaan yang memiliki atau melibatkan banyak operator bahasa c didalamnya. Yang sering menjadi pertanyaan adalah bagian mana dari operator tersebut yang harus diselesaikan atau harus dieksekusi terlebih dahulu. Untuk mengatasi permasalah tersebut, ada aturan sederhana yang dapat diikuti oleh seorang programmer. Jika operator memiliki prioritas yang berbeda, maka selesaikan terlebih dahulu prioritas yang lebih tinggi. Jika memiliki prioritas yang sama, maka selesaikan menurut aturan asosiatifitas, yaitu dari kanan ke kiri atau dari kiri ke kanan.

Contoh:

public class operators {

 

public static void main(String[] args)

{

 

int a=20, b=10, c=0, d=20, e=40, f=30;

 

// Aturan predesesor untuk

// operator aritmatika.

 

// (* = / = %) > (+ = -)

 

// prints a+(b/d)

 

System.out.println("a+b/d = " 

+ (a + b / d));

 

// Jika predesesor adalah

// sama, maka asosiatifitas

// aturan digunakan.

 

// e/f -> b*d -> a+(b*d) ->

// a+(b*d)-(e/f)

 

System.out.println("a+b*d-e/"

+ "f = "

+ (a + b * d - e / f));

}

 

}

Output:
a+b/d = 20
a+b*d-e/f = 219

Kompilator pada program biasanya menggunakan perangkat tertentu untuk melakukan pencocokkan terbaik ketika menghasilkan suatu token tertentu. Proses ini dapat menimbulkan suatu permasalahan jika diabaikan. Contoh perhatikan statement a=b+++c;. Bagi user hal ini mungkin tampak akan menghasilakn pesan error pada komputer jika dilakukan suatu kompilasi program menggunakan kompilator. Tetapi statement yang ditampilkan tersebut pada dasarnya adalah benar karena token yang dibuat adalah a, =, b, ++, +, c. Oleh karena itu statement tersebut memiliki efek yang sama dengan menugaskan b+c ke a dan kemudian menaikkan nilai hasil dari b tersebut. Namun demkikian, pada statement a=b+++++c; akan menghasilkan pesan error pada kompilator jika statement tersebut dilakukan kompilasi program, karena token yang dihasilkan adalah a, =, b, ++, ++, +, c. Yang sebenarnya merupakan suatu kesalahan karena tidak ada operand setelah operand unary kedua.

Contoh:

public class operators {

 

public static void main(String[] args)

{

int a = 20, b = 10, c = 0;

 

// a=b+++c dikompilasi sebagai

// b++, +c, a=b+c, kemudian

// b=b+1.

a = b++ + c;

 

System.out.println("Nilai "

+ "dari a(b+c), b(b+1), c = "

+ a + ", " + b

+ ", " + c);

// a=b+++++c dikompilasi

// sebagai b++, ++, +c yang

// akan menghasilkan error.

 

// a=b+++++c;

 

// System.out.println(b+++++c);

}

 

}

Output:
Nilai dari a(b+c), b(b+1), c = 10, 11, 0

Ketika menggukana operator + pada system.out.println() pastikan untuk melakukan penambahan menggunakan tanda kurung. Jika menuliskan sesuatu sebelum melakukan penjumlahan, maka akan terjadi proses penambahan string, yaitu asosiatifitas penjumlahan kiri ke kanan dan karenanya bilangan bulat akan ditambahkan ke string terlebih dahulu untuk menghasilkan string, dan object string akan digabungkan ketika menggunakan operator +, dan dapat memunculkan hasil yang tidak sesuai atau tidak diinginkan pada program.

Contoh:

public class operators {

 

public static void main(String[] args)

{

int x=5, y=8;

 

// menggabungkan x dan y

// sebagai nilai x, kemudian

// ditambahkan ke

// "penggabungan (x+y) = "

// yang menghasilkan

// "penggabungan (x+y) = 5"

// dan digabungkan dengan 8.

 

System.out.println("Penggabu"

+ "ngan (x+y)= "

+ x + y);

 

// Penambahan x dan y

System.out.println("Penambah"

+ "an (x+y) = "

+ (x + y));

}

 

}

Output:
Rangkaian (x+y)= 58
Penambahan (x+y) = 13

Referensi Tambahan:

Artikel ini didedikasikan kepada: Indah Nur Hastuti, Jacqualine Dwinaya Putri Jadmiko, Lailati Nur Amalina, Lusi Kristiana, dan Mauluda Muhammad Rizky.

5 komentar untuk "Tipe Operator Java dan Fungsinya"

  1. Apa yang dimaksud dengan operator pada Java?

    BalasHapus
    Balasan
    1. Operator pada Java merupakan simbol khusus yang digunakan untuk melakukan operasi tertentu pada satu, dua, atau tiga operand, dan kemudian akan memberikan nilai return. Ketika programmer menggunakan salah satu dari operator pada bahasa pemrograman Java, maka sangat penting bagi programmer tersebut untuk mengetahui terlebih dahulu tingkat asosiativitas dari setiap operator tersebut.

      Hapus
    2. Operator merupakan simbol khusus yang melakukan operasi tertentu pada nilai operand. Operator pada Java umumnya digunakan untuk memanipulasi tipe data primitif pada program.

      Hapus
  2. Apa yang dimaksud dengan operator pada matematik?

    BalasHapus
    Balasan
    1. Dalam dunia matematika operator merupakan karakter yang mewakili suatu tindakan tertentu, misalnya x yang merupakan operator aritmatika yang mewakili simbol perkalian.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -