Pemrograman Berorientasi Objek
Elemen Dasar Java
A. Konsep Dasar Pemrograman Berorientasi Objek
Java adalah salah
satu Bahasa pemrograman yang menggunakan paradigma pemrogramana berorientasi
objek. Pemrograman berorientasi berorientasi objek menjadikan object dan class
sebagai konsep utamanya. Jadi dalam pemrograman java, object, dan class menjadi
suatu yang paling sentral. Java adalah salah satu Bahasa pemrograman yang tidak
tergantung pada operatingnya system (operating system independent), yang
sekarang mulai popular di kalangan programmer.
B. Konsep Dasar Variabel
Variabel adalah satuan yang dipakai oleh program sebagai basis utuk penyimpanan data. Penggunaan variable harus terlebih dahulu dideklarasikan nama dan tipenya. Tipe dasar (primitive) dalam java adalah sebagai berikut :
Short
Tipe
variable short adalah bilangan bulat 16 bit yang mempunyai jangkauan nilai dari
-2^15 sampai dengan 2^15-1 atau dari -32768 sampai dengan ±32767.
Type
variable int adalah bilangan bulat 32 bit dengan jangkauan nilai dari -2^31
sampai dengan 2^31-1.
Long
Tipe
variable long adalah bilangan bulat 64 bit dengan jangkauan nilai -2^63 sampai
dengan 2^63-1.
Contoh
:
Long
11 = 5456469;
Long
12 = 0x0ea73aaea4f25d23;
Byte
Type
variable byte adalah bilangan bulat 8 bit yang mempunyai jangkauan nilai dari
2^7 sampai dengan 2^7-1 atau dari -128 sampai dengan +127.
Contoh
:
Byte
b1 = 50;
Byte
b2 b2 = 120;
Byte
b3 =127;
Float
Float
adalah bilangan real (pecahan, dengan format floating point yang menggunakan
tempat penyimpanan 32 bit. Tipe float mempunyai jangkauan nilai dari 3.4e-038
sampai dengan 3.4e+038. Ketelitian float sampai 10 angka dibelakang koma.
Contoh
:
Float
fl;
Float
f2 = 0.13f;
Float
f3 = 0.34f;
Perhatikan
bahwa angka float ditambah suffix huruf f yang berarti float. Hal ini
diperlukan karena notasi default untuk tipe variable double.
Double
Double
adalah bilangan reall (pecahan) dengan presisi 2 kali lebih baik dari variable
float.
Double
membutuhkan 64 bit untuk penyimpananya yang mempunyai jangkauan nilai dari
1.7e-308 sampai dengan 1.7e+308.
Char
Tipe
variable char menyimpan kode Unicode (karakter internasional), karena itu
membutuhkan 16 bit.
Contoh
:
Char
c;
Char
c1=’c’;
Char
c5=’\t’;
Boolean
Variable
Boolean berisi dua nilai, yaitu true dan false. Variable Boolean dapat
diperoleh dari operasi logika seperti perbandingan dua bilangan, perbandingan
dua string, dan lain-lain.
Casting
Casting
adlah Teknik konversi suatu data tip eke data tipe yang lain secara ekspisit.
Yang menerangkan kepada compilet bahwa terjadi perubahan tipe variable,
sehingga hasilnya harus dikonversi ke tipe variable tersebut.
Contoh
:
Int
I;
Double
d;
Byte
b;
I
= 250;
D
= I; //tidak terjadi kesalapahaman, penyesuaian otomatis
B
= I; // terjadi kesalahan, tipe tidka compatible
B = (byte); //
tidak terjadi kesalahan, casting dari integer ke byte.
C. Konsep Dasar Array
Array
adalah sekumpulan data yang sama tipenya. Isi array dapat diakses melalui index
yang dimuali dari 0 sampai dengan jumlah_elemen_array-i.
Tipe_variable nama_array[];
Contoh
:
Int MySrr[];
Pada
saat didefinisikan (dideklarasikan), jumlah elemen array belum diketahui.
Jumlah elemen yang sesungguhnya diciptakan dengan 2. Array MyArr dapat diakses
dengan cara sbb;
MyArr[0] = 340;
MyArr[1] = -129;
MyArr[2] =
499;
Array
dapat diinisialisasi secara otomatis pada saat pendeklarasian dengan cara sbb :
Int MyArr[] = {340,-129,499};
Pada
saat runtime jika indeks array yang diakses melebihi jumlah elemen yang ada
maka java akan mengeluarkan pesan kesalahan berupa kesalahan runtime error.
Array
Multidimensi
Kita
dapat mendeklarasikan array lebih dari satu dimensi. Sebagai contoh kita akan
membahas array dua dimensi. Untuk array berdimensi lebih dari dua dapat kita
analogikan dengan array dimensi dua. Contoh pendeklarasian array dua dimensi :
Double Matrik[][];
Menciptakan
element array dua dimensi
Matrik = new double [2][3];
Atau
dengan cara diciptakan satu persatu (per baris)
Matrik = new double [2][ ]; // dimensi
berikutnya belum disiapkan
Matrik[0] = new doube[3];
Matrik[1] = new double[3];
Matrik[0][0] = 9.5;
Matrik[0][2] = 10.0;
Matrik[1][2] = 340.9;
Atau
kita dapat menginisialisai array multi dimesi pada saat pendeklarasian dengan
cara :
Double matrik [ ] [ ] = {
{20.5, 10.9, 309.0}
{-8.8, 98.7, 100.0}
D. Kerangka Program Java
Program dalam java
dibagi-bagi menjadi class-class. Oleh karena itu program dalam java dimulai
degan kata kunci class atau public class. Lihat Contoh Berikut :
Program
selalu dimulai dengan pembuka blok yaitu kurung kurawal buka, dan diakhiri
dengan penutup blok yaitu kurung kurawal tutup. Perlu juga diperhatikan bahwa
class dalam java yang bersifat public harus disimpan dalam file sama dengan
nama class dan ditambah ekstensi java
dalam hal ini bersifat case sensitive. Jadi program diatas harus disimpan dalam
file yang bernama Hello Java.
Prasyarat
sebuah program aplikasi (yang bias dieksekusi) dalam java adlah mempunyai
metode (fungsi) sebagai entry point (pintu masuk) yang bernama main () untuk memulai eksekusi.
Main
()
adlah sebuah metode dengan argument array dari String yang bernama argv. Klasifikasi dari metode main ()
adalah public static yang artinta bias diakses oleh metode diluar class
tersebut. Sedangkan kata kunci void
menjelaskan bahwa metode main () tidak memberikan nilai balik (return value) ke
pemanggil.
Perintah
(statement) System.out.Println(),
merupakan perintah untuk mencetak string yang menjadi argument ke layer dan
seteleah pencetakan akan ganti baris. Perlu diperhatikan bahwa antara satu
petintah yang ain dipisah dengan semi colom (;).
Program
dalam java yang kita tulis harus kita compile dengan java compiler engan
perintah :
C:\>javac
Hello.java
Javac
adalah
program java compiler, sedangkan Hello java adlah program yang akan di compile.
Jika proses compile berjalan lancer maka akan dibuat file sesuai dengan nama
file yang di compile ditambah dengan ekstensi class. Jadi proses compile di atas akan menghasilkan file cass yang
bernama Hello.class. File class yang
dihasilkan dari proses kompilasi dapat kita eksekusi dengan java interpreter
dengan perintah :
C:\>java
Hello
Setelah
File Hello.class dieksekusi maka akan muncul di monitor :
Helo
java Progremmer UMSIDA
Komentar
Pemberian
komentar dalam program adlah penting karena akan memperjelas alur program serta
akan memberikan dokumentasi yang jelas.
Pemberian
komentar dalam java dapat dilakukan dengan memeberikan karakter //. Semua teks
setelah // akan dianggap komentar dan diabaikan dalam proses kompilasi sampai
dengan garis baru (new line). Contoh :
System.out.rintln(“Hello”) //mencetak kata hello
Salian
dengan tanda //, penulisan komentar juga dapat menggunakan spasang tanda /* dan
*/. Jadi semua teks diantara tanda /* dan tanda */ adalah dianggap komentar dan
diabaikan dalam proses kompilasi. Contoh :
/*
perintah di bawah ini akan mencetak teks Hello java programmer */
System.out.println(“Hello
java programmer”);
Kata
Kunci
Program java
mempunyai beberapa kata kunci yang tidak boleh kita gunakan sebagai nama
variable, nama class dan yang lainnya. Kata kunci tersebut adalah :
Operator
dan Control Flow adalah jantung dari program Control Flow mempunyai kemampuan
untuk mengendalikan jalan dari program. Tanpa operator dan Control Flow,
program tidak akan mampu melakukan banyak hal. Ada beberapa jenis Operator dan
Control Flow dalan Java, yaitu :
1. Aritmatika
Operator
Java
mempunyai operator aritmatika seperti + (penjumlahan), - (pengurangan),
*(perkalian), / (pembagian) dan % (modulus). Operator – operator ini beraku
seperti dalam operasi aritmatika. Dalam java juga dimungkinkan untuk
penyederhanaan penulisan operator seperti yang terlihat di bawah ini ;
Int a, b, c, d, e,
a = 15; b = 10; //=80;
d=100; e=20;
a+ = 5; // sama dengan a
= a+5
b- = e; // sama dengan b
= b-e
c* = b; //sama dengan c =
c*b
d/ = 4; // sama dengan d
= d/4
e% = 3; // sama dengan e
=e%3, hasilnya = 2
d++; // sama dengan d =
d+1 (increment)
2. Logika
Operator
Ada
tiga logika Operator dalam java yaitu :
&& Logika /and
|| Logika
Or
| Logika
Not
Ketiga
operator tersebut dioperasikan terhadap Boolean data tipe yang menghasilkan
Boolean data type juga (true atau false).
3. Bit
per bit operator
Variable
bertipe long, int, short, byte dan char dapat mempunyai operator yang
dioperasikan langsung kesusunan binernya (bit atau bit).
Seperti
halnya aritmatika operator, Bit per bit operator juga bias dilakukan
penyederhanaan penulisannya.
1.
Relasional
Operator
relasional digunakan untuk membandingkan dua nilai. Hasil dari perbandingan
tersebut adalah data tipe Boolean (true atau false).
Tipe
variable di java seperti short, int, long, float, double, Boolean, dan
Character dapat dibandingkan satu dengan yang lainnya.
Contoh
:
Char c = ‘*’;
Int I = 0x2a;
Boolean b;
b = c = = i;
1.
Prioritas
Setiap
operator mempunyai prioritas sendiri – sendiri sehinggi perhitungan matematika
dilakukan sesuai prioritasnya. Lihat contoh dibawah ini :
C = a + b * d;
Akan
dijalankan sesuai prioritas yaitu *,+,=
Dibawah ini diberikan table prioritas dari operator, urutan prioritas dari atas ke bawah. Operator yang sama prioritasnya akan dioperasikan dari kanan ke kiri.
1.
Pertanyaan if
Pertanyaan
if adalah control flow yang paling
sederhana pernyataan ini mengevaluasi suatu ekspresi. Jika ekspresi benar
(true) maka bok pernyataan akan dijalankan. Sebaliknya computer akan melompati
blok pernyataan tersebut. Sintaks dari pernyataan if :
If
(ekspresi)
Pernyataan;
2.
Pernyataan
if-else
Pernyataan
if-else mengevaluasi suatu ekspresi.
Jika ekspresi benar (true) maka blok pernyataan dijalankan. Sebaliknya computer
akan menjalankan blok pernyataan yang lain. Sintaks dari pernyataan if-else:
If(ekspresi)
Pernyataan_1;
Elsa
Pernyataan_2;
3.
Pernyataan
switch, case dan break
Switch
digunakan untuk percabangan (seleksi) lebih dari dua. Ini digunakan untuk
menghindari pergunaan if-else yang berlapis-lapis.
4.
Pengulangan
(Loop)
Pengulangan
dengan while
Alur
program blok while akan dilakukan berulang-ulang selama ekspresi benar (true).
Sintaks dari pengulangan while adalah sbb :
While
(ekspresi)
Permyataan;
Pengulangan dengan do-while
Pengulangan
dengan while pemeriksaan ekspresi dilakukan sebelum pengulangan. Ada kalanya
pengulangan pemeriksaan ekspresi dilakukan setelah pengulangan. Jadi minimal
satu kali pengulangan dilakukan. Pengulangan ini menggunakan do-while,
sintaksnya.
do
pernyataan;
while (ekspresi);
Pengulangan dengan for
pengulangan
dengan for menyerupai while, namun dilengkapi dengan inisialisasi, test kondisi
dan update counter. Jadi sintaks pengulangan dengan for adalah :
for
(inisialisasi_counter ; test_kondisi ; update_counter) {
instruksi;
_ _ _ _ _
};
Inisialisasi_counter
dilakukan sekali pada saat akan dilakukan pengulangan, test_kondisi dipriksa
setiap kali sebelum pengulangan dilakukan, sedangkan update_counter dilakukan
setiap kali selesai pengulangan.
Break, continue
Dalam
pengulangan break digunakan untuk mematahkan (mengakhiri) pengulangan secara
paksa. Sedangkan continue digunakan untuk melanjutkan pengulangan berikutnya
secara paksa dengan mengabaikan perintah dibawah pernyataan continue.
String
String
adalah objek yang terdiri ats deretan karakter. Tidak seperti array dari
karakter, String tidak perlu ditentukan jumlah Panjang karakternya. String
dapat langsung di inisialisasi tanpa kata kunci new, contoh :
String str = “ Hello “;
Str = str + “ Java Programmer “ ;
String
dapat juga diciptakan melalui cara berikut :
Char c_arr [ ] = { ‘h’, ‘e’, ‘l’,
‘0’ );
String s1 = new String {c_arr} ;
String s2 = new String (c_arr, 2, 2)
;
// offset ke 2 sebanyak 2 karakter
Ada
beberapa method daam String yang perlu kita ketahui antara lain :
Int
length ( )
Memberikan
nilai balik (return value) penjang dari actual string.
Char
charAt 9int index)
Memberikan
nilai balik berupa karakter pada posisi index dalam actual string.
Public
class TestString {
Public static void main (String
argv[]) {
String table[ ] =
{“amir”, “Bambang”, “hasan”};
String str = “Ini adalah
# String yang diproses”;
Boolean
found=false;
Int I;
For (I=0;
I<str.length(); I++) {
If
(str.charAt(I) = =”#”) {
Found=true;
Break;
}
}
If (found)
System.out.println(“Posisi
=”+I) ;
}
}
Int
indexOf (char ch)
Memberikan
nilai baik posisi pada String dimana karakter ch berada
Int
indexOf (String s)
Memberikan
nilai balik posisi index pada String dimana string s ditemukan
Int
indexOf (char ch, int starPos)
Int
indexOf (String s, int startPos)
Sama
dengan indexOf sebelumnya, hanya pencarian tidak dimulai dari index 0,
melainkan dari index = startPos
Int
lastIndexOf(char c)
Int
lastIndexOf(char c, int startPos)
Int
lastIndexOf(String s);
Int
lastIndexOf(string s, int startPos)
Method
lastIndexOf ( ) mencari karakter/String pada String yang diberikan, hanya
pencarian dimulai dari kanan ke kiri.
Boolean
equals (String s)
Membandingkan
actual string dengan string s dengan mengabaikan huruf besar maupun huruf
kecil. Jika sama maka akan memeberikan nilai balik true, sebaliknya akan
memberikan nilai balik false.
Strin
substring (int offset)
Memberikan
nilai balik isi actual string dari posisi offset sampai akhir string
String
substring(int offset, int endIndex)
Memberikan
nilai balik si actual string dari posisi offset sampai posisi endIndex
String
toLowerCase( )
Mengubah
string menjadi huruf kecil semua
String
toUpperCase ( )
Mengubah
spasi yang berdekatan dalam string
Char
[ ] getChars(int startPos, int endPos, char buffer[ ], int offset)
Mengambil
karakter dan starPos sampai endPos, dan menyimpannya ke dalam buffer dimulai
dari index = offset.
Int
compareTo(String str)
Membandingkan
String dalam UTF (Unicode Transfer Format) dengan nilai balik 0 bila sama,
negative bila kecil, dan posistif bila lebih besar.
String Tokenizer
Class
String Tokenizer berfungsi untuk membagi string berdasarkan token tertentu.
Class ini sangat membantu untuk mengintrupsikan suatu string ke suatu maksud
tertentu. Contoh yang paling popular adalah membagi kalimat menjadi beberapa
kata. Kita juga membaca data dari file kemudian data tersebut kita uraikan
berdasarkan token tertentu.
Class
Class
merupakan bagian pokok dari pemrogrman Berorientasi Objek (Object Oriented Programming).
Class merupakan cara merakit data-data dan menentukan semua metode yang
diperlukan untuk mengkases menggunakan dan mengubah data-data tersebut. Dalam
java class juga bias dianggap sebagai type dari object.
Setiap
cass memiliki dua hal utama. Yang pertama adalah yang kita sebut
state/atribut/property. State dalam objek tidak lain adalah nilai dari setiap
variable. Bagaimana yang kedua adalah tool atau method yang menentukan utility yang
dimiliki oleh class.
1.
Pendeklarasian
class
Sintaks
pendeklarasian class dalam java adalah
Modifiers class NamaClass {
<class attribute
list>
<class method
list>
}
Modifier
menetukan bagaimana class dapat ditangani pada fase development berikutnya. Ada
tiga jenis modifier dalam class yaitu public, final, abstract dan friendly.
· Public
Dengan menempatkan public
didepan pendeklarasian class, mempunyai arti bahwa class didefinisikan untuk
punlic. Ini berarti class tersebut dapat dipakai atau dikembangkan (extend)
oleh sembarang object.
· Final
Dengan menempatkan final
didepan pendeklarasian class menandakan bahwa class tersebut tidak bias
memiliki subclass (turunan). Dengan kata lain class tersebut tidak bias
dikembangkan.
· Abstract
Dengan menempatkan class
didepan pendeklarasian class, menandakan bahwa kita tidak bias menciptakan
objek dari class tersebut. Class tersebut harus dipakai sebagi super class dari
class lain. Dalam abstract class paling tidak ada satu method yang belum
komplit.
· Friendly
Secara default modifiers class adalah
friendly artinya class tersebut boleh dikembangkan atau dipakai oleh class lain
dalam satu paket (package). Jika kita tidak memberikan modifiers didepan
pendefinisian class maka class bersifat friendly.
<class
attribute list> adalah daftar semua attribute (variable) dari class,
sedangkan <class method list> adalah daftar semua method (fungsi/operasi)
yang bias dilakukan oleh class tersebut.
Sintaks pendefinisian class
attribute :
modifiers data_type nama attribute ;
Sintaks pendefinisian class method :
modifiers return_type nama method (<parameters list>)
Akses
modifiers dalam class attribute maupun class method menentukan bagaimana
aksesbilitas attribute dan method dari class lain. Ada beberapa akses modifiers
yaitu:
· Friendly
Secara default akses
modifiers adalah friendly, yang berarti bahwa attribute/methode bias diakses
oleh class lain dalam satu paket (package).
· Public
Akses modifiers public
membuat attribute/method tersebut dapat diakses oleh pihak luar manapun.
· Private
Akses modifiers private
membuat attribute/method hanya diakses oleh class itu sendiri.
· Protected
Akses modifiers protected
membuat attribute/method hanya dapat diakses oleh class itu sendiri dan class
turunannya (subclassnya).
· Final
Akses modifiers final
membuat attribute/method tersebut tidak boleh diubah pada saat eksekusi, sebab
attribute/method ini tidak boleh diubah maka harus diberi nilai pada saat
pendeklarasian missal final int SIZE 5;
· Static
Akses modifiers static
membuat attribute tersebut mempunyai nilai sama untuk samua objek dari class
tersebut.
2.
Konstruktur
Konstruktur
adalah method dengan property yang unik dan untuk keperluan inisialisasi pada
objek diciptakan. Jadi konstruktur digunakan memberikan nilai kepada attribute
tertentu pada saat objek diciptakan. Konstruktor didefinisikan dengan nama sama
dengan nama class. Konstruktor tidak perlu return typr sebab konstruktor secara
actual dipanggil sebagai method. Konstruktor ini dipanggil pada saat kita
memberikan perintah new.
3.
Inherintance
(Pewarisan)
Inherintance
(Pewarisan) adalah suatu mekanisme yang memungkinkan satu class mewarisi
(memiliki) attribute dan method dari class lain. Mekanisme pewarisan ini
diperlukan untuk mengembangkan class-class yang sudah ada tanpa harus membuka
source code dari class-class tersebut. Class yang mewarisi disebut subclass
sedangkan class yang diwarisi disebut super class. Pewarisan class dalam java
menggunakan sintaks :
modifier<NamaSUbClass>
extends<NamaSuperClass> {
}
4.
Kata
Kunci This
This
adalah referensi yang menunjuk pada objek actual. Nilai this ini menunjukkan
bahwa objek yang dimaksud adalah objek yang sedang aktif itu sendiri. Contoh
penggunaan dari this adalah sbb :
5.
Overriding
Method
Overidding
method adalah suatu mekanisme pewarisan class dimana subclass mendefinisikan
ulang satu atau lebih method (fungsi) yang ada di super calss. Dalam overriding
ini subclass bias mendefinisikan method (fungsi) yang di-override dengan fungsi
yang baru sama sekali, atau menambahi method (fungsi) yang di-override yang
sudah ada dengan fungsional-fungsional yang ain.
Threads
Property unik dari java adalah bahwa Java
memberi suport adanya threads. Threads memperbolehkan kita melakukan banyak hal
pada waktu yang bersamaan. Threads adalah komponen java yang memungkinkan kita
untuk membuat program yang bersifat multitasking programming. Sebenarnya setiap
program dalam java selalu menggunakan paling tidak satu thread.
Kita bisa membuat aplikasi dan class
berjalan dalam threads yang terpisah dengan dua cara, yaitu :
· Mengembangkan
dari class Thread (extending class Thread)
· Mengimplementasikan
Runnable interface
Mengembangkan class Thread
Dengan menggunakan extends Thread,
mekanisme Thread dapat diaplikasikan dengan membuat fungsi run ( )
Untuk melihat concurrency (multitasking)
pada program tersebut tambahkan method sleep( ) untuk actual Thread (current
Thread). Method sleep( ) hanya dapat dilakukan dengan menangkap sinyal
interrupt dengan mekanisme try &
cacth.
Method yang berhubungan dengan Thread
start(
)
Mengaktifkan Thread Obyek Thread kemudian
akan menjalankan method run( ).
stop(
)
Menghentikan Thread yang sedang aktif.
sleep(
int delta)
Menunda aktifitas Thread untuk delta
millisecond.
Contoh selanjutnya adalah
mendemonstrasikan animasi yang dilakukan dengan menjalankan Thread. Tugas
Thread adalah melakukan repaint( ) pada obyek. Setelah repaint( ) dilakukan,
Thread beristirahat untuk beberapa detik dan untuk kemudian melakukan repaint(
) kembali. Obyek Thread kemudian akan menjalankan method run( ).
Kemudian class TThread digunakan oleh
class animasi di bawah ini. Class animasi merupakan pengembangan (extend) dari
class Applet. Class Applet digunakan untuk class-class yang digunakan dalam
aplikasi applet (untuk ditampilkan dalam html file)
Setelah kita compile kedua class tersebut,
yaitu class TThread dan class Animasi, kita dapat membungkusnya ke dalam file
html. Selanjutnya kita dapat mengeksplore file tersebut dengan internet
browser.
Mengimplementasikan Runnable Interface
Pada contoh di atas Thread digunakan
dengan mengembangkan class Thread, yang mana berarti bahwa Subclass Thread
hanya dapat mewarisi sifat-sifat dari Thread. Pengikatan Class ini dapat
dihindari dengan menggunakan konsep interface. Dengan mengimplementasikan
Runnable interface. Interface Runnable ini hanya berisi satu method yang harus
diimplementasikan, yaitu run().
Konstruktor Thread adalah :
Thread(Runnable
ThreadObject)
Atau
Thread(Runnable
ThreadObject, String nama Thread)
ThreadObject pada contoh di atas adalah this, yang merupakan Obyek itu sendiri yang mengimplementasikan Runnable. Method is Active( ) akan memberikan nilai true jika Thread actual aktif, dan false jika tidak aktif.
Exception (Eksepsi)
Eksepsi adalah mekanisme yang memungkinkan program untuk menangkap kondisi-kondisi
tertentu yang membutuhkan penanganan khusus. Eksepsi dapat berupa kesalahan yang terjadi
dalam program pada saat run time. Format eksepsi adalah :
try
menyatakan
bahwa dalam blok try dapat terjadi suatu ekspresi dan bila ekspresi terjadi,
maka aktifkan program yang berada dalam kelompok (blok) catch sesuai dengan tipe ekspresinya.
Object e dari tipe ekspresi dapat digunakan sebagai referensi penanganan
eksepsi aktual.
finally menyatakan bahwa apapun jenis tipe
ekspresinya, maka program dalam blok ini harus tetap dijalankan.
Dengan menangkap eksepsi program tidak
langsung berhenti dan melaporkan kesalahan tersebut, melainkan membelokkan
dengan program pengaman tertentu.
Pada saat run time, jika java menemukan
kesalahan dan melempar pesan ke program. Dengan pesan ini, program akan
melakukan suatu aksi tertentu. Mekanisme melempar ini disebut juga sebagai throw, alur program akan dihentikan,
kemudian program pengendali (exception handling) akan diaktifkan.
Throw
Throw digunakan secara eksplisit untuk
membuang sebuah eksepsi. Contoh berikutnya, TestThrow mendefinisikan Obyek
Eksepsi “NullPointerException” pada sebuah variabel t.
Dengan instruksi throw, program Eksepsi
untuk kemudian ditangkap oleh instruksi catch. Namun tentunya yang ditangkap
harus sesuai degan tipe eksepsi yang dilemparkan. Dalam hal ini program main
menangkap sinyal tersebut dan instruksi program diteruskan pada blok program
disitu.
throws
Eksepsi selalu ditangkap dengan catch pada blok dimana eksepsi tersebut
dilempar. Tanpa catch, program tidak
akan dikompilasi. Program dibawah ini menghilangkan try dan catch pada
subroutine demo( ), namun dengan menggunakan tambahan kata kunci throws Exception.
Java Graphical User Interface
Graphical User Interface
Graphical User Interface merupakan antar
muka grafis yang memfasilitasi interaksi antara pengguna dengan program
aplikasi. Salah satu komponen dalam bahasa pemrograman java untuk membangun GUI
adalah Swing. Komponen ini didefinisikan di dalam paket javax,swing. Swing
diturunkan dari Abstract Windowing
Toolkit dalam paket java.awt. Hirarki dari komponen Swing adalah :
Java.swing.Jcomponent =>
java.awt.Container => java.awt.Component => java.lang.Object.
Jcomponent adalah superclass dari semua
komponen Swing. Sebagian besar fungsionalitas komponen diturunkan dari
superclass ini. Beberapa komponen utama dalam GUI adalah:
1.
Containers
: merupakan wadah yang berfungsi untuk menempatkan komponen-komponen lain
didalamnya.
2.
Canvas :
merupakan komponen GUI yang berfungsi untuk menampilkan gambar atau untuk
membuat progarm grafis. Dengan canvas, kita bisa menggambar berbagai bentuk
seperti lingkaran,segitiga,dll
3.
User
Interface (UI) components : contohnya adalah buttons,list,simple popup menus,
check boxes,text fields,dan elemen lain.
4.
Komponen
pembentuk window : seperti frames, menu bars,windows,dan dialog boxes
Komponen-komponen Dasar User Interface dengan Swing
Berikut adalah beberapa komponen dasar
antarmuka pengguna (user interface) yang disediakan oleh Swing :
1.
Top level containers: adalah container dasar untuk meletakkan
komponen-komponen lain. Contohnya adalah JFrame,Jdialog,dll
2.
Intermediate level containers : merupakan kontainer perantara. Umumnya
digunakan hanya untuk meletakkan atau mengelompokkan komponen-komponen yang
digunakan, baik itu containeratau berupa atomic component. Contoh dari Intermediate level container adalah
Jpanel (panel).
3.
Atomic component : merupakan komponen yang memiliki fungsi khusus.
Umumnya pengguna langsung berinteraksi dengan komponen ini. Contohnya JButton
(tombol),JLabel (label),JtextField,JtextArea (area untuk menulis teks),dll
4.
Layout Manager Berfungsi
untuk mengatur bagaimana tata
letak/posisi dari komponen yang akan diletakkan, satu sama lain didalam suatu
container. Secara default ada 6 buah layout :
BorderLayout,BoxLayout,CardLayout,GridBagLayout & GridLayout.
5.
Event Handling : Menangani event yang dilakukan oleh user
seperti menekan tombol,memperbesar atau memperkecil ukuran frame,mengklik
mouse,mengetik sesuatu dengan keyboard,dll
Konstruktor untuk membentuk JFrame adalah
JFrame() atau JFrame (String Nama Frame). Salah satu method yang sering
digunakan dikelas JFrame adalah setDefaultCloseOperation (int ops).
Method ini berfungsi untuk mengatur apa
yang akan dikakukan oleh program ketika tombol close di klik. Parameter method
tersebut diantaranya adalah:
1.
JFrame.DO_NOTHING_ON_CLOSE
: tidak ada satu aktivitas pun yang dilakukan secara otomatis apabila frame
ditutup.
2.
JFrame.HIDE_ON_CLOSE
: frame hanya di sembunyikan, namun secara fisik frame masih ada dimemori
sehingga dapat dimunculkan kembali. Merupakan aktivitas default.
3.
JFrame.DISPOSE_ON_CLOSE
: menghilangkan tampilan frame dari layar, menghilangkannya dari
memori,dan membebaskan resource yang
dipakai.
4.
JFrame.EXIT_ON_CLOSE
: menghentikan eksekusi program.
Top level container yang lain adalah
JDialog. Berbeda dengan JFrame, JDialog tidak dibuat berdiri sendiri, melainkan
dibuat bersama-sama dengan frame sebagai parent-nya.
Jika frame parent-nya ditutup, maka
dialog akan dihapus dari memori. Kemunculan dialog akan membuat semua input
terhadap frame parent-nya akan
terblokir sampai dialog tersebut ditutup.
Layout Management
Untuk mengatur layout dari setiap
komponen-komponen GUI yang diletakkan pada container, digunakan layout manager.
Setiap pane secara default pasti memiliki layout manager. Jika ingin mengubah
layout-nya, gunakan void setLayout(LayoutManeger mgr) java menyediakan 6 buah
class standar yang dapat digunakan sebagai
layout manager yang terdapat dalam package java.awt, yaitu
FlowLayout,GridLayout,BorderLayout,CardLayout,GridBagLayout,BoxLayout.
1. Flow Layout merupakan
layout manager default yang digunakan JPanel. Layout manager ini meletakkan
komponen yang ada secara berurutan dari kiri ke kanan dan berpindah baris jika
dbutuhkan. Jarak antar komponen baik secara vertikal maupun horizontal dapat
ditentukan sendiri. Selain itu, kita bisa menentukan alignment dari komponen
yang diletakkan, yaitu rata kanan, rata kiri atau di tengah.
2.
GridLayout Merupakan Layout Manager berbentuk grid. Semua
komponen dalam layout ini memiliki ukuran yang sama. Konstruktor GridLayout
sebagai berikut :
a.
GridLayout(rows,columns,hGap,vGap) Konstruktor ini
mendefinisikan jumlah baris,kolom,dan ukuran gap horizontal/vertikal antar
elemen dalam pixel.
b.
GridLoyout(rows,columns). Konstruktor yang digunakan
dengan nilai default hGap dan vGap sama dengan 0.
3.
BorderLayout adalah default manager untuk ContentPane.
Layout ini menempatkan komponen dengan pendekatan arah mata angin north, south, west, center, east
4.
Cardlayout digunakan untuk
menampilkan container-container/panel-panel seperti tumpukan kartu. Hanya satu
container yang akan tampil untuk satu waktu. Komponen yang diletakkan dengan
layout ini berupa object yang bertipe intermediate
container adalah tabbed pane
(JTabbedPane).
5.
GridBaglayout
Grid bag layout adalah pengaturan layout yang dapat digunakan
untuk meletakkan komponen secara bebas. Setiap komponen dapat menepati ukuran
yang berbeda dengan komponen lainnya.
6. Boxlayout digunakan untuk meletakkan komponen berurutan ke kanan
(sumbu X) atau berurutan ke bawah (sumbu Y). Penggunaan BoxLayout menggunakan
class Box dimana merupakan container yang secara internal telah menggunakan
BoxLayout sebagai layout manager-nya.
Jangan lupa kunjungi juga :
Tidak ada komentar:
Posting Komentar