PENGENALAN JAVA
SEJARAH JAVA Proyek Java dimulai pada tahun 1991, ketika sejumlah insinyur perusahaan Sun Microsystem yang dimotori oleh James Gosling memulai Green Project, yaitu proyek penelitian untuk membuat bahasa komputer yang digunakan pada chip-chip embedded untuk peralatan konsumen (inteligent consumer electronic devices) seperti remote TV. 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. Karena orang-orang Sun memiliki latar belakang sebagai pemakai unix sehingga mereka lebih menggunakan C++ sebagai basis bahasa pemrograman mereka, maka mereka secara khusus mengembangkan bahasa yang berorientasi objek bukan berorientasi prosedur. Seperti yang dikatakan Gosling ”Secara keseluruhan, bahasa hanyalah sarana, bukan merupakan tujuan akhir”. Dan 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. Pada tahun 1994 sebagian besar orang menggunakan mosaic, browser web yang tidak diperdagangkan yang berasal dari pusat Supercomputing Universitas Illinois pada tahun 1993.( Mosaic sebagian ditulis oleh Marc Andreessen dengan bayaran $6.85 per jam, sebagai mahasiswa yang melakukan studi praktek. Di kemudian hari ia meraih ketenaran sebagai salah seorang pendiri dan pemimpin teknologi di netscape) Browser yang sesungguhnya dibangun oleh Patrick Naughton dan Jonathan Payne dan berkembang ke dalam browser HotJava yang ada saat ini. Browser HotJava ditulis dalam Java untuk menunjukkan kemampuan Java. Tetapi para pembuat juga memiliki ide tentang suatu kekuatan yang saat ini disebut dengan applet, sehingga mereka membuat browser yang mampu penerjemahkan kode byte tingkat menengah. “Teknologi yang Terbukti” ini diperlihatkan pada SunWorld ’95 pada tanggal 23 mei 1995, yang mengilhami keranjingan terhadap Java terus berlanjut. KEUNGGULAN JAVA 1. Sederhana (Simple), Java dimodelkan sebagian dari bahasa C++ dengan memperbaiki beberapa karakteristik C++, seperti penambahan fungsionalitas, pengurangan kompleksitas. Contohnya, java menghilangkan multiple inheritance dari C++ dengan menggunakan interface. 2. Berorientasi Objek (Object Oriented), dalam memecahkan masalah, bahasa Java membagi program menjasi objek-objek, kemudian memodelkan sifat dan tingkah laku masing-masing objek. Kemudian Java menentukan dan mengatur interaksi antar objek. 3. Terdistribusi (Distributed), fitur- fitur Java sangat mendukung teknologi internet yang saat ini berkembang sehingga dapat mendukung pemrograman terdistribusi. 4. Multiplatform, Bahasa Java dapat diterjemahkan oleh java interpreter pada berbagai macam sistem operasi (linux, windows, apple) 5. Multithreaded, thread adalah proses yang dapat dikerjakan oleh suatu program dalam suatu waktu. Java bersifat multithreaded, sehingga dapat mengerjakan beberapa proses dengan waktu yang hampir bersamaan.
PBO/Java/Ayuliana/Feb2009
1
TATA BAHASA JAVA Pemrograman Java adalah kumpulan spasi, komentar, kata kunci, identifier, literal, operator, dan pemisah. Contoh : //FIRST PROGRAM IN JAVA //display multiple lines class helloworld { public static void main(String args[ ]){ System.out.println("Welcome to Java\nHello world"); } } Output : Welcome to Java Hello World Contoh GUI : //FIRST PROGRAM IN JAVA //display multiple lines import javax.swing.JOptionPane; //Import class JOptionPane class helloworld { public static void main(String args[ ]) { JOptionPane.showMessageDialog(null, "Welcome to Java\nHello World"); System.exit(0); //Terminate the program } } Output :
SPASI Java adalah bahasa bebas bentuk. Tidak perlu mengatur tata letaknya agar dapat bekerja. Asalkan ada sekurang-kurangnya satu spasi, tab, atau baris baru diantara setiap token sebelum disisipi operator atau pemisah lain. KOMENTAR Ada beberapa bentuk : 1. Komentar baris tunggal, Diawali dengan tanda // dan diletakkan diakhir baris yang diberi komentar. 2. Komentar baris banyak, Diawali dengan tanda /* dan ditutup dengan */ semua diantara kedua tanda tersebut dianggap komentar dan akan diabaikan oleh compiler. contoh penulisan : /* * komentar……. * komentar…… */ 3. Komentar terdokumentasi, Menggunakan piranti Javadoc, yang menggunakan komponen compiler Java untuk secara otomatis menghasilkan dokumentasi antarmuka public suatu class. Aturan pembuatan komentar yang dapat diolah oleh Javadoc adalah : sebelum deklarasi class, method, dan variabel public harus digunakan komentar bertanda /** untuk menyatakan komentar dokumentasi, diakhiri dengan tanda */. Javadoc akan mengenali sejumlah variabel khusus yang didahului dengan tanda @ didalam bagian komentar. contoh penulisan : /** * komentar…. * komentar….. PBO/Java/Ayuliana/Feb2009 2
*/ KATA KUNCI (KEYWORDS) Sampai dengan Versi 1.0 terdapat 59 kata kunci seperti terlihat dalam tabel : abstract boolean break byte byvalue case char class const continue default do extends false final finally float for goto if implements import inner instanceof long native new null operator outer protected public rest return short static synchronized this throw throws transient true void volatile while
cast double future int package super try
catch else generic interface private switch var
IDENTIFIER & VARIABEL Identifier digunakan untuk nama class, method, dan variabel. variabel adalah satuan dasar penyimpanan dalam program Java. Suatu variabel didefinisikan dengan kombinasi identifier, tipe, dan cakupan. Bergantung pada tempat dideklarasikannya, variabel dapat bersifat lokal atau sementara, misalnya didalam perulangan for, atau dapat juga berupa variabel instans yang dapat diakses oleh semua method dalam class. Cakupan lokal dinyatakan dalam kurung kurawal. Dengan aturan dasar penamaan: 1. Berupa urutan tertentu huruf (besar atau kecil), angka, garis bawah, dan tanda dolar. 2. Tidak boleh diawali oleh angka 3. Bersifat case sensitive. 4. Tidak boleh menggunakan operator 5. Tidak boleh menggunakan keyword Kelompok Java mengikuti aturan penamaan identifier untuk semua method public dan variabel instans : 1. Jika nama variabel atau identifier terdiri dari 1 kata, maka semua dituliskan dengan huruf kecil, misal : “harga”, “nama”, “alamat”. 2. Jika terdiri dari 2 kata atau lebih, maka diawali dengan huruf kecil dan menandai bagian kata selanjutnya dengan huruf besar, misalnya “nextItem”, “currentValue”, “getTimeOfDay”. 3. Untuk variabel private dan lokal identifier akan berupa huruf kecil semua dikombinasikan dengan garis bawah, misalnya “next_val”, “temp_val”. 4. Untuk variabel final yang mewakili suatu konstanta, digunakan huruf besar semua, misalnya “TOK_BRACE”, “DAY_FRIDAY”. LITERAL Besaran konstanta pada Java dihasilkan dengan menggunakan literal yang mewakilinya. Setiap literal merepresentasikan nilai suatu tipe, dimana tipe itu sendiri menjelaskan bagaimana sifat nilai tersebut dan bagaimana penyimpanannya.
SEPARATOR (Pemisah) Simbol ()
Nama Kurung
{}
kurung kurawal
[]
kurung siku
; ,
titik-koma koma
.
titik
PBO/Java/Ayuliana/Feb2009
Fungsi Digunakan untuk menghimpun parameter dalam definisi dan pemanggilan method, juga digunakan untuk menyatakan tingkatan pernyataan, menghimpun pernyataan untuk pengaturan alur program dan menyatakan tipe cast. Digunakan untuk menghimpun nilai yang otomatis dimasukkan kedalam array, juga digunakan untuk mendefinisikan blok program, untuk cakupan class, method, dan lokal variabel. Digunakan untuk menyatakan tipe array, juga digunakan untuk membedakan nilai array. pemisah pernyataan. Pemisah urutan identifier dalam deklarasi variabel, juga digunakan untuk mengaitkan pernyataan didalam pernyataan for. Dugunakan untuk memisahkan nama paket dari sub-paket dan class, juga 3
digunakan untuk memisahkan variabel atau method dari variabel referensi.
TIPE DATA Ada 8 kategori tipe data primitif dalam java, yaitu : Data Type
Keyword byte short int long float double char boolean
Integers
Real Numbers Others Types
Description
Size/Format
Byte-length integer Short integer Integer Long integer Single-precision floating point Double-precision floating point A single character A boolean value (true or false)
8-bit two's complement 16-bit two's complement 32-bit two's complement 64-bit two's complement 32-bit IEEE 754 64-bit IEEE 754 16-bit Unicode character true or false
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 yang diijinkan adalah sebagai berikut : byte short int long float double Dimana dapat diberikan nilai variabel suatu tipe disebelah kiri ke tipe disebelah kanannya.
OPERATOR Arithmetic Operators Operator + * / %
Use op1 + op2 op1 - op2 op1 * op2 op1 / op2 op1 % op2
Description Adds op1 and op2 Subtracts op2 from op1 Multiplies op1 by op2 Divides op1 by op2 Computes the remainder of dividing op1 by op2
Operators increment/decrement Operator ++ ++ ---
Use op++ ++op op---op
Description Increments op by 1; evaluates to the value of op before it was incremented Increments op by 1; evaluates to the value of op after it was incremented Decrements op by 1; evaluates to the value of op before it was decremented Decrements op by 1; evaluates to the value of op after it was decremented
Relational Operators Operator > >= <
Use op1 > op2 op1 >= op2 op1 < op2
PBO/Java/Ayuliana/Feb2009
Returns true if op1 is greater than op2 op1 is greater than or equal to op2 op1 is less than op2 4
<= == !=
op1 <= op2 op1 == op2 op1 != op2
op1 is less than or equal to op2 op1 and op2 are equal op1 and op2 are not equal
Conditional operators Operator && || ! & |
Use op1 && op2 op1 || op2 ! op op1 & op2 op1 | op2
^
op1 ^ op2
Returns true if op1 and op2 are both true, conditionally evaluates op2 either op1 or op2 is true, conditionally evaluates op2 op is false op1 and op2 are both true, always evaluates op1 and op2 either op1 or op2 is true, always evaluates op1 and op2 if op1 and op2 are different--that is if one or the other of the operands is true but not both
Shift Operators Operator >> << >>>
Use op1 >> op2 op1 << op2 op1 >>> op2
Operation shift bits of op1 right by distance op2 shift bits of op1 left by distance op2 shift bits of op1 right by distance op2 (unsigned)
Logical Operators Operator & | ^ ~
Use op1 & op2 op1 | op2 op1 ^ op2 ~op2
Operation bitwise and bitwise or bitwise xor bitwise complement
Assignment Operators Operator += -= *= /= %= &= |= ^= <<= >>= >>>=
Use op1 += op2 op1 -= op2 op1 *= op2 op1 /= op2 op1 %= op2 op1 &= op2 op1 |= op2 op1 ^= op2 op1 <<= op2 op1 >>= op2 op1 >>>= op2
Equivalent to op1 = op1 + op2 op1 = op1 – op2 op1 = op1 * op2 op1 = op1 / op2 op1 = op1 % op2 op1 = op1 & op2 op1 = op1 | op2 op1 = op1 ^ op2 op1 = op1 << op2 op1 = op1 >> op2 op1 = op1 >>> op2
Other Operators Operator ?: [] []
Use op1 ? op2 : op3 type [] type[ op1 ]
[]
op1[ op2 ]
PBO/Java/Ayuliana/Feb2009
Description If op1 is true, returns op2. Otherwise, returns op3. Declares an array of unknown length, which contains type elements. Creates and array with op1 elements. Must be used with the new operator. Accesses the element at op2 index within the array op1. Indices begin at 0 and extend through the length of the array minus one. 5
.
op1.op2
()
op1(params)
(type)
(type) op1
new
new op1
instanceof
op1 instanceof op2
PBO/Java/Ayuliana/Feb2009
Is a reference to the op2 member of op1. Declares or calls the method named op1 with the specified parameters. The list of parameters can be an empty list. The list is comma-separated. Casts (converts) op1 to type. An exception will be thrown if the type of op1 is incompatible with type. Creates a new object or array. op1 is either a call to a constructor, or an array specification. Returns true if op1 is an instance of op2
6