Tujuan Setelah menyelesaikan bab ini, siswa diharapkan mampu: JAVA Education Network Indonesia Dasar Pemrograman Pengenalan Pemrograman 1 • Mengidentifikasi bagian-bagian dasar program Java • Membedakan beberapa hal yang penting pada Java seperti, Java literal, tipe data primitif, tipe variabel, identifier dan operator. • Membuat program Java sederhana dengan menggunakan konsep yang telah dipelajari pada bab ini. jeni.jardiknas.org Mempelajari Program Java Pertama Mempelajari Program Java Pertama 1 2 3 4 5 6 public class Hello { /** * Program Java My first */ public static void main( String[] args ){ //menampilkan string Hello world pada layar System.out.println(“Hello world”); 1 2 } 1 2 } • Deklarasi nama dari class yaitu Hello • Pada Java, semua code harus berada di dalam deklarasi sebuah class. • Class menggunakan akses berupa akses public, hal ini bisa membuat class Hello bisa diakses oleh class lain yang berada di luar packages (packages adalah sekumpulan dari class). Kita akan membahas packages dan akses class pada bab selanjutnya. Mempelajari Program Java Pertama public class Hello { /** * Program Java My first */ • Baris berikutnya merupakan tanda kurung kurawal { yang merupakan awal dari sebuah blok. • Pada code ini, kita menempatkan tanda kurung kurawal pada baris baru setelah deklarasi kelas, akan tetapi kita dapat juga menempatkannya pada awal baris. Sehingga code tersebut dapat ditulis seperti: public class Hello { /** * Program Java My first */ Mempelajari Program Java Pertama public class Hello { /** * program Java My first */ • Tiga baris selanjutnya adalah comment pada Java. • Comment: – Catatan yang ditulis sebagai dokumentasi pada sebuah bagian code. – Comment bukanlah bagian dari program, akan tetapi digunakan untuk tujuan dokumentasi. – Dengan menambahkan comment pada source code merupakan cara yang baik untuk berlatih pemrograman. Mempelajari Program Java Pertama public class Hello { /** * program Java My First */ public static void main( String[] args ){ • Merupakan nama dari sebuah method pada class Hello yaitu main method. • Main method merupakan starting point pada program Java. • Semua program Java kecuali Applet dijalankan pada method main. • Pastikan untuk mengikuti tanda yang tepat Mempelajari Program Java Pertama public class Hello { /** * program Java My First */ public static void main( String[] args ){ //menampilkan string “Hello world” pada layar • Baris selanjutnya adalah comment pada Java. Mempelajari Program Java Pertama public class Hello { /** * program Java My First */ public static void main( String[] args ){ //menampilkan string “Hello world” pada layar System.out.println(“Hello world”); Mempelajari Program Java Pertama public class Hello { /** * program Java My First */ public static void main( String[] args ){ //menampilkan string “Hello world” pada layar System.out.println(“Hello world”); } • Command System.out.println() mencetak text yang ada antara tanda petik ganda pada layar. Panduan Pemrograman 1. Program Java Anda harus diakhiri dengan ekstensi berupa .java. 2. Nama file harus sama dengan nama dari class public. Sebagai contoh, apabila nama dari class public adalah Hello, anda harus menamakan filenya Hello.java. } • Dua baris berikutnya yang terdapat dua tanda kurung kurawal digunakan untuk menutup method main dan deklarasi class. Java Comments • Comments – Merupakan catatan yang ditulis pada sebuah code untuk tujuan dokumentasi. – Catatan tersebut bukanlah bagian dari program dan tidak mempengaruhi jalannya program. • 3 Tipe comment pada Java 3. Anda sebaiknya menuliskan comment untuk menjelaskan perilaku dari sebuah class, atau perilaku dari sebuah method. – C++ Style Comment – C Style Comment – Special Javadoc Comment Java Comments • C++-Style Comment – C++ Style comments diawali dengan tanda // – Semua text sesudah // merupakan sebuah comment – Contoh: // Ini adalah C++ style atau single line comments Java Comments • C-Style Comments – C-style comment disebut juga multiline comment, diawali dengan tanda /* dan diakhiri dengan tanda */. – Semua text yang berada antara dua tanda tersebut adalah comment. – Tidak seperti C++ style comment, C-Style comment dapat menampung banyak baris sekaligus. – Contoh: /* Ini adalah contoh dari C style atau multiline comments */ Java Comments • Special Javadoc Comments – Special Javadoc comment digunakan untuk membuat sebuah dokumentasi HTML untuk program Java Anda. – Anda dapat membuat javadoc comment dengan mengawali baris dengan /** dan mengakhirinya dengan */. – Seperti C-style comments, comment ini dapat memuat banyak baris. – Comment ini dapat memuat tags untuk menambah informasi pada comment Anda. – Contoh: /** This is an example of special java doc comments used for \n generating an html documentation. It uses tags like: @author Florence Balagtas @version 1.2 */ Java Statements • Statement – Satu atau beberapa baris code diakhiri dengan sebuah tanda titik koma. – Contoh: System.out.println(“Hello world”); Java Blocks • Block – Adalah satu atau beberapa statement yang berada diantara tanda kurung kurawal buka dan tanda kurung kurawal tutup yang mengelompokkan beberapa statement ke dalam sebuah unit. – Block statement dapat disarangkan tidak terbatas. – Beberapa spasi kosong diperbolehkan. – Contoh: public static void main( String[]args ){ System.out.println("Hello"); System.out.println("world”); } Panduan Pemrograman Java Statement dan Block 1. Untuk membuat block, Anda dapat menempatkan kurung kurawal buka satu baris setelah deklarasi block. Contohnya: public static void main(String[] args){ atau Anda dapat menambahkannya pada baris berikutnya seperti, public static void main( String[] args ) { Panduan Pemrograman Java Statement dan Block 2. Anda sebaiknya memasukkan statement pada baris selanjutnya setelah awal dari block. Contohnya: public static void main( String[] args ){ System.out.println("Hello"); System.out.println("world"); } Java Identifiers • Identifier harus diawali dengan huruf, tanda garis bawah “_”, tanda dolar “$”. Huruf dapat menggunakan huruf kecil atau huruf kapital. Karakter selanjutnya dapat menggunakan angka dari 0 sampai 9. • Identifier tidak dapat menggunakan kata kunci Java (Java keyword) seperti class, public, void, dll. Kita akan mempelajari lebih tentang Java keyword pada bab selanjutnya. Panduan Pemrograman Java Identifiers 3. Pada saat memberikan nama identifier lebih dari satu kata, gunakan huruf kapital untuk menunjukkan huruf awal dari kata selanjutnya kecuali kata awal. Contohnya, charArray, fileNumber, ClassName. 4. Hindari penggunaan garis bawah pada awal identifier seperti _read atau _write. Java Identifiers • Identifier – Adalah token (tanda) yang mewakili nama dari variabel, method, class, dll. – Contoh dari identifier adalah: Hello, main, System, out. • Java identifier adalah case-sensitive. – Hal ini berarti bahwa identifier Hello tidak sama dengan hello. Panduan Pemrograman Java Identifiers 1. Untuk penamaan class, gunakan huruf kapital pada huruf awal dari nama class, contohnya, ThisIsAnExampleOfClassName 2. Untuk nama dari method dan variabel, huruf awal menggunakan huruf kecil. Contohnya, thisIsAnExampleOfMethodName Java Keywords • Keyword adalah identifier khusus yang sudah disediakan oleh Java untuk tujuan tertentu. • Anda tidak dapat menggunakan keyword sebagai nama dari variabel, class, method ... dll. • Berikut adalah daftar dari Java keyword Java Keywords Java Literals • Literal adalah token (tanda) yang tidak berubah atau konstan. • Beberapa tipe literal dari Java adalah: – Integer Literals – Floating-Point Literals – Boolean Literals – Character Literals – String Literals Java Literals: Integer Java Literals: Integer • Integer literals memiliki beberapa bentuk yaitu: – decimal (base 10) – hexadecimal (base 16) – octal (base 8). • Penandaan khusus pada saat menggunakan integer literal pada program: – Decimal • Tidak ada penandaan khusus • contoh: 12 – Hexadecimal • Diawali dengan 0x atau 0X • contoh: 0xC – Octal • Diawali dengan 0 • contoh: 014 Java Literals: Floating Point • Mewakili bilangan desimal dengan pecahan – Contoh: 3.1416 • Dapat ditulis dengan notasi standard atau scientific – Contoh: 583.45 (standard), 5.8345e2 (scientific) Java Literals: Boolean • Boolean literal hanya memiliki dua nilai, true atau false. Java Literals: Character Java Literals: Character • Character Literal mewakili satu Unicode characters. • Untuk menggunakan sebuah character literal, tandai character dengan memberikan tanda petik satu diantaranya. • Unicode character • Contoh – Adalah 16-bit character set yang menggantikan 8-bit ASCII character set. – Unicode mengijinkan pengisian simbol dan special character dari bahasa lain. Java Literals: String • String literal mewakili banyak character dan ditandai dengan tanda petik ganda. • Contoh dari string literal adalah, “Hello World”. Tipe Data Primitif: Logical-boolean • Tipe data boolean mewakili dua pernyataan: true dan false. • Contoh, boolean result = true; • Contoh diatas, mendeklarasikan sebuah variabel bernama result sebagai tipe data boolean dan memberikan nilai true. – Huruf a, diwakili dengan 'a'. – Special character seperti newline character menggunakan tanda backslash diikuti dengan character code. Contoh, '\n' untuk newline character, '\r' untuk carriage return, '\b' untuk backspace. Tipe Data Primitif • Bahasa pemrograman Java memiliki delapan tipe data primitif. – boolean (logical) – char (textual) – byte – short – int – long (integral) – double – float (floating point). Tipe Data Primitif: Textual-char • Sebuah tipe data character (char), mewakili satu Unicode character. • Ditutup dengan tanda petik satu (' '). • Contoh, ‘a’ //huruf a ‘\t’ //character tab • Untuk mewakili special character seperti ' (tanda petik satu) atau “ (tanda petik ganda), gunakan tanda backslash \. Contoh, '\'' //untuk tanda petik satu '\"' //untuk tanda petik ganda Tipe Data Primitif: Textual-char Tipe Data Primitif: Integral – byte, short, int & long • Meskipun String bukanlah tipe data primitif (merupakan Class), kita akan memperkenalkan String pada bab ini. • Tipe data integral pada Java memiliki tiga bentuk – desimal, oktal atau heksadesimal. • Contoh, 2 //nilai desimal 2 077 //Awalan 0 menandakan nilai oktal 0xBACC //Awalan 0x menandakan nilai heksadesimal • String mewakili tipe data yang mengandung banyak character. String bukanlah tipe data primitif, akan tetapi sebuah class. • Tipe integral menggunakan int sebagai tipe data default. • Anda dapat mendefinisikan nilai longnya dengan menambahkan huruf l atau L. • Contoh:10L • Ditutup dengan tanda petik ganda (“”). • Contoh, String message=“Hello world!”; Tipe Data Primitif: Integral – byte, short, int & long • Tipe data integral memiliki rentang nilai: Tipe Data Primitif: Integral – byte, short, int & long • Panduan pemrograman: Untuk mendefinisikan nilai long, tidak disarankan menggunakan huruf L kecil karena akan sulit untuk membedakan dengan angka 1. Tipe Data Primitif: Floating Point – float and double • Tipe floating point menggunakan double sebagi tipe data default. • Floating-point literal memberikan nilai desimal atau salah satu dari nilai berikut ini, E atau e //(nilai exponen) F atau f //(float) D atau d //(double) • Contoh, 3.14 //Sebuah floating-point (double) 6.02E23 //Nilai floating-point yang besar 2.718F //Sebuah nilai float 123.4E+306D//Sebuah nilai double dengan redundan D Tipe Data Primitif: Floating Point – float and double • Tipe data floating-point memiliki nilai rentang: Variabel • Variabel adalah sebuah item dari data yang digunakan untuk menyimpan sebuah nilai dari objek. Deklarasi dan Inisialisasi Variabel • Mendeklarsikan variabel: <tipe data> <nama> [=inisialisasi nilai]; • Variabel memiliki: – Tipe data • Tipe data merupakan tipe dari nilai yang dapat disimpan variabel. – Nama • Catatan: Nilai yang berada antara tanda <> adalah nilai yang harus ada, sedangkan nilai yang berada antara tanda [] adalah optional (boleh tidak diisi). • Nama variabel harus mengikuti aturan seperti identifier. Deklarasi dan Inisialisasi Variabel: Contoh Program public class VariableSamples { public static void main( String[] args ){ //deklarasikan sebuah tipe data dengan nama variabel // result dan tipe data boolean boolean result; //deklarasikan sebuah tipe data dengan nama variabel // option dan tipe data char char option; option = 'C'; //memberi nilai 'C' pada variabel option //deklarasikan sebuah tipe data dengan nama variabel //grade, tipe data double dan nilai inisialisasi 0.0 double grade = 0.0; } } Deklarasi dan Inisialisasi Variabel: Panduan Pemrograman 3. Deklarasikan satu variabel pada satu baris code. Contohnya pada deklarasi variabel-variabel berikut ini, double exam=0; double quiz=10; double grade = 0; adalah lebih baik daripada deklarasi berikut ini, double exam=0, quiz=10, grade=0; Deklarasi dan Inisialisasi Variabel: Panduan Pemrograman 1. Merupakan hal yang baik dilakukan untuk menginisialisasi variabel setelah Anda mendeklarasikannya. 2. Gunakan nama yang deskriptif untuk menamakan variabel Anda. Contoh, jika anda ingin mempunyai variabel yang mengandung nilai grade dari siswa, beri nama variabel tersebut dengan grade, bukan dengan huruf random. Mencetak Nilai Variabel • Untuk mencetak nilai dari sebuah variabel, kita dapat menggunakan command berikut ini: System.out.println() System.out.print() Outputting Variable Data: Sample Program 1 2 3 4 5 public class OutputVariable { public static void main( String[] args ){ int value = 10; char x; x = ‘A’; System.out.println( value ); System.out.println( “The value of x=“ + x ); 1 2 } 3 4 } Program diatas akan memberikan output yaitu: System.out.println() vs. System.out.print() • System.out.println() – Memberikan satu baris baru pada akhir data output • System.out.print() – Tidak memberikan baris baru pada akhir data output 10 The value of x=A Contoh: System.out.println() vs.System.out.print() • Program 1: System.out.print(“Hello”); System.out.print(“World”); Output: HelloWorld • Program 2: System.out.println(“Hello”); System.out.println(“World”); Output: Hello World Reference Variables vs. Primitive Variables • Reference Variables – Variabel yang disimpan pada alamat di lokasi memori – Menunjuk pada lokasi memory yang lain dimana data tersebut berada – Ketika Anda mendeklarasikan variabel pada sebuah class, Anda sebenarnya mendeklarasikan reference variabel pada object di class tersebut. Reference Variables vs. Primitive Variables • Terdapat dua tipe variabel di Java: – Primitive Variables – Reference Variables • Primitive Variables – Adalah variabel dengan tipe data primitif – Menyimpan data di memori dimana lokasi variabel tersebut berada Contoh • Misalkan kita memiliki dua variabel dengan tipe data int dan String. int num = 10; String name = "Hello" Contoh Operator • Beberapa tipe operator: – arithmetic operators – relational operators – logical operators – conditional operators • Gambar di bawah ini adalah lokasi memory yang ada pada komputer, dimana Anda memiliki alamat pada cell memory berupa nama variabel dan data yang dimiliki. • Operator-operator diatas memiliki ciri tertentu sehingga compiler bisa mengetahui operator mana yang akan dievaluasi terlebih dahulu pada saat banyak operator digunakan pada satu statement Arithmetic Operators: Contoh Program Arithmetic Operators 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class ArithmeticDemo { public static void main(String[] args){ //beberapa angka int i = 37; int j = 42; double x = 27.475; double y = 7.22; System.out.println("Nilai Variabel..."); System.out.println(" i = " + i); System.out.println(" j = " + j); System.out.println(" x = " + x); System.out.println(" y = " + y); System.out.println("Penjumlahan..."); System.out.println(" i + j = " + (i + j)); System.out.println(" x + y = " + (x + y)); Arithmetic Operators: Contoh Program 1 2 3 4 //pengurangan angka System.out.println("Pengurangan..."); System.out.println(" i - j = " + (i – j)); System.out.println(" x - y = " + (x – y)); Arithmetic Operators: Contoh Program //Penghitungan modulus (sisa pembagian) System.out.println("Penghitungan modulus..."); System.out.println(" i % j = " + (i % j)); System.out.println(" x % y = " + (x % y)); 1 2 3 4 1 2 3 4 //pengalian angka System.out.println("Pengalian..."); System.out.println(" i * j = " + (i * j)); System.out.println(" x * y = " + (x * y)); //Penghitungan kombinasi variabel System.out.println("kombinasi variabel..."); System.out.println(" j + y = " + (j + y)); System.out.println(" i * x = " + (i * x)); 1 2 3 4 1 2 3 4 //pembagian angka System.out.println("Pembagian..."); System.out.println(" i / j = " + (i / j)); System.out.println(" x / y = " + (x / y)); 5 } 6 } Arithmetic Operators Arithmetic Operators: Contoh Output Program Nilai variabel... i = 37 j = 42 x = 27.475 y = 7.22 Penjumlahan... i + j = 79 x + y = 34.695 Pengurangan... i - j = -5 x - y = 20.255 Pengalian... i * j = 1554 x * y = 198.37 Pembagian... i / j = 0 x / y = 3.8054 Computing Nilai Modulus... i % j = 37 x % y = 5.815 Kombinasi variabel... j + y = 49.22 i * x = 1016.58 • Catatan – Ketika nilai integer dan angka floating-point digunakan sebagai operand pada operasi aritmatika, hasilnya akan menjadi floating point. Nilai secara implisit integer diubah menjadi nilai floating-point sebelum operasi berlangsung. Operator Increment & Decrement Operator Increment & Decrement • unary increment operator (++) • unary decrement operator (--) • Increment dan decrement operator akan menambah dan mengurangi nilai dengan 1. • Contoh, ekspresi berikut ini, count=count + 1;//increment the value of count by 1 adalah sama dengan, count++; Operator Increment & Decrement • Operator increment dan decrement dapat diletakkan sebelum atau sesudah operand. • Ketika digunakan sebelum operand, hal ini akan membuat variabel ditambah atau dikurangi dengan nilai 1, dan selanjutnya nilai yang baru akan digunakan pada ekspresi selanjutnya. • Contoh, int int int k = i = j = k = ++j 10; 3; 0; + i; //akan menghasilkan k = 4+10 = 14 Operator Increment & Decrement • Ketika operator increment dan decrement diletakkan setelah operand, nilai lama dari variabel akan digunakan pada ekspresi selanjutnya. • Contoh, int int int k = 13 i = j = k = j++ 10; 3; 0; + i; //akan menghasilkan k = 3+10 = Relational Operators Operator Increment & Decrement Panduan Pemrograman • Operator relational membandingkan beberapa nilai dan menentukan hubungan antara nilai-nilai tersebut. • Output dari perbandingan tersebut adalah nilai boolean antara true atau false. • Gunakanlah ekspresi yang mengandung operator increment dan decrement yang simpel dan mudah dimengerti. Relational Operators: Contoh Program 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public class RelationalDemo{ public static void main(String[] args){ //beberapa angka int i = 37; int j = 42; int k = 42; System.out.println("Nilai variabel..."); System.out.println(" i = " +i); System.out.println(" j = " +j); System.out.println(" k = " +k); //lebih besar dari System.out.println("Lebih besar..."); System.out.println(" i > j = "+(i>j));//false System.out.println(" j > i = "+(j>i));//true System.out.println(" k > j = "+(k>j));//false Relational Operators: Contoh Program 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 //lebih besar atau sama dengan System.out.println("lebih besar atau sama dengan..."); System.out.println(" i >= j = "+(i>=j));//false System.out.println(" j >= i = "+(j>=i));//true System.out.println(" k >= j = "+(k>=j));//true //lebih kecil System.out.println("lebih kecil..."); System.out.println(" i < j = "+(i<j));//true System.out.println(" j < i = "+(j<i));//false System.out.println(" k < j = "+(k<j));//false //lebih kecil atau sama dengan System.out.println("lebih kecil atau sama dengan..."); System.out.println(" i <= j = "+(i<=j));//true System.out.println(" j <= i = "+(j<=i));//false System.out.println(" k <= j = "+(k<=j));//true Relational Operators: Sample Program 1 2 3 4 5 6 7 8 9 10 //sama dengan System.out.println("sama dengan..."); System.out.println(" i == j = " + (i==j));//false System.out.println(" k == j = " + (k==j));//true //tidak sama dengan System.out.println("tidak sama dengan..."); System.out.println(" i != j = " + (i!=j));//true System.out.println(" k != j = " + (k!=j));//false } } Relational Operators: Contoh Output Program Nilai i j k Lebih i j k Lebih i j k Lebih i j k variabel... Lebih kecil atau sama dengan... = 37 i <= j = true = 42 j <= i = false = 42 k <= j = true besar... Sama dengan... > j = false i == j = false k == j = true > i = true > j = false Tidak sama dengan... besar atau sama dengan... i != j = true >= j = false k != j = false >= i = true >= j = true kecil... < j = true < i = false < j = false Logical Operators • Logical operator memiliki satu atau dua boolean operand yang akan memberikan nilai hasil boolean. • Ada enam logical operator yaitu: – && (logical AND) – & (boolean logical AND) – || (logical OR) – | (boolean logical inclusive OR) – ^ (boolean logical exclusive OR) – ! (logical NOT) Logical Operators: &&(logical) dan &(boolean logical) AND Logical Operators • Operasi dasar dari operasi logical adalah, x1 op x2 dimana, x1, x2 – dapat sebagai ekspresi boolean, variabel, atau konstanta op – bisa sebagai operator &&, &, ||, | atau ^ . • Berikut ini adalah tabel kebenaran, hasil-hasil dari operasi dari kombinasi nilai dari x1 dan x2. Logical Operators: &&(logical) dan &(boolean logical) AND • Perbedaan mendasar antara operator && dan &: • Berikut ini adalah tabel kebenaran untuk && dan &, – && mendukung short-circuit evaluations (atau partial evaluation), sedangkan & tidak mendukung. • Terdapat sebuah ekspresi: exp1 && exp2 – && akan mengecek ekspresi dari exp1, dan selanjutnya akan memberikan nilai false jika exp1 adalah false. – Jika exp1 adalah false, operator tidak mengecek nilai exp2 karena hasilnya akan tetap false tanpa mengetahui nilai exp2. • Sebaliknya, operator & selalu mengecek semua ekspresi antara exp1 dan exp2 sebelum memberikan jawaban. Logical Operators: &&(logical) dan &(boolean logical) AND public class TestAND { public static void main( String[] args ){ int i = 0; int j = 10; boolean test= false; //contoh && test = (i > 10) && (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test); //contoh & test = (i > 10) & (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test); } } Logical Operators: &&(logical) dan &(boolean logical) • Output dari program, 0 10 false 0 11 false • Perlu dicatat, bahwa j++ pada baris yang mengandung operator && tidak dicek setelah diketahui bahwa ekspresi (i>10) bernilai false. Logical Operators: || (logical) dan | (boolean logical) inclusive OR • Berikut ini adalah tabel kebenaran dari || dan |, Logical Operators: || (logical) dan | (boolean logical) inclusive OR • Perbedaan dasar antara operator || dan |. – || mendukung short-circuit evaluations (atau partial evaluations), sedangkan | tidak. • Terdapat sebuah ekspresi: exp1 || exp2 – || akan mengecek ekspresi exp1, dan langsung memberikan nilai true jika nilai dari exp1 adalah true. – Jika exp1 true, operator tidak mengecek nilai dari exp2 karena apapun nilai dari exp2 akan tetap menghasilkan nilai true. – Sedangkan operator | akan melakukan pengecekan pada exp1 dan exp2 sebelum memberikan nilai. Logical Operators: || (logical) dan | (boolean logical) inclusive OR public class TestOR { public static void main( String[] args ){ int i = 0; int j = 10; boolean test= false; //contoh || test = (i < 10) || (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test); //contoh | test = (i < 10) | (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test); } } Logical Operators: || (logical) dan | (boolean logical) inclusive OR • Output program adalah, 0 10 true 0 11 true • Perlu dicatat, bahwa j++ pada baris yang mengandung operator || tidak dicek setelah diketahui nilai dari ekspresi (i<10) adalah true. Logical Operators: ^ (boolean logical exclusive OR) • Berikut ini adalah tabel kebenaran ^, Logical Operators: ^ (boolean logical exclusive OR) 1 2 3 4 5 6 7 8 9 10 11 • Hasil dari operasi operasi eksklusif OR adalah TRUE, jika dan hanya jika satu operand yang bernilai true dan operand lain bernilai false. • Perlu dicatat, bahwa semua operand akan dicek untuk menentukan hasil dari operasi eksklusif OR. 12 13 public class TestXOR { public static void main( String[] args ){ boolean val1 = true; boolean val2 = true; System.out.println(val1 ^ val2); val1 = false; val2 = true; System.out.println(val1 ^ val2); val1 = false; val2 = false; System.out.println(val1 ^ val2); val1 = true; val2 = false; System.out.println(val1 ^ val2); } } Logical Operators: ^ (boolean logical exclusive OR) • Output dari program, false true false true Logical Operators: ! ( logical NOT) public class TestNOT { public static void main( String[] args ){ boolean val1 = true; boolean val2 = false; System.out.println(!val1); System.out.println(!val2); } } 1 2 3 4 5 6 7 8 • Output dari program adalah, false true Logical Operators: Conditional Operator (?:) 1 2 3 4 5 6 7 8 9 10 public class ConditionalOperator { public static void main( String[] args ){ String status = ""; int grade = 80; //Status dari siswa status = (grade >= 60)?"Passed":"Fail"; //Cetak status System.out.println( status ); } } • Output dari program, Passed Logical Operators: ! ( logical NOT) • Logical NOT hanya memerlukan satu argumen, argumen tersebut dapat berupa ekspresi, variabel atau konstanta. • Berikut ini adalah tabel kebenaran !, Logical Operators: Conditional Operator (?:) • Conditional operator ?: – Merupakan ternary operator. • Hal ini berarti bahwa diperlukan tiga argumen bersamaan dari sebuah ekspresi conditional. – Struktur dari ekspresi yang menggunakan conditional operator adalah exp1?exp2:exp3 dimana, exp1 – adalah ekspresi boolean yang memberikan hasil / nilai true atau false – Hasil: Jika exp1 adalah true, maka nilai dari exp2 yang akan diberikan. Jika false, maka nilai dari exp3 yang diberikan. Logical Operators: Conditional Operator (?:) Operator Precedence Operator Precedence • Terdapat ekspresi yang rumit seperti, 6%2*5+4/2+88-10 dapat ditulis ulang dan memberikan tanda kurung pada berdasarkan prioritas operator, ((6%2)*5)+(4/2)+88-10; Operator Precedence: Panduan Pemrograman • Untuk menghindari kebingungan pada proses matematika selalu gunakan ekspresi yang simpel dengan menggunakan tanda kurung. Kesimpulan • Variables (deklarasi,inisialisasi, output) • System.out.println() vs. System.out.print() • Reference Variables vs. Primitive Variables • Operators (Arithmetic operators, Increment dan Decrement operators, Relational operators, Logical operators, Conditional Operator (?:), Operator Precedence) Kesimpulan • Java Comments (C++-Style Comments, C-Style Comments, Special Javadoc Comments) • Java statements, blocks, identifiers, keywords • Java Literals (integer, floating point, boolean, character, String) • Tipe data primitif( boolean, char, byte, short, int, long, float, double)