Fakultas Sains Dan Teknologi
UMSIDA
UMSIDA
Pokok Bahasan 1 :
“Elemen Dasar Java”
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
- Klik tab Advanced
- Klik
Tombol Environment Variables
- Pada
bagian system variable, cari variable path, kemudian
klik Edit, tambahkan alamat dari folder bin pada
java kompiler Anda ke dalam value variable path.
- Pada bagian
user variable, tambahkan variable classpath kemudian
isi nilainya dengan “;” (titik dan titik koma) alamat_folder_lib_anda
- Cobalah Java
Anda, buka command line
Ketikkan
java<<enter>>
Ketikkan
javac<<enter>>
Kalau kedua sintaks di
atas tidak menemukan pesan error, maka instalasi berhasil.
B. Konsep Dasar Pemrograman
Berorientasi Objek
Java adalah salah satu bahasa pemrograman yang menggunakan
paradigma pemrograman berorientasi obyek. Pemrograman berorientasi obyek
menjadikan object dan class sebagai konsep sentralnya. Jadi dalam pemrograman
java object dan class menjadi suatu yang paling utama. Java adalah salah satu
bahasa pemrograman 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.
Long
Tipe variable long adalah bilangan bulat 64 bit dengan jangkauan
nilai dari -263sampai dengan 263-1.
Byte
Type variable byte adalahbilanganbulat 8 bit yang mempunyai
jangkauan nilai dari 27sampai dengan 27-1 ataudari -128
sampai dengan +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
Double 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 pendeklarasian
dengan cara bb:
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 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 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. Kerangka Program Java
Progam dalam java dibagi- bagi menjadi class-class.Oleh karena itu
program dalam java dimulai dengan kata kunci class atau public
class.Lihat Contoh Berikut :
public class Hello {
public static void
main(String argv[]){
System.out.println("Hello
java programmer UMSIDA");
}
}
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 bisa 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 bisa 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 bahwa antara 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
|
Pokok Bahasan 2 :
“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 And
|| Logika Or
| Logika Not
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 RIGHT
|
Dorong 1 bit kekanan termasuk tanda minus
|
>>>
|
SHIFT RIGHT
|
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 bisa 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 penggunaan 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);
}
}
Hasil Output :
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.
Pokok Bahasan 3 :
“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 attribute 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 method 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 turunannya (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 nilai 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.
Contoh class yang menggunakan mekanisme overriding :
Pokok Bahasan 4 :
“Threads”
Property unik dari java
adalah bahwa Java memberi support 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
1. 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.
2. 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.
Pokok Bahasan 5 :
“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
|
Pokok Bahasan 6 :
“Java Graphical User Interace”
1. 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.
Komentar
Posting Komentar