Angga Noviar Cipta Pahlevi UMSIDA | Rangkuman Praktikum Pemrograman Berorientasi Objek
Assalamu’alaikum Wr. Wb.
Perkenalkan sobat pembaca saya Angga Noviar Cipta Pahlevi, saya merupakan mahasiswa semester 4 Program Studi Informatika, Fakultas Sains dan Teknologi dari Universitas Muhammadiyah Sidoarjo. Membuat Resume ini merupakan salah satu dari penilaian yang diberikan demi menyelesaikan Praktikum Pemrograman Berorientasi Objek di Program Studi Informatika, Fakultas Sains dan Teknologi dari Universitas Muhammadiyah Sidoarjo.
----------------------------------------------------------------
Resume Praktikum Pemrograman Berorientasi Objek
----------------------------------------------------------------
POKOK BAHASAN 1
ELEMEN DASAR JAVA
PENDAHULUAN
Pada pokok bahasan ini berisi penjelasan disertai contoh mengenai pengenalan type data, veriabel, dan identitas array yang menjadi pemahaman dasar bagi mahasiswa sebelum mempelajari Pemrograman Berorienatasi Objek dengan membuat program java sederhana menggunakan elemen dasar tersebut, diharapkan mahasiswa dapat :
a. Memahami instalasi java
b. Mengenali tipe data, variable dan identitas dan array
c. Menggunakan elemen dasar java pada pembuatan program
d. Membuat program java sederhana dengan menggunakan elemen dasar
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.
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 ;
tipe Keterangan
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
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’;
Ch ar 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
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 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}
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[] args){
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 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 :
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
PENDAHULUAN
Pada pokok bahasan ini akan
dibahas mengenai pendeklarasian variable, baik instance variable, class
variable, maupun local variable, serta membahas fungus dari masing – masing
symbol operator dan control flow. Sehingga setelah mempelajari bab ini
diharapkan mahasiswa mampu :
a.
Mendeklarasikan
instance variable, class variable , maupun local variable
b.
Mengakses
instance variable, class variable, mupun local variable
c.
Memahami
fungsi dari masing – masing symbol operator
d.
Memahami
control flow
e.
Mahasiswa
mampu membuat program yang berkaitan dengan string
f.
Mahasiswa
mampu memahami pinsip penggunaaan String
Aritmatika
Operator
Java mempunyai operator aritmatika seperti +
(penjumlahan), - (pengurangan), *(perkalian), / (pembagian) dan % (modulo).
Operator – operator ini berlaku seperti dalam operasi aritmatika. Dalam Java
juga dimungkinka nuntuk penyederhanaan penulisan operator seperti yang terlihat
di bawahini;
Int a, b, c, d, e,
a
= 15;b =10; //=80;d=100;e=20;
a+
= 5; //samadengan a = a+5
b-
=e; //samadengan b = b-e
c*
=b; //samadengan c = c*b
d/
=4; //samadengan d = d/4
e%=3; //samadengan e = e % 3, hasilnya = 2
d++; //samadengan d = d+1 (increment )
c--
; //samadengan c = c-1
(decrement)
Logika
Operator
Ada
tigalogika Operator dalam java yaitu:
&& Logika /nd
|| LogikaOr
| LogikaNot
Ketiga operator tersebut dioperasikan terhadap Boolean data tipe yang menghasilkan boolean data type juga (true atau false)
Bit
per bit operator
Variabel bertipe long, int, short, byte
dan char dapat mempunyai operator yang dioperasikan langsung kesusunan binernya
(bit atau bit).
Operator |
Nama |
Keterangan |
~ |
NOT |
Mengubah
0 menjadi 1 dan 1 menjadi 0 |
& |
AND |
1
& 1 = 1 selainituhasilnyaselalu 0 |
| |
OR |
0|0
= 0 selainituhasilnyaselalu 1 |
^ |
XOR |
0^0
= 0, 1^1 = 0 selainituhasilnya 1 |
>> |
SHIFT
RIGT |
Dorong
1 bit kekanantermasuktanda minus |
>>> |
SHIFT
RIGT |
Dorong
1 bit ke kananisi bit paling kiridengan 0 |
<< |
SHIFT
LEFT |
Dorong
1 bit kekiri |
Sepertihalnya aritmatika operator, Bit per
bit operator juga bias dilakukan
Penyederhanaan penulisannya.
Relasional
Operator relasional digunakan untuk
membandingkan dua nilai. Hasil dari perbandingan tersebut adalah data tipe
Boolean (true atau false).
Operator |
Keterangan |
> |
LebihBesar |
< |
Lebihkecil |
>= |
Lebihbesaratausamadengan |
<= |
Lebihkecilatausamadengan |
!= |
Tidaksamadengan |
=
= |
Samadengan |
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
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 kebawah.Operator yang sama
prioritasnya akan dioperasikan dari kanan kekiri.
Operator |
(
) [ ] |
++
-- ~! |
*/
% |
+
- |
>>>>><< |
>>= <<= |
==
! = |
& |
^ |
| |
&& |
|| |
?: |
= |
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;
Pernyataan
switch, case dan break
Switch digunakan untuk percabangan
(seleksi) lebih dari dua. Ini digunakan untuk menghindari pergunaan if-else
yang berlapis-lapis.
Pengulangan
(Loop)
Pengulangan
dengan while
Alur program blok while akan dilakukan
berulang-berulang selama ekspresi benar (true) Sintaks dari pengulangan while
adalah sebagai berikut:
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 kondisidan 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_kondisidi periksa setiap kali sebelum
pengulangan dilakukan, sedangkan update_counter dilakukan setiap kali selesai
pengulangan.
Break, continue
Dalam pengulangan break digunakan untuk mematahkan (mengakhiri) pengulangan secarapaksa. 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 stringsditemukan
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
PENDAHULUAN
Pada pokok bahasan ini akan dibahasa mengenai objek dan class, serta penggunaannya dalam sebuah program java sederhana. Setelah mempelajari materi ini diharapkan mahasiswa mampu untuk :
a. Mengetahui pengertian dari objek dan class
b. Dapat membuat program sederhana dari java dengan menggunakan objek dan class
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.
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.
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> {
}
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:
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.
POKOK BAHASAN 4
THREAD
Pada pokok bahasan ini akan
dibahas mengenai threads. Setelah mempelajari bab ini diharpkan mahasiswa mampu
:
·
Mahasiswa dapat
membuat threads dengan menggunakan pemrograman java
·
Mahasiswa dapat
menjelaskan kegunaan threads
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.
POKOK BAHASAN 5
EXCEPTION (EKSEPSI)
PENDAHULUAN
Setelah
mempelajari bab ini diharapkan mahasiswa mampu
:
a.
Memahami
perbedaan antara kode program java yang memanfaatkan Exception Handling dan yang tidak memanfaatkannya.
b. Mahasiswa mampu mengimplementasikan kata kunci try, catch, throw dan throws.
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.
POKOK BAHASAN 6
JAVA GRAPHICAL USER INTERFACE
Tujuan :
1.
Mahasiswa memahami dan
menguasai pembuatan Java GUI
2. Mahasiswa memahami konsep dasar pembuatan Java GUI menggunakan Swing
3. Mahasiswa memahami komponen dasar user interface dengan Swing
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
2.
User Interface (UI)
components : contohnya adalah buttons,list,simple popup menus, check boxes,text
fields,dan elemen lain.
3.
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.
2.
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. orderLayout 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.
Comments
Post a Comment