Anda di halaman 1dari 10

MAKALAH

PEMROGRAMAN BERORIENTASI OBJEK

TENTANG “POLIMORFISME(POLYMORFIRSM) DAN


ENKAPSULASI(ENCAPSULATION)”

DOSEN PENGAMPU : RIZALDI,M.Kom.

DI SUSUN OLEH :

ANDINI FEBRIANTI || 19220071

WULAN LESTARI || 19220147

AISYAH RAIHAN FAZIRA || 19220264

PROGRAM STUDI SISTEM INFORMASI SEKOLAH TINGGI MANAJEMEN


INFORMATIKA KOMPUTER (STMIK)
ROYAL KISARAN

2020
KATA PENGANTAR

Segala Puji bagi Allah SWT yang telah memberikan kemudahan sehingga dapat
menyelesaikan makalah ini dengan tepat waktu. Tanpa pertolongannya tentunya tidak akan sanggup
menyelesaikan makalah ini dengan baik. sholawat serta salam semoga terlimpah curahkan kepada
baginda kita yaitu Nabi “Muhammad SAW” yang kita nanti-nantikan syafa’atnya di akhir nanti.
sehubung dengan ini kami telah menyelesaikan makalah yang telah kami buat yang berjudul:
“POLIMORFISME(POLYMORFIRSM) DAN ENKAPSULASI (ENCAPSULATION)” kami
memohon maaf apabila ada kesalahan dalam penulisan kami mohon maaf atas perhatiannya
kami ucapkan terima kasih.

A. Konsep Polimorfisme (Polymorphism)


Polymorphism adalah salah satu konsep penting dalam object oriented programming (OOP) di
bahasa Java setelah abstraction dan inheritance. Polymorphism berarti banyak bentuk. Ada beberapa
definisi berbeda tentang polymorphism. Sedangkan polymorphism sendiri sulit didefinisikan. Sejalan
dengan contoh program yang diberikan, Anda diharapkan dapat mengerti dan memahami konsep
polymorphism itu sendiri.
Poly artinya banyak, morfisme artinya bentuk.
Polimorfisme (bahasa inggris polymorphism) adalah sebuah prinsip dalam biologi di mana
oraganisme atau spesias dapat memiliki banyak bentuk atau tahapan (stages).
Prinsip ini juga diadopsi pada pemrograman berorientasikan objek.
Sehingga kita dapat definisikan sebagai berikut:
Polimorfisme dalam OOP adalah sebuah prinsip di mana class dapat memiliki
banyak “bentuk” method yang berbeda-beda meskipun namanya sama.
“Bentuk” di sini dapat kita artikan: isinya berbeda, parameternya berbeda, dan tipe datanya berbeda.
Polimorfisme pada Java ada dua macam:
1. Static Polymorphism (method overloading)
2. Dynamic Polymorphism (method overriding)

Polymorphism sering dikaitkan dengan penggunaan lebih dari satu metoda dengan nama sama.
Penggunaan metoda dengan nama sama dapat melalui method overloading dan juga method
overriding. Peran polymorphism sebenarnya tidak terbatas hanya pada hal-hal tersebut. Ada
keterkaitan erat antara polymorphism dan inheritance (turunan).

Contoh Program Polimorfisme

Pada diagram tersebut, terdapat class Bangun Datar yang memiliki tiga subclass,
yaitu: Persegi, Lingkaran, dan Segitiga.
Setiap class memiliki method yang sama yaitu luas() dan keliling(). Akan tetapi method-method ini
memiliki isi rumus yang berbeda.

Buatlah class baru dengan BangunDatar, kemudian isi dengan kode berikut :
package bangundatar;

publicclassBangunDatar{

floatluas(){

System.out.println("Menghitung luas bangun datar");

return 0;

floatkeliling(){

System.out.println("Menghitung keliling bangun datar");

return 0;

Berikutnya buat class lagi dengan nama Persegi dan isi kodenya seperti ini :

package bangundatar;

publicclassPersegiextends BangunDatar{

int sisi;

publicPersegi(int sisi){

this.sisi= sisi;

@Override

publicfloatluas(){

returnthis.sisi*this.sisi;

@Override

publicfloatkeliling(){
returnthis.sisi* 4;

Berikutnya buat class Segitiga dengan isi sebagai berikut :

package bangundatar;

publicclassSegitigaextends BangunDatar{

int alas;

int tinggi;

publicSegitiga(int alas,int tinggi){

this.alas= alas;

this.tinggi= tinggi;

@Override

publicfloatluas(){

returnthis.alas*this.tinggi;

Berikutnya buat class Lingkaran dengan isi sebagai berikut :


package bangundatar;

publicclassLingkaranextends BangunDatar {

int r;

publicLingkaran(int r){

this.r= r;

@Override

publicfloatluas(){

return(float)(Math.PI* r * r);

@Override

publicfloatkeliling(){

return(float)(2 * Math.PI* r);

Terakhir, buat class Main dengan isi sebagai berikut :

package bangundatar;

publicclassMain{

publicstaticvoidmain(String[] args){

BangunDatar bangunDatar =new BangunDatar();

Persegi persegi =new Persegi(4);

Segitiga segitiga =new Segitiga(6, 3);

Lingkaran lingkaran =new Lingkaran(50);


// memanggil method luas dan keliling

bangunDatar.luas();

bangunDatar.keliling();

System.out.println("Luas persegi: "+ persegi.luas());

System.out.println("keliling persegi: "+ persegi.keliling());

System.out.println("Luas segitiga: "+ segitiga.luas());

System.out.println("Luas lingkaran: "+ lingkaran.luas());

System.out.println("keliling lingkaran: "+ lingkaran.keliling());

Sekarang kita sudah punya lima class di dalam package bangun datar.

Class yang bisa dijalankan hanyalah class Main, karena ia memiliki method main. Untuk
menjalankannya, silahkan klik kanan pada class main. Lalu pilih Run File.

Maka hasilnya:
B. Konsep Enkapsulasi (Encapsulation)

Enkapsulasi (encapsulation) adalah sebuah metoda untuk mengatur struktur class dengan cara
menyembunyikan alur kerja dari class tersebut.
Enkapsulasi(encapsulation) adalah sebuah metode untuk mengatur struktur class dengan cara
menyembunyikan alur kerja dari class tersebut. Struktur class yang dimaksud
adalah property dan method. Dengan enkapsulasi, kita bisa membuat pembatasan akses
kepada property dan method, sehingga hanya property dan method tertentu saja yang bisa diakses dari
luar class. Enkapsulasi juga dikenal dengan istilah ‘information hiding’.

Enkapsulasi Objek: Public, Protected dan Private


Untuk membatasi hak akses kepada property dan method di dalam sebuah class, Objek Oriented
Programming menyediakan 3 kata kunci, yakni Public, Protected dan Private. Kata kunci ini
diletakkan sebelum nama property atau sebelum nama method.
Dalam enkapsulasi terdapat hak akses public, private, dan protected. Public memungkinkan semua
class dapat mengakses suatu properti atau method yang terdapat pada class lain. Private hanya dapat
diakses oleh class-nya sendiri. Sedangkan protected dapat diakses oleh class-nya sendiri dan
turunannya serta class-class yang terdapat dalam satu package.
Sebagai contoh, jika hak akses public pada sebuah constructor diganti menjadi private maka
program akan mengalami error. Private adalah level proteksi untuk sebuah objek dalam suatu class
yang mendefinisikannya sehingga objek tidak dapat keluar dari class tersebut.
Dalam implementasinya dapatkah kita memberikan hak akses pada constructor? Constructor
berfungsi untuk menginisialisasi objek dari suatu class. Constructor merupakan method yang memiliki
nama sama dengan class-nya dan bersifat public. Constructor dapat menerima parameter namun tidak
dapat mengembalikan nilai.
Untuk mencegah kesalahan ketika menjalankan program, constructor dapat diberikan hak akses
protected atau public, atau juga dapat menerapkan interface to access data.

Contoh Encapsulation dalam program :


input1 : class Encapsulation

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author Dedekurniawan
*/
public class Encapsulation {

private String nama;


private int nim;

public String getNama(){


return this.nama;
}

public void ModifNama(String nama){


this.nama=nama;
}
}

input2 : class main

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author Dedekurniawan
*/
public class main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Encapsulation objek = new Encapsulation();
objek.ModifNama("Muksalmina");
System.out.println("Nama : "+objek.getNama());

Output :
Output – PPT4 (run)

Run

Saya adalah

Nama Muksalmina

Nim 1590343097

BUILD SECCESSFUL (total time : 0 seconds)

Anda mungkin juga menyukai