Jefri Fahran | Page 1 of 5
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 dibuat1
. 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 VariabelStatic
1 public class VariabelStatic {
2 private static int angkaPertama = 0; //atribut static
3 private int angkaKedua = 0; //atribut non-static
4 public int getAngkaPertama(){
5 angkaPertama ++;
6 return angkaPertama;
7 }
Jefri Fahran | Page 2 of 5
8 public int getAngkaKedua(){
9 angkaKedua ++;
10 return angkaKedua;
11 }
12 }
//class TestStaticVariabel
1 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();
5
6 /** pemanggilan method dari kelas VariabelStatic */
7 System.out.println("angka static1 : " +
ffffvs.getAngkaPertama());
8 System.out.println("angka non-static1 : " +
fghfvs.getAngkaKedua());
9
10 /** pembuatan objek vs1 untuk bisa memanggil method dari
kelas VariabelStatic */
11 VariabelStatic vs1 = new VariabelStatic();
12
13 /** pemanggilan method dari kelas VariabelStatic */
14 System.out.println("angka static2 : " +
bbbbvs1.getAngkaPertama());
15 System.out.println("angka non-static 2 : " +
kkkkvs1.getAngkaKedua());
16
17 /** pembuatan objek vs2 untuk bisa memanggil method dari
kelas VariabelStatic */
18 VariabelStatic vs2 = new VariabelStatic();
19
20 /** 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 : 1
angka non-static1 : 1
angka static2 : 2
angka non-static2 : 1
angka static3 : 3
angka 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 3 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 StaticSatu
1 public class StaticSatu {
2 private static int angkaPertama = 3; //variable static
3 private static int angkaKedua = 5; //variable static
4 public static int getJumlahAngka(){ //method static
5 return angkaPertama + angkaKedua; //penjumlahan
6 }
7 public int getPerkalianAngka(){ //method non static
8 angkaPertama ++;
9 return angkaPertama * angkaKedua;
10 }
11 }
//class MainSatic
1 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 4 of 5
Keluaran program:
hasil method static1 : 8
hasil method static2 : 4
hasil 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 5 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.

04.47 JAVA SE_more on static

  • 1.
    Jefri Fahran |Page 1 of 5 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 dibuat1 . 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 VariabelStatic 1 public class VariabelStatic { 2 private static int angkaPertama = 0; //atribut static 3 private int angkaKedua = 0; //atribut non-static 4 public int getAngkaPertama(){ 5 angkaPertama ++; 6 return angkaPertama; 7 }
  • 2.
    Jefri Fahran |Page 2 of 5 8 public int getAngkaKedua(){ 9 angkaKedua ++; 10 return angkaKedua; 11 } 12 } //class TestStaticVariabel 1 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(); 5 6 /** pemanggilan method dari kelas VariabelStatic */ 7 System.out.println("angka static1 : " + ffffvs.getAngkaPertama()); 8 System.out.println("angka non-static1 : " + fghfvs.getAngkaKedua()); 9 10 /** pembuatan objek vs1 untuk bisa memanggil method dari kelas VariabelStatic */ 11 VariabelStatic vs1 = new VariabelStatic(); 12 13 /** pemanggilan method dari kelas VariabelStatic */ 14 System.out.println("angka static2 : " + bbbbvs1.getAngkaPertama()); 15 System.out.println("angka non-static 2 : " + kkkkvs1.getAngkaKedua()); 16 17 /** pembuatan objek vs2 untuk bisa memanggil method dari kelas VariabelStatic */ 18 VariabelStatic vs2 = new VariabelStatic(); 19 20 /** 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 : 1 angka non-static1 : 1 angka static2 : 2 angka non-static2 : 1 angka static3 : 3 angka 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
  • 3.
    Jefri Fahran |Page 3 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 StaticSatu 1 public class StaticSatu { 2 private static int angkaPertama = 3; //variable static 3 private static int angkaKedua = 5; //variable static 4 public static int getJumlahAngka(){ //method static 5 return angkaPertama + angkaKedua; //penjumlahan 6 } 7 public int getPerkalianAngka(){ //method non static 8 angkaPertama ++; 9 return angkaPertama * angkaKedua; 10 } 11 } //class MainSatic 1 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 }
  • 4.
    Jefri Fahran |Page 4 of 5 Keluaran program: hasil method static1 : 8 hasil method static2 : 4 hasil 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.
  • 5.
    Jefri Fahran |Page 5 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.