Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
PEMROGRAMAN BERORIENTASI OBJEK
“ GUI ”
Oleh : Farhat, ST, MMSI, MSc
{ Diolah dari berbagai Sumber }
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
AWT (Abstract Window Toolkit)
AWT (Abstract Window Toolkit) adalah sekumpulan dari aplikasi program antarmuka
atau Application Program Interfaces(API) yang digunakan oleh para pemograman java untuk
membuat objek Graphical User Interface (GUI) seperti Button, Scroll bars dan Windows.
Merupakan fasilitas yang diberikan bahasa pemrograman Java untuk menangani tampilan
antarmuka pengguna atau disebut GUI seperti objek button dan text field.
AWT adalah tampilan dasar dari setiap target platform (Windows, Macintosh, Solaris) atau
berdiri sesuai dengan mekanisme sebuah platform. AWT terdiri dari banyak widget grafik yang
dapat ditambahkan dan diatur dalam tampilan seperti butons, checkbox, radiobutton, menu, list,
canvas, textfield, scrollpane, panel.
Kelebihan AWT : Didukung oleh browser kuno maupun baru, karena paket ini telah
diimplementasikan sejak lama.
Kekurangan AWT : Bersifat Heavyweight dan Opaque (tidak transparan)
Berikut ini adalah daftar dari beberapa class penting pada container yang telah disediakan oleh
AWT.
1. Componen : Abstract class untuk object yang dapat di tampilkan pada console dan
berinteraksi dengan user. Bagian ini merupakan bagian utama dari AWT.
2. Container : Abstract Subclass dari kompanen class. Sebuah komponen yang dapat
menampung komponen yang lainnya.
3. Panel : Turunan dari container class. Sebuah frame atau windows tanpa titlebar, menubar,
tidak termasuk border. Super class dari aplet class.
4. Windows : turunan dari container class, top level windows dimana berarti tidak bisa
dimasukan dalam object yang lainnya. Tidak memiliki border dan menu bar.
5. Frame : turunan dari windows class. Windows dengan judul, border, menubar, dan
pengaturan ukuran di pojok. Memiliki empat konstruktor, dua diantaranya seperti :
Frame(), Frame(String title)
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
Untuk mengatur ukuran window, menggunakan method setSize.
void setSize(int width, int height)
mengubah ukuran komponen ini dengan width dan height sebagai parameter.
void setSize(Dimension d)
mengubah ukuran dengan d.width dan d.height berdasar pada spesifikasi Dimension d.
Default dari window adalah not visible atau tak tampak hingga Anda
mengatur visibility menjadi true. Inilah syntax untuk method setVisible.
void setVisible(boolean b)
Komponen-komponen AWT
1. java.awt.Button : Tombol yang jika ditekan akan mengerjakan instruksi tertentu
2. java.awt.CheckBox : Tombol berbentuk kotak yang dapat di-check atau n-check
3. java.awt.Choice : Menu yang terdiri dari beberapa pilihan
4. java.awt.Label : Untuk meletakkan teks statis dan tidak dapat diedit
5. java.awt.List : Untuk menyajikan beberapa pilihan teks dalam satu daftar yang dapat di-
scroll (gulung)
6. java.awt.Panel : Menyediakan space untuk meletakkan komponen atau panel lainnya
7. java.awt.Scrollbar : Untuk memilih nilai dalam range tertentu
8. java.awt.TextArea : Untuk menampilkan teks multi-line dan dapat diedit.
Berikut ini adalah contoh program sederhana menggunakan AWT:
import java.awt.*;
public class AwtPertama
{
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
public static void main(String[] bowo)
{Frame win=new Frame(" ini AWT");
win.setSize(300,200);
win.show();}
}
Pada program diatas dilakukan import terhadap java.awt.*, karena pada program diatas
menggunakan komponen AWT. Untuk membentuk sebuah window, harus dibuat sebuah objek
dari class Frame, program diatas objek win terbentuk dari class Frame. Sedangankan metode
setSize, digunakan untuk mengatur ukuran window, dan metode show digunakan untuk
menampilkan window.
Adapun komponen GUI pada AWT : Grafik Beberapa method grafik ditemukan dalam class
Graphic.
Dibawah ini adalah daftar dari beberapa method.
1. Drawline
2. FillRect
3. DrawRect
4. ClearRect
5. DrawPolyline
6. DrawPolygon
7. FillPolygon
8. Getcolor
9. Setcolor
10. Getfont
11. Setfont
12. DrawString
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
LAYOUT MANAGER
Layout adalah bagaimana kita mengatur posisi atau tata letak komponen yang berada di
dalam sebuah tampilan. Layout di dalam pemrograman java dapat kita atur melalui Java
Container seperti JFrame , JDialog, atau JPanel.
Layout Manager digunakan dalam organisasi dari panel dan bingkai. Tata letak yang tetap
seharusnya dipilih untuk mengakomodasikan, resizings frame dan penggunaan . Layout manager
bertugas menyusun komponen-komponen(button, label, checkbox, dll) di dalam suatu container
(panel, frame, dll) . Layout manager menentukan posisi danukuran setiap komponen di dalam
container. Proses ini akan berbeda untuk setiap class layout yang digunakan. AWT dan Swing
memiliki beberapa layout manager standar yang penggunaannya seringkali dikombinasikan
sesuai situasi dan kebutuhan kita.
Untuk mengubah Default Layout Manager setiap container memiliki default layout manager.
Pada saat kita membuat sebuah container (misal: panel, frame, tabbed pane, split pane, dll), maka
container tsb memiliki objek LayoutManager masing-masing.
Kita dapat mengubah layout manager default tersebut dengan suatu layout yang baru dengan
menggunakan method “setLayout()” .
Macam-macam Standard Layout Manager terdiri dari:
1. Flow Layout
2. Grid Layout
3. Border Layout
4. Box Layout
5. Card Layout
6. GridBag Layout
7. Spring Layout
8. Group Layout
Layout Manager merupakan komponen untuk mengatur posisi dari container. Secara
default, terdapat 5 macam layout yaitu Class border layout, Box Layout, Flow Layout, Grid bad
layout dan Grid layout.
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
BorderLayout
1. Menyusun komponen berdasarkan lokasi geografis: NORTH, SOUTH, EAST, WEST, and
CENTER.
2. Secara optional, kita dapat juga memberikan padding di antara komponen.
3. BorderLayout merupakan layout default untuk JWindow dan JFrame.
4. Karena setiap komponen diasosiasikan dengan suatu arah geografis, akibatnya layout ini
hanya dapat menangani maksimal 5 komponen.
FlowLayout
1. Merupakan layout manager yang simpel.
2. FlowLayout menyusun komponen berdasarkan ukuran default masing-masing, dengan posisi
mulai dari kiri ke kanan dan dari atas ke bawah di dalam container yang digunakan.
3. FlowLayout dapat memiliki “row justification”: LEFT, CENTER, atau RIGHT serta
“padding” horizontal/vertical.
4. Secara default, flow layout menggunakan justification CENTER. Artinya, semua komponen
akan disimpan di posisi tengah-tengah.
5. FlowLayout merupakan default untuk JPanel.
CardLayout
1. merupakan layout manager yang mampu menciptakan efek “tumpukan” komponen. Artinya,
layout ini tidak memposisikan komponen di lokasi-lokasi tertentu di dalam kontainer,
melainkan menampilkannya satu demi satu.
2. Penggunaan CardLayout biasanya untuk membuat panel yang bersifat custom-tabbed.
3. Namun, sebenarnya kita dapat membuat panel tersebut dengan menggunakan komponen
JTabbedPane.
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
BoxLayout
1. Javax.swing memiliki beberapa tambahan layout manager lagi, salah satunya adalah:
BoxLayout.
2. Layout manager ini sangat berguna untuk membuat toolbars sederhana atau vertical button
bars.
3. Cara kerjanya sangat sederhana yaitu menempatkan komponen dalam satu baris atau satu
kolom.
4. Box memiliki beberapa methods yang akan mempermudah kita dalam menggunakan
BoxLayout manager, yaitu:
4.1 CreateHorizontalBox() - untuk membuat box horizontal
4.2 createHorizontalGlue() - untuk merekatkan komponen
4.3 createHorizontalStrut(int n) - untuk memberi jarak antar komponen
4.4 createVerticalBox() - untuk membuat box vertical
4.5 createVerticalGlue() - untuk merekatkan komponen
4.6 createVerticalStrut(int n) - untuk memberi jarak antar komponen
GridLayout
1. menempatkan komponen dalam bentuk “rectangular grid”. Ada 3 constructor untuk
GridLayout=
2. GridLayout(): membuat layout dengan satu kolom per komponen.
3. GridLayout(int rows, int cols): membuat suatu layout berdasarkan jumlah baris dan
kolom yang diinginkan.
4. GridLayout(int rows, int cols, int hgap, int vgap): membuat layout berdasarkan
jumlah baris dan kolom yang diinginkan, serta ukuran jarak (gap) horisontal maupun
vertical untuk setiap baris dan kolom tersebut.
5. GridLayout menempatkan komponen dengan ur utan dari kiri ke kanan dan dari atas
ke bawah.
6. GridLayout akan memaksa setiap komponen untuk menempati space container yang
kosong serta membagi rata ukuran space tersebut.
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
GridBagLayout
1. merupakan layaout manager yang sangat fleksibel.
2. Layout ini memampukan kita untuk memposisikan komponen relatif terhadap komponen
lainnya berdasarkan constraint tertentu.
3. Dengan menggunakan GridBagLayout, kita dapat menciptakan layout apapun juga, tanpa
batas.
4. Komponen disusun pada koordinat tertentu pada sebuah grid yang disebut “logical
coordinate”. Logical coordinate berarti bahwa koordinat suatu komponen ditentukan
oleh sekumpulan komponen lainnya.
5. Baris dan kolom dari grid tersebut bersifat “stretch” yang bergantung pada size dan
constraint yang dimilikinya.
SWING
Swing merupakan salah satu cara untuk mengimplementasikan pemrograman window
pada java. Swing menggunakan metode “Painted” yaitu, setiap User Interface Elemen di Gambar
ke dalam window/frame kosong.
Komponen swing bersifat lightweight, yaitu komponen dapat ditampilkan sama pada sistem
operasi multi-platform. Semua komponen pada Swing diawali dengan huruf “J”, misalnya
Jbutton, JtextArea, Jlabel
Semua class pada Java Swing diambil dari package javax.swing.
Swing Package :
1.javax.accessibility
2.javax.swing
3.javax.swing.border
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
4.javax.swing.colorchooser
5.javax.swing.event
6.javax.swing.plaf
7.javax.swing.plaf.basic
8.javax.swing.plaf.metal
9.javax.swing.plaf.multi
10.javax.swing.plaf.synth
11.javax.swing.text
12.javax.swing.text.html
13.javax.swing.text.rtf
14.javax.swing.table
15.javax.swing.tree
16.javax.swing.undo
Komponen-Komponen Swing
Dalam konteks antarmuka pengguna, komponen merupakan bagian fundamental di Java. Pada
prinsipnya, segala sesuatu yang kita lihat di tampilan aplikasi Java adalah suatu komponen,
seperti window, menu, dan button. Container adalah jenis komponen yang ”menampung” dan
mengelola komponenkomponen lainnya. Agar suatu komponen dapat digunakan, biasanya harus
diletakkan di sebuah container.
Komponen-komponen Swing dapat diklasifikasikan ke dalam 3 bagian yaitu:
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
Top Level Container
Top Level Container merupakan container dasar dimana komponen-komponen lainnya
diletakkan. Contohnya Frame, Dialog dan Applet yang diimplementasikan dalam kelas Jframe,
Jdialog dan Japplet.
a. Frame merupakan top-level- container dari komponen swing. Terdapat 2 cara untuk
mengimplementasikan JFrame pada pemrograman swing java. Cara pertama dengan
membuat objek dari class JFrame pada kelas yang mengimplementasikan GUI. Setelah objek
JFrame dibentuk, komponen lain dapat ditambahkan. Cara kedua adalah dengan membuat
sebuah class yang mengextends JFrame tersebut
b. Dialog adalah Turunan dan korespondensi pada dialog class dalam package AWT. Biasanya
digunakan untuk menginformasikan sesuatu kepada pengguna atau prompt pengguna untuk
input.
c. Applet adalah Turunan dan korepondensi ke Applet class dalam package AWT. Juga sedikit
tidak cocok dengan applet class dalam kaitannya dengan menambahkan komponen pada
kontainer.
Intermediate Container
Intermediate Container merupakan komponen perantara dimana komponen lainnya
diletakkan. Salah satu contoh Container ini adalah Jpanel. JPanel merupakan container yang
termasuk ke dalam content pane. Content pane merupakan tempat peletakan komponen swing
seperti button, textfield dan komponen “swing control” lainnya. Komponen tersebut dapat
diletakkan langsung ke dalam JFrame, tapi JFrame bertindak sebagai top-level- container, dan
bukan content pane, sehingga lebih baik meletakkan komponen “swing control” pada JPanel dan
bukan pada JFrame.
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
Atomic Component
Atomic Component merupakan komponen yang memiliki fungsi spesifik dan biasanya
user berinteraksi langsung dengan komponen jenis ini. Contohnya adalah Jbutton, Jlabel,
jtexfield dan jtextarea
a. Button Merupakan komponen untuk membuat tombol. Kelas yang digunakan adalah JButton.
Pada komponen ini, selain keterangan teks, dapat juga ditambahkan image/icon. Contoh
pembuatan objek:
JButton b2 = new JButton("Tombol B2");
Atau:
ImageIcon leftButtonIcon = createImageIcon("images/right.gif");
JButton b1 = new JButton("Tombol B1", leftButtonIcon);
Pada button dan menu dapat ditambahkan mnemonic. Mnemonic merupakan penggunaan tombol
dengan menggunakan keyboard. Biasanya terdapat 1 huruf yang digunakan sebagai penanda
yang berfungsi sama dengan menekan tombol.
b. Label merupakan komponen untuk menghasilkan “unselectable” gambar dan teks. Pada label
dapat diletakkan gambar (objek dari kelas ImageIcon) dan Teks (objek String). Parameter
pada konstruktor dapat berisi text dan image saja atau dapat berisi keduanya ditambah posisi
tampilan label tersebut.
c. TextField adalah kelas yang berguna untuk menciptakan objek yang ditujukan untuk
memasukkan data satu baris.
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
PERBEDAAN ANTARA AWT DAN SWING
AWT dan Swing menyediakan komponen GUI yang dapat digunakan dalam membuat
aplikasi Java dan applet. Tidak seperti beberapa komponen AWT yang menggunakan native
code, keseluruhan Swing ditulis menggunakan bahasa pemrograman Java. Swing menyediakan
implementasi platform-independent dimana aplikasi yang dikembangkan dengan platform yang
berbeda dapat memiliki tampilan yang Sama.
Begitu juga dengan AWT menjamin tampilan look and feel pada aplikasi yang dijalankan pada
dua mesin yang berbeda menjadi terlihat sama. Swing API dibangun dari beberapa API yang
mengimplementasikan beberapa jenis bagian dari AWT. Namun pada dasarnya, komponen AWT
dapat digunakan bersama dengan komponen Swing.
Perbedaan keduanya adalah, bahwa AWT adalah tampilan dasar dari setiap target platform
(Windows,Macintosh, Solaris) atau berdiri sesuai dengan mekanisme sebuah platform, hal
tersebut bagus untuk sebuah program yang simpel, tetapi menjadi sulit ketika
mengimplementasikan sebuah program yang lebih kompleks dan harus sesuai dengan target
platform. Setiap User Interface elemen seperti Button, TextField, ScrollBar memiliki tingkah
laku (behavior) yang berbeda di setiap platform. Yang lebih parah lagi, AWT User Interface
Library memiliki bug yang berbeda di setiap platform.
Maka hadirlah Swing yang menawarkan tampilan yang lebih kaya dan bagus. Swing tidak
berdasarkan platform yang dituju tetapi menggunakan metode “Painted” yaitu, setiap User
Interface Elemen di Gambar ke dalam window/frame kosong. Sehingga setiap User Interface
Elemen akan tampil dan berprilaku sama di setiap platform.
Sayangnya Swing lebih lambat tampil di layar. Dan ketika User Interface tampak sama di setiap
platform, maka juga akan tampak berbeda untuk tampilan standar sebuah platform.
Farhat, ST., MMSI., MSc
Pemrograman Berorientasi Objek Universitas Gunadarma
Daftar Pustaka
• Mariana, D & Paskarina, C. 2005., Peningkatan alokasi APBD – Membiayai Sektor Pendidikan. http://www.pikiran-
rakyat.com. Diakses pada tanggal 10 Nopember 2010.
• Millah, S., Meringankan Beban Pendidikan Rakyat Miskin, Mereka Tak Cuma Butuh Bantuan SPP. www.Google.co.id.
Diakses pada tanggal 10 Nopember 2010.
• Suharsaputra, U., 2007., Quality of Education. http://nalarekonomi.blogspot.com. Diakses pada tanggal 10 Nopember 2010.
Top Related