Rabu, 04 Mei 2016

Modifier

Pengertian Modifier
Enkapsulasi (encapsulation) merupakan cara untuk melindungi property(atribut) / method tertentu dari sebuah kelas agar tidak sembarangan diakses dan dimodifikasi oleh suatu bagian program.
Cara untuk melindungin data yaitu dengan menggunakan access modifiers (hak akses).
Ada 4 macam modifiers pada bahasa pemrograman java yang akan kita bahas, yaitu :
  • default
  • public
  • protected
  • private
Mengenal Access Modifier di Java


Modifier Default
Modifier default merupakan akses untuk property / method / class yang hanya bisa diakses oleh class dalam package yang sama.
Cara penulisan hak akses default :
// untuk class dengan akses default
class NamaKelas

// untuk variabel dengan akses default
tipeData nama_variable

// untuk method dengan akses default
namaMethod()
Contoh :
Main-Class: ContohClass


ContohClassPaketDua.java
package contoh_paket_dua;

class ContohClassPaketDua {
    void tampilkan() {
        System.out.println("Ini dari paket 2");
    }
}
ContohClass.java
package contoh_paket;

import contoh_paket_dua.*;
    // kata kunci import digunakan untuk memasukkan package yang berbeda
    // gunakan .* untuk mengakses semua kelas pada package
    // gunakan .NamaKelas untuk mengaksess kelas tertentu

class ContohClass {
    public static void main(String[] args) {
         
        ContohClassPaketDua p2 = new ContohClassPaketDua();
        p2.tampilkan();
         
    }
}
Kode diatas akan error karena kita mengakses class ContohClassPaketDua yang memiliki akses default pada class ContohClass dari package yang berbeda.


Modifier Public
Modifier public yaitu hak akses yang dapat di akses dari manapun, baik itu dari class yang berbeda maupun dari package yang berbeda.
Cara penulisan untuk akses public :
public class NamaKelas
// untuk class dengan akses public

public tipeData nama_variable
//untuk property dengan akses public

public namaMethod()
// untuk method dengan akes public
Contoh :

Struktur projek seperti gambar diatas.
file ContohClass.java sama dengan contoh diatas.
ContohClassPaketDua.java
package contoh_paket_dua;

public class ContohClassPaketDua {
    public void tampilkan() {
        System.out.println("Ini dari paket 2");
    }
}
Jika projek dijalankan hasilnya :
Ini dari paket 2
Disini kita dapat mengakses class ContohClassPaketDua pada class ContohClass meskipun dari package yang berbeda karena ContohClassPaketDua memiliki hak akses bertipe public.

Begitu juga dengan method tampilkan() harus bertipe public agar bisa di akses dari class dan package yang berbeda.



Modifier Protected
Hak akses untuk tipe protected hampir sama dengan public akan tetapi tidak bisa diakses dari paket yang berbeda kecuali merupakan turunan.
Cara penulisannya :
//untuk property
protected tipeData nama_variable

// untuk method
protected namaMethod()
Contoh:

Struktur projek seperti gambar diatas.
file ContohClass.java sama dengan contoh diatas.
ContohClassPaketDua.java
package contoh_paket_dua;

public class ContohClassPaketDua {
    protected void tampilkan() {
        System.out.println("Ini dari paket 2");
    }
}
Coba anda kembali pada ContohClass.java, akan terdapat error pada method tampilkan(). Kenapa, karena method tampilkan() bertipe protected jadi tidak bisa diakses dari package yang berbeda kecuali merupakan turunan.
solusinya :
pada ContohClass.java
package contoh_paket;

import contoh_paket_dua.*;

class ContohClass extends ContohClassPaketDua {
    public static void main(String[] args) {
         
        tampilkan();
         
    }
}
Karena kita mengakses method tampilkan() pada method static yaitu public static void main() maka, method tampilkan juga harus bertipe static. jadi silahkan ganti jadi protected static void tampilkan() pada file “ContohClassPaketDua.java”.
Untuk kata kunci static akan kami jelaskan pada tutorial-tutorial selanjutnya.
Jika tidak ada error maka hasilnya adalah :
Ini dari paket 2


Modifier Private
Modifier private yaitu hak akses yang hanya bisa di akses oleh kelas itu sendiri. jadi hanya diperuntukkan untuk kelasnya sendiri.
Cara penulisannya :
// untuk property/atribut
private tipeData nama_variable

// untuk method
private namaMethod()
Contoh:

Struktur projek dan ContohClass.java sama seperti sebelumnya.
ContohClassPaketDua.java
package contoh_paket_dua;

public class ContohClassPaketDua {
    private void tampilkan() {
        System.out.println("Ini dari paket 2");
    }
}
Disini kita akan mendapatkan error pada “ContohClass.java” karena kita mengkases method tampilkan()pada class yang berbeda.
Solusinya :
ContohClass.java
package contoh_paket;

class ContohClass {
     
    private void tampilkan() {
        System.out.println("Tidak bisa dari luar kelas.");
    }
     
    public static void main(String[] args) {   
       ContohClass a = new ContohClass();
       a.tampilkan();      
    }
}
Jadi file ContohClassPaketDua.java dan package contoh_paket_dua tidak digunakan (boleh dihapus).
Hasil dari kode diatas :
Tidak bisa dari luar kelas.


Tidak ada komentar:

Posting Komentar