assalamualaikum sahabat cyber kembali lagi dengan mahasiswacyber dimana kali ini kita akan membahas tingkatan akses yang ada di bahasa pemrograman java oop disini kita akan menggunakan hak akses public private dan protected .

baik sahabat cyber sebelum kita mulai alangkah baiknya kita tahu dahulu apa itu public, private dan protected. ketiga hal ini disebut sebagai access modifier, apa fungsi acces modifier ? adalah untuk membatasi akses sebuah class, konstruktir, data, dan method ke class lain. 

kemudian apa fungsi dari masing-masing access modifier tersebut dan bagaimana cara penggunaanya ? mari kita bahas.

baiklah sahabat cyber kali ini kita akan menggunakan compiler/text editor visual studio code untuk ngoding java  :





1.  PUBLIC
dari judulnya kita bisa melihat bahwa public artinya bisa diakses oleh siapa saja baik itu package yagng berbeda ,class yang berbeda semuanya dapat diakses bahkan ketika sesuatu diberikan class public yang tadinya private bisa menjadi public tapi dengan aturan tertentu , mari kita lihat contohnya berikut ini 


disini kita membuat sebuah package bernama "bangun" dan didalamnya ada sebuah class bernama public1.java

disini kita deklarasikan variabel int nilai1,nilai2,alas,tinggi dengan public : 

public int nilai1,nilai2;
public int alas,tinggi;

lalu kita membuat method dengan public juga untuk menghitung bangun datar seperti codingan diatas.
lalu kita akan menghubungkan public1 ini dengan sebuah class yang berada di package berbeda apakah bisa dihubungkan ? mari kita coba 



disini kita membuat sebuah package bernama datar dan didalamnnya berisi sebuah class bernama public2.java

pertama kita akan mengimpor package nya dahulu dengan perintah

  import bangun.public1;

artinya kita akan menginpor package bangun dan class public1
lalu kita akan import kotak dialog JOptionPane 

  import javax.swing.JOptionPane;

lalu kita hubungkan kedua package tersebut dengan 

 bangun.public1 pb = new public();

lalu kita coding dengan codingan diatas atau download source code disini........

kita telah menghubungkan 2 class di package yang berbeda dengan public dan akan menghasilkan output berikut ini :







2. private
sesuai dengan namanya private atau pribadi artinya hanya bisa diakses oleh pemiliknya sendiri sehingga yang diberikan access modifier private hanya bisa diakses oleh class itu sendiri ada beberapa aturan dan ketentuan khusus tentang private ini yaitu :

  • Data dan method private hanya bisa diakses di dalam class yang memilikinya
  • Class dan Interface tidak dapat dideklarasikan sebagai private
  • Jika sebuah class memiliki konstruktor private maka kita tidak dapat membuat object dari class tersebut di luar class tersebut.

dari sini muncul sebuah pertanyaan ? apakah bisa kita menghubungkan 2 class didalam package yang sama?  ternayata bisa sahabat cyber semuanya bagaimana caranya ? caranya adalah dengan menggunakan sebuah method sebagai jembatan kita yang diamana method tersebut kita beri hak akses public
mari kita coba

-pertama kita buat variabel private nya dahulu 

 private String nama;
private String nim,kelas;
private double nilai;

-lalu kita akan membuat private bisa diakses dengan menjadikannya  method public dengan cara method dan kembalian dengan cara : 

public void set_nim(String nim)
{
this.nim=nim;
}

public String get_nim()
{
return nim;
}

-lakukan seterusnya untuk semua variabel private
 



selanjutnya kita akan memanggil variabel tersebut di class berbeda dimana kita telah menjadikannya sebuah method dengan cara : 
-pertama kita membuat scanner dahulu karena kita akan melakukan inputan

Scanner cetak = new Scanner(System.in);

-kita buat penghubung kedua class tersebut dahulu dengan cara 

 private pt=new private1();

-lalu kita akan memanggil variabel private yang kita buat tadi melalui method dengan cara

System.out.println("masukan nim   : ");
pt.set_nim(cetak.next());

- lakukan berulang ke semua inputan
- kita membuat output dengan cara 

System.out.println("nim    : "+pt.get_nim);
lakukan berulang sampai semua outputan seperti codingan dibawah ini 
 


dari codingan tersebut akan menghasilkan outputan sebagai berikut : 


nah kita telah berhasil menghubungkan kedua class yang mana variabel di class tersebut memiliki hak akses private untuk source code bisa di download disini


3.PROTECTED
protected diiabaratkan kita naik kereta api dimana dalam kereta api memiliki beberapa kelas didalam 1 rangkaian misalnya ada kelas bisnis,ekonomi dan vip namun masih didalam 1 rangkaian yang sama (package).
jadi protected ini kita hubungkan ke semua class namun hanya di package yang sama. 
modifier protected akan membuat member dan class hanya bisa diakses dari : 

A. class itu sendiri;
B. sub class atau class anak;
C.package(class yang berada satu package dengannya).

mari kita buktikan : 
-disini kita akan menghubungkan class protected1.java  dan class protected2.java didalam package yang sama yaitu package bangun_datar

-kita buat variabel protected nya dahulu 
 protected String nama;
protected String nim,kelas;
protected String ket;
protected double nilai;

public protected1()
{

}

- lalu lakukan coding seperti dibawah ini






-lalu kita buat sebuah class lagi didalam package yang sama dengan nama protected2

-kita hubungkan kedua class tersebut 

protected1 pt new protected1();

lalu lakukan codingan seperti gambar dibawah ini




- karena didalam package yang sama maka tidak akan terjadi error mari kita buktikan apakah program kita berjalan 



voilah seperti apa yang saya bilang kita menghubungkan kedua class tersebut didalam package yang sama 

lalu tadi saya bilang hanya bisa jika class berada di package yang sama , mari kita buktikan dengan membuat sebuah class di package yang berbeda apakah masih bisa dihubungkan : 

-pertama kita akan membuat sebuah package dengan nama ml dan didalamnya ada sebuah class bernama bukti.java


-lalu kita akan import terlebih dahulu
 
 import bangun_datar.protected1;

-lalu kita hubungkan kedua class tersebut 

protected1 pt = new protected1();





- lalu kita coba panggil variabel nama dengan perintah

pt.nama="zainul";

System.out.print("nama saya :  "+pt.nama);

apakah hal ini akan berhasil ? mari kita buktikan 


program error dan tidak berjalan karena protected tidak bisa mengakses class yang berada diluar package karena protected hanya bisa mengakses hanya yang satu package dengannya
untuk source lengkapnya download disini


link download source code : 
- public     : klik disini
- private    : klik disini 
-protected : klik disini 


sekian pembahasan kita tentang hak akses jika ada salah mohon koreksi dan saya minta maaf sampai jumpa di next pembahasan selanjutnya salam hangat Admin mahasiswacyber bye bye assalamualakikum