GUI (GRAPHICAL USER INTERFACE)
A. Pengertian dan Pengenalan GUI
Pada dasarnya bahasa pemrograman java hanya dikenal dengan java console yang dimana program java ini hanya dapat dijalankan pada konsol saja. Kemudian, semakin lama Java semakin berkembang. Hingga terciptanya Java GUI ( Graphic User Interface ). Graphic User Interface (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 – komponen 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.
Pengertian User Interface
User Interface adalah antarmuka yang memungkinkan pengguna berinteraksi dengan komputer yang disajikan dalam bentuk visual seperti desain layout, tombol, icon, maupun gambar. Kamu yang sering browsing di internet tentunya sudah mengunjungi ratusan website, nah apa yang ada diwebsite itu adalah user interface.Yang kamu lihat seperti Menu, Tombol, Desain, serta gambar produk adalah bagian dari User interface yang memudahkan kamu menavigasi suatu website.
Dalam beberapa dekade terakhir, User Interface mengalami perkembangan yang amat signifikan. Berawal dari Command Line Interface (CLI) yang hanya berupa barisan teks hingga Interface berbasis GUI (Graphic User Interface).GUI sendiri menjadi trend dikalangan pengguna komputer karena kemudahaannya serta tampilannya yang tidak membosankan. Dibanding CLI, GUI diklaim sangat User-Friendly. Mereka yang masih pemula sekalipun bisa mengoperasikan komputer tanpa perlu keahlian khusus seperti Coding. (sumber : https://www.techfor.id/contoh-user-interface-berbasis-gui/)
B. Kelebihan dan Kekurangan GUI
Kelebihan GUI :
- Simpel dan Mudah digunakan
- Menarik secara visual dan tidak membosankan
- Pemula yang awam komputer sekalipun bisa mengoperasikan komputer dan menjalankan perintah dasar
- Dalam mencari sesuatu, GUI memudahkan proses tersebut dengan merepresentasikan secara visual suatu file dengan rinciannya
Kekurangan GUI :
- GUI menjadi lebih kompleks jika pengguna perlu berkomunikasi dengan komputer secara langsung.
- Tugas tertentu mungkin memakan waktu lama karena banyak menu untuk memilih pilihan yang diinginkan.
- Perintah tersembunyi harus dicari menggunakan file Bantuan (Help).
- Aplikasi berbasis GUI membutuhkan lebih banyak RAM untuk dapat dijalankan.
C. Contoh Program GUI
Program 1:
Disini saya akan mencontohkan membuat program untuk mengelola sebuah sistem perkuliahan sederhana.
1). Pertama saya akan membuat file baru di jcreator.
2). Kedua saya akan membuat file dalam tipe javaclass.
3). Kemudian saya akan membuat file dengan nama Matkul.java.
4). Setelah itu dibagian file kosong tersebut saya akan menuliskan kode untuk memulai program.
/*
* File Name : MatKul.java
* Call By : Menu Utama
* Author : M. Anif, M.Kom
* Date Create : 20 Maret 2019
*/
import javax.swing.*;
public class MatKul extends JFrame{
// konstruktor MatKul
public MatKul(){
setTitle(".:: Form Entri Data Matakuliah ::.");
setSize(450, 230);
setLocationRelativeTo(this);
show();
}
// method main
public static void main(String[] args){
new MatKul();
}
}
* File Name : MatKul.java
* Call By : Menu Utama
* Author : M. Anif, M.Kom
* Date Create : 20 Maret 2019
*/
import javax.swing.*;
public class MatKul extends JFrame{
// konstruktor MatKul
public MatKul(){
setTitle(".:: Form Entri Data Matakuliah ::.");
setSize(450, 230);
setLocationRelativeTo(this);
show();
}
// method main
public static void main(String[] args){
new MatKul();
}
}
Program diatas selanjutkan bisa dijalankan, dan hasilnya akan seperti gambar dibawah ini.
Akan tampil sebuah form yang belum memiliki isi.
5). Selanjutnya saya akan memberikan isi atau design terhadap form kosong tersebut.
/*
* File Name : MatKul.java
* Call By : Menu Utama
* Author : M. Anif, M.Kom
* Date Create : 20 Maret 2019
*/
import javax.swing.*;
* File Name : MatKul.java
* Call By : Menu Utama
* Author : M. Anif, M.Kom
* Date Create : 20 Maret 2019
*/
import javax.swing.*;
public class MatKul extends JFrame{
// konstruktor MatKul
JLabel lblKodeMtk = new JLabel("Kode Matakuliah :");
JLabel lblNamaMtk = new JLabel("Nama :");
JLabel lblSKS = new JLabel("SKS :");
JLabel lblKodePrasyarat = new JLabel("Kode Prasyarat :");
JTextField txtKodeMtk = new JTextField();
JTextField txtNamaMtk = new JTextField();
JTextField txtSKS = new JTextField();
JTextField txtKodePrasyarat = new JTextField();
JButton cmdTambah = new JButton("Tambah");
JButton cmdUbah = new JButton("Ubah");
JButton cmdHapus = new JButton("Hapus");
JButton cmdBersih = new JButton("Bersih");
// konstruktor MatKul
JLabel lblKodeMtk = new JLabel("Kode Matakuliah :");
JLabel lblNamaMtk = new JLabel("Nama :");
JLabel lblSKS = new JLabel("SKS :");
JLabel lblKodePrasyarat = new JLabel("Kode Prasyarat :");
JTextField txtKodeMtk = new JTextField();
JTextField txtNamaMtk = new JTextField();
JTextField txtSKS = new JTextField();
JTextField txtKodePrasyarat = new JTextField();
JButton cmdTambah = new JButton("Tambah");
JButton cmdUbah = new JButton("Ubah");
JButton cmdHapus = new JButton("Hapus");
JButton cmdBersih = new JButton("Bersih");
public MatKul(){
setTitle(".:: Form Entri Data Matakuliah ::.");
setSize(450, 230);
setLocationRelativeTo(this);
setTitle(".:: Form Entri Data Matakuliah ::.");
setSize(450, 230);
setLocationRelativeTo(this);
// mengatur layout form u/ menampilkan objek
getContentPane().setLayout(null);
getContentPane().setLayout(null);
// letak objek pada form (x, y, width, height)
lblKodeMtk.setBounds(10, 20, 100, 25);
lblKodeMtk.setBounds(10, 20, 100, 25);
lblNamaMtk.setBounds(10, 50, 100, 25);
lblSKS.setBounds(10, 80, 100, 25);
lblKodePrasyarat.setBounds(10, 110, 100, 25);
txtKodeMtk.setBounds(120, 20, 100, 25);
txtNamaMtk.setBounds(120, 50, 300, 25);
txtSKS.setBounds(120, 80, 100, 25);
txtKodePrasyarat.setBounds(120, 110, 100, 25);
cmdTambah.setBounds(10, 150, 80, 25);
cmdUbah.setBounds(110, 150, 80, 25);
cmdHapus.setBounds(210, 150, 80, 25);
cmdBersih.setBounds(310, 150, 80, 25);
lblKodeMtk.setBounds(10, 20, 100, 25);
lblKodeMtk.setBounds(10, 20, 100, 25);
lblNamaMtk.setBounds(10, 50, 100, 25);
lblSKS.setBounds(10, 80, 100, 25);
lblKodePrasyarat.setBounds(10, 110, 100, 25);
txtKodeMtk.setBounds(120, 20, 100, 25);
txtNamaMtk.setBounds(120, 50, 300, 25);
txtSKS.setBounds(120, 80, 100, 25);
txtKodePrasyarat.setBounds(120, 110, 100, 25);
cmdTambah.setBounds(10, 150, 80, 25);
cmdUbah.setBounds(110, 150, 80, 25);
cmdHapus.setBounds(210, 150, 80, 25);
cmdBersih.setBounds(310, 150, 80, 25);
// menambahkan objek ke form
getContentPane().add(lblKodeMtk);
getContentPane().add(lblKodeMtk);
getContentPane().add(lblNamaMtk);
getContentPane().add(lblSKS);
getContentPane().add(lblKodePrasyarat);
getContentPane().add(txtKodeMtk);
getContentPane().add(txtNamaMtk);
getContentPane().add(txtSKS);
getContentPane().add(txtKodePrasyarat);
getContentPane().add(cmdTambah);
getContentPane().add(cmdUbah);
getContentPane().add(cmdHapus);
getContentPane().add(cmdBersih);
getContentPane().add(lblKodeMtk);
getContentPane().add(lblKodeMtk);
getContentPane().add(lblNamaMtk);
getContentPane().add(lblSKS);
getContentPane().add(lblKodePrasyarat);
getContentPane().add(txtKodeMtk);
getContentPane().add(txtNamaMtk);
getContentPane().add(txtSKS);
getContentPane().add(txtKodePrasyarat);
getContentPane().add(cmdTambah);
getContentPane().add(cmdUbah);
getContentPane().add(cmdHapus);
getContentPane().add(cmdBersih);
show();
}
// method main
public static void main(String[] args){
new MatKul();
}
}
}
// method main
public static void main(String[] args){
new MatKul();
}
}
Hasil dari program diatas seperti gambar dibawah ini:
Kini form sudah memiliki isi berupa tabel data, dan juga disertai dengan navigasi bar dibagian bawah.
6). Terakhir saya akan menambahkan objek pada form tersebut dengan membuat method pada button bersih.
/*
* File Name : MatKul.java
* Call By : Menu Utama
* Author : M. Anif, M.Kom
* Date Create : 20 Maret 2019
*/
import javax.swing.*;
* Call By : Menu Utama
* Author : M. Anif, M.Kom
* Date Create : 20 Maret 2019
*/
import javax.swing.*;
public class MatKul extends JFrame{
// Sisipkan deklarasi objek di sini
JLabel lblKodeMtk = new JLabel("Kode Matakuliah :");
JLabel lblNamaMtk = new JLabel("Nama :");
JLabel lblSKS = new JLabel("SKS :");
JLabel lblKodePrasyarat = new JLabel("Kode Prasyarat :");
JTextField txtKodeMtk = new JTextField();
JTextField txtNamaMtk = new JTextField();
JTextField txtSKS = new JTextField();
JTextField txtKodePrasyarat = new JTextField();
// Sisipkan deklarasi objek di sini
JLabel lblKodeMtk = new JLabel("Kode Matakuliah :");
JLabel lblNamaMtk = new JLabel("Nama :");
JLabel lblSKS = new JLabel("SKS :");
JLabel lblKodePrasyarat = new JLabel("Kode Prasyarat :");
JTextField txtKodeMtk = new JTextField();
JTextField txtNamaMtk = new JTextField();
JTextField txtSKS = new JTextField();
JTextField txtKodePrasyarat = new JTextField();
JButton cmdTambah = new JButton("Tambah");
JButton cmdUbah = new JButton("Ubah");
JButton cmdHapus = new JButton("Hapus");
JButton cmdBersih = new JButton("Bersih");
// konstruktor MatKul
public MatKul(){
setTitle(".:: Form Entri Data Matakuliah ::.");
setSize(450, 230);
setLocationRelativeTo(this);
JButton cmdUbah = new JButton("Ubah");
JButton cmdHapus = new JButton("Hapus");
JButton cmdBersih = new JButton("Bersih");
// konstruktor MatKul
public MatKul(){
setTitle(".:: Form Entri Data Matakuliah ::.");
setSize(450, 230);
setLocationRelativeTo(this);
// atur layout form agar dapat menampilkan objek di dalam form
getContentPane().setLayout(null);
// atur letak objek di layar monitor (x, y, width, height)
lblKodeMtk.setBounds(10, 20, 100, 25);
lblNamaMtk.setBounds(10, 50, 100, 25);
lblSKS.setBounds(10, 80, 100, 25);
lblKodePrasyarat.setBounds(10, 110, 100, 25);
getContentPane().setLayout(null);
// atur letak objek di layar monitor (x, y, width, height)
lblKodeMtk.setBounds(10, 20, 100, 25);
lblNamaMtk.setBounds(10, 50, 100, 25);
lblSKS.setBounds(10, 80, 100, 25);
lblKodePrasyarat.setBounds(10, 110, 100, 25);
txtKodeMtk.setBounds(120, 20, 100, 25);
txtNamaMtk.setBounds(120, 50, 300, 25);
txtSKS.setBounds(120, 80, 100, 25);
txtKodePrasyarat.setBounds(120, 110, 100, 25);
cmdTambah.setBounds(10, 150, 80, 25);
cmdUbah.setBounds(110, 150, 80, 25);
cmdHapus.setBounds(210, 150, 80, 25);
cmdBersih.setBounds(310, 150, 80, 25);
txtNamaMtk.setBounds(120, 50, 300, 25);
txtSKS.setBounds(120, 80, 100, 25);
txtKodePrasyarat.setBounds(120, 110, 100, 25);
cmdTambah.setBounds(10, 150, 80, 25);
cmdUbah.setBounds(110, 150, 80, 25);
cmdHapus.setBounds(210, 150, 80, 25);
cmdBersih.setBounds(310, 150, 80, 25);
// menambahkan objek ke form
getContentPane().add(lblKodeMtk);
getContentPane().add(lblNamaMtk);
getContentPane().add(lblSKS);
getContentPane().add(lblKodePrasyarat);
getContentPane().add(txtKodeMtk);
getContentPane().add(txtNamaMtk);
getContentPane().add(txtSKS);
getContentPane().add(txtKodePrasyarat);
getContentPane().add(lblKodeMtk);
getContentPane().add(lblNamaMtk);
getContentPane().add(lblSKS);
getContentPane().add(lblKodePrasyarat);
getContentPane().add(txtKodeMtk);
getContentPane().add(txtNamaMtk);
getContentPane().add(txtSKS);
getContentPane().add(txtKodePrasyarat);
getContentPane().add(cmdTambah);
getContentPane().add(cmdUbah);
getContentPane().add(cmdHapus);
getContentPane().add(cmdBersih);
// membersihkan tampilan form
bersih();
show();
}
getContentPane().add(cmdUbah);
getContentPane().add(cmdHapus);
getContentPane().add(cmdBersih);
// membersihkan tampilan form
bersih();
show();
}
void bersih(){
// mengosongkan teks
txtKodeMtk.setText("");
txtNamaMtk.setText("");
txtSKS.setText("");
txtKodePrasyarat.setText("");
// membuat teks tidak bisa di edit
txtNamaMtk.setEditable(false);
txtSKS.setEditable(false);
txtKodePrasyarat.setEditable(false);
// mengosongkan teks
txtKodeMtk.setText("");
txtNamaMtk.setText("");
txtSKS.setText("");
txtKodePrasyarat.setText("");
// membuat teks tidak bisa di edit
txtNamaMtk.setEditable(false);
txtSKS.setEditable(false);
txtKodePrasyarat.setEditable(false);
// menonaktifkan tombol
cmdTambah.setEnabled(false);
cmdUbah.setEnabled(false);
cmdHapus.setEnabled(false);
cmdBersih.setEnabled(true);
// Menempatkan kursor pada teks Kode
txtKodeMtk.requestFocus();
}
// method main
public static void main(String[] args){
new MatKul();
}
}
cmdTambah.setEnabled(false);
cmdUbah.setEnabled(false);
cmdHapus.setEnabled(false);
cmdBersih.setEnabled(true);
// Menempatkan kursor pada teks Kode
txtKodeMtk.requestFocus();
}
// method main
public static void main(String[] args){
new MatKul();
}
}
Hasil dari program diatas:
Dari tabel form yang sudah ada, tidak semua button atau navigasi bar bisa berfungsi.
Sekian artikel ini semoga bermanfaat. Terimakasih.
Muhammad Azmi Fadhlurrahman
1911502381
Pemrograman Berorientasi Objek
Kelompok AG
Komentar
Posting Komentar