Variabel (ilmu komputer): Perbedaan antara revisi

Konten dihapus Konten ditambahkan
DamenaKo (bicara | kontrib)
perbaikan kata
DamenaKo (bicara | kontrib)
tambah informasi tentang ruang lingkup variabel
Baris 8:
 
== Tipe-tipe variabel bedasarkan masa hidupnya ==
Variabel dapat dibagi bedasarkan masa hidupnya. tipe-tipe variabel bedasarkan pembagian ini adalah ''statis, stack dinamis, heap dinamis eksplisit, heap dinamis implisit.'' Adapaun variabel statis, juga dikenal sebagai variabel global, adalah variabel yang nilainya selalu berada pada tempat yang sama dalam memori, mulai dari awal berjalannya program hingga program berakhir. Masa hidup dari variabel ini adalah sepanjang berjalannyaberakhirnya program. Lalu variabel ''stack'' dinamis, juga dikenal sebagai variabel lokal, adalah variabel yang diletakkan pada memori ''stack'' saat ''statement'' pendeklarasian variabel dieksekusi. Masa hidup variabel ini adalah sepanjang berjalannya [[Fungsi (ilmu komputer)|fungsi]] tempat variabel tersebut dideklerasikan.
 
Variabel ''heap'' dinamis eksplisit adalah variabel abstrak tanpa nama yang dialokasikan di dalam ''heap'' saat berjalannya program, sesuai dengan perintah yang telah dispesifikasikan oleh ''programmer''. Contoh untuk jenis ini adalah objek dalam bahasa pemrograman [[Java]], dan ''dynamic object'' dalam bahasa [[C++]]. Terakhir, variabel ''heap'' dinamis implisit adalah variabel yang dialokasikan ke dalam ''heap'' hanya saat ia berisi suatu nilai. Variabel ini lebih fleksibel daripada variabel-variabel lainnya. Contohnya adalah beberapa variabel dalam [[JavaScript]] dan [[PHP]].{{Authority control}}
 
== Ruang linkup variabel (''variable scope)'' ==
 
Ruang lingkup dari variabel menjelaskan di mana variabel tersebut dapat digunakan dalam kode. Sementara itu, masa hidup variabel menjelaskan kapan variabel tersebut mempunyai nilai saat berjalannya program. Walau begitu, ruang lingkup dari suatu variabel berhubungan dengan masa hidupnya. Ruang lingkup adalah sifat dari nama variabel tersebut, yang menjelaskan di mana saja nama tersebut valid untuk digunakan. Sedangkan masa hidup adalah sifat dari nilai di dalam memori yang terikat dengan variabel tersebut, terkhusus saat berjalannya program.
 
Dua hal ini berbeda dengan konteks, yang merupakan properti dari program itu sendiri. Konteks dari program berbeda-beda dalam kodenya dan juga dalam eksekusinya.
 
Ruang lingkup adalah bagian penting dalam resolusi nama suatu variabel. Ruang lingkup dari suatu variabel adalah bagian dari teks kode program di mana variabel itu dianggap "ada" dan memiliki nilai. Awal dari bagian itu biasanya mengawali masa hidup dari variabel dan akhir dari bagian itu mengakhiri masa hidupnya. Kebanyakan bahasa pemrograman mendefiniskan ruang lingkup tertentu untuk setiap variabel
 
Sedangkan, masa hidup dari variabel adalah sifat dari variabel tersebut yang menjelaskan kapan diangkatnya variabel tersebut dari dalam memori saat berjalannya program. Dalam bahasa pemrograman yang tidak mempunyai fitur [[Pengumpulan sampah (ilmu komputer)|pengumpulan sampah]], variabel yang masa hidupnya melebihi ruang lingkupnya dapat menghasilkan [[kebocoran memori]]. Sebab memori yang dialokasikan tersebut tidak diangkat, sedangkan program sudah berada di luar ruang lingkup variabel yang mereferensikan memori tersebut. Alhasil, memori itu tidak akan bisa diangkat kecuali dengan berhentinya program.
 
Sehingga untuk mengoptimalkan kinerja memori, memori untuk suatu variabel harus diangkat saat variabel tersebut tidak lagi dibutuhkan, sebagaimana memori hanya boleh dialokasikan saat pertama kali variabel tersebut digunakan. Suatu variabel hanya dibutuhkan saat variabel tersebut berada dalam ruang lingkupnya. Oleh karena itu, kompilator biasanya akan memperingati ''programmer'' jika suatu variabel tidak diangkat dari memori di luar ruang lingkupnya.
 
Salah satu praktek yang baik dalam menggunakan variabel adalah dengan menyempitkan ruang lingkup variabel tersebut sebisa mungkin. Sehingga lebih kecil kemungkinan suatu bagian dari program berinteraksi dengan bagian yang lainnya diluar keinginan ''programmer'', khususnya dengan memodifikasi variabel yang bukan berasal dari bagiannya. Teknik yang biasa digunakan untuk melakukan ini adalah dengan menggunakan gaya penamaan variabel yang berbeda untuk setiap bagian dalam program, atau dengan membuat variabel tersebut privat untuk membatasi ruang lingkupnya.{{Authority control}}
 
[[Kategori:Konsep bahasa pemrograman]]