Kita pernah belajar tentang modifier private, protected, maupun public. Kesemuanya berfungsi untuk membatasi akses sebuah class, constructor, data, dan method ke class lain. Sekarang kita akan lebih fokus ke modifier private. Kita tahu bahwa sebuah variabel dengan private modifier hanya bisa diakses oleh semua anggota di dalam class yang sama. Lalu, bagaimanakah jika kita ingin mengakses variabel tersebut?
Baik, sebelum lebih dalam lagi, Saya ingin membahas sedikit tentang enkapsulasi. Enkapsulasi secara sederhana adalah menyembunyikan data yang sensitif dari user. Intinya, data yang tersimpan di sebuah variabel harus benar – benar tersembunyi dan tidak dapat diakses oleh user. Untuk mencapai hal ini, satu – satunya cara adalah dengan mendeklarasikan variabel atau atribut class dengan private modifier.
Sekarang, barulah kita berpikir. Jika variabel – variabel tersebut memiliki private modifier, bisakah kita mendapatkan datanya, bahkan mengubah datanya? Jawabnya, Ya, tentu bisa. Caranya adalah dengan menggunakan method GET dan SET dengan public modifier. Kedua method ini, pada umumnya disebut method GETTER and SETTER.
Untuk lebih memahamkan lagi tentang method GETTER dan SETTER ini, perhatikanlah contoh berikut.
public class SimpleMethod {
private static GeneralVariable gv = new GeneralVariable();
public static void main(String[] args) {
gv.setText("Halo Nama Saya Irfan");
System.out.println(gv.getText());
}
}
public class GeneralVariable {
private String inputText = "";
public void setText(String text) {
inputText = text;
}
public String getText(){
return inputText;
}
}
Pertama, perhatikan class GeneralVariable terlebih dahulu. Di dalam class GeneralVariable terdapat satu buah variabel dengan private modifier yakni inputText. Variabel ini akan menyimpan data yang dimasukkan oleh User dan kemudian disembunyikan. Secara default, variabel ini tidak dapat diakses dari luar class. Untuk dapat mengaksesnya maka ditambahkanlah dua method dengan public modifier: setText dan getText. Di dalam method ini, terdapat baris kode yang bertugas untuk memasukkan value ke dalam variabel, dan mengembalikan nilai dari variabel.
Kedua, pada class SimpleMethod, untuk dapat menggunakan method setText dan getText kita buat dulu class GeneralVariable sebagai object. Selanjutnya, kita hanya perlu memanggil method setText dan getText tersebut ke dalam method main. Berikut adalah hasilnya.
Masih belum clear? mari kita coba dengan yang lebih rumit. Kita akan membuat class baru yang mengimplementasikan inputan dari user. Kita tetap akan menggunakan class GeneralVariable, dan kita akan membuat class baru untuk inputannya. Berikut adalah class nya.
import java.util.Scanner;
public class SetterGetter {
private static GeneralVariable gv = new GeneralVariable();
private static Scanner initInput() {
return new Scanner(System.in);
}
private static void getInput() {
System.out.print("Masukkan Sesuatu: ");
String x = initInput().nextLine();
gv.setText(x);
}
private static void displayInput() {
System.out.println("Anda baru saja memasukkan: " + gv.getText());
}
private static boolean end() {
boolean status = true;
boolean appStatus = true;
String alpha = "";
while(status) {
System.out.print("Lanjutkan? (Y/N): ");
alpha = initInput().next();
if(alpha.equalsIgnoreCase("Y") || alpha.equalsIgnoreCase("N")) {
status = false;
if(alpha.equalsIgnoreCase("Y")) appStatus = true;
else appStatus = false;
}
else {
status = true;
System.out.println("Masukan hanya Y/N!");
}
}
return appStatus;
}
public static void main(String[] args) {
boolean continyu = true;
while(continyu) {
getInput();
displayInput();
continyu = end();
}
}
}
Mari kita perhatikan sejenak class di atas. Sekilas, class di atas tampak rumit. Namun, jika Anda perhatikan dua method: getInput dan displayInput maka sekarang akan terlihat tampak lebih sederhana. Ya, method getInput berfungsi untuk mendapatkan masukan dari user dan menyimpannya ke dalam variabel inputText, sedangkan method displayInput berfungsi untuk menampilkan isian variabel inputText.
Lalu, apa fungsi dari method initInput dan end? Dapat Anda perhatikan, method initInput hanya berisi kembalian yang berupa object scanner. Artinya method ini berfungsi sebagai instansiasi object Scanner yang akan digunakan untuk menerima masukan dari user. Sedangkan method end berfungsi untuk menghandle lifetime dari program dengan pertanyaan sederhana yakni berupa “Lanjutkan? (Y/N):” dan user diharuskan memilih diantara huruf Y atau N yang dimana apabila user memilih huruf “Y” maka program akan diulang, sedangkan apabila user memilih huruf “N” maka program akan selesai.
Berikut adalah penampakan program ketika di run
Dapat kita lihat dari run program di atas, value dari variabel inputText pasti akan terus berubah ketika method setText dipanggil.
Demikianlah artikel tutorial tentang “Method Setter & Getter dan Hubungannya dengan Enkapsulasi” untuk bahasa pemrograman Java. Semoga Anda paham & mengerti. Apabila Anda masih memiliki kesulitan dalam memahami artikel ini, Anda sangat diperbolehkan untuk meninggalkan pertanyaan pada kolom komentar. Saya akan berusaha secepatnya menjawab pertanyaan Anda.
Apabila Anda ingin mencuplik artikel ini, jangan lupa juga sertakan URL nya.
Terima kasih…. ^_^
UNDUH PROJECT
REFERENSI