1.1 TUJUAN
1. Mahasiswa dapat menggunakan teknik pewarisan dan polymorfisme.
2. Mahasiswa dapat membuat interface.
1.2.2 Polymorfisme
Polimorfisme adalah kemampuan suatu objek untuk
mengungkapkan banyak hal melalui satu cara yang sama.
Polimorfisme mengizinkan kelas induk untuk mendefinisikan sebuah
method general (bersifat umum) untuk semua kelas turunanya, dan
selanjutnya kelas-kelas turunan dapat memperbaharui implementasi
dari method tersebut secara lebih spesifik sesuai dengan
karakteristiknya masing-masing.
Misalkan dalam class Buah yang juga bertindak sebagai kelas
induk/superclass dan kelas induk ini mempunyai method general
yang berisi rasa dari buah,dan kemudian kelas turunannya akan
memperbaharui dengan mengisi rasa dari buah ini manis kalau
diumpamakan kelas turunannya adalah kelas buah Apel, dan juga
bisa berisi rasa dari buah ini asam kalau kelas turunannya kelas
Mangga.
A. Overloading
Overloading adalah suatu keadaan dimana beberapa method
memiliki nama yang sama tetapi fungsionalitasnya berbeda.
Overloading juga masuk untuk mendukung konsep polimorfisme.
Kalau diumpamakan seperti contoh diatas, maka overloading ini
adalah method Rasa Buah yang dimiliki oleh kelas Buah,Apel,dan
Mangga karena memiliki nama yang sama tapi memiliki isi yang
berbeda.
B. Overriding
Overriding adalah menulis kembali method yang sama mulai
dari nama method dan isinya dan mengimplementasi kembali di
sub classnya.
Overriding konsepnya hampir sama dengan Overloading, tapi
Overriding harus menulis lagi methodnya yang dari kelas
induknya.
}
}
@Override
Penyanyi p;
p = afgan;
p.bernyanyi();
p = rhoma;
p.bernyanyi();
1.2.3 Interface
Interface adalah sebuah tipe referensi pada Java. Interface
secara struktur serupa dengan class. Isi dari interface adalah method
abstract, artinya method hanya dideklarasikan tidak ditulis secara
utuh. Deklarasi method pada interface serupa dengan method pada
class abstract.
Variable pada interface akan memiliki aturan static dan final
sedangkan method akan memiliki aturan public dan abstract. Hal ini
terjadi setelah proses kompilasi seperti yang terlihat pada gambar.
Nama : Antonio
Usia : 28
Bagian : Direktur
Gaji Pokok : Rp. 10.000.000,00
Tunjangan Jabatan : Rp 5.000.000,-
Fasilitas : Mobil Dinas, Rumah Dinas
Nama : Jimmy
Usia : 25
Bagian : Wakil Direktur
Gaji Pokok : Rp. 7.000.000,00
Tunjangan Jabatan : Rp 2.000.000,-
Fasilitas : Mobil Dinas
Nama : Boy
Usia : 25
Bagian : Staf
Gaji Pokok : Rp. 1.500.000,00
Tunjangan Jabatan : -
Fasilitas : -
Keterangan :
Pada pertama terdapat package pegawai, yang artinya java class
Pegawai merupakan bagian dari package pegawai.
Pada baris ketiga merupakan sebuah class dengan nama Pegawai
dengan modifier public yang artinya sebuah class, variable, method dan
constructor yang dideklarasikan public dapat di akses dari class manapun.
Walaupun demikian, sebuah class yang dideklarasikan public namun berbeda
package, maka class public tersebut harus di import terlebih dahulu. Tanda
kurung kurawal buka {, digunakan untuk mengawali blok program dari
class Pegawai.
Pada baris keempat sampai baris kesembilan terdapat attribute dari class
Pegawai dengan modifer public dengan nama nama, bagian, fasilitas, gaji,
tunjangan yang bertipe data String, sedangkan attribute dengan nama usia
bertipe data integer.
Pada baris kesebelas terdapat method dengan nama cetakPegawai
dengan modifer public yang berasal dari class Pegawai. Tanda kurung
kurawal buka {, digunakan untuk mengawali blok program method
cetakPegawai.
Pada baris kedua belas sampai tujuh belas terdapat System.out.print();
yang artinya adalah :
1. System.out, adalah stream yang digunakan untuk menangani keluaran
standar java.
2. Print(), merupakan metode yang digunakan untuk menampilkan teks di
layar tanpa garis baru, yang di sini menampilkan string yaitu :
Pada baris kedua belas, Nama : dan nilai yang terdapat pada variabel
nama.
Baris ketiga belas, Usia : dan nilai yang terdapat pada variabel usia.
Baris keempat belas, Bagian : dan nilai yang terdapat pada variabel
bagian.
Baris kelima belas , Gaji Pokok : Rp. dan nilai yang terdapat pada
variabel gaji dan ,00.
Baris keenam belas, Tunjangan Jabatan : Rp. dan nilai yang terdapat
pada variabel tunjangan dan ,-.
Baris ketujuh belas, Fasilitas : dan nilai yang terdapat pada variabel
fasilitas.
3. Tanda titik koma (;), digunakan untuk mengakhiri pernyataan.
Pada baris kedelapan belas terdapat System.out.println() yang
berfungsi untuk membuat garis baru.
Pada baris kesembilan belas Tanda kurung kurawal tutup }, digunakan
untuk mengakhiri blok program method cetakPegawai.
Keterangan :
Pada baris pertama terdapat package pegawai, yang artinya java class
Direktur merupakan bagian dari package pegawai.
Pada baris ketiga merupakan sebuah class dengan nama Direktur
dengan modifier public yang artinya Sebuah class, variable, method dan
constructor yang dideklarasikan public dapat di akses dari class manapun.
Walaupun demikian, sebuah class yang dideklarasikan public namun berbeda
package, maka class public tersebut harus di import terlebih dahulu. Dan
terdapat keyword extends, keyword extends adalah keyword yang
digunakan oleh subclass ketika melakukan pewarisan terhadap superclass,
yang disini class Direktur merupakan subsclass dari class Pegawai, class
Direktur adalah turunan dari Class Pegawai, jadi semua Attribute dan
Method pada class Pegawai ada pada class Direktur.
Pada baris keempat terdapat konstruktor dengan nama Direktur,
Konstruktor biasanya digunakan untuk menginisialisasi atau memberikan
nilai (melalui parameter) kepada sebuah objek pada saat objek pertama kali
diciptakan. Pada konstruktor Direktur mempunyai parameter String nma,
int us, String bgn, String gj, String tn, String fs. Tanda kurung kurawal buka
{, digunakan untuk mengawali blok program dari konstruktor Direktur.
Pada baris kelima sampai sepuluh terdapat attribute yang berasal dari
superclass atau dari class induk Pegawai yang di masing-masing
variabelnya diinisialiasi oleh parameter dari konstruktor Direktur. Yang
inisialisasinya sebagai berikut :
nama = nma;
usia = us;
bagian = bgn;
gaji = gj;
tunjangan = tn;
fasilitas = fs;
Pada baris kesebelas terdapat tanda kurung kurawal tutup }, digunakan
untuk mengakhiri blok program dari konstruktor Direktur.
Pada baris ketiga belas terdapat annotasi Override.
Pada baris keempat belas sampai kedua puluh terdapat sebuah method
cetakPegawai yang akan mengoverride instance method milik
superclassnya, yang disini superclassnya adalah class Pegawai. Pada baris
ini merupakan polymorfisme override, yang merupakan turunan dari method
cetakPegawai dari class induk Pegawai. Dimana harus menulis lagi nama
methodnya. Dan terdapat tanda tanda kurung kurawal buka {, digunakan
untuk mengawali blok program method cetakPegawai.
Pada baris kedua puluh satu terdapat System.out.println() yang
berfungsi untuk membuat garis baru.
Pada baris kedua puluh dua terdapat tanda kurung kurawal tutup },
digunakan untuk mengakhiri blok program dari method cetakPegawai.
Pada baris kedua puluh tiga terdapat tanda kurung kurawal tutup },
digunakan untuk mengakhiri blok program dari class Direktur.
Keterangan :
Pada baris pertama terdapat package pegawai, yang artinya java class
WakilDirektur merupakan bagian dari package pegawai.
Pada baris ketiga merupakan sebuah class dengan nama WakilDirektur
dengan modifier public yang artinya sebuah class, variabale, method dan
constructor yang dideklarasikan public dapat di akses dari class manapun.
Walaupun demikian, sebuah class yang dideklarasikan public namun berbeda
package, maka class public tersebut harus di import terlebih dahulu. Dan
terdapat keyword extends, keyword extends adalah keyword yang
digunakan oleh subclass ketika melakukan pewarisan terhadap superclass,
yang disini class WakilDirektur merupakan subsclass dari class Pegawai,
class WakilDirektur adalah turunan dari Class Pegawai, jadi semua
Attribute dan Method pada class Pegawai ada pada class WakilDirektur.
Pada baris keempat terdapat konstruktor dengan nama WakilDirektur,
Konstruktor biasanya digunakan untuk menginisialisasi atau memberikan
nilai (melalui parameter) kepada sebuah objek pada saat objek pertama kali
diciptakan. Pada konstruktor WakilDirektur mempunyai parameter String
nma, int us, String bgn, String gj, String tn, String fs. Tanda kurung kurawal
buka {, digunakan untuk mengawali blok program dari konstruktor
WakilDirektur.
Pada baris kelima sampai sepuluh terdapat attribute yang berasal dari
superclass atau dari class induk Pegawai yang di masing-masing
variabelnya diinisialiasi oleh parameter dari konstruktor WakilDirektur.
Yang inisialisasinya sebagai berikut :
nama = nma;
usia = us;
bagian = bgn;
gaji = gj;
tunjangan = tn;
fasilitas = fs;
Pada baris kesebelas terdapat tanda kurung kurawal tutup }, digunakan
untuk mengakhiri blok program dari konstruktor WakilDirektur.
Pada baris ketiga belas terdapat annotasi Override.
Pada baris keempat belas sampai dua puluh terdapat sebuah method
cetakPegawai yang akan mengoverride instance method milik
superclassnya, yang disini superclassnya adalah class Pegawai. Pada baris
ini merupakan polymorfisme override, yang merupakan turunan dari method
cetakPegawai dari class induk Pegawai. Dimana harus menulis lagi nama
methodnya. Dan terdapat tanda tanda kurung kurawal buka {, digunakan
untuk mengawali blok program method cetakPegawai.
Pada baris kedua puluh satu terdapat System.out.println() yang
berfungsi untuk membuat garis baru.
Pada baris kedua puluh dua terdapat tanda kurung kurawal tutup },
digunakan untuk mengakhiri blok program dari method cetakPegawai.
Pada baris kedua puluh tiga terdapat tanda kurung kurawal tutup },
digunakan untuk mengakhiri blok program dari class WakilDirektur.
Gambar 2.4 Koding pada java class Staf
Pada baris pertama terdapat package pegawai, yang artinya java class
Staf merupakan bagian dari package pegawai.
Pada baris ketiga merupakan sebuah class dengan nama Staf dengan
modifier public yang artinya sebuah class, variable, method dan constructor
yang dideklarasikan public dapat di akses dari class manapun. Walaupun
demikian, sebuah class yang dideklarasikan public namun berbeda package,
maka class public tersebut harus di import terlebih dahulu. Dan terdapat
keyword extends, keyword extends adalah keyword yang digunakan oleh
subclass ketika melakukan pewarisan terhadap superclass, yang disini class
Staf merupakan subsclass dari class Pegawai, class Staf adalah turunan
dari Class Pegawai, jadi semua Attribute dan Method pada class Pegawai
ada pada class Staf.
Pada baris keempat terdapat konstruktor dengan nama Staf,
Konstruktor biasanya digunakan untuk menginisialisasi atau memberikan
nilai (melalui parameter) kepada sebuah objek pada saat objek pertama kali
diciptakan. Pada konstruktor Staf mempunyai parameter String nma, int
us, String bgn, String gj, String tn, String fs. Tanda kurung kurawal buka
{, digunakan untuk mengawali blok program dari konstruktor Staf.
Pada baris kelima sampai sepuluh terdapat attribute yang berasal dari
superclass atau dari class induk Pegawai yang di masing-masing
variabelnya diinisialiasi oleh parameter dari konstruktor Staf. Yang
inisialisasinya sebagai berikut :
nama = nma;
usia = us;
bagian = bgn;
gaji = gj;
tunjangan = tn;
fasilitas = fs;
Pada baris kesebelas terdapat tanda kurung kurawal tutup }, digunakan
untuk mengakhiri blok program dari konstruktor Staf.
Pada baris ketiga belas terdapat annotasi Override.
Pada baris keempat belas sampai dua puluh terdapat sebuah method
cetakPegawai yang akan mengoverride instance method milik
superclassnya, yang disini superclassnya adalah class Pegawai. Pada baris
ini merupakan polymorfisme override, yang merupakan turunan dari method
cetakPegawai dari class induk Pegawai. Dimana harus menulis lagi nama
methodnya. Dan terdapat tanda tanda kurung kurawal buka {, digunakan
untuk mengawali blok program method cetakPegawai.
Pada baris kedua puluh satu terdapat System.out.println() yang
berfungsi untuk membuat garis baru.
Pada baris kedua puluh dua terdapat tanda kurung kurawal tutup },
digunakan untuk mengakhiri blok program dari method cetakPegawai.
Pada baris kedua puluh tiga terdapat tanda kurung kurawal tutup },
digunakan untuk mengakhiri blok program dari class Staf.
Gambar 2.5 Koding main program dari java class Pegawai
Pada baris kedua puluh satu terdapat Pada baris ketujuh terdapat public
static void main(String[] args){ yang artinya adalah :
1. public, yang berarti metode ini bisa dipanggil dan digunakan didalam
Class atau diluar Class.
2. static, yang berarti memiliki sifat yang sama disemua instant Class.
3. void, yang berarti bahwa metode ini tidak mengirimkan nilai balik.
4. main adalah metode yang digunakan untuk mengawali segala bentuk
eksekusi pada program.
Di dalam metode main, terdapat String[] args, yang memiliki pengertian:
1. String[], adalah tipe data objek yang menangani serangkaian karakter-
karakter yang berjenis array.
2. args, adalah variabel objek.
Pada baris ini juga terdapat tanda kurung buka {digunakan untuk
mengawali blok program dari method static main.
Pada baris kedua puluh dua terdapat keyword new yang berfungsi untuk
membuat object baru dengan nama dir yang berfungsi untuk membuat
object dari class Direktur. Dan pada class Direktur ini terdapat parameter
yang isi parameternya nanti mengisi nilai dari class Direktur yang sudah
dibuat object barunya, nilainya nanti akan di masukan ke dalam method
cetakPegawai. Method cetakPegawai merupakan method dari class
Direktur.
Pada baris kedua puluh tiga terdapat keyword new yang berfungsi untuk
membuat object baru dengan nama wkdir yang berfungsi untuk membuat
object dari class WakilDirektur. Dan pada class WakilDirektur ini
terdapat parameter yang isi parameternya nanti mengisi nilai dari class
Direktur yang sudah dibuat object barunya, nilainya nanti akan di masukan
ke dalam method cetakPegawai. Method cetakPegawai merupakan
method dari class WakilDirektur.
Pada baris kedua puluh empat terdapat keyword new yang berfungsi
untuk membuat object baru dengan nama staf yang berfungsi untuk
membuat object dari class Staf. Dan pada class Staf ini terdapat
parameter yang isi parameternya nanti mengisi nilai dari class Staf yang
sudah dibuat object barunya. nilainya nanti akan di masukan ke dalam method
cetakPegawai. Method cetakPegawai merupakan method dari class
Direktur.
Pada baris kedua puluh enam terdapat dir.cetakPegawai()digunakan
untuk memanggil method cetakPegawai pada class Direktur yaitu untuk
menampilkan hasil dari operasi method cetakPegawai.
Pada baris kedua puluh tujuah terdapat wkdir.cetakPegawai()
digunakan untuk memanggil method cetakPegawai pada class
WakilDirektur yaitu untuk menampilkan hasil dari operasi method
cetakPegawai.
Pada baris kedua puluh delapan terdapat staf.cetakPegawai()
digunakan untuk memanggil method cetakPegawai pada class Staf yaitu
untuk menampilkan hasil dari operasi method cetakPegawai.
Pada baris kedua puluh sembilan terdapat tanda kurung kurawal tutup
}, digunakan untuk mengakhiri blok program dari method static main.
Pada baris ketiga puluh terdapat tanda kurung kurawal tutup },
digunakan untuk mengakhiri blok program dari class Pegawai.
Sebelum :
File: Suara.java
public interface Suara
{
Public voic berbicara();
Public void tidur();
}
Sesudah :
File: Suara.java
public interface Suara
{
public voic berbicara();
public void tidur();
}
Keterangan :
Pada baris pertama merupakan java interface dengan nama Suara dari
package anjing, yang memiliki modifier public. Interface itu sendiri adalah
kumpulan method secara struktur di bahasa pemrograman Java , yang
berfungsi untuk tempat menyimpan method kosong dan atribut yang bersifat
constant atau final , serta tidak mempunyai Implementasi. Kita hanya dapat
menggunakan atau mengimplementasikan (keyword : implements) interface
dengan class lain ,serta dapat mewariskan (keyword : extends ) dengan
interface yang lain.
Pada baris kedua terdapat tanda kurung kurawal buka {, digunakan
untuk mengawali blok program dari java interface Suara.
Pada baris ketiga merupakan sebuah method kosong dengan nama
berbicara yang mempunyai modifier public. Di sini modifier public semua
menggunakan huruf kecil.
Pada baris keempat merupakan sebuah method kosong dengan nama
tidur yang mempunayai modifier public. Di sini modifier public semua
menggunakan huruf kecil.
Pada baris kelima terdapat tanda kurung kurawal tutup }, digunakan
untuk mengakhiri blok program dari java interface Suara.
Sebelum :
File: Anjing.java
Public class Anjing implements Suara
{
//informasi data anjing
String warna;
float berat;
Sesudah :
public class Anjing implements Suara
{
//informasi data anjing
String warna;
float berat;
Keterangan :
Pada baris pertama terdapat class dengan nama Anjing dengan
modifier public, yang semua hurufnya harus huruf kecil semua, dan terdapat
keyword implements Suara. Disini artinya bahwa Class Anjing dapat
mengimplementasi method yang telah di deklarasikan di interface Suara
Pada baris kedua terdapat tanda kurung kurawal buka {, digunakan
untuk mengawali blok program dari class Anjing.
Pada baris ketiga merupakan sebuah komentar.
Pada baris keempat merupakan sebuah variabel dengan nama warna
yang bertipe data String, yang merupakan attribute dari class Anjing.
Pada baris kelima merupakan sebuah variabel dengan nama berat yang
bertipe data float, yang merupakan attribute dari class Anjing.
Sebelum :
public Anjing(String w, float b);
{
Warna = w;
berat = b;
}
Sesudah :
public Anjing(String w, float b);
{
warna = w;
berat = b;
}
Keterangan :
Pada baris pertama merupakan sebuah konstruktor dengan nama
Anjing yang mempunyai parameter variabel dengan namaw yang bertipe
data String, dan variabel dengan nama b yang bertipe data float.
Pada baris kedua terdapat tanda kurung kurawal buka {, digunakan
untuk mengawali blok program dari konstruktorAnjing.
Pada baris ketiga terdapat variabel warna yang berasal dari class
Anjing, nama variabel warna di sini semua menggunakan huruf kecil
karena merujuk pada variabel warna dari class Anjing. Di sini variabel
warna di beri nilai variabel w yang merupakan sebuah variabel dari
parameter konstruktor Anjing.
Pada baris keempat terdapat variabel berat yang berasal dari class
Anjing. Di sini variabel berat di beri nilai variabel b yang merupakan
sebuah variabel dari parameter konstruktor Anjing.
Pada baris kelima terdapat tanda kurung kurawal tutup }, digunakan
untuk mengakhiri blok program dari konstruktor Anjing.
Sebelum :
Public void berbicara()
{
System.out.println(Guk.gukguk);
}
Sesudah :
@Override
public void berbicara()
{
System.out.println(Guk.gukguk);
}
Keterangan :
Pada baris pertama terdapat annotasi Override, annotasi Override
melambangkan polymorfisme, yang merupakan implementasi dari java
interface Suara.
Pada baris kedua terdapat method dengan nama berbicara dengan
modifier public. Di sini tulisan modifier public semua harus huruf kecil.
Pada baris ketiga terdapat tanda kurung kurawal buka {, digunakan
untuk mengawali blok program dari method berbicara.
Pada baris keempat terdapat System.out.print("Guk.gukguk");
yang artinya adalah :
1. System.out, adalah stream yang digunakan untuk menangani keluaran
standar java.
2. Print(), merupakan metode yang digunakan untuk menampilkan teks di
layar tanpa garis baru, yang di sini menampilkan string
Guk.gukguk
3. Tanda titik koma (;), digunakan untuk mengakhiri pernyataan.
Pada baris kelima terdapat tanda kurung kurawal tutup }, digunakan
untuk mengakhiri blok program dari method berbicara.
Sebelum :
Public void tidur()
System.out.Println(zzz..zzz....zzz);
}
}
Sesudah :
@Override
public void tidur(){
System.out.Println(zzz..zzz....zzz);
}
Keterangan :
Pada baris pertama terdapat annotasi Override, annotasi Override
melambangkan polymorfisme, yang merupakan implementasi dari java
interface Suara.
Pada baris kedua terdapat method dengan nama tidur dengan modifier
public. Di sini tulisan modifier public semua harus huruf kecil. Dan di sini
ada kesalahan, tidak terdapatnya tanda kurung kurawal buka {, seharusnya
menyertakan tanda kurung kurawal buka { pada baris pertama ini, untuk
mengwali blok program dari method tidur.
Pada baris ketiga terdapat System.out.print("Guk.gukguk");
yang artinya adalah :
1. System.out, adalah stream yang digunakan untuk menangani keluaran
standar java.
2. Print(), merupakan metode yang digunakan untuk menampilkan teks di
layar tanpa garis baru, yang di sini menampilkan string zzz..zzz....zzz
3. Tanda titik koma (;), digunakan untuk mengakhiri pernyataan.
Pada baris keempat terdapat tanda kurung kurawal tutup }, digunakan
untuk mengakhiri blok program dari method tidur.
Pada baris kelima seharusnya tidak dimasukan tanda kurung kurawal
tutup } karena akan mengakhiri blog programnya, sedangkan programnya
belum selesai.
Sebelum :
public class TesSuara
{
Public static main(String args)
Anjing AirBuds = new Anjing(Coklat,20.4f)
AirBuds.berbicara;
AirBuds.tidur;
}
}
Sesudah :
public static void main (String[] args)
{
Public static main(String args)
Anjing AirBuds = new Anjing(Coklat,20.4f)
AirBuds.berbicara();
AirBuds.tidur();
}
}
Keterangan :
Pada baris pertama di sini diganti dengan method main public static void
main (String[] args) karena baris programnya masih terdapat pada java class
Anjing dan dilihat dari baris programnya untuk membuat object baru, dan
di sini membuat object baru harus di lakukan di method main yaitu public
static void main (String[] args). Seharusnya tidak membuat class baru lagi
TesSuara. Dan tulisan modifier public harus kecil semua.
Pada baris kedua terdapat tanda kurung kurawal buka {, digunakan
untuk mengawali blok program dari method main.
Pada baris ketiga terdapat keyword new yang berfungsi untuk membuat
object baru dengan nama AirBuds yang berfungsi untuk membuat object
dari class Anjing, yang mempunyai parameter dengan nilai
(Coklat,20.4f) yang nantinya nilai tersebut akan mengisi nilai dari class
Anjing yang di class Anjing terdapat konstrukor Anjing yang
mempunyai parameter, dan di parameter dari konstruktor Anjing itulah
yang akan terisi nilainya.
Pada baris keempat terdapat AirBuds.berbicara digunakan untuk
memanggil method berbicara pada class Anjing yaitu untuk
menampilkan hasil dari operasi method berbicara. Di sini ada kesalahan
yang terdapat pada AirBuds.berbicara, seharusnya menambahkan tanda
kurung buka dan tutup () karena itu melambangkan sebuah method.
Pada baris kelima terdapat AirBuds.tidur digunakan untuk memanggil
method tidur pada class Anjing yaitu untuk menampilkan hasil dari
operasi method tidur. Di sini ada kesalahan yang terdapat pada
AirBuds.tidur, seharusnya menambahkan tanda kurung buka dan tutup ()
karena itu melambangkan sebuah method.
Pada baris keenam terdapat tanda kurung kurawal tutup }, digunakan
untuk mengakhiri blok program dari method main.
Pada baris ketujuh terdapat tanda kurung kurawal tutup }, digunakan
untuk mengakhiri blok program dari class Anjing.