Anda di halaman 1dari 49

LAPORAN PRAKTIKUM

PEMROGRAMAN BERIOENTASI OBJEK

RIZKY ANDRIZAL NASUTION


0701192002
V/IK-5

PROGRAM STUDI ILMU KOMPUTER


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SUMATERA UTARA
MEDAN
2023
KATA PENGANTAR

Puji syukur penulis ucapkan kehadirat Allah SWT karena berkat


rahmatNya penulis dapat menyelesikan Laporan Praktikum mata kuliah Grafika
Komputer ini. Pertama penulis mengucapkan terima kasih kepada Muhammad
Siddik Hasibuan, M.Kom selaku dosen pembimbing mata kuliah Pemrograman
Berioentasi Objek yang telah banyak memberikan pengarahan dalam
menyelesaikan laporan praktikum ini hingga akhir.
Pelaksanaan praktikum bertujuan agar mahasiswa dapat memahami dan
dapat mengaplikasikan teori-teori yang telah diterima selama pembelajaran
berlangsung. Kemampuan mengaplikasikan teori tersebut agar tercipta
pengetahuan yang nyata melalui kegiatan praktikum.
Penulis menyadari laporan ini masih jauh dari kata sempurna. Maka dari
itu penulis memohon maaf dan akan menerima segala masukan yang diberikan
untuk menyempurnakan laporan ini. Penulis berharap laporan ini berguna bagi
siapapun yang membacanya.

Medan, 30 Oktober 2023

Penyusun

RIZKY ANDRIZAL NASUTION

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

Gambar 1.1 Pembuatan Folder HelloWord....................................................3


Gambar 1.2 Pemanggilan Java........................................................................3
Gambar 1.3 Pemanggilan Folder Java............................................................3
Gambar 2.1 Tampilan New Project.................................................................7
Gambar 2.2 Tampilan Proyek.........................................................................8
Gambar 2.3 Tampilan Hasil Praktikum..........................................................10
Gambar 3.1 Hasil Program 1...........................................................................14
Gambar 3.2 Hasil Program 2...........................................................................15
Gambar 4.1 Hasil Program..............................................................................19
Gambar 5.1 Hasil Program..............................................................................22
Gambar 6.1 Frame Utama...............................................................................26
Gambar 6.2 Frame Panel................................................................................27
Gambar 6.3 Label Frame................................................................................27
Gambar 6.4 Frame TextField..........................................................................28
Gambar 6.5 Frame Button...............................................................................28
Gambar 6.6 Frame ComboBox.......................................................................29
Gambar 6.7 ChechBox....................................................................................30
Gambar 6.8 RadioButton.................................................................................30
Gambar 6.9 Tabel............................................................................................31
Gambar 6.10 Aplikasi Lengkap......................................................................33
Gambar 6.11 Menambah Buku.......................................................................34
Gambar 6.12 Revisi Buku...............................................................................34
Gambar 6.13 Tugas.........................................................................................38

iv
MODUL 1
MEMULAI PROGRAM JAVA (NOTEPAD)

1.1 Tujuan Praktikum


1. Mahasiswa dapat mengetahui dan mempelajari yang dimaksud dengan Class,
Method, dan Object.
2. Mahasiswa dapat mempelajari dan menerapkan program dari notepad

1.2 Dasar Teori


Java merupakan bahasa pemrograman yang sejatinya berbasis object
oriented programing (OOP) atau dalam terjemahan bahasa indonesia-nya lebih
dikenal dengan pemrograman berorientasi objek (PBO).Bahasa ini awalnya dibuat
oleh James Gosling saat masih bergabung di Sun Microsystems, dan pada tahun
2010 java resmi diambil alih oleh oracle (Ahmadian, Mizuardy, & AR, 2017).
Dalam pembuatan kode (sintak)-nya, aplikasi-aplikasi berbasis java
umumnya akan dikompilasi ke dalam p-code (bytecode) agar dapat dijalankan
pada berbagai sistem operasi melalui java virtual machine (JVM), hal ini tidaklah
berlebihan karenajava dikenal dengan slogannya, "Tulis sekali, jalankan di mana
pun". Saat ini java merupakan bahasa pemrograman yang paling populer
digunakan dan secara luas dimanfaatkan dalam pengembangan berbagai jenis
perangkat lunak aplikasi. Sebagai sebuah platform, sun membagi arsitektur Java
membagi tiga bagian, yaitu:
1. Enterprise Java (J2EE) untuk aplikasi berbasis web, aplikasi sistem tersebar
dengan beraneka ragam klien dengan kompleksitas yang tinggi. Merupakan
superset dari Standar Java.
2. Standart Java (J2SE), ini adalah yang biasa dikenal sebagai bahasa Java.
3. Micro Java (J2ME) merupakan subset dari J2SE dan salah satu aplikasinya
yang banyak dipakai adalah untuk wireless device / mobile device.
Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan
dapat dijalankan pada berbagai platform sistem operasi. Perkembangan Java
yang

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,

public class helloword{


public static void main(String[] args){
System.out.println("Hello Word");
}
}
3

3. Selanjutnya buka Command Prompt dan masuk kedalam direktori tempat kita
menyimpan file HelloWord,

Gambar 1.1 Pembuatan Folder HelloWord


4. Selanjutnya ketikkan sintaks javac,

Gambar 1.2 Pemanggilan Javac


5. Selanjutnya tunggu sampai muncul “D:\pbo>”, Jika tidak berarti masih ada
kesalahan dalam program anda,
6. Setelah selesai, ketikkan sintaks “java HelloWord”,

Gambar 1.3 Pemanggilan Folder java


7. Jika sintaks telah muncul berarti anda sudah berhasil.
4

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

JUDUL : MEMULAI PROGRAM JAVA (NOTEPAD)


NAMA : RIZKY ANDRIZAL NASUTION
NIM : 0701192002
PROGRAM STUDI : ILMU KOMPUTER

Medan, Januari 2023


Menyetujui

Asisten Laboratorium

Sultan Azka El Husein Lubis

Mengetahui

Laboran

Muhammad Fahri Syuhada, S.Kom

5
MODUL 2
KONSTRUKTOR DAN ENKAPSULASI

2.1 Tujuan Praktikum


1. Memahami konsep kelas dengan teknik konstruktor dalam pemrograman Java
2. Memahami konsep kelas dengan pendekatan enkapsulasi dalam pemrograman
Java

2.2 Dasar Teori


A. Konsruktor
Konstruktor adalah metode 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). Fungsi dari konstruktor
adalah untuk melakukan instansiasi nilai terhadap data-data yang terdapat pada
kelas bersangkutan. Apabila tidak mendefinisikan konstruktor maka secara
otomatis Java akan membuatkannya untuk kita. konstruktor semacam ini disebut
dengan “default constructor”, yang akan menginisialisasikan semua data yang ada
dengan nilai nol, string dengan nilai null, variabel boolean diset ke false.
Beberapa hal yang perlu diperhatikan pada saat mendefinisikan konstruktor kelas
adalah konstruktor tidak mempunyai tipe kembalian, nama konstruktor harus
sama persis dengan nama kelas yang didefinisikan. Konstruktor adalah suatu
method yang pertama kali dijalankan pada saat pembuatan suatu obyek.
Konstruktor mempunyai ciri yaitu :
1. Mempunyai nama yang sama dengan nama class
2. Tidak mempunyai return type (seperti void, int, double dll). (Kartika, 2015)
B. Enkapsulasi
Enkapsulasi adalah pembungkus untuk menjaga suatu proses program agar
tidak dapat diakses secara sembarangan atau di intervensi oleh program lain.
Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program
agar dapat diakses sewaktu-waktu, sekaligus menjaga atau melindungi sebuah
program dari akses ataupun intervensi dari program lain yang mempengaruhinya.

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

Gambar 2.1 Tampilan New Project


4. Silahkan isi nama projek, pastikan nama projek harus sesuai dengan nama
class, lalu pilih menu finish
5. Tampilan seperti dibawah jika sudah milih menu finish
8

Gambar 2.2 Tampilan Projek


6. Coding Khatib.java

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;
}

public void setKode(int kode) {


this.kode = kode;
}
9

public int getKode() {


return kode;
}
public void setNama(String nama) {
this.nama = nama;
}
public String getNama() {
return nama;
}
public String getAlamat() {
return alamat;
}
public void setHp(String hp) {
this.hp = hp;
}
public String getHp() {
return hp;
}
public void setJadwal(String jadwal) {
this.jadwal = jadwal;
}
public String getJadwal() {
return jadwal;
}
public static void main(String[] args) {
Khatib khatib = new Khatib(1922, "Rizky Andrizal Nasution",
"Kabanjahe", "081091225543", "27 Januari 2024");
10

khatib.setNama("Rizky Andrizal Nasution");


System.out.println("Khatib, setelah diubah");
System.out.println("Kode : " + khatib.getKode());
System.out.println("Nama : " + khatib.getNama());
System.out.println("Alamat : " + khatib.getAlamat());
System.out.println("No HP : " + khatib.getHp());
System.out.println("Jadwal : " + khatib.getJadwal());
}
}

7. Hasil Praktikum Khatib.java

Gambar 2.3 Tampilan Hasil Praktikum

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

JUDUL : MEMULAI PROGRAM JAVA (NOTEPAD)


NAMA : Rizky Andrizal Nasution
NIM : 070192002
PROGRAM STUDI : ILMU KOMPUTER

Medan, Januari 2023


Menyetujui

Asisten Laboratorium

Sultan Azka El Husein Lubis

Mengetahui

Laboran

Muhammad Fahri Syuhada, S.Kom

11
MODUL 3
PEWARISAN

3.1 Tujuan Praktikum


1. Memahami konsep dan tipe pewarisan dalam pemrograman Java
2. Mampu menyelesaikan permasalahan program berorientasi objek dengan
pendekatan pewarisan kelas dalam pemrograman Java

3.2 Dasar Teori


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. Untuk
mendefinisikan superclass dapat menggunakan keyword extends. Sedangkan
untuk memanggil constructor superclass cukup menggunakan keyword super.
Superclass merupakan class induk yang akan mewariskan apa yang di
milikinya. Sedangkan subclass merupakan class yang di warisi oleh
superclass. Sehingga subclass dapat memiliki apa saja yang ada pada
superclassnya. (Shofiyah, 2014)
Pewarisan (Inheritance) mengadopsi dunia nyata dimana suatu
entitas/objek dapat mempunyai entita/3objek turunan. Entitas turunan tersebut
akan mewarisisi sifat-sifat yang dimiliki dari induknya terdahulu tersebut.
Seorang anak pasti akan mewarisi beberapa sifat-sifat yang dimiliki ayah atau
ibunya. Konsep inhiretance membuat sebuah struktur atau hirarki class dalam
kode program. Class yang mempunyai turunan atau yang akan diturunkan bisa
disebut sebagai class induk (parent class), super class, atau base class. Sedangkan
class yang menerima penurunan bisa disebut dengan class anak atau child class,
subclass, atau heir class. Manfaat Pewarisan (Inheritance):
1. Bersifat reusable
Pada class yang memiliki sifat mirip dengan class lain, tidak perlu
membuat variabel dan method yang sama dalam penerapannya. Sehingga hanya

12
perlu yang membuat satu class sebagai induk, dan beberapa class sebagai anak
yang mewarisi

13
14

method dan data dari class induk.


2. Efisiensi dalam manajemen data dan method
Ketika membutuhkan perubahan pada data dan method pada induk class,
tidak perlu mengubah semua class anak, sehingga hanya perlu melakukan
perubahan pada class induknya saja.
Jadi dapat disimpulkan bahwa pewarisan adalah proses penciptaan class
baru dengan mewarisi karekteristik class yang telah ada ditambah karakteristik
unik kelas yang telah ada. Subclass mewarisi semua method dan variabel dari
superclassnya. (Aspriyani, 2018)

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;
}

public void infoPanitia() {


infoMuazin();
System.out.println("Jadwal : " + jadwal);
}
}
15

Gambar 3.1 Hasil Program 1

Gambar 3.2 Hasil Program 2

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

Medan, Januari 2023


Menyetujui

Asisten Laboratorium

Sultan Azka El Husein Lubis

Mengetahui

Laboran

Muhammad Fahri Syuhada, S.Kom

17
MODUL 4
POLIMORPISME

4.1 Tujuan Praktikum


1. Memahami perbedaan antara polimorfisme statis dan dinamis, serta
mengimplementasikannya dalam kode Java.
2. Mengimplementasikan overloading dan overriding dalam kode Java untuk
menciptakan polimorfisme.

4.2 Dasar Teori


Menurut prinsip polimorfisme dalam pemrograman berorientasi objek
(PBO), 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. (Andrian, 2016)
Ada dua jenis polimorfisme yang dapat digunakan dalam pemrograman
Java: statik polymorphism, atau polymorfisme statis, dan dinamik polimorphisme,
atau Polimorfism dinamis.
Berikut ini adalah cara menggunakan polimorfisme dalam Java:
1. Polimorfisme statis (Static Polymorphism)
Kita dapat menggunakan polimorfisme statistik ketika metode memiliki
nama dan parameter yang sama tetapi interpretasi yang berbeda.
2. Polimorfisme dinamis (Dynamic Polymorphism)
Ketika kelas memiliki metode dengan nama dan parameter yang sama
tetapi interpretasi yang berbeda, kita dapat menerapkan polimorfisme dinamis.

18
Java yang memiliki overriding otomatis, sehingga kita tidak perlu menggunakan
kata kunci.

19
20

kita menerapkan polimorfisme untuk mengelola metode dengan cara yang


sama, tetapi kita mendapatkan hasil yang berbeda tergantung pada jenis objek
yang disediakan. Polimorfisme Jawa tetapi harus menyederhanakan kode dan
membuat pengembangan dan pemeliharaan kode. (Hanafi, 2021)

4.3 Praktikum
Membuat program Polimorpisme Buku

public class PolimorpismeBuku2 {


public static void main(String[] args) {
Buku buku = new Buku();
}
} System.out.println("keterangan objek buku :");
buku.infoBuku();

Buku buku1 = new Buku();


System.out.println("keterangan objek buku1 :");
buku1.infoBuku("Grafika Komputer", "Hadi", 2008);

Buku buku2 = new Buku();


System.out.println("keterangan objek buku2 :");
buku2.infoBuku("Metodologi Penelitian", "Sumandi Suryabrata",
2014);
}
}
class Buku {
public void infoBuku() {
System.out.println("pemrograman web dinamis merupakan buku
pelajaran");
System.out.println();
}

public void infoBuku(String judul) {


System.out.println("judul : " + judul);
System.out.println();
}
public void infoBuku(String judul, String autor, int tahunTerbit) {
System.out.println("judul : " + judul);
System.out.println("pengarang : " + autor);
System.out.println("Tahun Terbit : " + tahunTerbit);
System.out.println();
21

Gambar 4.1 Hasil Program

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

Medan, Januari 2023


Menyetujui

Asisten Laboratorium

Sultan Azka El Husein Lubis

Mengetahui

Laboran

Muhammad Fahri Syuhada, S.Kom

20
MODUL 5
ABSTRAKSI

5.1 Tujuan Praktikum


1. Memahami konsep abstraksi dalam PBO.
2. Menerapkan konsep-konsep PBO dalam pengembangan program.

5.2 Dasar Teori


Abstraksi dalam pemrograman berorientasi objek (PBO) adalah
kemampuan untuk memfokuskan pada aspek inti dari suatu objek dan
mengabaikan properti-properti yang merupakan akibatnya. Dalam PBO,
abstraksi memungkinkan untuk memodelkan objek sebagai representasi dari
"pelaku" abstrak yang dapat melakukan kerja, laporan, dan perubahan
keadaannya. Abstraksi merupakan salah satu dari empat pilar utama dalam PBO,
bersama dengan enkapsulasi, pewarisan, dan polimorfisme. Dalam konteks Java,
abstraksi dapat diimplementasikan melalui pembentukan kelas-kelas dan
penggunaan interface untuk berkomunikasi dengan objek lain. Abstraksi
membantu dalam menyederhanakan pemetaan dari masalah ke program dan
sebaliknya, serta memungkinkan untuk melihat suatu sistem yang kompleks
dalam bentuk yang sederhana. Kelebihan pemrograman berorientasi objek,
termasuk abstraksi, antara lain adalah kemampuannya untuk mendefinisikan tipe
data baru yang merupakan objek dari kelas tertentu, yang dapat digunakan untuk
menyederhanakan struktur program. (Rama, 2015)
Abstraksi dan encapsulation adalah dua konsep penting dalam
pemrograman berorientasi objek (PBO), namun keduanya memiliki perbedaan.
Abstraksi memungkinkan pemodelan objek sebagai representasi dari "pelaku"
abstrak yang dapat melakukan kerja, laporan, dan perubahan keadaannya,
sementara encapsulation adalah konsep tentang pengikatan data atau metode
berbeda yang dijadikan satu kesatuan dan dapat menyembunyikan informasi dari
luar.

21
22

Dalam konteks Java, abstraksi dapat diimplementasikan melalui


pembentukan kelas-kelas dan penggunaan interface, sementara encapsulation
dapat dicapai melalui penggunaan access modifier seperti private, public, dan
protected. (Metafora, 2022)

5.3 Praktikum

abstract class TestHybrid {


public void function() {
System.out.println("Transportation Tools");
}

public void fuel() {


System.out.println("Fuels");
}

// Abstract method declaration without a body.


public abstract void walk();
}

// The class should extend TestHybrid.


class AeroPlan extends TestHybrid {
// Implementation of the abstract method.
public void walk() {
System.out.println("Aeroplane is Flying");
}

public static void main(String[] args) {


// The instantiation syntax was incorrect.
AeroPlan garuda = new AeroPlan();
garuda.function();
garuda.fuel();
garuda.walk();
}
}
23

Gambar 5.1 Hasil Program

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

Medan, Januari 2023


Menyetujui

Asisten Laboratorium

Sultan Azka El Husein Lubis

Mengetahui

Laboran

Muhammad Fahri Syuhada, S.Kom

24
MODUL 6
GUI

6.1 Tujuan Praktikum


1. Mahasiswa mampu mehamami GUI
2. Mahasiswa mampu memahami pustaka GUI
3. Mahasiswa mampu mengimplemenatasikan GUI kedalam program aplikasi

6.2 Dasar Teori


Graphical User Interface atau antarmuka grafis merupakan sistem
komponen visual interaktif yang digunakan dalam perangkat lunak komputer,
smartphone, dan berbagai perangkat elektronik lainnya. GUI menampilkan objek
yang menyampaikan informasi dan mewakili tindakan yang dapat diambil oleh
pengguna. Objek-objek tersebut berubah warna, ukuran, atau visibilitas saat
pengguna melakukan interaksi seperti mengkliknya. GUI direpresentasikan
menggunakan beberapa gambar yang disebut sebagai elemen GUI. Dengan
elemen-elemen seperti icon dan menu, komputer dapat menjalankan perintah
seperti membuka, menghapus, dan memindahkan file. Sistem operasi GUI tidak
hanya bisa dijalankan menggunakan mouse, akan tetapi juga bisa dijalankan
menggunakan pintasan keyboard. Misalnya jika Anda ingin menampilkan
Windows dalam laptop, maka dengan menekan pintasan keyboard yang memiliki
logo Windows, Anda bisa menampilkan Windows tanpa menggunakan mouse.
(Khairani, 2021)
GUI pada java memiliki beberapa komponen tersendiri. Berikut adalah
beberapa komponen GUI yang ada pada pemrograman java: 1. ‘JLabel’,
berfungsi sebagai penunjuk tulisan/angka pada GUI.
1. ‘JButton’, berfungsi sebagai tombol pada GUI, komponen ini paling sering
digunakan karena dibutuhkan user untuk menklik tombol tersebut
2. ‘JRadioButton’, berfungsi sebagai selection, komponen ini juga paling sering
digunakan.

25
3. ‘JCheckBox’, berfungsi sebagai tanda centang, komponen ini juga paling
sering digunakan. Biasanya digunakan pada saat user melakukan setting
options.

26
27

4. ‘JTextField’, berfungsi sebagai kolom tempat untuk menulis. (Hernawati,


2018)

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);
}
}

Gambar 6.1 Frame Utama

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

}}

Gambar 6.2 Frame Panel

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);
}
}

Gambar 6.3 Label Frame

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); }}

Gambar 6.4 Frame TextFiled

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);
}
}

Gambar 6.5 Frame Button

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);
}}

Gambar 6.6 Frame ComboBox

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);
}}

Gambar 6.7 CheckBox


I. Menggunakan RadioButton
import javax.swing.*;
import javax.swing.border.Border;;
public class Frame {
31

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);
ButtonGroup group = new ButtonGroup();
JRadioButton radio1 = new JRadioButton("Mahasiswa");
JRadioButton radio2 = new JRadioButton("Dosen");
JRadioButton radio3 = new JRadioButton("Staf Pegawai");
group.add(radio1);
group.add(radio2);
group.add(radio3);
panel.add(radio1);
panel.add(radio2);
panel.add(radio3);
frame.add(panel);
frame.setSize(500,150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}}

Gambar 6.8 RadioButton

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);

JPanel panel = new JPanel();


Object[][] dataBuku = {
{"1", "Pemrograman Berorientasi Objek", "Armansyah", "2022"},
{"2", "Pemrograman Web", "Muhammad Siddik Hasibuan", "2021"},
{"3", "Matematika Dasar", "Rina Widyasari", "2021"},
{"4", "Algoritma dan Struktur Data", "Suhardi", "2020"}
};
String[] kolom = {"No", "Judul", "Penulis", "Tahun Terbit"};
DefaultTableModel model = new DefaultTableModel(dataBuku, kolom);
JTable tabel = new JTable(model);
JScrollPane scrollPane = new JScrollPane(tabel);
32

frame.add(panel);
frame.add(scrollPane);
frame.setVisible(true);
}
}

Gambar 6.9 Tabel

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

DefaultTableModel tModel = new DefaultTableModel(kolom, 0);


JTable tblBuku = new JTable(tModel);
JScrollPane scrollTabel = new JScrollPane(tblBuku);
JPanel panel = new JPanel(new GridLayout(8, 2));
panel.add(lblKodebuku);
panel.add(txtKode);
panel.add(lblJudul);
panel.add(txtJudul);
panel.add(lblPengarang);
panel.add(txtPengarang);
panel.add(lblTahunterbit);
panel.add(cmbThnterbit);
panel.add(lblPenerbit);
panel.add(txtPenerbit);
panel.add(lblKotaterbit);
panel.add(cmbKotaterbit);
panel.add(btnRevisi);
panel.add(btnSimpan);
panel.add(btnHapus);
panel.add(btnTutup);
frameBuku.add(panel, BorderLayout.NORTH);
frameBuku.add(scrollTabel, BorderLayout.CENTER);
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)
cmbKotaterbit.getSelectedItem();
tModel.addRow(new Object[]{kode, judul, pengarang, tahunTerbit,
penerbit, kotaTerbit});
txtKode.setText("");
txtJudul.setText("");
txtPengarang.setText("");
cmbThnterbit.setSelectedIndex(0);
txtPenerbit.setText("");
cmbKotaterbit.setSelectedIndex(0);
} });
btnHapus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
int selectedRow = tblBuku.getSelectedRow();
if (selectedRow >= 0){
tModel.removeRow(selectedRow);
}}});
btnRevisi.addActionListener(new ActionListener() {
34

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) cmbKotaterbit.getSelectedItem(),
selectedRow, 3);
tModel.setValueAt(txtPenerbit.getText(), selectedRow, 4);
tModel.setValueAt((String) cmbKotaterbit.getSelectedItem(),
selectedRow, 5);
}}});
btnTutup.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
System.exit(0);
}});
frameBuku.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frameBuku.pack();
frameBuku.setVisible(true);
}}

Gambar 6.10 Aplikasi lengkap

1. Menambahkan data buku


35

Gambar 6.11 Menambah Buku

2. Merevisi data buku

Gambar 6.12 Revisi Buku

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

JLabel lblPengarang = new JLabel("Pengarang:");


JLabel lblTahunterbit = new JLabel("Tahun Terbit");
JLabel lblPenerbit = new JLabel("Penerbit");
JLabel lblKotaterbit = new JLabel("Kota Terbit");
JLabel lblStatus = new JLabel("Status:");
JCheckBox chkStatus = new JCheckBox("Tersedia");
JLabel lblKategori = new JLabel("Kategori:");
String[] tahunTerbit = {"2022", "2021", "2020", "2019", "2018"};
JComboBox<String> cmbThnterbit = new JComboBox<>(tahunTerbit);
String[] kotaTerbit = {"Jakarta", "Bandung", "Surabaya", "Yogyakarta",
"Medan"};
ButtonGroup group = new ButtonGroup();
JRadioButton radio1 = new JRadioButton("Fiksi");
JRadioButton radio2 = new JRadioButton("Non-Fiksi");
JRadioButton radio3 = new JRadioButton("Referensi");
JRadioButton radio4 = new JRadioButton("Komik");
JTextField txtKode = new JTextField(10);
JTextField txtJudul = new JTextField(20);
JTextField txtPengarang = new JTextField(20);
JTextField txtPenerbit = new JTextField(20);
JButton btnSimpan = new JButton("Simpan");
JButton btnHapus = new JButton("Hapus");
JButton btnRevisi = new JButton("Revisi");
JButton btnTutup = new JButton("Tutup");
String[] kolom = {"Kode Buku", "Judul", "Pengarang", "Tahun Terbit",
"Penerbit", "Kota Terbit", "Status", "Kategori"};
DefaultTableModel tModel = new DefaultTableModel(kolom, 0);
JTable tblBuku = new JTable(tModel);
JScrollPane scrollTabel = new JScrollPane(tblBuku);
JPanel inputPanel = new JPanel(new GridBagLayout());
GridBagConstraints gbcInput = new GridBagConstraints();
gbcInput.anchor = GridBagConstraints.WEST;
gbcInput.insets = new Insets(5, 5, 5, 5);
gbcInput.gridx = 0;
gbcInput.gridy = 0;
inputPanel.add(lblKodebuku, gbcInput);
gbcInput.gridx = 1;
inputPanel.add(txtKode, gbcInput);
gbcInput.gridx = 0;
gbcInput.gridy = 1;
inputPanel.add(lblJudul, gbcInput);
gbcInput.gridx = 1;
inputPanel.add(txtJudul, gbcInput);
gbcInput.gridx = 0;
gbcInput.gridy = 2;
inputPanel.add(lblPengarang, gbcInput);
gbcInput.gridx = 1;
inputPanel.add(txtPengarang, gbcInput);
37

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);
}}

Gambar 6.13 Tugas

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

Medan, Januari 2024

Menyetujui,

Asisten Laboratorium

Sultan Azka El Husein Lubis

Mengetahui,

Laboran

Muhammad Fahri Syuhada,S.Kom

41
DAFTAR PUSTAKA

Ahmadian, H., Mizuardy, H., & AR, K. (2017). MAHIR PEMROGRAMAN


VISUAL DENGAN JAVA. Aceh: UNIMAL PRESS.
Andrian, M. A. (2016). Pemrograman Lanjut / PBO : POLIMORFISME.
Pemrograman Lanjut / PBO : POLIMORFISME, hal. 31.
Aspriyani, D. (2018). Makalah PBO Encapsulation Dan Inheritance. Dari:
https://id.scribd.com/document/376378658/DESNITA-ASPRIYANI-
H161600518-MAKALAH-PBO-ENCAPSULATION-dan-
INHERITANCE-pdf. Diakses: 19 Januari 2023
Eko. (2013). PEMROGRAMAN BERORIENTASI OBJEK. malang.
Hanafi, A. (2021). Pengertian Polimorfisme Dalam Pemrograman Java.
Pengertian Polimorfisme Dalam Pemrograman Java.
Hernawati, R. (2018). SISTEM OPERASI BERBASIS GUI. Dari:
https://www.academia.edu/35762912/_SISTEM_OPERASI_BERBASIS_
GUI_DISUSUN_OLEH. Diakses: 20 Januari 2023
Kartika, W. (2015). Metode Dan Konstruktor. Dari:
https://www.academia.edu/41110536/PBO_METODE_DAN_KONSTRU
KTOR. Diakses: 19 Januari 2023
Khairani, S. (2021). Graphic User Interface. Dari:
https://id.scribd.com/document/486523316/Graphic-User-Interface.
Diakses: 20 Januari 2023
Metafora. (2022). Memahami OOP: Encapsulation, Inheritance, Polymorphism
serta Abstrak Class. hal. 4-5.
Meyfi, M. (2015). Laporan PBO Praktikum IV Incapsulation (Enkapsulasi). Dari:
https://www.academia.edu/31316615/LAPORAN_PBO_PRAKTIKUM_I
V_INCAPSULATION_ENKAPSULASI_. Diakses: 19 Januari 2023
Rama, M. (2015). Abstraksi. Abstraksi.
Shofiyah, F. (2014). Laporan Resmi Inheritance. Dari:
https://docplayer.info/71742437-Laporan-resmi-inheritance.html. Diakses:
19 Januari 2023

42

Anda mungkin juga menyukai