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...

Pengenalan dan contoh Access Identifier

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 System;
using System.Collections.Generic;
using System.Linq;
using 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 System;
using System.Collections.Generic;
using System.Linq;
using 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.


About Author

Muhammad Taufiqih

just ordinary man.


Comment & Discussions