1.
Class
adalah
rancangan / sketsa / blueprint dari sebuah objek. Sebelum kita mendapatkan
objek, kita harus membuat rancangan dari objek tersebut (class) terlebih
dahulu. Secara umum, class memiliki 2 macam anggota, yaitu attribute dan method.
Attribute merupakan hal-hal yang akan dimiliki oleh objek dari class
tersebut. Sedangkan method adalah
tindakan yang dapat dilakukan oleh objek dari class tersebut.
Contoh
programnya adalah :
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
sda11
{
class LuasPersegiPanjang
{
private
int
panjang;
int
lebar;
int
hasil;
public void input(int p, int l)
{
panjang = p;
lebar = l;
hasil = panjang * lebar;
}
public void hasilperkalian()
{
Console.WriteLine(hasil);
}
}
class Program
{
static void Main(string[]
args)
{
int
p;
int
l;
LuasPersegiPanjang
a = new LuasPersegiPanjang();
Console.Write("Masukkan Nilai Panjang = ");
p = Convert.ToInt32(Console.ReadLine());
Console.Write("Masukkan Nilai Lebar = ");
l = Convert.ToInt32(Console.ReadLine());
a.input(p, l);
Console.WriteLine();
Console.Write("Hasil Luas Persegi Panjang adalah ");
a.hasilperkalian();
Console.WriteLine();
Console.Write("Press any key to continue . . . ");
}
}
}
2.
Object
adalah
bentuk fisik dari blueprint yang dirancang oleh class yang telah dibuat. Object
tersebut juga disebut Instan Class. Membungkus data dan fungsi bersama
menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
3.
Cara
Membuat Object
contoh contoh objek dari Class kucing:
kucing_persia, kucingku, kucing_jantan, kucing1,kucing2 dst..
Cara membuat objek tsb diatas di dalam program kucing
kucing_persia = new kucing; kucing kucingku = new kucing;
4.
Konstruktor
adalah
method yang namanya sama dengan nama class-nya. Konstruktor digunakan untuk
inisialisasi variabel ketika membuat instan class/objek baru maka konstruktor
dijalankan. Jika anda tidak mendefinisikan konstruktor secara eksplisit maka
tetap dianggap membuat konstruktor kosong. Konstruktor juga dapat di-overload (dapat membuat konstruktor
lebih dari satu asal parameter jumlahnya beda atau tipe datanya beda. Contoh programnya:
class Program
{
public static void Main(string[] args)
{
Konstruk kon = new Konstruk();
kon.Show();
Console.WriteLine();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
class Konstruk
{
public int A,B;
public Konstruk() // <<--- Construktor
{
Console.WriteLine(" ==================================");
Console.WriteLine(" = Constructor =");
Console.WriteLine(" ==================================");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
//inisialisasi
A = B = 10;
}
~Konstruk() // <<--- Destruktor
{
Console.WriteLine("Finalizing");
}
public void Show()
{
Console.WriteLine("Nilai A = {0}",A);
Console.WriteLine("Nilai B = {0}",B);
Console.WriteLine();
Console.WriteLine("Hasil Perkalian = {0}",A*B);
}
}
5.
Public,
Private, Protected
|
PEMBEDA
|
PUBLIC
|
PRIVATE
|
PROTECTED
|
|
Umum
(Pengertian)
|
Anggota
pribadi dari kelas dasar hanya dapat diakses oleh anggota yang kelas dasar
|
Anggota
publik dari kelas dasar dapat diakses oleh anggota yang kelas dasar, anggota
kelas turunan, serta anggota yang berada diluar kelas dasar dan turunan
|
Anggota
dilindungi dari kelas dasar dapat diakses oleh anggota kelas dasar dan
anggota kelas turunan
|
|
Tanpa
penentu akses pada variabel
|
variabel dapat di akses pada semua
kelas yang menggunakan kelas yang berisi variabel tersebut
|
Hanya dapat diakses oleh metode
dalam kelas itu sendiri
|
Variabel instan dapat diakses pada
kelas sendiri dan subkelasnya
|
|
Tanpa
penentu akses pada method
|
Metode dapat diakses oleh sembarang
kelas
|
Hanya dapat diakses pada metode2
dalam kelas yang sama
|
Metode dapat diakses pada kelas
sendiri dan pada subkelasnya
|
|
Tanpa Penentu akses : Metode hanya dapat diakses oleh metode dalam kelas itu
sendiri ataupun metode pada kelas lain yang terletak pada package yang sama
|
|||
6.
Karakteristik
OOP dan Contohnya
a.
Abstraction
adalah
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.
b.
Encapsulation
adalah
memastikan pengguna sebuah objek
tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak
layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses
keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek
lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan
tergantung kepada representasi dalam objek tersebut.
c.
Polymorphise
adalah
langkah melalui pengiriman pesan. Tidak
bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim
pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan
tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima
pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor
singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari.
Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan
hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam
program dapat memegang berbagai jenis objek yang berbeda selagi program
berjalan, dan teks program yang sama dapat memanggil beberapa metode yang
berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan
dengan bahasa
fungsional yang
mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
contoh programnya:
1: public class Window
2: {
3: //deklarasi konstruktor dengan dua parameter
4: public Window(int top, int left)
5: {
6: this.top = top;
7: this.left = left;
8: }
9:
10: //method untuk draw window
11: public virtual void DrawWindow()
12: {
13: Console.WriteLine("Window: drawing Window at {0}, {1}",
14: top, left);
15: }
16:
17: //member variabel dideklarasikan protected
18: //berarti dapat diakses dari class turunannya
19: protected int top;
20: protected int left;
21:
22: } // end Window
23:
24: // class ListBox diturunkan dari class Window
25: public class ListBox : Window
26: {
27: //konstruktor yang menmanggil konstruktor dari base class nya
28: public ListBox(int top,int left,string contents): base(top, left)
29: {
30: listBoxContents = contents;
31: }
32:
33: //method yang di override dari base class-nya
34: //karena mempunyai implementasi yang berbeda
35: public override void DrawWindow()
36: {
37: base.DrawWindow(); // invoke the base method
38: Console.WriteLine("Writing string to the listbox: {0}",
39: listBoxContents);
40: }
41:
42: private string listBoxContents; // member variabel baru
43: } // end ListBox
44:
45: public class Button : Window
46: {
47: public Button(
48: int top,
49: int left)
50: : base(top, left)
51: { }
52:
53: // an overridden version (note keyword) because in the
54: // derived method we change the behavior
55: public override void DrawWindow()
56: {
57: Console.WriteLine("Drawing a button at {0}, {1}\n",
58: top, left);
59: }
60: } // end Button
61:
62: public class Tester
63: {
64: static void Main()
65: {
66: Window win = new Window(1, 2);
67: ListBox lb = new ListBox(3, 4, "Stand alone list box");
68: Button b = new Button(5, 6);
69: win.DrawWindow();
70: lb.DrawWindow();
71: b.DrawWindow();
72:
73: Window[] winArray = new Window[3];
74: winArray[0] = new Window(1, 2);
75: winArray[1] = new ListBox(3, 4, "List box in array");
76: winArray[2] = new Button(5, 6);
77:
78: for (int i = 0; i < 3; i++)
79: {
80: winArray[i].DrawWindow();
81: } // end for
82: } // end Main
83: } // end Tester
d.
Inheritance
adalah
mengatur polimorfisme dan enkapsulasi
dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari
objek yang sudah ada – objek-objek ini dapat membagi (dan memperluas) perilaku
mereka tanpa harus mengimplementasi ulang perilaku tersebut (bahasa
berbasis-objek
tidak selalu memiliki inheritas.)
contoh programnya:
1: public class Window
2: {
3: //objek konstruktor
4: public Window(int top, int left)
5: {
6: this.top = top;
7: this.left = left;
8: }
9:
10: // simulasi menggambar pada windows
11: public void DrawWindow()
12: {
13: Console.WriteLine("Drawing Window at {0}, {1}",
14: top, left);
15: }
16:
17: //variabel didefinisikan private sehingga
18: //tidak dapat digunakan pada kelas turunannya
19: private int top;
20: private int left;
21: }
22:
23: // ListBox diturunkan dari class Window
24: public class ListBox : Window
25: {
26: // menambahkan parameter pada konstruktor
27: public ListBox(int top, int left, string theContents) :
28: base(top, left) // call base constructor
29: {
30: mListBoxContents = theContents;
31: }
32:
33: // new version (new keyword) karena
34: // pada method di kelas turunan dirubah isinya
35: public new void DrawWindow()
36: {
37: base.DrawWindow(); // memanggil dari base class
38: Console.WriteLine("Writing string to the listbox: {0}",
39: mListBoxContents);
40: }
41: private string mListBoxContents; // member variabel baru
42: }
43:
44: public class Tester
45: {
46: public static void Main()
47: {
48: // membuat instan class baru
49: Window w = new Window(5, 10);
50: w.DrawWindow();
51:
52: // membuat instan dari class turunan
53: ListBox lb = new ListBox(20, 30, "Hello world");
54: lb.DrawWindow();
55: }
56: }
e.
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 dll. Object mesinpun merupakan gabungan dari berbagai object.
Kemampuan untuk menggunakan aggregation dalam OOP adalah satu feature
yang powerful yang memungkinkan model menjadi akurat.
7.
OverLoading
adalah dua atau lebih method di dalam satu
kelas yang sama, dengan nama yang sama, namun dengan deklarasi parameter yang
membedakan. syarat untuk membuat method Overloading yaitu :
a. jumlah tipe dalam parameter nya
harus berbeda.
b. tipe di parameter harus berbeda.
c. urutan tipe di dalam parameter harus
berbeda.
8.
Membuat program OOP untuk
menghitung nilai mata kuliah dan konversinya
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace konversiNilaiMahasiswa
{
class Nilai_Mahasiswa
{
//atribut
private double
ntugas;
private double
npartisipasi;
private double nuts;
private double nuas;
private string
nhuruf;
private double
nakhir;
public double _ntugas
{
get { return ntugas;
}
set { ntugas = value;
}
}
public double
_npartisipasi
{
get { return
npartisipasi; }
set { npartisipasi = value;
}
}
public double _nuts
{
get { return nuts; }
set { nuts = value; }
}
public double _nuas
{
get { return nuas; }
set { nuas = value; }
}
public double
HitungNilaiAkhir(double ntugas, double npartisipasi,double
nuts,double nuas)
{
return 0.3 * ntugas + 0.2 * npartisipasi + 0.3 * nuts
+ 0.2 * nuas;
}
public 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;
}
public void tampil()
{
Console.WriteLine("Menghitung
Nilai Mata Kuliah Mahasiswa");
Console.WriteLine("<===============================================>");
Console.Write("Nilai
Tugas = ");
ntugas = double.Parse(Console.ReadLine());
Console.Write("Nilai
Partisipasi = ");
npartisipasi = double.Parse(Console.ReadLine());
Console.Write("Nilai
UTS = " );
nuts = double.Parse(Console.ReadLine());
Console.Write("Nilai
UAS = ");
nuas = double.Parse(Console.ReadLine());
Console.WriteLine("-----------------------------------------------");
nakhir =HitungNilaiAkhir(ntugas,npartisipasi,nuts,nuas);
Console.WriteLine("Nilai
Akhir = " + nakhir);
Console.WriteLine("-----------------------------------------------");
nhuruf = konversiHuruf(nakhir);
Console.Write("nilai
huruf = " + nhuruf);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace konversiNilaiMahasiswa
{
class Program
{
static void Main(string[] args)
{
Nilai_Mahasiswa nl1 = new
Nilai_Mahasiswa();
nl1.tampil();
Console.ReadKey();
}
}
}sumber referensi
http://erickkurniawan.wordpress.com/2008/06/20/object-oriented-programming-in-c-part3/