Pengertian Scope

Tags

Scope

Scope dalam bahasa Indonesia diartikan menjadi Cakupan atau Ruang lingkup adalah kode sumber bersarang pada awal blok titik deklarasi dan berakhir di ujung blok. Sifat kode sumber itu akan hanya berlaku pada ruang lingkup tersebut tergantung atas penempatannya.

Untuk pemula, hal ini sangat penting dan tidak bisa diabaikan. agar saat pemanggilan identitas yang pernah anda deklarasikan, tidak menimbulkan pesan error pada compiler yang biasanya berbunyi mengenai pencarian identitas yang dimaksud. Dan di bawah ini adalah contoh program yang mencontohkan kesalahan pembuatan pernyataan yang berfungsi untuk memanggil suatu identitas. Untuk setiap kesalahan perintah (pernyataan) akan penulis tandai dengan komentar seperti “//Kesalahan”.

int main ()
 {
    int c = a; // Kesalahan: nama 'a' tidak dalam lingkup / tidak terdeteksi.
     int a = 1; // lingkup 'a' pertama dimulai.
     ++ a; // nama 'a' adalah dalam lingkup dan mengacu pada 'a' yang pertama.
     {
         int a = 2; // lingkup kedua 'a' dimulai.
         a = 42; // 'a' adalah dalam lingkup dan mengacu pada variabel 'a' yang kedua
     } // Blok ujung, ruang lingkup 'a' kedua
       // Ruang Lingkup 'a' pertama 'a' berlanjut
 } // Blok ujung, ruang lingkup 'a' pertama
 int b = a; // Kesalahan: nama 'a' tidak dalam ruang lingkup

hal yang perlu anda perhatikan adalah, Nama / identitas dari suatu deklarasi harus dibuat dahulu sebelum anda gunakan, Dan deklarasi yang didirikan di dalam ruang lingkup (lokal) hanya dapat digunakan pada ruang lingkup dimana deklarasi itu didirikan dan di dalam anak ruang lingkup atau biasa disebut sebagai nested scope (ruang lingkup yang mempunyai ruang lingkup di dalamnya, seperti contoh di atas).

Deklarasi juga dapat bersifat global dengan arti dapat digunakan di berbagai ruang lingkup jika deklarasi tersebut di luar ruang lingkup (tidak memiliki ruang lingkup), contoh : variabel yang didirikan di luar function, membuat semua function dapat mengakses variabel tersebut.

Peraturan dalam mendirikan sesuatu seperti variabel, function dan lain-lain tidak boleh memiliki identitas yang sama dalam satu ruang lingkup. dengan arti kita dapat mendirikan nama yang sama pada ruang lingkup yang berbeda, itu juga berlaku pada anak ruang lingkup, kita dapat mendirikan deklarasi dengan identitas yang sama meskipun identitas tersebut sudah digunakan di induk ruang lingkup yang merupakan lokal deklarasi dari luar ruang lingkup (induk ruang lingkup). Jika kita mendirikan deklarasi memiliki identitas yang sama dengan deklarasi luar ruang lingkup. Identitas dari deklarasi di dalam ruang lingkup akan menggantikan deklarasi luar ruang lingkup tersebut.

Ruang lingkup bisa kita buat dengan menggunakan sepasang tanda “{” dan “}”, semua pernyataan yang di dalam blok tersebut adalah satu ruang lingkup. Sepasang tanda tersebut juga biasa digunakan dalam deklarasi seperti function, class, struct dan lain-lain, biasanya digunakan sebagai definisi dari deklarasi tersebut, blok pada deklarasi tersebut juga memiliki arti yang sama yaitu satu ruang lingkup.

Contoh, Program yang salah :
#include <iostream>
using namespace std;

int main ()
 {
    int c = a; //salah
    int a = 1;
    ++ a;
    {
        int a = 2;
        a = 42;
        cout<<a<<endl;
    }
    cout<<a<<endl;
 }
 int b = a; //salah

Contoh, program yang benar :
#include <iostream>
using namespace std;

int main ()
 {
  //int c = a;
    int a = 1;
    ++ a;
    {
        int a = 2;
        a = 42;
        cout<<a<<endl;
    }
    cout<<a<<endl;
 }
 //int b = a;


EmoticonEmoticon