100% menganggap dokumen ini bermanfaat (1 suara)
494 tayangan

Encapsulation, Inheritance, Polymorphisme, PBO Advanced in Java Programming

Dokumen ini merupakan laporan tugas kelompok mengenai encapsulation, inheritance, polymorphism, dan PBO lanjut di Java. Laporan ini disusun oleh dua mahasiswa dan berisi pengertian serta contoh penerapan konsep-konsep tersebut di Java.

Diunggah oleh

Ansori
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (1 suara)
494 tayangan

Encapsulation, Inheritance, Polymorphisme, PBO Advanced in Java Programming

Dokumen ini merupakan laporan tugas kelompok mengenai encapsulation, inheritance, polymorphism, dan PBO lanjut di Java. Laporan ini disusun oleh dua mahasiswa dan berisi pengertian serta contoh penerapan konsep-konsep tersebut di Java.

Diunggah oleh

Ansori
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 18

TUGAS KELOMPOK

Pemrograman Berbasis Objek (PBO)


Encapsulation, Inheritance, Polymorphisme, PBO advanced in
java programming

Disusun oleh :
Muhammad Ansori (2015420064)
Achmad Nur Cholis (2015420091)

DR. SOETOMO UNIVERSITY


Jl. Semolowaru No. 84, Sukolilo, Surabaya, Jawa Timur
2016

KATA PENGANTAR

Puji Syukur khadirat Allah Yang Maha Kuasa karena atas


Rahmat dan Hidayah-Nyalah kami dapat menyelesaikan Tugas ini.
Makalah ini merupkan salah satu bagian dalam Tugas kami yang

berjudul Encapsulation, Inheritance, Polymorphisme, PBO


advanced in java programming. Terima kasih juga kepada
Bapak .................. selaku dosen Mata Kuliah PBO di kelas kami.
Makalah
ini
berisi
tentang
Pembelajaran
mengenai
Encapsulation, Inheritance, Polymorphisme, PBO advanced di dalam
pemrograman java. Tentunya kami sangat berharap Makalah ini
dapat berguna bagi siapapun yang membacanya.
Masih banyak kekurangan dalam makalah ini .Selain itu dalam
penyusunan tugas atau materi ini, tidak sedikit hambatan yang
penulis hadapi. Namun penulis menyadari bahwa kelancaran dalam
penyusunan materi ini tidak lain berkat bantuan, dorongan dan
bimbingan teman-teman, sehingga kendala-kendala yang penulis
hadapi teratasi.

Surabaya, 21 Desember
2016

Tim Penyusun

BAB 1
ENKAPSULASI DAN CONSTRUCTOR

1.1

Pengertian Enkapsulasi
Dalam sebuah objek yang mengandung variabel-variabel dan
method-method, dapat ditentukan hak akses pada sebuah variabel

atau method dari objek. Pembungkusan variabel dan method dalam


sebuah objek dalam bagian yang terlindungi inilah yang disebut
dengan enkapsulasi. Jadi, Enkapsulasi dapat diartikan sebagai
bungkusan pelindung program dan data yang sedang diolah.
Pembungkus ini mendefinisikan perilaku dan melindungi program
dan data yang sedang diolah agar tidak diakses sembarangan oleh
program lain.
Dua hal mendasar pada Enkapsulasi.
1. Information hiding:
Pemberian akses kontrol private ketika mendeklarasikan
atribut atau method, sehingga informasi dari suatu class
sehingga anggota class tersebut tidak dapat diakses dari luar.
2. Interface to access data:
Menyediakan perantara berupa method untuk pengaksesan
data, yakni method getters dan setters.
Contoh :

1.2

Tujuan
a. Agar program terhindar dari ketergantungan terhadap perubahan
yang menyebabkan akibat berurutan/beruntun yang besar
b. Pengkapsulan meredam perubahan menjadi ke hanya objek
tersebut atau sekelompok kecil objek yang memang terkait erat.

1.3

Manfaat
1.3.1.Modularitas
Source code dari sebuah class dapat dikelola secara
independen dari source code class yang lain. Perubahan

internal pada sebuah class tidak akan berpengaruh bagi class


yang menggunakannya.
1.3.2.Information Hiding
Memungkinkan objek menyembunyikan informasi yang
tidak perlu diketahui objek lain.
Manfaat utama teknik enkapsulasi

adalah kita mampu

memodifikasi kode tanpa merusak kode yang telah digunakan pada


class lain.
1.4

Visibility Modifier
Merupakan modifier yang memberikan batasan kemampuan
variabel atau method untuk diakses. Beberapa visibility modifier :
2.2.1. Modifier Public
Modifier

Public

adalah

modifier

yang

memberi

kemampuan tak terbatas bagi variabel atau method untuk


diakses. Artinya, variabel atau method yang menggunakan
modifier public akan dapat diakses dari mana saja, baik dari
kelas sendiri, maupun dari kelas lain.
Setiap atribut atau method dengan akses modifier public
maka dapat diakses oleh objek lain dan tidak ada batasan.

2.2.2. Modifier Protected


Modifier Protected memberikan kemampuan pada variabel
atau method agar dapat di akses semua kelas dalam satu
package.

Atribut

atau

method

dengan

akses

modifier

protected tidak dapat di akses oleh kelas lain di luar package


(kecuali kelas turunan).

2.2.3. Modifier default


Atribut

atau

method

dengan

akses

modifier

default

memberikan akses kepada kelas lain dalam package yang


sama.

Tidak ada keyword khusus untuk mendeklarasikan

modifier default access. Sehingga ketika atribut atau method


didefinisikan tanpa akses modifier maka sebenarnya akses
modifiernya adalah default
2.2.4. Modifier Private
Merupakan modifier yang membatasi aksebilitas variabel
atau method, sehingga hanya dapat diakses dari kelas yang
sama, maka atribut atau method dengan akses modifier ini
hanya diakses oleh kelas itu sendiri.
1.5

Constructor
Constractor

adalah

method

yang

secara

otomatis

dipanggil/dijalankan pada saat sebuah class diinstansi. Jika dalam


sebuah class tidak terdapat constructor maka secara otomatis java
akan membuatkan secara default constractor.
Ciri-ciri method constructor :

Nama method constructor harus sama dengan nama class


Tidak mengembalikan suatu nilai (tidak ada keyword

return)
Satu class dapat memiliki lebih dari satu constructor

(overloading constructor )
Pendeklarasian dapat ditambahkan modifier public, private,

protected, maupun default.


Suatu constructorbisa dipanggil oleh constructorlain dalam
satu class

Constroctor biasanya digunakan untuk memberi nilai awal dari


atribut-atribut class tersebut.

1.6

Multiple Constructor
Java tidak membatasi jumlah constructor dalam satu class,
sehingga memungkinkan sebuah class memiliki lebih dari satu
constructor untuk sebuah class. Yang membedakan antara satu
construcror dengan constructor lainnya adalah pada parameternya
(nama constructor sama).
Contoh :

1.7

Function Overloading
Overloading adalah diperbolehkannya dalam sebuah class
memiliki lebih dari satu function yang serupa (nama functionnya
sama) tetapi deklarasi- deklarasi parameternya berbeda.

Contoh :
Public class Latihan {

private Login login1;


public static void main (String[]args) {
setLogin(admin,123);
Login login2 = new Login();
setLogin(login2);
}
Public static setLogin(String n, String p) {
Login1 = new Login(n,p);
}
public static setLogin(Login log) {
log.setNamA(rahasia);
log.setPassword = 321;
}
}

BAB 2
INHERITANCE (PEWARISAN)

2.1

Inheritance (Pewarisan)
Pewarisan atau inheritance pada pemrograman berorientasi
obnek merupakan suatu hubungan dua buah kelas atau lebih di
mana ada kelas yang memiliki atribut dan metode yang sama
dengankelas lainnya beserta atribut dan metode tambahan yang
merupakan sifat khusu kelas yang menjadi turunannya. Kelas yang
merupakan kelas turunan biasa di sebut subclass

dan kelas yang

menjadi dasar penurunan disebut superclass. Biasanya kelas anak


adalah kelas dengan jenis yang lebih khusus dari kelas orang tua,
misal akan dibuat kelas manusia dan karyawan maka manusia akan
menjadi superclass karena bagaimanapun seorang karyawan adalah
manusia.
2.2

Manfaat
2.5.1. Ekstensi dan batasan
Subclass boleh melakukan penimpaan fitur di superclass

dengan mendefinisikan fitur dengan nama yang sama.


Subclass boleh menambah fitur baru sebagai perluasan,
disebut ekstensi, dan subclass boleh memberikan batasan
atribut, disebut pembatasan

2.5.2. Redefinisi Operasi


Penimpaan operasi
Penimpaan operasi
Penimpaan operasi
Penimpaan operasi

2.3

Keuntungan Inheritance

sebagai
sebagai
sebagai
sebagai

perluasan
batasan
optimasi
kenyamanan

2.3.1. Reusability
Subclass menyediakan variabel/method yang spesifik yang
membedakannya

dengan

superclass,

hal

ini

akan

memungkinkan programer java untuk menggunakan ulang

source code dari superclas yang telah ada.


Ketika method dideklarasikan dalam superclass, method
tersebut otomatis diwariskan ke seluruh subclass, jadi Anda
dapat mengkode method hanya sekali dan method tersebut

dapat digunakan oleh seluruh subclass.


Programer java dapat mendefinisikan superclass khusus
yang bersifat generik, yang disebut abstract class, untuk
mendefenisikan class dengan method dan variabel secara

umum.
Sebuah

subclass

hanya

perlu

mengimplementasikan

perbedaan antara dirinya sndiri dan parentnya

Untuk menjadikan sebuah class menjadi subclass dari objek


lain dalam java maka dapat menggunakan keyword extends
namaSubclass extends namaSuperclass {
.......//deklarasi isi class: atribut, method, constructor
}

2.4

Keyword super
Kata kunci super dapat digunakan oleh subclass baik untuk
memanggil construktor, maupun method yang ada pada superclass.
Bentuk umum pemanggilannya adalah sebagai berikut :
Super (daftar_parameter);
Kata kunci super juga dapat digunakan untuk mengakses
anggota kelas (atribut data maupun method) yang terdapat pada
superclass. Bentuk umum pemanggilannya adalah sebagai berikut :
Super.namaMethod(parameter)
Beberapa hal perlu diingat dalam pemanggilan construktor
dengan super.

Pemanggilan super() harus dijalankan sesuai statement

pertama dalam sebuah construktor.


Pemanggilan super() hanya dapat digunakan didalam

definisi construktor.
Hal ini menjelaskan

bahwa

pemanggilan

tidak

super()

construktor
dapat

this()

dijalankan

dan

secara

bersamaan didalam construktor yang sama.


2.5

Istilah-istilah dalam inheritance


Di dalam inheritance terdapat istilah-istilah yang dianggap
perlu untuk diperhatikan secara seksama diantaranya.

Extends, Keyword ini harus kita tambahkan pada definisi

class yang menjadi subclass.


Superclass, digunakan untuk menunjukkan hirarki class

yang berarti class dasar dari subclass/class anak.


Subclass, adalah class anak atau turunan secara hirarki dari

superclass
Super, Keyword ini digunakan untuk memanggil constructor
dari superclass atau menjadi variabel yang mengacu pada

superclass
Methode overriding, Pendefinisian ulang method yang sama
pada subclass.

Dalam

inheritance,

methode

overriding

berbeda

dengan

method overloading. Kalau method overriding adalah mendefinisikan


kembali method yang sama, baik nama method maupun signature
atau parameter yang diperlukan dalam subclass, kalau method
overloading adalah mendefinisikan method yang memiliki nama
yang sama, tetai dengan signature yang berbeda dalam definisi
class yang sama.

2.6

Prinsip inheritance

Atribut maupun

method pada superclass (kelas yang

mewariskan) dapat diakses oleh subclass (kelas yang

mendapat warisan), namun tidak sebaliknya.


Menggunakan keyword extends untuk mengubah suatu

class menjadi subclass dari objek lain.


Menggunakan keyword super() untuk memanggil secara
ekspilit construktor kelas diatasnya.

2.7

Multilevel Inheritance
Pada

bahasa

pemrograman

java

diperkenankan

adanya

multilevel inheritance. Konsep tersebut mengijinkan suatu subclass


mempunyai subclass lagi.
Contoh :
public class classA {
String atributA = atribut A;
public void methodA() {
System.out.println(Method dari class A);
}
}
public class classB extends classA {
string atributB = atribut B;
public void method() {
System.out.println(Method dari class B);

Subclass
kelas A

}
}
Public class classC extends classB {
String atributC = atribut C;
Public void methodC() {
System.out.println(Method dari class C);

Subclass
Kelas B

}
Public static void main(String[] args) {
Class obj = new classC();
Obj.methodA();
Obj.methodB();
Obj.methodC();}}

Terlihat bahwa pada contoh source code diatas bahwa classB


mewarisi atribut dan method dari classA, sedangkan classC mewarisi

atribut dan method dari classB dan classA. Dengan demikian dapat
diartikan bahwa classB merupakan perluasan dari classA, sedangkan
classC merupakan perluasan dari classB dan classA.
2.8

Keyword final
Kelas yang dideklarasikan sebagai kelas final tidak akan dapat
diturunkan lagi menjadi kelas baru, jadi kelas tersebut menjadi kelas
terakhir dari struktur hirarki yang dibentuk.

public class classA {


String atributA = atribut A;
public void methodA() {
System.out.println(Method dari class A);
}
}
public class classB extends classA {
string atributB = atribut B;
public void method() {
System.out.println(Method dari class B);
}
}
Public final class classC extends classB {
String atributC = atribut C;
Public void methodC() {
System.out.println(Method dari class C);
}
Public static void main(String[] args) {
Class obj = new classC();
Obj.methodA();
Obj.methodB();
Obj.methodC();
}
}

Pada source code diatas, terlihat bahwa classC diberikan kata


kunci final. Artinya bahwa classC akan menjadi hirarki yang terakhir
pada struktur pewarisan tersebut. Ketika ada class baru yang ingin
mewarisi classC seperti potongan kode berikut :

Public class classD extends classC {


}

Maka, soure code diatas akan menghasilkan error cannot inherit


from classC, artinya tidak dapat mewariskan dari class C. Hal itu
disebabkan karena classD berusaha mewarisi sifat classC yang
sudah diberi kata kunci final.

BAB 3
POLYMORPHISME

3.1

Polymorphisme
Kata polimorfisme yang berarti satu objek dengan banyak
bentuk yang berbeda, adalah konsep sederhana dalam bahasa
pemrograman berorientasi objek (PBO) yang berarti kemampuan
dari suatu variabel referensi objek untuk memiliki aksi berbeda bila
method yang sama dipanggil, dimana aksi method tergantung dari
tipe objeknya. Kondisi yang harus dipenuhi supaya polimorfisme
dapat diimplementasikan adalah :

Method yang dipanggil harus melalui variabel dari basis class

atau superclass
Method yang dipanggil harus juga menjadi method dari basis

class.
Signatur method harus sama baik pada superclass maupun

subclass
Method access attribut pada subclass tidak boleh lebih
terbatas dari basis class.

3.2

Overriding method
Overriding
memodifikasi

method

method

adalah

dari

kemampuan

superclass-nya,

subclass

yaitu

dengan

untuk
cara

menumpuk (mendefinisikan kembali) method dari superclass. Tujuan


dari overriding yaitu supaya subclass memiliki tingkah laku yang
lebih spesifik. Deklarasi method pada subclass harus sama dengan
yang terdapat di superclass, yaitu kesamaan pada nama, return
type, dan daftar parameter (jumlah, tipe, dan urutan). Method yang
terkena override diharuskan tidak boleh mempunyai modifier yang
lebih luas aksesnya dari method yang meng-override (overriding
method).
Kata kunci final dapat digunakan untuk mencegah suatu
method agar tidak dapat dioverride oleh kelas turunannya.

Contoh
Public class Animal {
Public void SetVoice(){
System.out.println(Blesepblesep);
}
}
Public class Dog extends Animal {
Public void SetVoice(){
System.out.println(Hug Hug);
}
}

3.3

Overloading Method
Overloading Method adalah suatu keadaan dimana beberapa
method sekaligus dapat mempunyai nama yang sama dengan isi
dan parameter yang berbeda didalam sebuah kelas. Overloading
method dapat terjadi baik pada class yang sama, maupun pada
hubungan superclass dan subclass. Ciri-ciri overloading adalah :
1. Nama method harus sama.
2. Daftar tipe, dan/atau jumlah parameter harus berbeda.
3. Tipe kembalian (return type) bisa berbeda, bisa sama.
Contoh
class buku {
private string judul;
private int tahun:
pribate string pengarang:
buku (){}
buku (string judul, int tahun,steing pengarang){
this.judul = judul; this.tahun = tahun;
this.pengarang = pengarang;}
public void setbuku (string judul){
this.judul = judul; }
public void setbuku (string judul, int tahun){
this.judul = judul; this.tahun = tahun;}

public void setbuku (string judul, int tahun, string


pengarang) {
this.judul = judul; this.tahun = tahun;
this.pengarang = pengarang;}

Ketiga method diatas memiliki nama dan return type yang


sama, hanya saja berbeda parameter-nya.

BAB 4
ADVANCED CLASS FEATURES

Daftar pustaka :
Harianto, Bambang. Esensi-esensi Bahasa Pemrograman Java.

Informatika Bandung, 2003.


Hermawan, Benny. Menguasai Java 2 dan Objek Oriented

Programing. Penerbit Andi, 2004.


Modul praktikum Program Berorientasi Objek semester 3.

Supardi, Yuniar. Semua Bisa Menjadi Programmer Java Basic


Programming. Penerbit PT Elex Media Komputindo, 2010.

Anda mungkin juga menyukai