nProject Solution 2012 Java Fundamental

44
nProject Solution 2012 Java Fundamental Training Pengenalan Bahasa Pemegrograman Java Moh. Machfudh

Transcript of nProject Solution 2012 Java Fundamental

nProject Solution

2012

Java Fundamental Training Pengenalan Bahasa Pemegrograman Java

Moh. Machfudh

Java Fundamental

Moh Machfudh

Pendahuluan

Sejarah Java

Mulai dikembangkan sejak 1991 oleh “Stealth Project” bertujuan untuk menciptakan suatu system

software yang mampu berjalan pada alat-alat elektronik ( small device ). James Gosling ber konsentrasi

pad aide pembuatan bahasa tersebut. Juni 1991 munculah bahasa interpreter “OAK” yang menjadi cikal

bakal java. Kemudian java secara resmi di perkenalkan oleh SUN pada dunia pada tanggal 23 mei 1995

bersama dengan browser bernama “HOTJAVA”.

Teknologi Java telah berusia 10 tahun lebih. Dalam usia tersebut, suatu teknologi dapat dikatakan telah

matang. Populasi penggunanya relatif besar, sehingga apabila kita menemui masalah, banyak referensi

dan tutorial tentang cara mengatasinya. Sepanjang perjalanannya, Java telah mengalami dua kali

perubahan signifikan. Pertama pada waktu transisi dari versi 1.3 menjadi 1.4, dan kemudian 1.4 menjadi

1.5 atau dikenal juga dengan 5.0. Dalam transisi tersebut, ada perubahan signifikan dalam teknik

pemrograman maupun library yang disediakan. Transisi ini berjalan relatif mulus, menunjukkan bahwa

teknologi Java cukup solid dan dibangun di atas dasar yang kokoh. Semua transisi mempertahankan

binary backward compatibility, artinya semua aplikasi yang sudah kita kompilasi dan berjalan mulus di

Java versi lama akan terus berjalan dengan baik walaupun kita melakukan upgrade.

Java di kelompokan menjadi 3 katagori utama :

Java Standart Edition (JSE)

Java Mobile Edition ( JME )

Java Enterprise Edition ( JEE)

Java Standard Edition

Pada sebagian besar kasus, kita hanya membutuhkan Java Standard Edition. Ini merupakan

perlengkapan minimal untuk mulai membuat aplikasi Java. Java Standard Edition Software Development

Kit (SDK) berisi beberapa peralatan penting. Berikut adalah peralatan yang paling sering kita gunakan:

Compiler (javac) : tool untuk mengubah source code menjadi byte code yang siap dieksekusi.

Runtime (java) : tool untuk menjalankan byte code

JavaDoc Compiler (javadoc) : Generator untuk dokumentasi source code (JavaDoc)

Archiver (jar) : tool untuk membuat paket java (*.jar)

Java Mobile Edition

Jelajahi bagian ini jika Anda ingin membuat aplikasi yang berjalan di perangkat kecil seperti handphone

atau PDA.

Java Enterprice Edition

Ini adalah kumpulan paket untuk membuat aplikasi enterprise.Tetapi kita tidak perlu mendownload

paket ini. Biasanya paket yang ada di sini telah disediakan oleh development tool kita ataupun

application server yang digunakan. Paket ini ada di website Java sebagai pusat referensi.

Java Fundamental

Moh Machfudh

Menginstal Java

Instalasi Java sangat mudah. Cukup jalankan file installernya. Untuk Windows, klik dua kali installernya,

kemudian klik Next beberapa kali . Saya sarankan Install Netbean disini sudah termasuk JDK dan IDE nya.

Download di http://java.sun.com (gratis). Untuk instalasi di windows perlu di setting Environment :

- JAVA_HOME = {dir java di install}

- PATH = {dir java di install}/bin

- CLASSPATH = .; {dir java di install}/lib/tools.jar

Hello Word

Membuat Aplikasi Java Pertama

Untuk mengetes hasil instalasi kita, mari kita buat kode program sederhana. Gunakan text editor yang

tersedia, misalnya Notepad.

Source code

kemudian simpan dengan nama HelloWord.java. Perhatikan besar kecilnya huruf. Kode program Java

case sensitive, artinya membedakan antara huruf besar dan huruf kecil.

Java Fundamental

Moh Machfudh

Kompilasi

File HelloWord.java tersebut harus dikompilasi dulu sebelum bisa dijalankan. Buka command prompt,

dan masuk ke folder di mana HelloWord.java berada.

Jalankan perintah javac.

C:\> javac HelloWorld.java

Perintah di atas akan menghasilkan file hasil kompilasi, yaitu HelloWord.class.

Eksekusi

Kalau tidak ada error pada saat kompilasi, kode program kita sudah bisa dijalankan. Gunakan perintah

java untuk menjalankannya

C:\> java HellloWorld

Hello World

Perhatikan bahwa perintah java menerima argumen berupa nama kelas, bukan nama file. Kalau perintah

di atas berhasil dijalankan, berarti instalasi Java nya sudah berhasil dengan baik.

Penjelasan Baris perbaris

Meskipun HelloWorld hanya suatu contoh mudah, namun cukup menarik dalam memperlihatkan

pemerograman baru ini untuk pertama kali. Program pertama perlu memperhatikan banyak konsep

baru dan perincian sintak sekaligus. Jadi mari kita lihat program kita baris demi baris dan menganalisa

unsure unsur unik yang menghasilkan program java.

Baris 1

public class HelloWorld {

Baris ini menggunakan kata class untuk mendeklarasikan bahwa class baru akan didifinisikan di sini.

HelloWorld adalah identifier yang dapat digunakan, akan kita gunakan untuk mengidentifikasikan class.

Seluruh definisi class, termasuk program dan data akan ada di antara kurung kuwaral buka ” {“ dan

pasangannya kurung kurawal tutup “}”. Pada contoh di atas baris 5 ber pasangan dengan baris 18.

Baris 2

public static void main(String[] args) {

Baris kedua program sederhana ini menjadi rumit, ini karena rancangan java yang sama sekali tidak

memperbolehkan adanya variabel global, hanya boleh ada class. Karena kabanyakan contoh pada buku

ini menggunakan baris perintah yang sama dengan ini maka kita akan bahas per bagian.

public

Setelah kita memisahakan satu per satu, terlihat bahwa pertama kali di gunakan kata kunci public. Ini

Java Fundamental

Moh Machfudh

adalah ketentuan akses ( hak akses ) yang mengizikan programmer mengendalikan visibilitas setiap

variable atau method. Pada kasus ini public menunjukan bahwa sembarang kelas dapat melihat method

main ada beberapa ke tentuan akses yang akan di bahas kemudian.

static

selanjutnya di gunakan kata kunci static. Method dan variabel yang di gunakan oleh class berlawanan

dengan instans class tersebut, dapat di deklarsikan static. Ini memungkinkan sebuah method dapat di

panggil tanpa harus menjadi instans suatu class. Pada kasus main, perlu di deklarsikan static karena

main di panggil oleh interpreter sebelum instans lain di buat.

void

Anda akan sering menginginkan method mengeluarkan nilai beberapa tipe tertentu, int untuk integer,

float untuk bilangan riil. Tetapi pada contoh ini kita hanya menulis ke layar dan tidak menghasilkan

keluaran apapun jadi kita menggunakna void.

main

lalu kita tulis nama method main. Java sangat memperhatikan besar kecilnya huruf( case-sensitive ) bila

berkaintan dengan tanda kunci dan identifier. Jadi Main berbeda dengan main. Tidak ada yang istimewa

dengan main kecuali bahwa implementasi interpreter java saat ini akan mencari method dengan nama

main ketika menginterpretasi suatu class.

Method main secara sederhana merupakan titik awal untuk kerja interpreter. Program yang rumit akan

memiliki lusinan class, hanya satu diantaranya yang memiliki method main agar program dapat berjalan.

Baris 3

System.out.println(“HelloWorld”);

Baris ini mengeksekusi method println pada out, yang merupakan instans OutputStream dan secara

statis diinisialisasi pada kelas System.

Method println dari OutputStream mencetak string ke system apa saja dimana Java berjalan dengan

melihat default keluaran tulisan. Method println menambahkan karakter baris baru di akhir string

sebelum mencetak, untuk memastikan keluaran selanjutnya akan dimulai di baris baru. Pada kasus ini

akan di keluarkan string yang di letakandi antara tanda kuruang. “Hello World” .

Kurung kurawal di baris 4 menutup method main.

Hal Tata Bahasa

Setelah kita menyelami class java di atas, kita kembali akan membahas aspek – aspek umum sintak

bahasa java. Program java adalah sekumpulan Spasi kosong , Komentar, Identifier, Modifier, Statement,

Block, Class, Method, Keyword, leteral, operator dan pemisah.

Java Fundamental

Moh Machfudh

Spasi Kosong

Java adalah bahasa bebas bentuk. Tidak perlu mengatur tata letak agar dapet bekerja. Jadi Class

HelloWorld boleh saja di tulis seperti ini:

Atau dengan cara lain yang lebih aneh sesuka anda, asal selalu ada sekurang kurangnya satu spasi, tab

atau baris baru di setiap kata sebelum di sisipi operator atau pemisah lain. Tulisan di bawah ini akan

menghasilkan file .class yang persis sama dengan contoh di atas

Konsep Dalam Java

Komentar

Meskipun komentar tidak berperan pada jalannya program, jika di gunakan dengan benar dapat menjadi

bagian yang penting dari setiap program. Program yang besar menjadi lebih sulit di mengerti, bahkan

oleh programmer nya sendiri setelah beberapa lama. Beberapa komentar ( tentang bagaimana dan apa

saja yang di bahas dalam suatu kelas) dan diletakan dengan tepat akan membantu. Komentar yang

hanya menunjukan bagian baru program mungkin tidak terlau berarti, tetapi komentar yang

menjelaskan atau menunjukan algoritma program yang di buat dapat menunjukan kemampuan

programmer nya. Begitu penting nya komentar sehigga java saat java di rancang mereka mengikuti

jejeak Donal Kuth, Programmer legendaris pengarang buku Arf Of Computer Programming , pembuat

pascal dan WEB system documentasi pascal.

Komentar pada pada java di buat dalam beberapa bentuk ; baris tunggal; banyak baris; dan komentar

documentasi. Komentar baris tunggal di beri tanda dengan tanda “//” dan di letakan di akhir baris yang

akan di beri komentar. Ini biasa nya di gunakan untuk penjelasan rinci satu baris program.

Java Fundamental

Moh Machfudh

Untuk komentar yang lebih panjang, Kamu dapat membuat komentar banyak baris yang lebih panjang.

Diawali dengantanya “ /* “dan di tutup dengan “ */” . Semua di antara kedua tersebut dianggap

komentar dan akan di abaikan oleh compiler.

Ada juga bentuk khusus komentar yang di gunakan oleh piranti bernama javadoc, yang mengunakan

compiler java untuk secara otomatis menghasilkan dokumentasi UI public suatu class. Aturan

pembuatan komentar yang dapat di olah dengan javadoc adalah : sebelum deklarsi class, method, dan

variabel public harus di gunakan komentar tanda “ ?**” untuk menyatakan komentar dikumentasi.

Komentar ini di akhiri tanda “ */, sama dengan komentar banyak baris biasa. Javadoc akan mengenali

sejumlah variabel khusus yang di dahului dengan tanda “@” di dalam bagian komentar.

Keyword

Keyword ( Kata Kunci ) adalah identifier khusu yang disimpan oleh bahasa java untuk mengendalikan

bagai mana program di jalankan . keyword di gunakan untuk mengenali tipe-tipe, pengubahan, dan

mekanisme pengaturan aliran program yang sudah ada. Keyword ini di kombinasikan dengan sintaks

operator dan pemisah, membentuk difinisi bahasa java. Keyword ini hanya dapat di gunakan untuk

fungsi tertentu dan tidak dapat di gunakan sebgai identifier nama suatu variabel, class atau method.

Java Fundamental

Moh Machfudh

Identifier

Identifier digunakan untuk nama class, method, variabel dan konstanta. Identifier dapat berupa urutan

tertentu huruf ( besar maupun kecil) angka, garis bawah dan tanda dolar. Tidak boleh di awali dengan

angka. Java sangat memperhatikan besar kecilnya huruf ( case sensitive ), arti identifier VALUE berbeda

dengan Value. Aturan penamaan dalam Identifier di JAVA :

- Dapat di mulai dengan huruf, underscore(_) atau tanda $

- Tidak boleh menggunakan symbol Operator seperti : +, - , *, /, dll - Tidak boleh menggunakan keyword

Untuk Konstanta harus dengan huruf capital dan bila ada dua kata di gunakan “ _” sebanyambung nya

contoh nya :

NILAI_ABSOLUT

Modifier

Modifier di gunakan untuk menentukan penggunaan dari suatu data, method dan class

- default ( Tanpa Modifier )

Dapat di gunakan / akses pada package yang sama ( dalam satu package )

- public

Dapat di panggil / di gunakan / di akses dari class manapun dan package manapun dalam program

anda di dalam 1 project aplikiasi.

- static

Dapat di gunakan / di akses tanpa harus menciptakan object .

- private

Hanya dapat di gunakan/diakses dalam class itu sendiri.

- final

Selama Aplikasi berjalan nilai yang sudah di difinisikan tidak dapat berubah.

- abstrack

Harus di difinisikan di sub-class nya

- protected

Hanya dapat di gunakan/di akses dalam package dan sub-class nya.

Statement

Statement merupakan baris perintah atau kumpulan perintah dan Setiap statemen pada java selalu di

akhiri dengan titik koma “; “.

Block

Block di gunakan untuk membentuk suatu group statement. Bblock di awali dengan kurung kurawal

Java Fundamental

Moh Machfudh

buka “{“ dan di akhiri dengan kurung kurawal tutup “}”. Block dapat di gunakan secara nested ( Block

dalam Block ).

Class

Class merupakan unsur dasar pemerograman berorientasi object pada java. Class mendifinisikan bentuk

dan sifat dari objek. Kasarnya Class di buat untuk menciptakan Objek.

Contoh di diatas class bernama HelloWorld, class akan di jelaskan lebih detail di bab berikut nya.

Method

Method merupakan kumpulan statement yang berfungsi melakukan tugas tertentu di dalam program

java. Method di panggil pada instans suatu class dengan menggunakan operator dot "." .

Bentuk penulisan program di sebut juga Naming Convention :

Naming Convention adalah bentuk penulisan pemerograman dalam bahasa java (Java Naming

Convention ). Aturan – atruran penulisan

Penamaan Pada Class Hurud pentama pada setiap kata harus huruf besar

Contoh : HelloWord , NilaiController, DataSiswa

Penamaan Pada Method

Huruf pertama pada setiap kata harus huruf besar kecuali kata pertama

Contoh : getDataNilai, setNilaiSiswa, saveDataSiswa

Penamaan Pada field atau Variabel

Huruf pertama pada setiap kata harus huruf besar kecuali kata pertama

Contoh : jumlahKelas, namaSiswa

Penamaan Pada Konstanta

Semua huruf harus huruf besar apabila lebih dari satu kata , gunaka underscore(_) sebagai

pemisah. Contoh : MAX_HEIGHT, MIN_RATE

Variabel, Konstruktor dan Type-data

Tipe Data

Tipe data dapat di di kelompokan menjadi tiga sbb:

- Type Data Primitif

- Type Data Referensi

- Array

Apa yang di maksud type?.., type adalah pengelompokan berdasarkan isi dan sifat. Pada pemerogrman

Nested ( blok di dalam blok )

Java Fundamental

Moh Machfudh

komputer type mendifinisikan peryataan atau variabel dengan sesuatu yang dapat menunjukan sifatnya

disini akan di bahas bagaimana mendeklarasikan variabel, menentukan nilai dan mengkombinasikan tipe

dangan cara tertentu.

Type data di perlukan agar compiler tahu operasi apa yang valid dan seberapa banyak memory yang di

perlukan oleh sebuah nilai yang akan di simpan atau di operasikan.

Tipe Data Primitif ( type data sederhana )

Bahasa pemrograman Java mendefinisikan delapan tipe data primitif. Mereka diantaranya adalah

boolean (untuk bentuk logika), char (untuk bentuk tekstual), byte, short, int, long (integral), double and

float (floating point).

logika – Boolean

Tipe data boolean diwakili oleh dua pernyataan : true dan false. Sebagai contoh adalah,

boolean result = true;

Contoh yang ditunjukkan diatas, mendeklarasikan variabel yang dinamai result sebagai tipe data

boolean dan memberinya nilai true.

teksual – char

Tipe data character (char), diwakili oleh karakter single Unicode. Tipe data ini harus memiliki ciri berada

dalam tanda single quotes(’ ’). Sebagai contoh,

‘a’ //Huruf a

‘\t’ //A tab

Untuk menampilkan karakter khusus seperti ' (single quotes) atau " (double quotes), menggunakan

karakter escape \. Sebagai contoh,

'\'' //untuk single quotes

'\"' //untuk double quotes

Meskipun String bukan merupakan tipe data primitif (namun merupakan suatu Class), kita akan

memperkenalkan mengenai pada bagian ini. String mewakili tipe data yang terdiri atas beberapa

karakter. Mereka tidak termasuk tipe data primitif, melainkan suatu class. Mereka memiliki literal yang

terdapat diantara tanda double quotes(“”). Sebagai contoh,

String message=“Hello world!”

Integral – byte, short, int & long

Tipe data integral dalam Java menggunakan tiga bentuk- yaitu desimal, oktal atau heksadesimal.

Contohnya,

2 //nilai desimal 2

077 //angka 0 pada awal pernyataan mengindikasikan nilai octal

0xBACC //karakter 0x mengindikasikan nilai heksadesimal

Tipe-tipe integral memiliki default tipe data yaitu int. Anda dapat merubahnya ke bentuk

long dengan menambahkan huruf l atau L. Tipe data integral memiliki range sebagai berikut:

Java Fundamental

Moh Machfudh

Floating Point – float dan double

Tipe Floating point memiliki double sebagai default tipe datanya. Floating-point literal termasuk salah

satunya desimal point atau salah satu dari pilihan berikut ini, E or e //(add exponential value)

F or f //(float)

D or d //(double)

Contohnya adalah,

3.14 //nilai floating-point sederhana (a double)

6.02E23 //A nilai floating-point yang besar

2.718F //A nilai float size sederhana

123.4E+306D //A nilai double yang besar dengan nilai redundant D

Pada contoh yang ditunjukkan diatas, 23 setelah E pada contoh kedua bernilai positif. Contoh tersebut

sama dengan 6.02E+23. Tipe data Floating-point memiliki range sebagai berikut:

Type Data Referensi

Type Data Referensi yaitu Type data yang di gunakan untuk memegang referensi dari suatu object (

instans dari class ). Akan di bahas di variabel referansi

Array

Array adalah sebuah set variabel yang nama tertentu yang memiliki data yang sama. Setiap data

variabel di dalam array di sebut elemen dimana tiap elemen memiliki index dengan type integer dan

Java Fundamental

Moh Machfudh

index di array di awali dengan 0 bukan 1.

Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier berbeda untuk

tiap variabel.

Seperti yang dapat Anda perhatikan pada contoh diatas, kode tersebut akan sia-sia karena harus

menginisialisasi dan menggunakan setiap variabel padahal sebenarnya variabel-variabel tersebut

digunakan untuk tujuan yang sama. Pada bahasa pemrograman Java maupun di bahasa pemrograman

yang lain, terdapat sebuah kemampuan untuk menggunakan satu variabel yang dapat menyimpan

beberapa data dan memanipulasinya dengan lebih efektif. Tipe variabel inilah yang disebut sebagai

array.

Sebuah array akan menyimpan beberapa item data yang memiliki tipe data sama didalam sebuah blok

memori yang berdekatan yang kemudian dibagai menjadi beberapa ruang. Array adalah sebuah

variabel/sebuah lokasi tertentu yang memiliki satu nama sebagai identifier, namun identifier ini dapat

menyimpan lebih dari sebuah nilai.

Pendeklarasian Array

Array harus dideklarasikan seperti layaknya sebuah variabel. Pada saat mendeklarasikan array, anda

harus membuat sebuah daftar dari tipe data, yang diikuti oleh sepasang tanda kurung [], lalu diikuti oleh

nama identifier-nya. Sebagai contoh,

int []ages;

atau Anda dapat menempatkan sepasangtandakurung [] sesudah nama identifier. Sebagai contoh,

int ages[];

Setelah pendeklarasian array , kita harus membuat array dan menentukan berapa panjangnya

dengan sebuah konstruktor. Proses ini di Java disebut sebagai instantiation (istilah dalam Java

yang berarti membuat). Untuk meng-instantiate sebuah obyek, kita membutuhkan sebuah

konstruktor. Kita akan membicarakan lagi mengenai instantiate obyek dan pembuatan

konstruktor pada bagian selanjutnya. Sebagai catatan bahwa ukuran dari array tidak dapat

diubah setelah anda menginisialisasinya. Sebagai contoh,

Java Fundamental

Moh Machfudh

//deklarasi int ages[];

//instantiate obyek ages = new int[100];

atau bisa juga ditulis dengan,

//deklarasi dan instantiate obyek int ages[] = new

int[100];

Pada contoh diatas, pendeklarasian tersebut akan

memberitahukan kepada compiler Java, bahwa identifier

ages akan digunakan sebagai nama array yang berisi

data bertipe integer, dan dilanjutkan dengan membuat

atau meng-instantiate sebuah array baru yang terdiri

dari 100

elemen. Selain menggunakan sebuah pernyataan new

untuk meng-instantiate array, Anda juga dapat

mendeklarasikan, membangun, kemudian

memberikan sebuah nilai pada array sekaligus dalam

sebuah pernyataan. Sebagai contoh,

Pengaksesan sebuah elemen array

Untuk mengakses sebuah elemen dalam array, atau

mengakses sebagian dari array, Anda harus menggunakan sebuah angka atau yang disebut sebagai

indeks atau subscript. Pada saat memasukkan nilai ke dalam array, sebuah nomor indeks atau subscript

telah diberikan kepada tiap anggota array, sehingga program dan programmer dapat mengakses setiap

nilai pada array apabila dibutuhkan. Nilai indeks selalu dalam tipeinteger, dimulai dari angkanol dan

dilanjutkan ke angka berikutnya sampai akhir array. Sebagai catatan bahwa indeks didalam array dimulai

dari 0 sampai dengan (ukuranArray-1). Sebagai contoh, pada array yang kita deklarasikan tadi, kita

mempunyai,

Perlu diperhatikan bahwa sekali array dideklarasikan dan dikonstruksi, nilai yang disimpan dalam setiap

anggota array akan diinisialisasi sebagai nol. Oleh karena itu, apabila Anda menggunakan tipe data

Java Fundamental

Moh Machfudh

seperti String, array tidak akan diinisalisasi menjadi string kosong “”. Untuk itu Anda tetap harus

membuat String array secara eksplisit. Berikut ini adalah contoh kode untuk mencetak seluruh elemen

didalam array. Dalam contoh ini digunakanlah pernyataan for loop, sehingga kode kita menjadi lebih

pendek.

Array Multidimensi

Array multidimensi diimplementasikan sebagai array yang terl etak di dalam array. Array multidimensi

dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. Sebagai contoh,

Jika program di jalankan, akan keluar tampilan seperti ini :

Perhatikan bahwa kita tidak perlu menginisialisasikan nilai yang ingin di buat nol. Java menetapkan

semua variabel sebagai nol ketika di alokasikan.

Variabel

Variabel merupakan lokasi penyimpanan yang ada di memori. Setiap variabel memilki kemampuan

menyimpan suatu informasi sesui dengan type data yang di deklarasikan untuk variabel tersebut saja.

variabel juga bisa di sebut item yang digunakan data untuk menyimpan pernyataan objek.

Deklarasi dan Inisialisasi Variabel

Untuk deklarasi variabel adalah sebagai berikut,

<data tipe> <name> [=initial value];

Catatan: Nilainya berada diantara <> adalah nilai yang disyaratkan, sementara nilai dalam tanda []

bersifat optional. Berikut ini adalah contoh program yang mendeklarasikan dan menginisialisasi

beberapa variabel,

Java Fundamental

Moh Machfudh

Menampilkan Data Variabel

Untuk mengeluarkan nilai dari variabel yang diinginkan, kita dapat menggunakan perintah sebagai

berikut,

Berikut ini adalah contoh program,

Program tersebut akan menghasilkan teks berikut pada layar,

System.out.println() vs. System.out.print()

Apa yang membedakan diantara perintah System.out.println() and System.out.print()? Yang pertama

menambahkan baris baru pada akhir data untuk dikeluarkan, sementara selanjutnya tidak. Perhatikan

pernyataan tersebut,

Peryataan tersebut akan menghasilkan output berikut ini pada layar,

Java Fundamental

Moh Machfudh

Sekarang perhatikan peryataan berikut ini ,

Peryataan ini akan menghasilkan output sebagai berikut pada layar,

Variabel Reference dan Variabel Primitif

Sekarang kita akan membedakan dua tipe variabel yang dimiliki oleh program Java. Ada variabel

reference dan variabel primitif .

Variabel primitif adalah variabel dengan tipe data primitif. Mereka menyimpan data dalam lokasi

memori yang sebenarnya dimana variabel tersebut berada.

Variabel Reference adalah variabel yang menyimpan alamat dalam lokasi memori. Yang menunjuk ke

lokasi memori dimana data sebenarnya berada. Ketika Anda mendeklarasikan variabel pada class

tertentu, Anda sebenarnya mendeklarasikan reference variable dalam bentuk objek dalam classnya

tersebut.

Sebagai contoh, Apabila kita mempunyai dua variabel dengan tipe data int dan String.

Dimisalkan ilustrasi yang ditunjukkan dibawah ini adalah memori yang ada ada komputer Anda, dimana

Anda memiliki alamat dari setiap sel memorinya, nama variabel dan datanya terbentuk sebagai berikut.

Seperti yang dapat Anda lihat, untuk variable primitif num, datanya berada dalam lokasi dimana variabel

berada. Untuk reference variable name, variabel hanya menunjuk alamat dimana data tersebut benar-

benar ada.

Java Fundamental

Moh Machfudh

Operator

Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi, operator logika, dan

operator kondisi. Operator ini mengikuti bermacam-macam prioritas yang pasti sehingga compilernya

akan tahu yang mana operator untuk dijalankan lebih dulu dalam kasus beberapa operator yang dipakai

bersama-sama dalam satu pernyataan.

Operator Aritmatika

Berikut ini adalah dasar operator aritmatika yang dapat digunakan untuk membuat suatu program Java,

Operator Penggunaan Keterangan

+ Op1 + Op2 Menambahkan Op1 dengan Op2

* Op1 * Op2 Menhalikan Op1 dengan Op2

/ Op 1 / Op2 Membagi Op1 dengan Op2

% Op1 % Op2 Menghitung Sisa sari pembagian Op1 dgn Op2

- Op1 – Op2 Mengurangkan Op2 dari Op1

Berikut ini adalah contoh program dalam penggunaan operator-operator ini :

Java Fundamental

Moh Machfudh

Berikut ini adalah output program,

Catatan: Ketika integer dan floating-point number digunakan sebagai operand untuk operasi aritmatika

tunggal, hasilnya berupa floating point. Integer adalah converter secara implisit ke bentuk angka

floating-point sebelum operasi berperan mengambil tempat.

Operator Increment dan Decrement

Dari sisi operator dasar aritmatika, Java juga terdiri atas operator unary increment (++) dan operator

unary decrement (--). operator increment dan decrement menambah dan mengurangi nilai yang

tersimpan dalam bentuk variabel angka terhadap nilai 1.

Sebagai contoh, pernyataan,

peryataan tersebut sama dengan,

Operator Penggunaan Keterangan

++ Op++ Menambahkan Nilai 1 pada Op; mengevaluasi nilai Op sebelum diincrementasi / di tambahkan

++ ++Op Manambahkan nilai 1 pada Op; mengevaluasi nilai Op setelah di incrementasi / di tambahkan

_ _ Op-- Mengurangkan nilai 1 pada Op; mengevaluasi nilai Op sebelum di decrementasi / di kurangkan

_ _ --Op Mengurangkan nilai 1 pada Op; mengevaluasi nilai Op setelah di decrementasi / di kurangkan

Java Fundamental

Moh Machfudh

Operator increment dan decrement dapat ditempatkan sebelum atau sesudah operand. Ketika

digunakan sebelum operand, akan menyebabkan variabel diincrement atau didecrement dengan nilai 1,

dan kemudian nilai baru digunakan dalam pernyataan dimana

dia ditambahkan. Sebagai contoh,

Ketika operator increment dan decrement ditempatkan setelah operand, nilai variabel yang lama akan

digunakan lebih dulu dioperasikan lebih dulu terhadap pernyataan dimana dia

ditambahkan. Sebagai contoh,

Operator Relasi

Operator Relasi membandingkan dua nilai dan menentukan keterhubungan diantara nilainilai tersebut.

Hasil keluarannya berupa nilai boolean yaitu true atau false.

Operator Penggunaan Keterangan

> Op1 > Op2 Op1 lebih besar dari Op2

>= Op1 >= Op2 Op1 lebih besar dari atau sama dengan Op2

< Op1 < Op2 Op1 kurang dari Op2

<= Op1 <= Op2 Op1 kurang dari atau sama dengan Op2

== Op1 == Op2 Op1 sama dengan Op2

!= Op1 != Op2 Op1 tidak sama dengan Op2

Berikut ini adalah contoh program yang menggunakan operator Relasi,

Java Fundamental

Moh Machfudh

Java Fundamental

Moh Machfudh

Berikut ini adalah hasil keluaran dari program ini :

Struktur Kontrol

Statement if

Pernyataan if akan menentukan sebuah pernyataan (atau blok kode) yang akan eksekusi jika dan hanya

jika persyaratan bernilai benar(true).

Bentuk dari pernyataan if,

if( boolean_expression )

statement;

atau

if( boolean_expression ){

statement1;

statement2;

Java Fundamental

Moh Machfudh

. . .

}

dimana, boolean_expression adalah sebuah penyataan logika (true/false) atau variable bertipe boolean.

Berikut ini adalah potongan kode dari pernyataan if:

int grade = 68;

if( grade > 60 ) System.out.println("Congratulations!");

atau

int grade = 68;

if( grade > 60 ){

System.out.println("Congratulations!");

System.out.println("You passed!");

}

Statement if-else

Pernyataan if-else digunakan apabila kita ingin mengeksekusi beberapa pernyataan dengan kondisi true

dan pernyataan yang lain dengan kondisi false.

Bentuk statement if-else,

if( boolean_expression )

statement;

else

statement;

dapat juga ditulis seperti,

if( boolean_expression ){

statement1;

statement2;

. . .

}else{

statement1;

statement2;

. . .

}

Berikut ini contoh code statement if-else,

int grade = 68;

if( grade > 60 ) System.out.println("Congratulations!");

else System.out.println("Sorry you failed");

atau

Java Fundamental

Moh Machfudh

int grade = 68;

if( grade > 60 ){

System.out.println("Congratulations!");

System.out.println("You passed!");

}else{

System.out.println("Sorry you failed");

}

Statement if-else-if

Pernyataan pada bagian kondisi else dari blok if-else dapat menjadi struktur if-else yang lain. Kondisi

struktur seperti ini mengijinkan kita untuk membuat seleksi persyaratan yang lebih kompleks.

Bentuk statement if-else if,

if( boolean_expression1 )

statement1;

else if( boolean_expression2 )

statement2;

else

statement3;

Sebagai catatan : anda dapat memiliki banyak blok else-if sesudah pernyataan if. Blok else bersifat

opsional dan dapat dihilangkan. Pada contoh yang ditampilkan di atas, jika boolean_expression1 bernilai

true, maka program akan mengeksekusi statement1 dan melewati pernyataan yang lain. Jika

boolean_expression2 bernilai true, maka program akan mengeksekusi statement2 dan melewati

statement3.

Berikut ini contoh code statement if-else-if

int grade = 68;

if( grade > 90 ){

System.out.println("Very good!");

}else if( grade > 60 ){

System.out.println("Very good!");

}else{

System.out.println("Sorry you failed");

}

Contoh statement if-else-else if

Java Fundamental

Moh Machfudh

public class Grade {

public static void main( String[] args ) {

double grade = 92.0;

if( grade >= 90 ){

System.out.println( "Excellent!" );

}else if( (grade < 90) && (grade >= 80)){

System.out.println("Good job!" );

}else if( (grade < 80) && (grade >= 60)){

System.out.println("Study harder!" );

}else{

System.out.println("Sorry, you failed.");

}

}

}

Statement switch

Cara lain untuk membuat cabang adalah dengan menggunakan kata kunci switch. Switch

mengkonstruksikan cabang untuk beberapa kondisi dari nilai.

Bentuk statement switch,

switch( switch_expression ){

case case_selector1:

statement1; //

statement2; //block 1

. . . //

break;

case case_selector2:

statement1; //

statement2; //block 2

. . . //

break;

. . .

default:

statement1; //

statement2; //block n

. . . //

break;

}

Java Fundamental

Moh Machfudh

switch_expression adalah ekspresi integer atau karakter dan case_selector1, case_selector2 dan

seterusnya adalah konstanta unik dari nilai integer atau karakter. Ketika pernyataan switch ditemukan

pada potongan kode program, java pertamakali akan memeriksa switch_expression, dan menuju ke case

yang akan menyamakan nilai yang dimiliki oleh switch_expression. Selanjutnya program akan

mengeksekusi pernyataan pada dari kode setelah case yang ditemukan sampai menemui pernyataan

break, selanjutnya akan mengabaikan pernyataan yang lainnya hingga akhir dari struktur dari

pernyataan switch. Jika tidak ditemui case yang cocok, maka program akan mengeksekusi blok default.

Sebagai catatan, bahwa bagian blok default adalah opsional. Sebuah pernyataan switch bisa jadi tidak

memiliki blok kode default.

Contoh statement switch

public class Grade {

public static void main( String[] args ) {

int grade = 92;

switch(grade){

case 100:

System.out.println( "Excellent!" );

break;

case 90:

System.out.println("Good job!" );

break;

case 80:

System.out.println("Study harder!" );

break;

default:

System.out.println("Sorry, you failed.");

}

}

}

Struktur Kontrol Perulangan

Struktur kontrol pengulangan adalah berupa pernyataan dari Java yang mengijinkan kita untuk

mengeksekusi blok code berulang-ulang sesuai dengan jumlah tertentu yang diinginkan. Ada tiga macam

jenis dari struktur kontrol pengulangan yaitu while, dowhile, dan for-loops.

while loop

Pernyataan while loop adalah pernyataan atau blok pernyataan yang diulang-ulang sampai mencapai

kondisi yang cocok. Bentuk pernyataan while,

Java Fundamental

Moh Machfudh

while( boolean_expression ){

statement1;

statement2;

. . .

}

Pernyataan di dalam while loop akan dieksekusi berulang-ulang selama kondisi boolean_expression

bernilai benar (true).

Contoh, pada kode dibawah ini,

int i = 4;

while ( i > 0 ){

System.out.print(i);

i--;

}

Contoh diatas akan mencetak angka 4321 pada layar. Perlu dicatat jika bagian i--; dihilangkan, akan

menghasilkan pengulangan yang terus menerus (infinite loop). Sehingga, ketika menggunakan while

loop atau bentuk pengulangan yang lain, pastikan Anda memberikan pernyataan yang membuat

pengulangan berhenti pada suatu kondisi.

Berikut ini adalah beberapa contoh while loop,

Contoh 1:

int x = 0;

while (x<10)

{

System.out.println(x);

x++;

}

Contoh 2:

//infinite loop

while(true)

System.out.println(“hello”);

Contoh 3:

//no loops

// statement is not even executed

while (false)

System.out.println(“hello”);

Java Fundamental

Moh Machfudh

do-while loop

Do-while loop mirip dengan while-loop. Pernyataan di dalam do-while loop akan dieksekusi beberapa

kali selama kondisi bernilai benar(true). Perbedaan antara while dan do-while loop adalah dimana

pernyataan di dalam do-whileloop akan dieksekusi sedikitnya satu kali. Bentuk pernyataan do-while,

do{

statement1;

statement2;

. . .

}while( boolean_expression );

Pernyataan di dalam do-while loop akan dieksekusi pertama kali, dan akan dievaluasi kondisi dari

boolean_expression. Jika nilai pada boolean_expression tersebut bernilai true, pernyataan di dalam do-

while loop akan dieksekusi lagi. Berikut ini beberapa contoh do-while loop:

Contoh 1:

int x = 0;

do{

System.out.println(x);

x++;

}while (x<10);

Contoh ini akan memberikan output 0123456789 pada layar.

Contoh 2:

//infinite loop

do{

System.out.println(“hello”);

} while (true);

Contoh di atas akan melakukan pengulangan terus menerus yang menulis kata “hello” pada layar.

Contoh 3:

//one loop

// statement is executed once

do

System.out.println(“hello”);

while (false);

Contoh di atas akan memberikan output hello pada layar.

Java Fundamental

Moh Machfudh

for loop

Pernyataan for loop memiliki kondisi hampir mirip seperti struktur pengulangan sebelumnya yaitu

melakukan pengulangan untuk mengeksekusi kode yang sama sebanyak jumlah yang telah ditentukan.

Bentuk dari for loop,

for (InitializationExpression; LoopCondition; StepExpression){

statement1;

statement2;

. . .

}

dimana, InitializationExpression – inisialisasi dari variabel loop. LoopCondition - membandingkan

variabel loop pada nilai batas tertentu. StepExpression - melakukan update pada variabel loop.

Berikut ini adalah contoh dari for loop,

int i;

for( i = 0; i < 10; i++ ){

System.out.print(i);

}

Pada contoh ini, pernyataan i=0 merupakan inisialisasi dari variabel. Selanjutnya, kondisi i<10 diperiksa.

Jika kondisi bernilai true, pernyataan di dalam for loop dieksekusi. Kemudian, ekspresi i++ dieksekusi,

lalu akan kembali pada bagian pemeriksaan terhadap kondisi i<10 lagi. Kondisi ini akan dilakukan

berulang-ulang sampai mencapai nilai yang salah (false).

Contoh tadi, adalah contoh yang sama dari while loop,

int i = 0;

while( i < 10 ){

System.out.print(i);

i++;

}

Pernyataan Percabangan

Pernyataan percabangan mengijinkan kita untuk mengatur aliran eksekusi program. Java memberikan

tiga bentuk pernyataan percabangan: break, continue dan return.

Pernyataan break

Pernyataan break memiliki dua bentuk: tidak berlabel (unlabeled) dan berlabel (labeled). Pernyataan

break tidak berlabel (unlabeled) Pernyataan break tidak berlabel (unlabeled) digunakan untuk

menghentikan jalannya pernyataan switch. Selain itu pernyataan break unlabeled juga bisa digunakan

untuk menghentikan pernyataan-pernyataan for, while atau do-while loop.

Java Fundamental

Moh Machfudh

Contohnya,

String names[] = {"Beah", "Bianca", "Lance", "Belle", "Nico", "Yza", "Gem", "Ethan"};

String searchName = "Yza";

boolean foundName = false;

for( int i=0; i< names.length; i++ ){

if( names[i].equals( searchName )){

foundName = true;

break;

}

}

if( foundName ){

System.out.println( searchName + " found!" );

}else{

System.out.println( searchName + " not found." );

}

Pada contoh diatas, jika string “Yza” ditemukan, pengulangan pada for loop akan dihentikan dan akan

dilanjutkan ke pernyataan berikutnya yang terletak setelah pernyataan for.

Pernyataan break berlabel

Bentuk label dari pernyataan break akan menghentikan pernyataan di luarnya, dimana sebelumnya

harus diberikan label yang sudah di spesifikasikan pada program pada pernyataan break. Program

berikut ini akan mencari nilai dalam array dua dimensi. Terdapat dua pengulangan bersarang (nested

loop). Ketika sebuah nilai ditemukan, brea akan menghentikan pernyataan yang diberi label searchLabel

yang terletak di luar pernyataan for loop.

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;

Java Fundamental

Moh Machfudh

}

}

}

if( foundNum ){

System.out.println( searchNum + " found!" );

}else{

System.out.println( searchNum + " not found!" );

}

Pernyataan break menghentikan pernyataan yang diberi label; dan tidak menjalankan aliran kontrol

apapun pada label. Aliran kontrol pada label akan diberikan secara otomatis pada pernyataan yang

terletak dibawah label.

Pernyataan Continue

Pernyataan continue memiliki dua bentuk: berlabel dan tidak berlabel. Anda dapat menggunakan

pernyataan continue untuk melanjutkan pengulangan yang sedang dijalankan oleh pernyataan for,

while, atau do- while loop.

Pernyataan continue tidak berlabel (unlabeled)

Bentuk pernyataan continue tidak berlabel (unlabeled) akan melewati bagian pernyataan setelah

pernyataan ini dituliskan dan memeriksa eksepresi logika (boolean) yang mengkontrol pengulangan. Jika

ekspresi logika (boolean) masih bernilai true, maka pengulangan tetap dilanjutkan. Pada dasarnya

pernyataan ini akan melanjutkan bagian pengulangan pada pernyataan loop.

Berikut ini adalah contoh dari penghitungan angka dari “Beah” dalam suatu array.

String names[] = {"Beah", "Bianca", "Lance", "Beah"};

int count = 0;

for( int i=0; i<names.length; i++ ){

if( !names[i].equals("Beah") ){

continue; //skip next statement

}

count++;

}

System.out.println("There are " + count + " Beahs in the list");

Labeled continue statement

Bentuk pernyataan continue berlabel (labeled) akan melanjutkan pengulangan yang sedang terjadi dan

dilanjuti ke pengulangan berikutnya dari pernyataan pengulangan yang diberi label (tanda). outerLoop:

Java Fundamental

Moh Machfudh

for( int i=0; i<5; i++ ){

for( int j=0; j<5; j++ ){

System.out.println("Inside for(j) loop"); //message1

if( j == 2 ) continue outerLoop;

}

System.out.println("Inside for(i) loop"); //message2

}

Pada contoh ini, bagian message2 tidak pernah akan dicetak, karena pernyataan continue akan

melewati pengulangan.

Pernyataan Return

Pernyataan return digunakan untuk keluar dari sebuah method. Pernyataan return memiliki dua bentuk:

memberikan sebuah nilai, dan tidak memberikan nilai. Untuk memberikan sebuah nilai, cukup berikan

nilai (atau ekspresi yang menghasilkan sebuah nilai) sesudah kata return. Contohnya,

return ++count;

atau

return "Hello";

Tipe data dari nilai yang diberikan harus sama dengan tipe dari method yang dibuat. Ketika sebuah

method void dideklariskan, gunakan bentuk return yang tidak memberikan nilai. Contohnya,

return;

Kita akan membahas lebih lanjut tentang pernyataan return ketika mempelajari tentang method.

OOP (Object Oriented Programming )

Pemerograman berorientasi objek sangat ampuh dan merupakan paradigm alami untuk

membuat program yang dapat bertahan terhadap kemungkinan perubahan yang berkaitan

dengan pertumbuhan dan pertambahan umur system apapun. Karena dengan OOP anda telah

memahami fungsi masing2 objek dan memiliki antar muka yang jelas dan layak antar objek.

Anda dapat mengatur ulang bagian bagian dari system yang lama tampa takut –takut. Para

guru besar ilmu computer mengajarkan mahasiswa mereka untuk berpikir berorientasi object

selama bertahun tahun. Sebelum mereka belajar bahasa pemerograman dimana secara

langsung mereka menerapkan konsep tersebut. Pendekatan ini di sebut rancangan atas-

bawah ( top-down design ). Anda di ajari untuk memikirkan masalah pertama kali dengan

bentuk yang paling abstrak, baru kemudian mendifinikan subrutin yang berkaitan dengan

implementasi yang lebih konkrit. Anda juga di ajari untuk menghindari pembuatan variabel

global dan melewatkan pointer ke dalam struktur .

Bahasa berorientasi object sejati menyediakan mekanisme yang di kenal sebagai Enkapsulasi,

Inheritansi dan polimorfisme.

Sekarang liat difini masing2

Java Fundamental

Moh Machfudh

Enkapsulasi

Semau program dalam tingkat paling sederhana terdiri dari dua hal: program dan data. Pada

model pemerograman tradisional data di alokasikan pada memori dan diolah oleh program yang

ada di dalam subrutin atau fungsi. Enkapsulasi program yang mengolah data dengan deklarasi

dan penyimpanan data adalah kunci dari rancangan berorientasi objek.

Enkapsulasi dapat di artikan sebagai bungkusan(wrapper) pelindung, program dan data yang

sedang di olah. Pembungkusan ini mendefinisikan prilaku dan melindungi program dan data

agar tidak di akses sembarangan oleh program lain. Contoh dalam dunia nyata, transmisi

otomatis pada mobil mengenkapsulasi ribuan keping informasi dari mesin, seperti percepatan,

kemiringan tanjakan dan posisi persenaling. Anda sebagai supir, cukup melaukan satu hal

untuk mempengaruhi enkapsulasi yang rumit ini : memindahkan tuas perseneling . anda tidak

dapat mempengaruhi transmisi dengan menyalakan lampu sein atau wiper. Keampuhan

enkapsulasi program adalah setiap orang tahu cara mengaksesnya , sehungga dapat

menggunakannya tanpa harus mengerti implementasinya secara terperinci.

Pada java dasar enkapsulasi adalah class. Anda membuat suatu class yang menyatakan

abstaksi dari sekelompok objek yang berbagi struktur dan sifat yang sama. Objek adalah

keadaan tertentu suatu class yang mempertahankan struktur dan sifat sebagimana didefinisikan

oleh class tersebut, seolah olah keluar dari cetakan class yang sama. Objek – objek ini sering di

sebut sebagai instans dari class. Struktur tertentu atau representsi data dari suatu class

didefinisikan oleh sekumpulan variabel instans. Variabel – variabel ini menyimpan keadaan

dinamis setiap instans suatu class. Sifat dan antarmuka suatu class di definisikan dengan

method yang beroperasi pada data instans tersebut. Method adalah perintah untuk melakukan

beberapa aksi terhadap sebuah objek. Perintah ini sangat mirip dengan pemanggilan subrutin

dalam bahasa prosedurial.

Karena tujuannya mengenkapsulasi kerumitan, maka ada mekanisme untuk menyembunyikan

kerumitan implementasi dalam class. Setiap method atau variabel dalam class dapat jadi

private atau public . Antarmuka public suatu class menunjukan semua yang perlu atau harus di

ketahui oleh pemakai. Anda dapat menyatakan method dan data instans sebagai private

sehingga tidak dapat di akses oleh program lain diluar implementasi class anda. Antarmuka

public harus dipilih dengan hati-hati supaya tidak membuka terlalu banyak bagian dalam class.

Enkapsulasi ini bekerja dua arah. Karena anda yakin tidak akan secara tidak sengaja

mempengaruhi bagian lain system dengan program dan data private. Anda dapat membuat

program dan dengan bebas dan nyaman dan menelusuri program dengan penuh kepastian.

Apa beda class dengan instans? Class adalah sesuatu yang menjelaskan atribut dan umum

sebuah objek, termasuk tipe setiap atribut method yang dapat mengoprasikan objek tersebut.

Sebuah instans adalah keadaan tertentu sebuah class objek. Jika seekor kucing mempunyai 4

ekor anak, dia membuat class instans baru dari class kucing. Setiap anak kucing memiliki

himpunan variabel nya sendiri yang didefinisikan dengan class. Beberapa hitam yang lain nya

coklat dan sisanya putih. Beberap jantan, dan yang lain betina. Tetapi semuanya tetap kucing.

Java Fundamental

Moh Machfudh

Inheritansi

Sebagian besar kita melihat lingkungan kita sebagai objek yang saling terhubung secara hirarki,

misalkan binatang, mamalia dan anjing . Jika kita ingin menggambar binatang secara garis

besar, kita dapat mengatakan binatang memiliki ciri-ciri tertentu, misalkan ukuran, kecerdasan

dan jenis system kerangka tulangnya. Binatang juga memiliki aspek prilaku tertentu; mereka

makan, bernafas dan tidur. Penjelasan tentang struktur tubuh dan prilaku ini adalah penjelasan

class binatang.

Jika anda ingin menjelaskan lebih rinci suatu class binatang, misalkan mamalia , maka harus

memiliki cirri-ciri antara lain, misalkan jenis gigi dan periode kehamilan. Ini di kenal sebagai sub-

class dari binatang. Dimana binatang adalah super-class dari mamalia.

Karena mamalia secara sederhana lebih tepat di khususkan sebagai suatu kelompok binatang,

maka mamalia mewarisi(inherit) semua cirri-ciri binatang. Secara lebih mendalam penurunan

subclass di turunkan dari setiap moyangnya dalam hirarki class.

Inheritasi juga berintraksi dengan enkapsulasi . Jika suatu class tertentu mengenkapsulasi

sejumlah atribut, maka sub-class manapun akan memiliki atribut yang sama ditambah dengan

bagian dari specialisasinya . ini adalah konsep kunci yang membuat kerumitan program

berorientasi objek berkembang secara linier, tidak geometris. Sub –class yang baru mencakup

semua prilaku dan spesifikasi moyang nya . Sub-class tersebut tidak memiliki interaksi tak

terduga dengan sebagian besar bagian program di system.

Java Fundamental

Moh Machfudh

Polimorfisme

Method pada objek adalah informasi yang dilewatkan sebagai parameter untuk permintaan

method. Parameter ini mewakili nilai yang dimasukan ke suatu dan harus di kerjakan oleh suatu

method.

Pada bahasa pemerograman fungsional yang lain, untuk melengkapi dua pekerjaan yang

berbeda, diperlukan dua fungsi yang berbeda. Polimorfisme yang berarti satu objek dengan

banyak bentuk adalah konsep sederhana yang memperbolehkan method memiliki beberapa

implementasi yang dipilih berdasarkan type objek yang dilewatkan pada pengerjaan method. Ini

dekenal dengan overloading method. Ini memungkinkan method yang sama untuk kucing,

misalnya memperlihatkan prilaku yang benar- benar berbeda.

Pada suatu saat method smell mengambil parameter kucing, yang menyebabkan anjing

mengongong dan mengejar kucing. Method lain di beri nama smell juga, mengambil objek

makanan sebagai parameter nya, akan menyebabkan anjing meneteskan air liurnya dan

mencari mangkuk makanannya.

Overridding

Overloading sebuah method adalah cara class tunggal mengurusi tipe yang berbeda dengan

cara sama. Cara tersebut static karena implementor suatu class perlu mengetahui semua tipe

yang akan di hadapi agar dapat menulis suatu metode. Pada beberapa kasus, hal ini sangat di

harapkandan kenyataanya menjadikan program lebih jelasdan mudah diramalkan. Namun

menjadi tidak fleksibel, karena lebih sering di inginkan untuk memaksimalkan sebuah

lingkungan setelah sejumlah program tidak lagi bekerja tidak ada program sama sekali.

Pembuatan sub-class memungkinkan kita untuk mengunakan polimorfisme pada program yang

sedang berjalan secara lebih dinamis. Jika anda mendifinisikan sub-class anjing anda dapat

mengoverride( memaksa) method smell pada anjing untuk melaukan hal yang berbeda. Karena

semua sub-class anjing dapat di lewat kan sebagai anjing, maka pemakai method smell tidak

akan tahu bahwa yang di eksekusi adalah kelakuan polimorfisme.

MAMALIA

HEWAN

SERANGGA

ANJING SAPI LEBAH NYAMUK

Java Fundamental

Moh Machfudh

Class dan Object

Mari kita ulang sejenak dasar-dasar pemerograman berorientasi objek, di mulai dengan

perbedaan bahasa-bahasa pemerograman tradisional. Didalam sebuah basaha tradisional

seperti C, anda membuat program dengan terlebih dahulu menentukan tugas yang akan di

selesaikan oleh program tersebut, setelah itu anda merancang langkah langkah atau prosedur

yang diperlukan untuk menyelasaikan tugas tadi. Kode yang anda tuliskan pada prinsipnya

merupakan wujud dari langkah langkah tersebut didalam kode yang sesungguhnya. Kode kode

tersebut terorganisasi ke dalam fungsi-fungsi. Umumnya, sebuah fungsi baru dibuat apabila ter

dapat perintah yang di gunakan lebih dari sekali, di berbagai tempat di dalam program anda.

Untuk beberapa tipe program, pemerograman prosudural sudah cukup memadai. Namun,

banyak program aplikasi, terutama yang bersifat interaktif, yang sulit di tuliskan secara

procedural.

Di dalam bahasa yang berorientasi objek, sebuah program dibuat dengan, pertama

menentukan objek objek yang akan di gunakan oleh program tersebut dalam menyelesaikan

tugasnya. Dengan kata lain, anda harus menentukan tipe-tipe objek di dunia nyata apa saia

yang akan di selasaikan oleh kode-kode program. Untuk setiap jenis objek, anda harus

menentukan apa saja data-data yang akan dimuat didalamnya. Pesan-pesan yang harus

ditanggapi oleh objek tersebut juga harus di tentukan. Sebagai contoh jika anda membuat

program menggambar, anda mungkin perlu mengrganisasikan program tersebut ke dalam

objek-objek goemetri, seperti garis, lingkaran dan segi empat. Obek garis perlu memuat data-

data yang menjelaskan posisi nya pada layar monitor. Objek garis juga perlu member

tanggapan terhadap suatu pesan, misalnya untuk memberitahukan bahwa ia sudah diklik atau

sudah dirubah ukurannya .

Sekarang mari kita ulang terminology yang berkaitan dengan objek. Sebuah objek adalah

kombinasi dari kode(fungsi) dan data(variabel) yang digabungkan ke dalam satu entitas. Fungsi

di dalam objek di sebut method atau fungsi anggota dan data-data didalamnya di sebut data

anggota atau sifat. Pemanggilan terhadap suatu method di objek dapat di artikan sebagai

pengiriman pesan ke objek.

Sebuah Class pada prinsipnya adalah deskripsi dari bagaimana sebuah objek dibuat. Untuk

setiap objek, terdapat sebuah Class yang menentukan bagaimana objek tersebut dibuat,

variabel apa yang akan dimuat, dan pesan apa yang akan di tanggapi. Proses pembuatan

Class baru dapat dilakukan dengan lebih cepat dan sederhana karena sebuah Class bisa

merupakan sub-class dari Class yang sudah ada. Sub-class dapat menggukan variabel dan

methad dari pada induk nya. Hal seperti ini di sebut inheritansi. Class induk bisa juga

merupakan sub-class dari Class yang lain. Sebuah Class mewarisi method dan variabel sampai

kebatas rantai inheritansinya(chain of inheritance). Jika Class B adalah sub-Class dari Class A

dan Class C adalah sub-Class dari Class B, maka Class C menerima warisan dari Class A dan

B.

Sebuah objek bibuat atau diinstansiasi dari sebuah Class. Objek di sebut juga instans dari

Class. Ketika sebuah objek dibuat, satu daerah dalam memori akan di alokasikan untuk data-

data dari objek tersebut. Di dalam objek bentuk data tersebut adalah variabel, dan variabel

Java Fundamental

Moh Machfudh

tersebut di sebut variabel instans. Pada saat sebuah pesan dikirimkan ke objek, maka objek

tersebut di sebut target pesan. Method yang di eksekusi atau di panggil itu dapat mengakses

variabel instans yang dimiliki objek target.

Hampir semua memori yang di alokasikan di dalam suatu program java berbentuk objek yang di

buat dari Class. Ketika sebuah objek dibuat, kepadanya di berikan sebuah referensi. Refe-rensi

adalah satu tipe harga khusus yang anda gunakan bila-mana anda bermaksud melakukan

suatu tindakan terhadap objek. Anda menyimpan referensi objek ini didalam variabelnya,

sehingga nantinya anda bisa menggunakan objek itu di dalam program. Jika suatu objek tidak

lagi digunakan (tidak ada satu pun variabel di dalam program yang menyimpan referensi ke

objek itu). Objek tersebut otomatis di buang dan memori yang semula di gunakan akan di

berikan ke objek lain. Proses pembebasan memori dari objek yang tidak lagi di gunakan di

sebut garbage collection, yang merupakan salah satu aspek penting dari bahasa java. Proses

tersebut menghindarkan anda dari masalah pengaturan memori.

Kita akan memasuki Class dan objek secara lebih mendalam. Dalam beberapa kasus, saat

kami memcoba memperkenalkan beberapa sifat tertentu dari Class atau objek, kami menjumpai

situasi seperti ayam dan telor. Situasi itu terjadi karena beberapa sifat tertentu(seperti variabel

instans) didefinisikan di dalam Class tetapi baru digunakan pada saat objek sudah di buat. Ini

salah satu alasan mengapa kami terlebih dahulu memeperkenalkan ide-ide tersebut secara

konseptual

Menggunakan Class

Setelah membahas penjang lebar mengenai objek dan pemerograman berorientasi objek,

jangan lupa bahwa setiap program java di mulai dengan mendifinisikan Class, anda sudah

melihat melihat beberapa Class di gunakan dalam contoh- contoh yang sederhana :

Pada contoh diatas, kita mempunyai sebuah Class yang bernama SampleApp dengan sebuah

method yang di sebut main(). Aplikasi java sedernahanya adalah sebuah clas yang membuat

method main(). Pada saat interpreter java diperintahkan untuk Class tertentu seperti

Java Fundamental

Moh Machfudh

SampleApp, interpreter tersebut mengirimkan pesan main ke Class SampleApp. Sampai disini

anda mungkin memiliki beberapa pertanyaan:

Apakan pesan tersebut di kirimkan ke Class dan bukannya ke Objek?

Apakah arti dari kata kunci seperti class, public, static dan void?

Pada saat kita manyelesaikan penjelasan (objek dan class ) ini , anda akan memahami arti dari

semua yang ada pada contoh di atas ( dengan pengecualian kami belum akan membahas array

dan string )

Definisi Class

Difinisi Class adalah kode program yang mendifinisikan semua rincian spesifik dari suatu Class

yang dipelukan didalam program. Sebagai contoh, Class berikut ini absah meskipun hanpir

tidak ada gunanya :

Definisi ini mendifinisikan Class bernama Nothing, difinisi tersebut tidak membuat apapun di

dalamnya, sekarang marilah kita lihat bentuk dasar dari definisi Class :

Marilah kita pelajari perinciannya dengan membuat sebuah Class sederhana yang memuat satu

buah variabel dan dua buah Method:

Java Fundamental

Moh Machfudh

Class ini di beri nama Lamp dan akan membuat objek-objek yang memuat satu variabel

instans, yaitu power_on dan member tanggapan terhadap pesan : setState dan printStarte.

Seperti sudah kami sebutkan agar sebuah pesan dapat di tanggapi, kita harus mendifinisikan

method yang bersesuaian. Pada contoh diatas kami mendifinisikan 2 buah method yang

disebut setState() dan printState aka ndi eksekusi. Ketika objek yang dibuat dari kelas ini

mendapat pesan setState dan printState. Ketika Objek yang di buat dari class ini mendapat

pesan setState() dan printState() akan di eksekusi. Setiap objek dari class lamp juga akan

memuat variable power_on. Dalam kode kita, variabel power_on di gunakan untuk menunjukan

apakah lampu berada dalam keadaan hidup(on) atau mati(off).

Anatomi Class

Secara garis besar, anatomi class dapat digambarkan sebagai berikut (gambar diambil dari

Java Tutorial)

Java Fundamental

Moh Machfudh

Seperti kita lihat pada gambar di atas, class memiliki beberapa jenis anggota sebagai berikut:

Variable atau property

Methods

Untuk membuat class, kita perlu mendeklarasikan class. Contoh deklarasi class yang lengkap

dapat dilihat pada contoh kode berikut.

Ada beberapa keyword yang perlu diketahui:

public: menyatakan ijin akses class. Public class bisa diakses dari mana saja,

sedangkan bila keyword public dihilangkan, class hanya bisa diakses oleh class lain

yang berada dalam package yang sama.

extends: keyword ini opsional, digunakan untuk menentukan class lain yang merupakan

parent-class (superclass) dari class yang ingin kita deklarasikan. Di Java, kita hanya

bisa extends dari satu superclass saja.

implements: keyword ini juga opsional. Digunakan untuk menentukan interface lain yang

merupakan superclass. Di Java, kita bisa implements banyak interface, masing-

masingnya dipisahkan dengan koma.

Java Fundamental

Moh Machfudh

abstract: menandai class yang tidak bisa diinstankan (tidak bisa dibuat objectnya).

final: menandai class yang tidak bisa di-extend.

Sebagai contoh, dalam membuat aplikasi pergudangan, kita memiliki istilah Gudang atau

Warehouse. Sebuah gudang memiliki keterangan sebagai berikut:

Kode

Nama

Kapasitas

Lokasi

Class tersebut dapat kita representasikan dalam Java sebagai berikut.

Class tersebut dapat digunakan untuk membuat object. Misalnya Kita memiliki gudang g120

yang berlokasi di Jakarta Utara. Maka kita akan membuat objectnya sebagai berikut.

Warehouse g120 = new Warehouse();

g120.location = “Jakarta Utara”;

Pada contoh kode di atas, kita membuat object kosong yangkemudian kita isi property

locationnya dengan nilai Jakarta Utara.

Konstuktor

Konnstuktor adalah method yang menginisialisasi objek segera setelah pembuatannya.

Konstruktor tersebut memiliki nama yang sama persis dengan class tempatnya. Konstruktor

kelihatanya agak aneh karena tidak memiliki tipe keluaran, bahkan tidak memiliki void

sekalipun. Ini karena tipe hasil implisit konstruktor suato class adalah tipe kelas itu sendiri.

Tugas konstruktor adalah menginisialisasi sumua keadaan internal suatu objek sehingga

program yang menghasilkan instans dengan operator new akan segera memiliki objek yang

berguna.

Java Fundamental

Moh Machfudh

Package

Package adalah container class yang digunakan untuk menjaga ruang nama class tetap terbagi

– bagi. Contohnya package memungkinkan anda untuk membuat sebuah class bernama list,

dimana anda dapat menyimpan package tanpa harus memikirkan apakah akan terjadi tabrakan

dengan class list yang di buat orang lain. Package di simpan secara hirarkis dan secara ekplisit

impor ke dalam definisi class baru.

Exception

Exception(perkecualian) adalah suatu kondisi saat menjalankan program, yakni kondisi dimana

program diperintahkan untuk berhenti seketika itu juga atau untuk melakukan tindakan khusus

lain yang berkaitan dengan exception, sebagian besar exception yang akan anda jumpai

merupakan tanggapan terhadap suatu kesalahan, seperti halnya membagi integer dengan 0.

Apabila menjumpai kesalahan seperti ini interpreter akan melontarkan sebuah exception, yang

akan membuat kode program melompat ke exception handler yang sesuai. Exception handler

dikatakan menangkap sebuah exception apabila ia mampu manangani tipe exception yang di

lontarkan. Apabila tidak ada exception handler yang di definisikan exception default akan

mengambil alih dengan menuliskan kesalahan yang terjadi pada baris perintah dan

menghentikan program.

Contoh ini menunjukan bagaimana exception handler didifinisikan dengan mengapit kode yang

akan di tangkap exceptionnyamenggukan peryataan try dan catch. Peryataan catch pada

contoh diatas bersiap siap menagkap exception yang merupakan instan dari class exception

atau dari salah satu sub classnya, apabila terjadi kesalahan, maka kode dalam blok catch akan

di eksekusi.

Elemen exception handler

throw

Pada umumnya exception adalah akibat dari kesalahan dimana interpreter memberikan sinyal

dengan melontarkan exception. Namun adakalanya anda ingin atau perlu melontarkan

Java Fundamental

Moh Machfudh

exception anda sendiri. Hal ini dapat anda lakukan dengan mengunakan kata kunci throw diikuti

dengan instans dari throwable objek.

try

peryataan try mengawali setiap exception exception handler. Bentuk umum peryataan try

adalah sbb:

try peryataan;

catch(subclass dari catch throwable a) peryataan;

setiap peryataan try harus di ikuti oleh paling tidak satu peryataan catch. Apabila exception di

lontarkan di suatu tempat antara pernyataan try catch, eksekusi program akan melompat ke

pernyataan catch yang akan mencocokan tipe classnya. Apabila kode di antara pernyataan try

dan catch membuat pemanggilan terhadap suatu method dan jika method itu atau method lain

yang di panggilnya itu melontarkan exception yang tidak dapat mereka tangani sendiri,

exception handler akan menanganinya.

catch

pada saat exception dilontarkan dari dalam blok try, eksekusi akan melompat ke pernytaan

catch pertamadi exception handler yang akan menagkap objek exception dari tipe yang di

lontarkan.

finally

setelah blok blok catch menjalankan tugasnya, elemen terakhir dari exception handler di

eksekusi. Elemen terakhir ini adalah kode yang menyusun blok pernyataan finally. Pernyataan

finally di difinisikan sbb:

try pernyataan;

catch(sub class dari class throwable e ) pernyataan;

finally pernyataan;

kode di blok finally akan di eksekusi tanpa memperdulikan apakah di blok try terjadi kesalahan

atau tidak. Tujuan blok finally adalah untuk mengeksekusi kode kode yang harus di eksekusi,

seperti memastikan bahwa suatu variabel instan sudah di inisialisasikan dengan benar.

Java Fundamental

Moh Machfudh

String ( Demo )

Java Collection Framework

Java collection framework adalah class – class didalam java yang di gunakan untuk menampung objek –

object. Class class yang ada di java collection cukup banyak bisa di lihat dalam package java.util dari

dokumen SDK

List

ArrayList

Method yang di gunakan antara lain

o add (object o ): Menambahkan Objek ke akhir sebuah list

o add (int index, object o ): Menambahkan Object ke posisi tertentu

o clear () : Menghapus semua object yang ada dalam list

o get(int index) : Mengambil object pada posisi tertentu

o size(): Mendapatkan jumlah object dalam sebuah list

o ect..

Map

Map adalah collection yang menampung pasangan object key dan value . Map tidak dapat menampung

duplikat key

Hashtable

Hasmap

Java Fundamental

Moh Machfudh

Method yang di gunakan anatara lain :

o Put( object key, object value ) : Menyimpan objek key pada sebuah map

o Get( object key ) : Mengambil object untuk key tertentu

o Clear() : Menghapus semua object yang ada di dalam map

o containtValue(object value ): Menyimpan Key ini value ini

o size(): Mengembalikan jumlah key-value yang ada dalam sebuah map