Anda di halaman 1dari 31

LAPORAN MODUL IV

PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK


“POLYMORPHISM”

Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek


Dibimbing oleh Heru Wahyu Herwanto, S.T., M.Kom.

Oleh:
Fajri Novitasari 170533628549

S1 PTI ‘17 OFF A

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
OKTOBER 2018
I. Tujuan Praktikum
1. Menerapkan konsep polymorphism.
2. Menggunakan constructor method.
3. Melakukan overloading terhadap constructor method.
4. Melakukan overloading terhadap method.
5. Menggunakan class JTextField.
II. Dasar Teori
1. Konsep polymorphism.
Polymorphism merupakan konsep sederhana dalam bahasa
pemrograman berorientasi objek yang berarti kemampuan sebuah objek untuk
menghasilkan aksi yang berbeda. Bila method yang sama dipanggil, maka aksi
method yang akan dikerjakan tergantung pada tipe objeknya.
Ada keterkaitan antara polymorphism dan inheritance (turunan).
Dalam konsep turunan, saat obyek dari subclass dikonstruksi, obyek dari
superclass juga ikut dikonstruksi. Jadi setiap instance dari subclass adalah
juga instance dari superclass. Apabila mendeklarasikan metoda dengan
parameter dari tipe superclass, diperbolehkan untuk memberi argumen berupa
obyek subclass yang merupakan turunan dari superclass tersebut.

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.
Constructor 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.
Constructor biasanya digunakan untuk initialize(menyiapkan)
data untuk class. Untuk melakukan ini, kita harus membuat parameter
sebagai inputan untuk constructor, contoh :
Public class User {
public String username;
public String password

public User(String username, String password){


this.username = username;
this.passwoord = password;
}
}
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. Pada method overloading perbedaan parameter
mencakup :
 Jumlah parameter
 Tipe data dari parameter
 Urutan dari tipe data parameter

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

Beberapa metoda penting dari kelas JTextComponent yang


diturunkan ke kelas-kelas dibawahnya (termasuk JTextField) antara lain
adalah metoda getText(), setText(String text) dan setEditable(boolean
bValue). Dengan memberi nilai boolean false pada metoda setEditable,
string yang terdapat di obyek text field (obyek kelas JTextField) tidak dapat
dirubah (diproteksi). Dibatasi hanya sampai pada superclass JComponent,
hirarkhi turunan kelas JTextField adalah sebagai berikut:

Kelas JTextField mempunyai beberapa konstruktor. Beberapa diantaranya


yang sering digunakan adalah sebagai berikut:
III. Tugas Latihan
1. Nama Program : Menggunakan constructor method
Source Code :
a) Source Code “Mahasiswa”
class Mahasiswa{
private String nama;
private int angkatan;
public Mahasiswa(String nama, int angkatan)
//konstruktor
{
this.nama=nama;
this.angkatan=angkatan;
}
public void info()
{
System.out.println("Identitas Mahasiswa :
");
System.out.println("Nama :
"+this.nama);
System.out.println("Angkatan :
"+this.angkatan);
}
}

b) Source Code “Konstruktor”


public class Konstruktor
{
public static void main(String[] args)
{
Mahasiswa mhs=new Mahasiswa("Surya",
2012); //menungaskan objek mhs

System.out.println("***************************
***************");
System.out.println("\n\tPENGENALAN
KONSTRUKTOR\n");

System.out.println("***************************
***************");
mhs.info(); //memanggil method info
}
}

Hasil Program :
a) Hasil Program “Mahasiswa”
b) Hasil Program “Konstruktor”

Penjelasan :
Program diatas menampilkan identitas mahasiswa. Pada class Mahasiswa
dideklarasikan variabel nama bertipe data String dengan modifier private dan
variabel angkataan bertipe data int dengan modifier private. Konstruktor
method Mahasiswa dengan modifier public dengan parameter String
nama, int angkatan dideklarasikan this.nama=nama dimana variabel nama

pada class Mahasiswa sama dengan variabel nama yang nantinya variabel
tersebut dipanggil pada class Konstruktor dan this.angkatan=angkatan
dimana variabel angkatan pada class Mahasiswa sama dengan variabel
angkatan, yang akan dipanggil pada class Konstruktor. Pada fungsi info
digunakan untuk menampilkan output dari variabel nama dan angkatan. Pada
program menggunakan yang menggunakan class Mahasiswa, tidak dapat
menampilkan output karena tidak terdapat main method. Pada class
Konstruktor, membuat fungsi main yaitu public static void main
(String[] args). Static pada method main berarti method main tidak
mengubah atau menggunakan objek yang diciptakan oleh kelas tersebut,
sehingga dapat dikatakan berdiri sendiri, tidak terikat dengan objek dan akan
membuat fungsi dapat dieksekusi langsung tanpa harus membuat instansiasi
objek dari class. Dalam method main terdapat parameter String[]
args berupa array dengan tipe data String, parameter tersebut akan
menampung semua argumen yang diberikan ke program. Pada fungsi main,
pertama membuat objek baru di class Mahasiswa dengan nama objek mhs
yang sama dengan variabel Mahasiswa yang memiliki nilai parameter
("Surya", 2012) . Selanjutnya ditampilkan output berupa nama dan
angkatan dengan memanggil method info.

2. Nama Program : Menerapkan overloading terhadap constructor method


Source Code :
a) Source Code “Mahasiswa1”
class Mahasiswa1
{
private String nama;
private int angkatan;
public Mahasiswa1() //konstruktor tanpa parameter
{
this.nama="Siwi";
this.angkatan=2013;
}
public Mahasiswa1(String nama, int angkatan)
//kostruktor dengan parameter
{
this.nama=nama;
this.angkatan=angkatan;
}
public void info(){
System.out.println("\nIdentitas Mahasiswa :
");
System.out.println("Nama : "+this.nama);
System.out.println("Angkatan :
"+this.angkatan);
}
}

b) Source Code “OverloadConstructor1”


public class OverloadConstructor1
{
public static void main(String[] args)
{

System.out.println("\n*************************
***********************");
System.out.println("\n\tOVERLOAD TERHADAP
KONSTRUKTOR#1\n");

System.out.println("***************************
*********************");
Mahasiswa1 mhs1=new Mahasiswa1("Surya",
2012); //menugaskan objek mhs1
mhs1.info(); //memanggil method info yang
menampilkan data dari kostruktor dengan parameter
Mahasiswa1 mhs2=new Mahasiswa1();
//membuat objek mhs2
mhs2.info(); //memanggil method info yang
menampilkan data dari kostruktor tanpa parameter
}
}

Hasil Program :
a) Hasil Program “Mahasiswa1”

b) Hasil Program “OverloadConstructor1”

Penjelasan :
Program diatas digunakan untuk menampilkan identitas mahasiswa dengan
variabel yang ditampilkan adalah nama dan angkatan mahasiswa. Pada class
Mahasiswa1, dideklarasikan variabel nama bertipe data String dengan
modifier private dan variabel angkatan bertipe data int dengan modifier
private. Selanjutnya membuat konstruktor method Mahasiswa tanpa
parameter, pada method dideklarasikan this.nama="Siwi" dimana this
digunakan untuk mengakses variabel nama yang sudah didideklarasikan
sebelumnya. this.angkatan=2013 berarti angkatan mahasiswa yang
mempunyai nama Siwi adalah 2013, dimana variabel angkatan diakses oleh
this dari variabel yang sudah dideklarasikan pada class Mahasiswa1.
Selanjutnya dideklarasikan konstruktor method Mahasiswa1 dengan
parameter, di dalam method dideklarasikan this.nama=nama dimana variabel
nama pada class Mahasiswa1 sama dengan variabel nama yang nantinya
variabel tersebut dipanggil pada class OverloadCOnstructor1 dan
this.angkatan=angkatan dimana variabel angkatan pada class
Mahasiswa1 sama dengan variabel angkatan, yang akan dipanggil pada class
OverloadCOnstructor1. Selanjutnya dibuat method fungsi yang digunakan
untuk menampilkan output identitas mahasiswa,
System.out.println("Nama : "+this.nama) digunakan untuk
menampilkan nama mahasiswa dengan memanggil variabel nama dan
System.out.println("Angkatan : "+this.angkatan) digunakan untuk
menampilkan angkatan mahasiswa dengan memanggil variabel angkatan.

3. Nama Program : Melakukan overloading terhadap constructor method


Source Code :
a) Source Code “Lingkaran”
class Lingkaran
{
double radius;
Lingkaran()//konstruktor tanpa parameter
{
radius=1.0;
}
Lingkaran(double r) //konstruktor dengan
parameter
{
radius=r;
}
double luas() //method penghitung luas
{
return radius*radius*Math.PI;
}
}

b) Source Code “UjiLingkaran”


public class UjiLingkaran {
public static void main(String[] args) {
Lingkaran ling1 = new Lingkaran();
Lingkaran ling2 = new Lingkaran(10);
Lingkaran ling3 = new Lingkaran(100);
System.out.println("Luas1 =
"+ling1.luas());
System.out.println("Luas2 =
"+ling2.luas());
System.out.println("Luas3 =
"+ling3.luas());
}

Hasil Program :
a) Hasil Program “Lingkaran”

b) Hasil program “UjiLingkaran”

Penjelasan :
Program diatas menampilkan luas dari lingkaran. Pada class Lingkaran,
dideklarasikan variabel radius bertiipe data double. Setelah itu
mendeklarasikan kontruktor, untuk konstruktor tanpa parameter radius
bernilai 1.0 dan konstruktor identitas dengan parameter radius bernilai r.
Untuk menghitung luas lingkaran, dideklarasikan method luas bertipe double
yang digunakan untuk menghitung luas lingkaran yaitu dengan synatx return
radius*radius*Math.PI. Pada class UjiLingkaran, membuat fungsi main
yaitu public static void main (String[] args). Static pada method
main berarti method main tidak mengubah atau menggunakan objek yang
diciptakan oleh kelas tersebut, sehingga dapat dikatakan berdiri sendiri, tidak
terikat dengan objek dan akan membuat fungsi dapat dieksekusi langsung
tanpa harus membuat instansiasi objek dari class. Dalam method main
terdapat parameter String[] args berupa array dengan tipe data String,
parameter tersebut akan menampung semua argumen yang diberikan ke
program. Pertama membuat objek baru di class Lingkaran, ada 3 objek
dengan nama ling1 yang memiliki nilai sama dengan Lingkaran pada class
Lingkaran, objek kedua dengan nama ling2 memiliki nilai Lingkaran dengan
array 10 dan obejk ling3 memiliki nilai Lingkaran dengan array 100. Dari
objek yang sudah dibuat, selanjutnya menampilkan hasil dari luas 3 objek
lingkaran, dengan memanggil setiap objek dan method luas.

4. Nama Program : Menerapkan overloading terhadap method


Source Code :
a) Source Code “Pilihan”
class Pilihan
{
public void jurusan() //method tanpa parameter
{
String jrs="Pendidikan Teknik
Informatika";
System.out.println("\nPilihan 1:
\nJurusan " +jrs);
}
public void jurusan(String jrs) //method dengan
parameter
{
System.out.println("\nPilihan 2:
\nJurusan "+jrs);
}
}
b) Source Code “OverloadMethod1”
public class OverloadMethod1
{
public static void main(String[] args)
{

System.out.println("\n*************************
************");
System.out.println("\n\tOVERLOAD TERHADAP
METHOD #1\n");

System.out.println("***************************
***************");

Pilihan pilih=new Pilihan(); //membuat


objek pilih
pilih.jurusan(); //memanggil method tanpa
parameter
pilih.jurusan("Pendidikan Matematika");
//memanggil method dengan parameter
}
}

Hasil Program :
a) Hasil Program “Pilihan”

b) Hasil Program “OverloadMethod1”


Penjelasan :
Program diatas menggunakan overloading untuk menampilkan pilihan
jurusan. Pada class Pilihan mendeklarasikan method jurusan tanpa parameter,
di dalam method dideklarasikan variabel jrs dengan tipe data String memiliki
nilai "Pendidikan Teknik Informatika". Kemudian akan ditampilkan
hasil outputnya dengan memanggil variabel jrs. Selanjutnya dideklarasikan
variabel jurusan dengan parameter jrs bertipe data String. Selanjutnya pada
method ini akan ditampilkan pilihan jurusan yang nilainya akan
dideklarasikan pada class OverloadMethod1. Pada class OverloadMethod1,
membuat fungsi main yaitu public static void main (String[] args).
Static pada method main berarti method main tidak mengubah atau
menggunakan objek yang diciptakan oleh kelas tersebut, sehingga dapat
dikatakan berdiri sendiri, tidak terikat dengan objek dan akan membuat fungsi
dapat dieksekusi langsung tanpa harus membuat instansiasi objek dari class.
Dalam method main terdapat parameter String[] args berupa array dengan
tipe data String, parameter tersebut akan menampung semua argumen yang
diberikan ke program. Pertama membuat objek baru dari class Pilihan dengan
nama objek pilih. Selanjutnya menampilkan hasilnya dengan memanggil
method jurusan tanpa parameter dan method jurusan dengan parameter, pada
method jurusan dengan parameter, dideklarasikan nilai dari method jurusan
yaitu ("Pendidikan Matematika"). Sehingga outputnya nanti adalah
“Pendidikan Teknik Informatika” dan "Pendidikan Matematika”.

5. Nama Program : Melakukan overloading terhadap method


Source Code :
a) Source Code “Matematika”
class Matematika
{
static public int kuadrat(int nilai)
{
return nilai*nilai;
}
static public double kuadrat(double nilai)
{
return nilai*nilai;
}
static public double kuadrat(String nilai)
{
double bilangan;

bilangan=Double.valueOf(nilai).doubleValue();
return bilangan*bilangan;
}
}

b) Souce Code “UjiMatematika”


public class UjiMatematika {
public static void main(String[] args) {
Matematika mat = new Matematika();
String angka = "7.01";
System.out.println("Pemangkatan : ");
System.out.println("Integer(2) :
"+mat.kuadrat(2));
System.out.println("Double(3.5) :
"+mat.kuadrat(3.5));
System.out.println("String(7.01) :
"+mat.kuadrat(angka));

}
}

Hasil Program :
a) Hasil Program “Matematika”

b) Hasil Program “UjiMatematika”


Penjelasan :
Program diatas digunakan untuk menampilkan hasil dari pemangkatan. Pada
class Matematika dideklarasikan method static public int kuadrat yang
dapat langsung dapat diakses dari class tanpa membuat objek terlebih dahulu.
Pada method kuadrat terdapat satu parameter yaitu nilai dengan tipe data int
dan didalam method dideklarasikan return nilai*nilai. Selanjutnya
dideklarasikan method static public int kuadrat(double nilai) yang
dapat langsung dapat diakses dari class tanpa membuat objek terlebih dahulu.
Pada method kuadrat terdapat satu parameter yaitu nilai dengan tipe data
double dan didalam method dideklarasikan return nilai*nilai.

Dideklarasikan method static public int kuadrat(String nilai) yang


dapat langsung dapat diakses dari class tanpa membuat objek terlebih dahulu.
Pada method kuadrat terdapat satu parameter yaitu nilai dengan tipe data int
dan di dalam method terdapat syntax
bilangan=Double.valueOf(nilai).doubleValue() yang merupakan
mengembalikan nilai tipe data double ke tipe data primitive, yaitu seperti int.
Pada class UjiMatematika, membuat fungsi main yaitu public static void
main (String[] args). Static pada method main berarti method main
tidak mengubah atau menggunakan objek yang diciptakan oleh kelas tersebut,
sehingga dapat dikatakan berdiri sendiri, tidak terikat dengan objek dan akan
membuat fungsi dapat dieksekusi langsung tanpa harus membuat instansiasi
objek dari class. Dalam method main terdapat parameter String[]
args berupa array dengan tipe data String, parameter tersebut akan
menampung semua argumen yang diberikan ke program. Selanjutnya
membuat objek baru bernama mat pada class Matematika dan
mendeklarasikan variabel angka dengan nilai 7.01 bertipe String. Kemudian
menampilkan output Pemangkatan, untuk hasil Integer ditampilkan dengan
memanggil variabel kuadrat dengan parameter int nilai, dimana nilai dari
parameter adalah 2. Kedua menampilkan output Double dengan memanggil
variabel kuadrat dengan parameter double nilai, dimana nilai dari parameter
adalah 3.5. Untuk menampilkan hasil dari String dengan memanggil variabel
kuadrat yang mempunyai parameter String, nilai String merupakan variabel
angka yang sudah dideklarasikan yaitu 7.01.

6. Nama Program : Membuat Text Field


Source Code :
import javax.swing.JFrame;
import javax.swing.JTextField;

public class CreateTextField


{
public static void main(String[] args)
{
JFrame frame = new JFrame();
JTextField textfield = new JTextField();
//menciptakan objek textfield dari class JTextField
frame.setTitle("CREATE TEXT FIELD");
frame.setBounds(200,200,300,200);
frame.add(textfield); //menambahkan text
field pada frame
textfield.setBounds(50,50,150,25); //mengatur
posisi tampilan text field dan ukuran text field
frame.setLayout(null);
frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

Hasil Program :

Penjelasan :
Program diatas menampilkan text field berbasis GUI. Pertama
mendeklarasikan import javax.swing.JFrame yang digunakan untuk
mengimport fungsi class JFrame dari package javax.swing dan import
javax.swing.JTextField yang digunakan untuk memanggil fungsi class
JTextField didalam Swing. Program ini menggunakan class
CreateerTextField, kemudian dibuat fungsi main yaitu public static void
main (String[] args). Static pada method main berarti method main
tidak mengubah atau menggunakan objek yang diciptakan oleh kelas tersebut,
sehingga dapat dikatakan berdiri sendiri, tidak terikat dengan objek dan akan
membuat fungsi dapat dieksekusi langsung tanpa harus membuat instansiasi
objek dari class. Dalam method main terdapat parameter String[]
args berupa array dengan tipe data String, parameter tersebut akan
menampung semua argumen yang diberikan ke program. Selanjutnya
membuat objek baru dari class JFrame dengan nama frame dan membuat
objek dari class JTextField dengan nama textfield. Pada objek frame diberi
judul CREATE TEXT FIELD dengan menggunakan frame.setTitle("CREATE
TEXT FIELD ") dimana setTitle digunakan untuk menampilkan judul dari
objek frame. frame.setBounds (200,200,300,200) digunakan untuk
menentukan ukuran frame. frame.add(textfield) digunakan untuk
menambahkan text field pada frame, frame.setLayout(null)digunakan
untuk mengatur layout yang digunakan dalam frame. Selanjutnya untuk
menampilan frame agar dapat dijalankan menggunakan
frame.setVisible(true).frame.setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE) digunakan untuk mengakhiri jalannya program bila frame
ditutup. Bila perintah tersebut tidak ada, maka penutupan frame tidak akan
menghentikan jalannya program.
7. Nama Program : Menampilkan kata dari Text Field
Source Code :
import java.awt.event.*;
import javax.swing.*;

//class TryTextField mengimplementasikan interface


ActionListener
public class TryTextField implements ActionListener
{
//membuat objek dari class yang akan digunakan
private JTextField textfield; private JButton
btnTampil;
private JLabel label;

public TryTextField()
{
JFrame frame = new JFrame();
frame.setBounds(200,200,325,175);
frame.setTitle("TRY TEXT FIELD");
label = new JLabel("Input Kata : ");
label.setBounds(25,25,100,25);
frame.add(label);

textfield = new JTextField();


textfield.setBounds(125,25,150,25);
frame.add(textfield);
btnTampil = new JButton("Tampilkan Kata");
//menugaskan objek btnTampil
frame.add(btnTampil);
btnTampil.setBounds(125,75,150,25);
frame.setLayout(null);
frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btnTampil.addActionListener(this); //mendeteksi event
pada btnTampil
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==btnTampil)
{
String kata = textfield.getText();
//mengambil kata yang diinputkan oleh user
JOptionPane.showMessageDialog(null, "Anda
telah menginput kata : \n"+kata, "INFORMASI",
JOptionPane.INFORMATION_MESSAGE);
}
}
public static void main(String[] args)
{
TryTextField frame = new TryTextField();
}
}
Hasil Program :

Penjelasan :
Program diatas menampilkan kata dari text field berbasis GUI. import
java.awt.event.* yaitu merupakan sebuah fungsi import yang digunakan
untuk proses deklarasi dari class event yang berisi komponen dari sebuah
program yang dibuat. import javax.swing.* yang merupakan paket berisi
kelas-kelas dan interface untuk komponen GUI swing Java yang menyediakan
dukungan untuk tampilan grafis yang portabel. Program ini menggunakan
class TryTextField dengan mengimplementasikan ActionListener.
ActionListener digunakan untuk menangani reaksi atas perubahan status pada
objek yang digunakan. Misalnya akibat penekanan tombol mouse atau
keyboard. Selanjutnya membuat objek textfield dari class JTextField,
btnTampil dari class JButton, dan label dari class JLabel. Selanjutnya
membuat constructor method TryTextField. Pada konstruktor method dibuat
frame baru dari class JFrame, frame.setBounds (200,200,325,175)
digunakan untuk menentukan ukuran frame, objek frame diberi judul TRY
TEXT FIELD dengan menggunakan frame.setTitle("TRY TEXT FIELD")
dimana setTitle digunakan untuk menampilkan judul dari objek frame.
Selanjutnya membuat label baru dari class JLabel, label.setBounds
(25,25,100,25) digunakan untuk menentukan ukuran label dan
frame.add(label) digunakan untuk menambah label pada frame.
textfield = new JTextField() digunakan untuk menugaskan textfield
yang sudah dideklarasikan menjadi objek baru dari class JTextField,
textfield.setBounds(125,25,150,25) digunakan untuk menentukan
ukuran textfield, frame.add(textfield) digunakan untuk menambah
textfield pada frame. btnTampil = new JButton("Tampilkan Kata")
digunakan untuk menugaskan objek btnTampil menjadi objek baru dari class
JButton dengan text pada button "Tampilkan Kata".

frame.add(btnTampil) digunakan untuk menambah objek btnTampil pada


frame, btnTampil.setBounds(125,75,150,25) digunakan untuk
menentukan ukuran btnTampil. frame.setLayout(null)digunakan untuk
mengatur layout yang digunakan dalam frame. Selanjutnya untuk
menampilan frame agar dapat dijalankan menggunakan
frame.setVisible(true).frame.setDefaultCloseOperation(JFrame.

EXIT_ON_CLOSE) digunakan untuk mengakhiri jalannya program bila frame


ditutup. Bila perintah tersebut tidak ada, maka penutupan frame tidak akan
menghentikan jalannya program. Untuk menampilkan action dideklarasikan
public void actionPerformed(ActionEvent e). Terdapat kondisi jika
tombol ditekan dengan syntax if(e.getSource()==btnTampil) maka
aksi yang terjadi memanggil kembali kata yang telah diinputkan oleh user
dengan syntax String kata = textfield.getText() yang ditampilkan
dengan syntax JOptionPane.showMessageDialog(null, " Anda telah
menginput kata : \n"+kata, "INFORMASI",

JOptionPane.INFORMATION_MESSAGE);.Agar program bisa dijalankan atau


bisa dieksekusi dan menampilkan output maka menggunakan public static
void main(String[] args). Tampilan informasi sesuai yang diinputkan
oleh user dibuat dengan membuat frame baru dari class TryTestField yaitu
dengan syntax TryTextField frame = new TryTextField().
IV. Tugas Rumah
1. Nama Program : Daftar Pustaka
Source Code :
a) Source Code “Buku”
import java.util.Scanner;
class Buku
{
public Buku(String penyusun,int tahun)
{
System.out.print("\n"+penyusun+".");
System.out.print(tahun+".");
}
public void terbit(String judul)
{
System.out.print(judul+". ");
}

public void terbit(String kota, String penerbit)


{
System.out.print(kota+":");
System.out.print(penerbit+"\n");
}
}

b) Source Code “DaftarPustaka”


import java.util.Scanner;
public class DaftarPustaka
{
public static void main(String[] args)
{
int tahun;
String judul,penyusun,kota,penerbit;
Scanner user = new Scanner(System.in);

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

System.out.println("+********************************
***************+");
System.out.println(" Masukkan Identitas
Buku\n");
System.out.print("Judul Buku : ");
judul = user.nextLine();
System.out.print("Nama Penyusun : ");
penyusun = user.nextLine();
System.out.print("Kota Terbit : ");
kota = user.nextLine();
System.out.print("Nama Penerbit : ");
penerbit = user.nextLine();
System.out.print("Tahun Terbit : ");
tahun = user.nextInt();

System.out.println("\n*******************************
****************");
System.out.println("\n\tPenulisan daftar
pustaka");

Buku buuku = new Buku(penyusun, tahun);


buuku.terbit(judul);
buuku.terbit(kota, penerbit);

System.out.println("\n*************************
**********************");
}
}

Hasil Program :
a) Hasil Program “Buku”

b) Hasil Program “DaftarPustaka”


Penjelasan :
Pada program diatas digunakan untuk menampilkan penulisan daftar pustaka.
Terdapat dua class untuk bisa menjalankan program daftar pustaka yaitu class
Buku dan class DaftarPustaka. Pada class Buku, dideklarasikan construction
method Buku dengan parameter String penyusun,int tahun, dimana
pada method terdapat perintah untuk menampilkan output yaitu untuk
menampilkan penyusun dan tahun. Selanjutnya dideklarasikan method
terbit dengan parameter String judul yang di dalam method terdapat
perintah untuk menampilkan output judul. Dideklarasikan method terbit
dengan parameter String kota, String penerbit yang di dalam method
terdapat perintah untuk menampilkan output kota dan penerbit. Pada class
DaftarPustaka, terlebih dahulu mendeklarasikan import

java.util.Scanner yang merupakan fungsi untuk memasukkan paket


Scanner. Di dalam class DaftarPustaka dideklarasikan fungsi main yaitu
public static void main (String[] args). Static pada method main
berarti method main tidak mengubah atau menggunakan objek yang
diciptakan oleh kelas tersebut, sehingga dapat dikatakan berdiri sendiri, tidak
terikat dengan objek dan akan membuat fungsi dapat dieksekusi langsung
tanpa harus membuat instansiasi objek dari class. Dalam method main
terdapat parameter String[] args berupa array dengan tipe data String,
parameter tersebut akan menampung semua argumen yang diberikan ke
program. Selanjutnya di dalam fungsi main dideklarasikan variabel tahun
bertipe data int dan variabel judul, penyusun, kota, penerbit bertipe data
string. Scanner user = new Scanner(System.in) digunakan untuk
membuat scanner baru yang bernama user untuk menyimpan data yang
diinputkan user. Kemudian terdapat perintah untuk menampilkan output yang
nilainya akan diinputkan oleh user yaitu menampilkan Judul Buku yang
datanya akan disimpan pada judul = user.nextLine(), Nama Penyusun
data yang diinputkan user akan disimpan pada penyusun =

user.nextLine(), Kota Penerbit data yang diinputkan user akan disimpan


pada kota = user.nextLine(), Nama Penerbit data yang diinputkan user
akan disimpan pada penerbit = user.nextLine(), dan Tahun Terbit data
yang diinputkan user akan disimpan pada tahun = user.nextInt().
Selanjutnya dari data yang sudah diinputkan akan ditampilkan penulisan
daftar pustaka. Untuk menampilkan penulisan daftar pustaka membuat objek
baru dengan nama buuku dari class Buku(penyusun, tahun), dari objek buuku
dipanggil method terbit(judul) untuk menampilkan judul buku dan
method terbit(kota, penerbit) untuk menampilkan Kota Penerbit dan
Nama Penerbit.

2. Nama Program : Perhitungan sederhana


Source Code :
import java.awt.event.*;
import javax.swing.*;
public class FourOperations implements ActionListener
{
private JTextField jTFinput1, jTFinput2,
jTFHasil;
private JLabel label1, label2, labelHasil;
private JButton btnJmlh, btnKurang, btnBagi,
btnKali;

public FourOperations()
{
JFrame frame = new JFrame();
frame.setBounds(200,200,380,250);
frame.setTitle("SIMPLE PROGRAM TO COUNT");

label1 = new JLabel("Bilangan 1 : ");


label1.setBounds(25,25,100,25);
frame.add(label1);

label2 = new JLabel("Bilangan 2 : ");


label2.setBounds(25,75,100,25);
frame.add(label2);

labelHasil = new JLabel("Hasil : ");


labelHasil.setBounds(25,125,100,25);
frame.add(labelHasil);

jTFinput1 = new JTextField();


jTFinput1.setBounds(125,25,70,25);
frame.add(jTFinput1);
jTFinput2 = new JTextField();
jTFinput2.setBounds(125,75,70,25);
frame.add(jTFinput2);

jTFHasil = new JTextField();


jTFHasil.setBounds(125,125,150,25);
jTFHasil.setEnabled(false);
frame.add(jTFHasil);

btnJmlh = new JButton("+");


btnJmlh.setBounds(220,25,50,25);
frame.add(btnJmlh);

btnKurang = new JButton("-");


btnKurang.setBounds(220,75,50,25);
frame.add(btnKurang);

btnKali = new JButton("*");


btnKali.setBounds(280,25,50,25);
frame.add(btnKali);

btnBagi = new JButton("/");


btnBagi.setBounds(280,75,50,25);
frame.add(btnBagi);

frame.setLayout(null);
frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

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

public void actionPerformed(ActionEvent e){


if(e.getSource()==btnKali){
int
bilangan1=(Integer.parseInt(jTFinput1.getText().trim(
)));
int
bilangan2=(Integer.parseInt(jTFinput2.getText().trim(
)));
int hasil = bilangan1*bilangan2;
jTFHasil.setText(String.valueOf(hasil));
}
else if(e.getSource()==btnJmlh){
int
bilangan1=(Integer.parseInt(jTFinput1.getText().trim(
)));
int
bilangan2=(Integer.parseInt(jTFinput2.getText().trim(
)));
int hasil = bilangan1+bilangan2;
jTFHasil.setText(String.valueOf(hasil));
}
else if(e.getSource()==btnBagi){
int
bilangan1=(Integer.parseInt(jTFinput1.getText().trim(
)));
int
bilangan2=(Integer.parseInt(jTFinput2.getText().trim(
)));
int hasil = bilangan1/bilangan2;
jTFHasil.setText(String.valueOf(hasil));
}
else if(e.getSource()==btnKurang){
int
bilangan1=(Integer.parseInt(jTFinput1.getText().trim(
)));
int
bilangan2=(Integer.parseInt(jTFinput2.getText().trim(
)));
int hasil = bilangan1-bilangan2;
jTFHasil.setText(String.valueOf(hasil));
}
}
public static void main(String[] args) {
FourOperations frame = new FourOperations();
}

Hasil Program :

Penjelasan :
Program diatas menampilkan perhitungan sederhana berbasis GUI yang dapat
melakukan perhitungan penjumlahan, pengurangan, perkalian dan
pembagian. Pada awal program dideklarasikan import java.awt.event.*
yaitu merupakan sebuah fungsi import yang digunakan untuk proses deklarasi
dari class event yang berisi komponen dari sebuah program yang dibuat.
import javax.swing.* yang merupakan paket berisi kelas-kelas dan
interface untuk komponen GUI swing Java yang menyediakan dukungan
untuk tampilan grafis yang portabel. Program ini menggunakan class
FourOperations dengan mengimplementasikan ActionListener.
ActionListener digunakan untuk menangani reaksi atas perubahan status pada
objek yang digunakan. Misalnya akibat penekanan tombol mouse atau
keyboard. Selanjutnya mendeklarasikan objek jTFinput1, jTFinput2,
jTFHasil dari class JTextField , objek label1, label2, labelHasil dari
class JLabel, dan objek btnJmlh, btnKurang, btnBagi, btnKali dari
class JButton. Kemudian pada construction method FourOperations dibuat
frame baru dari class JFrame. frame.setBounds(200,200,380,250)
digunakan untuk menentukan ukuran frame, Pada objek frame diberi judul
SIMPLE PROGRAM TO COUNT dengan menggunakan
frame.setTitle("SIMPLE PROGRAM TO COUNT") dimana setTitle digunakan

untuk menampilkan judul dari objek frame. label1 = new

JLabel("Bilangan 1 : ") digunakan memanggil objek label1 dari class


JLabel dengan menampilkan text "Bilangan 1 : ",

label1.setBounds(25,25,100,25) digunakan untuk menentukan ukuran


label1, dan frame.add(label1) digunakan untuk menambahkan objek label1
pada frame. labelHasil = new JLabel("Hasil : ") digunakan
memanggil objek labelHasil dari class JLabel dengan menampilkan text
"Hasil : ", label1.setBounds(25,125,100,25) digunakan untuk
menentukan ukuran labelHasil, dan frame.add(labelHasil) digunakan untuk
menambahkan objek labelHasil pada frame. jTFinput1 = new

JTextField() digunakan memanggil objek jTFinput1 dari class


JTextField, jTFinput1.setBounds(125,25,70,25) digunakan untuk
menentukan ukuran jTFinput1, dan frame.add(jTFinput1) digunakan untuk
menambahkan objek jTFinput1 pada frame. jTFHasil = new JTextField()
digunakan memanggil objek jTFHasil dari class JTextField,
jTFHasil.setBounds(125,125,150,25) digunakan untuk menentukan
ukuran jTFHasil, jTFHasil.setEnabled(false) digunakan untuk
menonaktifkan JTextField sehingga user tidak dapat menyalin data dan
mengubah isi TextField secara langsung, dan frame.add(jTFHasil) digunakan
untuk menambahkan objek jTFinput1 pada frame. btnJmlh = new

JButton("+") digunakan memanggil objek btnJmlh dari class JButton


dengan menampilkan symbol "+", btnJmlh.setBounds(220,25,50,25)
digunakan untuk menentukan ukuran btnJmlh, dan frame.add(btnJmlh)
digunakan untuk menambahkan objek btnJmlh pada frame. btnKurang = new
JButton("-") digunakan memanggil objek btnKurang dari class JButton
dengan menampilkan symbol "-", btnKurang.setBounds(220,25,50,25)
digunakan untuk menentukan ukuran btnKurang dan frame.add(btnKurang)
digunakan untuk menambahkan objek btnKurang pada frame. btnKali = new
JButton("*") digunakan memanggil objek btnKali dari class JButton
dengan menampilkan symbol "*", btnKurang.setBounds(280,25,50,25)
digunakan untuk menentukan ukuran btnKali dan frame.add(btnKali)
digunakan untuk menambahkan objek btnKali pada frame. btnBagi = new
JButton("/") digunakan memanggil objek btnKali dari class JButton
dengan menampilkan symbol "/", btnKurang.setBounds(280,25,50,25)
digunakan untuk menentukan ukuran btnBagi dan frame.add (btnBagi)
digunakan untuk menambahkan objek btnBagi pada frame.
frame.setLayout(null)digunakan untuk mengatur layout yang digunakan
dalam frame. Selanjutnya untuk menampilan frame agar dapat dijalankan
menggunakanframe.setVisible(true).frame.setDefaultCloseOperat
ion(JFrame.EXIT_ON_CLOSE) digunakan untuk mengakhiri jalannya
program bila frame ditutup. Bila perintah tersebut tidak ada, maka penutupan
frame tidak akan menghentikan jalannya program. Untuk menampilkan action
dideklarasikan public void actionPerformed(ActionEvent e).

Terdapat kondisi jika tombol ditekan dengan syntax

if(e.getSource()==btnKali) maka angka yang dimasukkan user akan


disimpan pada
bil1=(Integer.parseInt(jTFinput1.getText().trim())) untuk
bilangan pertama dan angka pada data bilangan kedua disimpan pada
bil2=(Integer.parseInt(jTFinput2.getText().trim())), selanjutnya
untuk menghitung hasil perkalian dengan hasil = bil1*bil2. Hasil dari
perkalian ditampilkan dengan syntax
jTFHasil.setText(String.valueOf(hasil)). Untuk perhitungan
penjumlahan, pembagian, dan pengurangan sama prosesnya, yang berbeda
adalah cara mencari hasil dari perhitungan, untuk penjumlahan dengan hasil
= bil1+bil2, perhitungan pembagian dengan hasil = bil1/bil2, dan
perhitungan pengurangan dengan hasil = bil1-bil2. Agar program bisa
dijalankan atau bisa dieksekusi dan menampilkan output maka menggunakan
public static void main(String[] args). Tampilan perrhitungan
sederhana sesuai yang diinputkan oleh user dibuat dengan membuat frame
baru dari class FourOperations yaitu dengan syntax FourOperations frame
= new FourOperations().

V. Kesimpulan
Dari praktikum modul 4 Polymorphism dapat disimpulkan bahwa:
1. Polymorphism merupakan suatu konsep yang menyatakan sesuatu yang
sama dapat memiliki berbagai bentuk dan perilaku yang berbeda atau
dapat dikatakan bahwa polymorphism adalah satu objek yang memiliki
banyak bentuk
2. Konsep dari polymorphism menggunakan dua metode.
 Metode pertama yaitu pewarisan yang menggunakan konsep
overriding yaitu membuat method yang bernama dan berstruktur
sama akan tetapi isi method berbeda pada class induk dan class
anak.
 Metode yang kedua adalah overloading yaitu method bernama
sama debgan method lain pada suatu class tetapi memiliki
parameter yang berbeda
3. bilangan=Double.valueOf(nilai).doubleValue() digunakan untuk
mengembalikan nilai tipe data double ke tipe data primitive, yaitu seperti
int.
4. ActionLister digunakan untuk menangani reaksi atas perubahan status
pada objek yang digunakan. Misalnya akibat penekanan tombol mouse
atau keyboard.
5. Pada praktikum modul 3 telah dipelajari program menggunakan
constructor method, program yang menerapkan overloading terhadap
constructor method, program yang menerapkan overloading terhadap
method , membuat Text Field, menampilkan kata dari Text Field, program
yang menerapkan overloading terhadap constructor method, program
yang menerapkan overloading terhadap constructor method dan method,
dan program perhitungan sederhana.
6. jTFHasil.setEnabled(false) digunakan untuk menonaktifkan
JTextField sehingga user tidak dapat menyalin data dan mengubah isi
TextField secara langsung
7. Method trim() berfungsi untuk meghapus spasi dari bagian awal dan juga
akhir, pada sebuah nilai yang didefinisikan menggunakan tipe data String,
lalu akan mengembalikan dan menyalin kembali nilai yang telah dihapus
spasinya untuk ditampilkan nilainya

VI. Daftar Rujukan


Athhoillah, Wildan M. 2017. Belajar Menggunakan Fungsi trim String pada
Java. https://www.wildantechnoart.net/2017/12/belajar-
menggunakan-fungsi-trim-string-pada-java.html (diakses 11
Oktober 2018)
Brianorman, Yulrio. 2015. Penjelasan Overloading dan Overriding pada Java.
http://onestringlab.com/penjelasan-overloading-dan-overriding-
pada-java/ (diakses 11 Oktober 2018)
Dian, Muhar. 2017. Belajar Java OOP: Mengenal Constructor & Destructor
dalam Java. https://www.petanikode.com/java-oop-constructor/
(diakses 11 Oktober 2018)
TermasMedia. Memahami Konsep Polimorfisme (Polymorphism) Di Java.
https://www.termasmedia.com/pemrograman/java/250-
memahami-konsep-polimorfisme-polymorphism-di-java.html
(diakses 11 Oktober 2018)
Setiawan, Yudi. 2015. Membuat Frame, Label, TextField dan Button di Java
[FullCoding].http://jagocoding.com/tutorial/1025/Membuat_Fra
me_Label_TextField_dan_Button_di_Java_Full_Coding (diakses
11 Oktober 2018)
TermasMedia. Mengenal Kelas JTextField Di Java.
https://www.termasmedia.com/pemrograman/java/372-mengenal-
kelas-jtextfield-di-java.html (diakes 11 Oktober 2018)

Anda mungkin juga menyukai