38
IF-ITB/YN_RevIL/2005 IF2281–Pemrograman Berorientasi Objek Page 1 Perkembangan Fitur Java (JDK 1.1 s/d JDK 1.5) Yohanes Nugroho

Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

Embed Size (px)

Citation preview

Page 1: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page1

Perkembangan Fitur Java(JDK 1.1 s/d JDK 1.5)

Yohanes Nugroho

Page 2: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page2

Overview

• Java adalah bahasa yang masih berkembang– Fitur bahasa masih mungkin bertambah atau bahkan

berubah

• Versi JDK pertama adalah 1.0, dan yangterbaru adalah 1.5 (disebut juga Java 5)– Versi JDK :1.1, 1.2, 1.3, 1.4, 1.5

• Umumnya yang masih dianggap standaradalah versi 1.4– Banyak tools (misalnya untuk membuat diagram

UML) hanya mendukung JDK 1.4

Page 3: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page3

Ikhtisar

• Penjelasan singkat perkembangan fiturJDK 1.0 s/d 1.4

• Fitur baru JDK 1.5– Generik– Enum– Varargs– Sintaks for– Metadata– Autoboxing/unboxing

Page 4: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page4

Penomoran Versi

• Versi JDK adalah versi internal sun– Versi ini yang lebih dikenal secara de fakto

• Versi Eksternal adalah Java 1, 2 dan 5:– JDK 1.0 = Java: Java yang pertama– JDK 1.3 = Java 2– Tidak ada Java 3 dan 4– JDK 1.5 = Java 5

Page 5: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page5

Penambahan API

• Setiap versi JDK selalu menambahkan APIbaru.

• API baru mungkin melibatkan perubahan padabahasa (misal: API Reflection), namunbiasanya tidak.

• API yang tidak berhubungan denganperubahan bahasa (secara sintaks/semantik)bisa diimplementasikan ulang di JDK versi yanglama (misal di JDK 1.5 ada Regex, di JDKsebelumnya kita bisa menggunakan libraryregex dari pihak ketiga)

Page 6: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page6

JDK 1.1

• Penambahan fitur inner Class(perubahan bahasa)– Versi Java sebelumnya hanya mendukung

Top Level Class

• Penambahan Reflection API– Reflection API melibatkan perubahan

bahasa (setiap kelas dapat diaksesrefleksinya)

Page 7: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page7

JDK1.1

• Perkenalan Format file JAR– File Jar merupakan file yang berisi kelas

Java dan resource yang dibutuhkan untukmenjalankan kumpulan kelas tersebut(gambar, suara, dll)

– menjadi bagian integral Java karenamenjadi bagian dari classpath Java

Page 8: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page8

JDK 1.2

• Penambahan Weak Reference dan tipereference lain– Referensi yang “lemah”, sehingga bisa

dibersihkan oleh garbage collector jikadiperlukan

• Perubahan pada penanganan Thread– Sebelum JDK1.2 ada method untuk men-

suspend (menghentikan sementara) danme-resume (meneruskan) thread, tapiternyata ini rawan deadlock

Page 9: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page9

JDK 1.3

• Tidak ada perubahan bahasa• Penambahan dan perbaikan API untuk

distributed programming (RMI, CORBA)• Sampai dengan versi terakhir (1.3.1_14)

Sangat banyak bug yang diperbaiki(lebih dari 100)– Informasi lengkap dapat dilihat di:

http://java.sun.com/j2se/1.3/ReleaseNotes.html

Page 10: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page10

JDK 1.4

• Perubahan bahasa: asersi (seperti padaC/C++)

• Pada versi ini banyak penambahan APIbaru– NIO:

• API baru untuk I/O yang berguna untuk I/Okinerja tinggi

– Logging:• Fitur untuk melakukan pencatatan aktivitas

program ke media tertentu (disk, jaringan, dll)

Page 11: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page11

Asersi

• Perubahan bahasa di JDK 1.4 adalahpenambahan asersi

• Asersi adalah pernyataan boolean bahwasesuatu pasti benar di satu titik program– Jika salah, maka exception akan dilempar

• Contoh: pada algoritma yangmenghitung kecepatan benda (dalamm/s) , hasilnya pasti kurang darikecepatan cahaya, kita bisa memberiassersi bahwa hasil kecepatan <299792458

Page 12: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page12

Contoh pemakaian asersi

• Asersi bahwa speed pasti < 299792458 :assert (speed<299792458);

• Asersi juga bisa diberi pesan yang lebihinformatif:assert(speed<299792458):”kecepatanmelebihi kecepatan cahaya”;

Page 13: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page13

Pengaktifan asersi

• Defaultnya assersi tidak akan diperiksaoleh JVM (program dengan atau tanpaasersi tetap sama)

• Asersi diaktifkan (diperiksa) jikaprogram dijalankan dengan -ea(enable assertion)

java -ea Speed

Page 14: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page14

JDK 1.5

• Paling banyak terjadi perubahan bahasa– kelas generik– syntax loop untuk enumerasi– automatic boxing/unboxing– enumerasi– static import– metadata– variable arguments

Page 15: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page15

Kelas Generik

• Kelas generik memungkinkan suatuabstraksi terhadap tipe

• Konsep yang bersesuaian adalahTemplate di C++– Tapi konsep template C++ tidak 100%

kompatibel dengan Java– Java memproses generic pada compile time

dan runtime, sedangkan C++ hanya padacompile time

Page 16: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page16

Mendefinisikan Kelas Generik

• Kelas Generik:public class MyList<E>{

void add(E x) { /*kode add*/}

}• Untuk generik dengan lebih dari 1 tipe:public class MyList<E, T>{

void add(E x) { /*kode add*/}

void set(T x) {/* kode set*/}

}

Page 17: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page17

Nama tipe untuk generik

• Untuk satu tipe generik dalam contohakan selalu digunakan E, dan disarankanuntuk menggunakan E– E singkatan dari Element

• Boleh nama lain, tapi disarankan yangsingkat dan terdiri atas huruf besar

• Untuk lebih dari satu tipe generik,gunakan nama yang cukup representatif

Page 18: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page18

Memakai Kelas Generik

• Gunakan sintaks:– NamaKelas<NamaTipe>

• Contoh:– List<Integer> lst = new List<Integer>();

• Operasi selanjutnya dilakukan seolah-olah Tipe pada deklarasi telahmenggantikan nama tipe E:– lst.add(new Integer(5))

Page 19: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page19

Interface Generik

• Interface Generik dideklarasikan sepertikelas Generik:

public interface List<E> {

void add(E x);

Iterator<E> iterator();

}

• Dan diimplementasikan seperti ini:public class MyList<E> implements List<E> {

void add(E x) { /*implementasi Add*/}

}

Page 20: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page20

Autoboxing/Unboxing

• Pada JDK sebelum 1.5, tipe dasar dan tipe Kelas yangmewakili tipe dasar tidak bisa dipertukarkan

– int tidak kompatibel dengan Integer, char tidakkompatibel dengan Char, dst

• Diperlukan konversi eksplisit

– Contoh (int -> Integer):Integer v = new Integer(5);

– Sebaliknya (Integer->int):int i = v.intValue();

• Di JDK 1.5 konversi ini sudah otomatisi = v; v = 5;

Page 21: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page21

Contoh Autoboxing/unboxing

• Di JDK sebelum 1.5, kode semacam iniharus digunakan karena Vector hanyamenerima tipe turunan kelas Objek:

Vector v = new Vector();

v.add(new Integer(42));int n=((Integer)(v.elementAt(0))).intValue();

• Di JDK 1.5 Menjadiv.add(0, 59);

int n= (Integer)v.elementAt(0);

Page 22: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page22

Autoboxing dan kelas Generik

• Baris terakhir pada contoh sebelumnya terasa janggal:

– Konversi dari Objek -->Integer --> intmenggunakan casting, karena kelas Vectormenyimpan sebagai kelas Object perlu casting keInteger

• Vector juga merupakan kelas generik, sehinggacontoh sebelumnya bisa diubah menjadi:Vector<Integer> v = newVector<Integer>();

v.add(42);

int n = v.elementAt(0); /*otomatis*/

Page 23: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page23

Sintaks loop baru

• Sintaks:for (parameterFormal: Ekspresi)

statement

• Parameter formal adalah variabel (ataudeklarasi variabel)

• Ekspresi haruslah array, atau kelasturunan java.lang.Iterable

• Pada saat loop, parameter formal berisienumerasi isi ekspresi

Page 24: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page24

Contoh Penggunaan Sintaks Loop untuk array

public int sumArray(intarray[]) {

int sum = 0;

for(int i : array) {

sum += i;

}

return sum;

}

Page 25: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page25

interface java.lang.iterable

• Hanya mengembalikan suatu iteratorterhadap suatu tipe tertentu:

interface Iterable<T> {Iterator<T> iterator()

}

Page 26: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page26

Interface java.lang.iterator

• Interface sederhana untuk mengembalikan elemensecara terurut

interface Iterator<E> {

boolean hasNext();

E next();

remove();

}

• hasNext() untuk memeriksa apakah masih adaelemen berikut, next() mengembalikan elemenselanjutnya, dan remove() menghapus elementerakhir yang dikembalikan next

Page 27: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page27

Kelas standar yang mengimplementasikan Iterable

• Banyak kelas standar Java yangmengimplementasikan Iterable:– Vector, Collection, List, Stack, ...

• Semua instans kelas ini bisa diloop dengansintaks for baru:Vector v<String> = new Vector<String>();

v.add(“Hello”);

for(String e: v) {

System.out.println(e);

}

Page 28: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page28

Enum

• Tipe enumerasi adalah tipe yang terdiriatas nilai-nilai yang sudah terdefinisi

• Konsep ini ada pada C, C++, dan bahkanPascal

• Contoh :public enum Direction {LEFT,RIGHT, UP, DOWN};

Page 29: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page29

Mengapa perlu fitur baru enum?

• Sebelumnya, di Java sebelum 1.5, kode di atas harusdituliskan sebagai:

class Direction {

public final static int LEFT = 1;

public final static int RIGHT = 2;

public final static int UP = 3;

public final static int DOWN = 4;

}

• Kode tidak type safe: LEFT dan RIGHT bisadijumlah, dan mungkin ada yang akan mengisi arahdengan nilai di luar 1..4

Page 30: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page30

Perbandingan enum dengankonstanta

• ENUM• Dianggap sebagai

tipe baru (typesafe)

• Bisa dienumerasi• Jika dicetak (print)

menghasilkan teksnama enumerasi

• KONSTANTA• Dianggap integer

biasa (tidak typesafe)

• Tidak bisadienumerasi

• Jika dicetak (print)menghasilkan nilai

Page 31: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page31

Perbedaan enum dan konstantawaktu kompilasi

• Konstanta dikompilasi ke dalam client(kelas) yang memakai konstantatersebut– Jika nilai konstanta berubah, maka client

harus dikompilasi ulang• Enum tidak dikompilasi ke dalam client

– Jika nilai konstanta berubah maka clienttidak perlu dikompilasi ulang

Page 32: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page32

Variable arguments (varargs) pada method

• Variable arguments memungkinkanmethod memiliki argumen yangjumlahnya tidak tetap– seperti fungsi printf atau scanf di C

• Variable arguments diimplementasikansebagai array

Page 33: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page33

Deklarasi method dengan varargs

• Parameter variabel dideklarasikandengan tanda tiga titik (...) antara namatipe dan nama variabel:– Contoh: void cetak(String ... nama);

• Parameter yang variabel harus di posisiterakhir– Boleh: void cetak(int nomor, String ...nama);

– Tidak boleh: void cetak(String ... nama,int nomor);

Page 34: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page34

Pemanggilan varargs

• Contoh deklarasi:void cetak(String ... nama) {/*...*/ }

• Contoh pemanggilan:cetak(“Java”, “C++”, “Python”);

• Karena varargs adalah array, maka kodeini sama dengan di atas:String sx[] = {“Java”, “C++”,“Python”};

cetak(sx);

Page 35: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page35

Contoh variable arguments

• Perhatikan method test dalam kelasTest:

class Test {

public static void cetak(String ... arg){

for (int i = 0; i<arg.length; i++){

System.out.println(arg[i]);

}

}

}

Page 36: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page36

Printf

• Dengan adanya argumen (parameter)variabel, Java sekarang mendukungfungsi seperti printf C:– System.out.printf(“%d ditambah %dhasilnya %d\n”, a, b, a + b);

• Fitur ini mempermudah porting kodeyang ditulis dalam C/C++

Page 37: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page37

Import Statik

• Memungkinkan programmer mengakses variabel, method,atau konstanta statik tanpa menyebut nama kelasnya

• Contoh:import static java.lang.Math.*;class Test {

public static void main(String argv[]) {System.out.println(sin(0));/*biasanya harus Math.sin(0)*/

}

}

Page 38: Perkembangan Fitur Java (Jdk 1.1 s/d Jdk 1.5) · • Tipe enumerasi adalah tipe yang terdiri atas nilai-nilai yang sudah terdefinisi • Konsep ini ada pada C, C++, dan bahkan Pascal

IF-ITB/YN_RevIL/2005IF2281–Pemrograman Berorientasi Objek

Page38

Materi ekstra: Membaca Input dari keyboard di JDK1.5

• JDK sebelum 1.5 mengharuskan kitamenggunakan BufferredReader,InputStreamReader, danInteger.parseInt hanya untuk membacasebuah integer dari keyboard

• Di JDK 1.5 untuk melakukan hal yangsama:Scanner reader = new Scanner(System.in);

int n = reader.nextInt();