34
BAB I
KOMPONEN VISUAL
Komponen GUI
Sebelumnya kita selalu membuat program berupa console based dimana interaksi
dengan user selalu melalui command prompt dan menggunakan teks. Pada
kenyataannya, secara umum user lebih senang berinteraksi dengan GUI (Graphical User
Interface) dibandingkan dengan teks karena dengan GUI program akan terlihat lebih
menarik dan user friendly. Java menyediakan komponen-komponen untuk membuat
program dengan GUI, salah satu mekanisme untuk mengimplementasikannya adalah
dengan menggunakan paket javax.swing.
Berikut ini komponen-komponen yang sering digunakan untuk membangun
tampilan GUI :
1. JFrame adalah komponen dasar dalam pemrograman visual dengan java. Frame
berfungsi sebagai penampung komponen-komponen lainnya.
Contoh :
import javax.swing.JFrame; class frame2 { public static void main(String [] args) { JFrame frame = new JFrame();frame.setTitle("Pemrograman Visual");frame.setSize(300,300);frame.setVisible(true);}}
34
2. JLabel adalah komponen yang digunakan untuk membuat tulisan atau gambar pada
frame sebagai suatu informasi untuk pengguna program.
Contoh :
import javax.swing.JLabel; import javax.swing.JFrame;class Label { public static void main(String[] args) { JLabel lbl1 = new JLabel("Nama Anda :");JFrame frame = new JFrame();
lbl1.setBounds(10, 50, 75, 25);frame.add(lbl1);frame.setSize(200, 200); frame.setLayout(null);frame.setVisible(true);}}
3. JTextField adalah komponen yang digunakan untuk memasukkan sebaris string
yang selanjutnya dapat digunakan sebagai input bagi proses selanjutnya.
Contoh :
import javax.swing.*;class Text { public static void main(String[] args){ JTextField txt = new JTextField();JFrame frame = new JFrame();
34
frame.setSize(200, 200); frame.add(txt);txt.setBounds(50, 10, 100, 25);frame.setLayout(null);frame.setVisible(true);}}
4. JButton adalah komponen berbentuk tombol. Komponen ini banyak digunakan
sebagai eksekusi terhadap tindakan yang diinginkan.
Contoh :
import javax.swing.*;public class button{ public static void main(String [] args){ JFrame frame = new JFrame();JButton bttn = new JButton("Oke");
frame.setSize(300,300);bttn.setBounds(50, 100, 150, 25);frame.add(bttn);frame.setLayout(null);frame.setVisible(true);}}
34
5. JRadioButton adalah komponen yang digunakan ketika pengguna perlu memilih
satu diantara beberapa pilihan.
Contoh :
import javax.swing.*;class radioButton{public static void main (String [] args){JRadioButton r1=new JRadioButton("Pilihan 1");JFrame frame = new JFrame();
frame.setSize(300,300);r1.setBounds(50, 100, 150, 25);frame.add(r1);frame.setLayout(null);frame.setVisible(true);}}
34
6. JComboBox juga merupakan komponen yang digunakan untuk memilih satu
diantara sekian banyak pilihan yang berbentuk semacam TextField dan ada panah ke
bawah.
Contoh :
import javax.swing.*;class combo{public static void main (String [] args){
String[] abc={"1","2","3","4","5","6","7"};JComboBox cb=new JComboBox(abc); JFrame frame = new JFrame();
frame.setSize(300,300);cb.setBounds(10, 10, 150, 25);frame.add(cb);frame.setLayout(null);frame.setVisible(true);}}
7. JTextArea merupakan komponen yang mirip dengan JtextField tetapi dapat
menampung lebih dari satu baris.
Contoh :
import javax.swing.*;public class textArea{ public static void main(String [] args){
34
JFrame f = new JFrame();JTextArea area = new JTextArea();
f.setSize(300,300);area.setBounds(50, 50, 150, 100);f.add(area);f.setLayout(null);f.setVisible(true);}}
8. JCheckBox adalah komponen yang digunakan ketika pengguna memerlukan
komponen untuk melakukan satu atau banyak pilhan sekaligus.
Contoh :
import javax.swing.*;class checkBox{public static void main (String [] args){JCheckBox c1=new JCheckBox("pilihan 1");JFrame frame = new JFrame();
frame.setSize(200,200);c1.setBounds(50, 50, 150, 25);frame.add(c1);frame.setLayout(null);frame.setVisible(true);}}
34
9. JTable digunakan untuk menampilkan data dalam bentuk tabel, suatu bentuk yang
banyak digunakan dalam pemrograman database.
Contoh :
import javax.swing.*;class FrameTabel {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);
f.setTitle("Frame Tabel");f.setLocation(200,100);f.setSize(300,100);f.add(tabel1);f.setVisible(true);}}
34
10. JScrollPane adalah komponen yang digunakan untuk menggerakkan obyek ke atas,
ke bawah atau ke samping agar semua sebuah obyek terlihat di layar.
Contoh :
import javax.swing.*; class FrameTabel {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(scrollPane);f.setVisible(true);}}
34
Latihan :Buat program untuk menghasilkan tampilan seperti berikut :
1. Gunakan JFrame, JLabel, JTextField dan JButton
2. Gunakan JFrame, JLabel, JTextField, JCheckBox, JRadioButton, JComboBox
dan JButton
34
BAB II
LAYOUT MANAGER
Pengaturan layout digunakan untuk mengatur posisi dari komponen visual
penyusun program sesuai dengan desain user interface. Beberapa pilihan layout telah
disediakan java, dimana keputusan untuk menggunakan jenis layout tertentu bergantung
pada jenis aplikasi yang ingin dibuat serta tingkat kerapian yang diinginkan. Pada bab-
bab terdahulu, manajemen layout yang digunakan adalah none layout, dimana
pengaturan posisi komponen dalam frame dilakukan sendiri oleh programmer. Jenis
layout yang dapat digunakan antara lain :
a. FlowLayout adalah jenis pengaturan layout yang paling sederhana, dimana semua
komponen akan tersusun dari kiri ke kanan sepanjang frame, dan akan pindah ke
bawah bila telah sampai batas kanan frame.
Contoh :
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);
34
f.setSize(500,80); f.setVisible(true); }}
b. BorderLayout merupakan jenis layout yang bekerja dengan membagi frame
menjadi lima bagian yaitu NORTH, EAST, SOUTH, WEST dan CENTER.
Contoh :
import javax.swing.*;import java.awt.*;
class border{ public static void main (String [] args){ JFrame f=new JFrame("Border Layout"); BorderLayout bl=new BorderLayout(); f.getContentPane().setLayout(bl); JButton b1=new JButton("NORTH"); JButton b2=new JButton("SOUTH"); JButton b3=new JButton("EAST"); JButton b4=new JButton("WEST"); JButton b5=new JButton("CENTER"); f.getContentPane().add(b1,BorderLayout.NORTH); f.getContentPane().add(b2,BorderLayout.SOUTH); f.getContentPane().add(b3,BorderLayout.EAST); f.getContentPane().add(b4,BorderLayout.WEST); f.getContentPane().add(b5,BorderLayout.CENTER); f.pack(); f.setVisible(true); }
34
}c. GridLayout adalah jenis layout yang bekerja berdasar baris dan kolom. Dengan
layout ini kita dapat memberikan argumen banyaknya baris dan kolom sesuai
dengan kebutuhan.
Contoh :
import javax.swing.*;import java.awt.*;
class grid{ public static void main(String [] args){ JFrame f=new JFrame("Grid Layout"); JButton b1=new JButton("Satu"); JButton b2=new JButton("Dua"); JButton b3=new JButton("Tiga"); JButton b4=new JButton("Empat"); JButton b5=new JButton("Lima"); GridLayout gl=new GridLayout(3,2); f.getContentPane().setLayout(gl); f.getContentPane().add(b1); f.getContentPane().add(b2); f.getContentPane().add(b3); f.getContentPane().add(b4); f.getContentPane().add(b5); f.pack(); f.setVisible(true); }}
34
BAB III
PENANGANAN KEJADIAN
Event merupakan suatu kejadian yang dilakukan oleh user terhadap user interface.
Setiap objek dapat dinotifikasi jika suatu event terjadi sehingga objek tersebut dapat
memutuskan apa yang harus dilakukan untuk menanggapi event yang bersangkutan.
Beberapa contoh event :
Event Listeners Deskripsi
ActionListener Bereaksi atas perubahan mouse atau keyboard
MouseListener Bereaksi atas pergerakan mouse
WindowListener Bereaksi atas perubahan window.
Contoh 1:
import java.awt.event.*;import javax.swing.*;
public class klik extends JFrame implements ActionListener {
JButton tombol = new JButton ("Click Me!");
public klik() { tombol.addActionListener(this); add(tombol); setSize (200,100); setVisible (true);} public static void main (String args []) { klik test = new klik();} public void actionPerformed (ActionEvent e) { if (e.getSource() == tombol) { JOptionPane.showMessageDialog(null, "Pemrograman Visual"); }
34
}}
Output :
Contoh 2 :
import java.awt.event.*;import java.awt.*;import javax.swing.*;
class action1 extends JFrame implements ActionListener { JButton bttn = new JButton("Click me"); JLabel lbl = new JLabel(); public action1() { super("Button"); setSize(500, 400); setVisible(true); setLayout(null); add(bttn); bttn.setBounds(180, 100, 150, 25); add(lbl); lbl.setBounds(10,150,475,55); lbl.setFont(new Font("Tahoma", Font.BOLD, 22)); bttn.addActionListener(this); }
34
public void actionPerformed(ActionEvent e) { if(e.getSource() == bttn) { lbl.setText("Anda telah menekan sebuah tombol"); } } public static void main(String[] args) { new action1(); }}
Output :
Contoh 3 :
import javax.swing.*;import java.awt.event.*;
class fun3 extends JFrame implements ActionListener{ JLabel l1=new JLabel("Tuliskan Teks :"); JLabel l2=new JLabel(); JTextField t1=new JTextField(); JButton b1=new JButton("Tampil"); fun3(){ l1.setBounds(10,10,100,30); t1.setBounds(10,50,250,30); b1.setBounds(50,90,80,30); l2.setBounds(10,130,250,30); add(l1); add(l2);
34
add(t1); add(b1); b1.addActionListener(this); setSize(280,250); setLayout(null); setVisible(true); } public void actionPerformed(ActionEvent e){ if (e.getSource()==b1){ String isi=t1.getText(); l2.setText(isi); } } public static void main (String [] args){ fun3 f3=new fun3(); }}
Output :
Contoh 4 :
import java.awt.*;import java.awt.event.*;import javax.swing.*;
public class loginNonDB extends JFrame implements ActionListener {
34
JLabel lblUser=new JLabel("User"), lblPass=new JLabel("Password"); JTextField txtUser=new JTextField(); JTextField txtPass =new JTextField(); JButton btnLogin=new JButton("log in"); public static void main(String [] args) { loginNonDB log = new loginNonDB(); log.setVisible(true); } loginNonDB() { super("Login"); setSize(250,200); setLayout(null); lblUser.setBounds(15,20,100,25); lblPass.setBounds(15,55,100,25); txtUser.setBounds(90,20,120,25); txtPass.setBounds(90,55,120,25); btnLogin.setBounds(80,110,85,25); btnLogin.addActionListener(this); add(lblUser); add(txtUser); add(lblPass); add(txtPass); add(btnLogin); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent ae) { if(ae.getSource()==btnLogin) { if (txtUser.getText().equals("admin") &&
txtPass.getText().equals("root")) { javax.swing.JOptionPane.showMessageDialog(null, "Login Berhasil
\nAnda berhasil masuk", "Konfirmasi", javax.swing.JOptionPane.INFORMATION_MESSAGE);
System.exit(0); }
else {
34
javax.swing.JOptionPane.showMessageDialog(null, "User anda tidak dikenal","Kesalahan",javax.swing.JOptionPane.ERROR_MESSAGE);
txtUser.setText(""); txtUser.requestFocus(); System.exit(0); } } }}
Output :
Latihan :
34
1. Gunakan frame, label, textfield, button dan Radiobutton
Setelah di-klik “OK” maka tampilan akan menjadi :
2. Gunakan frame, label, textfield dalam hitung luas, kemudian isi nilai panjang
dan lebar.
34
Setelah nilai panjang dan lebar diisi, lalu tekan “Enter”, maka tampilan akan
menjadi :
34
BAB IV
KONEKSI KE DATABASE
Koneksi ke database pada Java ditangani oleh JDBC (Java Database
Connectivity). JDBC merupakan salah satu API (Application Programming Interface)
yang secara khusus ditujukan untuk menangani koneksi ke database. Antarmuka ini
memungkinkan pemrogram menulis sebuah program yang dapat digunakan untuk
mengakses database yang berbeda-beda, misalnya Oracle, Access, atau MySQL.
Bekerja dengan JDBC
Secara umum, untuk bekerja dengan JDBC, langkah yang dilakukan adalah :
1. Me-load JDBC Driver ke dalam JVM. JDBC Driver dapat dipandang sebagai
library yang dibutuhkan untuk mengakses database tertentu.
2. Membuat koneksi ke DB yang direpresentasikan sebagai obyek
java.sql.Connection.
3. Membuat obyek java.sql.Statement yang akan digunakan untuk mengirimkan
perintah SQL ke DB.
4. Menjalankan metode yang bersesuaian dari obyek java.sql.Statement, seperti
executeQuery() atau executeUpdate().
Membuat Koneksi
Melakukan koneksi ke database melibatkan dua langkah: Meload driver dan
membuat koneksi itu sendiri. Cara meload driver sangat mudah, pertama letakkan file
jar database driver ke dalam classpath. Kemudian load driver dengan menambahkan
kode berikut ini:
Class.forName(“com.mysql.jdbc.Driver”);
Nama class database driver untuk setiap DBMS berbeda, anda bisa menemukan nama
class tersebut dalam dokumentasi driver database yang anda gunakan. Dalam contoh ini,
nama class database driver dari MySql adalah com.mysql.jdbc.Driver. Memanggil
method Class.forName secara otomatis membuat instance dari database driver, class
34
DriverManager secara otomatis juga dipanggil untuk mengelola class database driver
ini. Jadi anda tidak perlu menggunakan statement new untuk membuat instance dari
class database driver tersebut.
Langkah berikutnya adalah membuat koneksi ke database menggunakan
database driver yang sudah diload tadi. Class DriverManager bekerja sama dengan
interface Driver untuk mengelola driver-driver yang diload oleh aplikasi, jadi dalam
satu sesi anda bisa meload beberapa database driver yang berbeda. Ketika kita benar-
benar melakukan koneksi, JDBC Test Suite akan melakukan serangkaian tes untuk
menentukan driver mana yang akan digunakan. Parameter yang digunakan untuk
menentukan driver yang sesuai adalah URL. Aplikasi yang akan melakukan koneksi ke
database menyediakan URL pengenal dari server databse tersebut. Sebagai contoh
adalah URL yang digunakan untuk melakukan koneksi ke MySql :
jdbc:mysql://[host]:[port]/[schema]
contoh konkritnya :
jdbc:mysql://localhost:3306/latihan
Setiap vendor DBMS akan menyertakan cara untuk menentukan URL ini di dalam
dokumentasi. Anda tinggal membaca dokumentasi tersebut tanpa harus khawatir tidak
menemukan informasi yang anda perlukan.
Method DriverManager.getConnection bertugas untuk membuat koneksi:
Connection conn = DriverManager.getConnection(
“jdbc:mysql://localhost:3306/latihan”);
Dalam kebanyakan kasus anda juga harus memasukkan parameter username dan
password untuk dapat melakukan koneksi ke dalam database. Method getConnection
34
menerima Username sebagai parameter kedua dan pasword sebagai parameter ketiga,
sehingga kode diatas dapat dirubah menjadi :
Connection conn = DriverManager.getConnection(
“jdbc:mysql://localhost:3306/latihan”,
”root”,””);
Jika salah satu dari driver yang diload berhasil digunakan untuk melakukan koneksi
dengan URL tersebut, maka koneksi ke database berhasil dilaksanakan. Class
Connection akan memegang informasi koneksi ke database yang didefinisikan oleh
URL tersebut.
Setelah sukses melakukan koneksi ke database, kita dapat mengambil data dari
database menggunakan perintah query ataupun melakukan perubahan terhadap
database. bagian berikut ini akan menerangkan bagaimana cara mengambil dan
memanipulasi data dari database.
1. Membuat Database dengan menggunakan PHPMyAdmin- Pada XAMPP , aktifkan Apache dan MySQL.- Buka PHPMyAdmin
34
Membuat Database , misal nama database coba2
Membuat tabel, missal nama tabel log dan tabel tersebut akan dibuat dengan 2 field(kolom)
Mengisikan masing-masing nama field, setelah selesai klik save
Hasil tabel log yang dibuat :
Memasukkan record : pilih tab insert, kemudian isikan datanya.
34
Isi tabel log:
2. Koneksi Java dengan DatabaseSebelum membuat program koneksi java dengan database, pastikan sudah ada
JDBC untuk menghubungkan java dengan Database, seperti .jar.
Program koneksi Java Database :Contoh 1 :
import java.sql.*;
public class DBTest{ public static void main(String[] args){
try{ Class.forName("com.mysql.jdbc.Driver"); System.out.println("Driver berhasil ditemukan……");
try{ String url = "jdbc:mysql://localhost/coba2"; String user = "root"; String password = ""; Connection koneksi = DriverManager.getConnection(url, user,
password); System.out.println("Buat Koneksi Sukses");
try{
34
Statement stat = koneksi.createStatement(); ResultSet rs = stat.executeQuery("select * from log"); while(rs.next()){ System.out.print(rs.getString("usr")); System.out.print("\t"+rs.getString("pwd")); System.out.println(); } System.out.println("Query Sukses"); }
catch (Exception e){ System.out.println("Tidak bisa melakukan query"); } }
catch (SQLException e){ System.out.println("Koneksi gagal ?"); System.out.println("SQLException: " + e.getMessage()); } }
catch (Exception e){ System.out.println("Driver tidak ditemukan : " + e.getMessage()); } }}
Output :
Contoh 2 :
34
Buat tabel berikut :
import javax.swing.*;import java.awt.event.*;import java.sql.*;
public class visDB extends JFrame{ Connection kon; Statement s; JLabel npm,nama; JTextField tnpm,tnama; JButton tambah; visDB(){ npm=new JLabel("NPM"); nama=new JLabel("Nama"); tnpm =new JTextField(); tnama=new JTextField(); tambah=new JButton("Simpan"); npm.setBounds(10,10,70,25); nama.setBounds(10,40,70,25); tnpm.setBounds(90,10,80,25); tnama.setBounds(90,40,300,25); tambah.setBounds(300,80,80,25); tambah.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ if (e.getSource()==tambah){ PreparedStatement ps=null; try{ String a=tnpm.getText(); String b=tnama.getText(); String url = "jdbc:mysql://localhost/coba1"; String user = "root"; String password = ""; Connection koneksi = DriverManager.getConnection(url, user, password); ps=koneksi.prepareStatement("insert into mhs3 (npm,nama) values (?,?)");
34
ps.setString(1, a); ps.setString(2, b); ps.executeUpdate(); JOptionPane.showMessageDialog(null, "Data telah disimpan"); } catch(Exception ea){System.err.print("Error");} } } }); add(npm); add(nama); add(tnpm); add(tnama); add(tambah); setTitle("Visual Database"); setSize(450,170); setLayout(null); setVisible(true); }
public static void main (String [] args) throws Exception{ new visDB(); }}
Output :
34
Latihan :
1. Buat program login yang terkoneksi dengan database :
Tabel admin
Tampilan login
Jika username dan password diisi sesuai yang ada pada database:
atau :
34
maka akan ditampilkan :
Jika tidak sesuai dengan database :
akan ditampilkan :
2. Buat program koneksi database berikut:
Tabel buku
34
Tampilan form data buku
34
BAB V
MENU
Merupakan kelas yang berguna untuk membuat menu bar yang biasa
diletakkan di bagian atas jendela dan bersifat pull-down. Dalam prakteknya, pembuatan
menu bar melibatkan kelas lain yang berhubungan dengan menu, yaitu JMenu dan
JMenuItem.
Prinsip untuk membuat menu bar adalah sebagai berikut :
1. Membuat objek JMenuBar
2. Mengaitkan objek JMenuBar tersebut ke jendela melalui metode setJMenuBar()
3. Menciptakan sejumlah objek JMenu yang akan dijadikan sebagai menu dalam
menu bar
4. Mengaitkan objek-objek JMenu ke Objek JMenuBar melalui metode add()
5. Membuat sejumlah item menu melalui pembuatan objek JMenuItem untuk
masing-masing menu
6. Mengaitkan item-item menu ke objek JMenu
Contoh :
import javax.swing.*;import java.awt.event.*;
class exMenu extends JFrame {
34
exMenu(){ setSize(300,300); JMenuBar mB = new JMenuBar(); setJMenuBar(mB); JMenu mFile = new JMenu("File"); mB.add(mFile); JMenuItem itmNew = new JMenuItem("New"); JMenuItem itmExit = new JMenuItem("Exit"); mFile.add(itmNew); mFile.add(itmExit); JMenu mWarna=new JMenu("Warna"); mB.add(mWarna); JMenu smBG = new JMenu("Background"); JMenu smTeks = new JMenu("Teks"); mWarna.add(smBG); mWarna.add(smTeks); JMenuItem itmPink = new JMenuItem("Pink"); JMenuItem itmAbu = new JMenuItem("Abu-abu"); smBG.add(itmPink); smBG.add(itmAbu); JMenuItem itmHijau = new JMenuItem("Hijau"); JMenuItem itmBiru = new JMenuItem("Biru"); smTeks.add(itmHijau); smTeks.add(itmBiru); setVisible(true); } public static void main (String [] args){ new exMenu(); }}
Output :
34
Latihan :1. Berdasarkan program latihan no.1 pada Bab IV, buat aksi:
Jika login berhasil maka akan menampilkan menu berikut :
34
Top Related