280 likes | 498 Views
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
E N D
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 • 4 tipe data bilanganbulatpada Java: byte, short, int, danlong • 2 tipe data bilangandesimalpada Java: float, dandouble • Penggunaanbilangandesimaldoublelebihakuratdaripadafloat • Hasilpembagiandari 2 bilanganbulatadalahbilanganbulat • Contoh: 5/2 = 2 (bukan 2.5), hasilnyadibulatkankebawah
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
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 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 • Contoh 1: int i = 10; int newNum = 10 * i++; sama dengan int i = 10; int newNum = 10 * i; i = i + 1; • Contoh 2: int i = 10; int newNum = 10 * (++i); sama dengan int i = 10; i = i + 1; int newNum = 10 * i; • Contoh 3: • double x = 1.0; • double y = 5.0; • double z = x-- + (++y); • sama dengan • double x = 1.0; • double y = 5.0; • y = y + 1; • double z = x + y; • x = x – 1;
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? • 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));
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