Upload
jefri-fahrian
View
96
Download
2
Embed Size (px)
Citation preview
04.47 More On Static
Jefri Fahrian (6)
Pada pemrograman berorientasi objek, pembuatan sebuah kelas sudah
menjadi sebuah keharusan. Hal ini dikarenakan kelas adalah blue print dari
sebuah objek. Pada sebuah kelas terdapat dua komponen utama. Dua komponen
tersebut yakni atribut dan method. Jika kita menginginkan suatu data untuk bisa di
akses oleh objek lain atau tidak bisa di akses oleh objek luar lainnya, kita
menggunakan access modifiers. Access modifier merupakan keyword yang
digunakan untuk menentukan spesifikasi tingkat akses suatu vaiabel atau method
(anggota kelas). Pengaksesan yang dimaksud bisa berupa pengaksesan dalam
kelas yang sama, turunan maupun dari luar kelas di mana variabel dan method
dideklarasikan.
Accesss Modifier Static
Access Modifier Static digunakan untuk membuat atribut dan method yang
menjadi milik kelas, bukan objek. Dengan demikian penggunaan atribut dan method
tersebut tidak membuat objeknya terlebih dulu. Selain itu, nilai atribut kelas akan
sama semua, tidak tergantung dengan objek yang dibuat 1. Semua atribut dan metode
yang bergantung pada objek harus didefinisikan sebagai instance
variable dan instance method. Static variable hanya dapat dibuat pada variabel dan
method yang nilainya sama, tidak bergantung pada masing-masing objek (Hariyanto, 2003).
Penggunaan Static Variabel
Static variable adalah variabel yang dimiliki oleh kelas tersebut,
bukan variabel yang dimiliki oleh objek yang diinstansiasi sebelumnya. Berikut
adalah kode program yang menggambarkan penggunaan kata
kunci static pada variable.
//class VariabelStatic1 public class VariabelStatic {2 private static int angkaPertama = 0; //atribut static3 private int angkaKedua = 0; //atribut non-static4 public int getAngkaPertama(){5 angkaPertama ++;6 return angkaPertama; 7 }8 public int getAngkaKedua(){
Jefri Fahran | Page 1 of 5
9 angkaKedua ++; 10 return angkaKedua;11 }12 }
//class TestStaticVariabel1 public class TestStaticVariabel {2 public static void main(String[] args){3 /** pembuatan objek vs untuk bisa memanggil method dari
kelas VariabelStatic */4 VariabelStatic vs = new VariabelStatic();56 /** pemanggilan method dari kelas VariabelStatic */7 System.out.println("angka static1 : " +
ffffvs.getAngkaPertama()); 8 System.out.println("angka non-static1 : " +
fghfvs.getAngkaKedua());910 /** pembuatan objek vs1 untuk bisa memanggil method dari
kelas VariabelStatic */11 VariabelStatic vs1 = new VariabelStatic(); 1213 /** pemanggilan method dari kelas VariabelStatic */14 System.out.println("angka static2 : " +
bbbbvs1.getAngkaPertama());15 System.out.println("angka non-static 2 : " +
kkkkvs1.getAngkaKedua());1617 /** pembuatan objek vs2 untuk bisa memanggil method dari
kelas VariabelStatic */18 VariabelStatic vs2 = new VariabelStatic(); 1920 /** pemanggilan method dari kelas VariabelStatic */21 System.out.println("angka static3 : " +
;;;;vs2.getAngkaPertama());22 System.out.println("angka non-static 3 : " +
llllvs2.getAngkaKedua());23 } 24 }
Keluaran program :angka static1 : 1angka non-static1 : 1angka static2 : 2angka non-static2 : 1angka static3 : 3angka non-static3 : 1
Dari keluaran program tersebut dapat disimpulkan bahwa variabel yang memiliki access modifier static adalah variabel milik kelas tersebut, bukan milik objek. Hal ini didasarkan bahwa variabel static nilainya terus bertambah apabila dibuat satu objek dan method yang mengubah nilai tersebut dipanggil. Sementara variabel non-static nilainya tetap apabila objek tersebut dipanggil berkali-kali. Hal ini dikarenakan variabel non static adalah variabel milik objek
Jefri Fahran | Page 2 of 5
tersebut. Sehingga apabila objeknya berbeda maka nilainya tetap mengacu pada nilai awal yang diinisialisasi oleh kelas tersebut.Penggunaan Static Method
Hampir sama dengan static variable, static method adalah method yang dimiliki oleh kelas tersebut. Sehingga cara pemanggilannya pun tidak harus menginstansiasi objek terlebih dulu. Cukup dengan memanggil nama kelas tersebut yang diikuti oleh titik dan nama method yang akan dipanggil. Cara ini digunakan untuk memanggil static method yang berbeda kelas. Sementara untuk static method yang berada pada kelas yang sama, pemanggilannya cukup dengan memanggil nama method tersebut (Hariyanto, 2003). Berikut ini adalah contoh kode program dari static method.// class StaticSatu1 public class StaticSatu {2 private static int angkaPertama = 3; //variable static3 private static int angkaKedua = 5; //variable static4 public static int getJumlahAngka(){ //method static5 return angkaPertama + angkaKedua; //penjumlahan6 }7 public int getPerkalianAngka(){ //method non static8 angkaPertama ++; 9 return angkaPertama * angkaKedua; 10 }11 }
//class MainSatic1 public class MainStatic {2 public static void main(String[] args){3 /**mengakses method static*/4 System.out.println("hasil method static1 : " +
hhhhhhhStaticSatu.getJumlahAngka()); 5 /**mengakses method static*/6 System.out.println("hasil method static2 : " +
jjjjjjjgetPengurangan());7 StaticSatu ss = new StaticSatu();8 System.out.println("hasil method non-static : " +
///////ss.getPerkalianAngka()); 9 }10 /**method static/11 public static int getPengurangan(){ 12 int angka1 = 8;13 int angka2 = 4;14 return angka1 - angka2;15 }16 }
Jefri Fahran | Page 3 of 5
Keluaran program:
hasil method static1 : 8hasil method static2 : 4hasil method non-static : 20
Dari gambar tersebut dapat disimpulkan bahwa method static bisa dipanggil dengan dua cara. Yaitu dengan memanggil nama kelas tersebut, dan dengan menginstansiasi objek tersebut.
/**pemanggilan static method getJumlahAngka()*/StaticSatu.getJumlahAngka());
//pemanggilan static method StaticSatu*/ StaticSatu ss = new StaticSatu();System.out.println("hasil method non-static : " + ss.getPerkalianAngka());
Pada hasil method static yang pertama, pemanggilan dari method main hanya dengan memanggil nama kelas dan diikuti titik dan nama method tersebut. Sehingga hasilnya langsung mengeksekusi variable-variable static yang terdapat pada kelas MainStatic.
Sementara untuk hasil kedua, pemanggilan method tersebut harus dengan pembuatan kelas karena method tersebut bukan method static. Hasil ketiga adalah hasil dari pemanggilan method static yang dilakukan dengan menggunakan pemanggilan dari objek yang dibuat. Sementara hasil keempat adalah hasil dari pemanggilan method static yang berasal dari kelas yang sama, sehingga tidak perlu membuat instansiasi objek atau pun nama kelas yang bersangkutan untuk memanggil method tersebut. Untuk method static, variable pun harus bersifat static.
Jefri Fahran | Page 4 of 5
Daftar Pustaka
Bloch, J. (2001). Effective Java: Programming Language Guide. Massachusetts: Addison Wesley.
Bracha, G. (2004). Generics in the Java Programming Language.
Hariyanto, B. (2003). Esensi - Esensi bahasa pemrograman Java. Bandung: Penerbit Informatika.
Harold, E. R. (1999). Java I/O. O'Reilly.
McLaughlin, B. (2002). Building Java™ Enterprise Applications Volume I: Architecture. O'Reilly.
Jefri Fahran | Page 5 of 5