Anda di halaman 1dari 17

LAPORAN PRAKTIKUM PEMROGRAMAN

BERORIENTASI OBJEK

Disusun Oleh:
NAMA : Yoza dwiky ramadhan
NIM : 215610023
JURUSAN : SISTEM INFORMASI
JENJANG : S1

FAKULTAS TEKNOLOGI INFORMASI


UNIVERSITAS TEKNOLOGI DIGITAL INDONESIA
YOGYAKARTA

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

Interface mendefinisikan suatu protokol perilaku tanpa dipusingkan dengan


implementasinya. Suatu kelas yang mengimplementasikan interface maka pada kelas
tersebut akan melekat perilaku yang didefinisikan interface.

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 :

[modifier] interface NamaInterface


{
deklarasi konstanta; deklarasi method-method;
}
Implementasi kemudian dilakukan pada class lainnya:
[modifier] class NamaKelas implements NamaInterface
{
definisi method-method;

}

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.

Java tidak mengijinkan pewarisan jamak. Sebagai gantinya java menggunakan


interface. Terdapat 2 jenis penyelesaian masalah pewarisan jamak di java, yaitu :
1. Kombinasi antara turunan satu kelas dan interface
[modifier] class NamaKelas extends NamaKelasInduk implements NamaInterface
{
//isi kelas
}

2. Dengan implementasi multiple interface


[modifier] class NamaKelas implements NamaInterface1, NamaInterface2, …
{
//isi kelas
}
Suatu Interface dapat diperluas menjadi Interface baru yang lebih lengkap.
[modifier] interface NamaInterface2 extends NamaInterface1
{
//daftar konstanta dan method
}

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;
}

public double hitungLuas()


{
return (3.14 * this.jejari *
this.jejari);
}

public double hitungKeliling()


{
return (2 * 3.14 * this.jejari);
}
}

class TestLingkaran
{
public static void main(String[] args)
{
Lingkaran bunder = new Lingkaran();
bunder.setJejari(10);

double luas = bunder.hitungLuas();

double keliling = bunder.hitungKeliling();

System.out.println("Luas lingkaran dengan


jejari "+bunder.getJejari()+"adalah "+luas);

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.

2. Kombinasi antara turunan satu kelas dan interface


interface MProvides
{
void func();
}
interface MRequires
{
int getValue();
}

class Mixin implements MProvides


{
private final MRequires parent;
public Mixin(MRequires parent)
{
this.parent = parent;
}
public void func()
{
System.out.println("Nilai dari method func: " +
parent.getValue());
}
}

class Parent
{
private int value; public Parent(int value )
{
this.value = value;
}
public int getValue()
{
return this.value;
}
}

class Child extends Parent implements MRequires, MProvides


{
private final MProvides mixin; public Child(int value)
{
super(value);
this.mixin = new Mixin(this);
}
public void func()
{
mixin.func();
}
}

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

Penjelasan : Dari contoh penggunaan interface di atas jelaskan maksud dari


hasilprogram tersebut Praktik 2 merupakan program kombinasi antara turunan satu
kelas dan interface. Program pertama mempunyai nama kelas MProvides dan
MRequires. Lalu terdapat kelas dengan nama Mixin dengan implementasi dari
kelas MProvides, lalu terdapat juga kelas Parent yang mempunyai hak akses
private, lalu terdpat juga kelas Child yang merupakan turunan (extends)dari kelas
parents yang mengimplementasikan dari kelas MRequires dan MProvides. Class
child turunan dari class parent dan mengimplementasikan dua interface yaitu
MRequires danMProvides. Mengimplementasikan dua interface maka terdapat
dua fungsi. Pada program ke 2 merupakan program degan nama kelas
TestInherInterface yang digunakan untuk mengeluarkan outputdari perintah –
perintah di atasnya. Mengimplementasikan sebuah interface tidak harus semua
methodnya diimplementasikan. Maka outputnya seperti pada gambar di atas yaitu
Nilai dari method func : 5 dan Nilai dari method getValue : 5.

3. Multiple interface
interface Interface1
{
public void tampilInfo();
public void setInfo(String info);
}

interface Interface2
{
public void cetakInfo();
}

public class MultiInterfaces implements Interface1,


Interface2
{
private String info;
public void setInfo(String info)
{
this.info = info;
}

public void tampilInfo()


{
System.out.println(this.info+": ini info
dari method tampilInfo");
}

public void cetakInfo()


{
System.out.println(this.info+": ini info dari method
cetakInfo");
}

public static void main(String[] a)


{
MultiInterfaces t = new MultiInterfaces();
t.setInfo("Hai"); t.tampilInfo();
}
}

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();
}

class Lingkaran implements Bangun_2D


{
public int jari;
public void jari(int jari)
{
this.jari=jari;
}
public double hitungLuas()
{
return (3.14 * this.jari * this.jari);
}
public double hitungKeliling()
{
return (2*3.14*this.jari);
}
}

interface Bangun3D
{
public double hitungVolume();
public String tampilInfo();
}

interface Pola
{
public void setWarna(String warna);
public String getWarna();
}

public class Tabung extends Lingkaran implements


Bangun3D,Pola
{
public int tinggi;
public String warna;
public void setTinggi(int tinggi)
{
this.tinggi=tinggi;
}

public double hitungVolume()


{
return (super.hitungLuas()*this.tinggi);
}

public void setWarna(String warna)


{
this.warna=warna;
}

public String getWarna()


{
return this.warna;
}

public String tampilInfo()


{
String info="Volume tabung dengan warna
"+getWarna()+" mempunyaivolume " +
hitungVolume();
return info;
}

public static void main(String agrs[])


{
Tabung x = new Tabung();
x.jari(30);
x.setTinggi(40);
x.setWarna("biru");
System.out.println(x.tampilInfo());
}
}

Code program
Output

Penjelasan : Pada program tugas ini merupakan program yang


mengimplementasikan Multiple inheritance. Multiple inheritance adalah
pewarisan sifat terhadap dua atau lebih kelas. Pada dasarnya Java tidak
mengizinkan sebuah kelas melakukan extends terhadap dua kelas sekaligus.
Multiple inheritance pada Java dilakukan dengan meng-extends sebuah kelas
ditambah implementasi satu atau lebih interface.

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.

Anda mungkin juga menyukai