Constructor dan Destructor dalam Bahasa Pemrograman C#
Dalam pemrograman berorientasi objek (OOP) di C#, constructor dan destructor memainkan peran penting dalam mengelola siklus hidup sebuah objek.
- Constructor digunakan untuk menginisialisasi objek saat dibuat.
- Destructor digunakan untuk membersihkan sumber daya saat objek tidak lagi diperlukan.
Artikel ini akan membahas apa itu constructor dan destructor dalam C#, bagaimana cara menggunakannya, serta contoh implementasi dalam berbagai skenario pemrograman.
1. Apa Itu Constructor?
Constructor adalah method khusus dalam sebuah class yang dipanggil secara otomatis ketika sebuah object dibuat. Constructor memiliki nama yang sama dengan class dan tidak memiliki return type.
Fungsi Constructor:
- Menginisialisasi nilai properti dalam object.
- Menjalankan kode tertentu saat object dibuat.
- Menghindari nilai
null
pada atribut.
Sintaks Dasar Constructor dalam C#
class NamaClass {
public NamaClass() {
// Kode yang dieksekusi saat object dibuat
}
}
2. Jenis-Jenis Constructor dalam C#
2.1 Default Constructor
Jika tidak ada constructor yang didefinisikan, C# secara otomatis menyediakan constructor default.
class Mobil {
public string merek = "Tidak Diketahui";
public Mobil() {
Console.WriteLine("Object Mobil dibuat!");
}
}
class Program {
static void Main() {
Mobil mobil1 = new Mobil();
Console.WriteLine("Merek: " + mobil1.merek);
}
}
Output:
Object Mobil dibuat!
Merek: Tidak Diketahui
2.2 Constructor dengan Parameter
Constructor dapat menerima parameter untuk memberikan nilai awal saat object dibuat.
class Mobil {
public string merek;
public string model;
public Mobil(string merek, string model) {
this.merek = merek;
this.model = model;
}
}
class Program {
static void Main() {
Mobil mobil1 = new Mobil("Toyota", "Avanza");
Console.WriteLine("Mobil: " + mobil1.merek + " " + mobil1.model);
}
}
Output:
Mobil: Toyota Avanza
Penjelasan:
this.merek = merek;
→ Digunakan untuk membedakan parameter dari atribut class.- Constructor dijalankan saat object
Mobil
dibuat.
2.3 Constructor Overloading
Kita bisa mendefinisikan beberapa constructor dengan jumlah parameter berbeda (overloading).
class Mobil {
public string merek;
public int tahun;
public Mobil() {
merek = "Tidak Diketahui";
tahun = 0;
}
public Mobil(string merek, int tahun) {
this.merek = merek;
this.tahun = tahun;
}
}
class Program {
static void Main() {
Mobil mobil1 = new Mobil();
Mobil mobil2 = new Mobil("Honda", 2022);
Console.WriteLine("Mobil1: " + mobil1.merek + " Tahun: " + mobil1.tahun);
Console.WriteLine("Mobil2: " + mobil2.merek + " Tahun: " + mobil2.tahun);
}
}
Output:
Mobil1: Tidak Diketahui Tahun: 0
Mobil2: Honda Tahun: 2022
Penjelasan:
- Constructor tanpa parameter memberikan nilai default.
- Constructor dengan parameter menerima nilai dari pemanggilnya.
3. Apa Itu Destructor?
Destructor adalah method khusus yang dipanggil ketika object akan dihapus dari memori. Destructor digunakan untuk membersihkan sumber daya yang tidak lagi digunakan, seperti koneksi database atau file yang terbuka.
Fitur Destructor:
- Tidak memiliki parameter.
- Tidak dapat di-overload.
- Dipanggil secara otomatis oleh Garbage Collector.
- Ditulis dengan simbol
~
sebelum nama class.
Sintaks Dasar Destructor dalam C#
class NamaClass {
~NamaClass() {
// Kode yang dijalankan saat object dihapus
}
}
4. Contoh Penggunaan Destructor dalam C#
using System;
class FileHandler {
public FileHandler() {
Console.WriteLine("File dibuka.");
}
~FileHandler() {
Console.WriteLine("File ditutup.");
}
}
class Program {
static void Main() {
FileHandler file = new FileHandler();
}
}
Output:
File dibuka.
File ditutup.
Penjelasan:
- Constructor
FileHandler()
dijalankan saat object dibuat. - Destructor
~FileHandler()
dijalankan saat object dihancurkan oleh Garbage Collector.
5. Perbedaan Constructor dan Destructor
Perbedaan | Constructor | Destructor |
---|---|---|
Tujuan | Menginisialisasi object | Membersihkan object sebelum dihapus |
Parameter | Bisa memiliki parameter | Tidak memiliki parameter |
Overloading | Bisa di-overload | Tidak bisa di-overload |
Pemanggilan | Dipanggil saat object dibuat | Dipanggil saat object dihapus |
6. Kapan Menggunakan Constructor dan Destructor?
✅ Gunakan constructor jika:
- Perlu memberikan nilai default saat object dibuat.
- Perlu menjalankan kode khusus saat inisialisasi.
- Perlu menghindari nilai null di atribut class.
✅ Gunakan destructor jika:
- Perlu menutup koneksi database atau file.
- Perlu membersihkan sumber daya seperti alokasi memori.
7. Kesimpulan
- Constructor digunakan untuk menginisialisasi object saat dibuat.
- Destructor digunakan untuk membersihkan sumber daya sebelum object dihapus.
- Constructor bisa memiliki parameter dan bisa di-overload, sedangkan destructor tidak.
- Memahami konsep constructor dan destructor sangat penting dalam manajemen memori dan pengelolaan sumber daya dalam C#.
Dengan memahami Constructor dan Destructor dalam C#, Anda bisa mengembangkan program yang lebih efisien dan terstruktur!