You are currently viewing Mengenal Tipe Class Di C#

Mengenal Tipe Class Di C#

Halo! Selamat datang kembali di “Seri Belajar Dasar Pemrograman Bahasa C#“. Sejauh ini kita sudah sering menemui class Program setiap kali membuat aplikasi console dengan C#. Pada saat mempelajari struktur minimal dari program C#, kita juga sudah menyinggung tentang fungsi dari tipe class. Pada materi kali ini, kita akan sedikit lebih jauh mengenali apa itu tipe class di C#.

Materi ini hanya bertujuan untuk mengenalkan Anda tentang konsep-konsep dasar dari tipe class. Karena cakupan konsep class dan objek cukup luas, saya menyediakan materi khusus tentang pemrograman berorientasi objek dengan bahasa C# dalam bentuk ebook yang bisa Anda dapatkan secara gratis untuk dipelajari kemudian.

Apa Itu Class Di C#?

Katakanlah kita diminta untuk membuat sebuah aplikasi buku tamu untuk menyimpan data-data dari pelanggan sebuah restoran.

Setiap satu orang pelanggan bisa kita representasikan dengan sebuah objek. Fungsi dari objek ini adalah untuk menyimpan data-data pelanggan seperti namanya, umurnya, jenis kelaminnya, alamatnya, dll.

Setiap pelanggan merupakan entitas yang unik, artinya satu pelanggan dengan pelanggan yang lain adalah objek yang berbeda. Namun demikian, satu objek dengan objek yang lainnya ternyata memiliki kesamaan, yaitu sama-sama memiliki nama, umur, jenis kelamin, alamat tempat tinggal, dll.

Oleh karena itu, kita bisa membuat sebuah cetak biru (blueprint) dari objek pelanggan tersebut. Cetak biru ini lah yang nantinya menjadi acuan untuk membuat sebuah objek.

Misalnya, kita bisa membuat sebuah cetak biru yang menyatakan bahwa, “Setiap objek yang dibuat dengan mengacu pada cetak biru tersebut akan memiliki karakteristik yang sama seperti siapa namanya, berapa umurnya, apa jenis kelaminnya, dan di mana dia tinggal”.

Dalam pemrograman berorientasi objek, cetak biru ini disebut dengan class.

Mendeklarasikan Tipe Class Di C#

Seperti yang sudah kita pelajari di materi tentang tipe data dan variabel, C# menyediakan beberapa tipe data bawaan seperti int, double, bool, dll. Selain tipe data bawaan yang telah disediakan, kita juga bisa membuat tipe data yang kita definsisikan sendiri, salah satunya dengan menggunakan tipe class.

Untuk menyimpan data-data pelanggan di aplikasi buku tamu yang kita bicarakan sebelumnya, kita perlu mendefinisikan sebuah struktur data sendiri yang kemudian bisa kita gunakan untuk menentukan tipe data dari sebuah variabel.

Mendeklarasikan sebuah class bukanlah sesuatu yang rumit. Sampai saat ini, kita sudah sangat sering melihat definisi sebuah class, yaitu.. surprise.. surprise.. class Program.

class Program
{
    static void Main(string[] args)
    {

    }
}

“Program” merupakan nama dari class yang dideklarasikan, sedangkan method Main() merupakan member atau bagian dari class tersebut.

Jadi, untuk membuat cetak biru untuk setiap pelanggan sebuah restoran, kita bisa mendeklarasikannya menggunakan tipe class sama seperti deklarasi class Program di atas.

class Customer
{
    
}

Tentu saja deklarasi class di atas tidak banyak berarti. Selain sekedar mendeklarasikan sebuah class, kita juga perlu mendefinisikan beberapa member untuk class tersebut.

Mendefinisikan Member Untuk Tipe Class Di C#

Minimal ada dua member yang biasanya menjadi bagian dari sebuah class, yaitu field dan method. (Member lain seperti property, constant, indexer, dan lain-lain akan kita pelajari di materi lain)

Fields

Karena setiap pelanggan memiliki karakteristik atau informasi seperti siapa namanya, berapa umurnya, apa jenis kelaminnya, di mana tinggalnya, dll, kita perlu menentukan bagaimana data-data tersebut nantinya bisa disimpan dalam sebuah objek.

Untuk menyimpan sebuah data, kita bisa menggunakan sebuah variabel dari tipe data tertentu. Untuk menyimpan data-data dari sebuah objek, kita juga bisa menggunakan variabel yang dideklarasikan pada lingkup class. Variabel pada lingkup class disebut dengan field.

Kita bisa menambahkan field ke dalam class Customer sebelumnya seperti di bawah ini.

class Customer
{
    public string name;
    public int age;
    public string gender;
    public string address;
}

Tidak ada kejutan di sini. Hampir sama seperti mendeklarasikan variabel sebelum-sebelumnya. Kita mendeklarasikan sebuah field sama seperti mendeklarasikan sebuah variabel pada umumnya.

Saya bilang “hampir” karena mungkin Anda akan bertanya, mengapa ada kata kunci public pada setiap deklarasi variabel?

Kata kunci ini disebut dengan pengubah akses (access modifier). Sederhananya, kata kunci public ini berfungsi untuk memberitahu compiler bahwa field yang dideklarasikan, bisa diakses dari dalam class yang lain (misal, class Program).

Catatan

Materi tentang pengubah akses bisa Anda pelajari dari ebook “Menguasai Pemrograman Berorientasi Objek Dengan Bahasa C#” yang bisa Anda unduh secara gratis.

Methods

Sebuah method digunakan untuk menentukan perilaku dari sebuah objek. Misalnya, pelanggan sebuah restoran bisa memesan makanan dan membayar. Untuk itu, kita bisa saja menambahkan method seperti Order() dan Pay() ke dalam class Customer.

class Customer
{
    // ...
    // Definisi field tidak ditampilkan
    
    public void Order()
    {

    }

    public void Pay()
    {

    }
}

Mekanisme Untuk Mengkonstruksi Sebuah Objek

Setiap class yang kita definisikan, pasti memiliki sebuah mekanisme untuk mengkonstruksi sebuah objek yang mengacu pada class tersebut.

Mekanisme ini disebut dengan constructor.

Kita bisa menyediakan constructor secara eksplisit pada sebuah class seperti di bawah ini.

class Customer
{
    // ...
    // Definisi field tidak ditampilkan

    public Customer()
    {
        
    }

    // ...
    // Member class yang lain tidak ditampilkan
}

Anatomi dari sebuah constructor hampir mirip dengan sebuah method. Hanya saja,

  • nama dari constructor harus sama dengan nama class-nya.
  • constructor tidak boleh memiliki nilai balik, bahkan void sekalipun.

Cosntructor kosong seperti di atas disebut dengan default constructor. Jika kita tidak menyediakan default constructor secara eksplisit seperti di atas, compiler nantinya akan menambahkannya secara otomatis pada saat mengkompilasi kode program kita.

Catatan

Materi tentang constructor bisa Anda pelajari lebih detail dari ebook “Menguasai Pemrograman Berorientasi Objek Dengan Bahasa C#” yang bisa Anda unduh secara gratis.

Membuat Variabel dari Tipe Class Dan Instansiasi Objek

Setelah kita mendeklarasikan sebuah class, kita bisa mendeklarasikan sebuah variabel dari tipe class tersebut dan menginisialisasinya dengan sebuah objek seperti di bawah ini.

class Customer
{
    // member class
}

class Program
{
    static void Main(string[] args)
    {
        Customer customer = new Customer();
    }
}

Variabel customer adalah variabel dari tipe Customer. Selanjutnya variabel ini bisa kita gunakan untuk menampung sebuah objek dari tipe Customer. variabel dari tipe class biasanya disebut dengan instance variable.

Untuk membuat/menginstansiasi objek dari tipe Customer, kita bisa menggunakan kata kunci new diikuti dengan memanggil constructor dari class Customer, yaitu Customer().

Karena variabel customer menyimpan sebuah objek dari tipe Customer, sekarang kita bisa menggunakan setiap informasi (field) dan perilaku (method) dari objek tersebut.

Sebelumnya, ubah definisi method Order() dan Pay() pada class Customer seperti di bawah ini.

public void Order()
{
    Console.WriteLine($"{name} memesan makanan...");    
}

public void Pay()
{
    Console.WriteLine($"{name} membayar...");
}

Setelah itu, perbarui kode program di dalam method Main() menjadi seperti ini.

Customer customer = new Customer();
customer.name = "Joko";
customer.age = 20;
customer.gender = "Laki-laki";
customer.address = "Di bawah langit";

Console.WriteLine($"Nama: {customer.name}, Umur: {customer.age}, Jenis Kelamin:{customer.gender}, Alamat: {customer.address}");

customer.Order();
customer.Pay();

Jalankan kode program di atas. Kita akan mendapatkan keluaran seperti di bawah ini.

Nama: Joko, Umur: 20, Jenis Kelamin:Laki-laki, Alamat: Di bawah langit
Joko memesan makanan...
Joko membayar...

Untuk membuat objek pelanggan yang lain, kita bisa membuat variabel baru dari tipe Customer.

Customer otherCustomer = new Customer();

Objek yang disimpan di dalam variabel customer dan otherCustomer jelas merupakan dua objek yang berbeda. Namun demikian, karena kedua objek tersebut adalah dari tipe class yang sama, maka kedua objek tersebut memiliki jenis informasi dan perilaku yang sama pula.

Meringkas Inisialisasi Field Pada Sebuah Objek

Untuk menginisialisasi field pada sebuah objek, tentunya kita bisa menggunakan cara seperti kode program di bawah ini.

customer.name = "Joko";
customer.age = 20;
customer.gender = "Laki-laki";
customer.address = "Di bawah langit";

Namun, kita bisa menggunakan cara yang lebih ringkas seperti yang ditunjukkan oleh kode program di bawah ini.

Customer customer = new Customer()
{
    name = "Joko", 
    age = 20,
    gender = "Laki-laki", 
    address = "Di bawah langit"
};  

Bisa kita lihat bahwa kali ini kita tidak perlu menggunakan instance variable customer untuk menetapkan sebuah nilai ke sebuah field.

Perhatikan bahwa kali ini daripada menggunakan tanda titik koma (;) setiap selesai menginisialisasi sebuah field, kita menggunakan tanda koma (,). Perhatikan juga bahwa setelah inisialisasi fied address (field terakhir yang diinisialisasi), kita tidak menggunakan baik tanda koma maupun titik koma. 

Penutup

Pada materi kali ini, kita telah mengenal apa itu tipe class di C#.

Sebuah class merupakan cetak biru (blueprint) untuk setiap objek yang dibuat dari tipe class tersebut.

Jika Anda merasa kesulitan dalam memahami materi ini, jangan menyerah! Tulis kesulitan atau pertanyaan Anda di kolom komentar, saya akan membantu.

Selamat belajar!

Tinggalkan Balasan