laporan java

39
LAPORAN RESMI BAHASA PEMROGRAMAN JAVA Disusun oleh : JOSUA SIAGIAN 200601030175 MIK 34 DOSEN : SUNDARI RETNO ANDANI, S.T PROGRAM STUDI MANAJEMEN INFORMATIKA AMIK TUNAS BANGSA

Upload: josua-siagian

Post on 25-Jun-2015

166 views

Category:

Documents


5 download

DESCRIPTION

Laporan Java Josua Siagian

TRANSCRIPT

Page 1: Laporan Java

LAPORAN RESMI

BAHASA PEMROGRAMAN JAVA

Disusun oleh :

JOSUA SIAGIAN

200601030175

MIK 34

DOSEN : SUNDARI RETNO ANDANI, S.T

PROGRAM STUDI MANAJEMEN INFORMATIKA

AMIK TUNAS BANGSA

PEMATANGSIANTAR

2010

Page 2: Laporan Java

DASAR-DASAR JAVA

Java sebagai salah satu bahasa pemrograman baru menjanjikan banyak kemudahan bagi

programer junior maupun senior. Tutorial ini akan membawa Anda mengenal lebih jauh bahasa

ini melalui pembahasan konsep model perancangan dan petunjuk sederhana penggunaannya.

Apakah Java?

Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun

Microsystems sejak tahun 1991. Bahasa ini dikembangkan dengan model yang mirip dengan

bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform

independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer.

Bahasa ini juga dirancang untuk pemrograman di Internet sehingga dirancang agar aman dan

portabel.

Platform Independent

Platform independent berarti program yang ditulis dalam bahasa Java dapat dengan

mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur komputer.

Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa pemrograman

Internet di mana sebuah program akan dijalankan oleh berbagai jenis komputer dengan berbagai

jenis sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari program Java.

Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa Java mempunyai ukuran yang

konsisten di semua jenis platform. Source code program Java sendiri tidak perlu dirubah sama

sekali jika Anda ingin mengkompile ulang di platform lain. Hasil dari mengkompile source code

Page 3: Laporan Java

Java bukanlah kode mesin atau instruksi prosesor yang spesifik terhadap mesin tertentu,

melainkan berupa bytecode yang berupa file berekstensi .class. Bytecode tersebut dapat

langsung Anda eksekusi di tiap platform yang dengan menggunakan Java Virtual Machine

(JVM) sebagai interpreter terhadap bytecode tersebut.

JVM sendiri adalah sebuah aplikasi yang berjalan di atas sebuah sistem operasi dan

menerjemahkan bytecode program Java dan mengeksekusinya, sehingga secara konsep bisa

dianggap sebagai sebuah interpreter. Proses pengeksekusian program Java dapat dilukiskan

seperti di Gambar 1. Dengan cara ini, sebuah program Java yang telah dikompilasi akan dapat

berjalan di platform mana saja, asalkan ada JVM di sana.

Kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK)

yang diproduksi oleh Sun Microsystems. JDK ini dapat didownload gratis dari situs

java.sun.com. Interpreter untuk program Java sendiri sering juga disebut Java Runtime atau Java

Virtual Machine. Interpreter Java, tanpa kompilernya, disebut Java Runtime Environment (JRE)

dapat didownload juga di situs yang sama. Untuk mengembangkan program Java dibutuhkan

JDK, sementara jika hanya ingin menjalankan bytecode Java cukup dengan JRE saja. Namun

untuk mengeksekusi applet (sebuah bytecode Java juga) Anda biasanya tidak perlu lagi

mendownload JRE karena browser yang Java-enabled telah memiliki JVM sendiri.

Library

Page 4: Laporan Java

Selain kompiler dan interpreter, bahasa Java sendiri memiliki library yang cukup besar

yang dapat mempermudah Anda dalam membuat sebuah aplikasi dengan cepat. Library ini sudah

mencakup untuk grafik, desain user interface, kriptografi, jaringan, suara, database, dan lain-lain.

OO

Java adalah bahasa pemrograman berorientasi objek. Pemrograman berorientasi objek secara

gamblang adalah teknik untuk mengorganisir program dan dapat dilakukan dengan hampir

semua bahasa pemrograman. Namun Java sendiri telah mengimplementasikan berbagai fasilitas

agar seorang programer dapat mengoptimalkan teknik pemrograman berorientasi objek.

Sedikit perbandingan tambahan dengan bahasa C dan C++, Java banyak mewarisi konsep

orientasi objek dari C++ namun dengan menghilangkan aspek-aspek kerumitan dalam bahasa C+

+ tanpa mengurangi kekuatannya. Hal ini mempermudah programer pemula untuk mempelajari

Java namun mengurangi keleluasaan programer berpengalaman dalam mengutak-atik sebuah

program. Di balik kemudahan yang ditawarkan Java, luasnya fasilitas library Java sendiri

membuat seorang programer membutuhkan waktu yang tidak singkat untuk dapat menguasai

penggunaan library-library tersebut.

Memulai Pemrograman Java

Untuk membuat program Java, seperti telah disebutkan sebelumnya, Anda membutuhkan JDK.

Proses instalasi JDK tersebut sangat mudah dan tidak membutuhkan pengetahuan tertentu.

Namun untuk menggunakannya Anda perlu melakukan beberapa penyesuaian dengan sistem

operasi Anda. Umumnya yang perlu Anda lakukan adalah memasukkan path ke direktori JDK

Page 5: Laporan Java

Anda ke setting path pada sistem operasi Anda. Misalkan direktori JDK Anda adalah C:\jdk1.4

maka pada Windows 98 Anda cukup menambahkan baris perintah SET PATH=C:\jdk1.4\bin

pada file autoexec.bat Anda. Untuk Windows NT/2000/XP Anda cukup menambahkan

direktori C:\jdk1.4\bin pada variabel path di System Environment. Caranya: klik kanan ikon

My Computer, pilih Properties. Kemudian pilih tab Advanced. Lalu klik tombol Environment

Variables, cari variabel path, kemudian tambahkan path direktori JDK Anda ke dalam variabel

tersebut. Untuk Linux, tambahkan baris perintah SET CLASSPATH=(direktori jdk Anda) ke

file profile Anda. Untuk mencoba JDK, ketikkan perintah java dan javac pada shell prompt

(atau DOS Command Prompt). Jika perintah tersebut sudah dikenali maka program java atau

javac akan menampilkan sintaks penggunaan. Untuk kemudahan dan berbagai fasilitas

tambahan Anda dapat menggunakan Integrated Development Environment (IDE) untuk bahasa

Java seperti Visual Café dari Symantec atau JBuilder dari Borland.

Urutan langkah-langkah yang harus Anda lakukan untuk membuat sebuah program Java

sederhana adalah:

1. Membuat source code program dengan editor teks apapun. Ingat, file tersebut harus

berekstensi .java dan case sensitive.

2. Mengkompile source code dengan perintah javac. Misalnya: javac HelloWorld.java.

Jika berhasil, hasilnya adalah file bytecode berakhiran .class.

3. Mengeksekusi bytecode dengan perintah java. Parameter dari perintah ini adalah nama

file hasil kompilasi tanpa ekstensi .class. Contoh: java HelloWorld.

Source Code

Page 6: Laporan Java

Berikut kode untuk HelloWorld.java:

publicclass HelloWorld

{

public static void main(String[] args)

{

System.out.println("Apa Kabar Dunia?");

}

}

Dan ini sebuah contoh lain, yaitu applet sederhana untuk menampilkan teks di applet.

Sebutlah file ini bernama HelloWorldApplet.java:

import java.awt.Graphics;

public class HelloWorldApplet extends java.applet.Applet

{

public void paint(Graphics g)

{

g.drawString("Apa Kabar Dunia?", 5, 25);

}

}

Secara gamblang dapat diperhatikan bahwa struktur kedua program sangat mirip, dan

hanya berbeda dalam konteks eksekusi. Kedua program ini akan dibahas lebih lanjut setelah kita

membahas cara mengkompile dan mengeksekusi program tersebut.

Perlu diingat bahwa bahasa Java bersifat case sensitive, sehingga Anda harus

memperhatikan penggunaan huruf besar dan kecil. Selain itu penulisan source code program

Page 7: Laporan Java

tidak harus memperhatikan bentuk tertentu, sehingga Anda bisa saja menuliskan semua baris

source code tersebut dalam satu baris asal Anda tidak lupa membubuhkan tanda titik koma (;),

atau menuliskan tiap kata dalam satu baris tersendiri. Namun dianjurkan Anda mengikuti layout

seperti pada contoh agar program Anda mudah dibaca dan dimengerti.

Kompilasi

Setelah kedua file disave dengan nama HelloWorld.java dan HelloWorldApplet.java,

kita akan mengkompile kedua program tersebut dengan perintah:

prompt> javac HelloWorld.java

prompt> javac HelloWorldApplet.java

Perlu diperhatikan bahwa direktori aktif Anda saat ini adalah direktori tempat Anda

meletakkan file-file program tersebut. Anda tetap dapat mengkompile program Anda dari

direktori berbeda dengan perintah:

prompt> javac (direktori program)/namafile.java

Setelah perintah ini selesai, Anda akan melihat bahwa telah tercipta dua buah file

.class, yaitu bytecode hasil kompilasi source code kita.

Sintaks Program

Sekarang kita akan mencoba membahas elemen-elemen dalam kedua source code

tersebut.

Page 8: Laporan Java

Pada awal Listing 2 kita menemukan perintah import. Pada tahap awal ini Anda perlu

mengetahui bahwa pernyataan tersebut hanya berfungsi mempermudah penulisan metode atau

dalam bahasa pemrograman lain disebut prosedur atau fungsi. Jadi Anda hanya perlu menulis

Graphics sebagai pengganti java.awt.Graphics, karena kita telah mengimpor

java.awt.Graphics.

Kemudian di masing-masing listing terdapat pernyataan public class. Pernyataan ini adalah

pernyataan pembuka sebuah kelas. Kelas sendiri digunakan untuk menciptakan objek. Ingat

bahwa Java berorientasi objek. Kata public di depannya berfungsi agar kelas tersebut dapat

diakses oleh semua program lain. Untuk saat ini anggaplah objek sebagai suatu item yang dapat

dimanipulasi oleh sebuah program. Dalam Listing 2 terdapat tambahan kata extends. Hal ini

berarti kelas yang kita buat akan mewarisi sifat-sifat dari kelas yang kita extends. Dengan kata

lain kita menjadikan kelas yang kita extends sebagai himpunan bagian dari kelas kita buat.

Kemudian kita menemukan baris pernyataan public static void main(String[] args) dan

public void paint(Graphics g). Keduanya adalah pernyataan pembuka sebuah metode.

Metode sendiri adalah kumpulan pernyataan untuk melakukan suatu tugas tertentu dalam kelas.

Keduanya sebenarnya mempunyai fungsi yang sama namun dalam konteks yang berbeda. Dalam

setiap aplikasi harus ada sebuah metode yang bernama main yang akan dieksekusi pertama kali

saat program tersebut dieksekusi. Sementara dalam applet, metode yang pertama kali akan

dieksekusi ketika applet diload adalah paint. Kata public di depannya mempunyai fungsi yang

sama dengan kata public yang ada di depan baris permulaan kelas. Namun nantinya Anda akan

menemukan juga bentuk lain seperti private dan protect yang akan kita bahas nanti.

Page 9: Laporan Java

Pada Listing 1 terdapat kata static pada pernyataan pembuka metode main. Hal ini berarti

metode main tidak mengubah atau menggunakan objek yang diciptakan oleh kelas tersebut,

sehingga dapat dikatakan berdiri sendiri dan tidak terikat dengan objek. Dalam metode main

dalam aplikasi, parameternya adalah selalu String[] args, di mana args hanyalah sebuah

nama dari objek array dari String. Array ini nantinya akan berisi parameter-parameter yang

diberikan user sebagai argumen command line. Sementara Anda tidak perlu mengerti mengenai

parameter tersebut, cukup diingat bahwa bentuk metode main harus selalu demikian.

Kemudian di dalam kedua metode pada kedua listing tersebut, kita menemukan sebuah

pernyataan. Anda tentu dapat saja meletakkan lebih dari satu pernyataan dalam sebuah metode.

Setiap pernyataan dalam sebuah metode dipisahkan oleh titik koma dan akan dieksekusi satu

persatu. Kedua pernyataan pada listing ternyata memanggil sebuah metode lain yaitu metode

println dan paint. Tentunya dapat Anda perhatikan bahwa untuk memanggil sebuah metode

diperlukan tiga komponen yaitu:

1. Objek yang ingin kita pakai. Dalam hal ini objek System.out dan Graphics g.

2. Nama metode yang ingin kita pakai. Dalam hal ini println dan paint.

3. Sepasang tanda kurung yang berisi informasi tambahan yang diperlukan oleh metode

yang dipanggil, yaitu parameter.

Dalam Listing 1, pernyataan System.out.println("Apa Kabar Dunia?"); berarti carilah

objek out dalam kelas System kemudian panggil metode println dari objek out dengan

parameter berupa string "Apa Kabar Dunia?". Sedang dalam Listing 2, pernyataan

g.drawString("Apa Kabar Dunia?", 5, 25); berarti carilah objek g kemudian panggil

metode drawString pada objek g dengan parameter "Apa Kabar Dunia?”, 5, 25);.

Page 10: Laporan Java

Eksekusi

Setelah selesai membahas sintaks dasar Java dalam kedua listing, selanjutnya kita akan

mencoba mengeksekusi kedua program ini. Untuk program pertama yang berupa aplikasi biasa,

kita tinggal mengetikkan perintah java HelloWorld pada prompt dan pesan Apa Kabar Dunia?

akan tampil di layar (atau mungkin di tempat lain, bergantung sistem operasi Anda). Sedangkan

untuk applet kita mesti membuat sebuah file HTML sebagai pembungkus—atau pemanggilnya.

Berikut diberikan contoh file HTML untuk membungkus applet yang kita buat.

<HTML>

<HEAD>

<TITLE>Coba Applet</TITLE>

</HEAD>

<BODY>

<APPLET CODE="HelloWorldApplet.class" WIDTH=150 HEIGHT=25>

</APPLET>

</BODY>

</HTML>

Beri nama helloword.html dan simpanlah di direktori yang sama dengan lokasi file-file

.java dan .class sebelumnya. Untuk mengeksekusi applet kita cukup membuka file HTML

tersebut di browser yang Java-enabled atau mengetikkan perintah appletviewer

namafile.html di prompt.

Page 11: Laporan Java

PERNYATAAN IF-ELSE

Pernyataan Percabangan If-Else digunakan untuk memecahkan persoalan untuk mengambil suatu keputusan diantara sekian pernyataan yang ada. Untuk keperluan pengambilan keputusan, Borland C++ menyediakan beberapa perintah antara lain:

1. Pernyataan If-Else

Bentuk umum dari pernyataan If-Else

if(kondisi){statement 1;}else{statement 2;}

Ket :

Kondisi adalah pernyataan relasi yang akan diuji kebenarannya. Kondisi bisa berbentuk pernyataan relasi tunggal maupun pernyataan relasi majemuk yang dihunbungkan dengan operator logika.

Statement adalah satu atau lebih perintah yang akan dikerjakan jika kondisi bernilai benar.

Kurung kurawal buka-tutup bisa dihilangkan apabila hanya terdapat satu statement.

Kesimpulan:Pernyataan if mempunyai pengertian, "Jika kondisi bernilai benar, maka statement 1 akan dikerjakan dan jika tidak memenuhi syarat maka akan mengerjakan statement 2".

Untuk contoh listing programnya, silahkan lihat di sini!

2. Pernyataan If-Else Multi Kondisi

Kondisi yang diperiksa di dalam perintah if bisa berupa kumpulan operasi yang dihubungkan dengan satu atau lebih operator logika.Bentuk umum If-Else Multi Kondisi.

if(kondisi1 &&/|| kondisi2 .......dst){statement;}.....dst

Page 12: Laporan Java

Ket:

Kondisi 1, kondisi 2, dst adalah beberapa pernyataan relasi yang akan diuji kebenarannya. Hasil akhir dari seluruh kondisi inilah yang akan menentukan apakah blok statement akan dikerjaka atau tidak.

Operator "&&" digunakan untuk menghubungkan dua relasi dengan logika AND. Hasil akhir akan bernilai benar apabila kedua kondisi benar. Dan bernilai salah apabila kedua kondisi atau salah satu kondisi bernilai salah.

Operator "||" digunakan untuk menghubungkan dua relasi dengan logika OR. Hasil akhir akan bernilai benar apabila kedua kondisi benar atau salah satunya benar. Dan bernilai salah apabila kedua kondisi bernilai salah.

Kurung kurawal buka-tutup bisa dihilangkan apabila hanya terdapat satu statement.

3. Pernyataan Nested If-Else

Percabangan If-Else secara Nested merupakan sebuah struktur percabangan bisa saja berada di dalam struktur percabangan yang lain, demikian terus tanpa batas, disesuaikan dengan persoalan yang dihadapi. Diproses atau tidaknya percabangan yang berada di bagian dalam ditentukan oleh diproses-tidaknya percabangan bagian luar.

Nested if merupakan pernyataan if berada didalam pernyataan if yang lainnya. Bentuk penulisan pernyataan Nested if adalah :

if(kondisi 1){if(kondisi 1-1){statement 1.1;}else{statement 1.2;}}else{if(kondisi 2-1){statement 2.1;}else{statement 2.2;

Page 13: Laporan Java

}}

Kesimpulan:Pernyatan Nested If-Else memiliki pengertian,

"Jika kondisi 1 bernilai benar, dan jika kondisi 1-1 bernilai benar, maka akan mengerjakan statement 1.1" Apabila kondisi 1-1 bernilai salah, maka akan mengerjakan statement 1.2".

"Jika kondisi 1 bernilai salah, dan jika kondisi 2-1 bernilai benar, maka akan mengerjakan statement 2.1" Apabila kondisi 2-1 bernilai salah, maka akan mengerjakan statement 2.2".

Pernyataan switch

Penyataan percabangan kedua yang dimiliki Java adalah switch. Pernyataan switch lebih jarang digunakan, tetapi sering bermanfaat apabila kita ingin menuliskan percabangan multi arah.

Pernyataan switch memiliki bentuk sebagai berikut

switch (ekspresi) { case nilai1: perintah1 break; case nilai2: perintah2 break; case nilai3: perintah3 break; default: perintah_lain}

Di sini pernyataan switch akan mencari nilai ekspresi yang sesuai dengan nilai-nilai yang didaftarkan pada pernyataan case. Jika salah satu nilai ditemui, maka program akan melompat ke cabang case tersebut dan melakukan perintah yang terdapat di sana. Jika tidak ditemui, maka program akan melompat ke perintah yang terdapat pada pernyataan default.

Catatan ekspresi hanya bisa berbentuk nilai bilangan bulat (int, short, dan sejenisnya) atau karakter, sehingga kita tidak bisa menggunakan switch untuk mengevaluasi ekspresi yang berbentuk String.

Page 14: Laporan Java

Pernyataan break di atas sebetulnya tidak harus selalu ada. Tetapi, perintah break di sini memerintahkan komputer agar segera keluar dari blok switch apabila perintah tersebut telah selesai dilaksanakan.

Apabila perintah break tidak diberikan, maka program akan terus mengeksekusi perintah lain meskipun sudah berada di luar nilai yang tertera dalam pernyataan casenya.

Misalnya, lihat kode berikut ini :

switch (N) case 1: System.out.println("Angka tersebut bernilai 1"); break; case 2: case 3: case 4: case 5: System.out.println("Angka tersebut bernilai 2, 3, 4, atau 5"); break; case 6: case 7: case 8: System.out.println("Angka tersebut bernilai 6, 7, atau 8"); break; default: System.out.println("Angka tersebut tidak bernilai 1 - 8");}

Salah satu aplikasi di mana pernyataan switch berguna adalah untuk memproses menu. Menu memiliki beberapa pilihan dan user akan diminta untuk memilih suatu pilihan. Kita dapat menggunakan switch untuk menginstruksikan komputer untuk melakukan tugas tertentu sesuai dengan menu yang dipilih oleh user.

Jika Anda ingat pernyataan main() pada program Java, pernyataan main memiliki parameter String[] args, di mana args merupakan argumen yang diberikan pada saat program dijalankan melalui konsol. Biasanya argumen yang diberikan berupa opsi bagaimana program harus dilaksanakan. Di sini pernyataan switch juga berguna untuk memilih bagaimana program akan berjalan.

Jika Anda terbiasa atau pernah bergaul dengan Linux, maka tidak asing untuk menemukan perintah pada Linux seperti "ls -l" atau "tar xfz blabla". Di sini ls atau tar adalah nama program dan "-l" atau "xfz blabla" adalah argumen yang diberikan pada saat program dijalankan.

Pernyataan kosongPernyataan kosong sebenarnya merupakan blok kosong, atau sama dengan {} tanpa perintah apa-apa di dalamnya. Dalam Java, pernyataan kosong juga berarti tanda ; sehingga apabila Anda menulis kode seperti

if (x > 0);

Page 15: Laporan Java

perintah1

maka perintah1 akan tetap dilaksanakan walaupun x <= 0.

Perintah kosong sering merupakan sumber kesalahan dan salah satu fitur yang sulit untuk dicari kesalahannya pada saat debugging. Misalnya perintah berikut

for (i = 1; i <= 10; i++); System.out.println("hallo");

Anda berharap untuk mencetak kata hallo 10x di layar, pada kenyataannya hanya 1 hallo yang dicetak. Kenapa? Karena tanda ";" setelah for menyatakan bahwa program tidak melakukan apa-apa di dalam perulangan. Perintah System.out.println("hallo") tidak berada di dalam perulangan for, sehingga perintah ini hanya dijalankan 1x saja.

Pernyataan-pernyataan lainHingga saat ini kita sudah membahas hampir semua pernyataan yang Java sediakan. Ada beberapa yang akan kita bahas kemudian, tetapi pernyataan-pernyataan ini merupakan pernyataan lanjutan Java, seperti return yang digunakan untuk membuat subrutin sendiri, atau try...catch dan throw untuk mengontrol alur kesalahan apabila ditemui di tengah program (atau dengan kata lain eksepsi atau pengecualian), dan synchronized untuk mengatur kontrol untuk multi-threading.

Page 16: Laporan Java

Objek, Metode Instansi dan Variable InstansiPemrograman berorientasi objek bermaksud untuk memecahkan masalah programming

mirip dengan cara berfikir manusia dan bagaimana manusia berinteraksi dengan dunia. Kita telah melihat bagaimana masalah programming dipecahkan dengan membaginya menjadi instruksi-instruksi kecil yang dirangkai menjadi suatu kesatuan tugas. Cara ini disebut juga dengan pemrograman berdasarkan prosedur.

Pada pemrograman berorientasi objek, kita membagi masalah pemrograman berdasarkan objek atau "sesuatu" benda. Objek ini diibaratkan seperti makhluk hidup, yaitu memiliki ciri-ciri fisik dan juga perilaku. Dalam pemrograman berorientasi objek, ciri-ciri fisik ini disebut juga sebagai atribut, pada dasarnya berisi informasi tentang objek tersebut. Sedangkan perilaku disebut sebagai metode, yaitu bagaimana suatu objek bertindak atau melakukan sesuatu.

Dengan cara ini diharapkan pemrograman berorientasi objek merupakan pemrograman yang lebih alami dibandingkan dengan pemrograman berorientasi prosedur, karena cara fikir kita sudah terbiasa dengan bagaimana kita berinteraksi dengan dunia.

Sampai tingkat tertentu, PBO hanya merubah cara pandang programmer. Objek dalam kaitannya dengan dasar pemrograman adalah gabungan dari variabel (dalam hal ini atribut) dan subrutin (yaitu metode) yang berinteraksi dengan variabel pada objek.

Banyak bahasa pemrograman lain yang juga mendukung konsep PBO, akan tetapi Java merupakan bahasa yang mendukung penuh PBO, di antaranya karena Java memiliki beberapa fitur penting yang berbeda dari bahasa standar. Untuk menggunakan fitur ini, kita harus mengubah cara pandang kita terlebih dahulu.

Objek terkait erat dengan kelas. Kita telah bahas dan mencoba beberapa contoh kelas pada bab-bab sebelumnya. Seperti kita lihat pula bahwa kelas memiliki variabel dan subrutin.

Jika objek juga memiliki variabel dan subrutin, lalu apa bedanya dengan kelas? Lalu mengapa kita harus memiliki cara pandang berbeda dengan cara kita melihat kelas? Sepertinya apabila kita lihat contoh-contohnya sebelumnya, perbedaannya hanya menghilangkan kata "static" dari deklarasi variabel dan subrutinnya, khan?

Seperti disebutkan sebelumnya bahwa kelas mendeskripsikan suatu objek, atau lebih tepatnya, bagian non "static" mendeskripsikan suatu objek. Mungkin bahasa biologi, kelas adalah species, sedangkan objek merupakan individu. Human sapiens (nama biologi manusia) adalah kelas, sedangkan Anda, saya, ibu, bapak, pak hansip adalah objek. Masing-masing dari kita memiliki "blueprint" atau cetak biru yang sama, tetapi kita memiliki ciri-ciri yang berbeda, rambut, mata, telinga, tinggi badan, berat badan, dan juga perilaku kita saat makan, minum, belajar, dan lain-lain.

Dalam sudut pandang pemrograman, kelas digunakan untuk menciptakan suatu objek. Atau dengan kata lain, kelas adalah pabrik pembuat objek. Bagian non-statik dari suatu kelas

Page 17: Laporan Java

adalah bagian yang memuat detail suatu objek, yaitu apa isi variabel dan metodenya. Perbedaan kelas dan objek adalah : Objek diciptakan dan dihancurkan ketika program berjalan, sehingga kita bisa memiliki beberapa objek sekaligus.

Kita lihat contoh sederhana, dimana kelas sederhana digunakan untuk menggabungkan beberapa variabel statik. Misalnya

class DataPenduduk { static String nama; static int umur;}

Pada program yang menggunakan kelas ini, hanya ada satu kopi dari setiap variabel DataPenduduk.nama dan DataPenduduk.umur. Hanya akan ada satu penduduk, karena kita menyimpan data tersebut sebagai data statik, yang artinya hanya satu tempat di memori di mana data tersebut disimpan. Kelas DataPenduduk dan variabel isinya akan ada selama program tersebut berjalan.

Sekarang kita lihat kode berikut yang memiliki variabel non-statik:

class DataPenduduk { String nama; int umur;}

Dalam hal ini tidak ada lagi yang variabel DataPenduduk.nama dan DataPenduduk.umur, karena nama dan umur bukan anggota statik kelas DataPenduduk. Jadi, tidak ada yang bisa kita lakukan dengan kelas ini sama sekali, kecuali membuat objek dari kelas ini.

Setiap objek akan memiliki variable sendiri yang dinamakan "nama" dan "umur". Kita bisa membuat banyak "penduduk" karena kita bisa membuat objek untuk setiap penduduk. Misalnya setiap kali seseorang dilahirkan, kita bisa membuat objek penduduk baru. Atau jika seseorang meninggal dunia, kita bisa hapus objek tersebut.

Suatu sistem yang terdiri dari kumpulan objek digunakan untuk memodelkan apa yang terjadi di alam nyata. Kita tidak bisa membuat beberapa objek dengan menggunakan variabel statik.

Contoh lainnya adalah pada GUI. Bayangkan kita memiliki beberapa tombol, misalnya tombol OK, Cancel dan Apply. Masing-masing tombol ini memiliki kelas yang sama akan tetapi apa yang dilakukan tombol ini berbeda-beda. Teks yang ditampilkan (OK, Cancel atau Apply) merupakan variabel masing-masing objek.

Suatu objek yang diciptakan dari suatu kelas disebut instansi dari kelas tersebut. Variabel yang dimiliki oleh objek disebut variabel instansi. Sedangkan subrutinnya disebut . (Dalam PBO subrutin disebut metode)

Page 18: Laporan Java

Misalnya dalam kelas DataPenduduk di atas, kemudian kita buat suatu objek dari kelas ini, maka objek yang diciptakan disebut instansi dari kelas DataPenduduk, "nama" dan "umur" adalah variabel instansi di dalam objek tersebut.

Penting untuk diingat bahwa kelas suatu objek menentukan tipe data dari variabel instansi, akan tetapi isi datanya sendiri tidak disimpan di dalam kelas, akan tetapi di dalam objek yang diciptakan, sehingga setiap objek akan memiliki data masing-masing.

Begitu juga dengan metode instansi, misalnya pada kelas tombol, kita memiliki metode yang dinamakan klik(). Masing-masing tombol akan melakukan tugas berbeda-beda tergantung dari objeknya.

Seperti kita lihat di sini bahwa bagian statik dan non-statik dari suatu kelas merupakan hal yang sama sekali berbeda. Banyak kelas yang hanya memiliki anggota statik, atau hanya memiliki anggota non-statik. Akan tetapi kita juga bisa mencampur keduanya dalam suatu kelas. Variabel anggota statik suatu kelas juga bisa disebut variabel kelas dan metode anggota statik suatu kelas juga bisa disebut metode kelas, karena mereka adalah milik kelas dan bukan milik objek yang diciptakan dari suatu kelas.

Sekarang kita gunakan contoh yang lebih real. Kita akan buat versi sederhana dari kelas Murid, dimana kita akan menyimpan informasi tentang murid yang terdaftar pada suatu sekolah.

class Murid { String nama ; // nama murid double nilai1, nilai2, nilai3; // nilai ulangan murid tersebut double hitungRataRata() { // hitung rata-rata nilai ulangan return (nilai1 + nilai2 + nilai3) / 3; }}

Kita lihat bahwa semua anggota kelas tersebut bukan anggota statik, artinya kelas ini hanya bisa digunakan untuk membuat objek. Definisi kelas ini artinya bahwa di dalam objek yang akan diciptakan, akan ada variabel instansi yang bernama nama, nilai1, nilai2, dan nilai3, dan juga metode instansi yang bernama hitungRataRata(). Setiap murid memiliki nilai rata-rata yang berbeda-beda. (Makanya ini disebut perilaku suatu objek berbeda-beda).

Dalam Java, kelas merupakan tipe data, yaitu mirip dengan tipe data bawaan seperti int atau boolean. Jadi nama kelas bisa digunakan untuk menentukan tipe suatu variabel dalam deklarasi pernyataan, dalam parameter formal dan juga dalam tipe keluaran suatu fungsi. Misalnya, program mendefinisikan seorang murid dengan pernyataan seperti :

Murid amir;

Akan tetapi membuat variabel seperti di atas TIDAK menciptakan objek. Initinya, ini adalah hal Yang Sangat Amat Penting :

Page 19: Laporan Java

Dalam Java, tidak ada variabel yang bisa menyimpan objek. Variabel hanya bisa menyimpan referensi (alamat di memori) suatu objek. Komputer akan menggunakan referensi ini untuk mencari objek di dalam memori.

Objek diciptakan dengan pernyataan new, yang bertugas menciptakan objek kemudian mengembalikan referensi ke objek yang sudah diciptakan. Misalnya amir adalah variabel dengan tipe Murid seperti dideklarasikan di atas, maka pernyataan berikut :

amir = new Murid();

akan membuat objek yang merupakan instansi dari kelas Murid. Variabel amir akan menyimpan referensi ke objek yang baru saja diciptakan.

Sekarang anggap variabel amir merujuk pada objek yang diciptakan dari kelas Murid. Dalam objek tersebut terdapat variabel nama, nilai1, nilai2, dan nilai3. Variabel instansi ini bisa dipanggil dengan amir.nama, amir.nilai1, amir.nilai2, dan amir.nilai3. (Ingat aturan penulisan nama lengkap, akan tetapi karena kelas ini tidak memiliki anggota statik, dan hanya objek yang diciptakan dari kelas ini memiliki variabel atau metode ini, maka nama lengkapnya diturunkan dari nama objek yang memilikinya).

Misalnya, program berikut :

System.out.println("Hai, " + amir.nama + " . Nilai Anda adalah : ");System.out.println(amir.nilai1);System.out.println(amir.nilai2);System.out.println(amir.nilai3);

Program di atas akan mencetak nama dan nilai-nilai yang disimpan oleh objek amir. Begitu juga kita bisa menghitung rata-rata pada suatu objek dengan menggunakan amir.hitungRataRata(). Sehingga untuk menghitung rata-rata murid tersebut, bisa kita perintahkan dengan:

System.out.println("Nilai rata-rata Anda adalah : " + amir.hitungRataRata());

Lebih umum lagi, kita bisa menggunakan amir.nama seperti layaknya variabel bertipe String, artinya kita bisa menghitung jumlah karakter dengan menggunakan amir.nama.length().

Kita juga bisa membuat variabel seperti amir untuk tidak menunjuk atau memiliki referensi ke obek mana pun. Dalam hal ini kita sebut bahwa objek amir berisi referensi kosong (null reference). Referensi kosong ini ditulis dalam Java dengan ekspresi "null". Dan kita bisa menyimpan nilai "null" pada variabel amir dengan perintah :

amir = null;

Dan kita juga bisa uji apakah amir berisi referensi kosong dengan perintah

Page 20: Laporan Java

if (amir == null) . . .

Jika suatu variabel berisi referensi kosong, maka tentu saja, kita tidak bisa mengambil variabel instansi dan menjalankan metode instansi, karena tidak ada objek yang dirujuk pada variabel tersebut. Misalnya jika variabel amir berisi null, maka kita tidak bisa mengambil variabel amir.nilai1.

Jika program kita mencoba mengakses referensi kosong secara ilegal, maka di tengah-tengah jalannya program, program akan menampilkan pesan kesalahan "null pointer exception".

Mari kita lihat beberapa pernyataan yang bisa digunakan dengan objek :

Murid mrd1, mrd2, mrd3, mrd4; // mendeklarasikan 4 variabel yang bertipe Muridmrd1 = new Murid(); // membuat objek baru dari kelas Murid, kemudian menyimpan referensinya pada variabel mrd1mrd2 = new Murid(); // membuat objek baru dari kelas Murid, kemudian menyimpan referensinya pada variabel mrd2mrd3 = mrd1; // menkopi „referensi" yang disimpan pada mrd1 ke mrd3mrd4 = null; // menyimpan referensi kosong ke mrd4 mrd1.nama = "Ahmad Surahmat"; // mengisi nilai variabel instansimrd2.nama = "Hamid Samsudin";

Setelah komputer menjalankan program tersebut, maka kira-kira memori komputer akan tampak seperti gambar berikut :

Page 21: Laporan Java

Gambar tersebut menunjukkan variabel dalam kotak-kotak kecil dengan nama variabelnya. Objek ditunjukkan dalam kotak dengan pojok bulat. Ketika suatu variabel berisi referensi ke suatu objek, maka nilainya adalah seperti panah yang menunjuk pada objek tersebut.

Variabel mrd4 bernilai null, sehingga tidak menunjuk ke mana-mana. Panah dari mrd1 dan mrd3 menjunjuk pada objek ang sama. Ini merupakan Hal Yang Sangat Penting :

Jika isi variabel suatu objek diberikan kepada variabel yang lain, maka yang dikopi hanya referensinya saja. Isi objek tidak pernah dikopi.

Ketika pernyataan "mrd3 = mrd1;" dieksekusi, tidak ada objek baru yang dibuat. Akan tetapi mrd3 akan merujuk pada alamat yang sama seperti mrd1. Konsekuensinya mungkin sedikit mengejutkan. Misalnya variabel mrd1.nama dan mrd3.nama menunjuk pada variabel yang persis sama, maka apabila mrd1.nama disi dengan "Juju Juminten", maka mrd3.nama juga berisi "Juju Juminten".

Sekali lagi, variabel tidak berisi objek, akan tetapi berisi referensi ke suatu objek.

Kita bisa menguji beberapa objek dengan operator == dan != untuk menguji kesamaan dan ketidaksamaan. Akan tetapi yang dicek lagi-lagi bukan isi objek, melainkan alamat memori dimana objek tersebut dijadikan referensi. Jika alamat referensi di memori sama, artinya kedua

Page 22: Laporan Java

objek tersebut merujuk pada alamat memori yang sama. Ini berarti perubahan yang dilakukan pada variabel yang satu akan ikut mempengaruhi variabel yang lain.

Untuk menguji isinya, maka isinya harus dibandingkan satu per satu, yaitu misalnya dengan "mrd3.nilai1 == mrd1.nilai1 && mrd3.nilai2 == mrd1.nilai2 && mrd3.nilai3 == mrd1.nilai3 && mrd3.nama.equals(mrd1.nama)"

Seperti telah disebutkan sebelumnya bahwa String juga merupakan objek. Sehingga membandingkan String yang satu dengan String yang lain dengan menggunakan tanda == adalah membandingkan apakah alamat memori yang ditunjuk oleh String yang satu sama dengan alamat memori yang ditunjuk oleh String yang lain. Ingat == pada objek bukan membandingkan isi objek, tetapi membandingkan alamat memori yang ditunjuk oleh variabel tersebut. Untuk membandingkan isi String, kita dapat menggunakan String.equals() di mana parameternya adalah objek String yang akan dibandingkan. Metode ini akan membandingkan karakter per karakter dari kedua String.

Misalnya, variabel salam berisi String "Selamat". Untuk menguji apakah variabel salam berisi "Selamat", bisa kita gunakan perintah

salam.equals("Selamat")

Konsekuensi lainnya adalah apabila suatu variabel merujuk pada objek yang dideklarasikan sebagai final. Ini berarti nilai variabel itu tidak bisa berubah setelah diinisialisasi, sedangkan isi variabel itu adalah rujukan ke alamat memori tempat objek berada. Dengan demikian variabel tersebut akan selalu menunjuk pada alamat memori yang sama. Akan tetapi hal ini tidak berlaku untuk objek itu sendiri. Apabila ada variabel lain yang tidak "final" tetapi menunjuk pada alamat memori yang sama, kemudian variabel ini mengubah isi objek tersebut, maka isi objek tersebut bisa berubah.

Kita boleh saja untuk menulis perintah sebagai berikut.

final Murid mrd = new Murid();murid.nama = "Ahmad Basir";

Perhatikan pada kode di atas bahwa isi objek bisa diubah. Akan tetapi jika kita mencoba menulis seperti ini

Murid mrd99 = new Murid();mrd = mrd99; // ILEGAL, karena mrd adalah variabel final

Page 23: Laporan Java

Packages, Import dan Interfaces

1. PackagesPackages dalam JAVA berarti pengelompokan beberapa class dan interfacedalam satu unit. Fitur ini menyediakan mekanisme untuk mengatur class daninterface dalam jumlah banyak dan menghindari konflik pada penamaan.

Mengimport Packages

Supaya dapat meggunakan class yang berada diluar package yang sedangdikerjakan, Anda harus mengimport package dimana class tersebut berada.Pada dasarnya, seluruh program JAVA mengimport package java.lang.*,sehingga Anda dapat menggunakan class seperti String dan Integer dalamprogram meskipun belum mengimport package sama sekali.Penulisan import package dapat dilakukan seperti dibawah ini :import <namaPaket>;Sebagai contoh, bila Anda ingin menggunakan class Color dalam packageawt, Anda harus menuliskan import package sebagai berikut :import java.awt.Color;import java.awt.*;Baris pertama menyatakan untuk mengimport class Color secara spesifikpada package, sedangkan baris kedua menyatakan mengimport seluruh classyang terkandung dalam package java.awt.Cara lain dalam mengimport package adalah dengan menuliskan referensipackage secara eksplisit. Hal ini dilakukan dengan menggunakan namapackage untuk mendeklarasikan object sebuah class :java.awt.Color color;

2. ImportPada sebuah file .java, dibutuhkan referensi file-file mana saja yang menjadireferensi dari class-class, method-method, ataupun segala sesuatu yangdigunakan dalam sebuah program java yang ditulis dalam sebuah file .javatersebut. aturan penulisan pada umumnya ditulis di bawah penulisanpackage, contohnya adalah sebagai berikut :import java.io.RandomAccessFile;import java.net.*;

Page 24: Laporan Java

3. InterfaceMendeklarasikan sebuah interface pada dasarnya mendeklarasikan sebuahclass tetapi sebagai penggantinya menggunakan kata kunci class, kata kunciinterface digunakan. Berikut syntaxnya.<interfaceDeclaration> ::=<modifier> interface <name> {<attributeDeclaration>*[<modifier> <returnType> <name>(<parameter>*);]*}Anggotanya adalah public ketika interface dideklarasikan public.

Petunjuk Penulisan Program:Secara mutlak atribut adalah static dan final dan harus diinisialisasi dengannilai konstanta. Seperti mendeklarasikan class teratas, acces modifier yangvalid hanyalah public dan package(yakni jika tidak ada acces modifiermengawali kata kunci class).Class mengimplementasikan sebuah interface yang telah ada denganmenggunakan kata kunciimplements. Class ini dibuat untuk mengimplementasikan semua methodinterface. Sebuah class boleh mengimplementasikan lebih dari satu interface.

Contoh berikut menunjukkan bagaimana mendeklarasikan danmenggunakan sebuah interface.interface MyInterface {void iMethod();}class MyClass1 implements MyInterface {public void iMethod() {System.out.println("Interface method.");}void myMethod() {System.out.println("Another method.");}}class MyClass2 implements MyInterface {public void iMethod() {System.out.println("Another implementation.");}}class InterfaceDemo {public static void main(String args[]) {

Page 25: Laporan Java

MyClass1 mc1 = new MyClass1();MyClass2 mc2 = new MyClass2();mc1.iMethod();mc1.myMethod();mc2.iMethod();}}Output Program:C:\Documents and Settings\Administrator\My Documents>javacInterfaceDemo.javaC:\Documents and Settings\Administrator\My Documents>javaInterfaceDemoInterface method.Another method.Another implementation.

Page 26: Laporan Java

OVERLOADING DAN OVERRIDING

OVERLOADING

• Overloading adalah suatu keadaan dimana beberapa method memiliki nama yang sama tetapi fungsionalitasnya berbeda• Contoh :

– titik(x,y);– titik(x,y,z);

• Ciri Overloading :– Nama method harus sama– Daftar parameter harus berbeda– Return type boleh sama, boleh berbeda

OVERRIDING

• Overriding menyatakan suatu keadaan dimana method pada subclass menolakmethod pada parent class-nya.• Ciri dari overriding :– Nama method harus sama– Daftar parameter harus sama– Return type harus sama

CONTOH:

class Parent {public void Info() {System.out.println(“ini class parent”);}class Child extends Parent {public void Info() {System.out.println(“ini class child”);}

Melakukan Overloading pada Method

import java.awt.Point;public class Segiempat {int x1 = 0;int y1 = 0;int x2 = 0;int y2 = 0;public void buatSegiempat(int x1, int y1, int x2, int y2) {

Page 27: Laporan Java

this.x1 = x1;this.y1 = y1;this.x2 = x2;this.y2 = y2;}public void buatSegiempat(Point topLeft, Point bottomRight) {x1 = topLeft.x;y1 = topLeft.y;x2 = bottomRight.x;y2 = bottomRight.y;}public void buatSegiempat(Point topLeft, int w, int h) {x1 = topLeft.x;y1 = topLeft.y;x2 = (x1 + w);

y2 = (y1

void cetakSegiempat(){System.out.print("Segiempat: <" + x1 + ", " + y1);System.out.println(", " + x2 + ", " + y2 + ">");}public static void main(String[] arguments) {Segiempat rect = new Segiempat();System.out.println("Buat segiempat dengan koordinat (25,25)dan (50,50)");rect.buatSegiempat(25, 25, 50, 50);rect.cetakSegiempat();System.out.println();System.out.println("Buat segiempat dengan point (10,10) danpoint (20,20):");rect.buatSegiempat(new Point(10,10), new Point(20,20));rect.cetakSegiempat();System.out.println();System.out.print("Buat segiempat dengan 1 point (10,10),koodinat (50,50)");rect.buatSegiempat(new Point(10,10), 50, 50);rect.cetakSegiempat();

}}

Page 28: Laporan Java

KESIMPULAN

Java merupakan bahasa pemrograman yang berorientasi objek. Dapat membuat seluruh bentuk aplikasi dan dapat dijalankan pada berbagai platform sistem operasi.

Pernyataan if ada tiga bentuk yaitu pertama if sederhana yaitu sebarang ekspresi yang menghasilkan nilai benar saja, if-else yaitu pernyataan yang dijalankan sewaktu kondisi bernilai benar atau bernilai salah ketiga pernyataan if bersarang yaitu suatu pernyataan if bisa berada dalam pernyataan if. Sedangkan switch merupakan suatu perintah yang memungkinkan untuk melakukan sebuah tindakan berbeda terhadap sebuah kemungkinan nilai

Program java berobjekkan class, metfod, construktor dan modifier dan tidak hanya terstruktur pada satu objek saja bahkan bisa digabungkan dalam satu kode dan objek ini sangata penting dalam pembuatan pemrograman java.

Program java menggunakan package dan import untuk mengelompokkan file class, sehingga memudahkan user dalam menggunakannya.

Overriding dan overloading digunakan untuk mendefenisikan kembali method class induk secara total dan berfungsi untuk menambahkan behavior tertentu pada method class induk dan ini sangat penting dalam pemrograman java.