Nested Class dalam Bahasa Pemrograman C#
Pernah nggak kepikiran kalau ada class yang sebenarnya cuma dipakai sama satu class lain doang? Nah, biar nggak bikin kode jadi berantakan, kita bisa pakai nested class! Nested class ini kayak "class dalam class" yang digunakan untuk mengelompokkan sesuatu yang benar-benar berhubungan erat.
Jadi, kalau kamu lagi bikin sistem kendaraan, misalnya, pasti ada mesin di dalam mobil. Nah, mesin itu nggak perlu jadi class terpisah karena dia cuma dipakai dalam mobil, kan? Di situlah kita bisa pakai nested class.
Yuk, kita bahas apa itu nested class dalam C#, kapan harus menggunakannya, dan gimana cara implementasinya dengan gaya santai biar gampang dipahami!
1. Apa Itu Nested Class dalam C#?
Nested class adalah class yang dideklarasikan di dalam class lain. Jadi, class dalam ini nggak bisa diakses dari luar tanpa lewat class induknya (outer class). Ini sangat berguna untuk kode yang lebih rapi dan modular.
Ciri-Ciri Nested Class
✅ Mengelompokkan class yang saling berhubungan.
✅ Bisa mengakses anggota private dari class induk.
✅ Lebih aman karena tidak bisa langsung diakses dari luar.
✅ Bisa bersifat private
, protected
, public
, atau static
.
Analoginya gampang! Bayangkan nested class itu kayak ruangan dalam rumah. Rumah adalah class utama, sementara ruang tamu, dapur, dan kamar adalah nested class. Kamu nggak bisa masuk kamar kalau nggak lewat rumah dulu, kan?
Sintaks Nested Class
class Rumah {
class Kamar {
// Implementasi class dalam
}
}
2. Contoh Penggunaan Nested Class dalam C#
2.1 Contoh Dasar Nested Class
using System;
class Mobil {
public class Mesin {
public void Start() {
Console.WriteLine("Mesin dinyalakan.");
}
}
}
class Program {
static void Main() {
Mobil.Mesin mesin1 = new Mobil.Mesin();
mesin1.Start();
}
}
Output:
Mesin dinyalakan.
Penjelasan:
Mobil
adalah outer class.Mesin
adalah nested class dalamMobil
.Mobil.Mesin
digunakan untuk mengakses nested class dari luar.
3. Nested Class dengan Akses Private
Kalau kita pengen nested class ini cuma bisa diakses oleh class induknya, kita bisa pakai modifier private
.
class Mobil {
private class Mesin {
public void Start() {
Console.WriteLine("Mesin mobil dinyalakan.");
}
}
public void HidupkanMobil() {
Mesin mesin = new Mesin();
mesin.Start();
}
}
class Program {
static void Main() {
Mobil mobil1 = new Mobil();
mobil1.HidupkanMobil();
}
}
Output:
Mesin mobil dinyalakan.
Kenapa pakai private
?
Mesin
ini cuma dipakai di dalamMobil
.- Kalau class lain coba akses langsung
Mesin
, pasti bakal error.
4. Static Nested Class
Ada juga static nested class, yang bisa langsung dipanggil tanpa harus bikin instance dari class induknya.
class Perusahaan {
public static string Nama = "Tech Corp";
public static class HR {
public static void Info() {
Console.WriteLine("Departemen HR di " + Nama);
}
}
}
class Program {
static void Main() {
Perusahaan.HR.Info();
}
}
Output:
Departemen HR di Tech Corp
Kalau nggak pakai static, kita harus buat object dulu sebelum mengaksesnya. Jadi ini lebih efisien kalau kita cuma butuh akses langsung.
5. Kapan Harus Pakai Nested Class?
✅ Gunakan nested class jika:
- Class tersebut hanya digunakan oleh satu class lain (misalnya
Mesin
cuma ada di dalamMobil
). - Ingin membatasi akses class agar lebih aman.
- Ingin membuat kode lebih terstruktur dan mudah dipahami.
❌ Jangan pakai nested class jika:
- Class punya fungsi yang lebih luas dan bisa digunakan oleh banyak class lain.
- Menggunakan nested class malah bikin kode jadi lebih sulit dibaca.
6. Kesimpulan
- Nested class adalah class yang dideklarasikan di dalam class lain untuk membuat kode lebih rapi dan modular.
- Bisa bersifat
private
,public
, ataustatic
, tergantung kebutuhan. - Bagus untuk class yang memang hanya digunakan oleh satu class utama.
- Gunakan nested class dengan bijak supaya kode tetap mudah dipahami dan dirawat.
Jadi, kalau ada bagian dari kode yang cuma relevan buat satu class tertentu, nested class bisa jadi pilihan terbaik!