Anda di halaman 1dari 12

LAPORAN PRAKTIKUM

MODUL KE 4
POLYMORPHISM

Untuk memenuhi tugas matakuliah Pemrograman Berorientasi Objek yang dibina oleh
Bapak Dr. Heru Wahyu Herwanto, S.T., M.Kom.

Disusun oleh :
Ananda Dhiaz Nikola 230533602149

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
DEPARTEMEN TEKNIK ELEKTRO DAN INFORMATIKA
MARET 2024
Modul 4
Polymorphism
A. Tujuan Praktikum
• Menerapkan konsep polymorphism
• Menggunakan constructor method
• Melakukan overloading terhadap constructor method
• Melakukan overloading terhadap method
• Menggunakan class JTextField
B. Dasar Teori
1. Konsep polymorphism
Polymorphism, secara harfiah, mengacu pada "banyak bentuk" atau
"bermacam-macam." Dalam dunia pemrograman, konsep ini menggambarkan
kemampuan untuk menggunakan entitas yang sama dengan cara yang berbeda
tergantung pada konteksnya. Ini dapat terjadi melalui inheritance, interface, atau
berbagai mekanisme lainnya dalam pemrograman berorientasi objek.
Secara umum, dalam paradigma pemrograman berorientasi objek,
Polymorphism terjadi ketika banyak kelas memiliki hubungan inheritance atau
implementasi interface. Dalam hal ini, kelas-kelas tersebut dapat menggunakan
metode atau atribut dari kelas dasar dengan cara yang berbeda-beda, sesuai
dengan kebutuhan masing-masing kelas tersebut.
Polymorphism memungkinkan kelas-kelas yang berbeda untuk
menggunakan fungsi atau metode yang sama dari kelas dasar atau interface
dengan cara yang berbeda sesuai kebutuhan masing-masing kelas, tanpa harus
menuliskan ulang fungsi yang sama. Ini memberikan fleksibilitas dalam
mengatur perilaku objek dan memungkinkan aksi yang berbeda dilakukan
dengan cara yang berbeda pula.
Selain melalui inheritance atau interface, Polymorphism juga dapat
diimplementasikan melalui berbagai mekanisme lainnya seperti Function
Overloading, Operator Overloading, dan Templates. Ini menunjukkan bahwa
Polymorphism lebih dari sekadar konsep dalam inheritance dan interface, tetapi
juga mencakup berbagai teknik dalam pemrograman yang memungkinkan
penggunaan entitas dengan cara yang berbeda tergantung pada konteksnya.
2. Pengenalan constructor method
Sifat constructor method:
a. Namanya sama dengan nama class.
b. Tidak memiliki nilai balik atau tidak boleh menggunakan tipe data void.
method atau biasa disebut dengan konstruktor saja adalah method yang
dapat digunakan untuk memberikan nilai awal saat objek diciptakan. Method ini
akan dipanggil secara otomatis oleh Java ketika keyword new dipakai untuk
menciptakan instan kelas.
3. Overloading terhadap constructor method
Overloading terhadap konstruktor merupakan suatu mekanisme pembuatan
konstruktor yang memiliki bentuk lebih dari satu. Dalam hal ini pembeda antara
satu konstruktor dengan konstruktor yang lain berupa jumlah atau tipe
parameter.
4. Pengenalan overloading method
Terkadang di dalam sebuah class ada lebih dari satu method yang namanya
sama, tetapi memiliki parameter yang berbeda sehingga fungsinya pun berbeda.
Method dengan kemampuan seperti ini disebut sebagai overloading method.
5. Pengenalan class JTextField
Class JTextField merupakan class dari package javax.swing yang digunakan
untuk membuat komponen berupa text field. Komponen ini berfungsi untuk
memasukkan data satu baris saja. Jika data yang dimasukkan tergolong sebagai
password, maka dapat digunakan JPasswordField dan dilengkapi dengan
penggunaan method getPassword() untuk memperoleh string pada objeknya.
Data yang dimasukkan melalui text field memiliki tipe data String. Jika
membutuhkan data berupa bilangan yang akan dilakukan perhitungan, maka
dapat dikonversi ke dalam tipe data lain, misalnya dikonversi ke dalam tipe data
integer dengan perintah Integer.parseInt(objek.getText()). Kemudian agar dapat
menampilkan hasilnya kembali pada text field, maka bisa digunakan perintah
objek.setText(String.valueOf(nilai)).
C. Tugas
1. Melakukan overloading terhadap constructor method dan method.
a. Kode Program
import java.util.Scanner;

class Buku {
private String judul, penyusun, kota,
penerbit;
private int tahun;

public Buku() {
// Constructor default
}

public Buku(String judul, String penyusun,


String kota, String penerbit, int tahun) {
this.judul = judul;
this.penyusun = penyusun;
this.kota = kota;
this.penerbit = penerbit;
this.tahun = tahun;
}

public void terbit() {


System.out.println(penyusun + ". " +
tahun + ". " + judul + ". " + kota + ":" +
penerbit + ".");
}
}

public class DaftarPustaka {


public static void main(String[] args) {
Scanner input = new Scanner(System.in);

System.out.println("***************************
*************");
System.out.println(" TAMPILAN
DAFTAR PUSTAKA ");

System.out.println("***************************
*************");
System.out.print(" Masukkan
Identitas Buku:\n ");

System.out.print("Judul Buku :
");
String judul = input.nextLine();
System.out.print(" Nama Penyusun :
");
String penyusun = input.nextLine();
System.out.print(" Kota Terbit :
");
String kota = input.nextLine();
System.out.print(" Nama Penerbit :
");
String penerbit = input.nextLine();
System.out.print(" Tahun Terbit :
");
int tahun = input.nextInt();

System.out.println("\n Penulisan Daftar


Pustaka :");
Buku book1 = new Buku(judul, penyusun,
kota, penerbit, tahun);
book1.terbit();

input.close();
}
}
b. Hasil Program

c. Penjelasan Program
Program yang diberikan merupakan program sederhana dalam
bahasa Java yang bertujuan untuk membuat dan menampilkan daftar
pustaka. Terdiri dari dua kelas utama, yaitu Buku dan DaftarPustaka.
Kelas Buku memiliki beberapa atribut seperti judul, penyusun, kota,
penerbit, dan tahun terbit. Dua konstruktor dimiliki, satu adalah konstruktor
default, dan yang lainnya adalah konstruktor dengan parameter untuk
menginisialisasi nilai atribut. Kelas Buku juga memiliki metode terbit()
untuk mencetak informasi buku sesuai format.
Kelas DaftarPustaka berisi metode main() sebagai titik masuk
program. Di dalamnya, objek Scanner dibuat untuk menerima input dari
pengguna. Program menampilkan pesan selamat datang dan meminta
pengguna untuk memasukkan informasi buku seperti judul, penyusun, kota
terbit, penerbit, dan tahun terbit. Input dari pengguna disimpan dalam
variabel yang sesuai.
Setelah informasi buku diperoleh, program membuat objek Buku
menggunakan konstruktor dengan input dari pengguna. Kemudian, metode
terbit() dipanggil untuk mencetak informasi buku sesuai dengan format.
Akhirnya, objek Scanner ditutup untuk membebaskan sumber daya
yang digunakan. Program selesai dieksekusi. Dengan demikian, program
memungkinkan pengguna untuk membuat daftar pustaka sederhana dengan
memasukkan informasi buku yang ingin ditambahkan.
2. Melakukan perhitungan sederhana.
a. Kode Program
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class FourOperations extends JFrame


implements ActionListener {
private JTextField jTFinput1, jTFinput2,
jTFHasil;
private JButton btnJumlah, btnKurang,
btnKali, btnBagi;

public FourOperations() {
setTitle("SIMPLE PROGRAM TO COUNT");
setSize(400, 150); // Mengubah
ukuran frame

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(3, 4, 10,
10)); // Mengubah jarak antar komponen

JLabel label1 = new JLabel("Bilangan


1:");
JLabel label2 = new JLabel("Bilangan
2:");
JLabel labelHasil = new
JLabel("Hasil:");

jTFinput1 = new JTextField(10);


jTFinput2 = new JTextField(10);
jTFHasil = new JTextField(20); //
Mengubah lebar text field hasil
jTFHasil.setEditable(false);
btnJumlah = new JButton("+");
btnKurang = new JButton("-");
btnKali = new JButton("*");
btnBagi = new JButton("/");

add(label1);
add(jTFinput1);
add(btnJumlah);
add(btnKali);

add(label2);
add(jTFinput2);
add(btnKurang);
add(btnBagi);

add(labelHasil);
add(jTFHasil);

btnJumlah.addActionListener(this);
btnKurang.addActionListener(this);
btnKali.addActionListener(this);
btnBagi.addActionListener(this);
}

public void actionPerformed(ActionEvent


e) {
int bilangan1 =
Integer.parseInt(jTFinput1.getText().trim());
int bilangan2 =
Integer.parseInt(jTFinput2.getText().trim());

if (e.getSource() == btnJumlah) {
int hasil = bilangan1 +
bilangan2;

jTFHasil.setText(String.valueOf(hasil));
} else if (e.getSource() ==
btnKurang) {
int hasil = bilangan1 -
bilangan2;

jTFHasil.setText(String.valueOf(hasil));
} else if (e.getSource() == btnKali)
{
int hasil = bilangan1 *
bilangan2;

jTFHasil.setText(String.valueOf(hasil));
} else if (e.getSource() == btnBagi)
{
if (bilangan2 != 0) {
double hasil = (double)
bilangan1 / bilangan2;

jTFHasil.setText(String.valueOf(hasil));
} else {
jTFHasil.setText("Error:
Pembagian dengan 0");
}
}
}

public static void main(String[] args) {


FourOperations app = new
FourOperations();
app.setVisible(true);
}
}
b. Hasil Program
1. Operasi Penjumlahan

2. Operasi Perkalian

3. Operasi Pengurangan
4. Operasi Pembagian

c. Penjelasan Program
Program ini adalah aplikasi sederhana yang melakukan empat
operasi aritmatika dasar (penjumlahan, pengurangan, perkalian, dan
pembagian) antara dua bilangan bulat. Dibangun menggunakan Java Swing
untuk membuat antarmuka grafis pengguna (GUI).
Kelas utamanya, FourOperations, menggunakan JFrame dan
mengimplementasikan ActionListener. Ketika dijalankan, program
membuat jendela dengan judul "SIMPLE PROGRAM TO COUNT" dan
ukuran 400x150 piksel. Tata letak jendela menggunakan GridLayout dengan
3 baris dan 4 kolom, serta jarak antara komponen sebesar 10 piksel.

Beberapa komponen GUI ditambahkan ke jendela, termasuk label untuk


"Bilangan 1:", "Bilangan 2:", dan "Hasil:", serta JTextField untuk input
bilangan dan hasil, dan JButton untuk operasi matematika (+, -, *, /).
Setiap tombol operasi matematika terhubung dengan objek
ActionListener (this), sehingga ketika tombol ditekan, metode
actionPerformed dipanggil. Di dalam metode actionPerformed, nilai-nilai
dari JTextField diambil, dan operasi yang sesuai dilakukan tergantung pada
tombol yang ditekan. Penanganan pembagian dengan nol diatur agar tidak
menghasilkan kesalahan dengan menampilkan pesan kesalahan khusus.
Metode main membuat objek FourOperations dan menjadikannya
terlihat di layar.
Kesimpulan

Dalam dunia pemrograman, terdapat konsep yang sangat penting yang


dikenal sebagai polymorphism. Polymorphism secara harfiah mengacu pada
"banyak bentuk" atau "bermacam-macam", namun dalam konteks pemrograman,
konsep ini memiliki makna yang lebih dalam. Polymorphism memungkinkan
entitas yang sama, seperti metode atau atribut, untuk digunakan dengan cara yang
berbeda tergantung pada konteksnya. Hal ini dapat dicapai melalui berbagai
mekanisme, termasuk inheritance, interface, Function Overloading, Operator
Overloading, dan Templates.

satu elemen yang penting dalam pemrograman berorientasi objek adalah


constructor method. Constructor method adalah method khusus dalam sebuah class
yang memiliki nama yang sama dengan nama class itu sendiri. Fungsi utama dari
constructor method adalah untuk memberikan nilai awal saat objek dibuat, dan ini
dipanggil secara otomatis saat objek dibuat dengan menggunakan keyword `new`.
Dengan constructor method, kita dapat melakukan inisialisasi objek dengan nilai-
nilai awal yang tepat.

Overloading, baik terhadap constructor method maupun method biasa, juga


merupakan aspek penting dalam pemrograman. Overloading terhadap constructor
method memungkinkan kita untuk membuat lebih dari satu constructor dalam
sebuah class, dengan perbedaan dalam jumlah atau tipe parameter yang digunakan.
Sementara itu, overloading method memungkinkan kita untuk memiliki beberapa
method dengan nama yang sama dalam sebuah class, tetapi dengan parameter yang
berbeda. Ini memberikan fleksibilitas dalam pemrograman, karena kita dapat
memiliki perilaku yang berbeda dari method yang sama tergantung pada jenis
parameter yang diterima.

Dalam pengembangan aplikasi Java, class JTextField dari package


javax.swing memiliki peran penting dalam memungkinkan pengguna untuk
memasukkan data dalam bentuk teks. JTextField adalah komponen yang digunakan
untuk membuat text field, yang memungkinkan pengguna untuk memasukkan data
satu baris saja. Dengan JTextField, kita dapat memproses input teks dari pengguna
dan mengonversinya ke dalam jenis data lain sesuai kebutuhan aplikasi. Dengan
memahami konsep polymorphism, constructor method, overloading method, dan
class JTextField, pengembang dapat membangun aplikasi Java yang fleksibel,
mudah dipelihara, dan sesuai dengan kebutuhan pengguna.
Daftar Pustaka

Tim Asisten Dosen. (2024). Polymorphism. Universitas Negeri Malang.

Object Oriented Programming: Polymorphism. (2021, December 12). School of

Computer Science. https://socs.binus.ac.id/2021/12/12/object-oriented-

programming-polymorphism/

Anda mungkin juga menyukai