T Operator dan Assignment baru
Pemrograman Berbasis Objek
Operator dan Assignment
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Macam--macam Operator
Macam
Arithmetic Op. : +
-
*
/
%
Relational Op. : > >= < >>>
Conditional Op. : ?:
Assign Op. : = += -= *= /= %= &= ^= |= >>= >=
Casting Op. : (Data Type)
Array Op. : []
Method Op. : () .
i t
instanceof
f Op.
O : instanceof
i t
f
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Arithmetic Operator
• Operator untuk operasi arithmetic
– Single term operator : +, – Binary term operator : +, -, *, /, %
x = -5 ;
x = -(-5) ;
x = -(3-5) ;
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Kondisi Arithmetic Error
Kondisi Arithmetic Error
• Tipe
p data (char,
(
byte,
y short, int, and long)
g) dibagi
g dengan
g
0 akan menyebabkan ArithmeticException.
– 1. int x = 2;
– 2. int y =0;;
– 3. int z = x/y;
• Untuk tipe data float dan double pembagian dengan nol
tidak membangkitkan error tapi menghasilkan infinity
(IPOSITIVE_INFINITY or NEGATIVE_INFINITY).
• Mencari akar dari bilangan negatif (float atau double)
akan membangkitkan nilai NaN (Not a Number)
Number), tapi
bukan exception.
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Nan
• In general, an NaN value indicates that the calculation
has no meaningful
g result in ordinary
y arithmetic.
• Two NaN values are defined in the java.lang package:
Float.NaN, and Double.NaN.
• Because NaN means not a sensible value, all the
following value of the double variable x, including NaN:
–
–
–
–
–
x < Double.NaN
x Double.NaN
x >= Double.NaN
x == Double.NaN
• As a corollary to the preceding example, consider
– double x = 7.0/0.0;
– x != Double.NaN (return true)
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator relasi
Operator relasi
• Operator relasi disebut juga operator perbandingan,
membandingkan dua operand dan mengembalikan
nilai true atau false.
p
dapat
p sembarang
g nilai numerik.
• Operand
• Ekspresi yang melibatkan operator relasi
– for, while, ...
• Operator
– =, ==, !=
↑ precedence ↓
a > b + c ===>a > (b + c)
b == x < y ===> b == (x < y)
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Kondisional
• Conditional Logical
g
Relationship
p dari dua
operand.
• Operator
– ! , && , ||
a < b && b < c
1
2
3
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Kondisional
The Short Circuit Logical Operators
– Untuk operasi AND, jika satu operand adalah false, maka hasil
sudah pasti false, tanpa harus menguji operand lainnya, karena
F && X = F
– Untuk operasi OR, jika satu operand adalah true, maka hasil
sudah pasti true, tanpa harus menguji operand lainnya, karena T
|| X = T
• Jadi,
– false && X = false
– true || X = true
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Contoh:
• Output
• x=3y=4
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Increment & Decrement
• Operator
– ++,
++ -– Prefix operator
– Postfix operator
n = 1;
x = ++n;
n = 1;
x = n++;
// x=2, n=2
// x=1, n=2
– Tidak dapat digunakan pada ekspresi aritmatika, hanya pada
variabel saja
(a + b)++
// error
– Tidak
Tid k dapat
d
t digunakan
di
k untuk
t k tipe
ti reall
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
• Operator
p
–
–
–
–
&, |, ^, ~,
, >>>
Operand harus bertipe integer
Precedence
Operator
~
> >>>
&
^
|
Precedence
(H)
(L)
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
• Digunakan untuk memanipulasi bit
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
• Bitwise AND
– 10012 & 00112 = 00012
– To extract the special area in variable by masking that area
• Bit OR
– 10012 | 00112 = 10112
• Exclusive AND
– 10012 ^ 00112 = 10102
• 1’s Complement
– ~ 000010102 = 111101012
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise :&
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise : |
:|
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise :
:^
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
|
|
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
^
^
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Mencari nilai biner suatu bil negatif
Mencari nilai biner suatu bil negatif
• Cara:
1 Tulis biner bilangan positifnya
1.
2. Dikurangi dengan 1
2. ~(hasil)
(
)
• Misal: Bagaimana representasi biner untuk bilangan –5 ?
0000 …. 0000 0101 Æ 5
1
0000 …. 0000 0100
1111 …. 1111 1011 Æ -5
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Mencari bilangan desimal dari bilangan
bi
biner negatif
tif
• Cara:
1. Lakukan negasi terhadap bilangan biner tersebut
2. Ditambah dengan 1
• Misal : 1111 …. 1111 1011
1111 …. 1111 1011 Æ berapa?
0000 …. 0000 0100
1
0000 … 0000 0101 --> -5
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
• Bitwise Shift Operator
– Shift left(> y = x / 2y
– Unsigned shift right(>>>)
• Give this operator because Java does not support
unsigned integer.
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
The Shift Operators
•
Shift operator:
– > : sign right shift
– >>> : unsigned right shift
•
Fundamentals of Shifting
– moving the bit pattern left or right.
– applied to arguments of integral types only.
•
•
Pada operator >>: Nilai bit yang baru adalah 0
Pada operator >> : Nilai bit yang baru tergantung pada bit pada
posisi terkiri yang akan digeser, jika nilainya :
– 1 Æ negatif,
if maka
k nilai
il i baru
b
adalah
d l h1
– 0 Æ positif, maka nilai baru adalah 0
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
The Shift Operators
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
The Shift Operators >>
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
The Conditional Operator
• Operator
– Expr1 ? Expr2 : Expr3 (3 Terms Operator)
max = x > y ? x : y ;
if ((x > y) max = x;;
else max = y;
m = a > b ? (c > a ? c : a) : (c > b ? c : b) ;
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Assignment Operators
E
Expr
1 = Expr
E
1 op Expr2
E 2
E 1 op= E
Expr1
Expr 2
• Operator
– Arithmetic operator : + - * / %
– Bitwise operator : & | ^ > >>>
sum = sum + i ;
sum += i ;
x = x * y + 1;
x *= y + 1;
x = x * (y+1)
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Shortcut Assignment Operators
Shortcut Assignment Operators
•
x=x+y;
Dapat disingkat x += y;
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Cast Operator
• Data Type
yp Castingg Operator
p
(Data Type) 식
– Cast operator : ( , )
(int) 3.75
(float) 3
(fl t) (1 / 2)
(float)
(float)1/2
===>
===>
===>
>
===>
3
3.0
0.0
00
0.5
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Unary : cast Æ (type)
Operator Unary : cast Æ
• Casting digunakan untuk melakukan
konversi tipe secara eksplisit ke dalam
type baru yang ada dalam tanda ()
().
• Akan dilakukan pengecekan tipe terlebih
dahulu.
dahulu
• Contoh:
int keliling
g = ((int)) ((Math.PI * diameter);
);
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Precedence
Operator
Association Precedence
Left Assoc.
(High)
() [] .
Left Assoc.
! ~ ++ -- + - (Data Type)
Left Assoc.
* / %
L ft Assoc.
Left
A
+ Left Assoc.
> >>>
Left Assoc.
< >= instance
Left Assoc.
== !=
Left Assoc.
&
Left Assoc.
^
Left Assoc.
|
Left Assoc.
Assoc
&&
Left Assoc.
||
Left Assoc.
?:
= += -= *= /= %= &= ^= |=
| = >>>= Left Assoc.
(Low)
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Precedence
•
•
•
•
•
a=x+y-z;
b = -x ;
c = -x++
x ;
d = -++x ;
e = -x + z ;
// Left Association
// Right Association
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator instanceof
Operator instanceof
•
Operator instance of digunakan untuk mengecek class suatu obyek.
•
Pengecekan dilakukan pada saat runtime.
import java.awt.*;
class CompareTest {
public static void main(String [] args) {
Button b = new Button(“Exit”);
boolean compare1 = b instanceof Button;
boolean compare2 = b instanceof Componenet;
S t
System.out.println(“Is
t
i tl (“I b a B
Button?”
tt ?” + compare1)
1)
System.out.println(“Is b a Component?” + compare2)
}
}
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator instanceof
Operator instanceof
• Hasil:
Is b a Button? true
I b a C
Is
Component?
t? t
true
• Argumen sebelah kiri adalah object reference
expression.
• Argumen sebelah kanan adalah class, interface, atau
array
Politeknik Elektronika Negeri Surabaya
Operator dan Assignment
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Macam--macam Operator
Macam
Arithmetic Op. : +
-
*
/
%
Relational Op. : > >= < >>>
Conditional Op. : ?:
Assign Op. : = += -= *= /= %= &= ^= |= >>= >=
Casting Op. : (Data Type)
Array Op. : []
Method Op. : () .
i t
instanceof
f Op.
O : instanceof
i t
f
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Arithmetic Operator
• Operator untuk operasi arithmetic
– Single term operator : +, – Binary term operator : +, -, *, /, %
x = -5 ;
x = -(-5) ;
x = -(3-5) ;
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Kondisi Arithmetic Error
Kondisi Arithmetic Error
• Tipe
p data (char,
(
byte,
y short, int, and long)
g) dibagi
g dengan
g
0 akan menyebabkan ArithmeticException.
– 1. int x = 2;
– 2. int y =0;;
– 3. int z = x/y;
• Untuk tipe data float dan double pembagian dengan nol
tidak membangkitkan error tapi menghasilkan infinity
(IPOSITIVE_INFINITY or NEGATIVE_INFINITY).
• Mencari akar dari bilangan negatif (float atau double)
akan membangkitkan nilai NaN (Not a Number)
Number), tapi
bukan exception.
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Nan
• In general, an NaN value indicates that the calculation
has no meaningful
g result in ordinary
y arithmetic.
• Two NaN values are defined in the java.lang package:
Float.NaN, and Double.NaN.
• Because NaN means not a sensible value, all the
following value of the double variable x, including NaN:
–
–
–
–
–
x < Double.NaN
x Double.NaN
x >= Double.NaN
x == Double.NaN
• As a corollary to the preceding example, consider
– double x = 7.0/0.0;
– x != Double.NaN (return true)
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator relasi
Operator relasi
• Operator relasi disebut juga operator perbandingan,
membandingkan dua operand dan mengembalikan
nilai true atau false.
p
dapat
p sembarang
g nilai numerik.
• Operand
• Ekspresi yang melibatkan operator relasi
– for, while, ...
• Operator
– =, ==, !=
↑ precedence ↓
a > b + c ===>a > (b + c)
b == x < y ===> b == (x < y)
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Kondisional
• Conditional Logical
g
Relationship
p dari dua
operand.
• Operator
– ! , && , ||
a < b && b < c
1
2
3
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Kondisional
The Short Circuit Logical Operators
– Untuk operasi AND, jika satu operand adalah false, maka hasil
sudah pasti false, tanpa harus menguji operand lainnya, karena
F && X = F
– Untuk operasi OR, jika satu operand adalah true, maka hasil
sudah pasti true, tanpa harus menguji operand lainnya, karena T
|| X = T
• Jadi,
– false && X = false
– true || X = true
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Contoh:
• Output
• x=3y=4
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Increment & Decrement
• Operator
– ++,
++ -– Prefix operator
– Postfix operator
n = 1;
x = ++n;
n = 1;
x = n++;
// x=2, n=2
// x=1, n=2
– Tidak dapat digunakan pada ekspresi aritmatika, hanya pada
variabel saja
(a + b)++
// error
– Tidak
Tid k dapat
d
t digunakan
di
k untuk
t k tipe
ti reall
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
• Operator
p
–
–
–
–
&, |, ^, ~,
, >>>
Operand harus bertipe integer
Precedence
Operator
~
> >>>
&
^
|
Precedence
(H)
(L)
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
• Digunakan untuk memanipulasi bit
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
• Bitwise AND
– 10012 & 00112 = 00012
– To extract the special area in variable by masking that area
• Bit OR
– 10012 | 00112 = 10112
• Exclusive AND
– 10012 ^ 00112 = 10102
• 1’s Complement
– ~ 000010102 = 111101012
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise :&
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise : |
:|
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise :
:^
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
|
|
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
^
^
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Mencari nilai biner suatu bil negatif
Mencari nilai biner suatu bil negatif
• Cara:
1 Tulis biner bilangan positifnya
1.
2. Dikurangi dengan 1
2. ~(hasil)
(
)
• Misal: Bagaimana representasi biner untuk bilangan –5 ?
0000 …. 0000 0101 Æ 5
1
0000 …. 0000 0100
1111 …. 1111 1011 Æ -5
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Mencari bilangan desimal dari bilangan
bi
biner negatif
tif
• Cara:
1. Lakukan negasi terhadap bilangan biner tersebut
2. Ditambah dengan 1
• Misal : 1111 …. 1111 1011
1111 …. 1111 1011 Æ berapa?
0000 …. 0000 0100
1
0000 … 0000 0101 --> -5
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
• Bitwise Shift Operator
– Shift left(> y = x / 2y
– Unsigned shift right(>>>)
• Give this operator because Java does not support
unsigned integer.
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
The Shift Operators
•
Shift operator:
– > : sign right shift
– >>> : unsigned right shift
•
Fundamentals of Shifting
– moving the bit pattern left or right.
– applied to arguments of integral types only.
•
•
Pada operator >>: Nilai bit yang baru adalah 0
Pada operator >> : Nilai bit yang baru tergantung pada bit pada
posisi terkiri yang akan digeser, jika nilainya :
– 1 Æ negatif,
if maka
k nilai
il i baru
b
adalah
d l h1
– 0 Æ positif, maka nilai baru adalah 0
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
The Shift Operators
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Bitwise
The Shift Operators >>
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
The Conditional Operator
• Operator
– Expr1 ? Expr2 : Expr3 (3 Terms Operator)
max = x > y ? x : y ;
if ((x > y) max = x;;
else max = y;
m = a > b ? (c > a ? c : a) : (c > b ? c : b) ;
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Assignment Operators
E
Expr
1 = Expr
E
1 op Expr2
E 2
E 1 op= E
Expr1
Expr 2
• Operator
– Arithmetic operator : + - * / %
– Bitwise operator : & | ^ > >>>
sum = sum + i ;
sum += i ;
x = x * y + 1;
x *= y + 1;
x = x * (y+1)
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Shortcut Assignment Operators
Shortcut Assignment Operators
•
x=x+y;
Dapat disingkat x += y;
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Cast Operator
• Data Type
yp Castingg Operator
p
(Data Type) 식
– Cast operator : ( , )
(int) 3.75
(float) 3
(fl t) (1 / 2)
(float)
(float)1/2
===>
===>
===>
>
===>
3
3.0
0.0
00
0.5
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Unary : cast Æ (type)
Operator Unary : cast Æ
• Casting digunakan untuk melakukan
konversi tipe secara eksplisit ke dalam
type baru yang ada dalam tanda ()
().
• Akan dilakukan pengecekan tipe terlebih
dahulu.
dahulu
• Contoh:
int keliling
g = ((int)) ((Math.PI * diameter);
);
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Precedence
Operator
Association Precedence
Left Assoc.
(High)
() [] .
Left Assoc.
! ~ ++ -- + - (Data Type)
Left Assoc.
* / %
L ft Assoc.
Left
A
+ Left Assoc.
> >>>
Left Assoc.
< >= instance
Left Assoc.
== !=
Left Assoc.
&
Left Assoc.
^
Left Assoc.
|
Left Assoc.
Assoc
&&
Left Assoc.
||
Left Assoc.
?:
= += -= *= /= %= &= ^= |=
| = >>>= Left Assoc.
(Low)
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator Precedence
•
•
•
•
•
a=x+y-z;
b = -x ;
c = -x++
x ;
d = -++x ;
e = -x + z ;
// Left Association
// Right Association
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator instanceof
Operator instanceof
•
Operator instance of digunakan untuk mengecek class suatu obyek.
•
Pengecekan dilakukan pada saat runtime.
import java.awt.*;
class CompareTest {
public static void main(String [] args) {
Button b = new Button(“Exit”);
boolean compare1 = b instanceof Button;
boolean compare2 = b instanceof Componenet;
S t
System.out.println(“Is
t
i tl (“I b a B
Button?”
tt ?” + compare1)
1)
System.out.println(“Is b a Component?” + compare2)
}
}
Politeknik Elektronika Negeri Surabaya
Pemrograman Berbasis Objek
Operator instanceof
Operator instanceof
• Hasil:
Is b a Button? true
I b a C
Is
Component?
t? t
true
• Argumen sebelah kiri adalah object reference
expression.
• Argumen sebelah kanan adalah class, interface, atau
array
Politeknik Elektronika Negeri Surabaya