Lompat ke konten Lompat ke sidebar Lompat ke footer

Membuat Scope Variabel Java dan Fungsinya

Scope variabel adalah bagian dari program dimana variabel diakses. Seperti bahasa pemrograman C atau C++, pada program Java semua identifier adalah lexical (atau static) scope, yaitu scope dari variabel yang dapat ditentukan pada waktu kompilasi, dan juga bersifat independent dari fungsi call stack. Java program diorganisir dalam form class. Setiap class pada Java adalah bagian dari beberapa package. Java scope dapat mengorganisir dalam beberapa kategori berikut.


Sebelum mempelajari materi tentang cara Membuat Scope Variabel Java dan Fungsinya, terlebih dahulu pelajari materi tentang: Aturan Penggunaan Enum Java Dengan Nilai Kostumisasi, Cara Menyisipkan String Java dan Fungsinya, dan Tipe Variabel Java dan Fungsinya.

Anggota Variabel (class level scope)

Jenis variabel ini harus dideklarasikan di dalam kelas (diluar dari fungsi apapun). Variabel ini dapat diakses secara langsung dimanapun class berada. Perhatikan contoh berikut ini:

public class Test
/* Semua variabel didefinisikan secara langsung di dalam class adalah bagian dari variabel */ 
int a;
private String b
void method1() {....}
int method2() {....}
char c;
}

Dari contoh tersebut dapat dipahami bahwa:
  • Class variabel dapat dideklarasikan dimanapun di dalam class, tetapi di luar method.
  • Akses spesifik dari anggota variabel tidak berdampak pada scope dari anggota variabel di dalam class.
  • Anggota variabel dapat mengakses class dari luar dengan beberapa ketentuan berikut seperti pada tabel 1.

Tabel 1 Scope Variabel Java
ModifierPackageSubclassWorld
publicyesyesyes
protectedyesyesno
Defaul (no modifier)yesnono
privatenonono

Variabel lokal (Method level scope)

Variabel yang dideklarasikan di dalam method memiliki scope pada level method dan tidak dapat diakses dari luar method.

public class Test
void method1() 
/* variabel lokal (Method level scope) */
int x; }

Catatan: Variabel lokal tidak akan muncul setelah method selesai dieksekusi.
Berikut beberapa contoh dari scope method, variabel diteruskan sebagai parameter pada method.

class Test
private int x;
public void setX(int x)
this.x = x; }

Kode proram yang dijelaskan sebelumnya menggunakan keyword this untuk membedakan antara variabel lokal dan class variabel.

Contoh:

// Scope pada bahasa

// pemrograman Java

public class Test

{

static int x = 11;

private int y = 33;

 

public void method1(int x)

{

Test t = new Test();

this.x = 22;

y = 44;

 

System.out.println("Test.x: " 

+ Test.x);

System.out.println("t.x: " 

+ t.x);

System.out.println("t.y: " 

+ t.y);

System.out.println("y: " 

+ y);

}

 

public static void main(String args[])

{

Test t = new Test();

t.method1(5);

}

 

}

Output:
Test.x: 22
t.x: 22
t.y: 33
y: 44

Loop variabel (block scope)

Sebuah variabel dideklarasikan di dalam sepasang tanda kurung "{" dan "}" pada method yang memiliki scope diantara tanda tersebut.

Contoh:

// Scope pada bahasa

// pemrograman Java

public class Test

{

 

public static void main(String args[])

{

 

{

// Variabel x berada dalam

// scope

 

// yang berada dalam tanda

// kurung kurawal

int x = 10;

System.out.println(x);

}

       

// Program ini akan

// menghasilkan error

 

// karena variabel x berada

// diluar scope

 

// System.out.println(x);

}

 

}

Output:
10

Baca Juga:
Contoh: Program menggunakan for loop (perulangan).

// Scope pada bahasa

// pemrograman Java

class Test

{

 

public static void main(String args[])

{

 

for (int x = 0; x < 4; x++){

System.out.println(x);}

 

// Akan menghasilkan error

System.out.println(x);

}

 

}

Output:
11: error: cannot find symbol
System.out.println(x); 

Contoh: Koreksi dari kode program sebelumnya adalah.

// Scope pada bahasa

// pemrograman Java

 

// Program java setelah

// dilakukan koreksi program

class Test

{

public static void main(String args[])

{

 

int x;

for (x = 0; x < 4; x++)

{

System.out.println(x);

}

 

System.out.println(x);

}

 

}

Output:
0
1
2
3
4

Berikut adalah contoh program yang sedikit mengecoh. Perkirakan hasil yang akan keluar dari program berikut. Hasilnya akan berbeda jika program tersebut dibuat dalam bahasa C atau C++.

Contoh:

// Scope pada bahasa

// pemrograman Java

class Test

{

 

public static void main(String args[])

{

 

int a = 5;

for (int a = 0; a < 5; a++)

{System.out.println(a);}

 

}

 

}

Output:
6: error: variable a is already defined in method go(int)
for (int a = 0; a < 5; a++)       
^
1 error

Catatan: Jika bentuk algoritma dari program sebelumnya dibuat dalam bahasa C atau C++ maka program dapat dijalankan. Tetapi, jika algoritma tersebut dibuat dalam bahasa Java maka akan menampilkan pesan error. Karena,  pada Java sistem penamaan variabel di luar dan di dalam loop harus berbeda.

Contoh: Sebagai latihan, perkirakan hasil output dari kode program berikut ini.

// Scope pada bahasa

// pemrograman Java

class Test

{

 

public static void main(String args[])

{

 

{

int x = 5;

{

int x = 10;

System.out.println(x);

}

}

 

}

 

}


Contoh: Dari penjelasan yang telah dipahami sebelumnya, perkirakan output kode program berikut.

class Test {

 

public static void main(String args[])

{

 

for (int i = 1; i <= 10; i++

{System.out.println(i);}

 

int i = 20;

System.out.println(i);

 

}

 

}

Output:
1
2
3
4
5
6
7
8
9
10
20

Inner loop akan dimatikan sebelum variabel outer loop dideklarasikan. Jadi, variabel inner loop akan hilang terlebih dahulu dan digantikan dengan nilai variabel yang baru dengan nama variabel yang sama seperti yang telah dideklarasikan sebelumnya.

Beberapa poin penting mengenai scope variabel pada Java:
  • Secara umum, tanda "{" dan "}" digunakan untuk mendefinisikan scope.
  • Pada Java, variabel dapat diakses selama variabel tersebut didefinisikan di dalam tanda "{" dan "}" atau didalamnya lagi dari tanda "{" dan "}" dimana variabel didefinisikan (kurung di dalam kurung).
  • Segala jenis variabel yang dideklarasikan di luar dari method dapat digunakan oleh semua anggota method lainnya.
  • Ketika method memiliki variabel lokal yang sama dengan anggota method, maka keyword tersebut dapat digunakan sebagai referensi dari variabel class pada saat itu.
  • Untuk variabel yang akan dibaca setelah looping berakhir, maka variabel tersebut harus dideklarasikan kembali.


Scope variabel dalam bahasa pemrograman Java mengacu pada wilayah atau bagian program dimana variabel dapat diakses atau memiliki efek. Kelebihan dari pengelolaan scope variabel dalam Java termasuk:
  • Kejelasan dan Keamanan Kode: Penanganan scope yang baik dapat meningkatkan kejelasan kode. Variabel yang dideklarasikan dalam scope yang tepat membatasi visibilitasnya, mengurangi risiko konflik nama, dan membuat kode lebih aman dan mudah dimengerti.
  • Pengelolaan Memori yang Efisien: Variabel yang hanya diperlukan dalam suatu scope memiliki umur hidup yang lebih singkat. Hal ini dapat membantu dalam pengelolaan memori yang lebih efisien karena variabel yang tidak lagi diperlukan dapat dihapus saat scope selesai dieksekusi.
  • Mencegah Konflik Nama (Name Conflicts): Penanganan scope yang baik membantu mencegah konflik nama variabel. Dengan batasan scope, pengembang dapat menggunakan nama variabel yang sama di dalam scope yang berbeda tanpa menyebabkan konflik.
  • Encapsulation dan Abstraksi: Scope mendukung konsep encapsulation dan abstraksi. Variabel yang dideklarasikan dalam scope yang lebih rendah (lebih tersembunyi) tidak dapat diakses secara langsung dari luar scope, mendukung konsep enkapsulasi.
  • Mendukung Hidup Segmen (Block-Level Scope): Java mendukung scope pada tingkat blok (block-level scope), artinya variabel dapat dideklarasikan dalam segmen kode tertentu, seperti dalam blok if, for, atau while. Hal ini membantu mengisolasi variabel dan membatasi ruang lingkupnya. if (condition) { int x = 10;  /* Variabel hanya ada dalam blok if */}
  • Pencegahan Perubahan Tak Terduga: Scope membantu mencegah perubahan tak terduga pada variabel. Jika suatu variabel hanya diperlukan dalam suatu metode atau blok kode tertentu, menempatkannya di dalam scope tersebut mencegah perubahan tak terduga dari bagian-bagian lain dalam program.
  • Mendukung Pembuatan Fungsi dan Metode yang Bersih: Scope membantu dalam pembuatan fungsi dan metode yang bersih dan terisolasi. Variabel yang digunakan dalam fungsi atau metode hanya dapat diakses di dalam fungsi tersebut, meningkatkan kejelasan dan isolasi.
  • Pembacaan Kode yang Lebih Mudah: Scope yang sesuai membantu pembacaan kode yang lebih mudah. Dengan mengetahui dimana suatu variabel dideklarasikan dan diakses, pembaca kode dapat dengan cepat memahami bagaimana variabel tersebut digunakan.
  • Ketahanan Terhadap Perubahan: Scope yang teratur membuat kode lebih tangguh terhadap perubahan. Jika suatu variabel hanya dibutuhkan dalam satu bagian program, perubahan di bagian lain cenderung tidak mempengaruhi variabel tersebut.
  • Pemecahan Masalah yang Lebih Cepat: Dengan scope yang baik, ketika terjadi masalah dengan variabel, pengembang dapat fokus pada bagian kode tertentu tanpa harus mempertimbangkan seluruh program. Hal ini mempercepat proses pemecahan masalah.

Pengelolaan scope variabel adalah bagian penting dari desain program yang baik dalam Java. Dengan memanfaatkan scope dengan benar, pengembang dapat membuat kode yang lebih terstruktur, aman, dan mudah dimengerti.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Muhammad Ali Wardhana, Muhammad Nizam, Nila Putri Anindita, Nur Sarah Fahma Diba', dan Nurman Satria Herlangga.

5 komentar untuk "Membuat Scope Variabel Java dan Fungsinya"

  1. Apa yang dimaksud dengan cakupan pada bahasa pemrograman Java? apakah saja saja dengan scope?

    BalasHapus
    Balasan
    1. Cakupan atau scope (inggris) dalam bahasa pemrograman Java adalah wilayah program dimana suatu variabel yang dideklarasikan pada wilayah tersebut dapat diakses oleh program.

      Pada Java, scope variabel adalah suatu tubuh dari method yang digunakan untuk pendeklarasian variabel dan berupakan bentuk yang bersifat statis.

      Hapus
  2. Scope mengacu pada visibilitas dari suatu variabel pada bahasa pemrograman Java. Dengan kata lain, scope merupakan bagian dimana program dapat dilihat dan digunakan setelah scope tersebut didefinisikan.

    BalasHapus
  3. Apa yang dimaksud dengan akses default variabel terkait dengan penggunaan scope pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Akses default, artinya sebuah variabel akan memiliki suatu nilai akses otomatis ketika variabel tersebut dideklarasikan tanpa disertai deklarasi akses scopenya.

      Default akses, juga berarti bahwa variabel yang dideklarasikan tidak dinyatakan secara ekplisit akses deklarasinya dalam sebuah class pada Java.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -