BERORIENTASI OBJEK
Disusun Oleh:
NAMA : Yoza dwiky ramadhan
NIM : 215610023
JURUSAN : SISTEM INFORMASI
JENJANG : S1
2022
PERTEMUAN KE – 10
(INTERFACE)
A. TUJUAN
Pada pratktikum modul 10 ini maahsis dapat belejar membuat dan menggunakan
interface pada aplikasi text editor.
B. TEORI SINGKAT
Interface adalah kelas yang benar-benar abstrak, artinya hanya berisi deklarasi
method dan (jika ada) konstanta saja. Method-method tersebut nantinya harus
diimplementasikan pada real class. Interface dapat dianalogikan seperti menandatangani
kontrak kerja. Misalnya seorang dosen wajib mengajar, membuat soal, dsb, akan tetapi cara
mengajar dan membuat soalnya diserahkan ke masing-masing dosen (tidak ditentukan
dalam kontrak kerja).
Sebagai contoh : Dalam kehidupan nyata dapat diketahui ada manusia yang bekerja
sebagai tentara, penyanyi, pengacara, dan sebagainya, tentunya manusia-manusia tersebut
selain harus memiliki method standard sebagai seorang manusia, juga harus memiliki
method yang sesuai dengan pekerjaannya. Dengan demikian untuk membuat objek
manusia yang bekerja sebagai penyanyi, harus dibuat kelas yang merupakan turunan kelas
manusia yang meng-implementasikan interface penyanyi. Delarasi interface :
Pewarisan merupakan proses penurunan field dan method dari suatu kelas induk
kepada satu/lebih subkelas. Seringkali dibutuhkan suatu kelas yang field dan methodnya
berasal dari lebih dari satu kelas induk (pewarisan jamak). Pewarisan jamak memang
mempercepat dalam pembuatan kelas. Tetapi mempunyai beberapa kelemahan diantaranya
adalah terjadi ambiguitas karena adanya method yang sama yang diturunkan dari beberapa
kelas induk.
C. PRAKTIK
1. Interface Bangun2D
Interface Bangun2D memiliki 2 method, yaitu : hitung_Luas() dan
hitung_Keliling(). Kelas Lingkaran yang mengimplementasikan interface
Bangun2D harus membuat definisi untuk kedua method tersebut.
interface Bangun2D
{
public double hitungLuas();
public double hitungKeliling();
}
class Lingkaran implements Bangun2D
{
private double jejari; public void setJejari(double
jejari)
{
this.jejari=jejari;
}
public double getJejari()
{
return this.jejari;
}
class TestLingkaran
{
public static void main(String[] args)
{
Lingkaran bunder = new Lingkaran();
bunder.setJejari(10);
System.out.println("Keliling lingkaran
dengan jejari "+bunder.getJejari()+" adalah
"+keliling);
}
}
Dari contoh penggunaan interface di atas jelaskan maksud dari hasil program
tersebut :
Code program
Output
Penjelasan : Dari contoh penggunaan interface di atas jelaskan maksud dari
hasilprogram tersebut Praktek 1 merupakan program Interface Bangun2D. Pada
program pertama yang digunakan untuk mendeklarasikan saja dengan memiliki 2
method yaitu method hitung_Luas() dan method hitung_Keliling(). Pada baris ke
5 yaitu dengan nama kelas Lingkaran yang digunakan untuk menjalankan perintah
dan menampilkan outputnya. Pada pendeklarasian interface biasanya ditandai
dengan adanya keyword “interface” pada awal program, lalu pada program
pertama terdapat tipe data double yaitu tipe data yang digunakan untuk menghitung
angka pecahan (dalam bentuk koma). Lalu pada progam 2 merupakan kelas
turunan dari program kedua dengan nama kelas TestLingkaran yang digunakan
untuk menjalankan perintah dan mengeluarkan outputnya, sehingga dapat
ditampilkan output seperti pada gambar diatas (gambar output ke 2) yaitu
menampilkan hasil menghitung luas lingkaran dan kelilinglingkaran dengan jari –
jari 10 dan menggunakan rumus yang sesuai dengan rumus yang di inputkan pada
program yaitu pada baris 14 yaitu return (3.14 * this.jejari * this.jejari); yaitu
rumus yang digunakan untuk menghitung luas lingkaran dan baris 17 yaitu return
(2 * 3.14 * this.jejari); yaitu rumus yang digunakan untuk menghitung keliling
lingkaran.
class Parent
{
private int value; public Parent(int value )
{
this.value = value;
}
public int getValue()
{
return this.value;
}
}
class TestInherInterface
{
public static void main(String[] arg)
{
Child anak = new Child(5);
anak.func();
System.out.println("nilai dari method
getValue:"+anak.getValue());
}
}
Dari contoh penggunaan interface di atas jelaskan maksud dari hasil program
tersebut
Code program
Output
3. Multiple interface
interface Interface1
{
public void tampilInfo();
public void setInfo(String info);
}
interface Interface2
{
public void cetakInfo();
}
Dari contoh penggunaan interface di atas jelaskan maksud dari hasil program
tersebut :
Code program
Output
Penjelasan : Dari contoh penggunaan interface di atas jelaskan maksud dari hasil
program tersebut Praktik 3 merupakan program Multiple interface. Pada praktikum
diatas yaitu program Multiple Interface yaitu program dimana terdapat lebih dari1
Interface di dalamnya. Program tersebut memiliki nama kelas Interface1 yang
berfungsisebagai program utama atau untuk mendeklarasikan dan Interface 2 yang
berfungsi sebagai program untuk menjalankan perintah – perintah. Ada dua
Interface masing – masing mendeklarasikan method abstracknya, interface satu
terdapat dua dan interface dua terdapat 1.Bila di extend bisa satu kelas dan bila
implementasi bisa lebih dari satu kelas. Kelas ini mengimplementasikan setInfo,
tampilInfo, dan cetakInfo. Kelas ini bisa mengimplementasikan dua interface, jadi
seolah olah pewarisan jamak (lebih dari 1 interface), interface 1 dan 2 mewariskan
ke 1 kelas yaitu multi interface. Pada program diatas nama method setInfo (“Hai”);
yang menampilkan kata “Hai” pada outputnya dan pada method tampilInfo();
digunakan untuk menampilkan output pada bagian tampilInfo, yang berisi kalimat
“ini info dari method tampilInfo”.
D. LATIHAN
1. Gambarkan class diagram untuk program pada praktek 1!
2. Buatlah program Java yang mengimplementasikan multiple interface seperti
diagram kelas berikut,
interface Bangun_2D
{
public double hitungLuas();
public double hitungKeliling();
}
interface Bangun3D
{
public double hitungVolume();
public String tampilInfo();
}
interface Pola
{
public void setWarna(String warna);
public String getWarna();
}
Code program
Output
E. TUGAS
1. Jelaskan perbedaan antara kelas abstrak dan interface!
Kelas abstrak dapat mengandung method abstrak maupun yang tidak
abstrak, sedangkan interface hanya dapat mengandung method abstrak.
Kelas abstrak dapat mengandung variabel instan sedangkan interface
hanya mendefinisikan konstanta.
F. KESIMPULAN
Pada praktikum modul pertemuan ke-10 ini yang dimana membahas tentang
Interface yang dimana interface tersebut adalah kelas yang benar-benar abstrak, artinya
hanya berisi deklarasi method dan (jikaada) konstanta saja. Method-method tersebut
nantinya harus diimplementasikan pada real class.Interface mendefinisikan suatu protokol
perilaku tanpa dipusingkan dengan implementasinya.Suatu kelas yang
mengimplementasikan interface maka pada kelas tersebut akan melekat perilaku yang
didefinisikan interface. Interface mendefinisikan aturan perilaku (protocol of behavior)
yang dapat diimplementasikan oleh kelas manapun. Interfacemendefinisikan satu set
method tanpa menyediakan implementasinya.