LISTING PROGRAM
Ada 2 Listing
program yang dibuat dan terdiri atas 3 class dan 2 class, yaitu :
LOGIKA
Dalam pembuatan
program di atas, saya memiliki logika sebagai berikut:
1) Inherintance
Class tabung adalah turunan dari class lingkaran,
sehingga variabel-variabel yang ada di lingkaran dapat digunakan di class
tabung tanpa harus dideklarasikan. Dalam hal ini, variabel-variabel yang
diturunkan adalah “luas” karena untuk menghitung volume tabung, diperlukan
nilai dari luas lingkaran yang ada di class lingkaran.
public double getLuas() {
luas = phi*jari*jari;tabung.luas = this.luas;
return luas;
}
getLuas()
adalah method yang digunakan untuk menampilkan nilai “luas” (return luas;) yang
akan digunakan pada class main nanti (akan dibahas nanti). tabung.luas =
this.luas; memberikan nilai variabel luas yang ada di class tabung bernilai
sama dengan nilai luas yang ada di class lingkaran ini. Untuk itu, variabel
luas harus bersifat “static”, sehingga deklarasinya menjadi “static double luas”.
lingkaran ling = new lingkaran();
tabung tab = new tabung();
Ada di
class main, kedua syntax tersebut digunakan untuk membuat perwakilan dari class
lain untuk dapat digunakan di class main. Dalam hal ini, class lingkaran
menggunakan “ling”, dan class tabung menggunakan “tab”.
System.out.print("Masukkan
jari-jari lingkaran : ");
sementara = input.readLine();
a = Double.parseDouble(sementara);
Memberi
nilai pada variabel jari yang ada di class lingkaran. Sehingga digunakan “ling.setJari(a);“ yang akan memanggil method “setJari(double jari)” di class lingkaran.
Method setJari adalah setter dari variabel jari, dimana setter digunakan untuk
memberikan nilai pada variabel yang nilai tersebut berasal dari class lain. Hal
serupa dilakukan pula dengan variabel tinggi yang ada di class tabung. Dengan
menggunakan setter “setTinggi(double tinggi)”, variabel tinggi pada class
tabung akan disesuaikan dengan nilai yang diinput pada class main.
System.out.println("Luas
lingkaran tersebut adalah = "+df.format(ling.getLuas());
System.out.println("Keliling
lingkaran tersebut adalaH "+df.format(ling.getKeliling()));
System.out.println("Volume
tabung adalah = "+df.format((tab.getVolume())));
Merupakan
perintah output untuk menampilkan hasilnya. Ada yang dinamakan “getter”, dimana
method ini mengembalikan nilai perhitungan yang ada pada class tertentu.
Misalkan “ling.getLuas()” akan memanggil method
getLuas() pada class lingkaran.
public double getLuas() {
luas = phi*jari*jari;tabung.luas = this.luas;
return luas;
}
Di method
getLuas(), variabel luas berubah sesuai dengan perhitungan, dan nilainya akan
dikembalikan sesuai dengan nilai variabel tersebut. Hal serupa dilakukan pula
dengan getKeliling() dan getVolume() pada class tabung.
df.format();
merupakan perintah untuk memformat bilangan desimal menjadi 2 angka desimal di
belakang koma. Hal ini telah dideklarasikan dengaN
DecimalFormat
df = new DecimalFormat(".##");
Dimana
“.##” adalah pemformatnya. DecimalFormat harus diimport dengan
import
java.text.DecimalFormat;
Seperti
halnya kita mengimport BufferedReader dengan
import java.io.*;
2) Encapsulation
Logikanya
kurang lebih sama seperti program Inherntince. Dimana terdapat setter untuk
menerima nilai variabel yang berasal dari class enkapsulasi untuk diproses di
class kapsul. Dan ada getter untuk mengembalikan nilai yang telah diproses di
class kapsul ke class enkapsulasi.
Unsur
enkapsulasinya ada di
private double luas(double p,double l){
return p*l;}
Dimana
method luas (double p,double l) adalah method bersifat “private” yang hanya
bisa diakses oleh class itu sendiri (dalam hal ini adalah class kapsul). Method
di atas tidak dapat dipanggil oleh class lain seperti class enkapsulasi karena
sifatnya yang private. Sehingga ada perintah
public double getLuas(){
return luas(panjang,lebar);}
Method
getLuas() adalah getter yang digunakan untuk mengembalikan nilai yang ada di
method Private luas. Sehingga method luas(double p, double l) dapat diekseskusi tanpa dipanggil secara
langsung melainkan menggunakan perantara (getter).
OUTPUT





