Modul 2 Dasar Pemrograman Java Oleh: Mike Yuliana PENS-ITS
Tujuan Membedakan antara valid dan invalid identifiers. Mengetahui Java technology keywords. Mengetahui 8 tipe data primitif. Mendefinisikan literal value untuk tipe data numerik dan tekstual. Mendefinisikan primitive dan reference variable. Mendeklarasikan variabel bertipe class. Operasi Input/output Konversi dan casting tipe data primitif.
Kata Kunci abstract boolean break byte case catch char class const continue do double *dikenal mulai JDK 1.4 **dikenal mulai JDK 1.5 else extends final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient try void volatile while assert* enum** -Tidak ada yang menggunakan huruf besar -Tidak bisa digunakan sebagai identifier
Identifier Nama yang diberikan untuk variabel, konstanta, class, atau method Harus diawali dengan huruf, tanda dolar($) atau garis bawah(_), dan tidak boleh mengandung spasi Case Sensitive dan tidak dibatasi oleh panjang maksimum Karakter kedua dan seterusnya dapat berupa sembarang huruf atau angka Tidak boleh menggunakan reserve keyword(kata kunci) Identifier X $_99 2minggu Barang# _nama Kuartal_1 dua kali Super Benar Salah
Tipe Data Tipe data diperlukan agar kompiler tahu operasi apa yang valid dan seberapa banyak memori yang diperlukan oleh sebuah nilai yang akan disimpan atau dioperasikan. Variabel digunakan untuk menampung suatu nilai, karena itu setiap variabel pasti memiliki tipe data dan harus dideklarasikan terlebih dahulu sebelum dapat digunakan. Dalam java, tipe data dapat dikelompokkan menjadi 2 yaitu: a. tipe data primitif b. tipe data referensi
Tipe data Primitif Merupakan tipe data dasar yang dikenal oleh java Tipe Data byte short int long float double char boolean Ukuran(bit) 8 16 32 64 32, presisi 6-7 digit 64, presisi 14-15 digit 16 8-128 s/d 127-32.768 s/d 32.767-2.147.483.648 s/d 2.147.483.647-9.232.372.036.854.775.808 s/d 9.232.372.036.854.775.807-3.4E38 s/d 3.4E38-1.7E308 s/d 1.7E308 0 s/d 65535 true atau false Nilai
Tipe Data Referensi Digunakan untuk memegang referensi(alamat) dari suatu objek(instance dari suatu kelas)
Literal Suatu nilai konstan yang terlihat secara eksplisit Terdapat 4 literal: a. Literal Integer b. Literal Floating-point c. Literal Boolean c. Literal Character d. Literal String
a. Literal Integer Suatu bilangan bulat bisa dinyatakan dalam: a. bilangan oktal(bilangan berbasis 8) penulisan bilangan dimulai dengan angka 0, digit untuk bilangan oktal memiliki range(0-7) b. bilangan heksadesimal(bilangan berbasis 16) penulisan dimulai dengan tanda 0x atau 0X, memiliki range antara 10-15(digunakan huruf A-F atau a-f) c. bilangan desimal(bilangan berbasis 10) Contoh program: public class coba{ public static void main( String args[]){ System.out.println(17); System.out.println(0x17); System.out.println(017); } }
Tipe data defaultnya adalah integer, sehingga bila ingin tipe data long maka menambahkan huruf l atau L dibelakang angka contoh: long x = 25L b. Literal Floating-point Bilangan ini dapat ditulis menggunakan notasi standar biasa atau menggunakan notasi ilmiah Notasi standar menggunakan titik untuk menandakan pecahan contoh: 10.2, 3.14, 5.789 Notasi ilmiah dapat digunakan dengan menambahkan lambang E (Eksponensial) pada notasi standard floating point contoh: 7.02345E3 = 7.02345 x 10 3
Secara default semua nilai literal floating point yang ditulis dalam java akan dianggap memiliki tipe data double Secara eksplisit, kita dapat menentukan tipe data dari nilai literal yang ditulis dengan menambahkan lambang F atau f untuk tipe data float dan D atau d untuk tipe data double. Contoh program: public class hello{ public static void main(string args[]){ float x = 12.5; System.out.println(x); } } Apa yang terjadi?????
c. Literal Boolean Untuk tipe data boolean, java hanya mengenal dua nilai literal, yaitu true dan false. Contoh penggunaan: boolean isbig = true; boolean islittle = false; Note: boolean literal tidak boleh berharga 0 atau 1
Literal Character Literal karakter digunakan untuk menyatakan sebuah karakter Literal untuk karakter dalam java ditulis diantara tanda petik tunggal contoh: char c = w ; Mendukung penggunaan unicode character yang mencakup hampir semua karakter yang dikenal oleh manusia a. jika menggunakan bilangan oktal ditulis dengan format \ddd b. jika menggunakan bilangan heksadesimal ditulis dengan format \uxxxx, dimana xxxx diganti dengan bilangan heksadesimal
Contoh: public class coba{ public static void main(string args[]){ char x='\141' ; char y='\u0061'; System.out.println(x); System.out.println(y); } }
Escape sequence yang dikenal oleh java Escape Sequence \ \ \\ \n \r \b \f Deskripsi Petik tunggal Petik ganda Backslash Pindah baris Return Backspase Form feed
Literal String Literal untuk string ditulis diantara tanda petik ganda Contoh: String s = halo apa kabar PENS ITS tercinta ; Cara penulisan dalam program: System.out.println( halo apa kabar PENS ITS tercinta); atau System.out.println( halo apa kabar + PENS ITS tercinta );
atau System.out.print( halo apa kabar ); System.out.println( PENS ITS tercinta );
Definisi Konstanta Java memungkinkan pendefinisian konstanta melalui kata kunci final contoh: final double PI = 3.14; contoh program: public class lingkaran{ public static void main(string args[]){ double radius = 2.5; double luas; luas = 3.14 * radius * radius System.out.println(luas); } } -Tambahkan konstanta PI -Ubah tipe data radius menjadi float
Operasi Input/Output a. Menampilkan Teks 1. Menggunakan metode println 2. Menggunakan metode print Apa tampilan programnya??? public class coba Cetak{ public static void main(string args[]){ System.out.print("usia widya:"); System.out.print(20); System.out.print(",Anto:"); System.out.print(21); System.out.println(); System.out.println("******akhir"); } }
b. Membaca Data dari Keyboard - Menggunakan JOptionPane yang dapat menampilkan window kecil dengan textfield untuk menerima input dari keyboard - JOptionPane merupakan bagian dari package javax.swing import javax.swing - JOptionPane menerima input berupa String Contoh Program: import javax.swing.*; public class hallo { public static void main(string args[ ]) { String nama=joptionpane.showinputdialog("siapa nama anda"); System.out.println(nama); System.exit(0); } }
c. Mengkonversi String ke Type yang Lain Untuk menghendaki data yang bertipe integer, float, dan double bisa digunakan kelas Integer, Float, Double dan memanggil metode parseint, parsedouble, parsefloat Contoh program: import javax.swing.*; public class Hallo { public static void main(string args[ ]) { final double PI = 3.14; double Luas; String jari=joptionpane.showinputdialog("masukkan jari-jari"); double jari_jari=double.parsedouble(jari); Luas = PI * jari_jari * jari_jari; System.out.println(Luas); } }
Conversion of Primitives Terjadi pada saat kompile Konversi dari tipe primitif bisa terjadi pada : a. assignment b. method call c. Arithmetic promotion
Primitives Conversion: Assignment Terjadi ketika suatu nilai kita berikan pada suatu variabel yang tipe datanya berbeda dari data aslinya. Tipe data yang baru harus mempunyai ukuran lebih besar dari tipe data yang lama. Contoh: int data1 = 10; long data2 = data1; Hasil: Nilai data2 = 10
Primitives Conversion: Assignment Contoh konversi yang illegal 1. double d; 2. short s; 3. d = 1.2345; 4. s = d; // Assign a double to a short variable Muncul error: possible loss of precision Karena tipe data short lebih kecil dari double.
Aturan untuk Primitive Assignment Conversion Boolean tidak bisa di konversi ke tipe data lain Non-boolean dapat di konversi ke tipe data lain selain boolean, konversi yang dilakukan adalah widening conversion Note: widening conversion adalah merubah tipe data suatu variabel ke tipe data yang ukuran bit nya lebih besar dari aslinya.
Java s widening conversions Dari byte ke short, int, long, float, atau double Dari short ke int, long, float, atau double Dari char ke int, long, float, atau double Dari int ke long, float, atau double Dari long ke float atau double Dari float ke double char int long float double byte short
Java s narrowing conversions Dari byte ke char Dari short ke byte ke char Dari char ke byte atau short Dari int ke byte, short, atau char Dari long ke byte, short, char, atau int Dari float ke byte, short, char, int, atau long Dari double ke byte, short, char, int, long,atau float char int long float double byte short
Primitives Conversion: Assignment Ada yang istimewa tentang integral literal assignment Ilegal : 1.234 adalah literal untuk double sehingga tidak bisa diberikan pada float. float f = 1.234; Legal: khusus untuk literal integer aturan assignment conversion dibebaskan. byte b = 1; short s = 2; char c = 3; Illegal: Pembebasan assignment conversion untuk integral literal hanya untuk assignment terhadap nilai. int i = 12; byte b = i; i adalah bukan nilai
Primitives Conversion: Method call Terjadi ketika kita berusaha melewatkan suatu nilai variabel sebagai argumen suatu method, dimana tipe data variabel method tersebut berbeda dengan yang diterima. 1. float frads; 2. double d; 3. frads = 2.34567f; 4. d = Math.cos(frads); // Pass float to method // that expects double Hint: Math.cos(double d); Pada contoh diatas frands yang bertipe float akan secara otomatis di konversi menjadi double. Pada contoh diatas terjadi widening conversions.
Primitives Conversion: Method call Narrowing conversions tidak diperbolehkan Contoh ilegal: double d = 12.0; Object ob = myvector.elementat(d); Hint : myvector.elementat(int i); Hasil kompile: Incompatible type for method. Harus dilakukan casting secara eksplisit untuk mengkonversi dari double ke int
Primitive Conversion: Arithmetic Promotion Terjadi pada operasi matematika. Kompiler berusaha mencari tipe data yang sesuai dengan tipe data operan yang berbeda-beda. 1. int nilai=26; 2. double hasil = nilai/4; Apa yang terjadi??
Aturan: Arithmetic Promotion Unary operators: +, -, ++, --, ~ Jika operan bertipe byte, short, atau char, maka dikonversikan ke int
Aturan: Arithmetic Promotion Binary operators: +, -, *, /, %, >>, >>>, <<, &, ^, Jika salah satu operan adalah double, operan lain dikonversikan ke double. Jika salah satu operan adalah float, operan lain dikonversikan ke float. Jika salah satu operan adalah long, operan lain dikonversikan ke long. Selain tipe data diatas maka dikonversikan ke int.
Primitives dan Casting Casting means explicitly telling Java to make a conversion. Cara: tambahkan tipe data yang diinginkan dalam tanda kurung sebelum nilai. 1. int i = 5; 2. double d = (double)i; Sama dengan: 1. int i = 5; 2. double d = i;
Primitives dan Casting Are required when you want to perform a narrowing conversion. 1. short s = 259; 2. byte b = s; // Compile error 3. System.out.println( s = + s +, b = + b); Pesan error = Explicit cast needed to convert short to byte. Solusi: dengan menambahkan casting 1. short s = 259; 2. byte b = (byte)s; // Explicit cast 3. System.out.println( b = + b); Hasil: b = 3 Kenapa 259 = 1 0000 0011 The cast tells the compiler Yes, I really want to do it