Download - Romi oop-02-javafundamentals-29agustus2010

Transcript
Page 1: Romi oop-02-javafundamentals-29agustus2010

OOP:Java Fundamentals

Romi Satria [email protected]://romisatriawahono.net

HP: 0878-80480485

Page 2: Romi oop-02-javafundamentals-29agustus2010

Materi

1. OOP Concepts:Konsep dan Paradigma Object-Oriented

2. Java Fundamentals:Memahami Sintaks dan Grammar Bahasa Java

3. Java Advanced:Eksepsi, Thread, Java API

4. Java GUI:Swing, GUI Component, Event Handling,Studi Kasus Aplikasi GUI

5. Java Database:Koneksi ke Database, Studi Kasus Aplikasi Database

Page 3: Romi oop-02-javafundamentals-29agustus2010

Java Fundamentals

Page 4: Romi oop-02-javafundamentals-29agustus2010

Java Fundamentals

1. Pernyataan dan Ekspresi2. Variabel, Tipe Data dan Literal3. Array4. Operator5. Operasi I/O Stream Sederhana6. Pengaturan Format Output

Numerik7. Konversi String dan Bilangan

(Number)8. Pernyataan Penentu Keputusan9. Pernyataan Pengulangan Proses10.Pernyataan Pemindah Proses

Page 5: Romi oop-02-javafundamentals-29agustus2010

Pernyataan danEkspresi

Page 6: Romi oop-02-javafundamentals-29agustus2010

Pernyataan

Perintah yang menyebabkan sesuatu terjadi dan merepresentasikan aksi tunggal dalam program JavaContoh: int tahunProduksi;

Setiap pernyataan ditutup oleh karakter semicolon (;)

Pernyataan dikelompokkan dengan tanda pembuka ({) dan penutup (}). Kelompok ini disebut blok atau blok pernyataan

Page 7: Romi oop-02-javafundamentals-29agustus2010

Ekspresi

Pernyataan yang dapat menghasilkan suatu nilai. Nilai yang dihasilkan oleh pernyataan ini yang disebut dengan nilai balik (return value)

Nilai balik bisa berupa bilangan, boolean, atau objek

Method tanpa nilai balik biasanya menggunakan keyword void

Contoh: hasilBagi = a / b;

Page 8: Romi oop-02-javafundamentals-29agustus2010

Kata Kunciabstract private case interface

continue this enum static

for break instanceof void

new double return class

switch implements transient finally

assert protected catch long

default throw extends strictfp

package byte int volatile

synchronized

else short float

boolean import try native

do public char super

if throws final while

Page 9: Romi oop-02-javafundamentals-29agustus2010

Variabel, Tipe Data,dan Literal

Page 10: Romi oop-02-javafundamentals-29agustus2010

VariabelLokasi di dalam memori

komputer yang digunakan untuk menyimpan suatu informasi (nilai)

Nilai variabel dapat diubah di pernyataan manapun di dalam program

Mendeklarasikan variabel: tipe namaVariabel1 [, namaVariabel2]

Contoh:int hasilKali;String namaSiswa, namaGuru, namaAdmin;

Page 11: Romi oop-02-javafundamentals-29agustus2010

Lingkup VariabelVariabel dipanggil berdasarkan lingkupnya, dimulai dari blok yang paling kecil, kemudian blok di luar itu

1. Local Variable: digunakan di dalam method atau blok pernyataan yang lebih kecil dari itu

2. Parameter: variabel yg ada di dalam pernyataan (argument) method

3. Instance Variable: variabel yang memiliki nilai yang berbeda di setiap objek

4. Class Variable: variabel yang berlaku di suatu class dan seluruh instan dari class tersebut (objek). Ciri class variable adalah menggunakan keyword static

Page 12: Romi oop-02-javafundamentals-29agustus2010

Bilangan.javapublic class Bilangan {

static int pencacah = 0;int nilai;public Bilangan(int nilai){

this.nilai = nilai;pencacah++;

}public void info(){ System.out.println("Nilai:“ + this.nilai); System.out.println("Pencacah:“ + pencacah); System.out.println("");}

}

Page 13: Romi oop-02-javafundamentals-29agustus2010

BilanganBeraksi.javapublic class BilanganBeraksi{

public static void main(String[] args){ Bilangan b1 = new Bilangan(50); b1.info();

Bilangan b2 = new Bilangan(15); b2.info();

Bilangan b3 = new Bilangan(30); b3.info();

}}

Page 14: Romi oop-02-javafundamentals-29agustus2010

Memberi Nilai Variabel

Menggunakan tanda sama dengan (=)

Kebiasaan yang baik untuk memberi nilai awal (initial value) pada local variabel (mencegah bug pada program)

Contoh:int hasilTambah = 0;boolean status = false;

Page 15: Romi oop-02-javafundamentals-29agustus2010

Memberi Nama Variabel

Gunakan lowercase untuk variabel yang terdiri dari satu kata atau kata pertama

Gunakan kapital untuk karakter pertama dari kata kedua, ketiga, dst

Contoh:int hasil;boolean statusMesinMobil;Button openFile;

Page 16: Romi oop-02-javafundamentals-29agustus2010

Penentu Akses

Private: pengaksesan suatu instance variabel dan method hanya dapat dilakukan di dalam class ( tidak bisa dari dari luar class)

Tanpa Tanda: pengaksesan suatu instance variabel dan method dapat dilakukan di dalam kelas dan kelas lain dalam satu paket

Public: pengaksesan suatu instance variable dan method dapat dilakukan dari luar (sembarang) kelas

Page 17: Romi oop-02-javafundamentals-29agustus2010

18

Class Acces Level

Specifier Class Package

SubClass World

private      

no specifier  

protected

public  

Page 18: Romi oop-02-javafundamentals-29agustus2010

Tipe Data

1. Tipe Data Primitif Sebagai kata kunci di Java

(lowercase) Embedded di compiler Java Pemrosesan relatif cepat Contoh: int, double

2. Tipe Data Reference Class yang ada di library Java

(java.lang) Menggunakan huruf capital Contoh: String, Integer, Double

Page 19: Romi oop-02-javafundamentals-29agustus2010

Tipe Data Primitif

1. byte2. short3. int4. long5. float6. double7. char8. boolean

Catatan: Secara umum jenis

tipe data:bilangan bulat, pecahan, karakter dan boolean

Hasil operasi matematika akan mengikuti tipe data dari operand

Page 20: Romi oop-02-javafundamentals-29agustus2010

Tipe DataPrimitif

Keterangan Ukuran Jangkauan

byte Bilangan bulat 8 bit -128 127

short Bilangan bulat 16 bit -32.768 32.767

int Bilangan bulat 32 bit -2.147.483.648 2.147.483.647

long Bilangan bulat 64 bit -9.223.372.036.854.775,808 9.223...807

float Bilangan pecahan

32 bit (presisi 6-7 bit)

-3.4E38 3.4E38

double Bilangan pecahan

64 bit(presisi 14-15 bit)

-1.7E308 1.7E308

char Karakter (unicode)

16 bit \u0000 \uffff

boolean

Logika (true/false)

Page 21: Romi oop-02-javafundamentals-29agustus2010

Karakter.javapublic class Karakter{

public static void main(String[] args){

char karakter1=88, karakter2='X', karakter3='Y';

System.out.println("Karakter 1: " + karakter1);

System.out.println("Karakter 2: " + karakter2);

System.out.println("Karakter 3: " + karakter3);}

}

Page 22: Romi oop-02-javafundamentals-29agustus2010

Constant Variable (Konstanta)

Constant Variable digunakan apabila kita ingin membuat nilai sebuah variable tidak berubah (tetap)

Constant variable menggunakan keyword final di depan tipe data, kadang sering juga digabungkan dengan keyword static. Nama constant variable biasanya menggunakan kapital

Contoh:final float PI = 3.141592;static final boolean DEBUG = false;

Page 23: Romi oop-02-javafundamentals-29agustus2010

LiteralSemua informasi (bilangan, karakter, string, boolean ) yang merepresentasikan suatu nilai

Literal Bilangan (bulat dan pecahan): int tahun = 2008; long nilai = 4L double myScore = 2.25; float piValue =

3.1415927F; double x = 12e22; double y = 19E-95;

Literal Boolean (true dan false): boolean pilihan = true;

Literal String: String quitMsg = “Yakin Ingin

Keluar?”; Literal Karakter (unicode)

Page 24: Romi oop-02-javafundamentals-29agustus2010

Character EscapeEscape Meaning\n New line\t Tab\b Backspace\r Carriage return\f Formfeed\\ Backslash\' Single quotation mark\" Double quotation mark\d Octal\xd Hexadecimal\ud Unicode character

Page 25: Romi oop-02-javafundamentals-29agustus2010

Pengarah Tipe (Type-Casting) Pengarah Tipe (Type-Casting) Contoh:

int i = 10;char paksa = (char) i;

Casting tanpa menghilangkan nilai:

Tipe Sumber

Tipe Tujuan

byte short, char, int, long, float, double

short int, long, float, double

char int, long, float, double

int long, float, double

long float, double

float double

Page 26: Romi oop-02-javafundamentals-29agustus2010

LuasSegitiga.javapublic class LuasSegitiga {

public static void main(String[] args) { int alas= 17; int tinggi = 11;

double luas = (double) (alas*tinggi)/2;

System.out.println("Luas Segitiga : " + luas);}

}

Page 27: Romi oop-02-javafundamentals-29agustus2010

Latihan: Hitung Luas LingkaranBuat class Lingkaran yang

mempunyai method menghitung luas lingkaranvoid hitungLuas(double r){ ... } Rumus luas lingkaran= PI* r * r PI adalah konstanta dengan nilai 3.

141592 r adalah jari-jari lingkaran

Buat class LingkaranBeraksi, yang menampilkan hasil perhitungan luas lingkaran dalam dua bentuk: pecahan dan bulat (type-casting). Beri nilai r = 11.78

Page 28: Romi oop-02-javafundamentals-29agustus2010

Array (Larik)

Page 29: Romi oop-02-javafundamentals-29agustus2010

Konsep Array (Larik) Array adalah objek yang dapat

digunakan untuk menyimpan sejumlah data

Elemen yang disimpan pada array dapat berupa tipe primitif (int, float, etc) atau objek (instan dari class)

Langkah menciptakan array:1. Mendeklarasikan variabel array2. Menciptakan objek array

Page 30: Romi oop-02-javafundamentals-29agustus2010

Deklarasi Variabel Array

Bentuk Deklarasi:tipePrimitif[] namaVariabel;namaKelas[] namaVariabel;

Contoh:String[] kota;int[] nomor;

Page 31: Romi oop-02-javafundamentals-29agustus2010

Menciptakan Objek Array

Bentuk Deklarasi:namaVariabel = new tipePrimitif[jumlahElemen];namaVariabel = new namaKelas[jumlahElemen];

Contoh:nomor = new int[7];kota = new String[8];

Bentuk singkat deklarasi variable dan objek array:String[] kota = new String[8]; int[] nomor = new int[7];

Page 32: Romi oop-02-javafundamentals-29agustus2010

Mengakses Elemen Array

Bentuk Deklarasi namaVariabelArray[nomorElemen];

Contoh:kota[0] = “Surabaya”;

Page 33: Romi oop-02-javafundamentals-29agustus2010

ArrayKota.javapublic class ArrayKota{

public static void main(String[] args){String[] kota; //deklarasi

variabel arraykota = new String[3]; // membuat

objek array

// mengisi elemen arraykota[0] = "Jakarta";kota[1] = "Surabaya";kota[2] = "Semarang";// menampilkan elemen arraySystem.out.println(kota[0]);System.out.println(kota[1]);System.out.println(kota[2]);

}}

Page 34: Romi oop-02-javafundamentals-29agustus2010

Pemberian Nilai Arraypublic class ArrayKota2{

public static void main(String[] args){ String[] kota = {“Jakarta”, “Surabaya”, “Semarang”};

// menampilkan elemen array System out println(kota[0]); System.out.println(kota[1]); System.out.println(kota[2]); }

}

Pemberian nilai dapat langsung dilakukan ketika objek array diciptakan

Page 35: Romi oop-02-javafundamentals-29agustus2010

Mengetahui Jumlah Elemen Arraypublic class ArrayKota3{

public static void main(String[] args){String[] kota = {“Jakarta”,

“Surabaya”, “Semarang”};

// menampilkan elemen arrayfor(int i=0; i<kota.length; i++)

System.out.println(kota[i]);}

}

Jumlah elemen Array dapat diketahui dengan instance variable bernama length

Page 36: Romi oop-02-javafundamentals-29agustus2010

Array Multidimensiclass ArrayMultidimensi {

public static void main(String[] args) {String[][] nama = {

{"Pak ", "Bu “, “Mbak”},

{"Joko", "Susi"} };

System.out.println(nama[0][0] + nama[1][0]);

System.out.println(nama[0][1] + nama[1][1]);

System.out.println(nama[0][2] + nama[1][0]);}

}

Array multidimensi adalah array dari array , dengan konsep pengaksesan [noBaris][noKolom]

Page 37: Romi oop-02-javafundamentals-29agustus2010

Latihan: Buat Array Multidimensi1. Buat class NegaraKota2. Buat array multidimensi untuk nama

negara dan ibukotanya3. Masukkan dalam list array:

nama negara = Amerika, Inggris, Jepang, Perancis, Indonesia, Iran, Irakibukota =Teheran, Bekasi, Jakarta, Bantar Gebang, Tokyo

4. Akses array dan tampilkan di layar sebagai berikut:

Ibukota Indonesia adalah JakartaIbukota Jepang adalah TokyoIbukota Iran adalah Teheran

Page 38: Romi oop-02-javafundamentals-29agustus2010

Operator

Page 39: Romi oop-02-javafundamentals-29agustus2010

Operator

Operator adalah simbol dan karakter khusus (matematika) yang digunakan dalam suatu ekspresi

Contoh: int x = 3; int y = x; int z = x * y; boolean status = true;

Page 40: Romi oop-02-javafundamentals-29agustus2010
Page 41: Romi oop-02-javafundamentals-29agustus2010

Jenis Operator Berdasar Operand

1. Operator Unary: operator yang melibatkan satu operand

2. Operator Binary: operator yang melibatkan dua operand

3. Operator Ternary: operator yang melibatkan tiga operand

Page 42: Romi oop-02-javafundamentals-29agustus2010

Jenis Operator

1. Operator Aritmatika2. Operator Penugasan3. Operator Penggabungan4. Operator Penambahan dan

Pengurangan5. Operator Bit6. Operator Pembanding7. Operator Logika

Page 43: Romi oop-02-javafundamentals-29agustus2010

Operator Aritmatika

Hasil operasi matematika akan mengikuti tipe data operand

Operand bertipe int akan menghasilkan int

Operator Meaning Example+ Addition 3 + 4- Subtraction 5 - 7* Multiplication 5 * 5/ Division 14 / 7% Modulus 20 % 7

Page 44: Romi oop-02-javafundamentals-29agustus2010

Operator Penugasan

Operator penugasan berguna untuk memberi nilai ke suatu variabel

Operator penugasan menggunakan tanda sama dengan ( = )

Operator penugasan digabungkan dengan operator aritmatika membentuk operator penugasan gabungan (compound assignment)

Page 45: Romi oop-02-javafundamentals-29agustus2010

Operator Penugasan Gabungan

Expression Meaning

x += y x = x + y

x -= y x = x - y

x *= y x = x * y

x /= y x = x / y

Page 46: Romi oop-02-javafundamentals-29agustus2010

Operator Penggabungan

Operator + dapat digunakan untuk penggabungan String dan String maupun String dan Bilangan

Contoh:System.out.println(“Saya adalah” + “Mahasiswa”);System.out.println(“Jumlah Mahasiswa” + 30);

Page 47: Romi oop-02-javafundamentals-29agustus2010

Penambahan dan Pengurangan Penambahan: menambahkan 1 ke nilai

variabel(operator = ++, prefix atau postfix)int x=5; int x=5;y = x++; y = ++x;(nilai saat ini : y = 5, x=6) (nilai saat ini: y = 6, x=6)

Pengurangan: mengurangkan 1 ke nilai variabel(operator = --)int x=5; int x=5;y = x--; y = --x;(nilai saat ini: y = 5, x=4) (nilai saat ini: y = 4, x=4)

Page 48: Romi oop-02-javafundamentals-29agustus2010

Latihan: Tampilkan Nilai x, y dan z

Penambahan.java

int x, y, z;x = 42;y = x++; //tampilkan x, y

saat iniz = ++x; //tampilkan x, z

saat ini

Pengurangan.java

int x, y, z;x = 42;y = x--;//tampilkan x, y

saat iniz = --x;//tampilkan x, z

saat ini

Page 49: Romi oop-02-javafundamentals-29agustus2010

Latihan: Tampilkan Nilai x, y,w dan z

Penambahan2.java

int w, x, y, z;x = 5; w =5 ;y = 8 - x++;z = 8 - ++w;

Pengurangan2.java

int w,x, y, z;x = 5; w =5 ;y = 8 – x--;z = 8 - --w;

Page 50: Romi oop-02-javafundamentals-29agustus2010

Operator Bit& operasi AND untuk bit

| operasi OR untuk bit

^ operasi Ex OR untuk bit

~ operasi NOT untuk bit

<< geser kiri (geser 1 bit = *2)

>> geser kanan (geser 1 bit = /2)

>>> geser kanan tak bertanda

Page 51: Romi oop-02-javafundamentals-29agustus2010

Latihan: Program Kali dan Bagi 2

Buat program yang menghitung perkalian (*) dan pembagian (/) dengan bilangan dua (2) tanpa operator matematika

Catatan = x >> n = x/2n

Page 52: Romi oop-02-javafundamentals-29agustus2010

Operator Pembanding (Relasional)

Operator Meaning Example

== Equal x == 3!= Not equal x != 3< Less than x < 3> Greater than x > 3<= Less than or equal to x <= 3

>= Greater than or equal to

x >= 3

Operator pembanding menggunakan ekspresi dengan nilai balik boolean (true or false)

Page 53: Romi oop-02-javafundamentals-29agustus2010

Latihan: Tampilkan hasilBanding1 dan 2

Pembanding.java

int age = 36;boolean hasilBanding1 = age

< 25;boolean hasilBanding2 = age !

= 26;

//Tampilkan hasilBanding1 dan hasilBanding2

Page 54: Romi oop-02-javafundamentals-29agustus2010

Operator Logika

&& operasi logika AND| | operasi logika OR! operasi logika NOT

Operator logika menggunakan ekspresi dengan nilai balik Boolean (true or false)

Page 55: Romi oop-02-javafundamentals-29agustus2010

Urutan Eksekusi Operator

Secara umum urutan eksekusi operator:1. Operasi Penambahan dan

Pengurangan2. Operasi Aritmatika3. Operasi Pembandingan4. Operasi Logika5. Operasi Penugasan

Apabila urutan sama, sebelah kiri dieksekusi terlebih dahulu daripada sebelah kanan

Khusus untuk operator = dan += sebelah kanan dieksekusi terlebih dahulu

Page 56: Romi oop-02-javafundamentals-29agustus2010

Operasi I/O StreamSederhana

Page 57: Romi oop-02-javafundamentals-29agustus2010

Stream Standard

1. System.in: menangani pembacaan dari keyboard (standard input)

2. System.out: mengirimkan keluaran ke layar (standard output)

3. System.err: mengirimkan kesalahan (standard error)

Page 58: Romi oop-02-javafundamentals-29agustus2010

Membaca Input dari Keyboard

Menggunakan class Scanner (java.util.Scanner) dengan method sebagai berikut:

1. nextInt(): untuk menerima tipe data integer

2. nextShort(): untuk menerima tipe data short

3. nextLong(): untuk menerima tipe data long

4. nextDouble(): untuk menerima tipe data double

5. nextFloat(): untuk menerima tipe data float

6. nextLine(): untuk menerima tipe data string

7. nextBoolean(): untuk menerima tipa data boolean

Page 59: Romi oop-02-javafundamentals-29agustus2010

SalamKenal.javaimport java.util.Scanner;

public class SalamKenal { public static void main( String[] args ){ Scanner masukan = new

Scanner(System.in);

System.out.print("Masukkan Nama Anda: "); String nama = masukan.nextLine();

System.out.println("Halo, Salam Kenal sdr " + nama +"!");

}}

Page 60: Romi oop-02-javafundamentals-29agustus2010

Perkalian.javapublic class Perkalian{

public static void main(String[] args){Scanner input = new

Scanner(System.in); System.out.print("Masukkan

bilangan pertama: ");int bilangan1 = input.nextInt();

System.out.print("Masukkan bilangan

kedua: ");int bilangan2 = input.nextInt();

System.out.print("Hasil perkalian: " +(bilangan1 * bilangan2));

}}

Page 61: Romi oop-02-javafundamentals-29agustus2010

Latihan

Ubah class LuasSegitiga dengan nilai alas dan tinggi dimasukkan oleh user lewat prompt (gunakan class Scanner)public class LuasSegitiga {

public static void main(String[] args) {double alas= 17; double tinggi = 11;

double luas = (alas*tinggi)/2;System.out.println("Luas Segitiga : "

+ luas);}

}

Page 62: Romi oop-02-javafundamentals-29agustus2010

Tampilan Program

Program Penghitung Luas Segitiga

Masukkan Alas = 13Masukkan Tinggi = 24Jadi, Luas Segitiga adalah =

Page 63: Romi oop-02-javafundamentals-29agustus2010

Argument untuk Menerima Inputpublic class LuasSegitigaArgs {

public static void main(String[] args) {

double alas= Double.parseDouble(args[0]);double tinggi =

Double.parseDouble(args[1]);

double luas = (alas*tinggi)/2;

System.out.println("Luas Segitiga : " + luas);

}}

Page 64: Romi oop-02-javafundamentals-29agustus2010

Tampilan Program

%java LuasSegitigaArgs 2 18Luas Segitiga: 18

Page 65: Romi oop-02-javafundamentals-29agustus2010

Argument untuk Menerima Input (Rev)public class LuasSegitigaArgs {

public static void main(String[] args) {

if (args.length == 2){double alas = Double.parseDouble(args[0]);double tinggi =

Double.parseDouble(args[1]);double luas = (alas*tinggi)/2;System.out.println("Luas Segitiga : " +

luas); }else{

System.out.println("Penggunaan Argument Salah!");

System.out.println("Contoh: java LuasSegitigaArgs 30 20"); }}

}

Page 66: Romi oop-02-javafundamentals-29agustus2010

Tampilan Program

%java LuasSegitigaArgs 2 18 67Penggunaan Argument Salah!Contoh: java LuasSegitigaArgs 30 20

Page 67: Romi oop-02-javafundamentals-29agustus2010

Konversi String dan Bilangan (Number)

Page 68: Romi oop-02-javafundamentals-29agustus2010

Konversi String ke Bilangan

String myString;

double myDbl = Double.parseDouble(myString);Integer.parseInt(myString);Float.parseFloat(myString);

Page 69: Romi oop-02-javafundamentals-29agustus2010

Argument untuk Menerima Inputpublic class LuasSegitigaArgs {

public static void main(String[] args) {

double alas= Double.parseDouble(args[0]);double tinggi =

Double.parseDouble(args[1]);

double luas = (alas*tinggi)/2;

System.out.println("Luas Segitiga : " + luas);

}}

Page 70: Romi oop-02-javafundamentals-29agustus2010

Konversi Bilangan ke String

double myDouble;int myInteger;float myFloat;

Double.toString(myDouble);Integer.toString(myInteger);Float.toString(myFloat);

Page 71: Romi oop-02-javafundamentals-29agustus2010

Pengaturan Format Output Numerik

Page 72: Romi oop-02-javafundamentals-29agustus2010

Metode Pengaturan Format

1. Menggunakan Method System.out.format()

2. Menggunakan DecimalFormat Class

Page 73: Romi oop-02-javafundamentals-29agustus2010

1. Method System.out.format()

public class TestFormat { public static void main(String[] args) { long n = 461012; System.out.format("%d%n", n); System.out.format("%08d%n", n); System.out.format("%+8d%n", n); System.out.format("%,8d%n", n); System.out.format("%+,8d%n%n", n); double pi = Math.PI; System.out.format("%f%n", pi); System.out.format("%.3f%n", pi); System.out.format("%10.3f%n", pi); System.out.format("%-10.3f%n", pi);

Calendar c = Calendar.getInstance(); System.out.format("%tB %te, %tY%n", c, c, c); System.out.format("%tl:%tM %tp%n", c, c, c); System.out.format("%tD%n", c); } }

Page 74: Romi oop-02-javafundamentals-29agustus2010

Hasil Eksekusi461012 00461012 +461012 461,012 +461,012

3.141593 3.142

3.142 3.142

May 29, 2006 2:34 am05/29/06

Page 75: Romi oop-02-javafundamentals-29agustus2010

Converters and Flags Converter Flag Explanation

d   A decimal integer. f   A float.

n   A new line character appropriate to the platform running the application. You should always use %n, rather than \n.

tB   A date & time conversion—locale-specific full name of month.

td, te   A date & time conversion—2-digit day of month. td has leading zeroes as needed, te does not.

ty, tY   A date & time conversion—ty = 2-digit year, tY = 4-digit year. tl   A date & time conversion—hour in 12-hour clock.

tM   A date & time conversion—minutes in 2 digits, with leading zeroes as necessary.

tp   A date & time conversion—locale-specific am/pm (lower case).

tm   A date & time conversion—months in 2 digits, with leading zeroes as necessary.

tD   A date & time conversion—date as %tm%td%ty   08 Eight characters in width, with leading zeroes as necessary.   + Includes sign, whether positive or negative.   , Includes locale-specific grouping characters.   - Left-justified..   .3 Three places after decimal point.

  10.3 Ten characters in width, right justified, with three places after decimal point.

Page 76: Romi oop-02-javafundamentals-29agustus2010

2. DecimalFormat Class public class DecimalFormatDemo { static public void customFormat(String pattern, double value ) {

DecimalFormat myFormatter = new DecimalFormat(pattern);

String output = myFormatter.format(value);System.out.println(value + " " + pattern + " "

+ output); }

static public void main(String[] args) {customFormat("###,###.###", 123456.789);customFormat("###.##", 123456.789);customFormat("000000.000", 123.78);customFormat("$###,###.###", 12345.67);

}}

Page 77: Romi oop-02-javafundamentals-29agustus2010

Hasil Eksekusi

123456.789 ###,###.### 123,456.789 123456.789 ###.## 123456.79 123.78 000000.000 000123.780 12345.67 $###,###.### $12,345.67

Page 78: Romi oop-02-javafundamentals-29agustus2010

DecimalFormat Class Value Pattern Output Explanation

123456.789

###,###.###

123,456.789

The pound sign (#) denotes a digit, the comma is a placeholder for the grouping separator, and the period is a placeholder for the decimal separator.

123456.789

###.## 123456.79

The value has three digits to the right of the decimal point, but the pattern has only two. The format method handles this by rounding up.

123.78 000000.000 000123.780

The pattern specifies leading and trailing zeros, because the 0 character is used instead of the pound sign (#).

12345.67 $###,###.### $12,345.67

The first character in the pattern is the dollar sign ($). Note that it immediately precedes the leftmost digit in the formatted output.

Page 79: Romi oop-02-javafundamentals-29agustus2010

Pernyataan PenentuKeputusan

Page 80: Romi oop-02-javafundamentals-29agustus2010

Pernyataan Penentu Keputusan

1.if, if-else, if-else if – else

2.switch

Page 81: Romi oop-02-javafundamentals-29agustus2010

ifPernyataan kondisi yang

digunakan untuk pengambilan keputusan terhadap dua buah kemungkinan

if bisa berdiri sendiri atau dengan menggunakan else

Bentuk:

if(kondisi){ // blok pernyataan yang dijalankan,

bila kondisi benar

}

Page 82: Romi oop-02-javafundamentals-29agustus2010

PernyataanIF.javapublic class PernyataanIF{

public static void main(String[] args){int diskon =0, totalBelanja =

500000;

if(totalBelanja >= 100000){ diskon = totalBelanja/10;} System.out.println("Diskon = " +

diskon);}

}

Page 83: Romi oop-02-javafundamentals-29agustus2010

if-else

if-else mengatur pernyataan yang dijalankan sewaktu kondisi bernilai benar atau salah

Bentuk:if(kondisi){

// blok pernyataan yang dijalankan, bila kondisi benar

} else{// blok pernyataan yang dijalankan,

bila kondisi salah

}

Page 84: Romi oop-02-javafundamentals-29agustus2010

PernyataanIFELSE.javapublic class PernyataanIFELSE{

public static void main(String[] args){int diskon =0, totalBelanja =

500000;

if(totalBelanja >= 100000){ diskon = totalBelanja/10;} else{ diskon = 0;}System.out.println("Diskon = " +

diskon);}

}

Page 85: Romi oop-02-javafundamentals-29agustus2010

Latihan

Kembangkan class PernyataanIFELSE supaya nilai Total Belanja bisa dimasukan melalui input dari keyboard (gunakan class Scanner)

Page 86: Romi oop-02-javafundamentals-29agustus2010

if-else if-elseMengatur pernyataan yang

dijalankan sewaktu kondisi berupa pilihan

Bentuk:if(kondisiA){

// pernyataan yang dijalankan, bila kondisiA benar}else if(kondisiB){

// pernyataan yang dijalankan, bila kondisiB benar}else if(kondisiC){

// pernyataan yang dijalankan, bila kondisiC benar}else{

// pernyataan yang dijalankan untuk kondisi selain itu}

Page 87: Romi oop-02-javafundamentals-29agustus2010

PernyataanIFELSEIF.javapublic class PernyataanIFELSEIF{

public static void main(String[] args) {int skorUjian= 86; char nilai;if (skorUjian >= 90) { nilai = 'A';} else if (skorUjian >= 80) { nilai = 'B';} else if (skorUjian >= 70) { nilai = 'C';} else { nilai = 'D';}System.out.println("Nilai = " + nilai);

}}

Page 88: Romi oop-02-javafundamentals-29agustus2010

Latihan

Kembangkan class PernyataanIFELSEIF supaya bisa menerima masukan (input) data langsung dari user

Tampilan Program:Masukkan Skor Ujian = XNilai untuk skor ujian X adalah Z

Page 89: Romi oop-02-javafundamentals-29agustus2010

Operator Ternary (Kondisi)

Pernyataan kondisi yang menggunakan operator ternary (melibatkan tiga buah operand)

Bentuk:ekspresi_kondisi ? nilai_1 : nilai_2

Page 90: Romi oop-02-javafundamentals-29agustus2010

OperatorTernary.java public class OperatorTernary{

public static void main(String[] args){ int totalBelanja = 500000;

int diskon = totalBelanja >= 100000 ?totalBelanja/10 : 0;

System.out.println("Diskon = " + diskon); }

}

Page 91: Romi oop-02-javafundamentals-29agustus2010

switchSwitch digunakan untuk

melakukan tindakan berbeda terhadap sejumlah kemungkinan nilai

Bentuk:switch(ekspresi){

case nilaiSatu:Pernyataan 1break;

case nilaiDua:Pernyataan2break;

...default: PernyataanN;

}

Page 92: Romi oop-02-javafundamentals-29agustus2010

PernyataanSWITCH1.javapublic class PernyataanSWITCH1{

public static void main(String[] args){int pilihan = 3;switch(pilihan){ case 1:

System.out.println("Soto Ayam");break;

case 2:System.out.println("Gule Kambing");break;

case 3:System.out.println("Nasi Goreng");break;

default:System.out.println("Silakan Pilih 1, 2 atau

3");}

}}

Page 93: Romi oop-02-javafundamentals-29agustus2010

Latihan

Kembangkan class PernyataanSWITCH1 supaya bisa menerima masukan (input) data langsung dari user lewat prompt

Tampilan awal: > 1. Soto Ayam 2. Gule Kambing 3. Nasi Goreng> Pilih menu apa? 1> Menu yang anda pilih adalah Soto Ayam

Page 94: Romi oop-02-javafundamentals-29agustus2010

PernyataanSWITCH2.javapublic class PernyataanSWITCH2{

public static void main(String[] args){int pilihan = 3;switch(pilihan){ case 1: case 2: case 3: case 4: case 5:

System.out.println("Hari Kerja");break;

case 6: case 7:

System.out.println("Hari Libur");break;

default:System.out.println("Silakan Pilih Hari");

}}}

Page 95: Romi oop-02-javafundamentals-29agustus2010

Latihan: Menentukan Jumlah Hari

Buat program (dengan SWITCH) untuk menghitung berapa jumlah hari pada suatu bulan dan tahun yang ditunjuk

Bulan dan tahun dimasukkan dengan input dari keyboard (class Scanner)

Tampilkan hasilnya dengan:Masukkan tahun: 1900

Masukan bulan: 2Jumlah hari pada tahun 1900 bulan 2 adalah 28 hari

Page 96: Romi oop-02-javafundamentals-29agustus2010
Page 97: Romi oop-02-javafundamentals-29agustus2010

PernyataanPengulangan Proses (Loop)

Page 98: Romi oop-02-javafundamentals-29agustus2010

Pernyataan Pengulangan Proses

1.for2.while3.do-while

Page 99: Romi oop-02-javafundamentals-29agustus2010

for

for sering disebut for loop, karena digunakan untuk proses looping atau pengulangan

Bentuk:

for (inisialisasi; kondisi; penaikan_penurunan){

pernyataan}

Page 100: Romi oop-02-javafundamentals-29agustus2010

PernyataanFOR.javapublic class PernyataanFOR {

public static void main(String[] args){

for(int i=1; i<11; i++){System.out.println(i);

}}

}

Page 101: Romi oop-02-javafundamentals-29agustus2010

PernyataanFOREnhanced.java

class PernyataanFOREnhanced {public static void main(String[] args){

int[] numbers = {1,2,3,4,5,6,7,8,9,10};

for (int i : numbers) {

System.out.println(i);}

}}

Page 102: Romi oop-02-javafundamentals-29agustus2010

while

while digunakan untuk melakukan proses pengulangan suatu blok pernyataan selama kondisinya bernilai true

Bentuk:while (kondisi) {

pernyataan}

Page 103: Romi oop-02-javafundamentals-29agustus2010

PernyataanWHILE.javaclass PernyataanWHILE {

public static void main(String[] args){

int i = 1;while (i < 11) {

System.out.println(i);i++;

}}

}

Page 104: Romi oop-02-javafundamentals-29agustus2010

Latihan: Tampilkan Bilangan Genap

Tampilkan bilangan genap antara 1 sampai 20 dengan menggunakan:

1. Pernyataan FOR2. Pernyataan WHILE

Page 105: Romi oop-02-javafundamentals-29agustus2010

do...while

do ... while digunakan untuk melakukan proses pengulangan suatu blok pernyataan selama kondisinya bernilai true

Pernyataan dalam blok paling tidak dieksekusi satu kali

Bentuk:do {

pernyataan} while (kondisi);

Page 106: Romi oop-02-javafundamentals-29agustus2010

PernyataanDOWHILE.javaclass PernyataanDOWHILE {

public static void main(String[] args){

int i = 1;do {

System.out.println(i);i++;

} while (i <= 10);}

}

Page 107: Romi oop-02-javafundamentals-29agustus2010

Pernyataan Pemindah Proses (Jump)

Page 108: Romi oop-02-javafundamentals-29agustus2010

Pernyataan Pemindah Proses

1. return2. break3. continue

Page 109: Romi oop-02-javafundamentals-29agustus2010

return Digunakan untuk keluar dari method return memiliki dua bentuk:

1. mengembalikan nilai (sesuai dengan tipe data)

2. tidak mengembalikan nilai (untuk void)

Contoh:int perkalian(int x, int y){

return x * y;}void perkalian(int x, int y){

hasilKali = x * y;return;

}

Page 110: Romi oop-02-javafundamentals-29agustus2010

break

Penyataan break digunakan untuk keluar dari suatu pengulangan (loop)

Penggunaan break bisa berbentuk tanpa label atau berlabel

Page 111: Romi oop-02-javafundamentals-29agustus2010

PernyataanBREAK.java

public class PernyataanBREAK {public static void main(String[] args){

for(int i=1; i<11; i++){if(i==5) break;System.out.println(i);

}}

}

Page 112: Romi oop-02-javafundamentals-29agustus2010

PernyataanBREAKLABEL.javapublic class PernyataanBREAK {

public static void main(String[] args){

selesai:for(int i=1; i<11; i++){

if(i==5) break selesai;System.out.println(i);

}}

}

Page 113: Romi oop-02-javafundamentals-29agustus2010

continue

Digunakan untuk melanjutkan eksekusi ke suatu pengulangan (loop)

Bisa berbentuk tanpa label atau berlabel

Bentuk code persis sama dengan break, baik untuk yang tanpa label atau berlabel

Page 114: Romi oop-02-javafundamentals-29agustus2010

Latihan: Modifikasi Matematika.java

Modifikasi program Matematika.java yang sebelumnya sudah kita buat dengan menggunakan tipe data double untuk method

Input data adalah lewat prompt (class Scanner)

Buat menu pilihan untuk fitur pertambahan, pengurangan, pembagian atau perkalian

Gunakan pengulangan untuk menu pilihan. Akan berhenti apabila kita pilih 0

Page 115: Romi oop-02-javafundamentals-29agustus2010

TampilanMenu Aplikasi Matematika:1. Pertambahan 2. Pengurangan 3. Perkalian

4. Pembagian0. Keluar Aplikasi

Pilih Menu = 1Masukkan Angka Pertama = 3Masukkan Angka Kedua =23

Hasil Pertambahan antara 3 dan 23 adalah 26

Menu Aplikasi Matematika:1. Pertambahan 2. Pengurangan 3. Perkalian

4. Pembagian0. Keluar Aplikasi

Pilih Menu =

Page 116: Romi oop-02-javafundamentals-29agustus2010

Latihan: Aplikasi Restoran

1. Buat sistem manajemen restoran berbasis text

2. Harga semua masakan adalah Rp. 15.000

3. Sistem akan melakukan pengulangan tampilan Pilih Menu, sampai dipilih menu 5 (Hitung Total) atau menu 6 (Keluar Aplikasi))

4. Sistem akan melakukan pengulangan tampilan Menu Restoran, sampai dipilih menu 6 (Keluar Aplikasi))

Page 117: Romi oop-02-javafundamentals-29agustus2010

Tampilan SistemMenu Restoran:1. Nasi Goreng 2. Nasi Rawon 3. Nasi Gudeg

4. Jus Jeruk5. Hitung Total 6. Keluar Aplikasi

Pilih Menu? 1Pilih Menu? 4

(mengulang ke tampilan Pilih Menu, sampai dipilih menu 5 (Hitung Total) atau menu 6 (Keluar Aplikasi))

Pilih Menu? 5

Pilihan menu adalah Nasi Goreng dan Jus Jeruk.Total yang harus dibayar adalah Rp. 30.000

(mengulang ke tampilan Menu Restoran, sampai dipilih menu 6 (Keluar Aplikasi))

Page 118: Romi oop-02-javafundamentals-29agustus2010

Referensi -1- Sharon Zakhour et al, The Java

Tutorial Fourth Edition, http://java.sun.com/docs/books/tutorial

Deitel & Deitel, Java How to Program 7th Edition, Prentice Hall, 2007

Deitel & Deitel, Java for Programmers, Prentice Hall, 2009

Kathy Sierra & Bert Bates, Head First Java 2nd Edition, O’Reilly, 2005

Rogers Cadenhead & Laura Lemay, Teach Yourself Java 6 in 21 Days, Sams Publishing, 2007

Robert Lafore, Data Structures and Algorithms in Java Second Edition, Sams Publishing, 2003

Page 119: Romi oop-02-javafundamentals-29agustus2010

Referensi -2-

Tim Pengembang JENI, JENI 1-6, Depdiknas, 2007

Indrajani dan Martin, Pemrograman Berbasis Objek dengan Java, Elex Media Komputindo, 2007

LN Harnaningrum, Algoritma dan Pemrograman Java, Graha Ilmu, 2009

Rachmad Hakim & Sutarto, Mastering Java, Elex Media Komputindo, 2009

Miftakhul Huda dan Bunafit Komputer, Membuat Aplikasi Database dengan Java, MySQL, dan Netbeans, Elex Media Komputindo, 2010