• Tidak ada hasil yang ditemukan

BAB III ENKAPSULASI A. TUJUAN PEMBELAJARAN

N/A
N/A
Protected

Academic year: 2022

Membagikan "BAB III ENKAPSULASI A. TUJUAN PEMBELAJARAN"

Copied!
11
0
0

Teks penuh

(1)

1

BAB III ENKAPSULASI

A. TUJUAN PEMBELAJARAN

Setelah mempelajari Bab ini, diharapkan mahasiswa mengenal dan mempraktikkan bagaimana enkapsulasi diterapkan dalam kasus-kasus pemrograman pada java.

B. URAIAN MATERI 1. Enkapsulasi

Merupakan sebuah proses penggabungan attribut dan method ke dalam sebuah kelas. Biasanya atribut dan methoddideskrpsikan secara terpisah pada pemrograman prosedural. Selain itu enkapasulasi juga dihubungkan dengan pemberian hak akses pada kelas ataupun angota dari sebuah kelas (atribut dan method).

Contoh:

Atribut dan method dibungkus pada satu kelas yaitu kelas Kucing.

Enkapsulasi membuat atribut dan method menjadi lebih terorganisir dan jelas kepemilikannya. Atribut berupa “BeratBadan” dan “Ras” dan method berupa “bersuara()”, “jeniskelamin()”, dan “makan()”; adalah milik kelas kucing.

Contoh Penerapan Enkapsulasi dan Instansiasi Objek

Persegi + sisi: double

+ hitungKeliling():double + hitung Luas ():double

(2)

2

Terdapat 3 cara dalam pengaksesan variabel:

a. Variabel Lokal  dideklarasikan di dalam method atau blok.

Contoh:

b. Variabel Instance  Merupakan variabel yang dideklarasikan dalam kelas atau secara global, namun di luar method atau blok.

Contoh:

public class VariabelLokal {

public void tambahBarang(){ //method //Deklarasi variabel lokal

int jumlahBarang = 0;

jumlahBarang = jumlahBarang + 1;

System.out.println ("Jumlah barang setelah ditambah:

" + jumlahBarang);

}

public static void main (String [] args){

VariabelLokal Barang = new VariabelLokal();

Barang.tambahBarang();

} }

public class Persegi { public double sisi;

public double hitungKeliling (){

return 4 * sisi;

}

public double hitungLuas(){

return sisi * sisi;

}

public static void main (String []args){

Persegi persegi = new Persegi();

persegi.sisi=5;

System.out.println("Keliling persegi: " + persegi.hitungKeliling());

System.out.println("Luas persegi: " + persegi.hitungLuas());

} }

(3)

3

c. Variabel Kelas/Static  dideklarasikan dengan kata kunci “static”, dan dapat di akses langsung di luar kelas yang mendeklarasikannya tanpa harus kelas tersebut diinstansiasi terlebih dahulu.

Contoh:

Buatlah sebuah class bernama VariabelStatic

Buatlah class baru sebagai main class:

public class MainStatic {

//Nama_Universitas sebagai konstanta

public static final String Nama_Universitas = "UHAMKA";

public static void main (String[] args){

VariabelStatic.jumlahMahasiswa = 1000;

System.out.println (Nama_Universitas + " memiliki mahasiswa "+ VariabelStatic.jumlahMahasiswa);

} }

public class VariabelStatic {

//variabel jumlahMahasiswa dideklarasikan sebagai statik public static int jumlahMahasiswa;

}

public class VariabelInstance { //Deklarasi variabel instance int jumlahBarang = 10;

public void getJumlahBarang(){//method

System.out.println ("Jumlah barang: "+ jumlahBarang);

}

public void tambahBarang(){

jumlahBarang = jumlahBarang + 1;

System.out.println ("Jumlah barang stelah ditambah: " + jumlahBarang);

}

public static void main (String [] args){

VariabelInstance Barang = new VariabelInstance();

Barang.getJumlahBarang();

Barang.tambahBarang();

Barang.getJumlahBarang();

} }

(4)

4

Jenis -jenis hak akses modifiers yang biasa digunakan di Java, yaitu:

a. Public  Digunakan apabila atribut atau method ingin bisa diakses di kelas yang lain (bukan kelas pemilik atribut dan method tersebut).

Pada class diagram menggunakan simbol (+)

b. Private  Digunakan apabila atribut atau method hanya ingin diakses pada kelas pemilik. Pada class diagram menggunakan simbol (-) c. Protected  Digunakan pada konsep pewarisan. Pewarisan variabel

maupun method hanya berlaku untuk kelas turunannya dan tidak dapat digunakan pada kelas lain. Pada class diagram menggunakan simbol (#).

d. Default  hanya kelas dalam paket dapat mengakses variable dan metode kelas

Hak akses yang biasa digunakan pada atribut adalah private dan untuk mengakses nilai dari kelas lain biasanya disediakan geter dan setter.

Getter dan Setter

Untuk membuat atribut yang memiliki hak akses private menjadi accessible di kelas selain kelas pemilik, terdapat konsep yang memungkinkan hal tersebut, yaitu Getter dan setter. Merupakan 2 buah method yang dibuat untuk masing-masing atribut agar kelas lain bisa melakukan modifikasi dan pengakasesan nilai yang ada pada suatu atribut.

Getter dan Setter memiliki hak akses public sehingga bisa diakses oleh kelas lain.

Getter merupakan method yang dibuat untuk mengambil atau mengembalikan nilai sebuah atribut kepada pemanggilnya, sedangkan setter merupakan method yang dibuat untuk memodifikasi nilai dari suatu atribut berdasarkan nilai yang dikirim oleh pemanggilnya menggunakan parameter input.

(5)

5 Format Getter dan Setter

Kata kunci this yang terdapat pada Setter digunakan kunci membedakan antara atrinut internal kelas dengan nama parameter input apabila keduanya bernama sama. This mengacu pada nama atribut internal kelas.

This digunakan untuk mengakses instance variable yang dibiaskan oleh parameter.

Contoh:

PersegiPanjang - panjang: double - lebar: double

+ hitungKeliling():double + hitung Luas ():double

Pada class PersegiPanjang // Format Getter

public <tipe_data_atribut> getNamaAtribut(){

return <nama_atribut>;

}

//Format Setter

public void setNamaAtribut (<parameter_input_atribut>){

this.<nama_atribut> = <parameter_input_atribut>;

}

Perhatikan atribut !!

Hak akses bersifat private

(6)

6

Atribut class PersegiPanjang akan diakses oleh class lain yaitu class TesterGetterSetter.

Method toString

Method ini digunakan untuk mengirim representasi object kedalam string.

Method toString() merupakan method yang berada pada class Object, sehingga semua object dari semua class pada Java yang menggunakan method toString() melakukan proses override.

public class TesterGetterSetter {

public static void main (String []args){

PersegiPanjang persegipanjang = new PersegiPanjang();

persegipanjang.setPanjang(7);

persegipanjang.setLebar (5);

System.out.println("Panjang persegipanjang: " + persegipanjang.getPanjang());

System.out.println("Lebar persegipanjang: " + persegipanjang.getLebar());

System.out.println("Keliling persegipanjang: " + persegipanjang.hitungKeliling());

System.out.println("Luas persegipanjang: " + persegipanjang.hitungLuas());

} }

public class PersegiPanjang { private double panjang;

private double lebar;

public double getPanjang(){

return panjang;

}

public void setPanjang(double panjang){

this.panjang = panjang;

}

public double getLebar(){

return lebar;

}

public void setLebar(double lebar){

this.lebar= lebar;

}

public double hitungKeliling(){

return (2*panjang + 2*lebar);

}

public double hitungLuas(){

return panjang * lebar;

} }

(7)

7 Contoh:

C. TINDAK LANJUT

Setelah mempelajari materi di atas, untuk mendalamai materi yang berkaitan dengan Enkapsulasi pada Pemrograman Berorientasi Objek silahkan gunakan buku yang berjudul “Pemrograman Berorientasi Objek menggunakan java” karangan Adam Mukharil bachtiar dan Firman Nizammudin Fakhrul. Kalian juga bisa kunjungi dan tonton video terkait materi tersebut pada url berikut:

https://www.youtube.com/watch?v=IrwDHewOYOc. Silahkan mencari referensi lain dari materi ini dari sumber-sumber lain baik sumber cetak maupun searching di internet.

D. LATIHAN (ESSAY)

1. Buatlah program untuk menampilkan bentuk air bergantung terhadap suhu (t-temperature) dengan ketentuan sbb:

t < 0 Berbentuk es atau beku t = 0 berbentuk ransisi es dan cair 0 < t < 100 berbentuk cair

t = 100 berbentuk transisi cair dan gas t > 100 berbentuk gas atau uap

Buatlah dengan nama class BentukAir. Gunakan constructor serta class Mahasiswa {

String nama, nim, jurusan;

@Override

public String toString (){

return "Nama saya " + nama + ", dengan nim "

+ nim + " jurusan " + jurusan ; }

public Mahasiswa(String nama, String nim, String jurusan) {

this.nama = nama;

this.nim = nim;

this.jurusan = jurusan;

} }

public class toString {

public static void main (String []args){

Mahasiswa data = new Mahasiswa ("Rani", "111215",

"TI");

System.out.println (data);

} }

(8)

8 method toString.

Output:

2. //lengkapi program berikut //NilaiMHS.java

import java.io.*;

public class NilaiMHS { private double uas, uts;

private int password;

public static String bacainputan() { String baca= " ";

InputStreamReader input = new InputStreamReader (System.in);

BufferedReader buf = new BufferedReader (input);

try {

baca = buf.readLine();

}catch ( IOException e ){

System.out.println("Error!");

}

return baca;

}

. . . //lengkapi public void cetak() {

. . . //lengkapi

}

public void getNilai(){

System.out.print("Masukkan password: ");

password=Integer.parseInt(bacainputan());

if (password== 123) { . . . //lengkapi cetak();

} else {

System.out.println("Password salah ");

} } }

(9)

9 // DemoNilaiMhs.java

public class DemoNilaiMhs {

public static void main(String[]args){

NilaiMHS nilai = new NilaiMHS(6.5,7.9);

. . .//lengkapi }

}

Output:

E. RANGKUMAN

Enkapsulasi merupakan suatu cara pembungkusan data dan method yang menyusun suatu kelas sehingga kelas dapat dipandang sebagai suatu modul dan cara bagaimana menyembunyikan informasi detail dari suatu class (information hiding). Terdapat 3 jenis pengaksesan variabel: variabel lokal, variabel instance, variabel kelas/static. Hak akses modifiers: public, private, protected. Atribut memiliki hak akses private dan akan digunakan pada kelas lain, maka wajib membuat getter atau setter, sesuai kebutuhan.

F. LATIHAN (PILIHAN GANDA)

1. Dibawah ini yang termasuk ke dalam akses modifier adalah adalah a. lokal

b. public c. instance d. static e. return

2. Variabel yang dideklarasikan dalam kelas atau secara global, namun di luar method atau blok, disebut dengan variabel?

a. lokal b. public c. instance d. static e. return

(10)

10 Perhatikan code dibawah ini !

3. Berdasarkan code di atas yang termasuk ke dalam variabel instance adalah

a. hobi = “membaca”;

b. int seri = 8;

c. latihan.novel();

d. variabel latihan = new variabel ();

e. public static String hobi;

4. Manakah format deklarasi setter yang benar?

a. public <tipe_data_atribut> setNamaAtribut(){

return <nama_atribut>;

}

b. public void

setNamaAtribut(<parameter_input_atribut>) {

this.<nama_atribut> = <parameter_input_atribut>;

}

c. public setNamaAtribut(<tipe_data_atribut>){

return <nama_atribut>;

}

d. public void setNamaAtribut () {

this.<nama_atribut> = <parameter_input_atribut>;

}

e. public setNamaAtribut(){

return <nama_atribut>;

}

5. Kata kunci yang digunakan mengakses instance variable yang dibiaskan oleh parameter adalah

a. static

(11)

11 b. void

c. get d. this e. set

Referensi

Dokumen terkait

P9G'+ PRKINS&gt;N P9G'+ PRKINS&gt;N hidrosealus hidrosealus 8brtuksi aliran 8brtuksi aliran #ada lumbal - #ada lumbal - gerakan lutut gerakan lutut #ada lumbal 2

Tugas pokok Departement Corporate Communications PT XL Axiata Tbk antara lain; menerbitkan siaran pers yang disampaikan kepada media lokal maupun asing, menyelenggarakan

Perwakilan Badan Kependudukan dan Keluarga Berencana Nasional..

Aqua Golden Mississippi Mekarsari, satu orang pengurus program dari pihak Kecamatan Cicurug yang juga mengurusi Koperasi sebagai wadah pelaku UMKM, dan 4 orang pelaku usaha

• Bahwa saksi mengetahui pemohon dan termohon adalah suami istri yang telah menikah sekitar bulan Desember 2006 di Kabupaten Lombok Barat karena saksi turut

Antibiotik yang paling sensitif adalah meropenem (80%). Terdapat hubungan antara derajat eksaserbasi dan obstruksi dengan hasil kultur sputum bakteri. Tidak ada perbedaan berarti

Orang yang tinggal dengan HIV/AIDS boleh ditolongkan melalui beberapa cara: (1) rawatan “anti-retroviral”, walau bagaimanapun tiada penyembuhan untuk HIV, (2) pemulihan sistem

Portal merupakan suatu sistem yang terdiri dari bagian-bagian struktur yang saling berhubungan dan berfungsi untuk menahan beban sabagai satu kesatuan yang lengkap. Portal