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 Numerik Operator 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 long double 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 Variabel Expression Assignment operator
Assignment Expressions Expression dapat berupa assignment statements, disebut assignment expressions Contoh: r = j = k = 1; Assignment statements Variabel Assignment Expression 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
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 Contoh: A = A – 3 A -= 3 B = B % 7 B %= 7 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 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 dengan int newNum = 10 * i; i = i + 1; Contoh 2: int newNum = 10 * (++i); Contoh 3: double x = 1.0; double y = 5.0; double z = x-- + (++y); sama dengan 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++); 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 style int 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