Anda di halaman 1dari 21

LAPORAN AKHIR

PRAKTIKUM PEMROGRAMAN OBJEK 2

MODUL 4

MEMBANGUN APLIKASI BERBASIS GUI

Disusun Oleh :

MUHAMAD FIKRI JAMILUDIN 3411181194

Kelas A

PROGRAM STUDI INFORMATIKA

FAKULTAS SAINS DAN INFORMATIKA

UNIVERSITAS JENDERAL ACHMAD YANI

2021
ABSTRAK
Pada modul 4 ini kita belajar penggunaan GUI pada Java. Hal ini mencakup
tentang bagaimana cara membuat sebuah grafik, memberi warna kepada setiap
komponen, membuat sebuah frame, dan pemanggilan beberapa package.

1
DAFTAR ISI

ABSTRAK..............................................................................................................1
DAFTAR ISI...........................................................................................................2
BAB I HASIL PRAKTIKUM...............................................................................3
1.1) Program FrameExample............................................................................3
1.2) Program FrameWPanel.............................................................................4
1.3) Program GraphicPanel..............................................................................5
1.4) Program FrameWControls........................................................................6
1.5) Program FlowLayoutDemo.......................................................................7
1.6) Program BorderLayoutDemo....................................................................8
1.7) Program ComplexLayout..........................................................................9
1.8) Program MyContainer.............................................................................10
1.9) Program SwingDemo..............................................................................11
1.10) Program SwingDemo...........................................................................12
BAB II TUGAS AKHIR......................................................................................14
BAB III KESIMPULAN......................................................................................19
DAFTAR PUSTAKA...........................................................................................20

2
BAB I
HASIL PRAKTIKUM
1.1) Program FrameExample
a. Source Code
import java.awt.*;

public class FrameExample {


private Frame f;

public FrameExample() {
f = new Frame("Hello Out There!");
}

public void launchFrame(){


f.setSize(170, 170);
f.setBackground(Color.blue);
f.setVisible(true);
}

public static void main(String[] args) {


FrameExample gui = new FrameExample();
gui.launchFrame();
}
}
import java.awt.*;

public class FrameWPanel {


private Frame f;

public FrameWPanel(String title){


f = new Frame(title);
}

public void launchFrame(){


f.setSize(200, 200);
f.setBackground(Color.blue);
f.setLayout(null);

Panel p = new Panel();

f.add(p);
f.setVisible(true);
}
public static void main(String[] args) {
FrameWPanel gui = new FrameWPanel("Frame
With Panel");
gui.launchFrame();
}

3
}
b. Screenshot

c. Analisa
Membuat sebuah Frame, dan menyeting size dengan ukuran 170 x
170, dengan background color biru yang dimana Color adalah objek
lain juga. lalu setVisible bernilai true agar tampilan GUI akan muncul
ke permukaan windows/layar.
1.2) Program FrameWPanel
a. Source Code
import java.awt.*;

public class FrameWithPanel {


private Frame f;
public FrameWithPanel(String title) {
f = new Frame(title);
}
public void launchFrame() {
f.setSize(200, 200);
f.setBackground(Color.blue);
f.setLayout(null);
Panel pan = new Panel();
pan.setSize(100,100);
pan.setBackground(Color.yellow);
f.add(pan);
f.setVisible(true);
}
public static void main(String [] args) {
FrameWithPanel guiWindow = new
FrameWithPanel("Frame With Panel");
guiWindow.launchFrame();
}
}
b. Screenshot

4
c. Analisa
Membuat frame berukuran 200x200 untuk panjang dan lebarnya
dan diberi warna background atau warna latar dari frame tersebut biru,
lalu diinputkan kembali panel yang berukuran 100 untuk panjang dan
lebarnya dan diberi warna kuning.
1.3) Program GraphicPanel
a. Source Code
import java.awt.Panel;
import java.awt.*;

public class GraphicPanel extends Panel {


public GraphicPanel() {
setBackground(Color.black);
}
public void paint(Graphics g) {
g.setColor(new Color(0,255,0));
//green
g.setFont(new Font("Helvetica",
Font.PLAIN,16));
g.drawString("Hello GUI
world!", 30 , 100);
g.setColor(new Color(1.0f, 0,
0)); //red
g.fillRect(30, 100, 150, 10);
}
public static void main(String []
args) {
Frame f =new Frame("Testing
Graphics Panel");
GraphicPanel gp = new
GraphicPanel();
f.add(gp);
f.setSize(600, 300);
f.setVisible(true);
}
}

5
b. Screenshot

c. Analisa
Membuat sebuah method panel dengan background hitam. Untuk
font menggunakan color hijau. Tulisan Hello GUI World akan
mengikuti warna yang sudah diatur sebelumnya, lalu membuat garis
bawah dan memberinya warna merah.
1.4) Program FrameWControls
a. Source Code
import java.awt.*;
import java.awt.Frame;

public class FrameWControls extends Frame {


public FrameWControls() {
}
public static void main(String[]
args) {
FrameWControls fwc = new
FrameWControls();
fwc.setLayout(new
FlowLayout());
fwc.setSize(600, 600);
fwc.add(new Button("Test
Me!"));
fwc.add(new Label("Labe"));
fwc.add(new TextField());
CheckboxGroup cbg = new
CheckboxGroup();
fwc.add(new Checkbox("chk1",
cbg, true));
fwc.add(new Checkbox("chk2",
cbg, false));
fwc.add(new Checkbox("chk3",
cbg, false));
List list = new List(3, false);

6
list.add("MTV");
list.add("V");
fwc.add(list);
Choice chooser = new Choice();
chooser.add("Avril");
chooser.add("Monica");
chooser.add("Britney");
fwc.add(chooser);
fwc.add(new Scrollbar());
fwc.setVisible(true);
}
}

b. Screenshot

c. Analisis
Membuat sebuah frame bernama FrameWControls. Frame di resize
ulang, lalu menambahkan komponen lain pada sebuah frame,
contohnya ada tombol, label, checkbox, choice dan scrollbar.
Sebenarnya masih banyak lagi komponen yang bisa ditambahkan
namun disini hanya memakai beberapa saja.
1.5) Program FlowLayoutDemo
a. Source Code
import java.awt.Frame;
import java.awt.*;

public class FlowLayoutDemo extends Frame {


public FlowLayoutDemo() {
}
public static void main(String[] args) {
FlowLayoutDemo fld = new
FlowLayoutDemo();
fld.setLayout(new
FlowLayout(FlowLayout.RIGHT, 10, 10));
fld.add(new Button("ONE"));
fld.add(new Button("TWO"));
fld.add(new Button("THREE"));
fld.setSize(100, 100);
fld.setVisible(true);
}
}

7
b. Screenshot

c. Analisis
Membuat sebuah flowlayout dengan button diantaranya yang
bertuliskan “ONE,TWO,THREE” yang diletakan disebelah kanan atas,
dan flowlayout diberi ukuran 100 untuk panjang dan lebarnya.
1.6) Program BorderLayoutDemo
a. Source Code
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.*;

public class BorderLayoutDemo extends Frame {


public BorderLayoutDemo() {
}
public static void main (String []
args) {
BorderLayoutDemo bld = new
BorderLayoutDemo();
bld.add(new Button("NORTH"),
BorderLayout.NORTH);
bld.add(new Button("SOUTH"),
BorderLayout.SOUTH);
bld.add(new Button("EAST"),
BorderLayout.EAST);
bld.add(new Button("WEST"),
BorderLayout.WEST);
bld.add(new Button("CENTER"),
BorderLayout.CENTER);
bld.setSize(200,200);
bld.setVisible(true);
}
}

b. Screenshot

8
c. Analisis
Membuat sebuah tombol pada sebuah frame. Namun setiap kali
pembuatan frame ada parameter tambahan yaitu menambahkan
parameter akan di pasang di daerah manakah tombol tombol tersebut.
Contohnya ada yang ditengah, kiri, kanan, atas atau bawah.
1.7) Program ComplexLayout
a. Source Code
import java.awt.Frame;
import java.awt.*;

public class ComplexLayout extends Frame {


public ComplexLayout(){}
public static void main (String [] args)
{
ComplexLayout cl = new ComplexLayout
();
Panel panelNorth = new Panel ();
Panel panelCenter = new Panel ();
Panel panelSouth = new Panel ();
panelNorth.add(new Button("ONE"));
panelNorth.add(new Button("TWO"));
panelNorth.add(new Button("THREE"));
panelCenter.setLayout(new
GridLayout(4,4));
panelCenter.add(new
TextField("1st"));
panelCenter.add(new
TextField("2st"));
panelCenter.add(new
TextField("3rd"));
panelCenter.add(new
TextField("4th"));
panelSouth.setLayout(new
BorderLayout());
panelSouth.add(new Checkbox ("Choose
me !"),BorderLayout.CENTER);
panelSouth.add(new Checkbox ("I'm

9
here !"),BorderLayout.EAST);
panelSouth.add(new Checkbox ("Pick
me !"),BorderLayout.WEST);
cl.add(panelNorth,
BorderLayout.NORTH);
cl.add(panelCenter,
BorderLayout.CENTER);
cl.add(panelSouth,
BorderLayout.SOUTH);
cl.setVisible(true);
}}

b. Screenshot

c. Analisis
Membuat 3 buah objek panel, untuk panel yang diatas saja,
ditengah dan dibawah. Diatas ada sebuah button, ditengah ada sebuah
textfield yang bisa diisikan sebuah teks dan dibawah ada sebuah
checkbox.
1.8) Program MyContainer
a. Source Code
import javax.swing.*;

public class MyContainer {


public static void main(String[] args) {

JFrame.setDefaultLookAndFeelDecorated(true);
JFrame container = new
JFrame("window utama");

10
container.setDefaultCloseOperation(JFrame.EXIT
_ON_CLOSE);
container.setSize(300,100);
container.setLocation(200,200);
container.setVisible(true);
}
}

b. Screemshot

c. Analisis
Membuat sebuah fram juga, namun membuatnya dengan memakai
java swing. Bukan memakai java AWT. Swing biasanya sudah jauh
lebih kompleks pemakaiannya dan dari segi pemrograman juga.
Terdapat tombol minimise, maximise dan tombol close.
1.9) Program SwingDemo
a. Source Code
import java.awt.*;
import javax.swing.*;

public class SwingDemo {


JFrame frame;
JPanel panel;
JTextField textField;
JButton button;
Container contentPane;
public SwingDemo() {
}
void launchFrame() {
frame = new JFrame("My First Swing
Application");
panel = new JPanel();
textField = new JTextField("Default
text");
button = new JButton("Click Me!");
contentPane =
frame.getContentPane();
panel.add(textField);

11
panel.add(button);
contentPane.add(panel,
BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingDemo sd = new SwingDemo();
sd.launchFrame();
}
}

b. Screenshot

c. Analisis
Disini menggabungkan antara AWT dan Swing. Setiap inisialisasi
yang didepannya memakai J itu adalah Swing. Contohnya JFrame,
JPanel, JTextField, JButton. Container disini memakai memakai dari
AWT.
1.10) Program SwingDemo
a. Source Code
Public class MainClassJavaFX extends
Application{
@override

Public void start(Stage primaryStage){


BorderPane p= new BorderPane();
Text t = new Text ("Hello FX");
t.setFont(Font.font("Arial",60));
p.setCenter(t);
primaryStage.setScene(new Scene(p));
primaryStage.show();
}

Public static void main(String []args){


Launch(args);
}

b. Screenshot

12
c. Analisis
Program Diatas merupakan program yang meenggunakan JavaFX
untuk menampilkan sebuah tulisan atau text yang menggunakan type
font arial dan berukuran 60 serta telah di set agar text berada di tengah.

13
BAB II
TUGAS AKHIR

1. Tugas 4.5 Buatlah tampilan tic tac toe


A. Source code

import java.awt.font.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TicTacToe {

private static int[][] winCombinations = new int[][]


{
{0, 1, 2}, {3, 4, 5}, {6, 7, 8},
{0, 3, 6}, {1, 4, 7}, {2, 5, 8},
{0, 4, 8}, {2, 4, 6}
};

private static JButton buttons[] = new


JButton[9]; //create 9 buttons

public static void main (String[] args)


{
gamePanel(); //launch game
}

private static void gamePanel(){


JFrame frame = new JFrame ("Tic Tac
Toe");
frame.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);

14
JPanel panel = new JPanel(); //creating
a panel with a box like a tic tac toe board
panel.setLayout (new GridLayout (3, 3));
panel.setBorder
(BorderFactory.createLineBorder (Color.gray, 3));
panel.setBackground (Color.white);

for(int i=0; i<=8; i++){ //placing the


button onto the board
buttons[i] = new MyButton();
panel.add(buttons[i]);

frame.getContentPane().add (panel);
frame.pack();
frame.setVisible(true);
frame.setSize(500, 500);// set frame
size and let teh game begin
}

public static int xOrO=0; // used for counting

private static class MyButton extends JButton


implements ActionListener {//creating own
button class because JButton sucks:)

int again=1000;//set again at 1000 so we


don't make the mistake we can play again
boolean win=false; // there is not a win
String letter; // x or o
public MyButton() { // creating
blank board
super();
letter=" ";
setFont(new Font("Dialog", 1,
60));

15
setText(letter);
addActionListener(this);
}
public void actionPerformed(ActionEvent
e) { // placing x or o's
if((xOrO%2)==0 &&
getText().equals(" ") && win==false){
letter="X";
xOrO=xOrO+1;
System.out.println(letter +
"\n"+xOrO);
} else if((xOrO%2)==1 &&
getText().equals(" ") && win==false) {
letter="O";
xOrO=xOrO+1;
System.out.println(letter +
"\n"+xOrO);
} // if user does click on a
button that is already played, nothing will happen

setText(letter); // place the x or


the o on the actual board

for(int i=0; i<=7; i++){ // check


for the winning combinations

if( buttons[winCombinations[i]
[0]].getText().equals(buttons[winCombinations[i]
[1]].getText()) &&

buttons[winCombinations[i]
[1]].getText().equals(buttons[winCombinations[i]
[2]].getText()) &&

buttons[winCombinations[i][0]].getText() != "
"){//the winning is true

16
win = true;
}
}

if(win == true){ // if the game


ends let the user know who wins and give option to
play again

again=JOptionPane.showConfirmDialog(null,
letter + " wins the game! Do you want to play
again?",letter + "won!",JOptionPane.YES_NO_OPTION);

} else if(xOrO == 9 && win ==


false){//tie game, announce and ask if the user want
to play again

again=JOptionPane.showConfirmDialog(null, "The
game was tie! Do you want to play again?","Tie
game!",JOptionPane.YES_NO_OPTION);
win=true;
}

if(again==JOptionPane.YES_OPTION
&& win==true){ // if the user want to play again
clear all the button and start over
clearButtons();

win=false;
}
else
if(again==JOptionPane.NO_OPTION){
System.exit(0); // exit game
if the user do not want to play again
}

17
}

public static void clearButtons(){

for(int i=0; i<=8; i++){// clear all 8


buttons
buttons[i].setText(" ");

}
xOrO=0; // reset the count

B. Screenshot

18
BAB III
KESIMPULAN

Pada modul 4 ini kita dapat mengetahui cara penggunaan GUI di java.
GUI sendiri di dalamnya terdapat beberapa fitur agar tampilan Java dapat lebih
menarik dengan menambahkan beberapa item yang dapat di masukan sesuai
dengan keinginan dan kebutuhan pengguna.

19
DAFTAR PUSTAKA

Yuniarti, R. (2021). Pemrograman Objek 2. Dalam Modul Praktikum PO2 (hal.


131). Cimahi: InformatikaFakultasFSI UNJANI.

20

Anda mungkin juga menyukai