Java.Jamilah,SKom.,MT
1
PENGANTAR JAVA
Sejarah Singkat Perkembangan JAVA
Proyek Java dimulai pada tahun 1991, ketika 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
.
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 kita miliki 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.
Karakteristik Java
Sintaks Java merupakan pengembangan dari bahasa C/C++. Berikut adalah beberapa hal tentang
pemrograman Java:
1.
Bersifat
protable
dan
platform independent
. Program Java yang telah ditulis akan dapat
dieksekusi di mesin apapun dan sistem operasi apapun tanpa harus mengubah sedikitpun
dari program tersebut.
2.
memiliki
garbage collection
yang dapat mendealokasikan memori secara otomatis.
3.
menghilangkan sifat pewarisan berganda yang terdapat pafa C++.
Java.Jamilah,SKom.,MT
2
tidak seharusnya atau tidak boleh dilakukan. Untuk mengurangi kemungkinan kesalahan
seperti ini penggunaan pointer pada Java telah dibatasi dengan menggunakan reference.
5.
memiliki array sejati.
6.
mengurangi kerancuan antara pemberian nilai pada
statement conditional
.
Kriteria “Kertas Putih” Java
Penulis Java telah menulis pengaruh “Kertas Putih” yang menjelaskan tujuan rancangan
dan keunggulannya. Kertas mereka disusun lewat 11 kriteria berikut
:
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. Jika anda mengenal C++ dengan baik, maka anda dapat berpindah
ke syntax Java dengan mudah tetapi jika tidak, anda pasti tidak berpendapat bahwa Java
sederhana.
Berorientasi Objek (Object Oriented)
Rancangan berorientasi objek merupakan suatu teknik yang memusatkan rancangan pada
data (objek) dan interface. Fasilitas pemrograman berorientasi objek pada Java pada dasarnya
adalah sama dengan C++. Feature pemrograman berorientasi objek pada Java benar-benar
sebanding dengan C++, perbedaan utama antara Java dengan C++ terletak pada
penurunanberganda (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)
Java dimaksudkan untuk membuat suatu program yang benar-benar dapat dipercaya
dalam berbagai hal. Java banyak menekankan pada pengecekan awal untuk kemungkinan
terjadinya masalah, pengecekan pada saat run0time dan mengurangi kemungkinan timbulnya
kesalahan (error). 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)
Java.Jamilah,SKom.,MT
3
Java. Kompiler Java melakukannya dengan membangkitkan instruksi-instruksi kode byte yang
tidak dapat dilakukan oleh arsitektur komputer tertentu. Dan yang lebih baiik Java dirancang
untuk mempermudah penterjemahan 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. Dan karena proses linking dalam Java merupakan proses
yang kenaikannya tahap demi tahapdan berbobot ringan, maka proses pengembangan dapat
menjadi lebih cepat dan masih dalam penelitian.
Kinerja Yang Tinggi (High Performance)
Meskipun kinerja kode byte yang di interpretasi biasanya lebih dari memadai, tetapi
masih terdapat situasi yang memerlukan kinerja yang lebih tinggi. Kode byte dapat
diterjemahkan (pada saat run-time) de dalam kode mesin untuk CPU tertentu dimana aplikasi
sedang berjalan.
Multithreaded
Multithreading adalah kemampuan sebuah program untuk melakukan lebih dari satu
pekerjaan sekaligus. Keuntunga dari multithreading adalah sifat respons yang interaktif dan
real-time.
Dinamis
Dalam sejumlah hal, Java merupakan bahasa pemrograman yang lebih dinamis
dibandingkan dengan C atau C++. 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 tipr run-time dalam Java adalah langsung
(straigtforward).
Pemrograman Berorientasi Objek (PBO)
Java.Jamilah,SKom.,MT
4
dikumpulkan kemudian disebut ”Class”, dan tugas utama dari seorang perancang program
dengan Simula adalah menentukan behaviour dari class tersebut.
Elemen sebuah Objek: atribute dan behaviour
Setiap objek selalu memiliki
atribute
dan
behaviour
yang dapat mengubah
atribut
tersebut. Sebagai contoh manusia memiliki atribut: umur, tinggi, berat dan sebagainya. Demikian
pula manusia memiliki behaviour: menua, meninggi, makan (menambah berat badan) dan
sebagainya. Behaviour juga dapat tidak mengubah sama sekali state dari objek tersebut, baik
secara langsung maupun tidak langsung. Secara sederhana state bisa dianggap sebagai suatu kata
benda karena sifatnya yang pasif, benda tersebut tidak melakukan operasi tetapi justru menjadi
target atau bahan operasi. Demikian pul behaviour bisa dianggap sebagai kata kerja, karena ia
berfungsi untuk menujukkan operasi apa yang dilakukan.
Konsep Pemrograman Berorientasi Objek
Ciri PBO adalah :
1. Enkapsulasi
Enkapsulasi adalah suatu mekanisme untuk menyembunyikan atau memproteksi
suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem
sekaligus menyederhanakan penggunaan system itu sendiri
. Akses ke internal sistem diatur
sedemikian rupa melalui seperangkat interface. Contoh kasus sepeda motor tadi, pada sistem
pemindahan gigi transmisi, maka pengendara tidak perlu tahu detail dari bagaimana proses
pemindahan gigi itu dilakukan oleh mesin, cukup tahu bagaimana menekan gigi transmisi itu.
Pedal gigi transmisi yang diinjak pengendara itu merupakan interface (antar muka) pengendara
dengan sistem transmisi sepeda motor.
Dalam bahasa Java segala sesuatu adalah objek (
everything is object
). Setiap baris
program yang ditulis programmer adalah merupakan bagian dari sebuah objek. Programmer juga
dapat membangun sebuah objek yang disusun oleh objek-objek kecil, dimana masing-masing
objek yang menyusunnya memiliki fungsi sendiri-sendiri.
2. Pewarisan (Inheritance)
Sebagai manusia kita sebenarnya terbiasa untuk melihat objek yang berada disekitar kita
tersusun secara hierarki berdasarkan class-nya masing-masing. Dari sini kemudian timbul suatu
konsep tentang
pewarisan yang merupakan suatu proses dimana suatu class diturunkan
dari class lainnya
sehingga ia mendapatkkan cirri atau sifat dari class tersebut. Perhatikan
contoh hirarki berikut ini:
Java.Jamilah,SKom.,MT
5
Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin bersifat
spesifik. Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian halnya juga
Anjing, kucing dan Monyet memiliki seluruh sifat yang diturunkan dari class mamalia. Dengan
konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan didefinisikan
dalam class binatang saja. Class mamalia tidak perlu mendefinisikan ulang apa yang telah
dimiliki oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik
dari class binatang secara otomatis. Demikian juga dengan class anjing, kucing dan monyet,
hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-masing.
Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu
mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia
diturunkan.
3. Polymorphism
Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. Dalam PBO,
konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah objek
agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses
berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah
satu
interface banyak aksi
.
Aturan Dasar Java
Aturan Dasar dari penggunaan sintaks bahasa JAVA
JAVA bersifat
case-sensitive
Secara umum JAVA mengabaikan spasi kosong
(karakter yang tidak muncul pada layar, mis kosong, tab, baris baru)
Brace
{ }
adalah simbol pengelompokkan dalam JAVA yang enandai awal dan akhir
bagian suatu program.
Setiap pernyataan JAVA diakhiri dengan simbol ;
Simbol
//
membuat sebuah baris komentar Simbol
/*
…
*/
membatasi bagian awal dan
akhir suatu komentar
Komentar javadoc khusus digunakan untuk men-generate dokumentasi HTML
untukprogram Java Anda. Anda dapat menciptakan komentar javadoc dengan memulai
baris dengan /** dan mengakhirinya dengan */.
JAVA memiliki beberapa kata yang dicadangkan dan tidak bisa digunakan dalam
ekspresi biasa. Kata-kata tersebut disebut keyword.
Kelas pertama dalam sebuah program JAVA (disebut kelas pengendali) harus memiliki
nama yang sama dengan file di mana ia disimpan.
Contoh program :
// menampilkan sebaris text dengan multiple statement
class salam2
{
public static void main(String[] args) {
System.out.print(“Selamat datang”);
Java.Jamilah,SKom.,MT
6
// menampilkan beberapa baris dengan sebaris statement
class salam3 {
public static void main(String[] args) {
System.out.println(“Selamat datang\n di JAVA programming”);
}
}
Identifier
Identifier merupakan nama yang digunakan untuk menamai class, interface, variable dan
method. Programmer dapat menentukan sendiri identifier yang akan digunakan. Hanya yang
perlu diperhatikan adalah:
-
tidak ada batasan panjang, jadi identifier dapat dibuat dengan panjang karakter yang tidak
terbatas.
-
Identifier harus diawali dengan huruf, underscore / garis bawah ( _ ) atau lambang dollar
($). Untuk selebihnya dapat digunakan karakter apapun, kecuali karakter yang digunakan
sebagai operator oleh Java (*, +, -, /).
-
Bukan merupakan keyword yang telah dikenal oleh Java.
Reserved Word / keywords
Ini merupakan kata-kata yang telah dikenal oleh Java dengan memiliki arti khusus dalam
program. Berikut ini adalah daftar kata-kata tersebut.
Table 1 Daftar Kata (Keyword) yang dikenal dalam Java
abstract
Boolean
break
byte
case
catch
Char
Class
const
Continue
default
Do
Double
else
Extends
false
Final
finally
float
For
goto
If
Implements
import
Instanceof
int
Interface
long
native
New
null
Package
Private
protected
Public
return
Short
Static
strictfp
Super
switch
Synchronized
this
throw
Throws
transient
True
Try
void
Volatile
while
Tipe Data
1.
Tipe data Primitif
Bahasa pemrograman Java mendefinisikan delapan tipe data primitif. Mereka diantaranya
adalah boolean (untuk bentuk logika), char (untuk bentuk tekstual), byte, short, int, long, double
and float (floating point).
Tabel Tipe Data
Tipe
Lebar
Jangkauan nilai
Boolean
True / False True / false
Char
2 byte
0 – 65535
Java.Jamilah,SKom.,MT
7
Short
2 byte
- 32.768 … 32.767
Int
4 byte
2.147.483.468 … 2.147.483.647
Long
8 byte
± 9.233.372.036.854.755.808
Float
4 byte
± 3,40282347E+38F
Double
8 byte
± 1,79763913486231570E+308
2.
Tipe data composite /reference
Merupakan tipe data yang dibentuk dari tipe data primitive seperti array dan String
.
Karakter Escape (Escape Sequence )
Karakter
Fungsi
\a
Bunyi bell atau alert
\b
Mundur 1 spasi (backspace)
\f
Form feed (ganti halaman)
\n
New line (ganti baris)
\r
Carriage return (ke kolom pertama,baris yg sama
\t
Tabulasi horizontal
\v
Tabulasi vertical
\0
Nilai kosong (null)
\’
Tanda petik
\”
Petik ganada
\\
Backslash
Berikut adalah beberapa contoh penulisan literal:
Contoh
Tipe Data
178
Int
0xA17
Int dalam bentuk hexa
072
Int dalam bentuk octal
8864
L
Long
37.266
Double
37.266
D
Double
87.363
F
Float
26.77E3
Double
'
c
'
Char
True
Boolean
False
Boolean
Variabel
Ada 3 jenis variabel, yaitu :
Java.Jamilah,SKom.,MT
8
2.
variabel kelas
adalah variabel yang bersifat global terhadap kelas dan terhadap instance
kelas. Untuk mendeklarasikan variabel kelas digunakan kata kunci
static.
Cont :
static
int jumlah
static
final int jumlah = 12; // untuk konstanta./
3.
Variabel local
adalah variabel yang dideklarasikan dan dipakai dalam definisi method.
Sintaks pendeklarasian variabel secara umum adalah sebagai berikut:
Tipe_data nama_variable = nilai ;
Contoh :
int hitung;
String kata = “Java”;
Catatan:
1. Tipe data pada JAVA, tidak tergantung pada mesin komputer.
2. Character selalu diapit oleh tanda petik tunggal
→ ‘H’
3. “H”
→ suatu string yang berisi sebuah karakter
Konversi Tipe Numerik
•
Jika salah satu operand bertipe double, operand yang lain akan diubah menjadi double
pula.
•
Jika salah satu operand bertipe float, operand yang lain akan diubah menjadi float pula.
•
Jika salah satu operand bertipe long, operand yang lain akan diubah menjadi long pula.
Perubahan : byte
→ short → int → long → float → double
Sama halnya dengan int , short dan byte
Type casting
adalah istilah dimana suatu data dipaksa menjadi tipe data lain.
Contoh :
int x = 9;
int y = 4;
int z = x/y;
Maka nilai z = 2.0 maka z diganti : double z =
(double)
x/y; maka z = 2.25;
Constant (Konstanta)
•
final
final int PANJANG_SEGIEMPAT = 30;
•
biasanya ditulis dengan huruf besar semua
•
class constant ditulis dengan
static final
class Contoh
{
static final
double G = 9.81;
public static void main (String[] args)
{
System.out.println(G + “meter per detik”);
}
}
Java.Jamilah,SKom.,MT
9
Simbol
Nama
Fungsi
()
Kurung
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.
{}
kurung
kurawal
Digunakan untuk menghimpun nilai yang otomatis
dimasukkan kedalam array, juga digunakan untuk
mendefinisikan blok program, untuk cakupan class, method,
dan lokal.
[]
kurung siku Digunakan untuk menyatakan tipe array, juga digunakan
untuk membedakan nilai array.
;
titik-koma
pemisah pernyataan.
,
koma
Pemisah urutan identifier dalam deklarasi variabel, juga
digunakan untuk mengaitkan pernyataan didalam pernyataan
for
.
.
titik
Dugunakan untuk memisahkan nama paket dari sub-paket dan
class, juga digunakan untuk memisahkan variabel atau method
dari variabel referensi.
OPERATOR
Assignment Operator ( = )
Shorthand assignment operator
Operator
Usage
Meaning
+=
X += Y
X = X + Y
-=
X -= Y
X = X – Y
*=
X *= Y
X = X * Y
/=
X /= Y
X = X / Y
%=
X %= Y
X = X % Y
Arithmetic Operator
Operator
Operation
+
Addition
-
Subtraction
*
Multiplication
/
Division
Java.Jamilah,SKom.,MT
10
Bitwise Operator
Operator
Operation
&
AND
|
OR
^
XOR
>>
Shift Kanan
<<
Shift Kiri
>>>
Shift Kanan isi dengan nol
Unary Operator
Operator
Operation
~
Unary NOT
-
Minus
++
Increment
--
Decrement
Relational Operator
Operator
Operation
==
Equal To
!=
Not Equal To
>
Greater Than
<
Less Than
>=
Greater or Equal To
<=
Less or Equal To
Logical Operator
Operator
Operation
!
Short-circuit NOT
&&
Short-circuit AND
||
Short-circuit OR
?:
Operator ternary
if-then-else
Preseden Operator
Tertinggi
()
[]
.
Java.Jamilah,SKom.,MT
11
*
/
%
+
-
>>
>>>
<<
>
>=
<
<=
==
!=
&
^
|
&&
||
?:
=
op=
Terendah
CONTROL FLOW
Percabangan
•
if – else
Bentuk if-else menyebabkan eksekusi dijalankan melalui sekumpulan keadaan boolean
sehingga hanya bagian tertentu program yang dijalankan. Bentuk umum pernyataan if-else
:
if (boolean expression) statement 1; [else statement 2; ]
Klausa else bersifat optional, setiap statement dapat berupa satu statement tunggal atau
dapat berupa satu blok statement yang ditandai dengan tanda {} (kurung kurawal). Boolean
expression dapat berupa sembarang pernyataan boolean yang menghasilkan besaran
boolean.
•
Break
Java tidak memiliki pernyataan goto. Penggunaan goto adalah untuk membuat
percabangan secara sembarang yang membuat program sulit dimengerti dan mengurangi
optimasi compiler tertentu. Pernyataan break pada Java dirancang untuk mengatasi semua
kasus tersebut. Istilah break mengacu kepada proses memecahkan blok program. Proses
tersebut memerintahkan runtime untuk menjalankan program dibelakang blok tertentu.
Untuk dapat ditunjuk blok diberi nama/label. Break juga dapat digunakan tanpa label untuk
keluar dari suatu loop dan pernyataan switch. Penggunaan break menunjukkan bahwa kita
akan keluar dari sutu blok program.
Java.Jamilah,SKom.,MT
12
int[][] numbers = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};
int searchNum = 5;
boolean foundNum = false;
searchLabel:
for( int i=0; i<numbers.length; i++ ){
for( int j=0; j<numbers[i].length; j++ ){
if( searchNum == numbers[i][j] ){
foundNum = true;
break searchLabel;
}
}
}
if( foundNum ){ System.out.println( searchNum + " found!" ); }
else { System.out.println( searchNum + " not found!" ); }
•
Switch
Pernyataan switch memberiikan suatu cara ubtuk mengirimkan bagian program
berdasarkan nilai suatu variabel atau pernyataan tunggal. Bentuk umum pernyataan switch
:
switch (expression)
{
case value1
:
Statement;
break;
case value2
:
Statement;
break;
case valueN :
Statement;
break;
default;
}
Expression dapat menghasilkan suatu tipe sederhana, dan setiap value yang disebutkan
pada pernyataan case harus berupa tipe yang cocok. Pernyataan switch bekerja dengan cara
membandingkan nilai expression dengan setiap nilai pada pernyataan case. Jika ada yang
cocok maka urutan program yang ada di pernyataan case tersebut akan dijalankan, jika tidak
ada yang cocok, program akan menjalankan default
•
Return
Java.Jamilah,SKom.,MT
13
Perulangan (Looping)
Looping artinya mengulangi eksekusi blok program tertentu sampai tercapai kondisi untuk
menghentikannya. Setiap perulangan memiliki 4 bagian
:
a.
Inisialisasi, adalah program yang mengyiapkan bagian awal perulangan
b.
Badan program, adalah pernyataan yang ingin kita ulangi.
c.
Iterasi, adalah program yang sering digunakan untu penambahan atau penguranagn
pencacah dan index.
d.
Terminasi, adalah pernyataan boolean yang diperiksa setiap kali selama perulangan
dilaksanakan untuk melihat apakah perulangan sudah saatnya dihentikan.
•
While
While adalah pernyataan perulangan yang paling mendasar pada Java. Penggunaan
pernyataan while akan menyebabkan rekursi pernyataan secara terus menerus selama
pernyataan booleannya bernilai true. Bentuk umum dari pernyataan while
:
[initialization;]
while (termination)
{
body program ;
[iteration;]
}
•
do-while
Penggunaan pernyataan do –while menyebabkan body program akan dieksekusi
sekurang-kurangnya 1 kali walaupun pernyataan booleannya menghasilkan nilai false.
Pemeriksaan terminasi dilaksanakan pada akhir program. Bentuk umum pernyataan do –
while
:
[initialization;]
do
{
body program;
[iteration;]
}
while [termination];
•
for
Pernyataan for adalah cara praktis untuk menyatakan suatu perulangan. Bentuk umum
pernyataan for
:
for {initialization; termination; iteration ) body program;
Jika keadaan awal tidak menyebabkan termination bernilai true maka pernyataan
body program dan iteration tidak akan dijalankan.
•
Pernyataan koma
Java.Jamilah,SKom.,MT
14
pernyataan sekaligus. Penggunaan koma untuk memisahkan pernyataan di batasi hanya
untuk digunakan didalam tanda kurung untuk pernyataan for.
•
continue
Pernyataan continue akan menghentikan iterasi yang bersangkutan tetapi program akan
menjalankan sisa perulangan sampai dengan selesai. Bentuk labeled akan melanjutkan
sebuah statement dengan melewati pengulangan yang sedang berjalan dari loop terluar yang
diberi label (tanda).
Contoh continue berlabel :
outerLoop:
for( int i=1; i<4; i++ ){
for( int j=1; j<5; j++ ){
System.out.println("i ="+i+", j ="+j); //message1
if( j == 2 )
continue outerLoop;
}
System.out.println("loop i"); //message2
}
Output :
i = 1, j = 1
i = 1, j = 2
i = 2, j = 1
i = 2, j = 2
i = 3, j = 1
i = 3, j = 2
Java.Jamilah,SKom.,MT
15
ARRAY
Array Dimensi satu
Pendeklarasian Array :
int[ ] nilaiMahasiswa;
nilaiMahasiswa = new int [14];
Atau bisa juga :
int nilaiMahasiswa [] = new int[15];
Int [] nilai Mahasiswa = new int[15];
Bila nilai array langsung diberikan, maka penulisanyya tidak perlu menggunakan kata new.
Penulisannya menjadi :
int nilaiMahasiswa [] = {100,20,45,40,100};
Jika array tidak diberi nilai, maka elemen array diberi nilai 0.
Mendapatkan besar array dapat dilakukan dengan
nama_array.length
.
Contoh :
class Larik {
public static void main(String[ ] args) {
int A[ ] = {1 , 2 , 3 , 4};
System.out.print(
A.length
);
System.out.println(A[1]); }}
Out: 42
Contoh2 :
import java.io.*
class input Array
{
public static void main(String[] args) throws IOException
{ String[] nama = new String[100];
BufferedReader masuk= new BufferedReader
(new InputStreamReader(System.in));
System.out.print("masukkan banyak data:");
int pil = Integer.parseInt(masuk.readLine());
for (int i =1; i<= pil ; i++ )
{
System.out.print ("masukkan nama ke : "+ i + “ “);
nama[i]=masuk.readLine();
}
}
}
Out :
masukkan banyak data : 2
masukkan nama ke : 1 Lusiana
Java.Jamilah,SKom.,MT
16
Array Multi Dimensi
Array multi dimensi merupakan array yang berisi array. Pendeklarasiannya :
Dimensi 2 :
int matriks [ ] [ ] = new int [2][3] ;
int matriks [][] = { {5,2,3},{4,5,6}};
int mat[][2] = {3,4,5,6,3,4,5,5,6,9};
Dimensi 3 :
int nilai[][][] = new int[2][2][3];
int nilai[][][] = {{{1,2,3},{3,4,5}},{{4,5,7},{3,4,5}}}
Contoh 1:
import java.io.*;
class Array {
BufferedReader a = new BufferedReader(new InputStreamReader(System.in));;
int [][]mat = new int[2][3];
Array() throws Exception //membuang eksepsi karena inputan
{
for (int i =0; i< 2 ; i++ ) {
for (int j =0; j< 3 ; j++ ) {
System.out.print("Masukan elemen mariks ke "+ i +" "+ j +" :");
mat[i][j] = Integer.parseInt(a.readLine()); } }
} }
class inputArray
{
public static void main(String[] args) throws Exception
{ Array a = new Array(); //menjalankan konstruktor array
}}
Out :
Masukan elemen matriks ke 0 0 : 2
Masukan elemen matriks ke 0 1 : 4
Masukan elemen matriks ke 1 0 : 2
Masukan elemen matriks ke 1 1 : 6
Contoh 2 :
import java.util.*;
import java.io.*;
class test
{
Java.Jamilah,SKom.,MT
17
Scanner a = new Scanner(System.in);
BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
String nama[] = new String[100];
int nilai[]=new int[4];
int rata[]=new int[100];
System.out.print("Jumlah Mhs : ");
int n = a.nextInt();
for(int i = 0;i<n;i++) {
System.out.print("\n Nama mhs "+(i+1) +" : ");
nama[i]=b.readLine();int total = 0;
for(int j = 0;j<4;j++) {
System.out.print("\n Nilai "+(j+1)+" : ");
nilai[j]=a.nextInt(); //atau nilai[i][j] = a.nextInt();
total = total + nilai[j];
}
System.out.println("\n"); rata[i] = total/4; }
for(int i = 0;i<n;i++) {
System.out.println(nama[i])+" dengan rata-rata = " +rata[i]); }
} }
Output :
Jumlah Mhs : 2
Nama mhs 1 : Andi Ruslan
Nilai 1 : 90
Nilai 2 : 100
Nilai 3 :70
Nilai 4 : 100
Nama mhs 2 : Dewi Antariksa
Nilai 1 : 90
Nilai 2 : 100
Nilai 3 : 50
Nilai 4 : 100
Java.Jamilah,SKom.,MT
18
STRING DALAM JAVAString adalah serangkaian karakter. String bukanlah suatu tipe data melainkan merupakan suatu class standard Java.lang.String yang sudah didefinisikan.
String e = “”; //suatu string kosong String salam = “Halo” ;
Pembuatan string : String var = new String( ); char kata[ ] = {‘a’,’b’,’c’,’d’,’e’};
String s = new String(kata); // s = “abcdef” String s = new String(kata, 2 , 3); // s = “cde” String s = “abcde”;
Untuk pemakaian umun teks ASCII, kita harus menspesifikasikan 0 untuk byte atasnya. byte kata[ ] = {65 , 66 , 67,68};
String s = new String(kata, 0); // s = “ABCD” String s = new String(kata,0 ,2, 2); // s = “CD”
• Concatenation
Untuk menggabungkan 2 buah string menjadi satu digunakan tanda +. String namaDepan = “Djoni”;
String namaKeluarga = “Dwiyana”;
String nama = namaDepan + namaKeluarga; System.out.println(“Nama : “ + nama);
Catatan: Jika suatu string digabung dengan suatu nilai / variabel yang bukan string, maka variabel tersebut akan diubah menjadi string.
Contoh :
String alamat = “Jl.Dr.Wahidin ” + 5; → Jl.Dr.Wahidin 5 “Hello”.concat(“ semua”) → “Hello semua”
• Length
Length merupakan suatu method dari class String yang berfungsi untuk mengukur panjang suatu string.
String salam = “Selamat Pagi” ;
System.out.println(salam.length()) ; out = 12 System.out.println(“abc”.length( )); out = 3
• Penyaringan karakter
Untuk menyaring 1 karakter gunakan perintah : charAt(index) “abc”.charAt(1) akan menghasilkan ‘b’
Contoh: class Char_At{
public static void main(String args[]){ char data[] = {‘J’,’a’,’m’,’i’,’l’,’a’,’h’}; String kata = new String(data);
for(int i =0 ;i< kata.length(); ++i) {
System.out.println(“Karakter ke- “+ (i+1) + “ = “+kata.charAt(i) );} } }
Java.Jamilah,SKom.,MT
19
• Penyaringan sejumlah karaktergetChars(int start, int end, char dst[ ], int dstBegin) Untuk menyaring lebih dari satu karakter.
Ket : start, index awal karakter yg disaring end,index akhir karakter yg disaring.
Char dst[ ], array untuk menyimpan hasil penyaringan dstBegin, index awal array dst.
Ukuran array harus sama dengan banyaknya karakter yg disalin.
Contoh :
String s = “ini adalah contoh string”; char kata[ ] = new char [4];
s.getChars(4,7, kata ,0);
system.out.println(“kata = “+kata); out:
kata = adal
• Kesamaan Perintah :
s1.equals(s2) = membandingkan string1 dengan string2
s1.equalsIgnoreCase(s2) = membandingkan string dan mengabaikan huruf kecil dan huruf besar. Hasil dari operasi adalah True dan False.
Contoh :
String s1 = “Hello”; String s2 = “ goodbye”; String s3 = “HELLO”;
System.out.println(s1.equals(s2)) ; //out False System.out.println(s1.equals(s3)) ; //out False
System.out.println(s1.equalsIgnoreCase(s3)) ; //out True
• Perbandingan
Perintah : s1.compareTo(s2);
bila s1 < s2 maka hasil negative s1 > s2 maka hasil positif
s1 = s2 maka hasil sama dengan 0
• indexOf dan LastIndexof perintah :
o int indexOf(int ch) akan menghasilkan index pemunculan pertama karakter ch. o int lastIndexOf(int ch) akan menghasilkan index pemunculan terakhir karakter ch. o int indexOf(string st) akan menghasilkan index pemunculan pertama string st. o int lastIndexOf(string st) akan menghasilkan index pemunculan terakhir string st.
o int indexOf(int ch,fromindex) akan menghasilkan index pemunculan pertama karakter ch setelah
fromindex.
o int lastIndexOf(int ch, fromindex) akan menghasilkan index pemunculan terakhir karakter ch
Java.Jamilah,SKom.,MT
20
o int indexOf(string ch,fromindex) akan menghasilkan index pemunculan pertama string ch setelahfromindex.
o int lastIndexOf(string, fromindex) akan menghasilkan index pemunculan terakhir string ch
sebelum from index.
Contoh :
String s = “Saya anak yang tidak suka makan manis”; System.out.println(s.indexOf(‘a’)); //out 1
System.out.println(s.lastIndexOf(‘a’)); // out 33 System.out.println(s.indexOf(“ma”)); // out 26 System.out.println(s.lastIndexOf(“ma”)); // out 32 System.out.println(s.indexOf(‘a’,10)); // out 11 System.out.println(s.lastIndexOf(‘a’,20)); // out 18
Ket : Bila hasil tidak ada maka output yang diberikan adalah -1
• Penyalinan String
o Substring
Substring merupakan suatu method dari class String yang berfungsi untuk mengambil sebagian karakter dari suatu string. Substring akan menghasilkan semua karakter mulai index awal sampai index terakhir dikurangi 1.
Contoh : System.out.println( “Hello world”.substring(6) ); → “world” System.out.println(“Hello world”.substring(3,8) ); → “lo wo”
o Replace
“Hello”.replace(‘l’ , ‘w’) → “Hewwo”
o toLowerCase dan toUpperCase
“Hello”.toLowerCase()→ “hello” “Hello”.toUpperCase()→ “HELLO”
o trim, untuk membuang spasi yang terdapat di awal dan diakhir string
“ Hello semua “.trim()→ “Hello semua”
• Menentukan awal dan akhir String
Peintah : startsWith(String s) untuk menentukan apakah awal string sama dengan string s endsWith(String s) untuk menentukan apakah akhir string sama dengan string s . Hasilnya adalah nilai True atau false.
Contoh :
String s1 = “Kakak”
System.out.println(s1.startsWith(“Ka”); System.out.printl(s1.endsWith(“ek”); Out : True
False
StringBuffer
Java.Jamilah,SKom.,MT
21
dapat disisipkan karakter dan substring di tengahnya, atau ditambah di belakangnya. StringBuffer secara otomatis berkembang menghasilkan ruang untuk penambahan seperti itu.Methode pada string Buffer : • Append
Method append pada StringBuffer paling sering dipanggil melalui operator +. String.valueof dipanggil untuk setiap parameter dan hasilnya ditambahkan ke StringBuffer yang berlaku.
Contoh :
int thn = 2005;
String s = new StringBuffer(“Helo”).append(“ semua “).append(“angkatan “ ) . .append(thn).toString( );
sama artinya dengan : String s = “Helo”+” semua “+”angkatan”+thn;
• Insert
String.insert(int i,string), Untuk menyisipkan string mulai index ke-I, index mulai dari 0. Contoh :
StringBuffer sb = new StringBuffer(“Hellosemua”); sb.insert(5, “kawan”);
System.out.println(sb); out : Hellokawan semua
Mengubah String ke numerik. Fungsi :
• integer.parseInt(String s) Merubah string menjadi integer’ • short.parseShort(String s)
Merubah string menjadi short. • byte.parseByte(String s)
Merubah string menjadi byte • Long.parseLong(String s)
Merubah string menjadi long. • float.parseFloat(String s)
Merubah string menjadi float. • doubleparseDouble(String s)
Merubah string menjadi double.
Contoh :
String suka = new StringBufferedReader(new InputStreamReader(System.in)); int a = int.parseInt(suka.readLine());
Java.Jamilah,SKom.,MT
22
CLASS, OBYEK DAN METHOD
Class
Didefinisikan Class sebagai sebuah blue print, atau prototipe, yang mendefiniskan
variable-variabel dan metode-metode yang umum untuk semua objek dari jenis tertentu.
Class mendefinisikan atribut dan perilaku obyek yang dibuatnya. Class merupakan
definisi formal suatu abstraksi. Class berlaku sebagai template untuk pembuatan obyek-obyek.
Class berisi abstraksi yang terdiri dari nama class, atribut dan service.
Bagian-bagian dari sebuah Class
Secara umum penulisan class terdiri atas 2 bagian yakni:
1.
Class Declaration
Bentuk Umum :
[modifier] class <nama_kelas>
{ <class body> }
Penamaan suatu class mempunyai aturan umum :
a. Tidak menggunakan spasi atau menggunakan spasi dengan diganti “_” (misal class
Sarjana_Mipa)
Java.Jamilah,SKom.,MT
23
Modifier saat deklarasi kelas adalah :
•
Tidak ditentukan (default)
Kelas tersebut dapat diakses oleh kelas lain dalam satu package.
•
Public
Jika sebuah kelas tersebut dapat digunakan oleh kelas lain tanpa memperdulikan apakah
kelas lain yang menggunkannya itu berasal dari package yang sama atau berbeda.
•
Abstract
Jika kelas tersebut memiliki abstract methode dan tidak dapat diinstantiasi menjadi
sebuah objek.
•
Final
Kelas tidak akan dapat diturunkan lagi menjadi kelas turunan.
Class Body (Badan Kelas)
Class Body merupakan bagian dari kelas yang mendeklarasikan kode program java.
Class Body tersusun atas:
a. Konstruktor
b. Variable Instance (Atribut)
c. Method (Fungsi-fungsi atau prosedur)
Untuk dapat menggunakan kelas yang telah didefinisikan, anda harus membuat sebuah obyek
dari kelas tersebut (instance class), dengan sintaks:
NamaKelas
namaObyek = new
NamaKelas ( [parameter] )
;
Contoh:
Anjing
goofy = new
Anjing();
Instance Variables (Atribute Class)
Suatu obyek dapat dibedakan berdasarkan sifat (behavior) yang berbeda. obyek juga
dapat dibedakan berdasarkan atributnya. Mis: burung dapat dibedakan berdasarkan suara
kicauan, warna bulu, bentuk tubuh, dsb. Atribut yang membedakan suatu instance obyek burung
yang satu dengan yang lainnya disebut
instance variabel
.
Bentuk Umum : [modifier] <tipe_data> <nama> [ = nilai default];
Contoh
: public double tinggi;
private int berat = 70;
Modifier untuk atribut, yaitu public, protected, private
Perbedaan local dan instance variable
1.
Instance variables dideklarasikan di dalam kelas tetapi tidak di dalam method.
class Kuda {
double tinggi = 15.2;
String jenis;
Java.Jamilah,SKom.,MT
24
2.
Local variables dideklarasikan di dalam method.
int tambah( ) { int total = tinggi*2; // total adalah variabel local
return total; }
Method
Se