Senin, 11 November 2013

Access Modifier Java

Access Modifier Pada Java

Ketika Program Java dibuat, dan user menginginkan beberapa data dilarang untuk di akses, pengimplementasi inilah yang sering disebut Access Modifiers.  Modifier memberi dampak tertentu  pada kelas, interface, metode dan variable. Kegunaan Access Modifiers ini untuk memberi hak akses kepada user. Tentu tidak semua data yang berada di dalam suatu kelas, atau turunannya dapat diakses, karena terdapat batasan-batasan yang berlaku.
Di dalam Java, terdapat 4 macam Access Modifiers, diantaranya:
1.    Default
2.    Public
3.    Protected
4.    Private


1. Default
Access Modifier ini hanya menspesifikasikan kelas-kelas (classes) di paket yang sama yang bisa mengakses variable dan method suatu kelas. Anggota kelas dengan default access bisa melihat kelas lain dipaket yang sama. Tidak ada keyword khusus untuk mendeklarasikan modifier default access. Sehingga apabila tidak ada access modifier pada pendeklarasian tersebut, berarti yang dimaksud adalah default access.

2.       Public
Suatu anggota kelas (class member) dideklarasikan sebagai public, maka anggota tersebut akan bisa digunakan oleh siapa saja, yaitu baik oleh kelas yang sama,  kelas lain maupun lingkungan luar kelas. Sehingga anggota kelas (class member) yang dideklarasikan sebagai public akan bisa diakses oleh sembarang object lain.

3.       Protected
Access modifier protected menspesifikasikan atau menentukan anggota kelas (class member) yang hanya bisa diakses oleh method-methodyang ada di dalam kelas yang sama dan juga dapat diakses oleh subclass (kelas turunan) dari kelas tersebut.

4.        Private
Access modifier private merupakan tingkatan akses yang sangat terbatas. Kemudian seperti modifier-modifier lain, modifier private menspesifikasikan anggota kelas (class member) yang hanya bisa diakses oleh kelas dimana anggota-anggota kelas tersebut dideklarasikan. Keadaan ini mengakibatkan bahwa tidak ada kelas lain yang bisa mengakses anggota kelas private, sekaligus termasuk subkelas-subkelas (subclassess)-nya
Access modifier private adalah yang paling terbatas, menspesifikasikan anggota kelas(variable dan method) hanya dapat diakses oleh kelas dimana anggota itu didefinisikan.

Contoh penulisan script yang menggunakan access modifier :

package accessmodifier;

/**
 *
 * @author PUTRAKOE
 */

class orang
{   
    private String nama =""; //Dideklarasikan sebagai private karena hanya dipanggil pada class orang
    protected String alamat =""; //Dideklarasikan sebagai protected karena dibutuhkan oleh class ini dan class dibawahnya
    public orang (String nm, String alm) //Dideklarasikan sebagai public karena diperlukan oleh class lainnya
    {
        nama = nm;
        alamat = alm;
    }
    public void setNama (String nm)
    { 
        this.nama = nm;
    }
    public void setAlamat (String alm)
    { 
        this.alamat = alm;
    }
    public String getNama()
    { 
        return nama;
    }
    public String getAlamat()
    { 
        return alamat;
    }
    public String displayInfo()
    {    
        return"Nama : " + nama + ", Alamat :" + alamat;
    }    
}
class dosen extends orang
{    
    private String nip = "";//Dideklarasikan sebagai private karena hanya dipanggil pada class dosen
    public dosen (String nm, String np, String alm)//Dideklarasikan sebagai public karena diperlukan oleh class lainnya
    {
        super (nm,alm);
        nip = np;
    }
    public void setNIP (String np)
    { 
        this.nip = np;
    }
    public String getNIP()
    { 
        return nip;
    }
    public String displayInfo()
    {    
        return super.displayInfo() + ", NIP : " + nip;
    }   
}
class mahasiswa extends orang
{
    private String npm = "";//Dideklarasikan sebagai private karena hanya dipanggil pada class mahasiswa
    public mahasiswa (String nm, String ni, String alm)//Dideklarasikan sebagai public karena diperlukan oleh class lainnya
    {
        super(nm,alm);
        npm = ni;
    }
    public void setNpm (String ni)
    { 
        this.npm = ni;
    }
    public String getNpm()
    {
        return npm;
    }
    public String displayInfo()
    {
        return super.displayInfo() + ", NPM : " + npm;
    }    
}
public class AccessModifier {
    public static void main (String[]args)
    {
        dosen dsn = new dosen ("Bpk. Baharudin", "0019012876","Jalan Kebun asam Bogor");
        mahasiswa mhs = new mahasiswa ("Hardianto Sopyan", "004121121034","Jalan Bukit Pelangi Bogor");
                System.out.println(dsn.displayInfo());
        System.out.println(mhs.displayInfo());
    }

}