Modul 2 Dasar Pemrograman Java
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
else
interface
super
boolean
extends
long
switch
break
final
native
synchronized
byte
finally
new
this
case
float
null
throw
catch
for
package
throws
char
goto
private
transient
class
if
protected
try
const
implements
public
void
continue
import
return
volatile
do
instanceof
short
while
double
int
static
assert*
enum**
*dikenal mulai JDK 1.4
**dikenal mulai JDK 1.5
-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
Ukuran(bit)
Nilai
byte
8
-128 s/d 127
short
16
-32.768 s/d 32.767
int
32
-2.147.483.648 s/d
2.147.483.647
long
64
-9.232.372.036.854.775.808
s/d
9.232.372.036.854.775.807
float
32, presisi 6-7 digit
double
64, presisi 14-15
digit
-3.4E38 s/d 3.4E38
-1.7E308 s/d 1.7E308
char
16
0 s/d 65535
boolean
8
true atau false
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 1015(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 103
• 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
Deskripsi
\’
Petik tunggal
\”
Petik ganda
\\
Backslash
\n
Pindah baris
\r
Return
\b
Backspase
\f
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
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");
}
}
Apa tampilan programnya???
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
byte
short
long
float
double
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
byte
short
long
float
double
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
assignment conversion dibebaskan.
byte b = 1;
short s = 2;
char c = 3;
aturan
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: +, -, *, /, %, >>, >>>,
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
else
interface
super
boolean
extends
long
switch
break
final
native
synchronized
byte
finally
new
this
case
float
null
throw
catch
for
package
throws
char
goto
private
transient
class
if
protected
try
const
implements
public
void
continue
import
return
volatile
do
instanceof
short
while
double
int
static
assert*
enum**
*dikenal mulai JDK 1.4
**dikenal mulai JDK 1.5
-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
Ukuran(bit)
Nilai
byte
8
-128 s/d 127
short
16
-32.768 s/d 32.767
int
32
-2.147.483.648 s/d
2.147.483.647
long
64
-9.232.372.036.854.775.808
s/d
9.232.372.036.854.775.807
float
32, presisi 6-7 digit
double
64, presisi 14-15
digit
-3.4E38 s/d 3.4E38
-1.7E308 s/d 1.7E308
char
16
0 s/d 65535
boolean
8
true atau false
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 1015(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 103
• 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
Deskripsi
\’
Petik tunggal
\”
Petik ganda
\\
Backslash
\n
Pindah baris
\r
Return
\b
Backspase
\f
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
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");
}
}
Apa tampilan programnya???
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
byte
short
long
float
double
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
byte
short
long
float
double
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
assignment conversion dibebaskan.
byte b = 1;
short s = 2;
char c = 3;
aturan
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: +, -, *, /, %, >>, >>>,