Anda di halaman 1dari 11

LAPORAN PRAKTIKUM

PEMROGRAMAN BERORIENTASI OBJEK


PERTEMUAN – 10

Disusun Oleh :
NAMA : ANNISA SALSABILA
NIM : 185410070
JURUSAN : TEKNIK INFORMATIKA

STMIK AKAKOM
YOGYAKARTA
2019
A. TUJUAN
Mahasiswa dapat membuat dan menggunakan kelas asbtrak.

B. DASAR TEORI
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.
Deklarasi 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
}

Interface memiliki kemiripan dengan kelas abstrak, di mana keduanya memuat method abstrak.
Perbedaan penting antara interface dan kelas abstrak adalah :
ntasi satu method pun, sementara kelas abstrak
dapat membuat implementasi satu atau lebih method abstrak.
-extends
satu superclass.
hirarki kelas. Dua kelas yang tidak berhubungan dalam
jalur hirarki kelas dapat mengimplementasi interface yang sama.

Deklarasi Interface
Misalkan ada sekumpulan obyek yang memiliki kemampuan yang sama, yaitu mereka semua
dapat terbang. Untuk itu dapat dibuatkan sebuah interface publik, yang dinamakan Flyer, yang
memiliki tiga operasi takeOff, land, dan fly.

Penggunaan Interface
Biasanya interface digunakan untuk:

kan interface sebuah obyek ke publik tanpa menunjukkan isi kelas sebenarnya.
kelas (superclass - subclass).
rasikan kelas yang
mengimplementasikan beberapa interface sekaligus.

C. PRAKTIK
PRAKTIK 1 : Interface Bangun2D

Pembahasan :
Pada praktik diatas yaitu program Interface Bangun2D yang digunakan untuk menghitung luas
lingkaran dan keliling lingkaran dengan jari – jarinya. Program tersebut mempunyai nama kelas
Bangun2D pada program pertama yang digunakan untuk mendeklarasikan saja, dan program
kedua dengan nama kelas Lingkaran yang digunakan untuk menjalankan perintah dan
menampilkan outputnya. Pendeklarasian interface ditanyai dengan adanya keyword “interface”
pada awal program, lalu pada program pertama terdapat tipe data double yaitu tipe data yang
digunakan untuk emnghitung pecahan (dalam bentuk koma). Lalu pada baris ke 32 merupakan
kelas turunan dari program kedua yang digunakan untuk menjalankan perintah dan
mengeluarkan outputnya. Outputnya seperti diatas, menghitung luas lingkaran dan keliling
lingkaran dengan jari – jari, sesuai dengan rumus yang dimasukkan pada awal program.

PRAKTIK 2 : Kombinasi antara turunan satu kelas dan interface


Pembahasan :
Pada program diatas 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 dan
MProvides. Karena mengimplementasikan dua interface jadi ada dua fungsi. Pada baris ke 53
merupakan kelas dengan nama TestInherInterface yang digunakan untuk mengeluarkan output
dari perintah – perintah di atasnya. Outputnya mengimplementasikan sebuah interface tidak
harus semua methodnya diimplementasikan. Outputnya seperti diatas yaitu :
Nilai dari method func : 5
Nilai dari method getValue : 5
PRAKTIK 3 : Multiple Interface

Pada praktikum diatas yaitu program Multiple Interface yaitu program dimana terdapat lebih dari
1 Interface di dalamnya. Program tersebut memiliki nama kelas Interface1 yang berfungsi
sebagai program utama atau untuk mendeklarasikan dan Interface2 yang berfungsi sebagai
program untuk menjalankan perintah – perintah. Ada dua Interface masing - masing
mendeklarasikan method abstrack nya, 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 pada baris ke 35 dengan nama
method setInfo(“Hai”); yang menampilkan kata “Hai” pada outputnya dan pada baris ke 36
terdapat method tampilInfo(); yang 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 2!
2. Buatlah program Java yang mengimplementasikan multiple interface seperti diagram kelas
berikut,
E. TUGAS
Jelaskan perbedaan antara kelas abstrak dan interface!

Jawab :
Kelas Abstrak
Kelas Abstrak adalah kelas yang tidak dapat dibuat obyeknya (diinstantiasi). Hal ini dikarenakan
kelas tersebut belum lengkap karena memiliki minimal satu buah method yang tidak mempunyai
definisi, hanya berupa deklarasi saja. Agar dapat diinstantiasi maka kelas turunannyalah yang
harus membuat implementasinya (membuat definisi dari method yang belum lengkap tadi).
Sebelum semua method dibuat definisinya, maka kelas yang mewarisi kelas abstrak juga tidak
dapat diinstantiasi, artinya menjadi kelas abstrak juga. Biasanya suatu kelas dijadikan abstrak
karena kelas tersebut terlalu umum.
Interface
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 mendefinisikan suatu protokol perilaku tanpa dipusingkan dengan implementasinya.
Suatu kelas yang mengimplementasikan interface maka pada kelas tersebut akan melekat
perilaku yang didefinisikan interface.

F. KESIMPULAN
Pada pertemuan kali ini dapat disimpulkan bahwa Interface mendefinisikan aturan perilaku
(protocol of behavior) yang dapat diimplementasikan oleh kelas manapun. Interface
mendefinisikan satu set method tanpa menyediakan implementasinya. Sebuah kelas yang
mengimplementasi sebuah interface terikat kontrak oleh interface tersebut untuk
mengimplementasi semua method yang ada di dalam interface, namun apabila kita ingin
membuat salah satu method tidak ter-implementasikan maka wajib membuat abstrak keyword
dikelas tersebut. Dengan kata lain, kelas tersebut terikat untuk mengimplementasikan perilaku
tertentu yang tertulis dalam interface. Secara substansi, interface merupakan kumpulan dari
method abstrak dan konstanta.

G. LISTING
Terlampir

Anda mungkin juga menyukai