MODUL VI,PBO 1

STATIC
 

TUJUAN:
Membuat dan menjelaskan tentangKonstruktor
TEORI SINGKAT:
Classvariable atau variable yang dimiliki oleh kelas sepenuhnya dapat kitadeklarasikan. Nilainya akan sama disemua objek pada kelas tersebut. Andai adavariable yang ingin dideklarasikan tetap dalam kelas tersebut dapatdideklrasaikan dengan static variable ini.
Penulisannyaharus dengan deklarasi static sebagaimana berikut:
           privatestatic int studentCount;
Sedangkan pemanggilannyadengan mengambil nama kelas:
           [namakelas].[nama method static](parameter);
PELAKSANAAN PRAKTIKUM:
Praktik 1. Membuat Konstruktor dan Pemanggilannya
<!–[if gte vml 1]>

Nasabah

public int noId;

public  static int jmlNasabah;

private String nama;

private String alamat;

private String identitas;

private String noIdentitas;

double saldo;

 

Nasbah();

Nasabah(noId);

Nasabah(int noId, String nm);

Nasabah(int noId,String nm, double saldo);

Public void lihatAccount()

Void setoran(double jml)

Void pengambilan(double jml)

public static double hitung(double saldo, double setor)

public static void main(String args)

 

Konstruktor

<![endif]–>

 


Praktek 1. Lengkapi kelas nasabah dengan atribut dan methodstatic seperti tampak dibawah
public classNasabah{
       public int noId;
       public static int jmlNasabah=0;
//(Nilai tersebutakan menjadi nilai bersama kelas)
       private String nama;
       private String alamat;
       private String identitas;
       private String noIdentitas;
       double saldo;
Variabelstatic jmlNasabah adalah salah satu static variable yang akan menjadi nilaibersama dalam satu kelas. Sehingga dimanapun variable tersebut dipanggil makanilai dari variable tersebut selalu sama. Dapat dilihat pada hasil, bahwadimanapun variable tersebut dipanggil, baik pada konstruktor 1, 2, maupun 3terdifinisi bernilai sama. Walaupun dipanggil melalui konstruktor berbeda denganpemanggilan yang sama menunjukkan bahwa variable tersebut bernilai sama. Tetapipada praktek tersebut berubah senantiasa bertambah satu karena pada pemanggilanada operator +1.
//KONSTRUKTOR 1
Nasabah(int noId){
       this.noId=noId;
       jmlNasabah=noId;
       }
//KONSTRUKTOR 2
Nasabah(int noId,String nama){
       this.noId=noId;
       this.nama=nama;
       jmlNasabah=noId;
       }
//KONSTRUKTOR 3
Nasabah(int noId,String nama, double saldo){
       this.noId=noId;
       this.nama=nama;
       this.saldo=saldo;
       jmlNasabah=noId;
       }
public void lihatAccount(){
       System.out.println(“No.Id         : “+noId);
       System.out.println(“Nama          : “+nama);
       System.out.println(“Alamat        : “+alamat);
       System.out.println(“SALDO         : “+saldo);
       }
voidsetoran(double jml){
       saldo = saldo + jml;
       }
voidpengambilan(double jml){
       saldo = saldo – jml;
       }
public static  double hitung(double saldo,double setor){
       return saldo – setor;
       }
//Menampilkanjumlah nasabah
public static voidmain(String []args){
       System.out.println(“Jumlah Nasabah =”+Nasabah.jmlNasabah);
//PemanggilanObject dengan pemanggilan KONSTRUKTOR 1
       Nasabah nasabah1=newNasabah(Nasabah.jmlNasabah+1);
       System.out.println(“Data Nasabah1”);
       nasabah1.lihatAccount();
//PemanggilanObject dengan pemanggilan KONSTRUKTOR 2
       Nasabah nasabah2=newNasabah(Nasabah.jmlNasabah+1,”Pulut”);
       System.out.println(“Data Nasabah2”);
       nasabah2.lihatAccount();
//PemanggilanObject dengan pemanggilan KONSTRUKTOR 3
       Nasabah nasabah3=newNasabah(Nasabah.jmlNasabah+1, “Agung”, 200000);
       System.out.println(“Data Nasabah3”);
       nasabah3.lihatAccount();
       System.out.println(“==================================================”);
//Melihat jumlahnasabah sekarang
       System.out.println(“Jumlah Nasabah =”+Nasabah.jmlNasabah);
//Memanggil methodstatic hitung
       System.out.println(“20000 – 1000 =”+Nasabah.hitung(20000,1000));
       }
}
jmlNasabahadalah salah satu static variable yang akan menjadi nilai bersama dalam satukelas. Sehingga dimanapun variable tersebut dipanggil maka nilai dari variabletetap. Dapat dilihat bahwa jmlNasabah bernilai sama dengan noId, nilai awaljmlNasabah adalah 0, pada saat pemanggilan pertama dengan cara:
       Nasabah nasabah1=newNasabah(Nasabah.jmlNasabah+1);
Objeknasabah1 diberikan parameter bernilai 1, sehingga otomatis noId bernilai 1 dansecara otomatis jmlNasabah juga bernilai 1. Demikian juga selanjutnya karenanilai jmlNasbah senantiasa bertambah satu. Dan ini membuktikan bahwa dimanapunjmNasabah dipanggil nilainya tetap sama.
public static  double hitung(double saldo,double setor){
       return saldo – setor;
Selainitu dalam program ini mencoba method static mempunyai nilai return value danjuga dapat dipanggil langsung tanpa menciptakan objek. Dengan memasukkan duaparameter saldo dan setor. Dapat kita bedakan pada saat kita menggunakan methodsetoran dan method penarikan yang harus menginstan objek dari kelas Nasabahuntuk melakukan pemanggilannya.  Denganmethod static ini akan lebih mudah melakukan dan dapat dilakukan dimanapunjuga, dan tentunya method static ini tidak dapat dipanggil dengan objek hasilinstan kelas Nasabah.
Hasil running:
Praktek 2.Memanggil Atribute dan Method Static dari kelas Math
Memanfaatkan method kelas Math sehinggadapat untuk mengolah /mengidentifikasi bilangan.
               
class MathDemo{
public static void main(String args[]){
System.out.println(“Nilai Absolut dari -5 => “+Math.abs(-5));
System.out.println(“Nilai Absolut dari 5 => “+Math.abs(5));
System.out.println(” “);
double bil=Math.random()*10;
System.out.println(“Random number(max is 10) => “+bil);
//Menghasilkan nilai dari 0,0 sampai 1,0 dikalikan 10
System.out.println(“Random number(max is 10) bilangan bulat =>”+Math.ceil(bil));
System.out.println(” “);
System.out.println(“nilai tertinggi ant bil 3.5 dan 1.2 =>”+Math.max(3.5,1.2));
System.out.println(“nilai terendah ant bil  3.5 dan 1.2 => “+Math.min(3.5,1.2));
System.out.println(” “);
System.out.println(“pembulatan ke atas dari 3.5  => “+Math.ceil(3.5));
System.out.println(“pembulatan ke bawah dari 3.5 =>”+Math.floor(3.5));
System.out.println(” “);
System.out.println(“e raised to 1=> “+Math.exp(1));
System.out.println(“log 10      => “+Math.log(10));
System.out.println(“10 pangkat 3=> “+Math.pow(10,3));
System.out.println(” “);
System.out.println(“rounded off value of pi =>”+Math.round(Math.PI));
//Membulatkan sesuai dengan nilai pecahan diatas 0,5 akan dibulatkan keatas dan dibawah 0,5 dibulatkan ke bawah
System.out.println(“Akar dari bilangan 5    => “+Math.sqrt(5));
       }
}
Pembahasan:

System.out.println(“Nilai Absolut dari -5 =>”+Math.abs(-5));
System.out.println(“Nilai Absolut dari 5 => “+Math.abs(5));
Math.abs digunakan untuk mencari nilai positif(absolute) sehingga nilainya adalah 5.
double bil=Math.random()*10;
System.out.println(“Random number(max is 10) => “+bil);
System.out.println(“Random number(max is 10) bilangan bulat =>”+Math.ceil(bil));
Math.randomakan menghasilkan nilai acak berupa bilangan double antara 0,0 sampai dengan9,999999999. Tetapi dengan mengkonversi Math.random*10 menjadi variable bil danmemadukannya dengan perintah Math.ceil yaitu digunakan untuk membulatkan keatas suatu bilangan. Sehingga nilai random tidak lagi pecahan tetapi menjadibilangan bulat.
Selanjutyadi bawah ini fungsi Math berturut-turut mempunyai fungsi sebagai:
Math.max           :               Pencarinilai maximum/terbesar dari parameter
Math.min            :               Pencarinilai minimum/terkecil dari parameter
Math.ceil             :               Pembulatanke atas
Math.floor          :               Pembulatanke bawah
Math.exp            :               Nilaiexponensial dari bilangan
Math.log              :               Nilailogarismis dari bilangan
Math.pow           :               Nilaipangkat dari bilangan
Math.round       :               Pembulatanmendekati ke atas bila pecahan >= 0,5 dan ke
                                                bawahbila nilai pecahan <0,5
Math.pow           :               Akardari bilangan;
System.out.println(“nilai tertinggi ant bil 3.5 dan 1.2 =>”+Math.max(3.5,1.2));
System.out.println(“nilai terendah ant bil  3.5 dan 1.2 => “+Math.min(3.5,1.2));
System.out.println(” “);
System.out.println(“pembulatan ke atas dari 3.5  => “+Math.ceil(3.5));
System.out.println(“pembulatan ke bawah dari 3.5 =>”+Math.floor(3.5));
System.out.println(” “);
System.out.println(“e raised to 1=> “+Math.exp(1));
System.out.println(“log 10      => “+Math.log(10));
System.out.println(“10 pangkat 3=> “+Math.pow(10,3));
System.out.println(” “);
System.out.println(“rounded off value of pi =>”+Math.round(Math.PI));
//Membulatkan sesuai dengan nilai pecahan diatas 0,5 akan dibulatkan keatas dan dibawah 0,5 dibulatkan ke bawah
System.out.println(“Akar dari bilangan 5    => “+Math.sqrt(5));
Hasil Running:
LATIHAN:
public classTestNasabah{
       public static void main(String[] args){
              Nasabah.lihatAccount();
              //Jelaskan dilaporan yangmenyebabkan error!!!!
              //Method bukan static tidak bolehmereferensi Method Static
              System.out.println(Nasabah.hitung(10000,100));
              //Jelaskan dilaporan kenapa tidakerror!!!!
              System.out.println(Nasabah.noId);
              //Jelaskan dilaporan kenapaerror!!!!
              //Variabel bukan static tidakboleh mereferensi variabel Static
              System.out.println(Nasabah.jmlNasabah);
              //Jelaskan dilaporan kenapa tidakerror!!!!
       }
}
Jawab:
Error pada compilasi java menyatakan:
E:\Semester2\Object Oriented Programming 1\Modul06-STATIC\TestNasabah.java:4: non-staticmethod lihatAccount() cannot be referenced from a static context
              Nasabah.lihatAccount();
                     ^
E:\Semester2\Object Oriented Programming 1\Modul06-STATIC\TestNasabah.java:11: non-staticvariable noId cannot be referenced from a static context
              System.out.println(Nasabah.noId);
                                        ^
2 errors
Artinya :
  • Error terjadi pada baris ke 4 dengan komentar bahwa method non static tidak boleh mereferensi atau memanggil method static
  • Error pada baris ke 11 menyatakan bahwa variabel non static tidak diperbolehkan mengambil nilai variabel static.
TUGAS:
  1. Membuat kelas yang menggunakan method static milik Kelas Integer
  2. Lengkapi kelas Lingkaran dengan atribut static yang pi
  3. Buatlah kelas baru untuk melakukan pengujian pemaggilan atribute pi.
HasilTugas:
public class Lingkar1{
public static int jejari=0;
public static double pi=3.14;
Lingkar1(){
     jejari=12;
     }
Lingkar1(int jejari){
     this.jejari=jejari;
     }
public double luas(){
     return(pi * this.jejari * this.jejari);
     }
public double keliling(){
     return(0.5 * this.jejari * this.jejari);
     }
}
Kelas untuk memanggil:
class Panggil{
public static void main(String []args){
     Lingkar1bunder1=new Lingkar1();
     doublejembar=bunder1.luas();
     doublemuter=bunder1.keliling();
     System.out.println(“================================”);
     System.out.println(“HasilPerhitungan Lingkaran 1 :”);
     System.out.println(“================================”);
     System.out.println(“LuasLingkaran  : “+jembar);
     System.out.println(“LuasKeliling   : “+muter);
     System.out.println(“Dengannilai pi : “+bunder1.pi);
     Lingkar1bunder2=new Lingkar1(20);
     System.out.println(“================================”);
     System.out.println(“HasilPerhitungan Lingkaran 2 :”);
     System.out.println(“================================”);
     System.out.println(“LuasLingkaran  : “+bunder2.luas());
     System.out.println(“LuasKeliling   : “+bunder2.keliling());
     System.out.println(“Dengannilai pi : “+bunder2.pi);
     }
}
Hasil Program:
          
KESIMPULAN:
  1. Variabel static  adalah variable yang dideklarasikan sebagai variable yang dapat dibaca oleh siapapun dalam suatu kelas. Nilainya sama walaupun dipakai oleh method yang berbeda.
  2. Selain itu juga ada method static dimana method ini dapat dipanggil langsung tanpa harus menciptakan objek, bahkan apabila dipanggil dengan objek malah tidak dapat berfungsi/error.

Beberapakelas yang berada pada packet Math atau kelas Math sebagai bentuk contohnya.Pada kelas static Math berbagai method dapat dipanggil langsung.

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s