Pbo Rizky Andrizal
Pbo Rizky Andrizal
Penyusun
i
DAFTAR ISI
KATA PENGANTAR.............................................................................................i
DAFTAR ISI..........................................................................................................ii
DAFTAR GAMBAR.............................................................................................iv
MODUL 1 MEMULAI PROGRAM JAVA (NOTEPAD)..................................1
1.1 Tujuan Praktikum...........................................................................................1
1.2 Dasar Teori.....................................................................................................1
1.3 Praktikum.......................................................................................................2
1.4 Kesimpulan.....................................................................................................4
LEMBAR PENGESAHAN...................................................................................5
MODUL 2 KONTRUKTOR DAN ENKAPSULASI..........................................6
2.1 Tujuan Praktikum...........................................................................................6
2.2 Dasar Teori.....................................................................................................6
2.3 Praktikum.......................................................................................................7
2.4 Kesimpulan...................................................................................................10
LEMBAR PENGESAHAN.................................................................................11
MODUL 3 PEWARISAN....................................................................................12
3.1 Tujuan Praktikum.........................................................................................12
3.2 Dasar Teori...................................................................................................12
3.3 Praktikum.....................................................................................................13
3.4 Kesimpulan...................................................................................................15
LEMBAR PENGESAHAN.................................................................................16
MODUL 4 POLIMORPISME............................................................................17
4.1 Tujuan Praktikum.........................................................................................17
4.2 Dasar Teori...................................................................................................17
4.3 Praktikum.....................................................................................................18
4.4 Kesimpulan...................................................................................................19
LEMBAR PENGESAHAN.................................................................................20
MODUL 5 ABSTRAKSI.....................................................................................21
5.1 Tujuan Praktikum.........................................................................................21
5.2 Dasar Teori...................................................................................................21
ii
5.3 Praktikum.....................................................................................................22
5.4 Kesimpulan...................................................................................................23
LEMBAR PENGESAHAN.................................................................................24
MODUL 6 GUI.....................................................................................................25
6.1 Tujuan Praktikum.........................................................................................25
6.2 Dasar Teori...................................................................................................25
6.3 Praktikum.....................................................................................................26
6.4 Kesimpulan...................................................................................................38
LEMBAR PENGESAHAN.................................................................................40
DAFTAR PUSTAKA...........................................................................................41
iii
DAFTAR GAMBAR
iv
MODUL 1
MEMULAI PROGRAM JAVA (NOTEPAD)
1
2
tidak hanya terfokus pada satu sistem operasi, tetapi dikembangkan untuk
berbagai sistem operasi dan bersifat open source. Sebagian fitur dari Java antara
lain:
1. Java Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner (maya) yang bekerja dengan
menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan spesifikasi
hardware dan platform dimana kompilasi kode Java terjadi. spesifikasi inilah
yang membuat aplikasi berbasis Java menjadi bebas dari platform manapun
karena proses kompilasi diselesaikan oleh JVM.
2. Garbage Collection
Banyak bahasa pemrogaman lain yang mengizinkan seorang
programmer mengalokasikan memori pada saat dijalankan. Namun, setelah
menggunakan alokasi memori tersebut, harus terdapat cara untuk menempatkan
kembali blok memori tersebut supaya program lain dapat menggunakannya.
Dalam C, C++ dan bahasa lainnya, adalah programmer yang mutlak
bertanggung jawab akan hal ini. Hal ini dapat menyulitkan bilamana
programmer tersebut alpa untuk mengembalikan blok memori sehingga
menyebabkan situasi yang dikenal dengan nama memory leaks.
3. Code Security
Code Security terimplementasi pada Java melalui penggunaan Java Runtime
Environment (JRE). Java menggunakan model pengamanan 3 lapis untuk
melindungi sistem dari untrusted Java Code.(Eko,2013)
1.3 Praktikum
1. Buka Notepad dari Start Menu, lalu Accessories Notepad,
2. Jika notepad telah terbuka ketikkan kode program berikut ini,
3. Selanjutnya buka Command Prompt dan masuk kedalam direktori tempat kita
menyimpan file HelloWord,
1.4 Kesimpulan
Dari penjelasan di atas dapat disimpulkan bahwa Java adalah bahasa
pemrograman yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai
platform sistem operasi. Perkembangan Java tidak hanya terfokus pada satu
sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan bersifat
open source. dalam p-code (bytecode) agar dapat dijalankan pada berbagai sistem
operasi melalui java virtual machine (JVM).
LEMBAR PENGESAHAN
Asisten Laboratorium
Mengetahui
Laboran
5
MODUL 2
KONSTRUKTOR DAN ENKAPSULASI
6
7
Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep
dan rencana yang sudah ditentukan dari awal. Dalam konsep ini ada tiga kata
kunci yang digunakan. Enkapsulation atau Pengkapsulan adalah cara
“membungkus” data dan method yang menyusun kelas sehingga kelas dapat
dipandang sebagai suatu modul dan menyembunyikannya dari dunia luar. Dunia
luar disini adalah data, method, kelas, interface, atau package lain yang mungkin
akan berinteraksi dengan modul tersebut. (Meyfi, 2015)
2.3 Praktikum
1. Silahkan membuka aplikasi NetBeans IDE 8.2
2. Silahkan pilih new
3. Pastikan sudah memilih kategori java dan projek java application, kalau sudah
pas bisa tekan next
package Khatib;
public class Khatib {
private int kode;
private String nama;
private String alamat;
private String hp;
private String jadwal;
public Khatib(int kode, String nama, String alamat, String hp, String
jadwal) {
this.kode = kode;
this.nama = nama;
this.alamat = alamat;
this.hp = hp;
this.jadwal = jadwal;
}
2.4 Kesimpulan
Konstruktor adalah method khusus yang didefinisikan di dalam kelas dan
akan dipanggil secara otomatis setiap kali terjadi instansiasi objek, dan merupakan
method yang mengembalikan tipe kelas (dirinya sendiri). Enkapsulasi merupakan
mekanisme membungkus data (variabel /attribut) dan tingkah laku (method)
bersama sebagai satu kesatuan.
LEMBAR PENGESAHAN
Asisten Laboratorium
Mengetahui
Laboran
11
MODUL 3
PEWARISAN
12
perlu yang membuat satu class sebagai induk, dan beberapa class sebagai anak
yang mewarisi
13
14
3.3 Praktikum
Membuat program Pewarisan Khatib
public void
class infoKhatib() {
PewarisanKhatib {
System.out.println("Kode
public : " +args)
static void main(String[] kode);
{
System.out.println("Nama : " + nama);
Khatib khatib = new Khatib(1264, "Rizky", "Kabanjahe");
System.out.println("Alamat
System.out.println("Keterangan : " +Khatib");
alamat);
} khatib.infoKhatib();
} System.out.println();
class Muazin
Muazin muazin
extends=Khatib {
new Muazin(2345, "Dani", "Stabat", 823333);
private int hp;
System.out.println("Keterangan Muazin");
publicmuazin.infoMuazin();
Muazin(int kode, String nama, String alamat, int hp) {
super(kode, nama, alamat);
System.out.println();
this.hp = hp;
} Panitia panitia = new Panitia(7273, "Dafa", "Simpang limun", 999,
"27 Mei 2023");
public void infoMuazin() {
System.out.println("Keterangan Panitia");
infoKhatib();
panitia.infoPanitia();
System.out.println("No
System.out.println(); HP : " + hp);
}
}
class Khatib {
class Panitia
private int extends
kode; Muazin {
private String jadwal;
nama;
private String alamat;
publicpublic Panitia(int
Khatib(int kode, nama,
kode, String String String
nama,alamat)
String {alamat, int hp, String
jadwal) {
this.kode = kode;
super(kode, nama, alamat, hp);
this.nama = nama;
this.jadwal =
this.alamat = alamat; jadwal;
}
3.4 Kesimpulan
Inheritance (pewarisan) merupakan konsep dalam pemrograman
berorientasi objek yang memungkinkan untuk membuat suatu kelas yang
didasarkan pada kelas yang sudah ada sehingga mewarisi semua metode dan
variabelnya. Superclass adalah kelas yang mewarisi atau sering disebut kelas
Induk. Overloading adalah method dengan nama yang sama dengan method lain
pada suatu class tetapi dengan parameter yang berbeda.
16
LEMBAR PENGESAHAN
JUDUL : PEWARISAN
NAMA : Rizky Andrizal Nasution
NIM : 0701192002
PROGRAM STUDI : ILMU KOMPUTER
Asisten Laboratorium
Mengetahui
Laboran
17
MODUL 4
POLIMORPISME
18
Java yang memiliki overriding otomatis, sehingga kita tidak perlu menggunakan
kata kunci.
19
20
4.3 Praktikum
Membuat program Polimorpisme Buku
4.4 Kesimpulan
Polimorfisme adalah konsep dalam pemrograman berorientasi objek
(PBO) di mana suatu objek dapat memiliki beberapa bentuk atau tampilan. Dalam
PBO, overloading dan overriding konsep dapat menyebabkan polimorfisme.
Ketika beberapa metode dengan nama yang sama tetapi parameter yang berbeda
ada, overloading terjadi, tetapi overriding terjadi ketika subclass memiliki metode
yang memiliki nama dan parameter sama dengan superclassnya. Polimorfisme
memungkinkan dengan cara yang sama untuk penggunaan objek, tanpa
mengatahui tipe spesifik objek ini. Ini memudahkan pemeliharaan dan
pengembangan kode. Salah satu karakteristik utama PBO adalah polimorfisme,
yang sering dikaitkan dengan keturunan dan encapsulation.
LEMBAR PENGESAHAN
JUDUL : POLIPORPISME
NAMA : RIZKY ANDRIZAL NASUTION
NIM : 0701192002
PROGRAM STUDI : ILMU KOMPUTER
Asisten Laboratorium
Mengetahui
Laboran
20
MODUL 5
ABSTRAKSI
21
22
5.3 Praktikum
5.4 Kesimpulan
Tujuan praktikum PBO meliputi pembelajaran pembuatan kelas,
pemahaman konsep abstraksi, dan penerapan konsep-konsep PBO dalam
pengembangan program. Abstraksi dalam PBO memungkinkan pemodelan objek
sebagai representasi dari "pelaku" abstrak yang dapat melakukan kerja, laporan,
dan perubahan keadaannya, sementara encapsulation membantu dalam menjaga
kebutuhan data dengan menerapkan pembatasan akses dan melindungi kelas agar
tidak mudah diakses sembarangan oleh program lain.
LEMBAR PENGESAHAN
JUDUL : ABRSTRAKSI
NAMA : RIZKY ANDRIZAL NASUTION
NIM : 0701192002
PROGRAM STUDI : ILMU KOMPUTER
Asisten Laboratorium
Mengetahui
Laboran
24
MODUL 6
GUI
25
3. ‘JCheckBox’, berfungsi sebagai tanda centang, komponen ini juga paling
sering digunakan. Biasanya digunakan pada saat user melakukan setting
options.
26
27
6.3 Praktikum
A. Studi Kasus
Tulis program gui yang mengusung konsep berorientasi objek untuk jutuan
menggunakan komponen GUI berupa komponen frame, panel, label, textbox,
button, combobox, dan radio serta tabel.
B. Menggunakan Frame
import javax.swing.*;
import javax.swing.JFrame;
public class Frame {
public static void main(String[] args) {
JFrame frame = new JFrame("Frame Utama");
frame.setSize(500,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
C. Menggunakan Panel
import javax.swing.*;
import javax.swing.border.Border;
public class KotakPanel {
public static void main(String[] args) {
JFrame frame = new JFrame("Frame Dengan Sebuah Panel");
JPanel panel = new JPanel();
Border garis = BorderFactory.createTitledBorder("Biodata");
panel.setBorder(garis);
frame.add(panel);
frame.setSize(500,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
28
}}
D. Menggunakan Label
import java.awt.Font;
import java.awt.Color;
import javax.swing.*;
public class TextLabel {
public static void main(String[] args) {
JFrame frame = new JFrame("Frame Utama");
JPanel panel = new JPanel();
JLabel label = new JLabel("Ini label atau caption");
panel.add(label);
frame.add(panel);
label.setFont(new Font("Arial", Font.BOLD,16));
label.setForeground(Color.BLUE);
frame.setSize(500,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
E. Menggunakan TextFiled
import javax.swing.*;
public class KotakImput {
public static void main(String[] args) {
JFrame frame = new JFrame("Frame Utama");
frame.setSize(500,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField kotakInput = new JTextField();
kotakInput.setBounds(50,50,200,30);
frame.add(kotakInput);
29
frame.setLayout(null);
frame.setVisible(true); }}
F. Menggunakan Button
import java.awt.Dimension;
import javax.swing.*;
public class Tombol {
public static void main(String[] args) {
JFrame frame = new JFrame("Frame Utama");
JPanel panel = new JPanel();
JButton tombol = new JButton("Proses");
Dimension ukuran = new Dimension(80,30);
tombol.setPreferredSize(ukuran);
panel.add(tombol);
frame.add(panel);
frame.setSize(500,150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
G. Menggunakan ComboBox
import javax.swing.*;
public class PilihanCombo {
public static void main(String[] args) {
JFrame frame = new JFrame("Frame Utama");
JPanel panel = new JPanel();
JLabel label = new JLabel("Jenis Buku :");
panel.add(label);
String[] pilihan ={"Komputer", "Matematika", "Sains Murni","Sosial"};
JComboBox<String>
comboBox=new JComboBox<>(pilihan);
30
panel.add(comboBox);
frame.add(panel);
frame.setSize(500,150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}}
H. Menggunakan CheckBox
import javax.swing.*;
import javax.swing.border.Border;;
public class PilihanChecklis {
public static void main(String[] args) {
JFrame frame = new JFrame("Frame Utama");
JPanel panel = new JPanel();
Border garis = BorderFactory.createTitledBorder("Status Keanggotaan");
panel.setBorder(garis);
JCheckBox checkBox1= new JCheckBox("Mahasiswa");
JCheckBox checkBox2= new JCheckBox("Dosen");
JCheckBox checkBox3= new JCheckBox("MStaf Pegawai");
panel.add(checkBox1);
panel.add(checkBox2);
panel.add(checkBox3);
frame.add(panel);
frame.setSize(500,150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}}
J. Menggunakan Table
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class Tabel {
public static void main(String[] args) {
JFrame frame = new JFrame("Frame Utama");
frame.setSize(500, 150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(panel);
frame.add(scrollPane);
frame.setVisible(true);
}
}
Setelah melakukan percobaan diatas, lebih lanjut pada percobaan dibawah ini
akan menerapkan beberapa komponen GUI dalam satu aplikasi. Kode nya seperti
dibawah ini:
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class FrameBuku {
public static void main(String[] args) {
JFrame frameBuku = new JFrame("FORMULIR PENDATAAN BUKU");
JLabel lblKodebuku = new JLabel("Kode Buku:");
JLabel lblJudul = new JLabel("Judul Buku");
JLabel lblPengarang = new JLabel("Pengarang:");
JLabel lblTahunterbit = new JLabel("Tahun Terbit");
JLabel lblPenerbit = new JLabel("Penerbit");
JLabel lblKotaterbit = new JLabel("Kota Terbit");
JTextField txtKode = new JTextField(10);
JTextField txtJudul = new JTextField(20);
JTextField txtPengarang = new JTextField(20);
JTextField txtPenerbit = new JTextField(20);
String[] tahunTerbit = {"2022", "2021", "2020", "2019", "2018"};
JComboBox<String> cmbThnterbit = new JComboBox<>(tahunTerbit);
String[] kotaTerbit = {"Jakarta", "Bandung", "Surabaya", "Yogyakarta",
"Medan"};
JComboBox<String> cmbKotaterbit = new JComboBox<>(kotaTerbit);
JButton btnSimpan = new JButton("Simpan");
JButton btnHapus = new JButton("Hapus");
JButton btnRevisi = new JButton("Revisi");
JButton btnTutup = new JButton("Tutup");
String[] kolom = {"Kode Buku", "Judulu", "Pengarang", "Tahun Terbit",
"Penerbit", "Kota Terbit"};
33
K. Latihan
Tuliskan program berorientasi objek, yang mengacu pada aplikasi berbasis GUI
dengan komponen-komponen yang relevan dengan satu atau lebih perintah
masukan melalui:
1) Tindakan input keyboar.
2) Tindakan input mouse (klik), dan
3) Memilih dengan pilihan Tunggal menggunakan radiobutton maupun
checkbox, serta dengan multi pilihan dengan checkbox.
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;
public class M6tugas {
public static void main(String[] args) {
JFrame m6tugas = new JFrame("FORMULIR PENDATAAN BUKU");
JLabel lblKodebuku = new JLabel("Kode Buku:");
JLabel lblJudul = new JLabel("Judul Buku");
36
gbcInput.gridx = 0;
gbcInput.gridy = 3;
inputPanel.add(lblTahunterbit, gbcInput);
gbcInput.gridx = 1;
inputPanel.add(cmbThnterbit, gbcInput);
gbcInput.gridx = 0;
gbcInput.gridy = 4;
inputPanel.add(lblPenerbit, gbcInput);
gbcInput.gridx = 1;
inputPanel.add(txtPenerbit, gbcInput);
gbcInput.gridx = 0;
gbcInput.gridy = 5;
inputPanel.add(lblKotaterbit, gbcInput);
gbcInput.gridx = 1;
inputPanel.add(chkStatus, gbcInput);
gbcInput.gridx = 0;
gbcInput.gridy = 6;
inputPanel.add(lblStatus, gbcInput);
group.add(radio1);
group.add(radio2);
group.add(radio3);
group.add(radio4);
gbcInput.gridx = 1;
inputPanel.add(radio1, gbcInput);
gbcInput.gridx = 2;
inputPanel.add(radio2, gbcInput);
gbcInput.gridx = 3;
inputPanel.add(radio3, gbcInput);
gbcInput.gridx = 4;
inputPanel.add(radio4, gbcInput);
gbcInput.gridx = 0;
gbcInput.gridy = 7;
gbcInput.gridwidth = 1;
gbcInput.insets = new Insets(0, 0, 0, 5);
inputPanel.add(btnRevisi, gbcInput);
gbcInput.gridx = 1;
gbcInput.insets = new Insets(0, 5, 0, 5);
inputPanel.add(btnSimpan, gbcInput);
gbcInput.gridx = 2;
gbcInput.insets = new Insets(5, 0, 0, 5);
inputPanel.add(btnHapus, gbcInput);
gbcInput.gridx = 3;
gbcInput.insets = new Insets(0, 5, 0, 0);
inputPanel.add(btnTutup, gbcInput);
JPanel tabelPanel = new JPanel(new BorderLayout());
Map<JRadioButton, String> kategoriMap = new HashMap<>();
kategoriMap.put(radio1, "Fiksi");
kategoriMap.put(radio2, "Non-Fiksi");
38
kategoriMap.put(radio3, "Referensi");
kategoriMap.put(radio4, "Komik");
btnSimpan.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String kode = txtKode.getText();
String judul = txtJudul.getText();
String pengarang = txtPengarang.getText();
String tahunTerbit = (String) cmbThnterbit.getSelectedItem();
String penerbit = txtPenerbit.getText();
String kotaTerbit = (String) cmbThnterbit.getSelectedItem();
boolean tersedia = chkStatus.isSelected();
String kategori = "";
for (Map.Entry<JRadioButton, String> entry :
kategoriMap.entrySet()) {
if (entry.getKey().isSelected()) {
kategori = entry.getValue();
break;}}
tModel.addRow(new Object[]{kode, judul, pengarang, tahunTerbit,
penerbit, kotaTerbit, tersedia, kategori});
txtKode.setText("");
txtJudul.setText("");
txtPengarang.setText("");
cmbThnterbit.setSelectedIndex(0);
txtPenerbit.setText("");
cmbThnterbit.setSelectedIndex(0);
chkStatus.setSelected(false);}
});
btnHapus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int selectedRow = tblBuku.getSelectedRow();
if (selectedRow >= 0) {
tModel.removeRow(selectedRow);
}}});
btnRevisi.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int selectedRow = tblBuku.getSelectedRow();
if (selectedRow >= 0) {
tModel.setValueAt(txtKode.getText(), selectedRow, 0);
tModel.setValueAt(txtJudul.getText(), selectedRow, 1);
tModel.setValueAt(txtPengarang.getText(), selectedRow, 2);
tModel.setValueAt((String) cmbThnterbit.getSelectedItem(),
selectedRow, 3);
tModel.setValueAt(txtPenerbit.getText(), selectedRow, 4);
tModel.setValueAt((String) cmbThnterbit.getSelectedItem(),
selectedRow, 5);
tModel.setValueAt(chkStatus.isSelected(), selectedRow, 6);
String kategori = "";
for (Map.Entry<JRadioButton, String> entry :
39
kategoriMap.entrySet()) {
if (entry.getKey().isSelected()) {
kategori = entry.getValue();
break;
}}
tModel.setValueAt(kategori, selectedRow, 7);
}}});
btnTutup.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}});
m6tugas.add(inputPanel, BorderLayout.NORTH);
m6tugas.add(scrollTabel, BorderLayout.CENTER);
m6tugas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
m6tugas.pack();
m6tugas.setVisible(true);
}}
6.4 Kesimpulan
Pustaka GUI dalam pemrograman Java menyediakan berbagai kelas dan
komponen untuk membangun antarmuka pengguna berbasis grafik (GUI) dalam
aplikasi desktop. Dalam konteks Java, pustaka GUI utama meliputi JavaFX,
AWT, dan Swing. Swing, sebagai pustaka GUI modern, menawarkan fleksibilitas
yang lebih besar dibandingkan dengan Abstract Window Toolkit (AWT).
Beberapa komponen dasar dalam pustaka Swing mencakup JFrame,
JPanel, JLabel, JTextField, JButton, JComboBox, JCheckBox, JRadioButton, dan
JTable. JFrame digunakan untuk membuat jendela utama, JPanel untuk
mengelompokkan dan mengatur komponen lain, JLabel untuk menampilkan teks
40
atau gambar, JTextField sebagai kotak masukan, JButton untuk memicu aksi,
JComboBox untuk pilihan dari daftar, JCheckBox untuk memilih dari beberapa
pilihan, JRadioButton untuk memilih satu pilihan, dan JTable untuk menampilkan
data dalam format tabel.
LEMBAR PENGESAHAN
JUDUL : GUI
NAMA : RIZKY ANDRIZAL NASUTION
NIM : 0701192002
PROGRAM STUDI : ILMU KOMPUTER
Menyetujui,
Asisten Laboratorium
Mengetahui,
Laboran
41
DAFTAR PUSTAKA
42