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 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 :
MahasiswaLulus
mewarisiMahasiswa
, 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 MahasiswaTI
menimpa 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
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
atauinterface
.
Dengan memahami konsep OOP ini, kita bisa menulis kode C# yang lebih modular, reusable, dan mudah dikelola!
Be the first to comment