Modul 6 - GUI
Modul 6 - GUI
0
14 MARET , 2024
DISUSUN OLEH:
TAUFIQ RAMADHAN
SUTRISNO ADIT PRATAMA
DIAUDIT OLEH:
IR. GALIH WASIS WICAKSONO, S.KOM, M.CS
LAB. INFORMATIKA
UNIVERSITAS MUHAMMADIYAH MALANG
Laboratorium Informatika
PERSIAPAN MATERI
1. Java Development Kit.
2. Text Editor / IDE (Visual Studio Code, Netbeans, Intellij IDEA, atau yang lainnya).
TUJUAN
1. Mahasiswa dapat memahami java gui .
2. Mahasiswa dapat memahaami komponen dalam JavaFx
TARGET MODUL
1. Mahasiswa dapat mengimplementasikan java gui.
2. Mahaasiswa Dapat mengimplementasikan javafx
KEYWORDS
1. JavaFX
2. Java GUI
3. Form JavaFx
TEORI
• Pengertian JavaFx
JavaFX adalah sebuah platform software untuk membangun sebuah Rich Internet
Application (RIA) yang bisa berjalan pada berbagai macam perangkat. Seperti komputer
dekstop, web browser di Windows, Linux dan Mac OSX. JavaFX dirancang untuk menyediakan
para developer java sebuah platform yang baru, ringan, dengan performa yang tinggi.
Tujuannya adalah ingin mengantikan swing untuk membangun aplikasi GUI. Namun itu bukan
berarti Swing sudah tidak digunakan lagi. Sejumlah besar aplikasi telah dibangun dengan
menggunakan swing itu berarti, Swing telah menjadi bagian dari Java API untuk waktu yang
cukup lama. Terutama bahwa aplikasi ini bisa digabungkan dengan JavaFX secara fungsi.
MATERI
Penjelasan:
1. Metode start() dalam program Java yang menggunakan JavaFX adalah titik masuk
utama untuk aplikasi JavaFX.
2. main Method: Memanggil launch(args) yang memanggil fungsi launch() aplikasi
JavaFX.
• Library javafx.scene.layout
dalam JavaFX menyediakan berbagai kelas layout yang membantu mengatur tata letak
komponen UI di dalam aplikasi. Setiap jenis layout memiliki aturan dan fitur khusus yang
memungkinkan pengembang untuk mengelola tata letak elemen secara fleksibel dan efektif.
Berikut adalah beberapa kelas layout utama yang tersedia dalam javafx.scene.layout beserta
penjelasannya:
• CLASS LAYOUT
1. VBox (Vertical Box)
• Menyusun anak-anaknya dalam kolom vertikal.
• Komponen ditempatkan dari atas ke bawah.
Contoh penggunaan:
2. HBox(Horizontal Box)
• Menyusun anak-anaknya dalam baris horizontal.
• Komponen ditempatkan dari kiri ke kanan.
Contoh penggunaan:
Contoh Penggunaan:
Hasil Run
Membuat sebuah VBox dengan jarak antar komponen (children) sebesar 10 piksel. VBox
adalah layout container yang mengatur komponen-komponen secara vertikal.
• Button btn1 = new Button("Button 1");
Membuat sebuah VBox lain bernama root dengan jarak antar komponen sebesar 20
piksel. root ini akan digunakan sebagai layout utama dari scene.
• root.getChildren().addAll(vbox);
Menambahkan vbox ke dalam root. Ini berarti vbox, yang berisi tombol btn1, sekarang
menjadi bagian dari root.
• Scene scene = new Scene(root, 400, 600);
Membuat sebuah scene dengan root sebagai layout utama dan ukuran jendela sebesar
400 piksel lebar dan 600 piksel tinggi. Scene adalah wadah untuk semua konten yang
ditampilkan di stage.
• stage.setTitle("Button Test");
Mengatur scene dari stage ke scene yang baru saja dibuat. Ini menghubungkan layout
yang sudah disusun ke jendela aplikasi.
• stage.show();
Menampilkan jendela aplikasi. Metode ini memulai tampilan GUI aplikasi.
Skenario: saat button di klik maka dibawahnya menampilkan output “ button berfungsi”
btn1.setOnAction(event -> {
outputLabel.setText("Button 1 clicked!");
});
Penjelasan :
1. btn1 adalah objek dari kelas Button, yaitu tombol yang telah dibuat
sebelumnya dengan label "Button 1".
2. setOnAction adalah metode yang digunakan untuk menetapkan event
handler ke tombol. Event handler ini akan menentukan tindakan yang
dilakukan ketika tombol diklik.
3. event -> { ... } adalah lambda expression yang digunakan untuk
mendefinisikan event handler. Lambda expression ini adalah cara
singkat untuk menulis instance dari antarmuka fungsional, dalam hal
ini, antarmuka EventHandler<ActionEvent>.
4. setText("Button 1 clicked!") adalah metode yang mengubah teks yang
ditampilkan oleh outputLabel.
▪ Tambahkan label dan button ke vbox
vbox.getChildren().addAll(btn1, outputLabel)
▪ Output
btn1.setOnAction(event -> {
4. Output
KEGIATAN PERCOBAAN
PERCOBAAN 1
Membuat form adalah dasar dalam membangun aplikasi. Baik tidaknya aplikasi form akan
menetukan keberhasilan aplikasi. Sebuah aplikasi biasanya tersusun dari beberapa form yang saling
berinteraksi. Form yang baik adalah form yang user friendly dengan pengguna sehingga pengguna sangat
nyaman menggunakan aplikasi. Salah satu form yang kita temui pada setiap aplikasi adalah form login.
Berikut langkah-langkahnya :
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Form Login");
primaryStage.show();
}
2. Setelah itu tambahkan script di bawah sebelum kode primaryStage.show();
4. Kemudian kita akan menambahkan Button dan Text untuk menampilkan pesan dengan
menambahkan script seperti berikut : Button btn = new Button("Sign in");
Selanjutnya adalah menambahkan event handling dari button dengan menambahkan script
seperti berikut ini :
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
actiontarget.setFill(Color.FIREBRICK);
actiontarget.setText("Sign in button pressed");
}
});
PERCOBAAN 2
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;
@Override
public void start(Stage stage) {
Scene scene = new Scene(new Group());
stage.setTitle("Test TableView");
stage.setWidth(450);
stage.setHeight(550);
final Label label = new Label("Daftar Mahasiswa");
label.setFont(new Font("Arial", 30));
table.setEditable(true);
((Group) scene.getRoot()).getChildren().addAll(vbox);
stage.setScene(scene);
stage.show();
}
}
Untuk menambahkan data pada table, pertama buatlah sebuah class contohnya class Mahasiswa
di dalam class Main yang isinya sebagai berikut :
3. Buatlah ObservableList array untuk menentukan seberapa banyak baris data yang ingin anda
tampilkan di table anda.
Langkah selanjutnya adalah mengasosiasikan data ke dalam colom, bisa menggunakan code
sebagai berikut:
nameCol.setCellValueFactory(
new PropertyValueFactory<Mahasiswa,String>("name")
);
nimCol.setCellValueFactory(
new PropertyValueFactory<Mahasiswa,String>("nim")
);
emailCol.setCellValueFactory(
new PropertyValueFactory<Mahasiswa,String>("email")
);
Note : - Method setCellValueFactory mengimplementasikan class PropertyValueFactory yang
menggunakan property name, nim, dan email sebagai referensi nilai ke class Mahasiswa.
Saat model data sudah ditentukan dan data ditambahkan serta sudah dikaitkan dengan kolom,
kita dapat menambahkan data ke table dengan menggunakan method setItems pada table
seperti berikut :
table.setItems(data);
CODELAB
Buatlah Program java Gui login sederhana
Ketentuan :
1. Saat login gagal maka akan menampilkan pesan username / password salah
2. Saat login Sukses maka form akan di pindahkan ke halaman baru
Contoh
TUGAS
Melanjutkan tugas pada tahap modul 5 buatlah aplikasi peminjaman buku tersebut menjadi
GUI (GRAPHICAL USER INTERFACE)
Ketentuan :
- Diwajibkan menggunakan JavaFX
- Design GUI dibebaskan (Sesuai Kreativitas)
- Validasi validasi yang sebelumnya dibuat tetap jalan di gui
Seperti : NIM harus memiliki Panjang 15 angka dll.
- Error Handling / Exception Handling tetap di terapkan
RUBRIK PENILAIAN
Codelab 20
Tugas 40
Pemahaman 40
Total 100%