Tugas Minggu 5 - Alpro 2 - Si UNIPDU
Modifier Dalam Java
Pengertian Modifier
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 member 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.
Ada 3 macam modifier dalam Java
Umumnya ada 3 macam modifier dalam Java, yaitu; public, private, dan protected. Setiap modifier memiliki jangkauan tertentu jika digunakan.
// Public Modifier
Modifier public akan membuat member dan class bisa di akses dari mana saja. Berikut contoh penggunaan modifier.
class Student {
public String nameStudent;
public changeName(String newName) {
this.nameStudent = newName;
}
}Pada class Student diatas terdapat dua member, yaitu:
- atribut name
- method changeName()
Kedua member tersebut kita berikan modifier public. Artinya mereka akan bisa diakses dari mana saja.
Pada class diagram, modifier public digambarkan dengan simbol plus (+).
// Private Modifier
Modifier private akan membuat member hanya bisa diakses oleh dari dalam class itu sendiri. Dengan catatan, modifier private tidak bisa diberikan pada class, enum, dan interface. Modifier private hanya bisa diberikan kepada member class.
class Student {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName(){
return this.name;
}
}
Contoh diatas, kita memberikan modifier private dan atribut name dan modifier public pada method setName() dan getName().
Apabila kita mencoba akses langsung atribute name. Seperti ini.
Student mStudent = new Student()
mStudent.name = "Pukidi"; //disini akan akan error karena String name kita private
//Protected Modifier
Modifier Protected akan member dan class hanya bisadiakses dari:1. Class itu sendiri2. Subclass atau class anak3. Package (class yang berada satu package dengannya).
Modifier Protected hanya bisa digunakan padamember saja.
package modifier;
class Person {
protected String name;
public void setName(String name) {
this.name = name;
}
public String getName(){
return this.name;
}
}
Pada contoh diatas kita memberikan modifier Protectedpada atribut name. Apabila kita coba akses dari classyang satu package dengannya, maka akan akan terjadierror.
Namun, jika kita akses dari luar package. Maka seperti ini
import modifier.Student;
public class author{
Student nStudent = new Student();
public author(){
//akan terjadi error karena atribut name
//telah memberikan modifier protected
nStudent name = "Pukidi";
}
}
Penerapan modifier di dalam class bangunDatar
// Class bangunDatar
package bangunDatar;
public class bangunDatar {
float luas(){
System.out.println();
System.out.println("============================");
System.out.println("Menghitung laus bangun datar");
return 0;
}
float keliling(){
System.out.println("Menghitung keliling bangun datar");
System.out.println("============================");
System.out.println();
return 0;
}
}
// Class Persegi
package BangunDatar;
class Persegi extends BangunDatar {
private float sisi;
@Override float luas(){ float luas = sisi * sisi;
System.out.println("Luas Persegi: " + luas); return luas; }
@Override float keliling(){ float keliling = 4 * 4;
System.out.println("Keliling Persegi: " + kelilin
return keliling;
}
}// Class Lingkaran
package BangunDatar;
public class Lingkaran extends BangunDatar{
// jari-jari lingkaran protected float r;
@Override
float luas(){
float luas = (float) (Math.PI * r * r);
System.out.println("Luas lingkaran: " + luas);
return luas; }
@Override float keliling(){
float keliling = (float) (2 * Math.PI * r);
System.out.println("Keliling Lingkaran: " + keliling);
return keliling;
}
protected String getName(Object r2) {
return null;
}
}// Class Persegi panjang
package BangunDatar;
class PersegiPanjang extends BangunDatar {
protected float panjang;
protected float lebar;
@Override
float luas(){
float luas = panjang * lebar;
System.out.println("Luas Persegi Panjang:" + luas);
return luas;
}
@Override
float keliling(){
float kll = 2*panjang + 2*lebar;
System.out.println("Keliling Persegi Panjang: " + kll);
return kll;
}
}// Class Segitiga
package BangunDatar;
public class Segitiga extends BangunDatar {
float alas;
float tinggi;
@Override
float luas() {
float luas = (float) 1/2 * (alas * tinggi);
System.out.println("Luas Segitiga: " + luas);
return luas;
}
@Override
float keliling(){
float miring = (float) Math.sqrt((alas*alas) + (tinggi*tinggi));
float keliling = (float) alas+tinggi+miring;
System.out.println("Keliling Lingkaran: " + keliling);
return keliling;
}
}
// Class Process
package BangunDatar;
public class Process {
public static void main(String[] args) {
// membuat objek bangun datar
BangunDatar bangunDatar = new BangunDatar();
// membuat objek persegi dan mengisi nilai properti
Persegi persegi = new Persegi();
// membuat objek Lingkaran dan mengisi nilai properti
Lingkaran lingkaran = new Lingkaran();
lingkaran.r = 22;
// membuat objek Persegi Panjang dan mengisi nilai properti
PersegiPanjang persegiPanjang = new PersegiPanjang();
persegiPanjang.panjang = 8;
persegiPanjang.lebar = 4;
// membuat objek Segitiga dan mengisi nilai properti
Segitiga Segitiga = new Segitiga();
Segitiga.alas = 12;
Segitiga.tinggi = 8;
// memanggil method luas dan keliling
bangunDatar.luas();
bangunDatar.keliling();
System.out.println();
persegi.luas();
persegi.keliling();
System.out.println("============================");
System.out.println();
lingkaran.luas();
lingkaran.keliling();
System.out.println("============================");
System.out.println();
persegiPanjang.luas();
persegiPanjang.keliling();
System.out.println("============================");
System.out.println();
Segitiga.luas();
Segitiga.keliling();
System.out.println("****************************");
}
}
// Class Main
package com.tutorial;
public class Main {
public static void main (String[] args){
System.out.println();
// public, private, default, dan protected
// dengan access modifier public, dapat diakses
Lain.methodPublic();
// dengan access modifier private, tidak dapat diakses
//Lain.methodPrivate();
// karena ada dalam package yang sama, maka dapat diakses
// jika Di package yang lain tidak akan bisa diakses
Lain.methodDefault();
// karena ada dalam package yang sama, maka dapat diakses
// jika Di package yang lain tidak akan bisa diakses
Lain.methodPreotected();
System.out.println();
}
}


.png)
Komentar
Posting Komentar