Pengenalan Java -...

Post on 29-Oct-2020

46 views 0 download

Transcript of Pengenalan Java -...

PENGENALAN JAVA Pemrograman Berbasis Objek

SEJARAH SINGKAT Perkembangan Java

Java

• Asal mula Java :

• Tim sun Microsystems thn 1991 code name Oak

• thn 1995 Java

• Bahasa pemrograman java yang telah dirilis adalah:

1. Produk Sun Microsystem : J2SE, J2ME, J2EE

2. Produk Borland : Borland JBuilder

3. Produk Microsoft : Microsoft Visual J/J++

Java

Proyek Java dimulai pada tahun 1991

• Sejumlah insinyur perusahaan Sun yang dimotori oleh

James Gosling mempunyai keinginan untuk mendesain

sebuah bahasa komputer kecil yang dapat dipergunakan

untuk peralatan konsumen seperti kotak tombol saluran

TV.

• Proyek ini kemudian diberi nama sandi Green.

Java

Keharusan untuk membuat bahasa yang kecil dan kode

yang ketat

• Mendorong mereka untuk menghidupkan kembali model

yang pernah dicoba oleh bahasa UCSD Pascal, yaitu

mendesain sebuah bahasa yang portable yang

menghasilkan kode intermediate.

• Kode intermediate ini kemudian dapat digunakan pada

banyak komputer yang interpreternya telah disesuaikan.

Java

Karena orang-orang Sun memiliki latar belakang sebagai pemakai unix

• lebih menggunakan C++ sebagai basis bahasa pemrograman mereka, maka mereka secara khusus mengembangkan bahasa yang berorientasi objek bukan berorientasi prosedur.

• Gosling : ”Secara keseluruhan, bahasa hanyalah sarana, bukan merupakan tujuan akhir”.

• Gosling memutuskan menyebut bahasanya dengan nama “Oak” (diambil dari nama pohon yang tumbuh tepat diluar jendela kantornya di Sun), tetapi kemudian nama Oak diubah menjadi Java, karena nama Oak merupakan nama bahasa komputer yang sudah ada sebelumnya.

KELEBIHAN &

KARAKTERISTIK Bahasa Pemrograman Java

Kelebihan Java

• Portable dan platform independent

• Garbage collection

• Menghilangkan pewarisan berganda pada C++

• Mengurangi pointer aritmatik -> java : reference

• Array sejati

• Mengurangi kerancuan antara pemberian nilai pada

statemen kondisional. Contoh : „=„ dgn „==„ pada kondisi if

Karakteristik Java

1. Sederhana (Simple)

2. Berorientasi Objek (Object Oriented)

3. Terdistribusi (Distributed)

4. Kuat (Robust)

5. Aman (Secure)

6. Netral Arsitektur (Architecture Neutral)

7. Portabel (Portable)

8. Interpreter

9. Kinerja Yang Tinggi (High Performance)

10. Multithreaded

11. Dinamis

Sederhana (Simple)

Syntax untuk Java seperti syntax pada C++ tetapi syntax

Java tidak memerlukan :

• header file

• pointer arithmatic (atau bahkan pointer syntax)

• struktur union

• operator overloading

• class virtual base

• dan yang lainnya.

Berorientasi Objek (Object Oriented)

• Feature pemrograman berorientasi objek pada Java

sebanding dengan C++.

• Perbedaan utama antara Java dengan C++ terletak pada

penurunan berganda (multiple inheritance), untuk ini Java

memiliki cara penyelesaian yang lebih baik.

Terdistribusi (Distributed)

• Java memiliki library rutin yang luas untuk dirangkai pada

protokol TCP/IP sepetrti HTTP dan FTP dengan mudah.

• Aplikasi Java dapat membuka dan mengakses objek

untuk segala macam NET lewat URL sama mudahnya

seperti yang biasa dilakukan seorang programmer ketika

mengakses file sistem secara lokal.

Kuat (Robust)

• Perbedaan utama antara Java dan C++ adalah Java

memiliki sebuah model pointer yang mengurangi

kemungkinan penimpaan (overwriting) pada memory dan

kerusakan data (data corrupt).

Aman (Secure)

• Java dimaksudkan untuk digunakan pada jaringan

terdistribusi. Sebelum sampai pada bagian tersebut,

penekanan terutama ditujukan pada masalah keamanan.

• Java memungkinkan penyusunan program yang

• bebas virus

• sistem yang bebas dari kerusakan.

Netral Arsitektur (Architecture Neutral)

• Kompiler membangkitkan sebuah format file dengan

objek arsitektur syaraf.

• Program yang di kompile dapat dijalankan pada banyak

prosesor, disini diberikan sistem run time dari Java.

• Kompiler Java melakukannya dengan membangkitkan

instruksi-instruksi kode byte yang tidak dapat dilakukan

oleh arsitektur komputer tertentu.

• Java dirancang untuk mempermudah penerjemahan pada

banyak komputer dengan mudah dan diterjemahkan pada

komputer asal pada saat run-time.

Portabel (Portable)

• Tidak seperti pada C dan C++, di Java terdapat

ketergantungan pada saat implementasi (implement

dependent). Ukuran dari tipe data primitif ditentukan,

sebagaimana kelakuan aritmatik padanya.

• Librari atau pustaka merupakan bagian dari sistem yang

mendefinisikan interface yang portabel.

Interpreter

• Interpreter Java dapat meng-eksekusi kode byte Java

secara langsung pada komputer-komputer yang memiliki

interpreter.

• Proses linking dalam Java merupakan proses yang

kenaikannya tahap demi tahap dan berbobot ringan,

maka proses pengembangan dapat menjadi lebih cepat

dan masih dalam penelitian.

Kinerja yang Tinggi (High Performance)

• Kode byte dapat diterjemahkan (pada saat run-time) ke

dalam kode mesin untuk CPU tertentu dimana aplikasi

sedang berjalan.

Multithread

• Multithreading adalah kemampuan sebuah program untuk

melakukan lebih dari satu pekerjaan sekaligus.

• Keuntungan dari multithreading adalah sifat respons yang

interaktif dan real-time.

Dinamis

• Java dirancang untuk beradaptasi dengan lingkungan

yang terus berkembang.

• Librari dapat dengan mudah menambah metode dan

variabel contoh yang baru tanpa banyak mempengaruhi

klien.

• Informasi run-time dalam Java adalah langsung

(straigtforward).

JAVA DAN C++ Bagaimana Java lebih baik dari C++

Java dan C++

• Prinsip dasar pembuatan Java adalah karena C++

ternyata tidak memenuhi janji sebagai pemrograman

berorientasi objek.

Jadi apa yang salah dari C++ sehingga Java harus dibuat ?

Kompatibilitas ke belakang ( backward compability).

Java dan C++

• Kompabilitas kebelakang biasanya dikenal sebagai

kemampuan yang menjamin keberhasilan dengan

membuat programmer belajar dengan cepat.

• Java menggunakan hampir semua konvensi yang identik

untuk :

• deklarasi variabel

• melewatkan parameter

• operator

• pengaturan aliran.

Java dan C++

• Java jauh lebih baik dari C++ karena hal-hal yang tidak dimilikinya, seperti beberapa contoh berikut:

a) Variabel Global

b) Goto

c) Pointer

d) Alokasi Memori

e) Tipe Data Yang Rapuh

f) Pemilihan Tipe (Type Casting) yang Tidak Aman

g) Daftar Argumen Yang Tidak Aman

h) File Header yang Terpisah

i) Struktur yang Tidak Aman

j) Peng-hacker-an Preprocessor

k) QED

Variabel Global

C++

• Tanda sebuah program

yang tidak dirancang

cukup baik untuk

enkapsulasi data dengan

cara yang masuk akal.

JAVA

• Ruang penamaan global hanya hirarki class. Tidak mungkin menciptakan variabel global diluar semua class.

• Contoh, system.out.println() sering digunakan dalam program Java.

• Cara mengakses output standar global untuk interpreter Java.

GOTO

C++

• Dikenal if-then-goto

• Goto sering digunakan

untuk membuat

perulangan di dalam

keadaan eksepsi

JAVA

• Tidak memiliki pernyataan

goto.

• Menyediakan kata goto

hanya untuk menjaga agar

programmer tidak bingung

menggunakannya

• Memiliki bagian break yang

diberi label dan pernyataan

continue yang merupakan

bagian dimana goto boleh

dipergunakan

Pointer

C++

• Biasanya kesalahan

terjadi karena “kurang

satu tempat” atau

rusaknya data yang

disimpan karena lokasi

memori terakhir hancur -

susah untuk diperiksa dan

ditelusuri.

JAVA

• Tidak memiliki

kemampuan

memanipulasi pointer

secara langsung.

• Kita tidak dapat

mengubah integer

menjadi pointer, menunjuk

ulang sembarang address

memori.

Alokasi Memori

C++

• Manajemen memori di C dan C++ diwujudkan dengan keunggulan dan kelemahan fungsi library malloc() dan free().

• Secara umum dapat menyebabkan kebocoran memori yang mengakibatkan program berjalan semakin lama semakin lambat.

JAVA

• Dialokasikan dengan

operator new, yang

mengalokasikan ruang

untuk objek pada „heap‟

memori.

• ‘heap’ berupa kumpulan

instans (instance) objek.

Tipe Data yang Rapuh

C++

• C++ mewarisi semua tipe

data umum pada C.

• Tipe-tipe ini mewakili

bilangan bulat dan

pecahan dengan berbagai

rentang nilai dan

ketelitian.

• Bergantung pada

implementasi

kompilernya.

JAVA

• Mengambil ukuran yang

sesuai untuk semua tipe

numerik dasar dan

menyatukannya.

• Menjamin hasil yang

dapat dibuat ulang pada

platform hardware yang

berbeda

JAVA

Java

• Java/Standard Development Kit (JDK/SDK) merupakan

alat‐alat utama bagi programmer untuk membuat dan

menjalankan java.

• Development Kit dapat didownload di website resmi

oracle.

Komponen JDK

• compiler(javac),

• interpreter(java) disebut juga java virtual machine atau

java runtime environment,

• applet viewer(appletviewer),

• debugger(jdb),

• java class library(jcl),

• header dan stub generator(javah),

• java documentation(javadoc).

Komponen JDK

1. Kompilator (javac)

Bertugas untuk melaksanakan kompilasi *.java menjadi

*.class

Syntax umum : javac nama_file.java

2. Interpreter (java)

Bertugas untuk menjalankan bytecode (*.class)

Syntax umum : java nama_file.class

3. Applet Viewer

Digunakan untuk menjalankan applet viewer, namun

sekarang sudah digantikan browser.

Syntax umum : appletviewer nama_file.html

Komponen JDK

4. Java Debugger

Bertugas untuk melakukan debugging aplikasi java.

Syntax umum : jdb option

5. Java Class File Diassembler (javap)

Bertugas membuat daftar method dan attribute public dari

suatu kelas.

Syntax : javap namaKelas

6. Java Header and Stub Generator

Bertugas menerjemahkan bahasa yang ditulis dalam

bahasa Java menjadi bahasa pemrograman C.

Syntax umum : javah namaKelas

Komponen JDK

7. Java Documentation Generator

Menampilkan pustaka kelas, interface, constructor, dan

method standard yang telah dibuat vendor. Dari hasil

instalasi, dokumentasi ini dapat dilihat di pada

C:\java\docs\api\index.html dan dari hasil instalasi

Netbeans, dapat dilihat pada C:\Program

Files\NetBeans3.6\doc\junit\index.html

8. Source Code Java API

Source code ini dapat diperoleh dari file src.zip.

• Untuk pemrogram pemula, lingkungan pemrograman java

dapat diringkas menjadi:

• Editing source code menggunakan editor teks, seperti

Notepad atau TextPad

• Compiling menggunakan keyword javac melalui

command promp (dapat juga dari editor teks seperti

TextPad).

• Executing menggunakan :

1. Command prompt untuk java application (atau dari

editor teks TextPad)

2. Browser atau appletviewer untuk java applet.

Pemrograman Java

• Baris‐baris program dalam java harus ditulis dalam lingkup class

• Contoh program pendek untuk menampilkan tulisan “Belajar Java” di layar monitor :

• Program di atas disimpan dengan nama file Latihan1.java. Penamaan ini mengikuti aturan bahwa nama file = nama class.

Token

• Adalah elemen terkecil di program yang masih memiliki

arti

• Lima token dalam bahasa java yaitu :

1. identifier

2. keyword

3. literal dan tipe data

4. operator

5. separator

Identifier

Adalah token yang merepresentasikan nama sesuatu

(variabel, atau konstanta, atau method, atau kelas, atau

package, atau interface)

Keyword dalam Java

Literal dan Tipe Data Primitif

• Adalah nilai variabel/attribute atau nilai konstanta atau

nilai objek data.

• Tiga besaran literal dalam java yaitu angka, karakter, dan

string.

• Angka terdiri dari byte, short, int, long, float, double, dan

boolean (dianggap angka true = 1 atau false = 0).

Deklarasi Variable dan Konstanta

Bentuk umum :

• TipeData namaVar = ungkapan_atau_nilai;

• TipeData namaVar1, namaVar2, …;

• [modifier] static final TipeData NAMAKONSTANTA = nilai;

Contoh deklarasi :

• float f1= 0.13f;

• double a=3, b=4;

• double c = Math.sqrt(a*a+b*b);

• static final PHI=3.14;

• static final double CM_PER_INC = 2.54;

Tipe Data

• Java merupakan contoh bahasa yang strongly typed

language.

• Hal ini berarti bahwa setiap variabel harus memiliki tipe

yang sudah dideklarasikan.

• Terdapat 8 tipe primitif :

a) 6 diantaranya adalah tipe bilangan

• 4 tipe integer

• 2 tipe floating point

b) 1 tipe karakter char, digunakan untuk encode Unicode

c) 1 tipe boolean.

Integer

Floating Point

Char

• Tipe char menggunakan tanda kutip tunggal untuk menyatakan suatu

char.

• Tipe char juga menyatakan karakter dalam upaya encoding unicode,

yang merupakan kode 2 byte.

• Karakter unicode paling sering dinyatakan dalam istilah skema

pengkodean hexadesimal yang dimulai dari \u0000 sampai \uFFFF.

• Selain karakter bebas (escape „ \u „) yang menyatakan karakter

unicode di Java terdapat juga

Boolean

• Tipe boolean memiliki nilai true (1) dan false (0).

• Tipe ini digunakan untul logical testing dengan

menggunakan operator relasional.

Casting

• teknik konversi secara eksplisit, yaitu menerangkan kepada kompiler bahwa terjadi perubahan tipe variabel, sehingga hasilnya harus dikonversi ke tipe variabel baru tersebut.

• Contoh :

int i;

double d;

byte b;

i = 250;

d = i; //tidak error,penyesuaian otomatis

b = i; //error, tipe tidak kompatible

Seharusnya : b = (byte) i; <- eksplisit cast

Promosi

• Promosi tipe pada ekspresi dilakukan oleh Java secara

otomatis bila konversi dari satu tipe variabel dgn

kapasitas byte yg lebih kecil ke tipe variabel lain dgn

penempatan byte (kapasitas) yg lebih besar

• Contoh :

int i;

byte b = 100;

i = b + 50; // otomatis tipe b+50

// menjadi integer

Konversi Antar Nilai Numerik

Operasi biner apapun pada variabel numerik dengan tipe

yang berbeda dapat diterima dan diperlakukan dengan

cara seperti dibawah ini :

1. Jika tipe operand adalah double, maka yang lain juga

akan diperlakukan sebagai double pada lingkup operasi

tersebut.

2. Jika operand adalah float, maka yang lain juga akan

diperlakukan sebagai float.

3. Jika operand adalah long, maka yang lain juga akan

diperlakukan sebagai long.

Konversi Antar Nilai Numerik

• Konversi yang diijinkan adalah sebagai berikut :

byte → short → int → long → float → double

• Dimana kita dapat memberikan nilai variabel suatu tipe

disebelah kiri ke tipe disebelah kanannya.

Operator

Operator melakukan komputasi terhadap satu/dua objek

data(operan).

Operan yang dioperasikan dapat berupa literal, variabel,

atau nilai yang dikirim method.

Assignment Operator ( = )

Arithmetic Operator ( = )

Bitwise Operator

Unary Operator

Relational Operator

Logical Operator

Tabel Hirarki Operator

Separator

• Separator menginformasikan ke compiler java mengenai

adanya kelompok kode program

Keyword Break, Continue, Return

Merupakan kendali jump (variasi lain dari goto), sehingga

berakibat pengabaian sisa instruksi

Keyword Break

• Untuk keluar dari kendali percabangan switch, dan untuk keluar dari kendali perulangan

Contoh :

public class contohBreak {

public static void main(String args[]) {

int i = 0;

do {

i++;

System.out.println(i);

if (i==5) break;

} while (i <= 9)

}

}

Keyword Continue

• Untuk segera lompat ke perulangan berikutnya.

• Pernyataan‐pernyataan setelah keyword continue dalam blok perulangan saat itu berarti diabaikan.

Contoh : public class contohContinue {

public static void main(String args[]) {

int i=0;

do {

i++;

if (i==3) continue;

System.out.println(”iterasi ke : “+i);

if (i==5) break;

} while(i <= 9);

}

}

Keyword Return

• Untuk keluar dari suatu method

Contoh cuplikan program :

int abs(int x) {

if (x >= 0)

return x;

else

return(-x)

. . .

}

}

LATIHAN

Latihan

1. Sebutkan komponen‐komponen yang terdapat dalam

Java Development Kit!

2. Apa yang dimaksud dengan token dan identifier?

3. Sebutkan kegunaan dari operator, separator, keyword

break dan keyword continue.

4. Buatlah program yang menampilkan tulisan :

Belajar java memang mudah

Jika dilakukan dengan tekun

5. Buatlah contoh program lain yang menggunakan

keyword break dan continue.