1.
Pengertian Class, Atribut, dan
Method pada C#
v
Class
Class merupakan penggambaran dari sebuah object atau benda,sifat objek,
dan juga apa yang bisa dilakukan oleh objek tersebut. Sebagai contoh adalah
pengambaran yang real dalam kehidupan kita adalah tentang dunia transportasi.
Tentunya kita semua mengetahui bahwa sangatlah banyak jenis alat
transportasi yang ada seperti motor, mobil,pesawat terbang,kapal laut, dan lain
sebagainya.Kemudian marilah kita anggap berbagai alat transportasi tersebut
sebagai suatu class. Maka motor tentunya mempunyai no polisi,tahun
pembuatan,merk dll, demikian juga dengan alat transportasi yang lainnya, oleh
karenanya hal ini bisa disebut sebagai properties. Selanjutnya motor itu sendiri
bisa berjalan maju, berjalan mundur,belok kiri, belok kanan yang mana kegiatan
ini disebut method.
Contoh:
public class ApaMotormu {
public static void main(String[] args){
Motor punyaku=new Motor();
punyaku.motorku();
}
}
v
Atribut
Adalah suatu pengenal yang
digunakan untuk menyimpan suatu nilai. Nilai dalam variabel dapat berubah2
selama proses pada program masih berlangsung. Sebelum variabel digunakan, harus
dideklarasikan terlebih dahulu, dengan format penulisan : ;
Contoh:
String kata;
Int angka;
v
Method
Method adalah merupakan suatu operasi berupa
fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method didefinisikan
pada class akan tetapi dipanggil melalui object.
Contoh : pada object mangga : terdapat method ambilRasa , kupasKulit
dll.
Metode menentukan perilaku objek, yakni apa yang
terjadi ketika objek itu dibuat serta berbagai operasi yang dapat dilakukan
objek sepanjang hidupnya.
2.
Object
Object adalah sebuah structure yang
menggabungkan data dan prosedur untuk bekerja bersama-sama. Object merupakan suatu bentuk dari class
Object dari class Hewan adalah Burung, Kambing, Ayam, Kuda..
Mereka adalah contoh dari class Hewan. Semua dari mereka adalah Hewan
yang mempunyai nama, kaki, Jenis makanan dst. Dan bisa berlari, bersuara,
berkembang biak dll.
Contoh:
public class
Peliharaanmu{
public static void
main(String[] args){
Hewan punyaku=new
Hewan();
punyaku.hewanku();
}
}
3.
Cara membuat object
Nama class nama variabel = new nama class ();
Contoh : membuat objek class Lingkaran
Lingkaran.l1 = new lingkaran ();
4.
Konstruktor
Kontruktor merupakan suatu method yang akan
memberikan nilai awal pada saat suatu objek dibuat. Pada saat program
dijalankan, konstructor akan langsung memberikan nilai awal pada saat perintah
new, membuat suatu objek. Pada saat kita bekerja dengan konstruktor, hal
mendasar yang perlu diperhatikan, yaitu:
1. Nama Constructor sama dengan nama
Class.
2. Tidak ada return type yang
diberikan kedalam Constructor Signature.
3. Tidak ada return stetement, didalam
tubuh constructor.
5. Private, Protected, Public karakteristik OOP dan contohnya
v Inheritance
Inherintence atau pewarisan adalah merupakan
konsep dimana suatu object memiliki sejumlah perilaku yang dimiliki oleh object
lain dalam suatu hirarki tertentu.Hal ini memungkinkan satu kelas (sub-class) harus
didasarkan atas yang lain (kelas
super) dan mewarisi semua fungsi secara otomatis. Kode
tambahan kemudian dapat ditambahkan untuk membuat versi yang lebih khusus dari
kelas. Dalam contoh kendaraan, sub-kelas untuk mobil atau motor dapat
dibuat. Masing-masing masih akan memiliki semua perilaku kendaraan tetapi
dapat menambahkan metode khusus dan properti.
Penggunaan
inheritance dapat dilihat pada program dibawah ini
1: public class Window {
2:
//variabel dideklarasikan private sehingga tidak bisa diakses oleh kelas
3:
//turunannya
4:
private int top;
5:
private int left;
6:
7:
//objek konstruktor
8:
public Window(int top, int left) {
9: this.top = top;
10: this.left = left;
11:
}
12:
13:
public void DrawWindow() {
14: Console.WriteLine("Draw
window pada ({0},{1})",
15: top, left);
16: }
17: }
18:
19:
public class ListBox : Window {
20:
//member variable baru pada class anak
21:
private string listBoxContent;
22:
public ListBox(int top, int left, string contents):base(top,left) {
23:
this.listBoxContent =
contents;
24:
}
25:
26:
//versi baru karena override dari base classnya
27:
public new void DrawWindow() {
28: base.DrawWindow();
29: Console.WriteLine("Menuliskan
string pada listbox: {0}",
30: listBoxContent);
31:
}
32:
}
33:
34:
class LatInheritance {
35:
public static void Main(string[] args) {
36: Window objWindow = new Window(10,
15);
37: objWindow.DrawWindow();
38:
39: ListBox objList = new ListBox(15,
20, "Hello ListBox");
40: objList.DrawWindow();
41:
}
42:
}
v Polymorphism
Polymorphism adalah konsep
dimana beberapa object dapat memiliki metode yang sama dengan aksi yang
berbeda. Hal ini mengakibatkan adanya kemampuan untuk sebuah objek untuk
mengubah perilakunya sesuai dengan bagaimana itu digunakan. Dimana kelas
obyek mewarisi dari kelas super atau mengimplementasikan satu atau lebih interface ,
dapat disebut dengan kelas atau interface nama-nama. Jadi jika kita
memiliki metode yang mengharapkan sebuah objek dari tipe 'kendaraan' untuk
diteruskan sebagai parameter, kita dapat melewati setiap kendaraan, mobil atau
motor objek untuk metode yang meskipun tipe data mungkin secara teknis berbeda.
Dalam Polymorphism suatu
object bisa bertindak lain terhadap message/method yang sama. Misalkan kita
punya satu class hewan dan diturunkan menjadi dua class hewan
berkaki dua dan hewan berkaki empat. Ketika hewan berkaki dua
melakukan method makan maka yang dilakukan adalah makan dengan
paruhnya, dan ketika hewan berkaki empat juga makan maka dia akan
menggunakan mulutnya. Keduanya melakukan aksi yang sama
yaitu makan akan tetapi perlakuannya lain.
Contoh :
class Binatang
{
public void info()
{
System.out.println(” Info tentang
Hewan : “);
}
}
class Herbivora extends Binatang
{
public void info()
{
System.out.println (“Info pada
herbivora: Memakan makanan berupa tumbuh – tumbuhan”);
}
}
class Kelinci extends Herbivora
{
public void info()
{
System.out.println(“Info pada
Kelinci: Memakan makanan berupa wortel”);
}
}
public class Polimorfisme
{
public static void main(String[]
args)
{
Herbivora herbivora;
Kelinci kelinciku;
Binatang hewan;
herbivora=new Herbivora();
kelinciku=new Kelinci();
hewan=herbivora;
hewan.info();
hewan=kelinciku;
hewan.info();
}
}
v Encapsulation
Encapsuation adalah penyatuan
antara proses-proses yang terjadi dan sejumlah data yang dikelola kedalam suatu
bentuk kelompok tertentu. Pengelompokan tersebut adalah dengan dibentuknya
suatu object secara abstrak (abstraction). Akibatnya, obyek dapat
bekerja sama dalam banyak hal dalam sistem. Dalam beberapa situasi, kelas
dan objek dapat erat bersama-sama untuk menyediakan fungsionalitas yang lebih
kompleks. Dalam contoh mobil, roda, panel, mesin, gearbox, dll
dapat dianggap sebagai kelas individu. Untuk membuat mobil sekelasnya, perlu menghubungkan semua
benda-benda bersama, mungkin dapat menambahkan
fungsionalitas lebih lanjut.
Encapsulation mengemas
suatu objek sehingga pada saat kita akan memakai objek tersebut kita tidak
perlu lagi tahu tentang detail bagaimana suatu action itu terjadi. Contoh dalam
hal ini, misal siswa (suatu object) sedang menulis (method).
Maka detail dari tentang cara siswa itu menulis (bagaimana otot tangan
itu bekerja untuk menulis, bagaimana sistem saraf pusat
memerintahkan untuk menulis) kita tidak perlu mengerti. Kita hanya
melihat si siswa sedang menulis.
Contoh :
class
Siswa
{
String
nama;
String
nim;
void
isiData ( String namaku,String nimku )
{
nama =
namaku;
nim =
nimku;
}
String
ambilNama()
{
return
nama;
}
String
ambilNim()
{
return
nim;
}
}
public
class Mahasiswa
{
public
static void main ( String [] args)
{
Siswa
mahasiswa_itn = new Siswa(); //membuat variable instant
mahasiswa_itn.isiData(“Dina
Damayanti”,”0412585″);
System.out.println(
“Nama : ” + mahasiswa_itn.ambilNama());
System.out.println(
“Nim : ” + mahasiswa_itn.ambilNim());
}
}
v
Abstraction
Kemampuan sebuah
program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan
untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari
“pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya,
dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan
bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga
dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah
pengabstrakan.
Contoh:
2: private int top;
3: private int left;
4:
5: protected int Top {
6: get { return this.top;}
7: set { this.top = value;}
8: }
9: protected int Left {
10: get {return this.left;}
11: set {this.left = value;}
12: }
13: public Control(int top, int left) {
14: Top = top;
15: Left = left;
16: }
17: //abstract method harus diimplementasikan
18: public abstract void DrawWindow();
19: }
20:
21: public class ListBox : Control {
22: private string listBoxContent;
23: public ListBox(int top, int left, string contents)
24: : base(top, left) {
25: this.listBoxContent = contents;
26: }
27:
28: public override void DrawWindow() {
29: Console.WriteLine(“Position {0},{1})”, Top, Left);
30: Console.WriteLine(“Menuliskan string pada listbox: {0}”,
31: listBoxContent);
32: }
33:
34: }
35:
36: public class Button : Control {
37: public Button(int top, int left) : base(top, left) { }
38: public override void DrawWindow() {
39: Console.WriteLine(“Menggambar button pada ({0},{1})”, Top, Left);
40: }
41: }
42: class LatAbstract {
43: static void Main(string[] args) {
44: Control[] winArray = new Control[3];
45: winArray[0] = new ListBox(5, 10, “Pada ListBox”);
46: winArray[1] = new Button(5, 6);
47: for (int i = 0; i < 2; i++) {
48: winArray.DrawWindow();
49: }
50: }
51: }
v
Aggregation
Aggregation adalah kondisi ketika object berisi
gabungan dari object-object yang berbeda dan bekerja bersama. Contoh mesin
pemotong rumput terdiri dari object roda, objects mesin, object pisau dan
lain-lain.Object mesinpun merupakan gabungan dari berbagai object. Kemampuan untuk
menggunakan aggregation dalam OOP adalah satu feature yang powerful yang
memungkinkan model menjadi akurat.
6. Overloading
Overloading adalah suatu cara membuat lebih
dari konstructor pada suatu class. Supaya pengaksesan konstructor tersebut
lancar, maka sebagai pembedanya adalah tipe parameter dan atau jumlah
parameternya.
Pada C# dapat
mendeklarasikan method atau konstruktor dengan nama yang sama pada sebuah
class, tetapi parameter method tersebut harus berbeda bisa jumlah atau tipe
datanya. Pada contoh dibawah ini akan ditunjukan bagaimana cara menggunakan
overloading konstruktor.
1: public class Time
2: {
3:
//
private member variables
4: private int Year;
5:
private int Month;
6: private int Date;
7:
private int Hour;
8: private int Minute;
9:
private int Second;
10:
11:
//
public accessor methods
12: public void DisplayCurrentTime()
13:
{
14: System.Console.WriteLine("{0}/{1}/{2}
{3}:{4}:{5}",
15:
Month, Date, Year, Hour, Minute, Second);
16: }
17:
//
constructors
18: public Time(System.DateTime dt)
19:
{
20: Year = dt.Year;
21:
Month = dt.Month;
22: Date = dt.Day;
23:
Hour = dt.Hour;
24: Minute = dt.Minute;
25:
Second = dt.Second;
26: }
27:
public Time(string strTime) // overloading
konstruktor
28: {
29:
Console.WriteLine(strTime);
30: }
31:
32: public Time(int Year, int Month, int Date,
33:
int Hour, int Minute, int Second) // overloading
konstruktor
34: {
35:
this.Year = Year;
36: this.Month = Month;
37:
this.Date = Date;
38: this.Hour = Hour;
39:
this.Minute = Minute;
40: this.Second = Second;
41:
}
42: }
43:
44: class Tester
45: {
46: public void Run()
47:
{
48: System.DateTime currentTime =
System.DateTime.Now;
49:
Time time1 = new Time(currentTime);
50: time1.DisplayCurrentTime();
51:
Time time2 = new Time(2000, 11, 18, 11, 03, 30);
52: time2.DisplayCurrentTime();
53:
}
54:
55:
static void Main()
56: {
57:
Tester t = new Tester();
58: t.Run();
59:
}
60: }
7. Membuat
Program OOP untuk menghitung nilai Mata Kuliah dan Konvesinya
class Program
{
static void Main(string[]
args)
{
double
ntugas, nuts, npart, nuas, nakhir;
Console.WriteLine("menghitung Nilai Mata Kuliah mahaiswa");
Console.WriteLine("--------------------------------------------");
Console.Write("nilai patisipasi
= ");
npart = double.Parse(Console.ReadLine());
Console.Write("nilai UTS
= ");
nuts = double.Parse(Console.ReadLine());
Console.Write("nilai Tugas
= ");
ntugas = double.Parse(Console.ReadLine());
Console.Write("nilai UAS
= ");
nuas = double.Parse(Console.ReadLine());
Console.WriteLine("------------------------------------");
nakhir = hitungNilaiAkhir(npart,
ntugas, nuts, nuas);
Console.Write("Nilai akhir
= " + nakhir);
Console.WriteLine();
Console.Write("Nilai Huruf
= " + konversiHuruf(nakhir));
Console.ReadKey();
}
public static double
hitungNilaiAkhir(double np, double nt, double
nuts, double nuas)
{
return
0.3 * np + 0.2 * nt + 0.3 * nuas + 0.2 * nuts;
}
public static string
konversiHuruf(double na)
{
string
nh = "";
if
(na > 85 && na <= 100)
{
nh = "A";
}
if
(na > 80 && na <= 85)
{
nh = "A-";
}
if
(na > 75 && na <= 80)
{
nh = "B+";
}
if
(na > 70 && na <= 75)
{
nh = "B";
}
if
(na > 65 && na <= 70)
{
nh = "B-";
}
if
(na > 60 && na <= 65)
{
nh = "C+";
}
if
(na > 55 && na <= 60)
{
nh = "C";
}
if
(na > 50 && na <= 55)
{
nh = "C-";
}
if
(na > 40 && na <= 50)
{
nh = "D";
}
if
(na <= 40)
{
nh = "E";
}
return
nh;
}
}
}
Outputnya:
file:///G:/sda/OBJECT%20ORIENTED%20PROGRAMMING%20%28%20OOP%20%29%20DI%20C%23%20_%20Wien_We%20Win.htm