Sabtu, 07 Januari 2023

Chandra Hary Pratama UMSIDA

 Pemrograman Berorientasi Objek


Elemen Dasar Java

A.    Konsep Dasar Pemrograman Berorientasi Objek

Java adalah salah satu Bahasa pemrograman yang menggunakan paradigma pemrogramana berorientasi objek. Pemrograman berorientasi berorientasi objek menjadikan object dan class sebagai konsep utamanya. Jadi dalam pemrograman java, object, dan class menjadi suatu yang paling sentral. Java adalah salah satu Bahasa pemrograman yang tidak tergantung pada operatingnya system (operating system independent), yang sekarang mulai popular di kalangan programmer.

B.    Konsep Dasar Variabel

Variabel adalah satuan yang dipakai oleh program sebagai basis utuk penyimpanan data. Penggunaan variable harus terlebih dahulu dideklarasikan nama dan tipenya. Tipe dasar (primitive) dalam java adalah sebagai berikut :


Short

Tipe variable short adalah bilangan bulat 16 bit yang mempunyai jangkauan nilai dari -2^15 sampai dengan 2^15-1 atau dari -32768 sampai dengan ±32767.

Type variable int adalah bilangan bulat 32 bit dengan jangkauan nilai dari -2^31 sampai dengan 2^31-1.

Long

Tipe variable long adalah bilangan bulat 64 bit dengan jangkauan nilai -2^63 sampai dengan 2^63-1.

Contoh :

Long 11 = 5456469;

Long 12 = 0x0ea73aaea4f25d23;

Byte

Type variable byte adalah bilangan bulat 8 bit yang mempunyai jangkauan nilai dari 2^7 sampai dengan 2^7-1 atau dari -128 sampai dengan +127.

Contoh :

Byte b1 = 50;

Byte b2 b2 = 120;

Byte b3 =127;

Float

Float adalah bilangan real (pecahan, dengan format floating point yang menggunakan tempat penyimpanan 32 bit. Tipe float mempunyai jangkauan nilai dari 3.4e-038 sampai dengan 3.4e+038. Ketelitian float sampai 10 angka dibelakang koma.

Contoh :

Float fl;

Float f2 = 0.13f;

Float f3 = 0.34f;

Perhatikan bahwa angka float ditambah suffix huruf f yang berarti float. Hal ini diperlukan karena notasi default untuk tipe variable double.

Double

Double adalah bilangan reall (pecahan) dengan presisi 2 kali lebih baik dari variable float.

Double membutuhkan 64 bit untuk penyimpananya yang mempunyai jangkauan nilai dari 1.7e-308 sampai dengan 1.7e+308.

Char

Tipe variable char menyimpan kode Unicode (karakter internasional), karena itu membutuhkan 16 bit.

Contoh :

Char c;

Char c1=’c’;

Char c5=’\t’;

Boolean

Variable Boolean berisi dua nilai, yaitu true dan false. Variable Boolean dapat diperoleh dari operasi logika seperti perbandingan dua bilangan, perbandingan dua string, dan lain-lain.

Casting

Casting adlah Teknik konversi suatu data tip eke data tipe yang lain secara ekspisit. Yang menerangkan kepada compilet bahwa terjadi perubahan tipe variable, sehingga hasilnya harus dikonversi ke tipe variable tersebut.

Contoh :

Int I;

Double d;

Byte b;

I = 250;

D = I; //tidak terjadi kesalapahaman, penyesuaian otomatis

B = I; // terjadi kesalahan, tipe tidka compatible

B = (byte); // tidak terjadi kesalahan, casting dari integer ke byte.


C.    Konsep Dasar Array

Array adalah sekumpulan data yang sama tipenya. Isi array dapat diakses melalui index yang dimuali dari 0 sampai dengan jumlah_elemen_array-i.

    Tipe_variable nama_array[];

Contoh :

    Int MySrr[];

Pada saat didefinisikan (dideklarasikan), jumlah elemen array belum diketahui. Jumlah elemen yang sesungguhnya diciptakan dengan 2. Array MyArr dapat diakses dengan cara sbb;

    MyArr[0] = 340;

    MyArr[1] = -129;

    MyArr[2] =  499;

Array dapat diinisialisasi secara otomatis pada saat pendeklarasian dengan cara sbb :

    Int MyArr[] = {340,-129,499};

Pada saat runtime jika indeks array yang diakses melebihi jumlah elemen yang ada maka java akan mengeluarkan pesan kesalahan berupa kesalahan runtime error.

Array Multidimensi

Kita dapat mendeklarasikan array lebih dari satu dimensi. Sebagai contoh kita akan membahas array dua dimensi. Untuk array berdimensi lebih dari dua dapat kita analogikan dengan array dimensi dua. Contoh pendeklarasian array dua dimensi :

    Double Matrik[][];

Menciptakan element array dua dimensi

    Matrik = new double [2][3];

Atau dengan cara diciptakan satu persatu (per baris)

    Matrik = new double [2][ ]; // dimensi berikutnya belum disiapkan

    Matrik[0] = new doube[3];

    Matrik[1] = new double[3];

    Matrik[0][0] = 9.5;

    Matrik[0][2] = 10.0;

    Matrik[1][2] = 340.9;

Atau kita dapat menginisialisai array multi dimesi pada saat pendeklarasian dengan cara :

    Double matrik [ ] [ ] = {

                {20.5, 10.9, 309.0}

                {-8.8, 98.7, 100.0}


D.    Kerangka Program Java

Program dalam java dibagi-bagi menjadi class-class. Oleh karena itu program dalam java dimulai degan kata kunci class atau public class. Lihat Contoh Berikut :

Program selalu dimulai dengan pembuka blok yaitu kurung kurawal buka, dan diakhiri dengan penutup blok yaitu kurung kurawal tutup. Perlu juga diperhatikan bahwa class dalam java yang bersifat public harus disimpan dalam file sama dengan nama class dan ditambah ekstensi java dalam hal ini bersifat case sensitive. Jadi program diatas harus disimpan dalam file yang bernama Hello Java.

Prasyarat sebuah program aplikasi (yang bias dieksekusi) dalam java adlah mempunyai metode (fungsi) sebagai entry point (pintu masuk) yang bernama main () untuk memulai eksekusi.

Main () adlah sebuah metode dengan argument array dari String yang bernama argv. Klasifikasi dari metode main () adalah public static yang artinta bias diakses oleh metode diluar class tersebut. Sedangkan kata kunci void menjelaskan bahwa metode main () tidak memberikan nilai balik (return value) ke pemanggil.

Perintah (statement) System.out.Println(), merupakan perintah untuk mencetak string yang menjadi argument ke layer dan seteleah pencetakan akan ganti baris. Perlu diperhatikan bahwa antara satu petintah yang ain dipisah dengan semi colom (;).

Program dalam java yang kita tulis harus kita compile dengan java compiler engan perintah :

C:\>javac Hello.java

Javac adalah program java compiler, sedangkan Hello java adlah program yang akan di compile. Jika proses compile berjalan lancer maka akan dibuat file sesuai dengan nama file yang di compile ditambah dengan ekstensi class. Jadi proses compile di atas akan menghasilkan file cass yang bernama Hello.class. File class yang dihasilkan dari proses kompilasi dapat kita eksekusi dengan java interpreter dengan perintah :

C:\>java Hello

Setelah File Hello.class dieksekusi maka akan muncul di monitor :

Helo java Progremmer UMSIDA

Komentar

Pemberian komentar dalam program adlah penting karena akan memperjelas alur program serta akan memberikan dokumentasi yang jelas.

Pemberian komentar dalam java dapat dilakukan dengan memeberikan karakter //. Semua teks setelah // akan dianggap komentar dan diabaikan dalam proses kompilasi sampai dengan garis baru (new line). Contoh :

System.out.rintln(“Hello”)                    //mencetak kata hello

Salian dengan tanda //, penulisan komentar juga dapat menggunakan spasang tanda /* dan */. Jadi semua teks diantara tanda /* dan tanda */ adalah dianggap komentar dan diabaikan dalam proses kompilasi. Contoh :

/* perintah di bawah ini akan mencetak teks Hello java programmer */

System.out.println(“Hello java programmer”);

Kata Kunci

Program java mempunyai beberapa kata kunci yang tidak boleh kita gunakan sebagai nama variable, nama class dan yang lainnya. Kata kunci tersebut adalah :





Operator, 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 dalan Java, yaitu :

1.     Aritmatika Operator

Java mempunyai operator aritmatika seperti + (penjumlahan), - (pengurangan), *(perkalian), / (pembagian) dan % (modulus). Operator – operator ini beraku seperti dalam operasi aritmatika. Dalam java juga dimungkinkan untuk penyederhanaan penulisan operator seperti yang terlihat di bawah ini ;

Int a, b, c, d, e,

a = 15; b = 10; //=80; d=100; e=20;

a+ = 5; // sama dengan a = a+5

b- = e; // sama dengan b = b-e

c* = b; //sama dengan c = c*b

d/ = 4; // sama dengan d = d/4

e% = 3; // sama dengan e =e%3, hasilnya = 2

d++; // sama dengan d = d+1 (increment)

2.     Logika Operator

Ada tiga logika Operator dalam java yaitu :

            &&      Logika /and

            ||          Logika Or

            |           Logika Not

Ketiga operator tersebut dioperasikan terhadap Boolean data tipe yang menghasilkan Boolean data type juga (true atau false).

3.     Bit per bit operator

Variable bertipe long, int, short, byte dan char dapat mempunyai operator yang dioperasikan langsung kesusunan binernya (bit atau bit).

Seperti halnya aritmatika operator, Bit per bit operator juga bias dilakukan penyederhanaan penulisannya.

 

1.     Relasional

Operator relasional digunakan untuk membandingkan dua nilai. Hasil dari perbandingan tersebut adalah data tipe Boolean (true atau false).

Tipe variable di java seperti short, int, long, float, double, Boolean, dan Character dapat dibandingkan satu dengan yang lainnya.

Contoh :

Char c = ‘*’;

Int I = 0x2a;

Boolean b;

b = c = = i;

1.     Prioritas

Setiap operator mempunyai prioritas sendiri – sendiri sehinggi perhitungan matematika dilakukan sesuai prioritasnya. Lihat contoh dibawah ini :

C = a + b * d;

Akan dijalankan sesuai prioritas yaitu *,+,=

Dibawah ini diberikan table prioritas dari operator, urutan prioritas dari atas ke bawah. Operator yang sama prioritasnya akan dioperasikan dari kanan ke kiri.


1.     Pertanyaan if

Pertanyaan if adalah control flow yang paling sederhana pernyataan ini mengevaluasi suatu ekspresi. Jika ekspresi benar (true) maka bok pernyataan akan dijalankan. Sebaliknya computer akan melompati blok pernyataan tersebut. Sintaks dari pernyataan if :

If (ekspresi)

            Pernyataan;

2.     Pernyataan if-else

Pernyataan if-else mengevaluasi suatu ekspresi. Jika ekspresi benar (true) maka blok pernyataan dijalankan. Sebaliknya computer akan menjalankan blok pernyataan yang lain. Sintaks dari pernyataan if-else:

If(ekspresi)

            Pernyataan_1;

Elsa

            Pernyataan_2;

3.     Pernyataan switch, case dan break

Switch digunakan untuk percabangan (seleksi) lebih dari dua. Ini digunakan untuk menghindari pergunaan if-else yang berlapis-lapis.

4.     Pengulangan (Loop)

Pengulangan dengan while

Alur program blok while akan dilakukan berulang-ulang selama ekspresi benar (true). Sintaks dari pengulangan while adalah sbb :

While (ekspresi)

            Permyataan;

Pengulangan dengan do-while

Pengulangan dengan while pemeriksaan ekspresi dilakukan sebelum pengulangan. Ada kalanya pengulangan pemeriksaan ekspresi dilakukan setelah pengulangan. Jadi minimal satu kali pengulangan dilakukan. Pengulangan ini menggunakan do-while, sintaksnya.

            do

                        pernyataan;

                        while (ekspresi);

Pengulangan dengan for

pengulangan dengan for menyerupai while, namun dilengkapi dengan inisialisasi, test kondisi dan update counter. Jadi sintaks pengulangan dengan for adalah :

for (inisialisasi_counter ; test_kondisi ; update_counter) {

            instruksi;

            _ _ _ _ _

};

Inisialisasi_counter dilakukan sekali pada saat akan dilakukan pengulangan, test_kondisi dipriksa setiap kali sebelum pengulangan dilakukan, sedangkan update_counter dilakukan setiap kali selesai pengulangan.

Break, continue

Dalam pengulangan break digunakan untuk mematahkan (mengakhiri) pengulangan secara paksa. Sedangkan continue digunakan untuk melanjutkan pengulangan berikutnya secara paksa dengan mengabaikan perintah dibawah pernyataan continue.

String

String adalah objek yang terdiri ats deretan karakter. Tidak seperti array dari karakter, String tidak perlu ditentukan jumlah Panjang karakternya. String dapat langsung di inisialisasi tanpa kata kunci new, contoh :

            String str = “ Hello “;

            Str = str + “ Java Programmer “ ;

String dapat juga diciptakan melalui cara berikut :

            Char c_arr [ ] = { ‘h’, ‘e’, ‘l’, ‘0’ );

            String s1 = new String {c_arr} ;

            String s2 = new String (c_arr, 2, 2) ;

            // offset ke 2 sebanyak 2 karakter

Ada beberapa method daam String yang perlu kita ketahui antara lain :

Int length ( )

Memberikan nilai balik (return value) penjang dari actual string.

Char charAt 9int index)

Memberikan nilai balik berupa karakter pada posisi index dalam actual string.

Public class TestString {

            Public static void main (String argv[]) {

                        String table[ ] = {“amir”, “Bambang”, “hasan”};

                        String str = “Ini adalah # String yang diproses”;

                                    Boolean found=false;

                                    Int I;

                                    For (I=0; I<str.length(); I++) {

                                                If (str.charAt(I) = =”#”) {

                                                            Found=true;

                                                            Break;

                                                }

                                    }

                                    If (found)

                                                System.out.println(“Posisi =”+I) ;

} }

Int indexOf (char ch)

Memberikan nilai baik posisi pada String dimana karakter ch berada

Int indexOf (String s)

Memberikan nilai balik posisi index pada String dimana string s ditemukan

Int indexOf (char ch, int starPos)

Int indexOf (String s, int startPos)

Sama dengan indexOf sebelumnya, hanya pencarian tidak dimulai dari index 0, melainkan dari index = startPos

Int lastIndexOf(char c)

Int lastIndexOf(char c, int startPos)

Int lastIndexOf(String s);

Int lastIndexOf(string s, int startPos)

Method lastIndexOf ( ) mencari karakter/String pada String yang diberikan, hanya pencarian dimulai dari kanan ke kiri.

Boolean equals (String s)

Membandingkan actual string dengan string s dengan mengabaikan huruf besar maupun huruf kecil. Jika sama maka akan memeberikan nilai balik true, sebaliknya akan memberikan nilai balik false.

Strin substring (int offset)

Memberikan nilai balik isi actual string dari posisi offset sampai akhir string

String substring(int offset, int endIndex)

Memberikan nilai balik si actual string dari posisi offset sampai posisi endIndex

String toLowerCase( )

Mengubah string menjadi huruf kecil semua

String toUpperCase ( )

Mengubah spasi yang berdekatan dalam string

Char [ ] getChars(int startPos, int endPos, char buffer[ ], int offset)

Mengambil karakter dan starPos sampai endPos, dan menyimpannya ke dalam buffer dimulai dari index = offset.

Int compareTo(String str)

Membandingkan String dalam UTF (Unicode Transfer Format) dengan nilai balik 0 bila sama, negative bila kecil, dan posistif bila lebih besar.

String Tokenizer

Class String Tokenizer berfungsi untuk membagi string berdasarkan token tertentu. Class ini sangat membantu untuk mengintrupsikan suatu string ke suatu maksud tertentu. Contoh yang paling popular adalah membagi kalimat menjadi beberapa kata. Kita juga membaca data dari file kemudian data tersebut kita uraikan berdasarkan token tertentu.


Class

Class merupakan bagian pokok dari pemrogrman Berorientasi Objek (Object Oriented Programming). Class merupakan cara merakit data-data dan menentukan semua metode yang diperlukan untuk mengkases menggunakan dan mengubah data-data tersebut. Dalam java class juga bias dianggap sebagai type dari object.

Setiap cass memiliki dua hal utama. Yang pertama adalah yang kita sebut state/atribut/property. State dalam objek tidak lain adalah nilai dari setiap variable. Bagaimana yang kedua adalah tool atau method yang menentukan utility yang dimiliki oleh class.

1.     Pendeklarasian class

Sintaks pendeklarasian class dalam java adalah

            Modifiers class NamaClass {

                        <class attribute list>

                        <class method list>

}

Modifier menetukan bagaimana class dapat ditangani pada fase development berikutnya. Ada tiga jenis modifier dalam class yaitu public, final, abstract dan friendly.

·       Public

Dengan menempatkan public didepan pendeklarasian class, mempunyai arti bahwa class didefinisikan untuk punlic. Ini berarti class tersebut dapat dipakai atau dikembangkan (extend) oleh sembarang object.

·       Final

Dengan menempatkan final didepan pendeklarasian class menandakan bahwa class tersebut tidak bias memiliki subclass (turunan). Dengan kata lain class tersebut tidak bias dikembangkan.

·       Abstract

Dengan menempatkan class didepan pendeklarasian class, menandakan bahwa kita tidak bias menciptakan objek dari class tersebut. Class tersebut harus dipakai sebagi super class dari class lain. Dalam abstract class paling tidak ada satu method yang belum komplit.

·       Friendly

Secara default modifiers class adalah friendly artinya class tersebut boleh dikembangkan atau dipakai oleh class lain dalam satu paket (package). Jika kita tidak memberikan modifiers didepan pendefinisian class maka class bersifat friendly.

<class attribute list> adalah daftar semua attribute (variable) dari class, sedangkan <class method list> adalah daftar semua method (fungsi/operasi) yang bias dilakukan oleh class tersebut.

            Sintaks pendefinisian class attribute :

                        modifiers data_type nama attribute ;

            Sintaks pendefinisian class method :

                        modifiers return_type nama method (<parameters list>)

Akses modifiers dalam class attribute maupun class method menentukan bagaimana aksesbilitas attribute dan method dari class lain. Ada beberapa akses modifiers yaitu:

·       Friendly

Secara default akses modifiers adalah friendly, yang berarti bahwa attribute/methode bias diakses oleh class lain dalam satu paket (package).

·       Public

Akses modifiers public membuat attribute/method tersebut dapat diakses oleh pihak luar manapun.

·       Private

Akses modifiers private membuat attribute/method hanya diakses oleh class itu sendiri.

·       Protected

Akses modifiers protected membuat attribute/method hanya dapat diakses oleh class itu sendiri dan class turunannya (subclassnya).

·       Final

Akses modifiers final membuat attribute/method tersebut tidak boleh diubah pada saat eksekusi, sebab attribute/method ini tidak boleh diubah maka harus diberi nilai pada saat pendeklarasian missal final int SIZE 5;

·       Static

Akses modifiers static membuat attribute tersebut mempunyai nilai sama untuk samua objek dari class tersebut.

2.     Konstruktur

Konstruktur adalah method dengan property yang unik dan untuk keperluan inisialisasi pada objek diciptakan. Jadi konstruktur digunakan memberikan nilai kepada attribute tertentu pada saat objek diciptakan. Konstruktor didefinisikan dengan nama sama dengan nama class. Konstruktor tidak perlu return typr sebab konstruktor secara actual dipanggil sebagai method. Konstruktor ini dipanggil pada saat kita memberikan perintah new.

3.     Inherintance (Pewarisan)

Inherintance (Pewarisan) adalah suatu mekanisme yang memungkinkan satu class mewarisi (memiliki) attribute dan method dari class lain. Mekanisme pewarisan ini diperlukan untuk mengembangkan class-class yang sudah ada tanpa harus membuka source code dari class-class tersebut. Class yang mewarisi disebut subclass sedangkan class yang diwarisi disebut super class. Pewarisan class dalam java menggunakan sintaks :

            modifier<NamaSUbClass> extends<NamaSuperClass> {

}

4.     Kata Kunci This

This adalah referensi yang menunjuk pada objek actual. Nilai this ini menunjukkan bahwa objek yang dimaksud adalah objek yang sedang aktif itu sendiri. Contoh penggunaan dari this adalah sbb :

5.     Overriding Method

Overidding method adalah suatu mekanisme pewarisan class dimana subclass mendefinisikan ulang satu atau lebih method (fungsi) yang ada di super calss. Dalam overriding ini subclass bias mendefinisikan method (fungsi) yang di-override dengan fungsi yang baru sama sekali, atau menambahi method (fungsi) yang di-override yang sudah ada dengan fungsional-fungsional yang ain. 


    Threads

Property unik dari java adalah bahwa Java memberi suport adanya threads. Threads memperbolehkan kita melakukan banyak hal pada waktu yang bersamaan. Threads adalah komponen java yang memungkinkan kita untuk membuat program yang bersifat multitasking programming. Sebenarnya setiap program dalam java selalu menggunakan paling tidak satu thread.

Kita bisa membuat aplikasi dan class berjalan dalam threads yang terpisah dengan dua cara, yaitu :

·       Mengembangkan dari class Thread (extending class Thread)

·       Mengimplementasikan Runnable interface

 

Mengembangkan class Thread

Dengan menggunakan extends Thread, mekanisme Thread dapat diaplikasikan dengan membuat fungsi run ( )

Untuk melihat concurrency (multitasking) pada program tersebut tambahkan method sleep( ) untuk actual Thread (current Thread). Method sleep( ) hanya dapat dilakukan dengan menangkap sinyal interrupt dengan mekanisme try & cacth.

 

Method yang berhubungan dengan Thread

start( )

Mengaktifkan Thread Obyek Thread kemudian akan menjalankan method run( ).

stop( )

Menghentikan Thread yang sedang aktif.

sleep( int delta)

Menunda aktifitas Thread untuk delta millisecond.

 

Contoh selanjutnya adalah mendemonstrasikan animasi yang dilakukan dengan menjalankan Thread. Tugas Thread adalah melakukan repaint( ) pada obyek. Setelah repaint( ) dilakukan, Thread beristirahat untuk beberapa detik dan untuk kemudian melakukan repaint( ) kembali. Obyek Thread kemudian akan menjalankan method run( ).

Kemudian class TThread digunakan oleh class animasi di bawah ini. Class animasi merupakan pengembangan (extend) dari class Applet. Class Applet digunakan untuk class-class yang digunakan dalam aplikasi applet (untuk ditampilkan dalam html file)

Setelah kita compile kedua class tersebut, yaitu class TThread dan class Animasi, kita dapat membungkusnya ke dalam file html. Selanjutnya kita dapat mengeksplore file tersebut dengan internet browser.

 

Mengimplementasikan Runnable Interface

Pada contoh di atas Thread digunakan dengan mengembangkan class Thread, yang mana berarti bahwa Subclass Thread hanya dapat mewarisi sifat-sifat dari Thread. Pengikatan Class ini dapat dihindari dengan menggunakan konsep interface. Dengan mengimplementasikan Runnable interface. Interface Runnable ini hanya berisi satu method yang harus diimplementasikan, yaitu run().

Konstruktor Thread adalah :

            Thread(Runnable ThreadObject)

Atau

            Thread(Runnable ThreadObject, String nama Thread)

 

ThreadObject pada contoh di atas adalah this, yang merupakan Obyek itu sendiri yang mengimplementasikan Runnable. Method is Active( ) akan memberikan nilai true jika Thread actual aktif, dan false jika tidak aktif.



Exception (Eksepsi)


Eksepsi adalah mekanisme yang memungkinkan program untuk menangkap kondisi-kondisi tertentu yang membutuhkan penanganan khusus. Eksepsi dapat berupa kesalahan yang terjadi dalam program pada saat run time. Format eksepsi adalah :

try menyatakan bahwa dalam blok try dapat terjadi suatu ekspresi dan bila ekspresi terjadi, maka aktifkan program yang berada dalam kelompok (blok) catch sesuai dengan tipe ekspresinya.

Object e dari tipe ekspresi dapat digunakan sebagai referensi penanganan eksepsi aktual.

finally menyatakan bahwa apapun jenis tipe ekspresinya, maka program dalam blok ini harus tetap dijalankan.

Dengan menangkap eksepsi program tidak langsung berhenti dan melaporkan kesalahan tersebut, melainkan membelokkan dengan program pengaman tertentu.

Pada saat run time, jika java menemukan kesalahan dan melempar pesan ke program. Dengan pesan ini, program akan melakukan suatu aksi tertentu. Mekanisme melempar ini disebut juga sebagai throw, alur program akan dihentikan, kemudian program pengendali (exception handling) akan diaktifkan.

 

Throw

Throw digunakan secara eksplisit untuk membuang sebuah eksepsi. Contoh berikutnya, TestThrow mendefinisikan Obyek Eksepsi “NullPointerException” pada sebuah variabel t.

Dengan instruksi throw, program Eksepsi untuk kemudian ditangkap oleh instruksi catch. Namun tentunya yang ditangkap harus sesuai degan tipe eksepsi yang dilemparkan. Dalam hal ini program main menangkap sinyal tersebut dan instruksi program diteruskan pada blok program disitu.

 

throws

Eksepsi selalu ditangkap dengan catch pada blok dimana eksepsi tersebut dilempar. Tanpa catch, program tidak akan dikompilasi. Program dibawah ini menghilangkan try dan catch pada subroutine demo( ), namun dengan menggunakan tambahan kata kunci throws Exception.




Java Graphical User Interface


Graphical User Interface

Graphical User Interface merupakan antar muka grafis yang memfasilitasi interaksi antara pengguna dengan program aplikasi. Salah satu komponen dalam bahasa pemrograman java untuk membangun GUI adalah Swing. Komponen ini didefinisikan di dalam paket javax,swing. Swing diturunkan dari Abstract Windowing Toolkit dalam paket java.awt. Hirarki dari komponen Swing adalah :

Java.swing.Jcomponent => java.awt.Container => java.awt.Component => java.lang.Object.

Jcomponent adalah superclass dari semua komponen Swing. Sebagian besar fungsionalitas komponen diturunkan dari superclass ini. Beberapa komponen utama dalam GUI adalah:

1.     Containers : merupakan wadah yang berfungsi untuk menempatkan komponen-komponen lain didalamnya.

2.     Canvas : merupakan komponen GUI yang berfungsi untuk menampilkan gambar atau untuk membuat progarm grafis. Dengan canvas, kita bisa menggambar berbagai bentuk seperti lingkaran,segitiga,dll

3.     User Interface (UI) components : contohnya adalah buttons,list,simple popup menus, check boxes,text fields,dan elemen lain.

4.     Komponen pembentuk window : seperti frames, menu bars,windows,dan dialog boxes

Komponen-komponen Dasar User Interface dengan Swing

Berikut adalah beberapa komponen dasar antarmuka pengguna (user interface) yang disediakan oleh Swing :

1.     Top level containers: adalah container dasar untuk meletakkan komponen-komponen lain. Contohnya adalah JFrame,Jdialog,dll

2.     Intermediate level containers : merupakan kontainer perantara. Umumnya digunakan hanya untuk meletakkan atau mengelompokkan komponen-komponen yang digunakan, baik itu containeratau berupa atomic component. Contoh dari Intermediate level container adalah Jpanel (panel).

3.     Atomic component : merupakan komponen yang memiliki fungsi khusus. Umumnya pengguna langsung berinteraksi dengan komponen ini. Contohnya JButton (tombol),JLabel (label),JtextField,JtextArea (area untuk menulis teks),dll

4.     Layout Manager Berfungsi  untuk mengatur bagaimana tata letak/posisi dari komponen yang akan diletakkan, satu sama lain didalam suatu container. Secara default ada 6 buah layout : BorderLayout,BoxLayout,CardLayout,GridBagLayout & GridLayout.

5.     Event Handling : Menangani event yang dilakukan oleh user seperti menekan tombol,memperbesar atau memperkecil ukuran frame,mengklik mouse,mengetik sesuatu dengan keyboard,dll

Konstruktor untuk membentuk JFrame adalah JFrame() atau JFrame (String Nama Frame). Salah satu method yang sering digunakan dikelas JFrame adalah setDefaultCloseOperation (int ops).

Method ini berfungsi untuk mengatur apa yang akan dikakukan oleh program ketika tombol close di klik. Parameter method tersebut diantaranya adalah:

1.     JFrame.DO_NOTHING_ON_CLOSE : tidak ada satu aktivitas pun yang dilakukan secara otomatis apabila frame ditutup.

2.     JFrame.HIDE_ON_CLOSE : frame hanya di sembunyikan, namun secara fisik frame masih ada dimemori sehingga dapat dimunculkan kembali. Merupakan aktivitas default.

3.     JFrame.DISPOSE_ON_CLOSE : menghilangkan tampilan frame dari layar, menghilangkannya dari memori,dan  membebaskan resource yang dipakai.

4.     JFrame.EXIT_ON_CLOSE : menghentikan eksekusi program.

 

Top level container yang lain adalah JDialog. Berbeda dengan JFrame, JDialog tidak dibuat berdiri sendiri, melainkan dibuat bersama-sama dengan frame sebagai parent-nya. Jika frame parent-nya ditutup, maka dialog akan dihapus dari memori. Kemunculan dialog akan membuat semua input terhadap frame parent-nya akan terblokir sampai dialog tersebut ditutup.

 

Layout Management

Untuk mengatur layout dari setiap komponen-komponen GUI yang diletakkan pada container, digunakan layout manager. Setiap pane secara default pasti memiliki layout manager. Jika ingin mengubah layout-nya, gunakan void setLayout(LayoutManeger mgr) java menyediakan 6 buah class standar yang dapat digunakan  sebagai layout manager yang terdapat dalam package java.awt, yaitu FlowLayout,GridLayout,BorderLayout,CardLayout,GridBagLayout,BoxLayout.

1.     Flow Layout merupakan layout manager default yang digunakan JPanel. Layout manager ini meletakkan komponen yang ada secara berurutan dari kiri ke kanan dan berpindah baris jika dbutuhkan. Jarak antar komponen baik secara vertikal maupun horizontal dapat ditentukan sendiri. Selain itu, kita bisa menentukan alignment dari komponen yang diletakkan, yaitu rata kanan, rata kiri atau di tengah.

2.     GridLayout Merupakan Layout Manager berbentuk grid. Semua komponen dalam layout ini memiliki ukuran yang sama. Konstruktor GridLayout sebagai berikut :

a.      GridLayout(rows,columns,hGap,vGap) Konstruktor ini mendefinisikan jumlah baris,kolom,dan ukuran gap horizontal/vertikal antar elemen dalam pixel.

b.     GridLoyout(rows,columns). Konstruktor yang digunakan dengan nilai default hGap dan vGap sama dengan 0.

3.     BorderLayout adalah default manager untuk ContentPane. Layout ini menempatkan komponen dengan pendekatan arah mata angin north, south, west, center, east

4.     Cardlayout digunakan untuk menampilkan container-container/panel-panel seperti tumpukan kartu. Hanya satu container yang akan tampil untuk satu waktu. Komponen yang diletakkan dengan layout ini berupa object yang bertipe intermediate container adalah tabbed pane (JTabbedPane).

5.     GridBaglayout

Grid bag layout adalah pengaturan layout yang dapat digunakan untuk meletakkan komponen secara bebas. Setiap komponen dapat menepati ukuran yang berbeda dengan komponen lainnya.

6.     Boxlayout digunakan untuk meletakkan komponen berurutan ke kanan (sumbu X) atau berurutan ke bawah (sumbu Y). Penggunaan BoxLayout menggunakan class Box dimana merupakan container yang secara internal telah menggunakan BoxLayout sebagai layout manager-nya.


Jangan lupa kunjungi juga :

UMSIDA

Fakultas SAINTEK UMSIDA

Tidak ada komentar:

Posting Komentar

Chandra Hary Pratama UMSIDA

  Rekayasa Perangkat Lunak Sistem Informasi Monitoring Dan Evaluasi Hasil Belajar Siswa Berbasis Website 1.1     Latar Belakang Pemanfaata...