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