Encapsulation di C#

Enkapsulasi sebenarnya merupakan sebuah metode untuk menyembunyikan elemen tertentu dari sebuah class sehingga tidak dapat dikses penuh atau full control oleh kelas lain, ini memungkinkan pengguna lain hanya sebatas dapat membacanya saja atau read saja. Sebelum memberikan contoh  mengenai Encapsulation ada baiknya kita mengenal yang namanya access indetifier karena dalam bahasa pemograman tidaklah lepas dari namanya access identifier yang memungkinkan atau tidaknya sebuah pengguna dapat mengakses properti yang akan digunakan.

Ada beberapa access identifier yang sering digunakan diantaranya adalah :
  1. Public
Public ini berarti  bahwa anggota class tersebut (attribut/method/property) dapat diakses oleh siapa saja atau class yang lain .
  1. Private
Private berarti  bahwa anggota class tersebut hanya boleh diakses oleh class itu sendiri
  1. Protected
Protected berarti bahwa anggota class tersebut hanya boleh diakses oleh dirinya sendiri dan Class – Class turunanya.
Tabel Hubungan antara Class ,Atribut dan Method

CLASS pesawat
ATRIBUT
·         =  private
+    = Public
+ Nama : String -ketinggian : String
-JumlahPenumpang : int
-JumlahRoda : int
METHOD +Pesawattakeoff() +pesawatketinggian()
+pesawatkapasitas()
+rodapesawat()
Untuk membungkus suatu objek pada C# kita dapat menggunakan metode getter dan seter , untuk lebih memahaminya mari langsung saja kita praktikan.
  • Silakan buka kembali projek yang anda buat dengan nama Class_Pada_OOP kemudian buka class cs dan rubah properti atributnya menjadi seperti dibawah ini.
public string nama;
private string ketinggian;
  • Pada kenyataanya variable ketinggian tidak dapat diakses dari luar kelas karena menggunakan atribut private, pemecahanya kita dapat membungkusnya menggunakan metode getter dan setter agar dapat diakses dari luar kelas perhatikan listing berikut.
public string Ketinggian
{
get { return ketinggian; }
set { ketinggian = value; }
}
  • Anda tidak perlu menulis code tersebut bersusah payah karena dengan visual studio bisa dilakukan dengan cepat dengan namanya property, perhatikan ilustrasi gambar dibawah.




Setelah di encapsulate , maka pada baris listing projek anda berikutnya akan menggenerate atau menghasilkan kode pogram berikut.

public string Ketinggian
{
get { return ketinggian; }
set { ketinggian = value; }
}

Listing pada kelas class_pesawat.cs secara keseluruhan sekarang akan seperti berikut :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Class_Pada_OOP
{
class class_pesawat
{
public string nama;
private string ketinggian;
public string Ketinggian
{
get { return ketinggian; }
set { ketinggian = value; }
}
public void terbang()
{
Console.WriteLine(“Pesawat dengan nama {0} , sedang take off”, this.nama);
}
public void sudahterbang()
{
Console.WriteLine(“Pesawat sekarang berada pada ketinggian {0}”, this.Ketinggian);
}
}
}

Modifikasi listing pada program.cs  menjadi seperti dibawah

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Class_Pada_OOP
{
class Program
{
static void Main(string[] args)
{
class_pesawat pesawat = new class_pesawat();
pesawat.nama = “GARUDAKU”;
pesawat.Ketinggian = “10000 KAKI”;
pesawat.terbang();
pesawat.sudahterbang();
Console.Read();
}
}
}

Tidak ada komentar:

Posting Komentar

Profile Page Screen - Flutter UI

Profile Page Berikut ini adalah contoh  source code untuk Design Profile Page menggunakan flutter,  sebelumnya jangan lupa untuk membua...