C# – Name, Bindings & Scopes

Hello, Welcome 🙂

Ini kelompok kami 🙂  jangan lupa kunjungi blog mereka juga.

Kelompok 9

Martandy : martandy.blog.binusian.org

Kevin Yulias : kevinyou.blog.binusian.org

Eric Khantino Sunardi : ricz97.blog.binusian.org

Gabriellyan Catheline Sanger : gcathelines.blog.binusian.org

 

Topik kedua yaitu “Name, Bindings & Scopes


Pada topik pertama sudah dibahas apa itu variabel, jadi langsung saja ke Penamaan Variabel

Ada 2 :

  1. Menggunakan Camel Notation, yaitu huruf kecil (lowercase) pada huruf depan masing2 kata. 
  2. Menggunakan Pascal Notation, yaitu huruf besar (Uppercase) pada huruf depan masing2 kata

Nah, pada topik pertama juga sudah dibahas mengenai Identifier, sekarang kita akan membahas lebih lengkap lagi tentang Apa & Aturan Identifier

Identifier adalah suatu pengenal atau pengidentifikasi yang kita deklarasikan.

Identifier dapat berupa: nama variabel, konstanta fungsi, kelas, template maupun namespace.

Untuk membuat nama identifier:

  1. Case Sensitive
  2. Nama identifier bisa terdiri dari satu atau beberapa karakter yang terdiri dari angka  (0 – 9), huruf (A – Z, a – z), dollar ($), garis-bawah/underscore(_).
  3. Penamaan identifier harus dimulai dengan huruf, underscore(_), atau karakter dollar ($). Tidak boleh dimulai dengan angka. Simbol-simbol operator seperti (*), (+), (/), (-) tidak boleh digunakan.
  4. Tidak boleh menggunakan spasi.
  5. Tidak diperbolehkan menggunakan Kata-kata keyword dalam bahasa pemrograman (misalnya: public, class, static, dsb).
  6. Panjang nama identifier tidak dibatasi.

Selanjutnya, kita akan membahas apa itu Binding

Binding adalah menyambungkan satu variabel/method dengan source data/file lain, agar mudah di akses, dan tidak perlu ketik ulang method lagi dll.

E.g. : Menghubungkan suatu variabel dengan data dari database, XML, dsb

Nah, ada 2 jenis binding

Early Binding/Static Binding

adalah event yang terjadi pada compile time. Compiler tau method apa yang harus di panggil saat compile time. Kelebihan Early Binding adalah efisiensi, lebih cepat, karena fungsi telah dipanggil saat compile time.

E.g. Method call biasa, method overloading

Late Binding/Dynamic Binding

adalah event yang terjadi pada saat aplikasi dijalankan / runtime. Compiler tidak tahu method/fungsi apa yang harus di panggil sampai dengan aplikasi sudah di jalankan atau pada saat runtime. Late binding memungkinkan kamu untuk membuat aplikasi yang merespon terhadap event yang terjadi ketika aplikasi itu berjalan. Kelebihan Dynamic Binding adalah fleksiblitas.

E.g. Method overriding.


Selanjutnya, sebelum membahas scope, kita akan membahas Instance Variable, Local Variable & Parameter

  • Menggunakan instance variable untuk menyimpan data ke dalam suatu objek.
  • Menggunakan sebuah parameter untuk  mengirimkan data ke dalam sebuah metode.
  • Menggunakan local variable sebagai penyimpanan data kerja sementara dalam sebuah metode.

Yang Perlu Diingat

*Variabel Instance

  • Dideklarasi di luar sebuah method
  • Biasanya private
  • Bisa diakses oleh semua method dalam class

*Variabel Local

  • Dideklarasi di dalam sebuah method
  • Tidak ada modifier visibilitas
  • Hanya bisa diakses di dalam method itu saja.

Lifetime of Variable

Adalah seberapa lama variabel itu tetap ada.

  • Variabel lokal dan parameter formal(variabel yang terdapat pada suatu method) ada selama berjalannya sebuah metode
  • Setiap kali kita memanggil/menggunakan method, formal paramater dan variabel local akan tampil dengan value awalnya/fresh.
  • Variabel instance akan ada selama sebuah objek itu ada.
  • Tetap ada sampai objeknya dipanggil kembali/garbage-collected.

Jadi, langsung saja ke Scope

Scope adalah ruang lingkup, Scope dari suatu variabel menentukan bagian apa dalam program anda yang dapat mengakses variabel tersebut.

Contoh :

class Contact
{
  public int age;

  public void F()
  {
     age = 18;
  }

  public void G()
  {
     int age;
     age = 21;
  }
}

Sebagai contoh, di dalam class Contact mempunyai field yang bernama age, field tersebut dapat diakses oleh seluruh anggota dalam class Contact tersebut, pada method G, scope nya overlap/ketimpa, karena ada variabel baru yang dideklarasi dengan nama yang sama,  jadi ketika anda memanggil age dalam fungsi G, anda sebenarnya sedang memanggil variabel yang dideklarasi dalam method G tersebut.


Block Scope

  • Kita bisa melakukan looping pada scope (nest scopes).
  • Variabel yang dideklarasikan di dalam sebuah statement dengan kurawal akan memiliki block scope.

Contoh :

int sum = 0;

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

Console.WriteLine(“This is number” + sum);

}

Console.WriteLine(“The sum is ” + sum);

Note :

sum : bisa diakses sebelum, selama dan setelah loop

i : hanya bisa diakses selama masih loop


Sekian & Thanks

Tunggu update selanjutnya 🙂

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>