Melayani Dengan Nurani

IA

15 Agustus 2020

Menerapkan dan Menyajikkan Konsep Enkapsulasi Dalam Melindungi Data dan informasi

Enkapsulasi adalah suatu cara untuk menyembunyikan implementasi detail dari class untuk mencegah akses yang ilegal.

Dasar dari enkapsulasi yaitu menyembunyikan informasi dan interface untuk mengkses suatu data.

1. M
enyembunyikan informasi adalah menyembunyikan informasi dari suatu class agar tidak bisa diakses dari luar class, caranya hanya dengan memberikan modifier private pada variabel yang ingin kita sembunyikan. 

2. Interface untuk mengkses data maksudnya suatu cara kita untuk mengubah nilai pada suatu variabel yang telah dilakukan penyembunyian informasi (information hidding). 

Cara yang biasa dilakukan mengubah data adalah dengan melalui method, lewat method ini kita bisa merubah nilai suatu variabel yang telah kita sembunyikan.

Enkapsulasi tersebut terdiri dari tiga jenis yaitu public, protected, dan private.

1. Access  Public

Merupakan kata kunci yang digunakan dalam java yang memungkinkan setiap variabel dan method yang dideklarasikan dalam class public dapat diakses oleh semua class yang sama, subclass atau non subclass yang sama di package yang sama, subclass dan non subclass di package yang berbeda.

2. Access Protected

Merupakan kata kunci yang dideklarasikan untuk memproteksi suatu class agar setiap variabel dan method yang dideklarasikan tidak dapat di akses oleh non subclass di dalam package yang sama.

Dalam class protected, yang dapat mengakses variabel dan method nya adalah jika methodnya berada pada class nya sama, subclass dan non sub yang sama di package yang sama, dan subclass di package yang berbeda.

3. Access Private

Merupakan kata kunci yang dideklarasikan dalam suatu class agar setiap variabel dan method yang berada dalam class private ini hanya dapat diakses oleh class yang sama.

Didalam bahasa pemrograman java class yang bersifat private memproteksi agar semua variabel dan methodnya tidak dapat di akses oleh semua subclass dan non subclass di package yang sama, dan subclass dan non subclass di package yang berbeda.

Untuk berinteraksi dengan sebuah objek pada PBO, kita tidak bisa mengakses atau mengubah atribut yang bersifat private yang ada di dalam sebuah objek tersebut. Kita dapat berinteraksi dengan objek hanya melalui atribut / metode yang bersifat public.



/**
 * @(#)MotorKopling.java
 *
 *
 * @author 
 * @version 1.00 2020/8/15
 */

public class MotorKopling {
    
    //Atribut
    private int kecepatan;
    private boolean nyala;
    
    public MotorKopling(){// <-- konstruktor        
        nyala = false; // <-- inisialisasi kondisi awal yaitu mati
        kecepatan = 0; // <-- inisialisasi kecepatan awal yaitu 0                
    }
    
    public void power(boolean nyala){        
        this.nyala = nyala;
       
        if(!nyala){ // <-- jika power mati maka kecepatan akan sama dengan 0
            kecepatan = 0;
        System.out.println("Motor mati!");               
        } else
        {
        System.out.println("Motor Hidup!");        
        }
       
    }
    
    //Imajinasikan bahwa Motor memiliki 3 perseneling 
    //3 perseneling untuk mengatur kecepatan, yaitu Pelan,Sedang dan Kencang.

    public void kecepatanPelan(){
        this.kecepatan = 1;
        System.out.println("Kecepatan pelan!");
    }
    
    public void kecepatanSedang(){
        this.kecepatan = 2;
        System.out.println("Kecepatan Sedang!");         
    }
    
    public void kecepatanKencang(){
        this.kecepatan = 3;
        System.out.println("Kecepatan Kencang!");         
    }
    
}
class MotorKoplingRun{
    public static void main(String[] args) {
        
        MotorKopling objMotorKopling = new MotorKopling();// <-- membuat objek 
        
        objMotorKopling.power(true);// <-- menyalakan motor
        objMotorKopling.kecepatanPelan();// <-- mengubah kecepatan menjadi pelan
        objMotorKopling.kecepatanSedang();// <-- mengubah kecepatan menjadi sedang
        objMotorKopling.kecepatanKencang();// <-- mengubah kecepatan menjadi kencang
        objMotorKopling.power(false);// <-- mematikan matikan motor
        
    }
}




Reactions:

0 comments:

Posting Komentar

Nuhun sudah komentar