• OPERASI ARITMETIKA
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu:
• Menggunakan sintaks untuk melakukan operasi aritmetika
• Menggunakan kaidah konvensi penamaan pada pemrograman
Outline Materi
• Operator Numerik
• Assignment Statement
• Assignment Expressions
• Arithmetic Expressions
• Operator Shorthand
• Operator Increment dan Decrement
• Konvensi Penamaan
Operator NumerikOperator Deskripsi Contoh Hasil
+ Penambahan(Addition)
34 + 1 35
- Pengurangan(Subtraction)
34.0 – 0.1 33.9
* Pengalian(Multiplication)
300 * 30 9000
/ Pembagian(Division)
1.0 / 2.0 0.5
% Sisa Hasil Bagi(Remainder)
20 % 3 2
Operator Numerik
• 4 tipe data bilangan bulat pada Java: byte, short, int, dan long
• 2 tipe data bilangan desimal pada Java: float, dan double
• Penggunaan bilangan desimal double lebih akurat daripada float
• Hasil pembagian dari 2 bilangan bulat adalah bilangan bulat– Contoh: 5/2 = 2 (bukan 2.5), hasilnya dibulatkan
ke bawah
Operator Numerik• Pada pernyataan “luas = 3.14 * rad * rad;”
Luas, 3.14, rad, rad operand* operator= pernyataan assignment
• Operand dapat berbeda tipe data, Java akan mengkonversi ke tipe data terbesar (widening a cast) secara otomatis
• Contoh:byte i = 100;long k = i * 3 + 4; // i dikonversi ke long, hasil k berupa longdouble d = i * 3.1 + k / 2; // i dan k dikonversi ke double, hasil d berupa double
Operator Numerik• Operator % adalah sisa hasil bagi / modulo / remainder• Dapat digunakan untuk bilangan bulat positif/negatif
ataupun desimal• Contoh:
10%7 = 3 (Keterangan: 10 / 7 = 1, dan sisa 3)
6 % 7 = 6 (Keterangan: 6 / 7 = 0, dan sisa 6)
-7 % 3 = -1 (Keterangan: -7 / 3 = -2, dan sisa -1)
-12 % 4 = 0 (Keterangan: -12 / 4 = -3, dan sisa 0)
20 % -13 = 7 (Keterangan: 20 / -13 = -1, dan sisa 7)
-26 % -8 = -2 (Keterangan: -26 / -8 = 3, dan sisa -2)
Operator Numerik• Pada 20 % -13 = 7
20 = dividend (yang dibagi)
-13 = divisor (pembagi)
7 = hasil
• Modulo/remainder akan menghasilkan bilangan negatif jika dividendnya negatif
• Modulo/remainder bermanfaat dalam programming– Contoh: Pencarian bilangan genap/ganjil, Pencarian
hari pada kalendar
Assignment Statements• Digunakan untuk pemberian nilai
• Menggunakan (=) sebagai assignment operator
• Assignment statements adalah:
Variabel = expression
• Contoh: luas = 3.14 * radius * radius;
Assignment statements
ExpressionVariabel
Assignment operator
Assignment Expressions• Expression dapat berupa assignment
statements, disebut assignment expressions
• Contoh: r = j = k = 1;
Assignment statements
Assignment ExpressionVariabel
Assignment
operator
Arithmetic Expressions
• Expressions yang melibatkan operator numerik• Contoh:
• Arithmetic Expressions:
(3+4*x)/5 – 10*(y-5)*(a+b+c)/x+9*(4/x+(9+x)/y)• Operasi dalam tanda kurung (…) akan dieksekusi
terlebih dahulu• Memungkinkan tanda kurung yang bersifat nested
y
x
xx
cbayx 949
))(5(10
5
43
Arithmetic Expressions
• Setelah operator tanda kurung (…), prioritas eksekusi adalah * dan /, lalu + dan –
• Jika ada > 1, prioritas eksekusi dari kiri ke kanan
• Java mengacu pada operator precedence dan associativity saat mengeksekusi expressions
Arithmetic Expressions
Operator Shorthand
• Variabel yang digunakan, dimodifikasi, dan di-assign ulang pada variabel yang sama
• Contoh:i = i + 8
Dapat digantikan menjadi i += 8
• += disebut addition assignment operator dalam bentuk ringkas (shorthand operator)
• Operator tidak dipisahkan spasi (harus +=, bukan + =)
Operator Shorthand
Operator Name Example Equivalent
+= Addition assignment A += 8 A = A + 8
-= Substratction assignment A -= 8 A = A – 8
*= Multiplication assignment A *= 8 A = A * 8
/= Division assignment A /= 8 A = A / 8
%= Remainder assignment A %= 8 A = A % 8
• Contoh:A = A – 3 A -= 3
B = B % 7 B %= 7
C = C * 8 C *= 8
Operator Increment dan Decrement
• Operator shorthand untuk menaikan dan menurunkan 1 nilai
• Sering digunakan dalam perulangan
• Operator: ++ dan --
• Dalam notasi prefix (di awal) dan postfix (di akhir)
• Operator tidak dipisahkan spasi (harus ++, bukan + +)
Operator Increment dan Decrement
Operator
Name Description
++var preincrement Nilai var ditambahkan 1 dahulu, lalu pengoperasian
var++ postincrement Pengoperasian dahulu, lalu nilai var ditambahkan 1
--var predecrement Nilai var dikurangi 1 dahulu, lalu pengoperasian
var-- postdecrement
Pengoperasian dahulu, lalu nilai var dikurangi 1
Operator Increment dan Decrement
• Contoh 1:int i = 10;int newNum = 10 * i++;sama denganint i = 10;int newNum = 10 * i;i = i + 1;
• Contoh 2:int i = 10;int newNum = 10 * (++i);sama denganint i = 10;i = i + 1;int newNum = 10 * i;
• Contoh 3:double x = 1.0;double y = 5.0;double z = x-- + (+
+y);sama dengandouble x = 1.0;double y = 5.0;y = y + 1;double z = x + y;x = x – 1;
Operator Increment dan Decrement
Operator Increment dan Decrement
• Awal i=8; dan j=3;• i+=(++j);
Sama dengan:
j=j+1; j=4
i=i+j; i=12
• i+=(j++);Sama dengan:
i=i+j; i=16
j=j+1; j=5
Did You Know?
• Statements/Expressions bisa dilakukan langsung di dalam System.out.println(…);
• Contoh:System.out.println(i=10);
System.out.println(++i);
System.out.println(i%=2);
System.out.println(i=i+(i=5));
System.out.println(i=(i=1)+2);
Did You Know?
Did You Know?• Penggunaan tanda petik (“) pada
System.out.println(…) menyatakan string• Penggunaan (+) pada System.out.println(…)
berarti menyambungkan 2/lebih string• Contoh:
System.out.println(“Hasil penjumlahan i+j=”+i+j);
berbeda dengan
System.out.println(“Hasil penjumlahan i+j=“+(i+j));
Did You Know?
Advanced Learning• Konvensi Penamaan Variabel dan Fungsi
– Lowercase untuk penamaan variabel dan fungsi, jika lebih dari 1 kata, gabungkan dan gunakan huruf kapital untuk kata kedua dan berikutnya
– Contoh: radius, area, showInputDialog, println, nextInt
• Konvensi Penamaan Class– Menggunakan huruf kapital untuk setiap awal kata– Contoh: ComputeArea, JOptionPane, System, Math, Scanner
• Konvensi Penamaan Konstanta– Menggunakan huruf kapital semua dan setiap kata dipisahkan
underscore ( _ )– Contoh: PI, MAX_VALUE
Advanced Learning• Konvensi penamaan ini menggunakan standar Java• Memudahkan programmer lain saling membaca
kode• Jangan memberikan nama class yang sudah ada di
Java– Contoh: Math, System– Class akan dipelajari lebih lanjut di Algoritma dan MOOP
2
• Hindari untuk menyingkat penamaan– Contoh: numberOfStudents akan lebih baik (deksriptif)
daripada numStuds, numOfStuds, atau numOfStudents
Advanced Learning• Sebaiknya konsisten terhadap indentansi dan spasi
– Contoh: int i= 3+4 * 4 bad styleint i = 3 + 4 * 4 good style
• Ada 2 jenis block style yang popular– Next-line style
public class Test{
public static void main(String[] args){}
}– End-of-line style
public class Test {public static void main(String[] args) {}
}
Referensi
• Introduction to Java Programming. 7ed. Liang. 2009. p58-81
• Java Software Solutions. 5ed. Lewis & Loftus. 2007. p96-99, p103-114
• Java A Beginner’s Guide. 3ed. Herbert. 2005. p52-55, p58-68
• Dasar Pemrograman Java 2. Abdul Kadir. 2004. p42-61
• The Complete Referenc Java. 5ed. Herbert. 2005. p58-62