Value Type dan Reference Type pada bahasa pemrograman C#

Value Type dan Reference Type pada bahasa pemrograman C# | IDCSharp.com

Sebelumnya kita telah mempelajari mengenai “Apasih Class dan Object pada OOP ( Object Oriented Programming ) pada bahasa pemrograman C# ?” . Sekarang kita akan mempelajari mengenai penyimpanan suatu tipe data dalam bahasa pemrograman C#.

Dalam bahasa pemrograman C# dikenal 2 ( dua ) macam tipe penyimpanan suatu data yaitu:

  • Value
  • Reference

Value Type

Tipe data pada bahasa pemrograman dapat dikatakan sebagai Value Type apabila menyimpan data dalam alokasi memorinya sendiri. dan yang dapat dikategorikan sebagai Value Type adalah :

  • Semua tipe data numeric.
  • Char, Bool, date
  • Enumerasi.
  • Semua Struktur bahkan apabila anggota atau membernya berupa type referensi.

Reference Type

Sebuah tipe data referensi berisikan suatu pointer dimana pointer tersebut mengarahkan alokasi memori ke tempat yang lain untuk menyimpan data. Dalam OOP atau Object Oriented Programming, Reference Type digunakan untuk menyimpan suatu object dalam Class.

Memory yang digunakan type Reference biasa disebut dengan nama Heap. Sedangkan alamat memory dari heap tersebut disimpan ada stack.

jadi kesimpulan dari kenapa disebut dengan Tipe data Reference adalah karena berisi referensi-referensi ( alamat memory ) ke objek sebenarnya di heap.

Stack digunakan untuk alokasi memori statis, yang mencakup semua jenis tipe nilai ( value type ).

Heap digunakan untuk alokasi memori dinamis, yang mencakup objek khusus, yang mungkin memerlukan memori tambahan selama runtime program.

Contoh Kode

Pada kode program di atas, kita telah membuat Class dengan nama Mobil, yang mana mempunyai Class member yaitu :

  1. merk dengan tipe data string dan bersifat public.
  2. tahun dengan tipe data int dan bersifat public.
  3. harga dengan tipe data int dan bersifat public.
  4. warna dengan tipe data string dan bersifat public.
  5. method beli dengan tipe void dan bersifat public.

Selain Public, kamu juga dapat menentukan anggota dari Class ( Class Member ) menjadi Private atau Protected. Apabila kamu tidak menentukan hal tersebut maka Class member secara default bersifat Private.

Sekian materi hari ini, Semangat Belajar dan Salam Coders.