Langsung ke konten utama

Belajar Java OOP: Memahami Tingkatan Akses Member dan Class (Modifier)

Belajar Java OOP: Memahami Tingkatan Akses Member dan Class (Modifier)


 
Java Oop Modifier
Class dalam program Java dapat saling berhubungan dengan cara memberikan akses terhadap member mereka.
Salah satu hubungan class yang pernah kita pelajari adalah inheritance (pewarisan).
Semua yang ada di dalam class (atribut dan method) disebut member. Biasanya akan ada tingkatan akses yang disebut modifier.
Pada hubungan inheritance, semua member di dalam class induk akan bisa diakses oleh class anak (subclass), kecuali memeber tersebut diberikan modifier private.
Perlu diingat:
Modifier tidak hanya bisa diberikan kepada member saja. Tapi juga bisa diberikan kepada interface, enum, dan class itu sendiri.
Perhatikan kode program berikut:
Modifier di dalam java
Yang saya garis bawahi pada kode di atas adalah modifier. Modifier ini nanti akan menentukan batasan akses member dan class.

Ada 3 Macam Modifier dalam Java

Secara umum ada 3 macam modifier yang digunakan dalam Java: publicprivate, dan protected.
Apabila kita tidak menggunakan tiga kata kunci tersebut, maka member atau class itu tidak menggunakan modifier (no modifier).
Masing-masing modifier akan menentukan di mana saja member bisa diakses.
Berikut ini tabel jangkauan untuk masing-masing modifier:
ModifierClassPackageSubclassWorld
publicYYYY
protectedYYYN
no modifierYYNN
privateYNNN
Keterangan:
  • Y artinya bisa diakses;
  • N artinya tidak bisa diakses;
  • Subclass artinya class anak;
  • World artinya seluruh package di aplikasi.
Pada tabel di atas… apabila kita tidak menggunakan modifier (no modifier), maka class dan member hanya akan bisa diakses dari Class itu sendiri dan package (class yang berada satu package dengannya).
Agar bisa diakses dari mana saja, maka kita harus memberikan modifier public.
Mari kita lihat contohnya…

1. Public

Modifier public akan membuat member dan class bisa di akses dari mana saja.
Contoh:
package modifier;

class Person {
    public String name;

    public changeName(String newName){
        this.name = newName;
    }
}
Pada class Preson terdapat dua member, yaitu:
  1. atribut name
  2. method changeName()
Kedua member tersebut kita berikan modifier public. Artinya mereka akan bisa diakses dari mana saja.
Namun, class Person tidak kita berikan modifier. Maka yang akan terjadi adalah class tersebut tidak akan bisa diimpor (diakses) dari luar package.
Percobaan mengakses class Person dari luar package
Percobaan mengakses class Person dari luar package
Class Person berada di dalam package modifier, lalu kita coba akses dari default package, maka yyang akan terjadi adalah error seperti gambar di atas.
Bagaimana solusinya agar bisa diakses dari luar package?
Ya kita harus menambahkan modifier public ke dalam class Person.
Menambahkan modifier pada class Person
Menambahkan modifier pada class Person
Maka error akan menghilang dan class Person akan bisa diimpor dari package manapun.
Pada class diagram, modifier public digambarkan dengan simbol plus (+).
Contoh:
Class diagram dengan member public
Semua member dalam class Player memiliki modifier public. Perhatikan simbol + yang ada di depannya.

2. Private

Modifier private akan membuat member hanya bisa diakses oleh dari dalam class itu sendiri.
Perlu diingat:
Modifier private tidak bisa diberikan kepada class, enum, dan interface. Modifier private hanya bisa diberikan kepada member class.
Contoh:
class Person {
    private String name;

    public void setName(name){
        this.name = name;
    }

    public String getName(){
        return this.name;
    }
}
Pada contoh di atas, kita memberikan modifier private pada atribut name dan modifier public pada method setName() dan getName().
Apabila kita coba mengkases langusung atribut name seperti ini:
Person mPerson = new Person()
mPerson.name = "Petani Kode"; // <- maka akan terjadi error di sini
Tidak percaya?
Coba saja di Netbeans:
Error saat mengakses member private
Lalu, bagaimana cara mengakses member private dari luar class?
Kita bisa memanfaatkan method setter dan getter. Karena, method ini akan selalu diberikan modifier public.
Contoh:
Person mPerson = new Person();
mPerson.setName("Petani Kode");

System.out.println("Person Name: " + mPerson.getName());
Pada class diagram, modifier private digambarkan dengan simbol minus (-).
Class Diagram Private Member

3. Protected

Modifier protected akan membuat member dan class hanya bisa diakses dari:
  1. Class itu sendiri;
  2. Sub class atau class anak;
  3. Package (class yang berada satu package dengannya).
Modifier protected juga hanya boleh digunakan pada member saja.
Contoh:
package modifier;

public class Person {
    protected String name;
    
    public void setName(String name){
        this.name = name;
    }
    
    public String getName(){
        return this.name;
    }
}
Pada contoh di atas, kita memberikan modifier protected pada atribut name.
Apabila kita coba mengakses dari class yang satu package dengannya, maka tidak akan terjadi error.
Namun, apabila kita mencoba mengakses dari luar package seperti ini:
import modifier.Person;

public class Author {
    
    Person p = new Person();

    public Author() {
        // akan terjadi error di sini karena atribut name 
        // telah diberikan modifier protected
        p.name = "Petani Kode";
    }
    
}
Maka akan terjadi error.
Error Modifier Protected
Pada class diagram (di StarUML), modifier protected digambarkan dengan tanda pagar (#).
Simbol modifier protected di class diagram

Apa Selanjutnya?

Kita sudah mengetahui 3 macam modifier dalam Java beserta contohnya. Masing-masing modifier akan menentukan batasan akses untuk member dan class.

Komentar

Postingan populer dari blog ini

PROSEDUR PEMBUATAN INDIKATOR

PROSEDUR PEMBUATAN INDIKATOR 1. EBT (ERIOCROM BLACK T) Timbang 100 mg serbuk zat warna EBT ,10 gram Kristal NaCl atau Kristal Na2SO4 an hidrat. Kedua zat tersebut dicampur dengan cara menggerus didalam mortar sampai halus dan merata. Penggunaannya 100 mg (seujung spatel ) untuk satu kali titrasi. 2. Merah metil Larutkan 25 mg metil P dengan 0,95 ml larutan Natrium hidroksida 0,05 N dan 5 ml etanol 95 % setelah larut sempurna, tambahkan etanol 50 % secukupnya hingga 250,0 ml 3. Jingga metil Larutkan jingga metil P 0,04 % b/v dalam etanol 20 % 4. BTB Larutkan 100 mg biru brom timol P dengan 3,2 ml Natrium Hidroksida 0,05 N dan 5 ml etanol 90 % ,setelah larut sempurna tambahkan etanol 20 % secukupnya hingga 250,0 ml. 5. MUREXIDE Haluskan 100 mg serbuk murexide dengan 10 gram KNO3 atau 10 gram NaCl . Pada pemakaiannya 100 gram serbuk murexide tiap volume 150 sampai 200 ml. 6. Larutan indicator Fenolftalein 0,035 %. Timbang ± 0,035 gram Fenolftalein ,lar

LARUTAN PADA KIMIA ANALITIK KUANTITATIF

LARUTAN PADA KIMIA ANALITIK KUANTITATIF 1.        LARUTAN NaOH 0,1  N                 4 gram NaOH dalam 1 Liter 2.        LARUTAN HCl 0,1 N HCl pekat = 37% HCl pekat = 12 M = 12 N                 8,33 mL HCl pekat = 1 Liter 0,1 N 3.        LARUTAN H 2 SO 4 0,1 N H 2 SO 4 pekat = 96 % H 2 SO 4 pekat = 17,63 M = 18 M = 36 N        2,78 mL H 2 SO 4 pekat = 1 liter 0,1 N 4.        LARUTAN CH 3 COOH 0,1 N CH 3 COOH pekat = 99,5 % CH 3 COOH pekat = 17 M = 17 N        5,88 mL CH 3 COOHpekat = 1 liter 0,1 N 5.        LARUTAN Na 2 S 2 O 3 0,1 N             26 gram Na 2 S 2 O 3 dengan 0,2   g Na 2 CO 3 dilarutkan dalam air bebas CO 2 segar sampai volume 1000 ml 6.        LARUTAN KIO 3 0,1 N             3 , 5 g KIO 3 encerkan dengan air hingga 1000 m L 7.        LARUTAN KMnO 4 0,1 N      3,3 gram Kalium Permanganat P adat dilarutkan dalan air hingga 1000 ml 8.        LARUTAN IODIUM (I 2 ) 0,1 N 12,69 gram I 2 P adat ke dalam la

C++ #03 Mengenal Fungsi Input dan Output

Belajar C++ #03: Mengenal Fungsi Input dan Output pada C++ #  C++ Pada dasarnya, program komputer hanya terdiri dari tiga bagian: Input  adalah sesuatu data yang kita masukan ke dalam program. Input biasanya diambil dari perangakat inputan seperti keyboard, mouse, kamera, microphone, dll. Proses  adalah langkah-langkah yang harus dilakukan program untuk menghasilkan output. Output  adalah informasi yang dihasilkan setelah dilakukan proses. Output biasanya ditampilkan ke layar komputer. Pada bahasa pemrograman C++, terdapat beberapa fungsi dasar untuk menampilkan output dan mengambil input. Apa saja itu? Mari kita bahas… Fungsi Output pada C++ C++ memiliki empat fungsi dasar untuk menampilkan output: cout  untuk menampilkan teks ke layar; cerr  untuk menampilkan error; clog  untuk menampilkan log; printf()  untuk menampilkan output, fungsi ini dari C; Kita akan fokus memabahas yang dua saja, yakni  cout  dan  printf() . Soalnya  cerr  dan  clog