Bab ini akan memperkenalkan konsep fundamental OOP di C#. Fokus utama kita adalah memahami bagaimana merepresentasikan entitas dunia nyata ke dalam struktur kode yang terorganisir dan modular.
1. Konsep Class dan Object
Dalam OOP, kita memandang program sebagai kumpulan objek yang saling berinteraksi.
- Class: Adalah cetak biru (blueprint) atau template yang mendefinisikan karakteristik dan perilaku dari suatu entitas. Class tidak memakan ruang memori sebelum diinstansiasi.
- Object: Adalah perwujudan nyata (instance) dari sebuah Class. Objek memiliki identitas unik dan menyimpan data nyata di dalam memori.
Analogi: Class adalah gambar arsitektur rumah, sedangkan Object adalah rumah fisik yang dibangun berdasarkan gambar tersebut.
Untuk membuat sebuah objek hampir serupa dengan membuat variabel yaitu dengan syntax
2. Atribut (Fields) dan Method
Sebuah Class terdiri dari dua elemen utama:
- Atribut (Fields): Variabel yang dideklarasikan di dalam class untuk menyimpan data, keadaan (state) dari objek, atau informasi tentang objek. Atribut ini menentukan keadaan atau karakteristik dari objek tersebut. Dalam OOP, atribut sering disebut juga sebagai properti atau data member.
- Method (Behaviors):
- Fungsi yang dideklarasikan di dalam class untuk mendefinisikan tindakan atau perilaku yang dapat dilakukan oleh objek.
- Method merupakan sekumpulan perintah yang melekat pada objek
- Sebuah method perlu didefinisikan tipe data apa yang akan dikembalikan / di return nantinya. Apabila tidak ada yang dikembalikan dapat menggunakan keyword
void
Contoh Implementasi
3. Constructor (Konstruktor)
- Constructor adalah method spesial yang akan dijalankan pertama kali ketika objek dibuat.
- Sebuah constructor tidak akan mereturn apapun sehingga dalam membuatnya tidak perlu mendefiniskan tipe data return.
- Nama method constructor sama dengan nama class nya.
Contoh:
4. Namespace
Namespace adalah cara C# untuk mengelompokkan kelas-kelas yang berkaitan dalam satu lingkup penamaan.
Analogi Sederhana: Folder Komputer
Bayangkan Anda memiliki file bernama tugas.docx. Anda tidak bisa menyimpan dua file dengan nama yang sama persis di dalam satu folder. Namun, Anda bisa memiliki tugas.docx di folder Kuliah dan tugas.docx lainnya di folder Pribadi.
- Folder adalah Namespace.
- File adalah Class.
Tujuan Utama: Mencegah konflik penamaan (naming collision). Dengan namespace, dua tim developer bisa membuat kelas dengan nama yang sama tanpa menyebabkan error, asalkan diletakkan di namespace yang berbeda.
5. Keyword 'this'
Keyword this merujuk pada objek. Selain itu juga dapat untuk mengakses method pada objek dengan this.NamaMethod(). Tujuannya apa bang Messi keyword this ? Simple untuk mengurangi ambiguitas antara variable lokal (parameter) dengan variable dalam class (field)
6. Keyword 'static'
Atribut dan method dapat bersifat static, artinya atribut dan method melekat pada class bukan pada objek. Sehingga apabila hendak mengakses tidak perlu membuat objek terlebih dahulu. Caranya cukup menambahkan keyword static sebelum tipe data atribut / method.