LAPORAN PRAKTIKUM
LAPORAN PRAKTIKUM
PEMROGRAMAN BERBASIS OBJEK
PEMROGRAMAN BERBASIS OBJEK
““
SWING
SWING
””
Disusun Oleh :
Disusun Oleh :
Ardi Kurniawan
Ardi Kurniawan
3.34.10.0.06
3.34.10.0.06
IK-2A
IK-2A
PROGRAM STUDI TEKNIK INFORMATIKA PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN ELEKTRO JURUSAN ELEKTRO
POLITEKNIK NEGERI SEMARANG
POLITEKNIK NEGERI SEMARANG
TAHUN 2011 TAHUN 2011
BAB 7 BAB 7
SWING
SWING
I. Tujuan Instruksional Khusus I. Tujuan Instruksional Khusus
Setelah menyelesaikan praktek ini mahasiswa dapat : Setelah menyelesaikan praktek ini mahasiswa dapat : 1.
1. menjelaskan apa menjelaskan apa yang yang dimaksud dimaksud Swing,Swing, 2.
2. perbedaan antara komponen dan container,perbedaan antara komponen dan container, 3.
3. mendesain aplikasi GUI menggunakan Swing,mendesain aplikasi GUI menggunakan Swing, 4.
4. membuat tampilan yang komplek dalam mendesain aplikasi GUI.membuat tampilan yang komplek dalam mendesain aplikasi GUI.
II. Persyaratan / Kebutuhan Sistem Komputer II. Persyaratan / Kebutuhan Sistem Komputer
Persyaratan / kebutuhan sistem untuk menjalankan program Java adalah sebagai berikut : Persyaratan / kebutuhan sistem untuk menjalankan program Java adalah sebagai berikut : 1.
1. processor processor P-II atau P-II atau yang lebih yang lebih tinggi,tinggi, 2.
2. ram minimal 32 Mbyte,ram minimal 32 Mbyte, 3.
3. free space harddisk minimal 200 Mbyte,free space harddisk minimal 200 Mbyte, 4.
4. mouse ( Serial / PS2 ),mouse ( Serial / PS2 ), 5.
5. sistem operasi :sistem operasi : a.
a. minimal Windows 98 ( disarankan versi Windows yang lebih tinggi),minimal Windows 98 ( disarankan versi Windows yang lebih tinggi), b.
b. Linux.Linux.
III. Dasar Teori III. Dasar Teori Komponen
Komponen SwingSwing
Seperti pada package AWT, package dari Swing menyediakan banyak class untuk membuat Seperti pada package AWT, package dari Swing menyediakan banyak class untuk membuat aplikasi GUI. Package tersebut dapat ditemukan di
aplikasi GUI. Package tersebut dapat ditemukan di javax.swing javax.swing. Perbedaan utama antara. Perbedaan utama antara keduanya adalah komponen Swing ditulis menyeluruh menggunakan Java. Program GUI ditulis keduanya adalah komponen Swing ditulis menyeluruh menggunakan Java. Program GUI ditulis menggunakan banyak class dari package Swing yang mempunyai tampilan look and feel yang menggunakan banyak class dari package Swing yang mempunyai tampilan look and feel yang sama meski dijalankan pada paltform yang berbeda. Lebih dari itu, Swing menyediakan sama meski dijalankan pada paltform yang berbeda. Lebih dari itu, Swing menyediakan komponen yang lebih menarik seperti
komponen yang lebih menarik seperti color chooser color chooser dandan option pane.option pane. Nama dari komponen GUINama dari komponen GUI milik Swing hampir sama persis dengan komponen GUI milik AWT. Perbedaan jelas terdapat milik Swing hampir sama persis dengan komponen GUI milik AWT. Perbedaan jelas terdapat pada penamaan komponen. Pada dasarnya, nama komponen Swing sama dengan nama pada penamaan komponen. Pada dasarnya, nama komponen Swing sama dengan nama
komponen AWT tetapi dengan tambahan huruf J pada prefixnya. Sebagai contoh, satu komponen komponen AWT tetapi dengan tambahan huruf J pada prefixnya. Sebagai contoh, satu komponen dalam AWT adalah button class. Sedangkan pada Swing, nama komponen tersebut menjadi dalam AWT adalah button class. Sedangkan pada Swing, nama komponen tersebut menjadi Jbutton class. Berikut adalah daftar dari komponen Swing.
Jbutton class. Berikut adalah daftar dari komponen Swing. Tabel 6.1 Daftar komponen Swing
Tabel 6.1 Daftar komponen Swing
Komponen Komponen Swing Swing Penjelasan Penjelasan JComponent
JComponent class class induk induk untuk untuk semua semua komponen komponen Swing, Swing, tidak tidak termasuk termasuk top-leveltop-level kontainer
kontainer JButton
JButton Tombol “push”. Berhubungan dengan class button dalam package AWTTombol “push”. Berhubungan dengan class button dalam package AWT JCheckBox
JCheckBox Item Item yang yang dapat dapat dipilih dipilih atau atau tidak tidak oleh oleh pengguna. pengguna. Berhubungan Berhubungan dengandengan class checkbox dalam package AWT
class checkbox dalam package AWT JFileChooser
JFileChooser Mengijinkan pengguna Mengijinkan pengguna untuk untuk memilih memilih sebuah sebuah file. file. Berhubungan Berhubungan dengandengan class filechooser dalam package AWT
class filechooser dalam package AWT JTextField
JTextField Mengijinkan Mengijinkan untuk untuk mengedit mengedit text text satu satu baris. baris. Berhubungan Berhubungan dengan dengan classclass textfield dalam package AWT.
textfield dalam package AWT. JFrame
JFrame Turunan Turunan dan dan Berhubungan Berhubungan dengan dengan class class frame frame dalam dalam package package AWT AWT tetapitetapi keduanya sedikit tidak cocok dalam kaitannya dengan menambahkan keduanya sedikit tidak cocok dalam kaitannya dengan menambahkan komponen pada kontainer. Perlu mendapatkan content pane yang terbaru komponen pada kontainer. Perlu mendapatkan content pane yang terbaru sebelum menambah sebuah komponen.
sebelum menambah sebuah komponen. JPanel
JPanel Turunan Turunan Jcomponent. Jcomponent. Class Class Container Container sederhana sederhana tetapi tetapi bukan bukan top-level.top-level. Berhubungan dengan class panel dalam package AWT.
Berhubungan dengan class panel dalam package AWT. JApplet
JApplet Turunan Turunan dan dan Berhubungan Berhubungan dengan dengan class class Applet Applet dalam dalam package package AWT.AWT. Juga sedikit tidak cocok dengan class applet dalam kaitannya dengan Juga sedikit tidak cocok dengan class applet dalam kaitannya dengan menambahkan komponen pada container
menambahkan komponen pada container JOptionPane
JOptionPane Turunan Turunan Jcomponent. Jcomponent. Disediakan Disediakan untuk untuk mempermudah mempermudah menampilkanmenampilkan pop-up kotak dialog.
pop-up kotak dialog. JDialog
JDialog Turunan Turunan dan dan Berhubungan Berhubungan dengan dengan class class dialog dialog dalam dalam package package AWT.AWT. Biasanya digunakan untuk menginformasikan sesuatu kepada pengguna Biasanya digunakan untuk menginformasikan sesuatu kepada pengguna atau prompt pengguna untuk input.
atau prompt pengguna untuk input. JColorChooser
JColorChooser Turunan Turunan Jcomponent. Memungkinkan Jcomponent. Memungkinkan pengguna pengguna untuk muntuk memilih warnaemilih warna yang diinginkan.
yang diinginkan.
Setting Up Top-Level Containers Setting Up Top-Level Containers
Seperti disebutkan diatas, top-level containers seperti
Seperti disebutkan diatas, top-level containers seperti Jframe Jframe dandan Japplet Japplet dalam Swing sangatdalam Swing sangat tidak cocok dengan AWT. Ini adalah syarat menambahkan komponen ke dalam kontainer. Jika tidak cocok dengan AWT. Ini adalah syarat menambahkan komponen ke dalam kontainer. Jika Anda ingin menambahkan langsung sebuah komponen kedalam kontainer sebagai container Anda ingin menambahkan langsung sebuah komponen kedalam kontainer sebagai container
AWT, pertama-tama Anda telah mendapatkan content pane dari kontainer. Untuk melakukan hal AWT, pertama-tama Anda telah mendapatkan content pane dari kontainer. Untuk melakukan hal tersebut, Anda akan menggunakan method
tersebut, Anda akan menggunakan method getContentPanegetContentPanedari container.dari container.
IV. Langkah Kerja IV. Langkah Kerja
Jalankan Edit Plus, buat file baru java dan ketikkan kode program berikut : Jalankan Edit Plus, buat file baru java dan ketikkan kode program berikut : 1.
1. Lakukan percobaan berikut sesuai teori diatas, lalu simpan dengan Filename Win1.Lakukan percobaan berikut sesuai teori diatas, lalu simpan dengan Filename Win1.
import javax.swing.*; import javax.swing.*;
public class Win1 extends javax.swing.JFrame public class Win1 extends javax.swing.JFrame { { public Win1() public Win1() { { setTitle("Layar 1"); setTitle("Layar 1"); setSize(200,300); setSize(200,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); setVisible(true); } }
public static void main(String[] args) public static void main(String[] args) {
{
Win1 w = new Win1(); Win1 w = new Win1(); }
} } }
2.
2. Lakukan percobaan berikut sesuai teori diatas, lalu simpan dengan Filename Win2.Lakukan percobaan berikut sesuai teori diatas, lalu simpan dengan Filename Win2. import javax.swing.*;
import javax.swing.*; public class Win2 public class Win2 { { JFrame w; JFrame w; public Win2() public Win2() { { w = new JFrame (); w = new JFrame (); w.setTitle("layar 2"); w.setTitle("layar 2"); w.setSize(200,300); w.setSize(200,300); w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); w.setVisible(true); w.setVisible(true); } }
public static void main(String args[]) public static void main(String args[]) { { new Win2(); new Win2(); } } } }
3.
3. Perhatikan Kode program diatas dan ubah kodeprogram dengan menuliskan title mlangsungPerhatikan Kode program diatas dan ubah kodeprogram dengan menuliskan title mlangsung pada konstruktor. Simpan dengan Filename Win2b.
pada konstruktor. Simpan dengan Filename Win2b.
4.
4. Ubah program JFrame dengan menambahkan Container dengan kode getContentPane()Ubah program JFrame dengan menambahkan Container dengan kode getContentPane() seperti kode dibawah
seperti kode dibawah ini ini lalu simpan dengan lalu simpan dengan Filename Win3.Filename Win3.
import java.awt.*; import java.awt.*; import javax.swing.*; import javax.swing.*;
public class Win3 extends javax.swing.JFrame public class Win3 extends javax.swing.JFrame { { public Win3() public Win3() { {
JButton tombol = new JButton("Tombol"); JButton tombol = new JButton("Tombol"); //Contain //Container c;er c; getContentPane().add(tombol); getContentPane().add(tombol); setSize(300,80); setSize(300,80); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); setVisible(true); } }
public static void main(String[] args) public static void main(String[] args) { { new Win3(); new Win3(); } } } }
5.
5. Ubah program Ubah program JFrame Win3 dengan JFrame Win3 dengan menambahkan Label menambahkan Label seperti kode dibawah seperti kode dibawah ini ini lalulalu simpan dengan Filename MyLabel.
simpan dengan Filename MyLabel.
import javax.swing.*; import javax.swing.*; import java.awt.*; import java.awt.*;
public class mylabel public class mylabel { { JFrame layar; JFrame layar; JLabel L1, L2, L3, L4; JLabel L1, L2, L3, L4; public mylabel() public mylabel() { {
layar = new JFrame("Label Test"); layar = new JFrame("Label Test"); L2
L2 = = new new JLabel JLabel ("Alamat ("Alamat :");:"); L1
L1 = = new new JLabel JLabel ("Nama ("Nama :");:");
Container c = layar.getContentPane(); Container c = layar.getContentPane(); c.setLayout(new FlowLayout()); c.setLayout(new FlowLayout()); L3
L3 = = new new JLabel JLabel ("Kota ("Kota :",SwingConstants.LEFT);:",SwingConstants.LEFT); L4
L4 = = new new JLabel JLabel ("Telepon ("Telepon :",SwingConstants:",SwingConstants.RIGHT);.RIGHT);
c.add(L1); c.add(L1); c.add(L2); c.add(L2); c.add(L3); c.add(L3); c.add(L4); c.add(L4); layar.setSize(400,200); layar.setSize(400,200); layar.setVisible(true); layar.setVisible(true); } }
public static void main (String argv[]) public static void main (String argv[]) { { new mylabel(); new mylabel(); } } } } 6.
6. Ubah program Ubah program MyLabel dengan menambahkan Label MyLabel dengan menambahkan Label seperti kode dibawah seperti kode dibawah ini ini lalu simpanlalu simpan dengan Filename/class name (MyTextField).
dengan Filename/class name (MyTextField).
import javax.swing.*; import javax.swing.*; import java.awt.*; import java.awt.*;
public class MyTextField { public class MyTextField {
private JFrame layar; private JFrame layar; private JTextField tf1; private JTextField tf1; private JLabel L1,L2; private JLabel L1,L2; private JPasswordField psw; private JPasswordField psw; public MyTextField() public MyTextField() { {
layar = new JFrame("Text Field Test"); layar = new JFrame("Text Field Test"); L1 = new JLabel("User Name : "); L1 = new JLabel("User Name : "); L2 = new JLabel("Password : "); L2 = new JLabel("Password : "); tf1= new JTextField(25);
tf1= new JTextField(25);
JPasswordField psw = new JPasswordField(20); JPasswordField psw = new JPasswordField(20);
Container c = layar.getContentPane(); Container c = layar.getContentPane(); c.setLayout( new FlowLayout()); c.setLayout( new FlowLayout());
c.add(L1); c.add(L1); c.add(tf1); c.add(tf1); c.add(L2); c.add(L2); c.add(psw); c.add(psw); layar.setSize(400,100); layar.setSize(400,100); layar.setVisible(true); layar.setVisible(true); } }
public static void main(String [] args) { public static void main(String [] args) {
new MyTextField(); new MyTextField(); } } } } 7.
7. Ubah Ubah program MyTextField program MyTextField dengan menambahkan dengan menambahkan Label Label seperti kode seperti kode dibawah ini dibawah ini lalulalu simpan dengan Filename/class name (MyButton).
simpan dengan Filename/class name (MyButton). //MyBut //MyButton.javaton.java import javax.swing.*; import javax.swing.*; import java.awt.*; import java.awt.*; public class MyButton public class MyButton {
{
private JFrame layar; private JFrame layar; private JLabel L1, L2; private JLabel L1, L2;
private JTextField tf1; private JTextField tf1; private JPasswordField psw; private JPasswordField psw; JButton b1, b2; JButton b1, b2; public MyButton() public MyButton() { {
layar = new JFrame("TextField Test"); layar = new JFrame("TextField Test"); L1 = new JLabel("User Name: "); L1 = new JLabel("User Name: "); tf1 = new JTextField(25); tf1 = new JTextField(25); L2 = new JLabel("Password: "); L2 = new JLabel("Password: "); psw = new JPasswordField(25); psw = new JPasswordField(25); b1 = new JButton("OK"); b1 = new JButton("OK"); b2 = new JButton("Cancel"); b2 = new JButton("Cancel"); Container c = layar.getContentPane(); Container c = layar.getContentPane(); c.setLayout(new FlowLayout()); c.setLayout(new FlowLayout()); c.add(L1); c.add(L1); c.add(tf1); c.add(tf1); c.add(L2); c.add(L2); c.add(psw); c.add(psw); c.add(b1); c.add(b1); c.add(b2); c.add(b2); layar.setSize(900,80); layar.setSize(900,80); layar.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); layar.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); layar.setVisible(true); layar.setVisible(true); } }
public static void main(String[] args) public static void main(String[] args) {
{
MyButton mb = new MyButton(); MyButton mb = new MyButton(); }
} } }
1.
1. Simpan program Java di atas.Simpan program Java di atas. 2.
2. Eksekusi program Java Pertama dengan mengklik ToolEksekusi program Java Pertama dengan mengklik Tool Compile Program Java. Lalu ToolCompile Program Java. Lalu Tool
Menjalankan Program Java.Menjalankan Program Java. 3.
3. Tampilkan hasilnya.Tampilkan hasilnya.
V. Pertanyaan V. Pertanyaan
Buatlah tampilan GUI untuk program tic-tac-toe. Papannya terdiri dari enam kotak. Ingatlah Buatlah tampilan GUI untuk program tic-tac-toe. Papannya terdiri dari enam kotak. Ingatlah bahwa Anda akan menambahkan kode ini pada tahap akhir untuk mengatasi interaksi antar bahwa Anda akan menambahkan kode ini pada tahap akhir untuk mengatasi interaksi antar pengguna. Jadi, desainlah papan Anda dengan benar. Pastikanlah Anda memilih komponen yang pengguna. Jadi, desainlah papan Anda dengan benar. Pastikanlah Anda memilih komponen yang pantas untuk papan tersebut. keluarkan semua sisi artistik Anda. Anda dapat menggunakan pantas untuk papan tersebut. keluarkan semua sisi artistik Anda. Anda dapat menggunakan Swing untuk latihan ini.
Swing untuk latihan ini.
Source code : Source code : //Tictactoe.java //Tictactoe.java import javax.swing.*; import javax.swing.*; import java.awt.*; import java.awt.*; public class Tictactoe public class Tictactoe { { JFrame layar; JFrame layar; JButton b1, b2, b3, b4, b5, b6, b7, b8, b9; JButton b1, b2, b3, b4, b5, b6, b7, b8, b9; public Tictactoe() public Tictactoe() { {
layar = new JFrame("Tictactoe"); layar = new JFrame("Tictactoe");
ImageIcon ico = new ImageIcon("ico.gif"); ImageIcon ico = new ImageIcon("ico.gif"); b1= new JButton(ico); b1= new JButton(ico); b2= new JButton(ico); b2= new JButton(ico); b3= new JButton(ico); b3= new JButton(ico); b4= new JButton(ico); b4= new JButton(ico); b5= new JButton(ico); b5= new JButton(ico); b6= new JButton(ico); b6= new JButton(ico); b7= new JButton(ico); b7= new JButton(ico); b8= new JButton(ico); b8= new JButton(ico);
b9= new JButton(ico); b9= new JButton(ico); Container c=
Container c= layar.getContentPane();layar.getContentPane(); c.setLayout(new GridLayout(3,3)); c.setLayout(new GridLayout(3,3)); c.add(b1); c.add(b1); c.add(b2); c.add(b2); c.add(b3); c.add(b3); c.add(b4); c.add(b4); c.add(b5); c.add(b5); c.add(b6); c.add(b6); c.add(b7); c.add(b7); c.add(b8); c.add(b8); c.add(b9); c.add(b9); layar.setSize(300,250); layar.setSize(300,250); layar.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); layar.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); layar.setVisible(true); layar.setVisible(true); layar.setLocation(500,200); layar.setLocation(500,200); } }
public static void main(String[] args) public static void main(String[] args) {
{
Tictactoe tt= new Tictactoe(); Tictactoe tt= new Tictactoe(); } } } } Print Priview : Print Priview :