Membuat Scope 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.
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; } }
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.
// 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);
}
}
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.// 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);
}
}
Baca Juga:
// 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);
}
}
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);
}
}
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++.
// 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);}
}
}
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);
}
}
}
}
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);
}
}
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.
- 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 di mana 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.
- Kendala Penggunaan For Each Loop Java dan Solusinya
- Membuat Program Berulang Java Menggunakan For Loop
- Membuat Perintah Keyboard Java Menggunakan Switch Statement
- Membuat Perintah Keyboard Java Menggunakan String Switch Case
- Deklarasi Forward Java dan Fungsinya
- Konversi Tipe Data Java dan Fungsinya
- Konversi Tipe Data Primitif Java dan Fungsi Lanjutan
5 komentar untuk "Membuat Scope Variabel Java dan Fungsinya"
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 -
Apa yang dimaksud dengan cakupan pada bahasa pemrograman Java? apakah saja saja dengan scope?
BalasHapusCakupan atau scope (inggris) dalam bahasa pemrograman Java adalah wilayah program dimana suatu variabel yang dideklarasikan pada wilayah tersebut dapat diakses oleh program.
HapusPada Java, scope variabel adalah suatu tubuh dari method yang digunakan untuk pendeklarasian variabel dan berupakan bentuk yang bersifat statis.
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.
BalasHapusApa yang dimaksud dengan akses default variabel terkait dengan penggunaan scope pada bahasa pemrograman Java?
BalasHapusAkses default, artinya sebuah variabel akan memiliki suatu nilai akses otomatis ketika variabel tersebut dideklarasikan tanpa disertai deklarasi akses scopenya.
HapusDefault akses, juga berarti bahwa variabel yang dideklarasikan tidak dinyatakan secara ekplisit akses deklarasinya dalam sebuah class pada Java.