Anda di halaman 1dari 18

MAKALAH

PEMROGRAMAN BERORIENTASI OBJEK


ENCAPSULATION dan INHERITANCE

DISUSUN OLEH :

Nama : DESNITA ASPRIYANI

NIM : H161600518

PROGRAM DIPLOMA 4
JURUSAN MANAJEMEN PERTANIAN
PROGRAM STUDI MANAJEMEN INFORMATIKA
POLITEKNIK PERTANIAN NEGERI SAMARINDA
SAMARINDA
2018
ii

KATA PENGANTAR

Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa yang telah

memberikan rahmat serta karunia-Nya kepada penulis, sehingga penulis dapat

menyelesaikan makalah yang berjudul Pemrograman Berorientasi Objek :

Encapsulation dan Inheritance.

Pada kesempatan ini penulis mengucapkan banyak terimakasih kepada

Bapak Abdul Rozaq, S.Kom, M.Cs yang telah memberikan bimbingan, dukungan,

dan kepercayaan yang begitu besar. Dukungan dari keluarga dan teman-teman

dekat yang telah membantu hingga terselesaikannya laporan ini.

Dalam penyusunan laporan ini penulis menyadari masih banyak terdapat

kekurangan dan kelemahan. Semoga laporan ini dapat bermanfaat bagi siapa

saja yang memerlukannya.

Samarinda, Maret 2018

Desnita Aspriyani
iii

DAFTAR ISI

Halaman
KATA PENGANTAR i
DAFTAR ISI ii
BAB I PENDAHULUAN
A. Latar Belakang 1
B. Rumusan Masalah 1
C. Tujuan 2
BAB II PEMBAHASAN
A. Encapsulation 3
B. Inheritance 6
BAB III PENUTUP
A. Kesimpulan 13
B. Saran 13
DAFTAR PUSTAKA 14
1

BAB I
PENDAHULUAN

A. Latar Belakang

Pesatnya teknologi, terutama teknologi komputer sudah tak bisa

dipungkiri lagi, bagi yang mengikuti perkembangannya, ia tidak akan

dipandang sebelah mata. Teknologi komputer sudah menyusupi hampir

semua bidang kehidupan manusia. Dari pemerintah pusat sampai tingkat

pemerintah desa, perusahaan-perusahaan, supermarket, minimarket,

perguruan tinggi, SLTA, SLTP, bahkan SD hamper semuanya mengenal

komputer.

Saat ini, yang mempunyai lingkungan yang semakin luas dan banyak

diminati, juga dapat digunakan untuk menghasilkan uang adalah dunia

pemrograman komputer. Dalam dunia pemrograman komputer, dikenal

banyak bahasa pemrograman, seperti C, C++, Pascal, Basic, Java, dan lain-

lain. Di antara banyaknya bahasa pemrograman, penyusun akan membahas

bagian dari pemrograman Java yaitu Encapsulation dan Inheritance dalam

makalah ini.

B. Rumusan Masalah

1. Apa yang dimaksud dengan encapsulation ?

2. Apa saja access modifier encapsulation ?

3. Apa keuntungan dari encapsulation ?

4. Apa yang dimaksud dengan Inharitance ?

5. Bagaimana syntax dari inheritance ?

6. Apa saja tipe inheritance di Java ?


2

C. Tujuan

1. Untuk mengetahui apa itu encapsulation.

2. Untuk mengetahui apa saja access modifier encapsulation.

3. Untuk mengetahui keuntungan dari encapsulation.

4. Untuk mengetahui apa itu inheritance.

5. Untuk mengetahui bagaiamana syntax dari inheritance.

6. Untuk mengetahui tipe dari inheritance.


3

BAB II
PEMBAHASAN

A. Encapsulation

Encapsulation atau enkapsulasi adalah satu dari empat konsep OOP

mendasar. Tiga lainnya adalah inheritance, polymorphism, dan abstraction.

Encapsulation di Java adalah mekanisme pembungkus data (variabel)

dan kode yang bekerja pada data (metode) bersama sebagai satu kesatuan.

Dalam encapsulation, variabel kelas akan disembunyikan dari kelas lain, dan

hanya bisa diakses melalui metode kelas mereka saat ini. Oleh karena itu,

juga dikenal sebagai data hiding.

Untuk mencapai encapsulation di Java, deklarasikan variabel kelas

sebagai private. Menyediakan metode setter dan getter public untuk

memodifikasi dan melihat nilai variabel.

Java mendukung empat access modifier yang dapat gunakan untuk

menentukan visibilitas class, method, dan attribute. Masing-masing

menentukan tingkat aksesibilitas yang berbeda, dan hanya dapat

menggunakan satu pengubah per class, method atau attribute. Sebagai

aturan praktis, selalu menggunakan pengubah yang paling ketat yang masih

memungkinkan untuk penerapan logika.

Function setter digunakan untuk memberikan set nilai untuk suatu

properti. function ini sering digunakan untuk memvalidasi data yang masuk

sebelum data tersebut diisikan pada suatu properti. Sedangkan getter

digunakan untuk menghasilkan suatu nilai dari hasil perhitungan.


4

Contoh Code:

Manusia.java
class Manusia{
private float berat;
private float tinggi;
private float bmi;

public float getBerat() {


return berat;
}
public void setBerat(float berat){
this.berat = berat;
}
public float getTinggi(){
return tinggi;
}
public void setTinggi(float tinggi){
this.tinggi = tinggi;
}
public float getBmi(){
return bmi;
}
public void setBmi(float bmi){
this.bmi = bmi;
}
}

Bmi.java
public class Bmi{
public static void main(String[] args){
Manusia h1 = new Manusia();
//using setters of Manusia
h1.setTinggi(1.70f);
h1.setBerat(68);
h1.setBmi(calculateBmi(h1));

System.out.println("Person has "+h1.getBerat()+" kgs


and is "+h1.getTinggi()+" meters in height, which results in BMI of
"+h1.getBmi());
}

public static float calculateBmi(Manusia h1){


return
h1.getBerat()/(h1.getTinggi()*h1.getTinggi());
}
}
5

1. Access modifier encapsulation, yaitu :

 Private memberikan hak akses hanya kepada anggota class tersebut

untuk menggunakan dan/atau mengubah nilai dari property atau

method tersebut.

 Protected memberikan hak akses kepada anggota class nya dan

anggota class hasil inheritance (penurunan sifat) dari class tersebut.

 Public memberikan hak akses kepada property dan method agar

dapat digunakan diluar class tersebut.

2. Keuntungan dari Encapsulation:

 Menyembunyikan Data: Pengguna tidak akan tahu tentang penerapan

dalam class. Tidak akan terlihat bagi pengguna bahwa bagaimana

class menyimpan nilai dalam variabel. Dia hanya tahu bahwa kita

menyampaikan nilai ke metode setter dan variabel diinisialisasi

dengan nilai itu.

 Peningkatan Fleksibilitas: Kita bisa membuat variabel kelas sebagai

read-only atau write-only tergantung kebutuhan kita. Jika kita ingin

membuat variabel sebagai read-only maka kita harus menghilangkan

metode setter seperti setName (), setAge () dll dari program atau jika

kita ingin membuat variabel sebagai write-only maka kita harus

menghilangkan mendapatkan metode seperti getName (), getAge ()

dll dari program.

 Reusability: Encapsulation juga meningkatkan kegunaan dan mudah

berubah dengan persyaratan baru.

 Uji kode mudah: Kode encapsulation mudah diuji untuk pengujian

unit.
6

B. Inheritance

Inheritance atau pewarisan merupakan pilar penting dari OOP (Object

Oriented Programming). Ini adalah mekanisme di java dimana satu kelas

diperbolehkan untuk mewarisi fitur (bidang dan metode) kelas lain.

Terminologi penting:

 Super Class : Kelas yang fiturnya diwariskan dikenal sebagai super

class (atau kelas dasar atau parent class).

 Sub Class : Kelas yang mewarisi kelas lainnya dikenal sebagai sub

class (atau kelas turunan, kelas lanjutan, atau kelas anak). Sub class

dapat menambahkan bidang dan metode sendiri selain bidang dan

metode superkelas.

 Reusability: Warisan mendukung konsep "usabilitas", yaitu ketika kita

ingin membuat kelas baru dan sudah ada kelas yang mencakup

beberapa kode yang kita inginkan, kita bisa mendapatkan kelas baru

kita dari kelas yang ada. Dengan melakukan ini, kita menggunakan

kembali bidang dan metode kelas yang ada.

1. Syntax Inheritance di Java :

class Subclass-name extends Superclass-name


{
//methods and fields
}

Kata kunci extends menunjukkan bahwa Anda membuat kelas baru

yang berasal dari kelas yang ada. Arti "extends" adalah untuk

meningkatkan fungsionalitas.

Dalam terminologi Java, kelas yang diwarisi disebut parent atau super

clas dan kelas baru disebut child atau subclass.


7

2. Tipe Inheritance di Java

Berikut adalah berbagai jenis inheritance yang didukung oleh Java.

a) Single Inheritance

Dalam pewarisan tunggal, subclass mewarisi fitur dari satu

superclass. Pada gambar di bawah, kelas A berfungsi sebagai kelas

dasar untuk kelas turunan B.

B
Single Inheritance

 Syntax Single Inheritance :

public class A {
……………….
}
public class B extends A {
………………..
}

 Contoh Code
class Animal{
void eat(){System.out.println("eating...");}
}
class Dog extends Animal{
void bark(){System.out.println("barking...");}
}
class TestInheritance{
public static void main(String args[]){
Dog d=new Dog();
d.bark();
d.eat();
}
}
8

Output :

barking…
eating…

b) Multilevel Inheritance

Dalam Multilevel Inheritance, sebuah kelas turunan akan mewarisi

kelas dasar dan juga kelas turunan juga bertindak sebagai kelas

dasar ke kelas lainnya. Pada gambar di bawah, kelas A berfungsi

sebagai kelas dasar untuk kelas turunan B, yang pada gilirannya

berfungsi sebagai kelas dasar untuk kelas turunan C. Di Java, kelas

tidak dapat langsung mengakses anggota grandparent.

A Base Class (Kelas Dasar)

Intermediatory Class
B (Kelas Perantara)

C Derived Class (Kelas Turunan

Multilevel Inheritance

 Syntax Multilevel Inheritance :

public class A {……………….}

public class B extends A {………………..}

public class C extends B {………………..}


9

 Contoh Code

class Mahasiswa{
void maha(){System.out.println("Mahasiswa");}
}
class Nama extends Mahasiswa{
void nama(){System.out.println("Desnita Aspriyani");}
}
class NIM extends Nama{
void nim(){System.out.println("H161600518");}
}
class Test2{
public static void main(String args[]){
NIM d=new NIM();
d.nim();
d.nama();
d.maha();
}
}
Output :

H161600518
Desnita Aspriyani
Mahasiswa

c) Hierarchical Inheritance

Dalam Hierarchical Inheritance, satu kelas berfungsi sebagai

superclass (kelas dasar) untuk lebih dari satu sub kelas. Pada gambar

di bawah ini, kelas A berfungsi sebagai kelas dasar untuk kelas

turunan B, C dan D.

B C
Hierarchical Inheritance
10

 Syntax Hirerchical Inheritance :

public class A {……………….}

public class B extends A {………………..}

public class C extends A {………………..}

 Contoh Code

class Animal{
void eat(){System.out.println("eating...");}
}
class Dog extends Animal{
void bark(){System.out.println("barking...");}
}
class Cat extends Animal{
void meow(){System.out.println("meowing...");}
}
class Test3{
public static void main(String args[]){
Cat c=new Cat();
c.meow();
c.eat();
//c.bark();//C.T.Error
}
}

Output :

meowing…
eating…

d) Multiple Inheritance (Melalui Antarmuka)

Dalam Multiple inheritance, satu kelas dapat memiliki lebih dari satu

superclass dan mewarisi fitur dari semua kelas induk. Perlu diketahui

bahwa Java tidak mendukung banyak inheritance dengan kelas. Di

java, kita bisa meraih multiple inheritance hanya melalui Interfaces.

Pada gambar di bawah ini, Class C berasal dari antarmuka A dan B.


11

A B

C
Multiple Inheritance

Syntax Hirerchical Inheritance :


public class A {……………….}
public class B {…………………}
public class C extends A,B {………………..}
//Java does not support multiple inheritance

Untuk mengurangi kompleksitas dan menyederhanakan

bahasa, multiple inheritance tidak didukung di java.

Pertimbangkan skenario di mana A, B dan C adalah tiga kelas.

Kelas C mewarisi kelas A dan B. Jika kelas A dan B memiliki metode

yang sama dan Anda menyebutnya dari objek kelas anak, akan ada

ambiguitas untuk memanggil metode kelas A atau B.

Karena kesalahan waktu kompilasi lebih baik daripada

kesalahan runtime, java merender waktu kompilasi jika Anda mewarisi

2 kelas. Jadi, apakah Anda memiliki metode yang sama atau berbeda,

akan ada kesalahan waktu kompilasi sekarang.

e) Hybrid Inheritance

Ini adalah gabungan dari dua atau lebih jenis warisan di atas. Karena

java tidak mendukung multiple inheritance bersama classes, hibrid

inheritance juga tidak mungkin dilakukan dengan kelas. Misalnya

kelas A & B memperluas kelas C dan kelas D yang lain memperluas


12

kelas A, maka ini adalah contoh pewarisan hibrida karena ini adalah

kombinasi dari warisan tunggal dan hierarkis.

A
A A
A
Hybrid Inheritance
13

BAB III
PENUTUP

A. Kesimpulan

Dari makalah ini dapat disimpulkan bahwa, Encapsulation adalah

mekanisme pembungkus data dan kode sebagai satu kesatuan yang dimana

variable dari class akan disembunyikan di class lain dan hanya bisa diakses

melalui metode class tersebut.

Sedangkan Inheritance adalah mekanisme java yang dimana satu

class hanya biperbolehkan mewarisi metode class lain. Inheritance terdiri dari

super class, sub class, dan reusability.

B. Saran

Dengan adanya makalah ini, penulis berharap kemajuan teknologi di

bidang bahasa pemrograman masa kini dapat meningkatkan kinerja

programer. Diharapkan dengan adanya bahasa pemrograman yaitu Java,

seorang programmer dapat menggunakannya dengan bijak dan sesuai

kegunaannya yang benar.


14

DAFTAR PUSTAKA

Code Java. 2017. Java Access Modifiers Examples: public, protected, private

and default. http://www.codejava.net/java-core/the-java-language/java-

access-modifiers-examples-public-protected-private-and-default (diakses

tanggal 18 Maret 2018).

Fajri D. N. 2012. Encapsulation Java (PBO).

http://rendtladyrose.blogspot.co.id/2012/04/encapsulation-java-pbo_10.html

(diakses tanggal 17 Maret 2018).

Geeks for Geeks. (n.d). Encapsulation in Java.

https://www.geeksforgeeks.org/encapsulation-in-java/ (diakses tanggal 17

Maret 2018).

_____________. (n.d). Inheritance in Java.

https://www.geeksforgeeks.org/inheritance-in-java/ (diakses tanggal 18

Maret 2018).

Jansenn T. 2017. OOP Concept for Beginners : What is Encapsulation.

https://stackify.com/oop-concept-for-beginners-what-is-encapsulation/

(diakses tanggal 17 Maret 2018).

Javatpoint. (n.d). Inheritance in Java. https://www.javatpoint.com/inheritance-in-

java (diakses tanggal 18 Maret 2018).

Maryani D. 2013. Contoh Makalah Pemrograman Java & C++.

http://hanyadhianamaryani.blogspot.co.id/2013/02/contoh-makalah-

pemprograman-java-c.html (diakses tanggal 18 Maret 2018).


15

Permadi D. 2012. Encapsulation pada Java.

http://oopku.blogspot.co.id/2012/11/encapsulation-pada-java.html (diakses

tanggal 17 Maret 2018).

Singh C. 2013. Encapsulation in Java with example.

https://beginnersbook.com/2013/05/encapsulation-in-java/ (diakses tanggal

17 Maret 2018).

___________. 2013. Inheritance in Java Programming with Example.

https://beginnersbook.com/2013/03/inheritance-in-java/ (diakses tanggal 18

Maret 2018)

Tutorials point. (n.d). Java – Encapsulation.

https://www.tutorialspoint.com/java/java_encapsulation.htm (diakses

tanggal 17 Maret 2018).

___________. (n.d). Java – Inheritance.

https://www.tutorialspoint.com/java/java_inheritance.htm (diakses tanggal

18 Maret 2018).

Anda mungkin juga menyukai