Pengenalan dan contoh Access Identifier Oleh: Muhammad Taufiqih
Salam jagocoding.Tutorial ini adalah tutorial lanjutan dari pengenalan class , pada tutorial kali ini kita kan membahas Access Identifier.Pada tutorial pengenalan class ,ada kata-kata Public diawal field ataupun method, itulah disebut access identifier,apa fungsi access identifier? A...
Salam jagocoding. Tutorial ini adalah tutorial lanjutan dari pengenalan class , pada tutorial kali ini kita kan membahas Access Identifier. Pada tutorial pengenalan class ,ada kata-kata Public diawal field ataupun method, itulah disebut access identifier,apa fungsi access identifier? Access Identifier berfungsi untuk menentukan siapa yang bisa mengakses suatu class, yang akan kita bahas di tutorial kali ini adalah access Identifier Public dan Private , Public : Menyatakan anggota class tersebut(field atau method) bisa diakses class lain. Private : Menyatakan anggota class tersebut(field atau method) hanya bisa diakses oleh dirinya sendiri . sebenarnya ada satu Access Identifier lagi, yaitu Protected , Access Identifier tersebut akan dijelaskan di kesempatan lain.
Baik langsung saja ke contoh , Karena tutorial ini bersifat lanjutan silahkan buka tutorial sebelumnya , Dasar pengenalan Class dan contohnya. Pada kucing.cs ubah public menjadi private
dan lihat di Program.cs
perhatikan kucingku.nama, ada garis bawah merah keriting yang menandakan itu error,dan kalu kita lihat keterangan error dibagian bawahnya, field nama di class kucing di lindungi (tidak untuk umum). Mungkin teman-teman bertanya,jadi bagaimana mengakses field atau method class tertentu kalau hanya bisa di gunakan classnya sendiri ? Tujuan dari Access identifier ini apa? Intinya jika public berarti anggota class tersebut bisa dibaca/ubah class lain, dan jika private anggota class tersebut hanya bisa dibaca/ubah oleh classnya sendiri. tapi bagaimana misalnya kalu kita ingin agar anggota suatu class method/field bisa dilihat class lain tapi tak bisa diubah?
saya kasih gambaran,Misalnya pada dunia nyata, anda bisa melihat warna kucing , tapi anda tidak bisa mengubah warnanya,nahhh begitu juga di access identifier, untuk itu diperlukanlah method Getter/Setter Method Getter : Adalah method yang digunakan untuk mengambil nilai dari Sebuah field yang bersifat private.
Method Setter : Adalah method yang digunakan untuk Mengubah nilai dari Sebuah field yang bersifat private.
Biar semuanya jelas,kita langsung praktek ya teman-teman. 1. Buka Kucing.cs ubah kode yang awalnya ●
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace class_sederhana { class kucing { public string nama; // field nama kucing public int umur; public string warna;
public void makan() { Console.WriteLine("{0} , sedang makan ikan", nama); } public void gantinama(string namabaru) { nama = namabaru; } } }
menjadi.
using using using using
System; System.Collections.Generic; System.Linq; System.Text;
namespace class_sederhana { class kucing { private string nama = "mewmew"; // field nama kucing private int umur =1 ; //field umur private string warna ="Putih"; //field warna public void GantiNama(string namaBaru) //method setter untuk field nama { nama = namaBaru; }
public string LihatNama() { //method getter untuk field nama return nama; } public string LihatWarna() { //method getter untuk field warna return warna; } public int LihatUmur() { return umur; } public void makan() { Console.WriteLine("{0} , sedang makan ikan", nama); }
} }
dan program.cs menjadi using using using using
System; System.Collections.Generic; System.Linq; System.Text;
namespace class_sederhana { class Program { static void Main(string[] args) { kucing kucingku; //pointer kucingku = new kucing(); kucingku.GantiNama("Neko");
Console.WriteLine("Nama Kucing saya adalah: {0} ", kucingku.LihatNama()); Console.WriteLine("Warna Kucing Saya: {0} ", kucingku.LihatWarna()); Console.WriteLine("Umur Kucing Saya: {0} tahun",kucingku.LihatUmur() );
kucingku.makan();
Console.ReadLine(); //agar jendela hasil compile teidak tertutup
}
} }
.jika di compile (F5), maka hasilnya
Penjelasan : perhatikan baris private string nama = "mewmew"; // field nama kucing private int umur =1 ; //field umur private string warna ="Putih"; //field warna disini field nama dengan isi "mewmew" kita jadikan private.begitu juga field umur dan warna. selanjutnya perhatikan baris ini public void GantiNama(string namaBaru) //method setter untuk field nama { nama = namaBaru; }
Pada baris kode tersebut,kita membuat fungsi baru dengan nama GantiNama dengan variabel namabaru,isinya nama = baru ; berarti nanti field nama akan diisi oleh nilai dari nama baru,dan ingat fungsi ini bersifat public . ini lah yang disebut method setter ,ini kan mengubah nilai field nama yang bersifat private.
berikutnya Perhatikan baris public string LihatNama() { //method getter untuk field nama return nama;
} public string LihatWarna() { //method getter untuk field warna return warna; } public int LihatUmur() { return umur; }
perhatikan fungsi LihatNama . fungsi tersebut hanya berisi return nama; artinya adalah fungsi ini hanya memberikan/mengembalikan nilai field private nama , ingat field nama sebelumnya telah kita modifikasi yang nantinya akan mengambil nilai dari nama baru , ini lah yang disebut method getter,ini berfungsi mengembalikan / memberikan nilai dari field yang bersifat private , perhatikan perbedaan penulisan method getter dan setter.
begitu juga baris public string LihatWarna() { //method getter untuk field warna return warna; } fungsi LihatWarna hanya berisi return warna;. berikutnya klik silahkan teman-teman ke bagian program.cs perhatikan baris kucingku = new kucing(); kucingku.GantiNama("Neko");
Console.WriteLine("Nama Kucing saya adalah: {0} ", kucingku.LihatNama()); Console.WriteLine("Warna Kucing Saya: {0} ", kucingku.LihatWarna()); Console.WriteLine("Umur Kucing Saya: {0} tahun",kucingku.LihatUmur() ); pada bagian
kucingku.GantiNama("Neko"); kita sedang memberi nilai pada fungsi Gantinama yang kita buat sebelumnya,ingat di fungsi ganti nama yang menggunakan pengubah namabaru , pengubah (variabel) ini lah yang kan mengisi / mengubah field nama yang bersifat private , kita tidak bisa lagi langsung menggunakan kucingku.nama karena field tersebut private,untuk mengaksesnya diperlukan class turunannya yang bersifat public.,disini kita hanya mengubah nilainya,untuk menampilkannya akan kita gunakan fungsi LihatNama. perhatikan baris kode Console.WriteLine("Nama Kucing saya adalah: {0} ", kucingku.LihatNama()); Console.WriteLine("Warna Kucing Saya: {0} ", kucingku.LihatWarna()); dan ingat fungsi Lihat nama public string LihatNama() { //method getter untuk field nama return nama; } disitu LihatNama mengembalikan / membertikan nilai field nama,dan field nama sekarang sudah diisi dengan nilai neko , dan begitu juga fungsi LihatWarna. fungsi inilah yang mengembalikan / memberikan nilai field warna yang tidak bisa langsung dibaca jarena bersifat private. jika di compile hasilnya adalah
field nama kini berubah menjadi neko, mudah bukan? Selamat mencoba, silahkan dikembangkan.
Tentang Penulis Muhammad Taufiqih just ordinary man.