Bab II : Names, Bindings and Scopes

Variable dapat di karakteristikkan dengan kumpulan properties, atau attribute, dan yang paling penting adalah tipe dari konsep bahasa pemrograman nya. Names adalah sebuah string karakter yang digunakan untuk mengidentifikasi beberapa entity dalam sebuah program.

• Nama variable tidak boleh berupa angka ataupun diawali oleh karakter yang berupa angka.
contoh:
int 234 ; /*SALAH,karena nama variable berupa angka*/
int 3Dimensi ; /*SALAH, karena nama variable diawali oleh angka*/
int S1 ; /*BENAR, karena nama variable diawali oleh huruf*/

• Nama variable tidak boleh mengandung spasi
contoh:
float Bilangan Riil ; /*SALAH, karena mengandung spasi*/
float BilanganRiil ; /*BENAR*/
float _BilanganRiil; /*BENAR*/
float Bilangan_Riil; /*BENAR*/

• Nama variable tidak boleh menggunakan karakter-karakter yang merupakan simbol (@,?,#,!,dll), meskipun karakter tersebut terletak di tengah atau di belakang nama variable.
Contoh:
int #5 ; /*SALAH, karena mengandung tanda #*/
int 6@ ; /*SALAH, karena mengandung tanda @*/
int tu?juh; /*SALAH, karena mengandung tanda ?*/

• Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.

• Memberi nama variable sedeskriptif mungkin sehingga program akan mudah untuk dibaca dan dimengerti oleh orang lain.
Contoh:
Apabila kita akan mendeklarasikan variable untuk menyimpan nilai dan luas lingkaran, maka kita akan dapat memberinya nama luas, L, LuasLingkaran atau yang lainnya

Bahasa C merupakan bahasa yang bersifat case-sensitive (membedakan penulisan huruf kecil dan huruf huruf besar) sehingga nama variable pada saat dideklarasikan dan digunakan, penulisannya harus sama.
contoh:
Dalam bahasa C, variable a dan A akan dianggap sebagai dua buah varibel yang berbeda.
Special Words
Special words dalam bahasa pemrograman digunakan untuk membuat program lebih dapat dibaca dengan menamai aksi yang akan dilaksanakan. Digunakan juga untuk memisahkan antara statement dan program. Keyword adalah kata dalam sebuah bahasa pemrograman yang special dan berada pada context tertentu saja. Reserved word adalah special kata dari sebuah bahasa pemrograman yang tidak dapat digunakan sebagai nama. Dalam reserved word ada problema sebagai contoh:
Integer Real
Real Integer

Statement diatas mendeklarasikan program variable real itu adalah tipe integer dan variable integer itu adalah tipe real

Variable
Variable adalah abstraksi dari memory cell computer atau kumpulan cell.
Variable attribute terdiri dari :
• Name = nama dari sebuah variable, hamper setiap variable memiliki nama.
• Address = address dari sebuah variable dalam memory yang di asosiasikan.

Asosiasi ini tidak se-simple yang di perkirakan, bisa saja variable yang sama di asosiasikan dengan alamat yang berbeda dan pada waktu yang berbeda pada sebuah program. Aliases adalah ketika satu nama variable dapat mengakses lokasi memory yang sama. kelemahan aliasing adalah memperbolehkan variable untuk mengubah nilai berdasarkan tugas dari variable yang lain.
• Type = variable menentukan range nilai dari variable yang di simpan dan set
operasi yang mendefinisikan nilai dari type.

Contoh : tipe int pada java memiliki range -2147483648 sampai
2147483647.

• Value = variable content dari memory cell atau cell asosiasi dengan variable.

Binding
Binding adalah asosiasi antara attribute dan entity, seperti antara variable dengan tipe nya atau nilai, atau antara sebuah operasi dan symbol. Binding time adalah waktu yang dibutuhkan dalam melakukan binding.
Sebagai contoh :
count = count + 5;
tipe count binding dengan waktu compile.

Binding dapat ditentukan tipe nya.
1. Static binding yaitu terjadi sebelum program berjalan, dan tetap sama selama program eksekusi.
2. Dynamic binding yaitu binding terjadi ketika program sedang berjalan dan nilai dapat berubah selama program dieksekusi.
Storage binding and lifetime
Ada 2 tipe storage binding yaitu :
1. Allocation : mengambil cell dari kolam memori cell yang tersedia
2. Deallocation: selmemori yangtelah tidak terikat dari variabel dikembali ke
kolammemori yang tersedia.

Lifetime variable dimulai ketika cell spesifik terikat, dan berakhir ketika tidak terikat dari cell itu.

Terdapat 4 kategori type binding yaitu :
1. Static
Static = cell yang terikat pada memory cell sebelum eksekusi dimulai, dan tetap terikat pada memory cell yang sama sampai program eksekusi selesai.
(+) semua addressing pada static variable bersifat langsung.
(¬-) mengurangi fleksibilitas(tidak support untuk reculsive program)

2. Stack dynamic
Stack dynamic variable = storage binding dibuat ketika deklarasi statement dijelaskan, tapi tipe nya bersifat terikat.
(+)support dynamic storage(reculsive)
(-)waktu akses yang lambat karena addressing tidak langsung
3. Explicit heap dynamic
Explicit heap dynamic = abstrak memory cell yang di alokasi dan dealokasi dengan instruksi eksplicit run-time yang ditulis oleh programmer. Variable nya hanya bisa dialokasikan oleh pointer atau reference variable. Sebagai contoh :

int *intnode; // Create a pointer
intnode = new int; // Create the heap-dynamic variable
. . .
delete intnode; // Deallocate the heap-dynamic variable
// to which intnode points

Explicit heap dynamic variable pada tipe int dibuat oleh operator new. Variable ini bisa di referensikan melalui pointer , int node. Nantinya variable di deallocation dengan delete operator.
(+) storage manajemen yang dinamis.
(-) tidak efisien dan tidak handal.

4. Implicit heap dynamic
Implicit heap dynamic terikat dengan heap storage ketika ada nilai yang ditugaskan.
Sebagai contoh:

highs = [74, 84, 86, 90, 71];
variable bernama highs sudah di deklarasi di sebelumnya, dan sekarang digunakan pada array 5 data.
(+) memiliki fleksibilitas yang memperbolehkan high generic code untuk ditulis ulang.
(-) run-time overhead mempertahankan semua atribut dinamis, yang akan
mencakup jenis array subscript dan range.

Scope
Scope (atau ruang lingkup variabel) adalah jangkauan kode program dimana perintah program masih bisa mengakses sebuah variabel.

Scope terbagi jadi dua, global dan local.

Scope Global :
Scope global merupakan ruang lingkup dimana variabel dapat digunakan atau dipanggil oleh semua fungsi. Hal ini betujuan untuk menghemat penulisan, karena tidak perlu lagi berkali – kali menuliskan variabel yang sama pada beberapa fungsi/prosedur.

Scope Local
Scope local merupakan ruang lingkup dimana variabel digunakan hanya pada ruang lingkup tertentu (terbatas).

Untitled1


By:
– Faustina Sidik (2001537746)
– Alexandra Ursula (2001536913)
– Fidelia Queensy (2001536983)
– Natalia Evelyn (2001536996)
– Yvonne Priscilla (2001536415)

This entry was posted in Programming Language Program ( Konsep Bahasa Program). Bookmark the permalink.