GUI atau kepajangan dari Graphical User Interface merupakan salah satu modelinteraksi antara manusia dan komputer. Selain GUI, ada juga model yang lain seperti Character User Interface (CUI) yang sering kita kenal dengan command line. Dari sisikenyamanan (attitude), kedua model ini memiliki fungsinya masing-masing.
Fungsi CUIbiasanya adalah administrator sistem berbasis sistem operasi LINUX. Bagi mereka, CUIdirasakan lebih nyaman dibandingkan dengan GUI, bahkan setelah GUI pada LINUXberkembang dengan pesat, mereka tetap bertahan untuk menggunakan CUI. Penggunaan GUI biasanya adalah mereka yang sudah terbiasa dengan sistem operasi Windows.
Graphical Unit Interface, merupakan perangkat pertama untuk mengendalikan fungsi-fungsi suatu software, dan membuat pengguna mudah untuk memahami bagaimanamenggunakan software tersebut. Kita dapat mengasumsikan bahwa GUI merupakansebagai bagian dari suatu software yang pertama kali ditangkap mata (secara interface).
Dimana suatu software akan kelihatan bagus, jika GUI tersebut tampak menarik.Java GUI sendiri secara umum sama dengan pemahaman GUI sendiri, namundisini GUI pada java adalah salah satu dari fasilitas Java dalam mengembangkan suatuaplikasi dengan memberikan suatu interface yang nantinya akan disesuaikan dengankebutuhan suatu aplikasi, baik skala kecil dan besar.
Intinya, GUI pada Java adalahkomponen-komponen penyempurna dalam sebuah sistem, seperti komponen navigasi,graphic, interface desktop, komponen menu, sinkronisasi antar interface dan semuanyaitu dirancang dengan penelitian yang baik, dimana nantinya aplikasi tersebut dapatdengan mudah dioperasikan user.
Pengertian GUI
Antar muka komputer yang berbasiskan grafis (GUI) adalah citra grafis yangditampilkan di layar komputer yang memungkinkan untuk mengakses aplikasi softwaredengan memakai menu dropdown, dialog box, radio button, check box, panel, tabs,toolbar, icon shortcuts dan tool lain.
Atau bisa juga dikatakan jenis antarmuka penggunayang memungkinkan orang untuk berinteraksi dengan program dengan lebih banyakdengan gambar daripada perintah teks. Sebuah GUI grafis menawarkan ikon, dan visual
3 indikator, sebagai lawan dari antarmuka berbasis teks. Contoh perangkat yangmenggunakan GUI: perangkat genggam seperti MP3 Players, Portable Media Player danperangkat Permainan. GUI ini dimulai pertama kali dengan X Windows hasil penelitian diMIT, kemudian Macintosh, Sun View, lalu disusul oleh Microsoft Windows, dan sistemoperasi lainnya.
Pengertian Java
Java merupakan suatu teknologi perangkat lunak yang di dalamnya mencakupbahasa pemrograman. Selain itu Java juga merupakan suatu platform yang memilikivirtual machine dan library yang diperlukan untuk menulis dan menjalankan suatuprogram. Java sendiri pada awalnya dikembangkan pada lingkungan komputer oleh SunMicrosystem Inc.
Dengan tujuan untuk menghasilkan suatu bahasa komputer sederhanatanpa harus terikat pada arsitektur tertentu. Maka tak heran jika dalamperkembangannya Java dapat dijalankan pada berbagai platform sistem operasi sepertiLinux, Windows maupun Unix.Karena keunikan dan kehandalannya, Java pun semakin banyak dikenal.
Pada tahun 1995 Sun meluncurkan sebuah browser berbasis Java dengan julukan Hot Java,kemudian diikuti Netscape yang memutuskan untuk membuat browser dengandilengkapi bahasa Java di dalamnya. Setelahnya ikut bergabung pula berbagaipengembang ternama diantaranya IBM dan Microsoft.
Kemudian pada tahunberikutnya, Sun Microsystem Inc. merilis Java Software Development Kit (JDK)pertamanya, JDK 1.1. Dan terus berkembang dari pemrograman applet yang berjalan dibrowser menjadi pemrograman kelas dunia yang banyak digunakan untukpengembangan aneka ragam aplikasi.
Tidak hanya pada komputer, Java juga dapatberjalan pada bermacam-macam perangkat, mulai telepon genggam sampai aplikasiberskala enterprise pada komputer server.
Pengertian GUI dan JAVA
Java GUI adalah pemrograman dengan bahasa Java yang dibuat menggunakan aplikasi yang berbasiskan GUI. Tujuannya adalah menambahkan beberapa komponen yang tidak bisa dibuat dalam basis text. Komponen-konponen tersebut bisa berupa tombol, gambar, dll.
Tujuannya adalah untuk memudahkan user menggunakan program yang dibuat tersebut. Kalau dilihat pengertian tentang GUI secara umum adalah Interaksi yang dapat dilaksanakan oleh user melalui menu dan icon yang diperlihatkan dalam modus grafik. Contoh implementasi GUI-based shell ini adalah pada sistem operasi Microsoft Windows.
1. 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.
2. Intermediate Container
Intermediate Container merupakan komponen perantara dimana komponen lainnya diletakkan. Salah satu contoh Container ini adalah Jpanel.
3. 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
4. Layout Manager
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.
5. Even Handling
Even handling merupakan komponen untuk menangani event yang dilakukan oleh user. Misalnya menekan tombol, mengklik mouse dan lain-lain.
Pengertian Layout Manager
Layout Manager adalah proses menentukan ukuran dan posisi dari komponen. Komponen dapat menyediakan dan petunjuk tata letak dan keselarasan untuk manager. Manajemen layout diperlukan untuk mengatur penempatan komponen di dalam frame agar bisa menghasilkan bentuk interface yang menarik.
Penggunaan manajemen layout dalam menggunakan letak komponen juga akan memudahkan kita untuk menempelkan komponen pada frame.java, komponen ini menyediakan sejumlah metode layout dalam mengatur komponen kedalam frame.
Kita pun diizinkan mengkombinasikan beberapa metode agar pemasangan komponen menjadi lebih baik dan mudah. Method setLayout() digunakan untuk mengatur jenis metode yang digunakan pada saat pemasangan komponen.
Flow layout manager merupakan manager layout yang paling sederhana. Layout ini menyusun komponen berdasarkan ukuran default masing-masing, dengan posisi mulai dari kiri ke kanan dan dari atas kebawah di dalam container yang digunakan.
Apabila tidak muat lagi, maka akan dibuat baris baru dan aturan yang berlaku masih sama: kiri ke kanan FlowLayout merupakan layout standar yang dipakai oleh setiap obyek Jpanel .
Komponen Komponen Untuk Tampilan GUI
A. JTable
Kelas JTable merupakan kelas turunan dari kelas JComponent. JTable digunakan untuk menampilkan atau merubah data yang disajikan dalam format baris dan kolom (two-dimensional grid). JTable dapat menampilkan data dalam jumlah yang cukup banyak.
Untuk dapat melihat keseluruhan data, Anda perlu membuat obyek scroll pane (obyek dari kelas JScrollPane) dan menambahkan obyek kelas JTable ke obyek scroll pane. Anda dapat menggunakan batang penggulung (scroll bar) dari scroll pane untuk melihat data yang belum ditampilkan.
Contoh program :
Input :
1. import javax.swing.*;
2. class frameTable{
3. public static void main (String args[]){
4. JFrame f=new JFrame();
5. String[] header={"Senin","Selasa","Rabu"};
6. String[][]
7. data={{"100","300","150"},{"500","600","450"},{"290","690","360"}};
8. JTable tabel1=new JTable(data ,header);
9. f.setTitle("Frame Tabel");
10. f.setLocation(200,100);
11. f.setSize(300,100);
12. f.add(tabel1);
13. f.setVisible(true);
14. }
15. }
Proses :
1. Program memnggunakan swing
2. Nama class frame
3. Untuk memanggil string
4. Untuk menampilkan frame baru
5. Untuk menampilkan hari
6. Untuk menampilkan string
7. Untuk menampilkan data
8. Untuk menampilkan table baru
9. Untuk judul frame
10. Untuk lokasi frmae
11. Untuk ukuran frame
12. Frame untuk kebenaranya
13. Frame utuk label1
14. Penutup program
15. Pentup program
Output :

B. JscroollPane
JscroollPane adalah komponenyang di gunakan untuk menggerakan obyej ke atas,ke bawah atau kesamping agar semua subyek terlihat di layar.
Contoh program :
Input :
import javax.swing.*;
class frameTable1{
public static void main (String args[]){
JFrame f=new JFrame();
String[] header={"Senin","Selasa","Rabu"};
String[][]
data={{"100","300","150"},{"500","600","450"},{"290","690","360"}};
JTable tabel1=new JTable(data ,header);
JScrollPane scrollPane=new JScrollPane(tabel1);
f.setTitle("Frame Tabel");
f.setLocation(200,100);
f.setSize(300,100);
f.add(tabel1);
f.setVisible(true);
}
}
1. Program Menggunakan swing
2. Class frame
3. Untuk memanggil string
4. Untuk menampilkan frame baru
5. Untuk menampilkan hari
6. Untuk menampikan string
7. Untuk menampilkan data
8. Untuk menampilkan table baru
9. Untuk judul frame
10. Untuk lokasi frame
11. Untuk ukuran frame
12. Frame untuk label1
13. Frame untuk kebenaranya
14. Penutup program
15. Penutup program
Output :

C. JMENU
JMenu merupakan komponen menu yang dapat berisikan menu lain
Contoh program :
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JSeparator;
public class MenuSeparator extends JFrame{
public MenuSeparator(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar bar=new JMenuBar ();
JMenu menu=new JMenu("file");
bar.add(menu);
menu.add(new JMenuItem("close"));
menu.add(new JSeparator());//SEPARATOR
menu.add(new JMenuItem("Exit"));
setJMenuBar(bar);
getContentPane().add(new JLabel ("A placheholder"));
pack();
setSize(300,300);
setVisible(true);
}
public static void main(String args[]){
new MenuSeparator ();
}
}

D. JMenuBar
JmenuBar Merupakan komponen tempat menu yang berada pada bagian atas form.
Contoh Program :
import javax.swing.*;
import java.awt.event.*;
public class AplikasiMenu extends JFrame implements ActionListener {
public AplikasiMenu(){
super ("Aplikasi JMenu");
setSize(400,250);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
JMenu menufile = new JMenu("File");
JMenuItem p1 = new JMenuItem ("Baru");
JMenuItem p2 = new JMenuItem ("Simpan");
JMenuItem p3 = new JMenuItem ("Keluar");
menufile.add(p1);
menufile.add(p2);
menufile.addSeparator();
menufile.add(p3);
JMenu menubantuan = new JMenu ("Bantuan");
JMenuItem pb1 = new JMenuItem ("Selamat Datang");
JMenuItem pb2 = new JMenuItem ("Tentang Program");
menubantuan.add(pb1);
menubantuan.addSeparator();
menubantuan.add(pb2);
JMenuBar menubar = new JMenuBar();
menubar.add(menufile);
menubar.add(menubantuan);
JPanel panel = new JPanel();
add(menubar,"North");
add(panel,"South");
p1.addActionListener(this);
p2.addActionListener(this);
p3.addActionListener(this);
pb1.addActionListener(this);
pb2.addActionListener(this);
setVisible(true);
setLocationRelativeTo(null);
}
public void actionPerformed (ActionEvent e){
String perintah = e.getActionCommand();
if(perintah.equals("Baru"))
JOptionPane.showMessageDialog(null,
"Anda Mengklik Pilihan Baru");
if(perintah.equals("Simpan"))
JOptionPane.showMessageDialog(null,
"Anda Mengklik Pilihan Baru");
if(perintah.equals("Cetak"))
JOptionPane.showMessageDialog(null,
"Anda Mengklik Pilihan Cetak");
if(perintah.equals("Keluar"))
System.exit(0);
if(perintah.equals("Selamat Datang"))
JOptionPane.showMessageDialog(null,
"Anda Mengklik Pilihan Selamat Datang");
if(perintah.equals("Tentang Program"))
JOptionPane.showMessageDialog(null,
"<html>App Created by Anhar Panduwinata <br>"+
"NIM : 31150049</html>");
}
public static void main(String [] args){
AplikasiMenu app = new AplikasiMenu();
}
}

E. JMenuItem
JMenuItem Merupakan komponen menu yang tidak dapat di miliki menu lain Komponen Menu.
Contoh program :
Input :
import javax.swing.*;
class MenuExample
{
JMenu menu, submenu;
JMenuItem i1, i2, i3, i4, i5;
MenuExample(){
JFrame f= new JFrame("Menu and MenuItem Example");
JMenuBar mb=new JMenuBar();
menu=new JMenu("Menu");
submenu=new JMenu("Sub Menu");
i1=new JMenuItem("Item 1");
i2=new JMenuItem("Item 2");
i3=new JMenuItem("Item 3");
i4=new JMenuItem("Item 4");
i5=new JMenuItem("Item 5");
menu.add(i1); menu.add(i2); menu.add(i3);
submenu.add(i4); submenu.add(i5);
menu.add(submenu);
mb.add(menu);
f.setJMenuBar(mb);
f.setSize(400,400);
f.setLayout(null);
f.setVisible(true);
}
public static void main(String args[])
{
new MenuExample();
}
}

F. FlowLayout
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.
FlowLayout dapat memiliki “row justification”: LEFT, CENTER, atau RIGHT serta “padding” horizontal/vertical. Secara default, flow layout menggunakan justification CENTER. Artinya, semua komponen akan disimpan di posisi tengah-tengah. FlowLayout merupakan default untuk JPanel.
Contoh Program :
Input :
import javax.swing.*;
import java.awt.*;
class flow {
public static void main(String[]args){
JFrame f=new JFrame ("Flow Layout");
FlowLayout fl=new FlowLayout(FlowLayout.CENTER);
JButton b1=new JButton("posisi 1");
JButton b2=new JButton("posisi 2");
JButton b3=new JButton("posisi 3");
JButton b4=new JButton("posisi 4");
JButton b5=new JButton("posisi 5");
f.getContentPane().setLayout(fl);
f.getContentPane().add(b1);
f.getContentPane().add(b2);
f.getContentPane().add(b3);
f.getContentPane().add(b4);
f.getContentPane().add(b5);
f.setSize(500,80);
f.setVisible(true);
}
}

G. BorderLayout
BorderLayout merupakan komponen berdasarkan lokasi geografis: NORTH, SOUTH, EAST, WEST, and CENTER. Secara optional, kita dapat juga memberikan padding di antara komponen.
BorderLayout merupakan layout default untuk JWindow dan JFrame. Karena setiap komponen diasosiasikan dengan suatu arah geografis, akibatnya layout ini hanya dapat menangani maksimal 5 komponen.
Contoh Program :
Input :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BorderLayoutApp1 extends JFrame {
public BorderLayoutApp1( ) {
createUserInterface();
}
private void createUserInterface(){
this.setTitle("Border1");
this.setSize(300, 300);
this.setLocation(200, 200);
this.setLayout(new BorderLayout( ));
this.add(new JButton("North"), BorderLayout.NORTH );
this.add(new JButton("South"), BorderLayout.SOUTH );
this.add(new JButton("East"), BorderLayout.EAST );
this.add(new JButton("West"), BorderLayout.WEST );
this.add(new JButton("Center"), BorderLayout.CENTER );
this.setVisible(true);
}
public static void main(String[] args) {
BorderLayoutApp1 app = new BorderLayoutApp1();
app.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}

H. GridLayout
GridLayout adalah jenis layout yang bekrerja berdasar baris dan kolom. Dengan layout ini kita dapat memberikan argumen banyaknya baris dan kolom sesui dengan kebututhan.
Contoh Program :
Input :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class gridlayout extends JFrame {
public gridlayout( ) {
createUserInterface();
}
private void createUserInterface(){
JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayout(3, 2));
panel1.add(new JButton("One"));
panel1.add(new JButton("Two"));
panel1.add(new JButton("Three"));
panel1.add(new JButton("Four"));
panel1.add(new JButton("Five"));
this.add(panel1);
this.setTitle("Grid");
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
this.setSize(200, 200);
this.setLocation(200, 200);
this.setVisible(true);
}
public static void main(String[] args) {
gridlayout app = new gridlayout();
}
}

Kesimpulan
GUI (graphical user interface) merupakan suatu metodse untuk antar muka computer berbasis grafis.GUI digunakan dalam pembuatan program aplikasi dengan mempertimbangkan dua aspek yaitu keindahan tampilan dan kemudahan penggunaan program.
Untuk mengimplementasikan suatu interface,suatu class harus mengimplementasikan semua method yang telah di tentukan oleh interface tersebut. Namun detil cara implementasinya ditentukan sendiri oleh class yang bersangkutan. Java memiliki dua kelas untuk bekerja dengan GUI, yaitu AWT (Abstract Windowing toolkit) dan Swing
Beberapa fasilitas yang di sediakan package java.awt adalah :
- Pengaturan tata letak (layout management) komponen dalam suatu container.
- Mendukung event handling, yaitu mekanisme pendeteksian event dan penentuan respona yang akan di berikan ketika pengguna (user) mengakses komponen tersebut.
- Manipulasi grafis dari komponen,seperti font, warna,icon, dsb.
Demikian artikel mengenai Komponen GUI Dan Layout Manager, semoga informasi yang diberikan bermanfaat.
