PEMROGRAMAN BERORIENTASI OBJEK
Nama : Wildan Ahmad Widodo
NIM : 211080200103
A.
Instalasi Java
Instal
aplikasi Java SDK pada komputer. Berikut langkah-langkah untuk instalasi java :
a. Jalankan installer Java SDK
b. Ikuti semua proses sampai selesai
c. Set variabel system path pada
komputer.Caranya:
- Buka Windows
Explorer
- Klik kanan icon My Computer, klik Properties
- Klik Advanced
system settings
Gambar 1.1 Gambar System properties dalam Windows 11
- Klik tab Advanced
Gambar 1.2 Gambar Tab Advanced System Properties dalam Windows 11
- Klik Tombol Environment Variables
Gambar 1.3 Gambar Environment Variables dalam Windows 11
- Pada bagian system variable, cari variable
path, kemudian klik Edit,
tambahkan alamat dari folder bin pada
java kompiler Anda ke dalam value
variable path.
Gambar 1.4 Gambar Mengatur Path Pada System
Variables
- Pada bagian user variable, tambahkan variable
classpath kemudian isi nilainya dengan “;” (titik dan titik
koma)alamat_folder_lib_anda
Gambar 1.5 Gambar Mengatur classpath Pada System
Variables
-
Cobalah
Java Anda, buka command line
Ketikkan
java<<enter>>
Ketikkan
javac<<enter>>
Gambar 1.6 Mencoba Hasil Pengaturan Path Java
Kalau
kedua sintaks di atas tidak menemukan pesan error, maka instalasi berhasil
B.
Konsep Dasar Pemrograman Berorientasi Objek
Java
adalah salah satu bahasa pemograman yang menggunakan paradigma pemograman
berorientasi obyek.Pemograman berorientasi obyek menjadikan object dan class sebagai
konsep sentralnya. Jadi dalam pemograman java object dan class menjadi suatu
yang paling utama. Java adalah salah satu bahasa pemograman yang tidak
tergantung pada operating system (operating system independent), yang sekarang
mulai popular dikalangan programmer.
C.
Konsep Dasar Variabel
Variabel
adalah satuan yang dipakai oleh program sebagai basis untuk penyimpanan
data.Penggunaan variable harus terlebih dahulu dideklarasikan nama dan tipenya.
Tipe dasar (primitive) dalam java adalah sebagai berikut ;
Tabel 1.1 Tabel Tipe Variabel
Tipe |
Keterangan |
Short |
short integer,
bilanganbulat 16 bit |
Int |
integer, bilanganbulat
32 bit |
Long |
long integer,
bilanganbulat 64 bit |
Byte |
bilanganbulat 8 bit |
Float |
bilangan real (pecahan)
32 bit |
Double |
bilangan real
(pecahan) 64 bit |
Char |
karakter 16 bit |
Boolean |
boolean value true
atau false |
Short
Tipe
variable short adalah bilangan bulat 16 bit yang mempunyai jangkauan nilai dari
-215 sampai dengan 215-1 atau dari -32768 sampai
dengan ±32767.
Type
variable int adalah bilangan 32 bit dengan jangkauan nilai dari -231 sampai
dengan 263-1.
Long
Tipe
variable long adalah bilangan bulat 64 bit dengan jangkauan nilai dari -263sampai
dengan 263-1.
Contoh
:
Long 11 = 5456469;
Long 12 = 0x08ea73aaeaf25d23;
Byte
Type
variable byte adalahbilanganbulat 8 bit yang mempunyai jangkauan nilai dari 27sampai
dengan 27-1 ataudari -128 sampai dengan +127.
Contoh
:
Byte
b1 =50;
Byte
b2=120;
Byte
b3 = 127;
Float
Float
adalah bilangan real (pecahan, dengan format floating point yang menggunakan
tempat penyimpanan 32 bit.Tipe float mempunyai jangkaun nilai dari 3.4e-038
sampai dengan 3.4e+038. Ketelitian
float sampai 10 angka dibelakang koma.
Contoh
: Float f1 ;
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
Dobel
adalah bilangan real (pecahan) dengan presisi 2 kali lebih baik dari variable
float. Dobel membutuhkan 64 bit untuk penyimpanannya 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.Variabel Boolean
dapat
diperoleh dari operasi logika seperti perbandingan dua bilangan,
perbandingan dua string,
dan lain – lain;
Casting
Casting
adalah teknik konversi suatu data tipe ke data tipe yang lain secara eksplisit.
Yang menerangkan kepada compiler 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 kesalahan, penyesuain otomatis
B =
I; // terjadi kesalahan, tipe tidak compatible
B =
(byte); //tidak terjadi kesalahan, casting dari integer ke byte
D.
Konsep Dasar Array
Array
adalah sekumpulan data yang sama tipenya. Isi array dapat diakses melalui index
yang dimulai dari 0 sampai dengan jumlah_elemen_array-i.
Tipe_variabel nama_array[];
Contoh
IntMyArr[];
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 diinialisasi secara otomatis pada saat deklarasian
dengan cara sbb:
IntMyArr[] = {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 Multidimesi
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
duadimensi
Matrik = new double [2] [3];
Atau dengan cara
diciptakan satu persatu (per baris)
Matrik=new double [2] [ ]; // dimensi
berikutnya belum disiapkan
Matrik[0] = new double[3];
Matrik[1] = new
double[3];
Matrik[0] [0] = 9.5;
Matrik[0] [2] = 10.0;
Matrik[1] [2] = 340.9;
Atau
kita dapat menginisialisasi array multi demensi pada saat pendeklarasian dengan
cara :
Double
Matrik [ ] [ ] ={
{20.5,
10.9, 309.0}
{-8.8,
98.7, 100.0}
E.
Kerangaka Program Java
Progam
dalam java di bagi-bagi menjadi class-class. Oleh karena itu
program dalam java dimulai dengan kata kunci class atau public class. Lihat
Contoh Berikut :
public static void
main (String argv []){
System.out.println
("Hello java programmer UMSIDA");}
}
Hasil
:
Progam 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 di atas harus disimpan dalam file yang bernama Hello
java.
Prasyarat
sebuah program aplikasi (yang bias dieksekusi) dalam java adalah mempunyai
metoda (fungsi) sebagai entry point (pintu masuk) yang bernama main () untuk memulai eksekusi.
main () adalah sebuah metode dengan argument array dari String
yang bernama argv. Klasifikasi dari
metode main () adalah public static yang artinya bias diakses oleh metoda
diluar class tersebut.Sedangkan kata kunci void
menjelaskan bahwa metoda main () tidak memberikan nilai balik (return
value) kepemanggil.
Perintah (statement) System.out.println()
, merupakan perintah untuk mencetak string yang menjadi argument kelayar dan
setelah pencetakan akan ganti baris. Perlu diperhatikan bahw aantara satu
perintah yang lain dipisah dengan semi colon (;).
Program dalam java yang kita tulis harus kita compile
dengan java compiler dengan perintah :
C:\>javac Hello.Java
Javac adalah
program java compiler, sedangkan Hello java adalah 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 class
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 :
Hello java
programmer UMSIDA
Komentar
Pemberian komentar dalam program adalah penting karena
akan memperjelas alur program serta akan memberikan dokumentasi yang jelas.
Pemberian komentar dalam java dapat dilakukan dengan
memberikan karakter //.Semua teks setelah // akan dianggap komentar dan
diabaikan dalam proses kompilasi sampai dengan garis baru (new line). Contoh :
System.out.println(“Hello”); //mencetak kata hello
Selain
dengan tanda //, penulisan komentar juga dapat menggunakan sepasang 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 sebagainama variable, nama class dan yang lainnya. Kata
kunci tersebut adalah
Tabel 1.2 Tabel Kata Kunci
abstract |
Default |
Goto |
Operator |
Synchronized |
boolean |
Do |
If |
Outer |
This |
break |
Double |
implements |
Package |
Throw |
byte |
Else |
Import |
Private |
Throws |
byvalue |
Extends |
Inner |
Protected |
Transient |
case |
False |
Instaceof |
Public |
True |
cast |
Final |
Int |
Rest |
Try |
catch |
Finally |
Interface |
Return |
Var |
char |
Float |
Long |
Short |
Void |
class |
For |
Native |
Static |
Volatile |
const |
Future |
New |
Super |
While |
continue |
Generic |
Null |
switch |
|
OPERATOR, CONTROL FLOW dan STRING
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 dalam Java, yaitu:
1.
Aritmatika Operator
Java mempunyai operator aritmatika seperti +
(penjumlahan), - (pengurangan) ,*(perkalian) , / (pembagian) dan % (modulo).
Operator – operator ini berlaku 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 )
c-- ;
//sama dengan c = c-1 (decrement)
2. Logika
Operator
Ada tiga logika Operator dalam java yaitu:
&& Logika
/nd
|| LogikaOr
| LogikaNot
Ketiga operator tersebut dioperasikan terhadap Boolean
data tipe yang menghasilkan bolean data type juga (true atau false)
3. Bit
per bit operator
Variabel bertipe long, int, short, byte dan char dapat
mempunyai operator yang dioperasikan langsung kesusunan binernya (bit atau
bit).
Tabel 2.1 Tabel bit per bit Operator
Operator |
Nama |
Keterangan |
~ |
NOT |
Mengubah 0 menjadi 1
dan 1 menjadi 0 |
& |
AND |
1 & 1 = 1 selain
itu hasilnya selalu 0 |
| |
OR |
0|0 = 0 selain itu
hasilnya selalu 1 |
^ |
XOR |
0^0 = 0, 1^1 = 0 selain
itu hasilnya 1 |
>> |
SHIFT RIGT |
Dorong
1 bit kekanan termasuk tanda minus |
>>> |
SHIFT RIGT |
Dorong
1 bit ke kanan isi bit paling kiri dengan 0 |
<< |
SHIFT LEFT |
Dorong 1 bit kekiri |
Seperti halnya aritmatika operator, Bit per bit operator
juga bias dilakukan Penyederhanaan penulisannya.
4.
Relasional
Operator
relasional digunakan untuk membandingkan dua nilai. Hasil dari perbandingan
tersebut adalah data tipe Boolean (true atau false).
Tabel 2.2 Tabel operator Relasional
Operator |
Keterangan |
> |
Lebih Besar |
< |
Lebih kecil |
>= |
Lebih
besar atau sama dengan |
<= |
Lebih
keci latau sama dengan |
!= |
Tidak sama dengan |
= = |
Sama dengan |
Tipe variable di java seperti short, int, long, float,
double, Boolean, dan character dapat dibandingkan satu dengan yang lainnya .
Contoh :
Char
c = ‘*’;
Inti
= 0x2a;
Boolean
b;
b
= c = = i;
5.
Prioritas
Setiap operator mempunyai prioritas sendiri – sendiri,
sehingga 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.
Tabel 2.3 Tabel operator Prioritas
Operator |
( ) [ ] |
++ -- ~! |
*/ % |
+ - |
>>>>><< |
>>= <<= |
== ! = |
& |
^ |
| |
&& |
|| |
?: |
= |
6.
Pernyataan if
Pernyataan if adalah control flow yang paling
sederhana Pernyataan ini mengevaluasi suatu ekspresi. Jika ekspresi benar
(true) maka blok pernyataan akan dijalankan. Sebaliknya computer akan melompati blok pernyataan
tersebut. Sintaks dari pernyataan if :
If
(ekspresi)
Pernyataan;
7.
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 penyataan if-else:
If(ekspresi )
Pernyataan_1;
Else
Pernyataan_2;
8.
Pernyataan switch, case dan break
Switch digunakan untuk percabangan (seleksi) lebih dari dua. Ini digunakan untuk menghindari pergunaan if-else yang berlapis-lapis.
9.
Pengulangan(Loop)
Pengulangan dengan while
Alur program blok while akan dilakukan berulang-berulang
selama ekspresi benar (true) Sintaks dari pengulangan while adalah sbb:
While (ekspresi)
Pernyataan;
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 inialisasi, test kondisi dan update counter. Jadi sintaks pengulangan
dengan for adalah :
for
(inialisasi_counter ; test_kondisi ; update_counter) {
instruksi;
--------
};
Inialisasi_counter
dilakukan sekali pada saat akan dilakukan pengulangan, test_kondisi diperiksa
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 obyek yang terdiri atas deretan karakter.
Tidak seperti array dari karakter, String tidak perlu ditentukan jumlah panjang
karakternya. String dapat langsung di inialisasi tanpa kata kunci new, contoh :
String str = “
Hello “ ;
Str = str + “ Java
Programmer” ;
String dapat juga diciptakan melalui cara berikut :
char c_arr [ ] = { ‘h’, ‘e’, ‘1’, ‘0’ };
String
s1 = new String (c_arr) ;
String s2 = new String (c_arr, 2, 2);
// offset ke 2
sebanyak 2 karakter
Ada beberapa method dalam String yang perlu kita ketahui
antara lain:
Int
length ( )
memberikan nilai balik (return value) panjang dari aktual
string.
char
charAt (int index)
memberikan nilai balik berupa karakter pada posisi index
dalam aktual string.
public class TestString {
public static void main (String argv[]) {
String
tabel[]={"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 balik posisi pada String di mana
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 dri kanan ke kiri.
Boolean equals (String s)
Membandingkan aktual string dengan string s dengan
mengabaikan huruf besar maupun huruf kecil. Jika sama maka akan memberikan
nilai balik true, sebaliknya akan memberikan niali balik false.
String substring (int offset)
Memberikan niali balik isi aktual string dari posisi
offset sampai akhir string
String
substring(int offset, int endIndex)
Memberikan nilai balik si aktual string dari posisi
offset sampai posisi endIndex
String toLowerCase( )
Mengubah string menjadi huruf kecil semua
String toUpperCase( )
Mengubah spasi yang berdekatan dalam string
Char[ ] getCahrs(int startPos, int endPos, char buffer[
], int offset)
Mengambil karakter dan startPos sampai endPos, dan
menyimpanannya ke dalam buffer dimulai dari index = offset.
Int compareTo(String str)
Membandingkan String dalam UTF (Unicode Transfer Format)
dengan nilai balik 0 bila sam, negative bila kecil, dan positif bila lebih
besar.
StringTokanizer
Class
String Tokanizer berfungsi untuk membagi string berdasarkan token tertentu.
Class ini sangat membantu untuk menginterprestasikan suatu string ke suatu
maksud tertentu. Contoh yang paling
populer 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 Pemrograman Berorientasi Obyek (Object Oriented Programming).
Class merupakan cara merakit data-data dan menentukan semua metode yang
diperlukan untuk mengakses, menggunakan dan mengubah data-data tersebut. Dalam java class juga bisa dianggap sebagai type
dari object.
Setiap class memiliki dua hal utama. Yang
pertama adalah yang kita sebut state/atribut/property. State dalam obyek tidak lain adalah nilai dari
setiap variable. Bagian 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 menentukan 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 public. Ini berarti class tersebut dapat
dipakai atau dikembangkan (extend) oleh sembarang object.
·
Final
Dengan menempatkan final didepan pendeklarasian class menandakan bahwa
class tersebut tidak bisa memiliki subclass (turunan). Dengan kata lain class
tersebut tidak bisa dikembangkan.
·
Abstract
Dengan menempatkan class didepan pendeklarasian class, menandakan bahwa
kita tidak bisa menciptakan obyek dari class tersebut. Class tersebut harus
dipakai sebagai 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
tersebut boleh dikembangkan atau dipakei
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 atribute (variable)
dari class, sedangkan
<class method list> adalah daftar semua method
(fungsi\operasi) yang bisa dilakukan oleh class tersebut.
Sintaks pendefinsian class attribute :
modifiers data_type nama attribute ;
Sintaks
penderfinsian class method :
modifers return_type nama method (<parameters list>)
Akses modifiers dalam class attriubute maupun class method menentukan
bagaimana aksesbilitas attribute dan method dari class lain. Ada beberapa akes modifier yaitu:
·
Friendly
Secara default akses modifiers adalah friendly, yang berarti bahwa attribute |mothode bisa diakses oleh class
lain dalam satu paket (package).
·
Public
Akses modifiers public membuat attribute\metbute tersebut dapat diakses
oleh pihak luar manapun.
·
Private
Akses modifiers private membuat attribute\method hanya dapat diakses oleh
class itu sendiri.
·
Protected
Akses modifiers protected membuat attribute\method hanya dapat diakses
oleh class itu sendiri dan class turunanya (subclass nya).
·
Final
akses modifiers final membuat attribute tersebut tidak boleh diubah pada
saat eksekusi . sebab attribute ini tidak boleh diubah maka harus diberi nilai
pada saat pedeklarasian misal final int SIZE 5;
·
Static
Akses modifiers static mebuat
attribute tersebut mempunyai nilai sama untuk semua obyek dari class
tersebut.
2.
Konstruktur
Konstruktur adalah method dengan property yang unik dan untuk keperluan
inialisasi pada saat obyek diciptakan. Jadi konstruktur digunakan memberikan
niali kepada attribute tertentu pada saat obyek diciptakan.Kontruktor
didefinisikan dengan nama yang sama dengan nama class. Konstruktor tidak perlu
return_type sebab konstruktur secara aktual dipanggil sebagai method.
Konstruktur ini dipanggil pada saat kita memberikan perintah new.
3.
Inherintance
(Pewarisan)
Inheritance (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 calss yang diwarisi disebut super class. Pewarisan
class dalam java menggunakan sintaks:
modifier<NamaSubClass>extends<NamaSuperCalss> {
}
4.
Kata
Kunci this
this adalah referensi yang menunjuk pada obyek aktual. Nilai this ini
menunjukkan bahwa obyek yang dimaksud adalah obyek yang sedang aktif itu
sendiri. Contoh penggunaan dari this adalah sbb:
5.
Overriding
Method
Overriding method adalah suatu mekanisme pewarisan class di mana subclass mendefinisikan ulang satu atau lebih method (fungsi) yang ada di supper class. Dalam overriding ini subclass bisa mendefinisikan method (fungsi) yang di-override dengan fungsi yang baru sama sekali, atau menambahi method (fungsi) yang di-override yang sudah ada dengan fungsinal-fungsinal yang lain.
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 {
//
blok program
.
. . . . .
} catch (EksepsiTipe1 e) {
//
blok program untuk EksepsiTipe1
.
. . . . .
} catch (EksepsiTipe2 e) {
// blok program untuk EksepsiTipe2
. . . . . .
} catch (EksepsiTipe3 e) {
// blok program
untuk EksepsiTipe3
. . . . . .
} finally {
// blok program
. . . . . .
}
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.
Tabel 6.1 Common Jaxa Exceptions
Exceptions |
Description |
Arithmeticexception |
Disebabkan oleh error secara matematika seperti
pembagian dengan nol |
ArrayIndexOutOfBouns
Exception |
Disebabkan
oleh array index yang salah |
ArrayStoreException |
Disebabkan
ketika program mencoba menyimpan file data yang salah |
FileNotFoundException |
Disebabkan oleh usaha mengakses file yang tidak ada |
IOException |
Disebabkan
oleh general I/O failures, seperti kegagalan membaca file |
NullPointException |
Disebabkan
oleh mereferensi obyek null |
NumberFormatException |
Disebabkan ketika konversi antara string dan bilangan
gagal |
OutOfMemoryException |
Disebabkan
ketika tidak cukup memory untuk alokasi obyek |
SecurityException |
Disebabkan
ketika sebuah applet mencoba melakukan aksi yang tidak diperbolehkan oleh
setting security browser |
StackOverflowException |
Disebabkan ketika sistem run melebihi kapasitas stack |
StringIndexOutOfBoundsException |
Disebabkan ketika program mencoba mengakses posisi
karakter yang tidak ada di dalam string |
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.
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.