• Tidak ada hasil yang ditemukan

PENGANTAR JAVA Sejarah Singkat Perkembangan JAVA

N/A
N/A
Protected

Academic year: 2018

Membagikan "PENGANTAR JAVA Sejarah Singkat Perkembangan JAVA"

Copied!
39
0
0

Teks penuh

(1)

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++.

(2)

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)

(3)

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)

(4)

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:

(5)

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”);

(6)

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

(7)

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 :

(8)

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”);

}

}

(9)

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

(10)

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

()

[]

.

(11)

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.

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

{

(17)

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

(18)

Java.Jamilah,SKom.,MT

18

STRING DALAM JAVA

String 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) );} } }

(19)

Java.Jamilah,SKom.,MT

19

Penyaringan sejumlah karakter

getChars(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

(20)

Java.Jamilah,SKom.,MT

20

o int indexOf(string ch,fromindex) akan menghasilkan index pemunculan pertama string ch setelah

fromindex.

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

(21)

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());

(22)

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)

(23)

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;

(24)

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

buah method adalah bagian-bagian kode yang dapat dipanggil oleh program utama atau

dari method lainnya untuk menjalankan fungsi yang spesifik di dalam kelas. Method dapat dibagi

menjadi fungsi dan prosedur. Fungsi adalah bagian atau sub dari program yang mempunyai

algoritma tertentu dalam menyelesaikan suatu masalah dengan mengembalikan hasil. Prosedur

adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan

suatu masalah tanpa mengembalikan suatu nilai hasil. Secara umum method dalam java adalah

sebuah fungsi.

Berikut adalah karakteristik dari method :

1. dapat mengembalikan satu nilai atau tidak sama sekali

2. dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter sama sekali.

Parameter bisa juga disebut sebagai argumen dari fungsi

3. setelah method telah selesai dieksekusi, dia akan kembali pada method yang Memanggilnya

.

Deklarasi sebuah method

Method terdiri atas dua bagian yakni :

1. Method declaration

2. Method Body

Method dapat digambarkan sebagai sifat (behavior) dari suatu class. Untuk mendefinisikan

method pada dalam class digunakan sintaks sintaks

[modifier]

<tipe_data_return>

nama_method

( [parameter] ) { methode body }

Contoh :

public int Perkalian (int y;int z) { methode body }

Modifier pada method

Modifier menentukan level pengaksesan sebuah method. Hal ini menentukan apakah sebuah

method bias diakses oleh objek lain, objek anak, objek dalam satu paket atau tidak dapat diakses

oleh suatu object sama sekali berikut adalah beberapa jenis level access:

Public

Atribut ini menunjukan bahwa fungsi/method dapat diakses oleh kelas lain.

Private

Atribut ini menunjukan bahwa fungsi atau method tidak dapat diakses oleh kelas lain

Protected

Atribut ini menunjukan bahwa fungsi atau method bisa diakses oleh kelas lain dalam satu

paket dan hanya kelas lain yang merupakan subclass nya pada paket yang berbeda.

Tanpa modifier

Atribut ini menunjukan bahwa method dapat diakses oleh kelas lain dalam paket yang

sama.

Abstract

(25)

Java.Jamilah,SKom.,MT

25

Final

Method tersebut tidak dapat dioverride oleh kelas turunan.

Static

Method dapat diakses tanpa harus melakukan instantiasi terlebih dahulu.

Parameter

Bagian parameter diisi dengan parameter-parameter fungsi yang diperlukan. Parameter

apabila lebih dari satu akan dipisahkan dengan tanda koma (“,”) parameter-parameter pada

fungsi-fungsi di java akan di by pass value yang artinya pada tiap fungsi tidak akan dapat

merubah isi dari variable parameter yang dimasukan.

Untuk memanggil method dapat digunakan sintaks sebagai berikut:

namaObyek

.

nama_method( [parameter] );

Contoh :

class manusia {

int tinggi, berat;

void init(int x, int y) {

tinggi = x;

berat = y; }

public static void main(String args[]) {

manusia

putri = new manusia(); //pembuatan objek manusia

putri

.

init(170,50);

//memanggil method init dgn mngirim nilai 170&50

System.out.println(“tinggi = “+

putri.tinggi + “ berat = “+

putri.berat);

}

}

out : tinggi = 170 berat = 50

Method dengan nilai balik

Bagaimana jika bagian lain dari program ingin tahu juga nilai volume itu tetapi tidak ingin

menampilkannya (mencetaknya). Apabila terdapat suatu fungsi yang tidak menghasilkan suatu

nilai apapun maka bagian return type ini diganti dengan void .

Contoh penggunaan return:

Import java.util;

class balok

{

int p, l, t;

void nilai (int a, int b, int c); { p = a; l = b; t = c;}

int

volume( )

{

return

(p*l*t);

}

public static void main(String args[]) {

Scanner masuk = new Scanner(System.in);

(26)

Java.Jamilah,SKom.,MT

26

coba.nilai(a,b,c); System.out.print(“\nVolume balok = “+

coba.volume()

);

}

}

Out : Panjang = 2

Lebar = 3

Tinggi = 2

Volume balok = 12

Method Static

Sebuah method static dapat diakses tanpa harus melakukan instantiasi terlebih dahulu.

Pemanggilan method static dilakukan dengan format :

Nama_kelas.nama_method();

Nama_kelas diberikan bila method tersebut dipanggil dari kelas yang berbeda..

Contoh :

class MyStatic {

static

void Luas() { int p = 10; int l = 2 ;

System.out.println(“Luas = “+ p*l ); }

public static void main (String [] args ) {

Luas(); // pemanggilan method luas

}

Method Overloading

JAVA interpreter memiliki kemampuan untuk menggunakan beberapa cara pemanggilan

method. Method overloading merupakan method dengan nama sama tetapi argument atau daftar

parameter berbeda. Overloading method merupakan cirri-ciri dari pemograman berbasis obyek

yang bersifat

polymorphisme

.

Contoh :

class Anjing {

void menggonggong

() // tanpa parameter

{ System.out.println(“guk guk”); }

void menggonggong

(String suaraGonggongan)

{ System.out.println(suaraGonggongan); }

public static void main(String args[] )

{ Anjing bleki = new Anjing();

Anjing snoopy = new Anjing();

bleki.menggonggong();

(27)

Java.Jamilah,SKom.,MT

27

output: guk guk

wuf wuf

Kata Kunci This

This merupakan besaran referensi yang digunakan dalam method yang dirujuk untuk

objek yang sedang berlaku. Nilai this merujuk pada objek di mana method yang sedang berjalan

dipanggil. This digunakan jika

Contoh :

class manusia {

int tinggi, berat;

void init(int tinggi, int berat) {

this.tinggi

= tinggi; // menyimpan nilai var local tinggi ke var instan tinggi

this.berat

= berat; }

}

class utama{

public static void main(String args[]) {

manusia putri = new manusia();

putri

.

init(170,50);

//memanggil method init dgn mngirim nilai 170&60

System.out.println(“tinggi = “+

putri.tinggi + “ berat = “+

putri.berat); }

}

out : tinggi = 170 berat = 50

Konstruktor

Konstruktor adalah method yang menginisialisasikan objek segera setelah pembuatan

objek. Konstruktor tersebut memiliki nama yang sama dengan class tempatnya. Tugas

konstruktor adalah menginisialisasikan semua keadaan dengan operator new yang akan segera

memiliki objek yang baik dan berguna.

Contoh :

class Aktor{

String nama;

int umur;

Aktor (String n, int u)

//konstruktor

{

nama = n;

umur = u; }

void tampilAktor( )

{

System.out.print(“namaku “+ nama+”, umurku “+umur+” tahun”); }

static void tertawa()

{

System.out.println(“Hahaha….”); }

public static void main(String args[])

(28)

Java.Jamilah,SKom.,MT

28

a.tampilAktor( );

tertawa(); //memanggil method static

} }

out :

namaku Dian Sastro umur 20 tahun

Hahaha….

Overloading Construktor

Overloading konstruktor merupakan dua buah konstruktor atau lebih dengan parameter

yang berbeda.

Contoh :

class Aktor{

String nama;

int umur;

Aktor (String n, int u)

//

konstruktor

{

nama = n;

umur = u; }

Aktor()

// konstruktor tanpa parameter

{

umur = 19; nama = Pratama; }

void tampilAktor( )

{

System.out.print(“namaku “+ nama+” , umurku “+umur+” tahun”);}

static void tertawa() { System.out.println(“Hahaha..haha”); }

class testAktor {

public static void main(String args[])

{

Aktor a = new Aktor(“Dian Sastro”,20); // konstruktor dengan parameter

Aktor b = new Aktor( ); //pemanggilan konstruktor tanpa parameter

a.tampilAktor();

b.tampilAktor();

Aktor.tertawa(); // pemanggilan method static

} }

(29)

Java.Jamilah,SKom.,MT

29

INHERITANCE

Inheritance

Merupakan kelas yang diturunkan dari kelas lainya. Pada pewarisan semua yang dimiliki

superclass secara otomatis dimiliki subclass meskipun tanpa dideklarasikan lagi.

BU :

nama_subclass extends nama_superclass { //class body }

Contoh 1

:

class Point

{

int x, y;

Point (int x ,int y) //konstruktor superclass dengan parameter

{

this.x = x;

this.y = y;

}

void grs( ) { System.out.println(“---“); }

}

class Point3D

extends

Point{

int z;

Point3D (int x, int y, int z) //konstruktor subclass

{ super(x,y); //pemanggilan konstruktor superclass dengan parameter x dan y

this.z = z; }

public static void main(String args[]) {

Point3D p =

new

Point3D(10,20,30);

System.out.println(“x = “+ p.x+” y= “+p.y+” z = “+p.z);

p.grs( ) ; }

}

out :

x = 10 y = 20 z = 30

---

Ket :

Pada contoh diatas dibuat sebuah kelas turunan dari kelas Point (superclass), yaitu kelas

Point3D(subclass) yang mewarisi semua yang dimiliki kelas super.

Overriding Method (Penindihan)

Overriding yaitu subclass dan superclass memiliki nama method yang sama. Penindihan

method meliputi pendefinisian methode dalam subclass yang memiliki ciri yang sama dengan

superclass. Kemudian, ketika method dipanggil, methode dalam subclass ditemukan dan method

inilah yang dieksekusi bukan method dalam superclassnya. Untuk menjalankan method

superclass harus menggunakan :

super.nama_method([parameter]));

(30)

Java.Jamilah,SKom.,MT

30

private

int x = 3, y = 1;

void tmp( ){ System.out.println(“ x = “+x+” y = “+y); }

}

class tampil2 extends tampil1

{

int z = 3;

public static void main (String args[ ]) {

tampil2 a = new tampil2( );

// System.out.println(“ x = “+a.x+” y = “+ a.y); salah, x, y private dan

// beda kelas.

a.tmp(); }

}

Output :

x = 3 y = 1

ket :

dalam subclass tampil2 tidak ditemukan method tmp, maka JVM akan mencari method

pada kelas atasnya (superclass) kelas tampil1.

class tampil2 extends tampil1{

int z = 3;

void tmp

() { System.out.println(“ x = ‘+x+” y = “+y+ “ z = “+z); }

public static void main (String args[ ]) {

tampil2 a = new tampil2( );

a

.

tmp(); }

}

Output :

x = 3 y = 1 z = 3

ket :

method tmp pada tampil1 tertindih oleh method tmp pada kelas anak tampil2 sehingga

methode anak yang akan dijalankan.

Konstruktor Pada Inheritance

Konstrukor pada kelas induk otomatis akan dijalankan saat pembuatan obyek pada kelas

turunan. Bila kelas anak juga memiliki konstruktor maka sebelum menjalankan konstruktor kelas

anak maka terlebih dahulu menjalankan konstruktor kelas induk. Untuk pemnggilan konstruktor

pada kelas induk yang memiliki parameter, maka pemanggilanya menggunakan :

super(arg1,arg2,…);

Contoh 3:

class Bapak{

int umur, berat = 60;

Bapak() { System.out.println("Ini kelas Bapak"); }

Bapak(int a) { System.out.println("Ini kelas Bapak dengan nilai a"); }

void tidur() { System.out.println("zzz…zzzz…zzzz"); }

(31)

Java.Jamilah,SKom.,MT

31

void menangis(){System.out.println("aduh..aduh…."); }

static void berjalan() {System.out.println("Tak..tik..tuk.."); }

}

class Anak extends Bapak {

Anak() {

super(1);

super.umur = 100;

System.out.println("Ini kelas Anak"); }

void tidur() { super.menangis();

System.out.println("errr…errr…err…"); }

void tertawa ( ) {

System.out.println("Hihihi..hihi….");

super.tertawa();}

}

class utama

{

public static void main(String [ ] args)

{

Bapak Andi = new Bapak();

Anak Tama = new Anak();

Andi.tertawa();

Tama.umur = 19;

Tama.makan();

Tama.tidur();

Bapak.berjalan();

System.out.println("umur Tama = "+ Tama.umur +" berat = "+ (Tama.berat + 50)

); }

}

Output :

Class Abstract

Merupakan suatu class yang memiliki minimal satu abstract methode (method yang

belum terdapat implementasinya) dan tidak dapat diinstantiasi. Kelas turunan harus

mengimplementasikan semua method abstract. Kata kunci abstract tidak dapat digunakan untuk

konstruktor dan method static.

Contoh 4:

(32)

Java.Jamilah,SKom.,MT

32

abstract

void marah( )

;

void bernyanyi(){ System.out.println(“Tralala..lilili”); }

}

class bapak extends manusia {

void marah()

{ System.out.println(“errr…rrrr”); } //implementasi method

}

class utama{

public static void main(String args[]) {

//manusia putri = new manusia(); tidak diijinkan membuat objek kls manusia.

bapak budi = new bapak();

// diperbolehkan membuat referensi objek

manusia putri; putri = budi;

budi.marah();

budi bernyanyi(); } }

out : errr…rrr

Tralala..lilili

Final Class

Merupakan kelas yang tidak dapat diturunkan lagi menjadi kelas baru.

Contoh :

final

class manusia {

int tinggi, berat;

void bernyanyi(){ System.out.println(“Tralala..lilili”); }

}

class bapak extends manusia { <class body > }//

salah

Ket :

pernyataan class bapak extends manusia tidak lagi diperbolehkan karena class manusia

memiliki modifier final.

Method Final

Method final pada superclass merupakan method yang tidak dapat lagi dimiliki pada subclass,

artinya method tersebut tidak dapat dioverride (diperbaharui) pada kelas turunan.

Contoh :

class manusia {

final

void bernyanyi(){ System.out.println(“Tralala..lilili”); }

}

class bapak extends manusia {

// void bernyanyi() { System.out.println(“Trilili..Lalala”); }

salah

}

(33)

Java.Jamilah,SKom.,MT

33

Inner Class

Merupakan kelas yang didefinisikan di dalam kelas. Kelas inner dapat mengakses data

dan method dari kelas luar, meskipun data dan method tersebut bersifat private. Sebaliknya kelas

luar tidak dapat mengakses data atau method dari kelas dalam yang bersifat private.

Ketentuan kelas inner :

a.

Kelas Luar yang mnegandung kelas inner bila dikompilasi akan menghasilkan dua file

yaitu Luas.class dan Luas$Inner.class.

b.

Kelas Inner boleh tidak diberi nama disebut Anonymous Inner.

c.

Pada non-static, pembuatan objek inner class bila dilakukan di dalam method static, maka

harus membuat objek kelas luar terlebih dahulu.

Contoh :

Luar a = new Luar(); // membuat objek kelas luar

Dalam.Luar b = a.new Dalam(); // membuat objek kelas Dalam

Bila instantiasi dilakukan pada method non-static dari kelas luar, maka dapat dilakukan

secara langsung seperti biasa.

Contoh :

Dalam b = new Dalam();

d.

Jika kelas Inner bersifat static, maka objek milik kelas Inner dapat dibuat sendiri tanpa

melalui kelas luarnya tetapi kelas inner tidak dapat mengakses atribut ataupun method

non-static milik kelas luar.

Contoh 5 :

class Luar

{

private int c = 10;

class Dalam

{

private int d = 100;

void show() { System.out.println(“Nilai c = “+c +”d = “+d); }

}

void tampil(){ System.out.println(“ Kelas luar c = “+c);

//System.out.println(“dari kelas luar d = “+d); tidak diijinkan krn d private

}

}

class test{

public static void main(String[]args) {

Luar a = new Luar();

//Dalam b = new Dalam(); tidak diperbolehkan karena inner non-static

Luar.Dalam b = a.new Dalam();

a.tampil();

b.show(); }

}

(34)

Java.Jamilah,SKom.,MT

34

Bila pembuatan objek kelas dalam dilakukan dalam method non-static milik kelas luar maka

menjadi :

class Luar {

private int c = 10;

class Dalam {

private int d = 100;

void show() { System.out.println("Nilai c = "+c +" d = "+d); }

}

void tampil(){ Dalam b = new Dalam();

b.show(); }

}

class test{

public static void main(String[]args) {

Luar a = new Luar();

a.tampil(); }}

Out : nilai c = 10 d = 100

Static Inner class

Pada static inner class pembuatan objek dapat dilakukan langsung tanpa harus melalui

kelas luar. Tetapi kelas inner tidak dapat menggunakan data atau method non-static pada kelas

luar.

Contoh 6 :

class Luar {

int c = 10;

static int e = 5;

static class Dalam {

private int d = 100;

void show() {

// System.out.println("Nilai c = "+c ); salah karena c non-static

System.out.println("Nilai d = "+d +" dan e = "+e); }

} }

class test{

public static void main(String[]args) {

Luar.Dalam b = new Luar.Dalam();

b.show();

}}

(35)

Java.Jamilah,SKom.,MT

35

PACKAGE DAN INTERFACE

Package

adalah container class yang digunakan untuk menjaga ruang nama class tetap

terbagi-bagi. Package disimpan secara hirarkis dan secara eksplisit diimpor ke dalam definisi class baru.

Package sangat berguna untuk :

-

memungkinkan kita mengoorganisir kelas2 ke dalam unit-unit.

-

Mengurangi masalah yang timbul akibat konflik nama.

Fasilitas Pakage merupakan mekanisme penamaan dan kendali atas ketampakan data dan

metoda. Package didefinisik

an dengan menambahkan baris:

package <nama package> ;

pada awal file. Jika sebuah kelas tidak mempunyai package maka akan masuk ke package

default.

File-file class yg tergabung dalam satu package harus disimpan pd satu direktori dg

nama direktori adalah nama package. Kelas yang berasal dari suatu package diakses dengan

menggunakan nama package dan nama kelas. Misal points.Point (kelas Point yang terdapat pada

package points). Kelas yang berasal dari suatu package dapat diakses langsung dengan

menggunakan nama kelas dengan cara menggunakan import

Package & enkapsulasi

Package juga merupakan mekanisme untuk membatasi scope sebuah variabel/method/class

variabel/method/class yang tidak memiliki access modifier (public/private/protected)

memiliki scope package, yaitu hanya dapat diakses oleh class lain yang berada dalam satu

package

variabel/method dengan access modifier protected dapat diakses oleh class lain yang

berada dalam satu package dan kelas turunan pada package yang berbeda.

Modifier di kelas & Package

Segala sesuatu yg didekalrasikan public dpt diakses dari manapun

Segala sesuatu yg dideklarasikan private tidak dpt diakses diluar kelasnya

Ketika modifier tidak ditulis secara eksplisit (menjadi default) maka data dan method itu

akan tampak di subkelas-subkelas, dan kelas lain dalam satu paket

Jika data dan metoda hanya ingin dilihat pd subkelas secara langsung modifier yg

digunakan protected

Level tertinggi adalah paket yang disebut Java (built-in) yang mencakup kelas-kelas :

a. lang

: berisi fungsionalitas bahasa yang paling dasar.

b. applet : kelas dasar untuk seluruh applet.

c. awt

: kelas untuk pengembangan antarmuka grafis (Abstrac Windowing Toolkit).

d. io

: untuk operasi file Input/Output

Gambar

Tabel Tipe Data

Referensi

Dokumen terkait

Contact center dioperasikan oleh perusahaan penyelenggara contact center sebagai layanan yang mendukung sebuah produk berupa barang maupun jasa di mana customer dari perusahaan

Sebuah variabel atau method yang dideklarasikan public dapat diakses oleh kelas manapun, apakah kelas tersebut berada di dalam package yang sama atau berbeda.. Dalam