04.47 java se_more on static

6
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 . J ika 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) . Jefri Fahran | Page 1 of 6

Upload: jefri-fahrian

Post on 09-Jan-2017

95 views

Category:

Software


2 download

TRANSCRIPT

Page 1: 04.47 JAVA SE_more on static

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

Page 2: 04.47 JAVA SE_more on static

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

Page 3: 04.47 JAVA SE_more on static

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

Page 4: 04.47 JAVA SE_more on static

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

Page 5: 04.47 JAVA SE_more on static

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