Title | LAPORAN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK 4 "POLYMORPHISM" |
---|---|
Author | Fajri Novita |
Pages | 31 |
File Size | 521.7 KB |
File Type | |
Total Downloads | 757 |
Total Views | 846 |
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 ...
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 Source Code
: Menggunakan constructor method :
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. args
Dalam method main terdapat parameter String[]
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", angkatan
2012)
. Selanjutnya ditampilkan output berupa nama dan
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
this.angkatan=angkatan
pada
dimana
class
OverloadCOnstructor1
variabel
angkatan
pada
dan class
Mahasiswa1 sama dengan variabel angkatan, yang akan dipanggil pada class OverloadCOnstructor1. Selanjutnya dibuat method fungsi yang digunakan untuk
menampilkan
System.out.println("Nama
output :
identitas
"+this.nama)
mahasiswa, 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 Source Code
: Menerapkan overloading terhadap method :
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 Source Code
: Melakukan overloading terhadap method :
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
bilangan=Double.valueOf(nilai).doubleValue()
yang
syntax 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. args
Dalam method main terdapat parameter String[]
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 Source Code
: Membuat Text Field :
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
mendeklarasikan import
text
field
berbasis
javax.swing.JFrame
GUI.
Pertama
yang digunakan untuk
mengimport fungsi class JFrame dari package javax.swing dan import javax.swing.JTextField
JTextField
didalam
yang digunakan...