Tipe data dan variabel

67
Variabel dan Tipe data (pertemuan III) Oleh : Tenia Wahyuningrum

Transcript of Tipe data dan variabel

Page 1: Tipe data dan variabel

Variabel dan Tipe data(pertemuan III)Oleh : Tenia Wahyuningrum

Page 2: Tipe data dan variabel

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

Page 3: Tipe data dan variabel

VARIABEL

Tempat untuk menyimpan dataSifatnya hanya sementaraNilai di dalamnya dapat berubah

Page 4: Tipe data dan variabel

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

Page 5: Tipe data dan variabel

Keyword dalam java

Page 6: Tipe data dan variabel

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.

Page 7: Tipe data dan variabel

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

Page 8: Tipe data dan variabel

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

Page 9: Tipe data dan variabel

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

Page 10: Tipe data dan variabel

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

Page 11: Tipe data dan variabel

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

Page 12: Tipe data dan variabel

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.

Page 13: Tipe data dan variabel

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

Page 14: Tipe data dan variabel

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).

Page 15: Tipe data dan variabel

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;

}}

Page 16: Tipe data dan variabel

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.

Page 17: Tipe data dan variabel

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;

Page 18: Tipe data dan variabel

Mencetak value dari variabel

Untuk mencetak value dari sebuah variabel, dapat menggunakan command berikut ini:

System.out.println() System.out.print()

Page 19: Tipe data dan variabel

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

Page 20: Tipe data dan variabel

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

Page 21: Tipe data dan variabel

contohProgram 1:

System.out.print(“Hello”);System.out.print(“World”);

Output:HelloWorld

Program 2:

System.out.println(“Hello”);System.out.println(“World”);

Output:HelloWorld

Page 22: Tipe data dan variabel

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

Page 23: Tipe data dan variabel

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.

Page 24: Tipe data dan variabel

contoh

Misalkan ada dua variabel dengan tipe data int dan String.

int num = 10; String name = "Hello"

Page 25: Tipe data dan variabel

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.

Page 26: Tipe data dan variabel

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

Page 27: Tipe data dan variabel

Arithmetic Operator

Page 28: Tipe data dan variabel

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));

Page 29: Tipe data dan variabel

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));

Page 30: Tipe data dan variabel

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)); } }

Page 31: Tipe data dan variabel

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

Page 32: Tipe data dan variabel

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.

Page 33: Tipe data dan variabel

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++;

Page 34: Tipe data dan variabel

Operator Increment & Decrement

Page 35: Tipe data dan variabel

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

Page 36: Tipe data dan variabel

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

Page 37: Tipe data dan variabel

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.

Page 38: Tipe data dan variabel

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

Page 39: Tipe data dan variabel

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

Page 40: Tipe data dan variabel

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 } }

Page 41: Tipe data dan variabel

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

Page 42: Tipe data dan variabel

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)

Page 43: Tipe data dan variabel

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.

Page 44: Tipe data dan variabel

Logical Operators: &&(logical) dan &(boolean logical) AND

Berikut ini adalah tabel kebenaran untuk && dan &

Page 45: Tipe data dan variabel

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.

Page 46: Tipe data dan variabel

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);

}}

Page 47: Tipe data dan variabel

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.

Page 48: Tipe data dan variabel

Logical Operators: || (logical) dan | (boolean logical) inclusive OR

Berikut ini adalah tabel kebenaran dari || dan |,

Page 49: Tipe data dan variabel

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.

Page 50: Tipe data dan variabel

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); }

}

Page 51: Tipe data dan variabel

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.

Page 52: Tipe data dan variabel

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.

Page 53: Tipe data dan variabel

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);

}}

Page 54: Tipe data dan variabel

Logical Operators: ^ (boolean logical exclusive OR)

Output dari program,

false true false true

Page 55: Tipe data dan variabel

Logical Operators: ! ( logical NOT)

Logical NOT hanya memerlukan satu argumen, argumen tersebut dapat berupa ekspresi, variabel atau konstanta.

Berikut ini adalah tabel kebenaran !,

Page 56: Tipe data dan variabel

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

Page 57: Tipe data dan variabel

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.

Page 58: Tipe data dan variabel

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

Page 59: Tipe data dan variabel

Logical Operators: Conditional Operator (?:)

Page 60: Tipe data dan variabel

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

Page 61: Tipe data dan variabel

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)

Page 62: Tipe data dan variabel

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

Page 63: Tipe data dan variabel

Operator Precedence

Page 64: Tipe data dan variabel

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;

Page 65: Tipe data dan variabel

Panduan penulisan program

Untuk menghindari kebingungan pada proses matematika, selalu gunakan ekspresi sederhana dengan menggunakan tanda kurung.

Page 66: Tipe data dan variabel

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)

Page 67: Tipe data dan variabel

selesai