Method Getter dan Setter
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Java di Coddy. Pelajaran 11 dari 87.
Getter dan setter adalah method yang memberikan akses terkontrol ke field privat. Getter mengambil nilai field, sedangkan setter mengubahnya.
Konvensi penamaan mengikuti pola standar: awalan get atau set diikuti nama field dengan huruf pertamanya ditulis kapital.
public class Product {
private String name;
private double price;
// Method pengambil nilai name
public String getName() {
return name;
}
// Method pengatur nilai name
public void setName(String name) {
this.name = name;
}
// Method pengambil nilai price
public double getPrice() {
return price;
}
// Method pengatur nilai dengan validasi
public void setPrice(double price) {
if (price >= 0) {
this.price = price;
}
}
}Kegunaan utama setter adalah kemampuannya untuk menambahkan logika validasi. Pada contoh di atas, setPrice hanya menerima nilai yang tidak negatif, sehingga melindungi object dari data yang tidak valid.
Untuk field boolean, getter biasanya menggunakan awalan is, bukan get:
private boolean active;
public boolean isActive() {
return active;
}Kamu juga bisa membuat field hanya-baca dengan menyediakan getter saja, atau field hanya-tulis dengan menyediakan setter saja. Dengan begitu, kamu bisa mengontrol secara terperinci cara kode eksternal berinteraksi dengan data object-mu.
Tantangan
MudahMari buat konverter Temperature yang menunjukkan kegunaan getter dan setter dengan logika validasi.
Kamu akan membuat dua file untuk mengatur kodemu:
Temperature.java: Definisikan class Temperature yang menyimpan nilai suhu dalam Celsius. Class ini harus memiliki:- Field
celsiusprivate (double) - Field
validprivate (boolean) yang melacak apakah suhu tersebut mungkin secara fisik - Getter
getCelsius()yang mengembalikan nilai celsius - Setter
setCelsius()yang hanya menerima nilai pada atau di atas nol mutlak (-273.15). Jika nilainya valid, aturvalidmenjadi true; jika tidak, jangan ubah celsius dan aturvalidmenjadi false - Getter
isValid()untuk field boolean (ingat: getter boolean menggunakan awalanis) - Getter
getFahrenheit()yang mengonversi dan mengembalikan suhu dalam Fahrenheit menggunakan rumus:(celsius * 9/5) + 32
- Field
Main.java: Buat object Temperature, baca nilai celsius sebagai input, gunakan setter untuk mengaturnya, lalu cetak apakah suhu tersebut valid dan nilai ekuivalennya dalam Fahrenheit. Format output-mu menjadi dua baris:Valid: trueatauValid: falseFahrenheit: X.X(menampilkan satu angka desimal)
Kamu akan menerima satu input: nilai double yang menunjukkan suhu dalam Celsius.
Untuk memformat output Fahrenheit menjadi satu angka desimal, kamu dapat menggunakan String.format("%.1f", value).
Coba sendiri
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double celsiusInput = scanner.nextDouble();
// TODO: Buat object Temperature
// TODO: Gunakan setter untuk mengatur nilai celsius
// TODO: Cetak apakah suhunya valid (format: "Valid: true" atau "Valid: false")
// TODO: Cetak nilai setara dalam Fahrenheit (format: "Fahrenheit: X.X")
// Petunjuk: Gunakan String.format("%.1f", value) untuk satu angka di belakang koma
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengantar OOPClass dan ObjectKata Kunci thisMethodField (Atribut)Method KonstruktorOverloading KonstruktorRangkuman: Kalkulator Sederhana4Pewarisan
Pewarisan Dasar (extends)Kata Kunci superMethod Overriding (@Override)Rantai KonstruktorKelas ObjectPewarisan Tunggal dan BertingkatMengapa Tidak Ada Pewarisan Multi-KelasRangkuman: Hierarki Karyawan7method Khusus & class Object
method toString()equals() dan hashCode()method clone()compareTo() dan ComparableAntarmuka ComparatorUlasan: Pengurutan Kustom10Penanganan Exception dalam OOP
Hierarki class ExceptionException KustomError Checked vs UncheckedPola Try-with-ResourcesRekap: Pengguna Tervalidasi2Modifier Akses & Enkapsulasi
Ikhtisar Tingkat AksesMethod Getter dan SetterPenyembunyian InformasiKata Kunci finalUlasan: Pengelola Rekening Bank5Polimorfisme
Dasar method overloadingMethod overriding (Saat program berjalan)Upcasting dan downcastingOperator instanceofclass dan method abstrakUlasan: Kalkulator Bentuk8Konsep OOP Lanjutan
Komposisi vs PewarisanAgregasi vs Komposisiinner, nested, dan anonymous classEnum dan method Enumrecord (Java 16+)sealed class (Java 17+)11Pola Desain Bagian 1
Pengantar Pola DesainPola SingletonPola FactoryPola BuilderPola ObserverPola Strategy3property class dan Anggota Statis
Variabel Instance vs Statismethod StatisBlok StatisKonstanta (static final)Rangkuman: Penghitung dan Utilitas6Antarmuka & Kelas Abstrak
Pengantar AntarmukaMengimplementasikan AntarmukaImplementasi Beberapa AntarmukaDefault & Static pada AntarmukaKelas Abstrak vs AntarmukaAntarmuka FungsionalRekap: Sistem PembayaranLatihan sendiri: Compiler Java online