Constructors (Konstruktor) dalam C#

0
241

Apa itu Constructor?

Constructor adalah sebuah method khusus di dalam sebuah kelas yang otomatis dijalankan saat objek dibuat.
Fungsi utamanya adalah menginisialisasi data / nilai awal pada objek.

Ciri-ciri constructor di C#:

  • Nama constructor sama dengan nama kelas
  • Tidak punya return type (bukan void, bukan juga tipe apapun)
  • Dipanggil otomatis ketika objek dibuat dengan new

Kenapa Constructor Penting?

Bayangkan kamu membuat objek Mobil.
Saat mobil dibuat, kita ingin misalnya warna, tahun, atau merk langsung terpasang — itu tugas constructor.

Jenis-Jenis Constructor

1) Default Constructor

Constructor yang tidak punya parameter.
Jika kamu tidak buat constructor, kompiler C# akan otomatis membuatkan default constructor.

Contoh:

using System;

class Car

{
    public string color;
    public int year;

    // Default constructor
    public Car()
    {
        color = "White";   // memberi nilai awal
        year = 2000;
        Console.WriteLine("Car dibuat!");
    }

    public static void Main()
    {
        Car myCar = new Car();
        Console.WriteLine(myCar.color + " - " + myCar.year);
    }
}

Output:

Car dibuat!

White – 2000

2) Parameterized Constructor

Constructor yang menerima parameter untuk memberi nilai spesifik pada objek.

Contoh:

using System;

class Person
{
    public string name;
    public int age;

    // Constructor dengan parameter
    public Person(string name, int age)
    {
        this.name = name;
        this.age = age;
    }

    public static void Main()
    {
        Person p = new Person("Ani", 21);
        Console.WriteLine(p.name + " berumur " + p.age);
    }
}

Output:

Ani berumur 21

3) Copy Constructor

Digunakan menggandakan objek dengan nilai yang sama dari objek lain.
C# tidak punya copy constructor otomatis — kita buat sendiri.

Contoh:

using System;

class Book
{
    public string title;
    public int pages;

    public Book(string t, int p)
    {
        title = t;
        pages = p;
    }

    // Copy Constructor
    public Book(Book b)
    {
        title = b.title;
        pages = b.pages;
    }

    public static void Main()
    {
        Book b1 = new Book("Intro C#", 150);
        Book b2 = new Book(b1);  // kopi dari b1
        Console.WriteLine(b2.title + " – " + b2.pages + " halaman");
    }
}

4) Static Constructor

  • Dipanggil sekali saja ketika kelas pertama kali diakses.
  • Berguna untuk menginisialisasi static fields.
  • Tidak punya parameter.

Contoh:

using System;

class Counter
{
    public static int count;

    // Static constructor
    static Counter()
    {
        count = 100;
        Console.WriteLine("Static Constructor dipanggil");
    }

    public static void Main()
    {
        Console.WriteLine("Count = " + Counter.count);
    }
}

5) Private Constructor

Constructor dengan akses private, men-blokir pembuatan objek dari luar kelas → sering digunakan bersama pola Singleton.

Contoh sederhananya:

class Example
{
    private Example()
    {
        Console.WriteLine("Private constructor!");
    }
}

Jika kamu coba new Example(), akan error karena constructor tidak bisa dipanggil dari luar.

Ringkasan Sifat Constructor

Sifat Artinya
Tidak punya return type Tidak seperti method biasa
Sama nama dengan kelas Tidak boleh beda
Bisa di-overload Satu kelas bisa punya lebih dari satu constructor
Static hanya satu Cuma satu static constructor per kelas

Tips Belajar untuk Pemula

  • Selalu pahami perbedaan antara constructor dan method biasa:
    • Constructor otomatis dipanggil saat objek dibuat
    • Method harus dipanggil secara eksplisit
  • Gunakan parameterized constructor jika butuh objek dengan nilai berbeda-beda.
  • Gunakan this untuk mengacu ke field kelas dalam constructor.

LEAVE A REPLY

Please enter your comment!
Please enter your name here