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
Mahasiswamemiliki dua properti (Nama,NIM) dan satu method (TampilkanInfo). - Objek
mhsdibuat dari classMahasiswa. - 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 sajaprivate: Hanya bisa diakses di dalam classprotected: Bisa diakses oleh class turunaninternal: 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 :

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 :

MahasiswaLulusmewarisiMahasiswa, sehingga dapat menggunakanTampilkanInfo().- Method baru
InfoKelulusan()ditambahkan diMahasiswaLulus.
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.
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
privatedan 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 classatauinterface.
Dengan memahami konsep OOP ini, kita bisa menulis kode C# yang lebih modular, reusable, dan mudah dikelola!
Be the first to comment