Post on 10-May-2015
Variabel dan Tipe data(pertemuan III)Oleh : Tenia Wahyuningrum
Click icon to add picture
Bagaimana jika kotak A diisi jeruk? Bagaimana pula jika kotak A diisi Apel 15 buah?
A--Apel--10A--Apel--10
SRT--Surat Masuk--20SRT--Surat Masuk--20
VARIABEL
Tempat untuk menyimpan dataSifatnya hanya sementaraNilai di dalamnya dapat berubah
SYARAT PENAMAAN VARIABEL
Nama variabel dalam java adalah case sensitive Harus diawali dengan huruf Boleh diikuti dengan huruf/angka/simbol Tidak boleh ada spasi Bukan merupakan keyword dalam java Contoh : alamat, jumlah, bil1, bil_2
Keyword dalam java
variabel
• Variabel merupakan item dari data yang digunakan untuk menyimpan sebuah nilai dari objek.
• Variabel memiliki:– Tipe data
Tipe data merupakan tipe dari value yang dapat disimpan variabel.
– Nama Nama variabel harus mengikuti aturan seperti identifier.
logika - booleanTipe data boolean diwakili oleh dua pernyataan : true dan false. Sebagai contoh adalah,
boolean result = true;
Contoh yang ditunjukkan diatas, mendeklarasikan variabel yang dinamai result sebagaitipe data boolean dan memberinya nilai true.
TIPE DATA
teksual – charTipe data character (char), diwakili oleh karakter single Unicode. Tipe data ini harus memiliki ciri berada dalam tanda single quotes(’ ’). Sebagai contoh,‘a’ //Huruf a
Untuk menampilkan karakter khusus seperti ' (single quotes) atau " (double quotes), menggunakan karakter escape \. Sebagai contoh,'\'' //untuk single quotes'\"' //untuk double quotes
TIPE DATA
String mewakili tipe data yang terdiri atas beberapa karakter. Mereka tidak termasuk tipe data primitif, melainkan suatu class.Mereka memiliki literal yang terdapat diantara tanda double quotes(“”).
Sebagai contoh,String message=“Hello world!”
TIPE DATA
Integral – byte, short, int & longTipe data integral dalam Java menggunakan tiga bentuk- yaitu desimal, oktal atauheksadesimal.
Contohnya,2 //nilai desimal 2077 //angka 0 pada awal pernyataan mengindikasikan nilai oktal0xBACC //karakter 0x mengindikasikan nilai heksadesimal
Tabel tipe-tipe integral
Integer length
Name or
type
Type range
8 bits byte -27 to 27-1
16 bits short -215 to 215-1
32 bits int -231 to 231-1
64 bits long -263 to 263-1
Floating Point – float dan doubleTipe Floating point memiliki double sebagai default tipe datanya. Floating-point literal termasuk salah satunya desimal point atau salah satu dari pilihan berikut ini,E or e //(add exponential value)F or f //(float)D or d //(double)
Contohnya adalah,3.14 //nilai floating-point sederhana (a double)6.02E23 //A nilai floating-point yang besar2.718F //A nilai float size sederhanaPada contoh yang ditunjukkan diatas, 23 setelah E pada contoh kedua bernilai positif.
Tipe data Floating-point memiliki range sebagaiBerikut:
Integer length
Name or type Type range
32 bits float -231 to 231-1
64 bits double -263 to 263-1
Deklarasi dan Inisialisasi Variabel
Variabel dapat dideklarasikan dengan menggunakan sintaks:
<tipe data> <nama> [=inisialisasi value];
• Catatan: Nilai yang berada antara tanda <> adalah value yang harus ada, sedangkan value yang berada antara tanda [] bersifat optional (boleh diisi atau tidak).
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 booleanboolean 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.0double grade = 0.0;
}}
Deklarasi dan Inisialisasi Variabel: Panduan penulisan program
1. Deklarasikan variabel terlebih dahulu, baru kemudian lakukan inisialisasi variabel.
2. Gunakan nama yang deskriptif untuk penamaan variabel. Contoh, jika terdapat variabel yang mengandung nilai grade siswa, maka beri nama variabel tersebut dengan grade, bukan dengan huruf random.
Deklarasi dan Inisialisasi Variabel: Panduan penulisan program
3. Deklarasikan satu variabel pada satu baris code.
Contohnya pada deklarasi variabel-variabel berikut ini,
double exam=0; double quiz=10; double grade = 0;
deklarasi di atas lebih baik daripada deklarasi berikut ini,
double exam=0, quiz=10, grade=0;
Mencetak value dari variabel
Untuk mencetak value dari sebuah variabel, dapat menggunakan command berikut ini:
System.out.println() System.out.print()
Mencetak data variabel: Contoh Program
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 ); }}
Program diatas akan memberikan output yaitu:
10The value of x=A
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
contohProgram 1:
System.out.print(“Hello”);System.out.print(“World”);
Output:HelloWorld
Program 2:
System.out.println(“Hello”);System.out.println(“World”);
Output:HelloWorld
Reference Variable vs. Primitive Variable
• Terdapat dua tipe variabel di Java:– Primitive Variable– Reference Variable
• Primitive Variable– Adalah variabel dengan tipe data primitif– Menyimpan data di memori dimana lokasi variabel tersebut
berada
Reference Variable vs. Primitive Variable
• Reference Variable– Variabel yang disimpan pada alamat di lokasi memori– Menunjuk pada lokasi memory yang lain dimana data tersebut
berada– Ketika suatu variabel pada sebuah class dideklarasikan, sebenarnya
yang dideklarasikan adalah reference variabel pada object di class tersebut.
contoh
Misalkan ada dua variabel dengan tipe data int dan String.
int num = 10; String name = "Hello"
contoh
Gambar di bawah ini adalah lokasi memory yang ada pada komputer, dimana terdapat alamat pada cell memory berupa nama variabel dan data yang dimiliki.
operator
• Beberapa tipe operator:– arithmetic operator– relational operator– logical operator– conditional operator
• Operator-operator diatas memiliki ciri tertentu sehingga compiler bisa mengetahui operator mana yang akan dievaluasi terlebih dahulu pada saat beberapa operator digunakan pada satu statement
Arithmetic Operator
contoh
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));
contoh
//pengurangan angka System.out.println("Pengurangan..."); System.out.println(" i - j = " + (i – j)); System.out.println(" x - y = " + (x – y));
//pengalian angka System.out.println("Pengalian..."); System.out.println(" i * j = " + (i * j)); System.out.println(" x * y = " + (x * y));
//pembagian angka System.out.println("Pembagian..."); System.out.println(" i / j = " + (i / j)); System.out.println(" x / y = " + (x / y));
contoh //Penghitungan modulus (sisa pembagian) System.out.println("Penghitungan modulus..."); 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)); } }
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
Arithmetic Operator
CatatanKetika 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
• 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 & 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 i = 10; int j = 3; int k = 0; k = ++j + 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 i = 10;int j = 3; int k = 0; k = j++ + i; //akan menghasilkan k = 3+10 = 13
Relational Operator
• Operator relational digunakan untuk membandingkan beberapa nilai dan menentukan hubungan antara nilai-nilai tersebut.
• Output dari perbandingan tersebut adalah nilai boolean antara true atau false.
contoh
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
contoh
//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
contoh
//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 } }
Output program
Nilai variabel... i = 37 j = 42 k = 42 Lebih besar... i > j = false j > i = true k > j = false Lebih besar atau sama dengan... i >= j = false j >= i = true k >= j = true Lebih kecil... i < j = true j < i = false k < j = false
Lebih kecil atau sama dengan... i <= j = true j <= i = false k <= j = true Sama dengan... i == j = false k == j = true Tidak sama dengan... i != j = true k != j = false
Logical Operator• Logical operator memiliki satu atau dua boolean operand yang akan
me-return value tipe boolean.
• Ada enam logical operator yaitu:– && (logical AND)– & (boolean logical AND)– || (logical OR)– | (boolean logical inclusive OR)– ^ (boolean logical exclusive OR)– ! (logical NOT)
Logical OperatorOperasi dasar dari operasi logical adalah,
x1 op x2
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
Berikut ini adalah tabel kebenaran untuk && dan &
Logical Operators: &&(logical) dan &(boolean logical) AND
• Perbedaan mendasar antara operator && dan &:– && dapat digunakan pada short-circuit evaluation (atau partial
evaluation), sedangkan & tidak dapat.
• 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) AND
• Output program,
0 10 false 0 11 false
• Perlu diperhatikan, 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 diperhatikan, 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 ^
Hasil dari operasi operasi eksklusif OR adalah TRUE, jika dan hanya jika satu operand yang bernilai true dan operand lain bernilai false.
Perlu diperhatikan, bahwa semua operand akan dicek untuk menentukan hasil dari operasi eksklusif OR.
Logical Operators: ^ (boolean logical exclusive OR)
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)
Logical NOT hanya memerlukan satu argumen, argumen tersebut dapat berupa ekspresi, variabel atau konstanta.
Berikut ini adalah tabel kebenaran !,
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); } }
Output dari program adalah, false true
Logical Operators: Conditional Operator (?:)
Conditional operator ?: – Merupakan ternary operator. ((from Latin ternarius) is an adjective
meaning "composed of three items”)Hal ini berarti bahwa diperlukan tiga argumen bersamaan dari sebuah ekspresi conditional.
– Struktur dari ekspresi yang menggunakan conditional operator adalah
exp1?exp2:exp3
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 (?:)
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 program: Passed
Logical Operators: Conditional Operator (?:)
OPERATOR GESER (Shift Operators)
• Ada 3 operator :1. << : geser kiri2. >> : geser kanan bertanda (bit tanda tetap)3. >>> : geser kanan tanpa tanda (bit tanda bisa berubah)
Tipe data op1:byte, short,int, longSebelum operasi geser, terjadi promosi operand ke type data intRepresentasi dalam Two’s Complement
Contohop1 op1 Contoh Hasil
0000 0010(2)
0000 0010(2)
2>>2 0000 0000(0)
1111 1110(-2)
0000 0010(2)
-2>>2 1111 1111(-1)
1111 1110(-2)
0000 0001(1)
-2>>>1 0111 1111(127)
0000 0010(2)
0000 0010(2)
2<<2 0000 1000(8)
Operator Inversion(~)• Merubah bit 1 mejadi 0 dan 0 menjadi 1• Tipe data operand : byte, short, int, long, char• Terjadi promosi ke int sebelum eksekusi operator
Operand Contoh Operator ~
Hasil
1111 1110(-2)
~-2 0000 0001(1)
0000 0010(2)
~2 1111 1101-3
Operator Precedence
Operator PrecedenceIt means (mathematical or logical) operator is more important
than others.
berikut ini terdapat ekspresi yang kompleks,
6%2*5+4/2+88-10
ekspresi di atas dapat ditulis ulang ddengan memberikan tanda kurung berdasarkan prioritas operator,
((6%2)*5)+(4/2)+88-10;
Panduan penulisan program
Untuk menghindari kebingungan pada proses matematika, selalu gunakan ekspresi sederhana dengan menggunakan tanda kurung.
kesimpulan
• Tipe data primitif( boolean, char, byte, short, int, long, float, double)
• Variabel (deklarasi, inisialisasi, output)• System.out.println() vs. System.out.print()• Reference Variable vs. Primitive Variable• Operator (Arithmetic operator, Increment dan Decrement
operator, Relational operator, Logical operator, Conditional Operator (?:), Operator Precedence)
selesai