Skip to content Skip to sidebar Skip to footer

Konsep Pemrograman Berorientasi Objek ( C - Sharp)

Ilmuit.id - Konsep Pemrograman Berorientasi Objek (OOP) telah menjadi fondasi utama dalam pengembangan perangkat lunak modern. OOP membantu dalam mengorganisir kode menjadi unit-unit terpisah yang saling berhubungan satu sama lain. Ada empat konsep utama dalam OOP: abstraksi, pembungkusan, pewarisan, dan polimorfisme.

Konsep Pemrograman Berorientasi Objek ( C - Sharp)

Abstraksi Dalam Bahasa C# 


Abstraksi adalah kemampuan untuk menyembunyikan detail yang tidak diperlukan dari pengguna dan hanya menampilkan informasi yang relevan. Dalam OOP, abstraksi membantu untuk memisahkan antara apa yang dilakukan oleh objek dan bagaimana objek tersebut melakukannya. Misalnya, saat kita menggunakan sebuah mobil, kita hanya perlu mengetahui bagaimana cara mengendarai mobil tersebut tanpa perlu tahu bagaimana mesin mobil bekerja.

Berikut adalah contoh sederhana abstraksi (abstraction) menggunakan bahasa C#:


using System;

// Abstract parent class

abstract class Shape {

public abstract double CalculateArea();

}

// Child class 1 (inherits from Shape)

class Rectangle : Shape {

public double width = 5;

public double height = 4;

public override double CalculateArea() {

return width * height;

}

}

// Child class 2 (inherits from Shape)

class Circle : Shape {

public double radius = 3;

public override double CalculateArea() {

return Math.PI * radius * radius;

}

}

class Program {

static void Main(string[] args) {

// Create an array of shapes

Shape[] shapes = new Shape[2];

shapes[0] = new Rectangle();

shapes[1] = new Circle();

// Call the CalculateArea() method on each shape

foreach (Shape shape in shapes) {

Console.WriteLine("Area of " + shape.GetType().Name + " is " + shape.CalculateArea());

}

}

}

Pada contoh di atas, terdapat sebuah kelas parent abstrak bernama Shape yang memiliki sebuah method abstrak CalculateArea(). Kemudian, terdapat dua kelas child bernama Rectangle dan Circle yang diwarisi dari kelas parent Shape dan meng-override method CalculateArea().

Method CalculateArea() dideklarasikan sebagai abstrak dalam kelas Shape. Ini berarti bahwa kelas child harus mengimplementasikan method ini, atau mereka sendiri harus menjadi kelas abstrak.

Dalam program utama, kita membuat sebuah array shapes yang berisi objek Rectangle dan Circle. Kemudian, kita memanggil method CalculateArea() pada setiap objek dalam array shapes menggunakan loop foreach.

Ketika method CalculateArea() dipanggil pada setiap objek, ia akan mengembalikan nilai area yang sesuai dengan bentuk dari objek tersebut. Ini menunjukkan contoh abstraksi karena method CalculateArea() hanya dideklarasikan di kelas parent Shape dan tidak diimplementasikan. Implementasi dari method ini ditinggalkan untuk kelas child.

Pembungkusan ( Encapsulation) Dalam Bahasa C# 

Pembungkusan adalah proses melindungi variabel dan fungsi di dalam sebuah objek, sehingga mereka tidak dapat diakses atau dimodifikasi dari luar objek tersebut. Dalam OOP, pembungkusan membantu dalam menjaga keamanan dan privasi data yang digunakan oleh objek. Sebagai contoh, dalam sebuah aplikasi perbankan, data pribadi seperti nomor rekening dan sandi pengguna harus dibungkus dengan aman.

Berikut adalah contoh sederhana pembungkusan (encapsulation) menggunakan bahasa C#:

using System;

// Car class with encapsulated fields

class Car {

private string brand;

private string model;

private int year;

// Getter and setter methods for brand

public string GetBrand() {

return brand;

}

public void SetBrand(string newBrand) {

brand = newBrand;

}

// Getter and setter methods for model

public string GetModel() {

return model;

}

public void SetModel(string newModel) {

model = newModel;

}

// Getter and setter methods for year

public int GetYear() {

return year;

}

public void SetYear(int newYear) {

year = newYear;

}

}

class Program {

static void Main(string[] args) {

// Create a Car object

Car myCar = new Car();

// Set the brand, model, and year using setter methods

myCar.SetBrand("Honda");

myCar.SetModel("Civic");

myCar.SetYear(2021);

// Get and print the brand, model, and year using getter methods

Console.WriteLine("Brand: " + myCar.GetBrand());

Console.WriteLine("Model: " + myCar.GetModel());

Console.WriteLine("Year: " + myCar.GetYear());

}

}

Pada contoh di atas, terdapat sebuah kelas Car yang memiliki tiga atribut (brand, model, dan year) yang di-encapsulate dengan keyword private. Untuk mengakses nilai dari atribut ini, kita menggunakan getter dan setter methods.

Getter method digunakan untuk mengembalikan nilai dari atribut yang di-encapsulate dan setter method digunakan untuk mengubah nilai dari atribut tersebut. Dalam contoh di atas, terdapat getter dan setter methods untuk setiap atribut.

Dalam program utama, kita membuat sebuah objek Car bernama myCar. Kemudian, kita menggunakan setter methods untuk mengatur nilai dari atribut brand, model, dan year. Selanjutnya, kita menggunakan getter methods untuk mendapatkan nilai dari atribut tersebut dan mencetaknya menggunakan Console.WriteLine().

Ini menunjukkan contoh dari pembungkusan, di mana atribut dalam kelas Car di-encapsulate dan hanya dapat diakses melalui getter dan setter methods. Hal ini membantu menjaga keamanan data dalam kelas dan mencegah perubahan data yang tidak diinginkan dari luar kelas.

Pewarisan(inheratance) Dalam Bahasa C# (c-sharp).

Pewarisan adalah proses ketika sebuah objek mewarisi sifat-sifat atau perilaku dari objek lain. Dalam OOP, pewarisan memungkinkan objek baru untuk memanfaatkan kode yang telah ada dan menghindari pengulangan kode. Contohnya, sebuah objek mobil mungkin mewarisi sifat dari objek kendaraan bermotor.

Berikut adalah contoh sederhana pewarisan menggunakan bahasa C#:

using System;




// Parent class

class Vehicle {

public string brand = "DefaultBrand";

public void honk() {

Console.WriteLine("Tuut, tuut!");

}

}

// Child class (inherits from Vehicle)

class Car : Vehicle {

public string modelName = "DefaultModel";

}

class Program {

static void Main(string[] args) {

// Create a Car object

Car myCar = new Car();

// Access fields from the parent class

Console.WriteLine(myCar.brand);

// Access fields from the child class

Console.WriteLine(myCar.modelName);


// Call method from the parent class

myCar.honk();

}

}


Pada contoh di atas, terdapat sebuah kelas parent bernama Vehicle yang memiliki sebuah atribut brand dan sebuah method honk(). Kemudian, terdapat sebuah kelas child bernama Car yang diwarisi dari kelas parent Vehicle, yang memiliki sebuah atribut tambahan modelName.

Dalam program utama, kita membuat sebuah objek Car bernama myCar. Kita dapat mengakses atribut brand dari kelas parent menggunakan objek myCar karena atribut brand diwarisi oleh kelas Car. Kita juga dapat mengakses atribut modelName yang merupakan atribut baru dari kelas Car.

Kita juga dapat memanggil method honk() dari kelas parent menggunakan objek myCar. Method ini dipanggil dari kelas parent karena method ini juga diwarisi oleh kelas Car.

Polimorfisme  Dalam Bahasa C# (c-sharp).

Polimorfisme adalah kemampuan untuk menggunakan satu fungsi untuk menghasilkan berbagai bentuk atau jenis output tergantung pada jenis objek yang diproses. Dalam OOP, polimorfisme membantu dalam mempermudah pemrosesan data yang berasal dari objek yang berbeda. Sebagai contoh, sebuah fungsi hitungLuas() bisa digunakan untuk menghitung luas berbagai objek geometri, seperti persegi, segitiga, atau lingkaran.

Berikut adalah contoh sederhana polimorfisme menggunakan bahasa C#:

using System;

// Parent class

class Shape {

public virtual double CalculateArea() {

return 0;

}

}

// Child class 1 (inherits from Shape)

class Rectangle : Shape {

public double width = 5;

public double height = 4;

public override double CalculateArea() {

return width * height;

}

}

// Child class 2 (inherits from Shape)

class Circle : Shape {

public double radius = 3;

public override double CalculateArea() {

return Math.PI * radius * radius;

}

}

class Program {

static void Main(string[] args) {

// Create an array of shapes

Shape[] shapes = new Shape[2];

shapes[0] = new Rectangle();

shapes[1] = new Circle();


// Call the CalculateArea() method on each shape

foreach (Shape shape in shapes) {

Console.WriteLine("Area of " + shape.GetType().Name + " is " + shape.CalculateArea());

}

}

}

Pada contoh di atas, terdapat sebuah kelas parent bernama Shape yang memiliki sebuah method CalculateArea(). Kemudian, terdapat dua kelas child bernama Rectangle dan Circle yang diwarisi dari kelas parent Shape dan meng-override method CalculateArea().

Dalam program utama, kita membuat sebuah array shapes yang berisi objek Rectangle dan Circle. Kemudian, kita memanggil method CalculateArea() pada setiap objek dalam array shapes menggunakan loop foreach.

Ketika method CalculateArea() dipanggil pada setiap objek, ia akan mengembalikan nilai area yang sesuai dengan bentuk dari objek tersebut. Ini menunjukkan contoh polimorfisme karena method CalculateArea() memiliki implementasi yang berbeda pada setiap kelas child, tetapi masih dapat dipanggil dengan cara yang sama dari kelas parent.

Dalam kesimpulannya, OOP adalah konsep pemrograman yang sangat penting dan membantu dalam mengembangkan perangkat lunak yang efektif dan efisien. Konsep abstraksi, pembungkusan, pewarisan, dan polimorfisme membantu dalam meningkatkan keamanan, keberlanjutan, dan kemudahan penggunaan kode. Penting untuk memahami dan menguasai konsep OOP untuk menjadi seorang pengembang perangkat lunak yang sukses.


 Berikut adalah referensi untuk kode-kode yang saya berikan sebelumnya:

Contoh pewarisan (inheritance) dengan bahasa C#: https://www.tutorialspoint.com/csharp/csharp_inheritance.htm
Contoh polimorfisme (polymorphism) dengan bahasa C#:
https://www.geeksforgeeks.org/c-sharp-polymorphism/
Contoh pembungkusan (encapsulation) dengan bahasa C#: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers
Contoh abstraksi (abstraction) dengan bahasa C#:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/abstract

Saya berharap referensi tersebut dapat membantu Anda mempelajari lebih lanjut tentang konsep-konsep dasar dalam pemrograman berorientasi objek dengan bahasa C#. Terima kasih.

Post a Comment for "Konsep Pemrograman Berorientasi Objek ( C - Sharp)"