Anda di halaman 1dari 5

Studi Kasus Abstrak dan

Interface
Perintah:
Buatlah Kelompok terdiri dari 3-4 orang
Berdiskusilah untuk menjawab soal-soal dibawah
Diperbolehkan membuka buku atau internet sesuai dengan referensi yang
diberikan dibawah.

Abstrak
Kelas abstrak merupakan kelas yang masih belum begitu jelas jika dibuat
objek dari kelas tersebut. Sebagai contoh jika Anda diminta untuk membuat
objek dari bagun ruang dua dimensi (kelas BangunRuangDuaDime nsi).
Tentunya masing-masing dari Anda akan memiliki pikiran yang berbedabeda, ada yang mungkin membuat objek lingkaran, objek persegi, objek
segitiga, dst. Dari contoh kelas tersebut, walaupun bentuk dari objek yang
berbeda-beda, objek tersebut memiliki kesamaan sifat yaitu berbentuk dua
dimensi dan kesamaan atribut seperti memiliki luas dan keliling, memiliki
warna dan memiliki nama.
Kelas abstrak didalam java merupakan sebuah kelas yang dideklarasikan
dengan keyword abstract, seperti dibawah ini:
[modifier] abstract class ClassName{
}
Kelas abstrak tidak dapat diinstansiasi, tapi dapat diturunkan pada kelas
lain. Contoh:
//berkas : LivingThing.java
public abstract class LivingThing{
public void breath(){
System.out.println("Living Thing breathing...");
}
public void eat(){
System.out.println("Living Thing eathing...");
}
public abstract void walk();
public static void main(String args[]){
LivingThing test = new LivingThing();
}
}

Jika berkas diatas dikompile akan menghasilkan error seperti dibawah ini:

Kelas abstrak juga dapat memiliki atau mungkin tidak memiliki metode
abstrak. Jika sebuah kelas memiliki metode abstrak maka kelas tersebut
juga harus dideklarasikan sebagai kelas abtrak pula. Dalam kelas abstrak
metode abstrak hanya dideklarasikan tanpa diimplementasikan.
Implementasi metode abstrak tersebut dilakukan pada kelas turunan dari
kelas abstrak tersebut. Berikut merupakan sintaks untuk mendeklarasikan
kelas abstrak:
[modifier] abstract tipeMetode namaMetode();
Tanya: Lalu jika kita menulis metode tanpa pernyataan didalamnya
seperti dibawah ini apakah sama dengan metode abstrak?

abstract tipeMetode namaMetode(){


}
Jawab: bukan metode abstrak, metode tersebut merupakan metode
kosong
Untuk membuktikan pernyataan-pernyataan tentang kelas dan metode
abstrak, cobalah tulis dan kompilasi kode-kode dibawah ini:

Dari kelas abtrak Kendaraan akan diturunkan pada kelas Sepeda dibawah
ini. Ingat kelas abstrak hanya dapat diturunkan.

Diskusi 1
Diskusikan bersama teman Anda dan Jawab pertanyaan ini!
Setelah Anda mencoba mengkompilasi berkas Kendaraan dan Sepeda diatas,
cobalah jawab pertanyaan dibawah ini:
1. Adakah error pada kelas Kendaraan? Jika ada sebutkan berapa dan
apa saja errornya!
2. Jika terdapat error pada kelas Kendaraan, jelaskan mengapa error
tersebut terjadi?
3. Adakah error pada kelas Sepeda? Jika ada sebutkan berapa dan apa
saja errornya!
4. Jika terdapat error pada kelas Sepeda, jelaskan mengapa error tersebut
terjadi?
5. Buatlah kelas SepedaBeraksi untuk membuat objek dari kelas Sepeda
dan menghasilkan tampilkan sebagai berikut:

Interface
Sebuah interface adalah sebuah tipe referensi, seperti sebuah kelas.
Referensi dapat dianalogikan sebagai langkah-langkah yang sudah
ditentukan dalam kelas untuk melakukan sesuatu tanpa menentukan cara
melakukan langkah langkah tersebut. Sebagai contoh terdapat saklar untuk
menghidupkan lampu. Ada berbagai macam bentuk saklar dan cara
menggunakannya. Cara penggunaan saklar ini yang disebut dengan
interface, sedangkan bagaimana cara kerja saklar tersebut kita tidak perlu
tahu, yang terpenting adalah bagaimana lampu dapat hidup dan menyala.

Dalam java interface hanya berisi konstanta dan metode abstrak. Interface
dapat dikatakan memiliki sifat 100% kelas abstrak. Berikut merupakan cara
mendeklarasikan interface dan tubuh interface dalam java:
[public] interface NamaInterface{
//cara menulis konstanta
[public static final] tipeKonstanta namaKonstanta= nilaiKonstanta;

//cara menulis metode


[public abstract] tipeMetode namaMetode();
}
NB:
kata kunci [public static final] pada konstanta dan [public
abstract] pada metode boleh tidak dituliskan karena secara otomatis akan
dideklarasikan oleh interface.
Sama seperti kelas abstrak, interface juga tidak dapat diinstansiasi. Interface
hanya dapat diimplementasikan pada kelas atau diturunkan pada interface
yang lain.
Untuk lebih memahami tentang interface cobalah tulis dan kompilasi kodekode dibawah ini:

Kedua interface diatas akan diimplementasikan pada kelas Handphone


dengan kata kunci implements.

Diskusi 2
Diskusikan bersama teman Anda dan Jawab pertanyaan ini!
Setelah Anda mencoba mengkompilasi ketiga diatas, cobalah jawab
pertanyaan dibawah ini:
1. Adakah error pada kelas InterfaceKamera? Jika ada sebutkan berapa
dan apa saja errornya!
2. Jika terdapat error, jelaskan mengapa error tersebut terjadi?
3. Adakah error pada kelas InterfaceRadio? Jika ada sebutkan berapa dan
apa saja errornya!
4. Jika terdapat error, jelaskan mengapa error tersebut terjadi?
5. Adakah error pada kelas Handphone? Jika ada sebutkan berapa dan
apa saja errornya!
6. Jika terdapat error, jelaskan mengapa error tersebut terjadi?
7. Buatlah kelas HandphoneDemo untuk membuat objek dari kelas
Handphone dan menghasilkan tampilkan sebagai berikut:

Referensi:
http://docs.oracle.com/javase/tutorial/java/IandI/index.html
Abdul Kadir: Dasar Pemrograman Java 2
http://ilmukomputer.org/

Anda mungkin juga menyukai