Anda di halaman 1dari 38

Laporan Praktikum Pemrograman Berorientasi Objek

Abstraction & Interface

Nama Mahasiswa : Ardiah Pramesty Cahyani


NIM : 2055301016
Dosen Pengampu : Erzi Hidayat, S.T., M.Kom.
AIL : Endah Chilfani, S. S. T

Program Studi D4- Teknik Informatika


Jurusan Teknologi Informasi
Politeknik Caltex Riau
TA 2020/2021
Abstraction & Interface
A. Tujuan Pembelajaran
Tujuan Pembelajaran pada praktikum ke 4 adalah:
1. Mahasiswa mampu menggunakan konsep abstraction dan di implementasikan da-
lam pembuatan program.
2. Mahasiswa mampu menggunakan konsep interface dan di implementasikan dalam
pembuatan program.

B. Alat dan Bahan Pembelajaran


Alat dan bahan yang digunakan selama Praktikum sebagai berikut:
1. Netbeans 8.2 dan JDK
2. Laptop
3. Google Classroom
4. Modul Praktikum VIII (Abstraction & Interface)

C. Landasan Teori
Abstract Class adalah sebuah class yang tidak bisa di-instansiasi (tidak bisa dibuat
menjadi objek) dan berperan sebagai ‘kerangka dasar’ bagi class turunannya. Di da-
lam abstract class umumnya akan memiliki abstract method. Abstract Method adalah
sebuah ‘method dasar’ yang harus di implementasikan ulang di dalam class anak (child
class). Abstract method ditulis tanpa isi dari method, melainkan hanya ‘signature’-nya
saja. Signature dari sebuah method adalah bagian method yang terdiri dari nama
method dan parameternya (jika ada). Abstract class digunakan di dalam inher-
itance (pewarisan class) untuk ‘memaksakan’ implementasi method yang sama bagi
seluruh class yang diturunkan dari abstract class. Abstract class digunakan untuk
membuat struktur logika penurunan di dalam pemrograman objek.

Interface merupakan penghubung antar objek. Interface bersifat abstrak, sehingga ob-
jek yang menggunakannya tidak akan perduli bagaimana ia diimplementasikan. Karena
bersifat abstrak, interface tidak bisa dibuat objek instance dengan kata kunci new . in-
terface ini merupakan kumpulan dari method abstract. Sedangkan class yang
mengimplementasikan interface akan mewarisi method abstract dari interface tersebut.
Tujuan utama dari interface ini adalah untuk menetapkan perilaku umum dari suatu
class yang terkait ataupun tidak terkait. Interface juga tidak bisa mengimplementasikan
method, melainkan hanya berisi signature yaitu nama, parameter, dan exceptions dari
method.

D. Studi Kasus / Modul


Contoh • Analisa
Class Animal yang berada di dalam
• Screenshot syntax class Animal package Praktikum_PBO_8
merupakan sebuah abstract class.
Abstract class adalah sebuah class
yang tidak memiliki objek. Ab-
stract class diawali dengan key-
word “abstract”, abstract class
dapat berisi abstract method seperti
yang terlihat pada source code
disamping yaitu abstract void
• Output
makeSound();. Abstract class
pada source code di samping juga
memiliki non abstract method yaitu
public void eat(). Lalu abstract
method pada abstract class wajib di
override oleh subclass. Method
override/overriding ini dilakukan
saat user ingin membuat ulang se-
buah method pada subclass atau
class anak. Nah pada source code di
samping yang bertindak sebagai
subclass / class anak adalah class
Dog yang menerima penurunan
dari class Animal.
Kemudian terdapat class Main
yang merupakan sebuah class im-
plementasi / class driver yang berisi
main method dimana keberadaan
main method pada class Main ini
berfungsi agar code program yang
ada pada class prototype atau class
yang tidak memiliki main method
dapat di run-kan / dapat di
eksekusi. Untuk mengeksekusi
code program yang berada pada
class prototype, terlebih dahulu
user harus melakukan pembuatan
sebuah object baru pada class ini.
Karena object yang dibuat oleh
user akan digunakan pada saat
pemanggilan method-method yang
berada pada class prototype se-
hingga akan menampilkan output
yang sesuai.
Percobaan 1
• Screenshot syntax class Pola

• Output

• Screenshot syntax class


PersegiPanjang
• Analisa class Pola
Class Pola yang berada di dalam
package Praktikum_PBO_8
merupakan sebuah abstract class.
Abstract class adalah sebuah class
• Screenshot syntax class Segitiga
yang tidak memiliki objek. Dida-
lam class ini terdapat sebuah Mod-
ifier Private, Modifier private ini
menunjukkan bahwa suatu class,
method atau variabel hanya dapat
• Screenshot syntax class Ling- diakses dari dalam kelas terse-
karan
but. modifier ini biasanya
digunakan untuk kelas, method,
atau variabel yang memang ingin
disimpan atau tidak dapat
digunakan oleh kelas yang lain.
Kemudian pada source code di
• Screenshot syntax class Demo
samping terdapat abstract method
yaitu public abstract double
getLuas(). Pada class ini terdapat
sebuah method toString yang Di dalam class PersegiPanjang ter-
digunakan ketika user memerlukan dapat 2 method yaitu getLuas dan
untuk merepresentasikan objek toString. Lalu pada class
apapun dalam tipe string. Selain itu PersegiPanjang ini juga terdapat
pada class Pola juga terdapat key- sebuah constructor yaitu
word “return” yang berfungsi un- PersegiPanjang dengan parameter
tuk mengembalikan sebuah nilai. panjang dan lebar.
Class Pola bertindak sebagai class Kemudian terdapat method over-
induk / super class / class parent ride, Method override/overriding
yang merupakan class yang akan ini dilakukan saat user ingin mem-
diturunkan kepada class anak / sub- buat ulang sebuah method pada
class. subclass atau class anak. Dan juga
• Analisa class PersegiPanjang terdapat keyword “this” ada-
Class PersegiPanjang yang berada lah keyword pada bahasa pem-
di dalam package Prak- rograman java yang berfungsi un-
tikum_PBO_8 merupakan sebuah tuk mereferensikan atau mengacu
class anak / child class / subclass ke objek yang sedang aktif.
yang akan menerima penurunan
• Analisa class Segitiga
dari class induk yaitu class Pola. Class Segitiga yang berada di da-
Class anak ditandai dengan adanya lam package Praktikum_PBO_8
keyword “extends” pada saat pen- merupakan sebuah class anak /
deklarasian class. Extends pada child class / subclass yang akan
java digunakan untuk memanggil menerima penurunan dari class in-
fungsi dari class yang lain, se- duk yaitu class Pola. Class anak
hingga user tidak perlu lagi mem- ditandai dengan adanya keyword
buat script yang sama pada class “extends” pada saat pendeklarasian
yang akan user buat dengan class class. Extends pada java
yang sudah user buat sebelumnya. digunakan untuk memanggil fungsi
dari class yang lain, sehingga user
tidak perlu lagi membuat script class. Extends pada java
yang sama pada class yang akan digunakan untuk memanggil fungsi
user buat dengan class yang sudah dari class yang lain, sehingga user
user buat sebelumnya. tidak perlu lagi membuat script
Di dalam class Segitiga terdapat 2 yang sama pada class yang akan
method yaitu getLuas dan user buat dengan class yang sudah
toString. Lalu pada class user buat sebelumnya.
PersegiPanjang ini juga terdapat Di dalam class Lingkaran terdapat
sebuah constructor yaitu Segitiga 2 method yaitu getLuas dan
dengan parameter alas dan tinggi. toString. Lalu pada class
Kemudian terdapat method over- PersegiPanjang ini juga terdapat
ride, Method override/overriding sebuah constructor yaitu Ling-
ini dilakukan saat user ingin mem- karan dengan parameter yaitu r.
buat ulang sebuah method pada Kemudian terdapat method over-
subclass atau class anak. Dan juga ride, Method override/overriding
terdapat keyword “this” ada- ini dilakukan saat user ingin mem-
lah keyword pada bahasa pem- buat ulang sebuah method pada
rograman java yang berfungsi un- subclass atau class anak. Dan juga
tuk mereferensikan atau mengacu terdapat keyword “this” ada-
ke objek yang sedang aktif. lah keyword pada bahasa pem-
• Analisa class Lingkaran rograman java yang berfungsi un-
Class Lingkaran yang berada di da- tuk mereferensikan atau mengacu
lam package Praktikum_PBO_8 ke objek yang sedang aktif.
merupakan sebuah class anak /
• Analisa class Demo
child class / subclass yang akan Class Demo merupakan class im-
menerima penurunan dari class in- plementasi yang ada di dalam pack-
duk yaitu class Pola. Class anak age Praktikum_PBO_8. Class im-
ditandai dengan adanya keyword plementasi / class driver merupa-
“extends” pada saat pendeklarasian kan class yang berisi main method
dimana keberadaan main method terlebih dahulu user harus
pada class Demo ini berfungsi agar melakukan pembuatan sebuah ob-
code program yang ada pada class ject baru pada class ini. Karena ob-
prototype atau class yang tidak ject yang dibuat oleh user akan
memiliki main method dapat di digunakan pada saat pemanggilan
run-kan / dapat di eksekusi. Untuk method-method yang berada pada
mengeksekusi code program yang class prototype sehingga akan men-
berada pada class prototype, ampilkan output yang sesuai.
Percobaan 2 • Screenshot syntax class Demo-
Hewan
• Screenshot syntax class Hewan

• Output

• Screenshot syntax class Burung

• Analisa class Hewan


Class Hewan yang berada di dalam
package Praktikum_PBO_8
merupakan sebuah abstract class.
• Screenshot syntax class Kucing Abstract class adalah sebuah class
yang tidak memiliki objek. Dida-
lam class ini terdapat sebuah Mod-
ifier Private, Modifier private ini
menunjukkan bahwa suatu class,
method atau variabel hanya dapat
• Screenshot syntax class Anjing
diakses dari dalam kelas terse-
but. modifier ini biasanya
digunakan untuk kelas, method,
atau variabel yang memang ingin
disimpan atau tidak dapat
• Screenshot syntax class Kamb- digunakan oleh kelas yang lain.
ing
Lalu pada class Hewan ini juga ter-
dapat sebuah constructor yaitu He-
wan dengan parameter jenis. Dan
juga terdapat keyword “this”
adalah keyword pada bahasa ditandai dengan adanya keyword
pemrograman java yang berfungsi “extends” pada saat pendeklarasian
untuk mereferensikan atau class. Extends pada java
mengacu ke objek yang sedang ak- digunakan untuk memanggil fungsi
tif. Kemudian pada source code di dari class yang lain, sehingga user
samping terdapat abstract method tidak perlu lagi membuat script
yaitu protected abstract void yang sama pada class yang akan
suara(). Pada class ini terdapat se- user buat dengan class yang sudah
buah method toString yang user buat sebelumnya.
digunakan ketika user memerlukan Didalam class ini terdapat sebuah
untuk merepresentasikan objek Modifier Private, Modifier pri-
apapun dalam tipe string. Selain itu vate ini menunjukkan bahwa suatu
pada class Pola juga terdapat key- class, method atau variabel hanya
word “return” yang berfungsi un- dapat diakses dari dalam kelas ter-
tuk mengembalikan nilai secara sebut. modifier ini biasanya
langsung atau sebuah nilai dari var- digunakan untuk kelas, method,
iable. atau variabel yang memang ingin
Class Hewan bertindak sebagai disimpan atau tidak dapat
class induk / super class / class par- digunakan oleh kelas yang lain.
ent yang merupakan class yang Lalu pada class Burung ini juga ter-
akan diturunkan kepada class anak dapat sebuah constructor yaitu Bu-
/ subclass. rung dengan parameter nama.
• Analisa class Burung Kemudian ada juga keyword “su-
Class Burung yang berada di dalam per” yang berfungsi sebagai varia-
package Praktikum_PBO_8 ble referensi class , yang digunakan
merupakan sebuah class anak / untuk rujukan dari Super Class atau
child class / subclass yang akan Parent class dalam hal ini class
menerima penurunan dari class in-
duk yaitu class Hewan. Class anak
Hewan. User dapat menampatkan “extends” pada saat pendeklarasian
keyword super pada Variable , class. Extends pada java
Method dan juga Constructor . digunakan untuk memanggil fungsi
Dan juga terdapat keyword dari class yang lain, sehingga user
“this” adalah keyword pada ba- tidak perlu lagi membuat script
hasa pemrograman java yang ber- yang sama pada class yang akan
fungsi untuk mereferensikan atau user buat dengan class yang sudah
mengacu ke objek yang sedang ak- user buat sebelumnya.
tif. Didalam class ini terdapat sebuah
Kemudian terdapat method over- Modifier Private, Modifier pri-
ride, Method override/overriding vate ini menunjukkan bahwa suatu
ini dilakukan saat user ingin mem- class, method atau variabel hanya
buat ulang sebuah method pada dapat diakses dari dalam kelas ter-
subclass atau class anak. Di dalam sebut. modifier ini biasanya
class Burung terdapat 2 method digunakan untuk kelas, method,
yaitu suara dan toString. Selain atau variabel yang memang ingin
itu pada class Burung juga terdapat disimpan atau tidak dapat
keyword “return” yang berfungsi digunakan oleh kelas yang lain.
untuk mengembalikan nilai secara Lalu pada class Kucing ini juga ter-
langsung atau sebuah nilai dari var- dapat sebuah constructor yaitu
iable. Kucing dengan parameter nama.
• Analisa class Kucing Kemudian ada juga keyword “su-
Class Kucing yang berada di dalam per” yang berfungsi sebagai varia-
package Praktikum_PBO_8 ble referensi class , yang digunakan
merupakan sebuah class anak / untuk rujukan dari Super Class atau
child class / subclass yang akan Parent class dalam hal ini class He-
menerima penurunan dari class in- wan. User dapat menampatkan
duk yaitu class Hewan. Class anak keyword super pada Variable ,
ditandai dengan adanya keyword
Method dan juga Constructor . digunakan untuk memanggil fungsi
Dan juga terdapat keyword dari class yang lain, sehingga user
“this” adalah keyword pada ba- tidak perlu lagi membuat script
hasa pemrograman java yang ber- yang sama pada class yang akan
fungsi untuk mereferensikan atau user buat dengan class yang sudah
mengacu ke objek yang sedang ak- user buat sebelumnya.
tif. Didalam class ini terdapat sebuah
Kemudian terdapat method over- Modifier Private, Modifier pri-
ride, Method override/overriding vate ini menunjukkan bahwa suatu
ini dilakukan saat user ingin mem- class, method atau variabel hanya
buat ulang sebuah method pada dapat diakses dari dalam kelas ter-
subclass atau class anak. Di dalam sebut. modifier ini biasanya
class Kucing terdapat 2 method digunakan untuk kelas, method,
yaitu suara dan toString. Selain atau variabel yang memang ingin
itu pada class Kucing juga terdapat disimpan atau tidak dapat
keyword “return” yang berfungsi digunakan oleh kelas yang lain.
untuk mengembalikan nilai secara Lalu pada class Anjing ini juga ter-
langsung atau sebuah nilai dari var- dapat sebuah constructor yaitu Bu-
iable. rung dengan parameter nama.
• Analisa class Anjing Kemudian ada juga keyword “su-
Class Anjing yang berada di dalam per” yang berfungsi sebagai varia-
package Praktikum_PBO_8 ble referensi class , yang digunakan
merupakan sebuah class anak / untuk rujukan dari Super Class atau
child class / subclass yang akan Parent class dalam hal ini class He-
menerima penurunan dari class in- wan. User dapat menampatkan
duk yaitu class Hewan. Class anak keyword super pada Variable ,
ditandai dengan adanya keyword Method dan juga Constructor .
“extends” pada saat pendeklarasian Dan juga terdapat keyword
class. Extends pada java
“this” adalah keyword pada ba- tidak perlu lagi membuat script
hasa pemrograman java yang ber- yang sama pada class yang akan
fungsi untuk mereferensikan atau user buat dengan class yang sudah
mengacu ke objek yang sedang ak- user buat sebelumnya.
tif. Didalam class ini terdapat sebuah
Kemudian terdapat method over- Modifier Private, Modifier pri-
ride, Method override/overriding vate ini menunjukkan bahwa suatu
ini dilakukan saat user ingin mem- class, method atau variabel hanya
buat ulang sebuah method pada dapat diakses dari dalam kelas ter-
subclass atau class anak. Di dalam sebut. modifier ini biasanya
class Anjing terdapat 2 method digunakan untuk kelas, method,
yaitu suara dan toString. Selain atau variabel yang memang ingin
itu pada class Anjing juga terdapat disimpan atau tidak dapat
keyword “return” yang berfungsi digunakan oleh kelas yang lain.
untuk mengembalikan nilai secara Lalu pada class Kambing ini juga
langsung atau sebuah nilai dari var- terdapat sebuah constructor yaitu
iable. Burung dengan parameter nama.
• Analisa class Kambing Kemudian ada juga keyword “su-
Class Kambing yang berada di da- per” yang berfungsi sebagai varia-
lam package Praktikum_PBO_8 ble referensi class , yang digunakan
merupakan sebuah class anak / untuk rujukan dari Super Class atau
child class / subclass yang akan Parent class dalam hal ini class He-
menerima penurunan dari class in- wan. User dapat menampatkan
duk yaitu class Hewan. Class anak keyword super pada Variable ,
ditandai dengan adanya keyword Method dan juga Constructor .
“extends” pada saat pendeklarasian Dan juga terdapat keyword
class. Extends pada java “this” adalah keyword pada ba-
digunakan untuk memanggil fungsi hasa pemrograman java yang
dari class yang lain, sehingga user
berfungsi untuk mereferensikan berada pada class prototype, ter-
atau mengacu ke objek yang se- lebih dahulu user harus melakukan
dang aktif. Kemudian terdapat pembuatan sebuah object baru pada
method override, Method over- class ini. Karena object yang dibuat
ride/overriding ini dilakukan saat oleh user akan digunakan pada saat
user ingin membuat ulang sebuah pemanggilan method-method yang
method pada subclass atau class berada pada class prototype / class
anak. Di dalam class Kambing ter- anak sehingga akan menampilkan
dapat 2 method yaitu suara dan output yang sesuai.
toString. Selain itu pada class • Pertanyaan
Kambing juga terdapat keyword Dari percobaan diatas , silahkan
“return” yang berfungsi untuk jelaskan mengapa outputnya
mengembalikan nilai secara lang- bisa seperti itu, silahkan berikan
sung atau sebuah nilai dari varia- penjelasan!
ble. • Jawaban
• Analisa class DemoHewan Pada percobaan di atas dapat
Class DemoHewan merupakan
dihasilkan output seperti pada
class implementasi yang ada di da-
screenshot output karena adanya
lam package Praktikum_PBO_8.
import library yaitu im-
Class implementasi / class driver
port.java.util.Random; pada
merupakan class yang berisi main
class driver / implementasi yaitu
method dimana keberadaan main
class DemoHewan, dimana im-
method pada class DemoHewan ini
port library tersebut berguna untuk
berfungsi agar code program yang
membuat class-class turunan dari
ada pada class prototype / class
class abstract (class Hewan) akan
anak / class yang tidak memiliki
menampilkan output secara ran-
main method dapat di run-kan /
dom ketika di run / di eksekusi.
dapat di eksekusi. Untuk
Apabila program dijalankan yang
mengeksekusi code program yang
muncul berupa nama hewan dari
clas turunan yaitu class Hewan, hal
ini dikarenakan pada class imple-
mentasi (class DemoHewan) ter-
dapat penggunaan array untuk me-
nyimpan data nama-nama hewan
yang digunakan pada class turunan
sekaligus pembuatan object. Se-
hingga ketika object di panggil
maka output akan menampilkan
nama-nama hewan yang sudah ter-
simpan pada array secara random /
acak beserta dengan suara-nya.
Contoh • Analisa class AnimalInt
Class AnimalInt yang berada di da-
• Screenshot syntax class Ani- lam package Praktikum_PBO_8
malInt
merupakan sebuah class Interface.
Interface merupakan sebuah kelas
yang hanya bisa mendeklarasikan
method tanpa body atau isinya, da-
lam pendeklarasiaannya baik
• Screenshot syntax class Pig
method yang dideklarasikan
secara abstract ataupun tanpa
abstract tetap saja akan dibaca
abstract. Pembuatan class Inter-
face di tandai dengan adanya key-
• Screenshot syntax class
MyMainClass word “interface” dan diikuti
dengan nama dari Interface yaitu
AnimalInt. Kemudian pada class
Interface AnimalInt di samping
juga mempunyai 2 abstract method
• Output yaitu void animalSound() dan
void sleep().
• Analisa class Pig
Class Pig yang berada di dalam
package Praktikum_PBO_8
merupakan sebuah class yang ingin
menggunakan method-method
yang ada pada class Interface Ani-
malInt, sehingga user dapat
menggunakan keyword “imple-
ments” untuk menggunakan
method-method yang ada pada method dimana keberadaan main
class Interface AnimalInt. Imple- method pada class MyMainClass
ments adalah sebuah Java Key- ini berfungsi agar code program
word yang termasuk dalam sebuah yang ada pada class prototype /
deklarasi kelas untuk menentukan class yang tidak memiliki main
satu atau lebih interface yang di im- method dapat di run-kan / dapat di
plementasikan oleh kelas saat ini. eksekusi. Untuk mengeksekusi
Ketika sebuah class mengimple- code program yang berada pada
mentasikan interface, sifat yang ter- class prototype, terlebih dahulu
dapat pada interface akan di imple- user harus melakukan pembuatan
mentasi kan ke dalam class, jika sebuah object baru pada class ini.
tidak maka akan terjadi error. Karena object yang dibuat oleh
Kemudian method-method yang user akan digunakan pada saat
ada pada class Interface AnimalInt pemanggilan method-method yang
wajib di override oleh class yang berada pada class prototype se-
ingin mengimplementasikannya hingga akan menampilkan output
dalam hal ini adalah class Pig. yang sesuai.
Method override/overriding ini
dilakukan saat user ingin membuat
ulang sebuah method pada subclass
atau class anak. Di dalam class Pig
terdapat 2 method yaitu ani-
malSound dan sleep.
• Analisa class MyMainClass
Class MyMainClass merupakan
class implementasi yang ada di da-
lam package Praktikum_PBO_8.
Class implementasi / class driver
merupakan class yang berisi main
Percobaan 1 • Output

• Screenshot syntax class Control

• Analisa class Control


Class Control yang berada di dalam

• Screenshot syntax class Tele- package Praktikum_PBO_8


visiA merupakan sebuah class Interface.
Interface merupakan sebuah kelas
yang hanya bisa mendeklarasikan
method tanpa body atau isinya, da-

• Screenshot syntax class Tele- lam pendeklarasiaannya baik


visiB method yang dideklarasikan
secara abstract ataupun tanpa
abstract tetap saja akan dibaca
abstract. Pembuatan class Inter-
face di tandai dengan adanya key-
• Screenshot syntax class Re-
moteControl word “interface” dan diikuti
dengan nama dari Interface yaitu
Control. Kemudian pada class In-
terface Control di samping juga
mempunyai 3 abstract method
• Screenshot syntax class yaitu public void pindahChan-
testInterface nel dengan parameter channel,
public void PerbesarVolume
dengan parameter intensitas, dan
public void PerkecilVolume juga
dengan parameter intensitas.
• Analisa class TelevisiA dengan parameter Channel dan
Class TelevisiA yang berada di da- perbesarVolume dengan parame-
lam package Praktikum_PBO_8 ter intensitas.
merupakan sebuah class yang ingin
• Analisa class TelevisiB
menggunakan method-method Class TelevisiB yang berada di da-
yang ada pada class Interface Con- lam package Praktikum_PBO_8
trol, sehingga user dapat juga merupakan sebuah class yang
menggunakan keyword “imple- ingin menggunakan method-
ments” untuk menggunakan method yang ada pada class Inter-
method-method yang ada pada face Control, sehingga user dapat
class Interface Control. Imple- menggunakan keyword “imple-
ments adalah sebuah Java Key- ments” untuk menggunakan
word yang termasuk dalam sebuah method-method yang ada pada
deklarasi kelas untuk menentukan class Interface Control. Imple-
satu atau lebih interface yang di im- ments adalah sebuah Java Key-
plementasikan oleh kelas saat ini. word yang termasuk dalam sebuah
Ketika sebuah class mengimple- deklarasi kelas untuk menentukan
mentasikan interface, sifat yang ter- satu atau lebih interface yang di im-
dapat pada interface akan di imple- plementasikan oleh kelas saat ini.
mentasi kan ke dalam class, jika Ketika sebuah class mengimple-
tidak maka akan terjadi error. mentasikan interface, sifat yang ter-
Pada class TelevisiA ini juga men- dapat pada interface akan di imple-
deklarasikan sebuah array 1 di- mentasi kan ke dalam class, jika
mensi yaitu channelTv dengan tipe tidak maka akan terjadi error.
data String yang memiliki 5 ang- Pada class TelevisiB ini juga men-
gota / elemen yaitu RCTI, SCTV, deklarasikan sebuah array 1 di-
INDOSIAR, TRANS TV, dan TPI. mensi yaitu chanTv dengan tipe
Di dalam class TelevisiA terdapat 2 data String yang memiliki 5 ang-
method yaitu pindahChannel gota / elemen yaitu TVRI, LA TV,
TV 7, RCTI, dan SCTV. Di dalam public static final int
class TelevisiB terdapat 2 method PERBESAR_VOLUME = 2;
yaitu pindahChannel dengan pa- public static final int
rameter Channel dan perbesarVol- PERKECIL_VOLUME = 3;
ume dengan parameter intensitas. Kemudian pada class ini juga ter-
• Analisa class RemoteControl dapat method dengan nama
Pada class RemoteControl terdapat kirimPerintahKeTv dengan param-
sebuah keyword baru yaitu “final”. eter aksi, Control tv, dan tombol.
Kata kunci final digunakan untuk Selain itu pada class ini juga
pendeklarasian yg absolute (mut- menggunakan sebuah pernyataan
lak). Keyword final dapat switch case, bentuk switch case
digunakan dalam pendeklarasian merupakan pernyataan yang
variable, class, dan method. Cara dirancang khususs untuk me-
mendeklarasikannya dengan menu- nangani pengambilan keputusan
liskan keyword final didepan vari- yang melibatkan sejumlah atau
able, class, atau method. banyak alternatif. Pernyataan
Perlu diketahui bahwa final adalah switch case memiliki kegunaan
keyword bukan modifier akses. yang sama seperti if-else berting-
Perintah final jika digunakan pada kat, tetapi dengan kondisi yang
class maka class tersebut tidak bisa bertipe karakter atau integer. Pada
diturunkan lagi, dan jika kondisi switch-case yang ada pada
digunakan pada method maka class ini di isi dengan variabel aksi,
method tersebut tidak bisa dil- kemudian variable aksi akan
akukan overriding pada method dibandingkan dengan setiap case
tersebut. Pada class RemoteControl yang ada pada struktur switch yaitu
di atas keyword final digunakan da- PINDAH_CHANNEL,
lam pendeklarasian method yaitu PERBESAR_VOLUME, dan
public static final int PIN- PERKECIL_VOLUME. Jika
DAH_CHANNEL = 1;
pernyataan yang ada pada case- berada pada class prototype se-
case tersebut bernilai true maka hingga akan menampilkan output
pernyataan pada case tersebut akan yang sesuai.
di eksekusi dan program akah ber-
henti atau break. Keyword
“break” bersifat opsional, pern-
yataan break akan segera
mengakhiri pernyataan switch
yang telah terpenuhi.
• Analisa class testInterface
Class testInterface merupakan
class implementasi yang ada di da-
lam package Praktikum_PBO_8.
Class implementasi / class driver
merupakan class yang berisi main
method dimana keberadaan main
method pada class testInterface ini
berfungsi agar code program yang
ada pada class prototype / class
yang tidak memiliki main method
dapat di run-kan / dapat di
eksekusi. Untuk mengeksekusi
code program yang berada pada
class prototype, terlebih dahulu
user harus melakukan pembuatan
sebuah object baru pada class ini.
Karena object yang dibuat oleh
user akan digunakan pada saat
pemanggilan method-method yang
Percobaan 2 • Analisa class BangunDatar
Class BangunDatar yang berada di
• Screenshot syntax class dalam package Prak-
BangunDatar
tikum_PBO_8 merupakan sebuah
class Interface. Interface merupa-
kan sebuah kelas yang hanya bisa
mendeklarasikan method tanpa
body atau isinya, dalam pendeklar-
• Screenshot syntax class Persegi asiaannya baik method yang
dideklarasikan secara abstract
ataupun tanpa abstract tetap
saja akan dibaca abstract. Pem-
buatan class Interface di tandai
dengan adanya keyword “inter-
• Screenshot syntax class Demo face” dan diikuti dengan nama dari
Interface yaitu Control. Kemudian
pada class Interface Control di
samping juga mempunyai 2 ab-
• Output
stract method double hitungLuas
dan double hitungKeliling.
• Analisa class Persegi
Class Persegi yang berada di dalam
package Praktikum_PBO_8
merupakan sebuah class yang ingin
menggunakan method-method
yang ada pada class Interface
BangunDatar, sehingga user dapat
menggunakan keyword “imple-
ments” untuk menggunakan
method-method yang ada pada class, method atau variabel hanya
class Interface BangunDatar. Im- dapat diakses dari dalam kelas ter-
plements adalah sebuah Java Key- sebut. modifier ini biasanya
word yang termasuk dalam sebuah digunakan untuk kelas, method,
deklarasi kelas untuk menentukan atau variabel yang memang ingin
satu atau lebih interface yang di im- disimpan atau tidak dapat
plementasikan oleh kelas saat ini. digunakan oleh kelas yang lain.
Ketika sebuah class mengimple- Selain itu pada class Persegi juga
mentasikan interface, sifat yang ter- terdapat keyword “return” yang
dapat pada interface akan di imple- berfungsi untuk mengembalikan
mentasi kan ke dalam class, jika nilai secara langsung atau sebuah
tidak maka akan terjadi error. nilai dari variable. Dan juga ter-
Kemudian method-method yang dapat keyword
ada pada class Interface AnimalInt “this” adalah keyword pada ba-
wajib di override oleh class yang hasa pemrograman java yang ber-
ingin mengimplementasikannya fungsi untuk mereferensikan atau
dalam hal ini adalah class mengacu ke objek yang sedang ak-
BangunDatar. Method over- tif.
ride/overriding ini dilakukan saat • Analisa class Demo-
user ingin membuat ulang sebuah BangunDatar
Class DemoBangunDatar merupa-
method pada subclass atau class
kan class implementasi yang ada di
anak. Di dalam class Persegi ter-
dalam package Praktikum_PBO_8.
dapat 4 method yaitu getSisi,
Class implementasi / class driver
setSisi dengan parameter sisi, hi-
merupakan class yang berisi main
tungLuas dan hitungKeliling.
method dimana keberadaan main
Didalam class ini terdapat sebuah
method pada class Demo-
Modifier Private, Modifier pri-
BangunDatar ini berfungsi agar
vate ini menunjukkan bahwa suatu
code program yang ada pada class
prototype / class yang tidak mem-
iliki main method dapat di run-kan
/ dapat di eksekusi. Untuk
mengeksekusi code program yang
berada pada class prototype, ter-
lebih dahulu user harus melakukan
pembuatan sebuah object baru pada
class ini. Karena object yang dibuat
oleh user akan digunakan pada saat
pemanggilan method-method yang
berada pada class prototype se-
hingga akan menampilkan output
yang sesuai.
Tugas Abstraction
• Screenshot syntax class Nilai

• Screenshot syntax class Demo-


Nilai
• Screenshot syntax class Maha-
siswa1

• Output

• Screenshot syntax class Maha-


siswa2
• Analisa class Nilai yang akan user buat dengan class
Class Nilai yang berada di dalam yang sudah user buat sebelumnya.
package Praktikum_PBO_8 Di dalam class ini terdapat class
merupakan sebuah abstract class. Scanner, Scanner merupakan se-
Abstract class adalah sebuah class buah class yang menyediakan
yang tidak memiliki objek. fungsi-fungsi untuk mengampil in-
Kemudian pada source code di putan dari keyboard. Lalu didalam
samping terdapat 2 abstract method class ini terdapat sebuah Modifier
yaitu public abstract int Private, Modifier private ini
tertinggi(); dan public abstract menunjukkan bahwa suatu class,
double rata_rata();. Class Nilai method atau variabel hanya dapat
bertindak sebagai class induk / su- diakses dari dalam kelas terse-
per class / class parent yang meru- but. modifier ini biasanya
pakan class yang akan diturunkan digunakan untuk kelas, method,
kepada class anak / subclass. atau variabel yang memang ingin
• Analisa class Mahasiswa1 disimpan atau tidak dapat
Class Mahasiswa1 yang berada di
digunakan oleh kelas yang lain.
dalam package Prak-
Kemudian pada class Mahasiswa1
tikum_PBO_8 merupakan sebuah
ini juga mendeklarasikan sebuah
class anak / child class / subclass
array 1 dimensi yaitu matkul
yang akan menerima penurunan
dengan tipe data String yang mem-
dari class induk yaitu class Nilai.
iliki 4 anggota / elemen.
Class anak ditandai dengan adanya
Di dalam class Mahasiswa1 ter-
keyword “extends” pada saat pen-
dapat 6 method yaitu getNama(),
deklarasian class. Extends pada
setNama dengan parameter nama,
java digunakan untuk memanggil
getMatkul, setNilai, tertinggi,
fungsi dari class yang lain, se-
dan rata_rata.
hingga user tidak perlu lagi mem-
buat script yang sama pada class
Kemudian terdapat method over- dieksekusi dan jika tidak memen-
ride, Method override/overriding uhi syarat maka program akan
ini dilakukan saat user ingin mem- mengabaikan pernyataan atau
buat ulang sebuah method pada selesai”.
subclass atau class anak. Dan juga • Analisa class Mahasiswa2
terdapat keyword “this” ada- Class Mahasiswa2 yang berada di

lah keyword pada bahasa pem- dalam package Prak-

rograman java yang berfungsi un- tikum_PBO_8 merupakan sebuah

tuk mereferensikan atau mengacu class anak / child class / subclass

ke objek yang sedang aktif. Selain yang akan menerima penurunan

itu pada class Mahasiswa1 juga ter- dari class induk yaitu class Nilai.

dapat keyword “return” yang ber- Class anak ditandai dengan adanya

fungsi untuk mengembalikan nilai keyword “extends” pada saat pen-

secara langsung atau sebuah nilai deklarasian class. Extends pada

dari variable. java digunakan untuk memanggil

Pada class ini juga dikombinasikan fungsi dari class yang lain, se-

dengan penggunaan perulangan hingga user tidak perlu lagi mem-

for, user dapat menggunakan peru- buat script yang sama pada class

langan for dengan menggunakan yang akan user buat dengan class

atribut length untuk mendapatkan yang sudah user buat sebelumnya.

jumlah elemen array. Sehingga Di dalam class ini terdapat class

perulangan dilakukan kurang dari Scanner, Scanner merupakan se-

jumlah elemen yang telah diten- buah class yang menyediakan

tukan. Dan juga terdapat fungsi-fungsi untuk mengampil in-

penggunaan pernyataan if. Pern- putan dari keyboard. Lalu didalam

yataan if mempunyai pengertian class ini terdapat sebuah Modifier

“jika kondisi bernilai benar, maka Private, Modifier private ini

pernyataan akan dikerjakan / menunjukkan bahwa suatu class,


method atau variabel hanya dapat
diakses dari dalam kelas terse- berfungsi untuk mengembalikan
but. modifier ini biasanya nilai secara langsung atau sebuah
digunakan untuk kelas, method, nilai dari variable.
atau variabel yang memang ingin Pada class ini juga dikombinasikan
disimpan atau tidak dapat dengan penggunaan perulangan
digunakan oleh kelas yang lain. for, user dapat menggunakan peru-
Kemudian pada class Mahasiswa2 langan for dengan menggunakan
ini juga mendeklarasikan sebuah atribut length untuk mendapatkan
array 1 dimensi yaitu matkul jumlah elemen array. Sehingga
dengan tipe data String yang mem- perulangan dilakukan kurang dari
iliki 4 anggota / elemen. jumlah elemen yang telah diten-
Di dalam class Mahasiswa2 ter- tukan. Dan juga terdapat
dapat 6 method yaitu getNama(), penggunaan pernyataan if. Pern-
setNama dengan parameter nama, yataan if mempunyai pengertian
getMatkul, setNilai, tertinggi, “jika kondisi bernilai benar, maka
dan rata_rata. pernyataan akan dikerjakan /
Kemudian terdapat method over- dieksekusi dan jika tidak memen-
ride, Method override/overriding uhi syarat maka program akan
ini dilakukan saat user ingin mem- mengabaikan pernyataan atau
buat ulang sebuah method pada selesai”.
subclass atau class anak. Dan juga • Analisa class DemoNilai
terdapat keyword “this” ada- Class DemoNilai merupakan class

lah keyword pada bahasa pem- implementasi yang ada di dalam

rograman java yang berfungsi un- package Praktikum_PBO_8. Class

tuk mereferensikan atau mengacu implementasi / class driver meru-

ke objek yang sedang aktif. Selain pakan class yang berisi main

itu pada class Mahasiswa2 juga ter- method dimana keberadaan main

dapat keyword “return” yang method pada class DemoNilai ini


berfungsi agar code program yang
ada pada class prototype / class pernyataan yang lain dengan kon-
yang tidak memiliki main method disi false.
dapat di run-kan / dapat di
eksekusi. Untuk mengeksekusi
code program yang berada pada
class prototype, terlebih dahulu
user harus melakukan pembuatan
sebuah object baru pada class ini.
Karena object yang dibuat oleh
user akan digunakan pada saat
pemanggilan method-method yang
berada pada class prototype se-
hingga akan menampilkan output
yang sesuai. Pada class ini juga
dikombinasikan dengan
penggunaan perulangan for, user
dapat menggunakan perulangan for
dengan menggunakan atribut
length untuk mendapatkan jumlah
elemen array. Sehingga perulangan
dilakukan kurang dari jumlah ele-
men yang telah ditentukan. Dan
juga terdapat penggunaan pern-
yataan if-else. Pernyataan if-else
digunakan apabila user ingin
mengeksekusi beberapa pernyataan
dengan kondisi true dan
Class Diagram Abstraction
Tugas Interface • Analisa class Notifikasi
Class Notifikasi yang berada di da-
• Screenshot syntax class Notifi- lam package Praktikum_PBO_8
kasi
merupakan sebuah class Interface.
Interface merupakan sebuah kelas
yang hanya bisa mendeklarasikan
method tanpa body atau isinya, da-
• Screenshot syntax class
EmailNotification lam pendeklarasiaannya baik
method yang dideklarasikan
secara abstract ataupun tanpa
abstract tetap saja akan dibaca
abstract. Pembuatan class Inter-
face di tandai dengan adanya key-
• Screenshot syntax class
SMSNotification word “interface” dan diikuti
dengan nama dari Interface yaitu
AnimalInt. Kemudian pada class
Interface AnimalInt di samping
juga mempunyai 2 abstract method

• Screenshot syntax class De- yaitu public void sendMessage


moNotification dengan parameter receiver dan
content.
• Analisa class EmailNotifica-
tion
Class EmailNotification yang be-
• Output rada di dalam package Prak-
tikum_PBO_8 merupakan sebuah
class yang ingin menggunakan
method-method yang ada pada
class Interface Notifikasi,
sehingga user dapat menggunakan parameter receiver, dan
keyword “implements” untuk sendMesaage.
menggunakan method-method Didalam class ini terdapat sebuah
yang ada pada class Interface No- Modifier Private, Modifier pri-
tifikasi. Implements adalah se- vate ini menunjukkan bahwa suatu
buah Java Keyword yang terma- class, method atau variabel hanya
suk dalam sebuah deklarasi kelas dapat diakses dari dalam kelas ter-
untuk menentukan satu atau lebih sebut. modifier ini biasanya
interface yang di implementasikan digunakan untuk kelas, method,
oleh kelas saat ini. Ketika sebuah atau variabel yang memang ingin
class mengimplementasikan inter- disimpan atau tidak dapat
face, sifat yang terdapat pada inter- digunakan oleh kelas yang lain.
face akan di implementasi kan ke Selain itu pada class Persegi juga
dalam class, jika tidak maka akan terdapat keyword “return” yang
terjadi error. berfungsi untuk mengembalikan
Kemudian method-method yang nilai secara langsung atau sebuah
ada pada class Interface Notifikasi nilai dari variable. Dan juga ter-
wajib di override oleh class yang dapat keyword
ingin mengimplementasikannya “this” adalah keyword pada ba-
dalam hal ini adalah class hasa pemrograman java yang ber-
EmailNotification. Method over- fungsi untuk mereferensikan atau
ride/overriding ini dilakukan saat mengacu ke objek yang sedang ak-
user ingin membuat ulang sebuah tif. Class ini juga memiliki sebuah
method pada subclass atau class constructor yaitu EmailNotifica-
anak. Di dalam class EmailNotifi- tion tanpa parameter.
cation terdapat 3 method yaitu • Analisa class SMSNotification
getReceiver, setReceiver dengan Class SMSNotification yang be-
rada di dalam package Prak-
tikum_PBO_8 merupakan sebuah
class yang ingin menggunakan terdapat 3 method yaitu
method-method yang ada pada getReceiver, setReceiver dengan
class Interface Notifikasi, se- parameter receiver, dan
hingga user dapat menggunakan sendMesaage.
keyword “implements” untuk Didalam class ini terdapat sebuah
menggunakan method-method Modifier Private, Modifier pri-
yang ada pada class Interface No- vate ini menunjukkan bahwa suatu
tifikasi. Implements adalah se- class, method atau variabel hanya
buah Java Keyword yang terma- dapat diakses dari dalam kelas ter-
suk dalam sebuah deklarasi kelas sebut. modifier ini biasanya
untuk menentukan satu atau lebih digunakan untuk kelas, method,
interface yang di implementasikan atau variabel yang memang ingin
oleh kelas saat ini. Ketika sebuah disimpan atau tidak dapat
class mengimplementasikan inter- digunakan oleh kelas yang lain.
face, sifat yang terdapat pada inter- Selain itu pada class Persegi juga
face akan di implementasi kan ke terdapat keyword “return” yang
dalam class, jika tidak maka akan berfungsi untuk mengembalikan
terjadi error. nilai secara langsung atau sebuah
Kemudian method-method yang nilai dari variable. Dan juga ter-
ada pada class Interface Notifikasi dapat keyword
wajib di override oleh class yang “this” adalah keyword pada ba-
ingin mengimplementasikannya hasa pemrograman java yang ber-
dalam hal ini adalah class SMSNo- fungsi untuk mereferensikan atau
tification. Method override/over- mengacu ke objek yang sedang ak-
riding ini dilakukan saat user ingin tif. Class ini juga memiliki sebuah
membuat ulang sebuah method constructor yaitu SMSNotification
pada subclass atau class anak. Di dengan parameter receiver.
dalam class EmailNotification • Analisa class DemoNotifica-
tion
Class DemoNotification merupa-
kan class implementasi yang ada di
dalam package Praktikum_PBO_8.
Class implementasi / class driver
merupakan class yang berisi main
method dimana keberadaan main
method pada class DemoNotifica-
tion ini berfungsi agar code pro-
gram yang ada pada class prototype
/ class yang tidak memiliki main
method dapat di run-kan / dapat di
eksekusi. Untuk mengeksekusi
code program yang berada pada
class prototype, terlebih dahulu
user harus melakukan pembuatan
sebuah object baru pada class ini.
Karena object yang dibuat oleh
user akan digunakan pada saat
pemanggilan method-method yang
berada pada class prototype se-
hingga akan menampilkan output
yang sesuai.
Class Diagram Interface
E. Kesimpulan

Kesimpulan praktikum 8 mengenai Abstract class dan Interface yaitu:


Abstract class adalah class yang terletak di posisi tertinggi dalam hierarki class. Kelas
ini tidak dapat diinstansiasi karena masih bersifat abstract. Kelas ini hanya berisi vari-
abel-variabel umum dan deklarasi method tanpa detail implementasi. Selanjutnya ke-
las-kelas yang menjadi turunan dari sebuah kelas abstraklah yang akan mengimplemen-
tasikan method-method tanpa imolementasi tersebut.
Kegunaan Class Abstract :
• Class Abstract berisi beberapa method dan beberapa method abstract. Class abstract
berisi sebagian implementasi, dan subclass yang melengkapi implementasinya.
Dengan kata lain class abstarct memiliki beberapa kesamaan (Bagian yang diimple-
mentasikan oleh subclass) dan memiliki peerbedaan (method yang dimiliki sendiri
oleh class abstract).
• Deklarasikan method abstract, jika ada satu atau lebih subclass yang diharapkan
mempunyai fungsionalitas yang sama tapi implementasi berbeda.
• Gunakan class abstract untuk mendefinisikan behaviour secara umum sebagai su-
perclass, sedangkan sybclass menyediakan implementsi detail.
• Jika class abstract semua method merupakan method abstract, sebaiknya class ab-
stract tersebut diganti menjadi Interface.

Interface memungkinkan pemrogram untuk berbagi konstanta atau menetukan bentuk


metode yang dapat digunakan oleh sejumlah kelas.
Mengapa membutuhkan Interface?
• Memecahkan bagian yang rumit dan spsifik. Dengan menggunakan class atau in-
terface oleh vendor maka dalam pembuatan perangkat lunak menjadi lebih cepat.
• Keterbatasan inheritance pada Java. Interface menjawab kebutuhan untuk
melakukan multiple inheritance.
Perbedaan Interface dengan Abstract Class :

1. Class Abstract dapat mengandung method abstract maupun method tidak abstract,
sedangkan interface hanya boleh mengandung method abstract.
2. Class Abstract dapat mendeklarasikan variable instans, sedangkan interface hanya
dapat mendeklarasikan konstanta.
3. Class Abstract diguankan oleh class lain melalui metode pewarisan dengan key-
word “extends”, sedangkan sebuah Interface diimplementasikan ke dalam suatu
class dengan menggunakan keyword “implements”, dan sebuah class dapat
mengimplementasikan lebih dari satu Interface.

F. Daftar Pustaka
Meydelia, Asnita,. 2014. “Laporan Pemrograman Berorientasi Objek” ,
https://www.academia.edu/9435384/Laporan_Pemrograman_Berorientasi_Ob-
jek_ABSTRACT_CLASS_INTERFACE_DAN_POLYMORPHISM_

Modul Praktikum VIII(Abstraction & Interface)

Anda mungkin juga menyukai