Belajar C# Pemula | Part 9. Pemrograman Berorientasi Objek (OOP)

1. Pendahuluan

Pemrograman Berorientasi Objek (OOP) adalah paradigma pemrograman yang menggunakan konsep objek. C# adalah bahasa yang sangat mendukung OOP dengan fitur seperti encapsulation, inheritance, dan polymorphism.

2. Konsep Dasar OOP

a. Class dan Object

Class adalah blueprint untuk membuat objek. Objek adalah instance dari class.

public class Mobil {
    public string Merek;
    public string Model;
    public int Tahun;

    public void TampilkanInfo() {
        Console.WriteLine($"Mobil: {Merek} {Model}, Tahun: {Tahun}");
    }
}

class Program {
    static void Main() {
        Mobil mobil1 = new Mobil { Merek = "Toyota", Model = "Avanza", Tahun = 2022 };
        mobil1.TampilkanInfo();
    }
}

b. Encapsulation

Encapsulation adalah pembungkusan data dalam class dengan menggunakan access modifier seperti private dan public.

public class BankAccount {
    private double saldo;

    public void SetSaldo(double jumlah) {
        if (jumlah > 0) saldo = jumlah;
    }

    public double GetSaldo() {
        return saldo;
    }
}

class Program {
    static void Main() {
        BankAccount akun = new BankAccount();
        akun.SetSaldo(5000);
        Console.WriteLine("Saldo: " + akun.GetSaldo());
    }
}

c. Inheritance

Inheritance adalah pewarisan sifat dari class induk ke class anak.

public class Hewan {
    public string Nama;
    public void Bersuara() {
        Console.WriteLine("Hewan bersuara");
    }
}

public class Kucing : Hewan {
    public void Meong() {
        Console.WriteLine("Meow!");
    }
}

class Program {
    static void Main() {
        Kucing kucing = new Kucing { Nama = "Kitty" };
        kucing.Bersuara();
        kucing.Meong();
    }
}

d. Polymorphism

Polymorphism memungkinkan method memiliki bentuk yang berbeda tergantung pada objek yang memanggilnya.

public class Hewan {
    public virtual void Suara() {
        Console.WriteLine("Hewan mengeluarkan suara");
    }
}

public class Anjing : Hewan {
    public override void Suara() {
        Console.WriteLine("Guk! Guk!");
    }
}

class Program {
    static void Main() {
        Hewan hewan1 = new Hewan();
        Hewan hewan2 = new Anjing();

        hewan1.Suara();
        hewan2.Suara();
    }
}

e. Abstraction

Abstraction menyembunyikan detail implementasi dan hanya menampilkan fungsionalitas utama.

public abstract class Kendaraan {
    public abstract void Bergerak();
}

public class Motor : Kendaraan {
    public override void Bergerak() {
        Console.WriteLine("Motor berjalan di jalan raya");
    }
}

class Program {
    static void Main() {
        Kendaraan kendaraan = new Motor();
        kendaraan.Bergerak();
    }
}

3. Kesimpulan

Dengan memahami konsep OOP seperti encapsulation, inheritance, polymorphism, dan abstraction, Anda dapat menulis kode yang lebih terstruktur, mudah dipelihara, dan scalable dalam C#.