03 Elemen Dasar Bahasa Java OOP Java 03 Elemen Dasar Bahasa Java
Elemen Dasar Bahasa Java Tipe Data Operator Kondisional Loop Instance var vs. Local var
Tipe Data (1) Terdapat tipe data primitif di Java yang bukan merupakan kelas
Tipe Data (2) Perbedaan Tipe Data Java dg C : ada tipe boolean yg bernilai true/false boolean != int tipe int java seragam di setiap platform (int di c = 1 word, bisa berbeda antar platform)
Tipe Data (3) Type casting : Tipe data default untuk literal floating point adalah double, tambahkan f untuk float (c: 3.14 = double, 3.14f = float) Type casting (pengubahan tipe data bersifat temporer), dilakukan dengan cara menuliskan tipe data baru yg dikehendaki didepan data/variabel didalam tanda () : int x = 2; (float) x * 3.14; //x diubah jadi float
Tipe Data (4) Di java terdapat tipe data primitif yg bukan merupakan objek (Java != bahasa pure OOP). Tipe data primitif lebih efisien, sedangkan tipe data kelas lebih OOP. Java menyediakan kelas pembungkus (wrapper class) supaya tipe data primitif dapat dimanipulasi sebagai objek, dan sebaliknya. Contoh : int pInt = 420; Integer wInt = new Integer(pInt); //boxing int p2 = wInt.intValue(); //unboxing
Tipe Data (5) int pInt = 420; Integer wInt; wInt = pInt; //autoboxing Mulai Java 5 (1.5), sudah disediakan autoboxing & autounboxing, dimana boxing & unboxing akan dilakukan secara otomatis. Contoh : int pInt = 420; Integer wInt; wInt = pInt; //autoboxing int p2 = wInt; //autounboxing
Tipe Data (6) Primitive Data Type boolean byte char short int long float double Wrapper Class Boolean Byte Character Short Integer Long Float Double
Operator (1) Matematik: +, -, ++, --, *,/,% (modulus), unary + - Perbandingan: ==, !=, <, >, <=, >=, instanceof Boolean: &&, ||, ! Bit: &, |, ~, <<, >>, >>> (unsigned shift) Ternary: cond?true-expr:false-expr Asignment: =, +=, -=, *=, /=, <<=, >>=, >>>=, &=, |= String: + (penggabungan string)
Operator (2) >>>: unsigned shift right x instanceof b sign bilangan (bit terkiri) juga di-shift ke kanan x instanceof b true jika x (objek) adalah instans dari kelas b
Operator (3) No Evaluasi Operator Hirarki (urutan eksekusi) operator dan arah evaluasi (L to R = kiri ke kanan, R to L = kanan ke kiri) No Evaluasi Operator 1 R to L ++ -- + - ~ ! (<tipe_data>) 2 L to R * / % 3 + - 4 << >> >>> 5 < > <= >= instanceof 6 == != 7 & 8 ^ 9 | 10 && 11 || 12 <boolean_expr> ? <expr1> : <expr2> 13 = *= /= %= += -= <<= >>= >>>= &= ^= |=
Operator (4) Contoh penggunaan Ternary operator: public class CobaTernary { public static void main(String[] args) { int c, d; String s=null; c = -5; s = c > 0 ? "positif" : "negatif"; System.out.println("Angka " + c + " adalah " + s); d = c > 0 ? c : -c; System.out.println("Nilai absulut dari " + c + " adalah " + d); } }
Operator (5) Contoh penggunaan loop for-each: public class CobaForEach { public static void main(String[] args) { int[] data = {3, 7, 2, 8, 4}; for (int c : data) System.out.print(" " + c); } }
Kondisional (1) Simple if : if (<boolean_expression>) <statement_or_block>; Simple if else : <true_statement_or_block>; else <false_statement_or_block>;
Kondisional (2) Complex if – else if : if (<boolean_expression>) <statement_or_block>; else if (<boolean_expression>) else
Kondisional (3) switch : switch (<variable>) { case <value1> : <statement_or_block>; [break;] case <value2> : default : } <variabel> bisa bertipe : byte, short, int, char, enum
Kondisional (4) Latihan Buat kelas Nilai, yg diantaranya memiliki method untuk menghitung Nilai Akhir, dan Nilai Huruf Untuk Nilai Huruf buat dengan menggunakan if – else if
Kondisional (5) Method hitung_NA() menghitung nilai akhir berdasarkan nilai UTS,UAS & KAT. Method pencarian nilai huruf menggunakan if..else if Method sebutan_nilai menghasilkan sebutan nilai berdasarkan nilai huruf, dengan menggunakan switch: ‘A’ “baik sekali”, ‘B’ “baik” ‘C’ “cukup” ‘D’ “kurang” ‘E’ “kurang sekali” Nilai +kelas : char +nilai_UTS : int +nilai_UAS : int +nilai_KAT : int +nilai_akhir : float +nilai_huruf : char +hitung_NA() : void +hitung_NH() : void +sebutan_nilai() : String
Looping (1) for loops : for (<init_expr>; <test_expr>; <alter_expr>) <statement_or_block>;
Looping (2) while loops : while (<test_expr>) <statement_or_block>;
Looping (3) do - while loops : do <statement_or_block>; while (<test_expr>);
Loop flow control Looping (4) break : break [<label>]; continue : continue [<label>]; label : <label> : <statement>
for-each loop Looping (5) <statement_or_block>; for (<tipe> <element> : <array>) <statement_or_block>;
Looping (6) Contoh penggunaan loop for-each: public class CobaForEach { public static void main(String[] args) { int[] data = {3, 7, 2, 8, 4}; for (int c : data) System.out.print(" " + c); } }
Instance var vs. Local var (1) Instance variabel (attribut) terletak didalam kelas diluar method, sedangkan local variabel didalam method. Instance variabel otomatis di init, local variabel tidak
Instance var vs. Local var (2) Kode berikut akan menghasilkan pesan error, meskipun kalau kita telusuri secara manual ini tidak akan error. Evaluasi java lebih strict, dimana kode didalam if ada kemungkinan tidak dieksekusi. public int hitung() { int x = 3, y; if (x > 0) y = 1; return y; }
Instance var vs. Local var (3) Jika instance variabel (attribut) tidak diinisialisasi pada konstruktor, maka akan otomatis di init dengan nilai awal sbb : Tipe Atribut Nilai awal byte 0 short 0 int 0 long 0L float 0.0F double 0.0D char ‘\u0000’ boolean false semua reference type null (array, string, objek)
Exercise leads to Mastery Words for today Exercise leads to Mastery