pengenalan java -...
TRANSCRIPT
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.