Tutorial C# 9 : Konsep Pemrograman Berorientasi Objek (OOP) dalam C#

A. Pengantar OOP

Pemrograman Berorientasi Objek (Object-Oriented Programming / OOP) adalah paradigma pemrograman yang berfokus pada objek. Dalam OOP, kode program dibangun berdasarkan objek yang merepresentasikan entitas di dunia nyata.

Konsep utama dalam OOP:

  • Encapsulation (Enkapsulasi)
  • Inheritance (Pewarisan)
  • Polymorphism (Polimorfisme)
  • Abstraction (Abstraksi)

 

B. Membuat Class dan Object di C#

Di C#, class adalah blueprint (cetak biru) untuk membuat objek.

Contoh Class dan Objek di C#

using System; 

class Mahasiswa { 
    // Properti public
    public string Nama; 
    public int NIM;

    // Method
    public void TampilkanInfo() 
    { 
        Console.WriteLine($"Nama : {Nama}, NIM : {NIM}"); 
    } 
} 
class Program 
{ 
    static void Main() 
    { 
        // Membuat objek dari class Mahasiswa
        Mahasiswa mhs = new Mahasiswa(); 
        mhs.Nama = "Budi Santoso"; 
        mhs.NIM = 123456;
        
        // Memanggil method
        mhs.TampilkanInfo();
    }
}

Ketika dijalankan hasilnya :

Penjelasan:

  • Class Mahasiswa memiliki dua properti (Nama, NIM) dan satu method (TampilkanInfo).
  • Objek mhs dibuat dari class Mahasiswa.
  • Data objek diisi dan kemudian dicetak menggunakan method.

 

C. Enkapsulasi (Encapsulation)

Enkapsulasi adalah konsep untuk menyembunyikan detail implementasi dan hanya memperlihatkan yang penting.

Di C#, enkapsulasi dicapai menggunakan access modifier:

  • public: Dapat diakses dari mana saja
  • private: Hanya bisa diakses di dalam class
  • protected: Bisa diakses oleh class turunan
  • internal: Bisa diakses dalam assembly yang sama

 

Contoh Enkapsulasi dengan Properti

using System;
class Mahasiswa { 
    private string nama; 
    private int nim; 
    
    // Getter dan Setter untuk mengakses data
    public string Nama 
    { 
        get { return nama; } set { nama = value; } 
    } 
    
    public int NIM 
    { 
        get { return nim; } set { nim = value; } 
    } 
} 

class Program 
{ 
    static void Main() 
    { 
        Mahasiswa mhs = new Mahasiswa(); 
        mhs.nama = "Agus"; 
        mhs.nim = 101010; 
        Console.WriteLine($"Nama: {mhs.nama}, NIM: {mhs.nim}"); 
    } 
}

Setelah dijalankan maka hasilnya seperti berikut :

Baca Juga  Tutorial Java #15 : Pengertian Class, Object, Property dan Method dalam Pemrograman Berorientasi Obyek


Data nama dan nim disembunyikan (private) dan hanya bisa diakses melalui getter & setter.

D. Pewarisan (Inheritance)

Inheritance memungkinkan sebuah class mewarisi atribut dan method dari class lain.

Contoh Inheritance di C#

using System;
class Mahasiswa 
{ 
    public string Nama; 
    public int NIM; 
    public void TampilkanInfo() 
    { 
        Console.WriteLine($"Nama: {Nama}, NIM: {NIM}"); 
    } 
} 

// Class MahasiswaLulus mewarisi Mahasiswa
class MahasiswaLulus : Mahasiswa 
{ 
    public string TahunLulus; 
    public void InfoKelulusan() 
    { 
        Console.WriteLine($"{Nama} lulus pada tahun {TahunLulus}"); 
    } 
} 

class Program 
{ 
    static void Main() 
    { 
        MahasiswaLulus mhs = new MahasiswaLulus(); 
        mhs.Nama = "Siti"; 
        mhs.NIM = 654321; 
        mhs.TahunLulus = "2023"; 
        mhs.TampilkanInfo(); 
        mhs.InfoKelulusan(); 
    } 
}

Hasilnya :

  • MahasiswaLulus mewarisi Mahasiswa, sehingga dapat menggunakan TampilkanInfo().
  • Method baru InfoKelulusan() ditambahkan di MahasiswaLulus.

 

 

E. Polimorfisme (Polymorphism)

Polimorfisme berarti satu method bisa memiliki bentuk berbeda. Ada dua jenis polimorfisme di C#:

  • Overriding (Menimpa method dari superclass)
  • Overloading (Membuat beberapa method dengan nama yang sama, tetapi parameter berbeda)

 

Contoh Overriding

using System;
class Mahasiswa 
{ 
    public virtual void Perkenalan() 
    { 
        Console.WriteLine("Saya adalah mahasiswa."); 
    } 
} 

// Class turunan
class MahasiswaTI : Mahasiswa 
{ 
    public override void Perkenalan() 
    { 
        Console.WriteLine("Saya mahasiswa Teknik Informatika."); 
    } 
} 

class Program 
{ 
    static void Main() 
    { 
        Mahasiswa mhs1 = new Mahasiswa(); 
        MahasiswaTI mhs2 = new MahasiswaTI(); 
        mhs1.Perkenalan(); 
        mhs2.Perkenalan(); 
    } 
}

Hasilnya :

Perkenalan() di MahasiswaTImenimpa method dari superclass Mahasiswa menggunakan override.

Contoh Overloading

using System;
class Kalkulator 
{ 
    // Overloading: method yang sama dengan parameter berbeda
    public int Tambah(int a, int b) 
    { 
        return a + b; 
    } 
    
    public double Tambah(double a, double b) 
    { 
        return a + b; 
    } 
} 

class Program 
{ 
    static void Main() 
    { 
        Kalkulator k = new Kalkulator(); 
        Console.WriteLine(k.Tambah(5, 3)); 
        Console.WriteLine(k.Tambah(2.5, 1.5)); 
    } 
}

Hasilnya :

Method Tambah memiliki dua versi, satu untuk int, satu untuk double.

 

 

F. Abstraksi (Abstraction)

Abstraksi menyembunyikan detail implementasi dan hanya menunjukkan fitur penting. Di C#, kita menggunakan abstract class atau interface untuk abstraksi.

Baca Juga  Tutorial Android Studio : #11 Membuat Rounded Corner di Android Studio

Contoh Abstraksi dengan Abstract Class

using System;

abstract class Kendaraan 
{ 
    public abstract void Bergerak();  // Method abstrak (harus diimplementasikan oleh subclass)
} 

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

class Program 
{ 
    static void Main() 
    { 
        Mobil avanza = new Mobil();
        avanza.Bergerak(); 
    }
}

 Hasilnya :

 

Abstract class Kendaraan hanya menyediakan kerangka, tanpa implementasi.
Class Mobil mengimplementasikan method Bergerak().

 

 

Kesimpulan

  • Enkapsulasi → Menyembunyikan data dengan private dan menggunakan getter/setter.
  • Pewarisan → Class dapat mewarisi atribut dan method dari class induknya.
  • Polimorfisme → Method bisa memiliki bentuk berbeda (overriding & overloading).
  • Abstraksi → Menyembunyikan detail dengan abstract class atau interface.

Dengan memahami konsep OOP ini, kita bisa menulis kode C# yang lebih modular, reusable, dan mudah dikelola!

Related Post

Be the first to comment

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy