1.
Class, atribut, method
- Class - kumpulan dari karakteristik abstrak suatu object, termasuk atribut / property dan kelakuan (method / fungsi) object tersebut. Karakteristik sebuah class seharusnya masuk akal pada konteksnya. Selain itu kode pada sebuah class sebaiknya bersifat mandiri. Properties dan methods yang dideklarasikan pada sebuah class disebut members.
Contoh
:
using System.Text;
namespace jumlahnilai
{
class Penjumlahan
{
private
int
nilai1;
int
nilai2;
int
hasil;
public void input(int x, int y)
{
nilai1 = x;
nilai2 = y;
hasil = nilai1 + nilai2;
}
public void hasilpenjumlhan()
{
Console.WriteLine(hasil);
}
}
class Program
{
static void Main(string[]
args)
{
int
x;
int
y;
Penjumlahan
a = new Penjumlahan();
Console.Write("Masukkan Nilai 1 = ");
x = Convert.ToInt32(Console.ReadLine());
Console.Write("Masukkan Nilai 2 = ");
y = Convert.ToInt32(Console.ReadLine());
a.input(x, y);
Console.WriteLine();
Console.Write("Hasil Penjumlahan adalah ");
a.hasilpenjumlhan();
Console.WriteLine();
Console.ReadKey();
}
}
}
·
Attribute
: nilai data yang terdapat pada suatu object yang berasal dari class. Attribute
merepresentasikan karakteristik dari suatu object. contoh : object ‘sepeda’ terdapat
attribute : pedal,stang,rem,ban
,roda,jok,rante.
·
Method atau function atau fungsi merupakan
representasi dari perilaku object. Istilah method lebih umum dikenal pada
bahasa pemrograman Java, sedangkan pada c# lebih dikenal dengan istilah fungsi.
Baik Method maupun Fungsi mempunyai maksud yang sama. Jika mengambil contoh
object di dunia nyata, misalnya studi kasus pada motor. Motor mempunyai
beberapa fungsi yang dapat dijalankan seperti berjalan, mengerem, dan berbunyi
(klakson). Perilaku ini dapat direpresentasikan dalam fungsi misalnya run(),
brake(), dan horn().
Pada
umumnya setiap fungsi mempunyai jenis kembalian atau return type dari
hasil eksekusi fungsinya. Sebagai contoh diambil fungsi run() akan menghasilkan
motor dalam kondisi berjalan, fungsi break() menghasilkan motor akan berhenti
dan fungsi horn() menghasilkan bunyi klakson. Selain itu, sifat fungsi ada yang
dapat diakses atau dipicu dari luar atau hanya bisa dipicu oleh object itu
sendiri.
Contoh
:
using System.Text;
namespace tugas2
{
class Program
{
class pembagian
{
private
double a;
public
double b;
public
void nilai1()
{
Console.Write("Masukan Nilai 1 : ");
a = Convert.ToInt32(Console.ReadLine());
Console.Write("Masukan Nilai 2 : ");
b = Convert.ToInt32(Console.ReadLine());
}
private
void tes()
{
Console.WriteLine("di coba");
}
public
void hasil1(int
c)
{
Console.Write("Hasilnya = {0} ", a / b);
}
static
void Main(string[]
args)
{
pembagian n
= new pembagian();
n.nilai1();
n.hasil1(0);
Console.ReadKey();
}
}
}
}
2.
Object
Object adalah sebuah
structure yang menggabungkan data dannprosedur untuk bekerja bersama-sama. Objek
merupakan dasar dari modularitas
dan struktur dalam sebuah program komputer berorientasi objek.
Dalam
term OOP, object adalah
sebuah structure yang menggabungkan data dan prosedur untuk bekerja
bersama-sama.
3.
Cara membuat object
Untuk membuat object, kita menggunakan perintah new dengan
sebuah nama class yang akan dibuat sebagai instance dari class tersebut. Contoh
: class Date { Date hari = new Date(); } hari adalah object reference dari
class Date yang akan digunakan untuk mengakses class Date. Sedangkan operator
new adalah operator yang akan menghasilkan hari sebagai reference ke instance
dari class Date()
4.
Konstruktor
Konstruktor
adalah method yang namanya sama dengan nama class-nya. Konstruktor digunakan
untuk inisialisasi variabel ketika membuat instan class / objek baru.
Sebenarnya setiap kali anda membuat instant class / objek baru maka konstruktor
dijalankan. Jika anda tidak mendefinisikan konstruktor secara eksplisit maka
tetap dianggap membuat konstruktor kosong.
Konstruktor
juga dapat di-overload (anda dapat membuat konstruktor lebih dari satu asal
parameternya jumlahnya beda atau tipe datanya beda). Variabel dalam class harus
diinisialisasi.
5. Private,
protected, public
·
Public : anggota pribadi dari kelas
dasar hanya dapat diakses oleh anggota yang kelas dasar.
· Private : anggota publik dari kelas
dasar dapat diakses oleh anggota yang kelas dasar,anggota
kelas turunan serta anggota yang berada di luar kelas
dasar dan kelas turunan.
· Protected
: anggota dilindungi dari kelas dasar dapat
diakses oleh anggota kelas dasarserta anggota
kelas turunan.
Perbedaan public, private, protected, dan
tanpa penentu akses pada variabel :
·
public
: variabel dapat di
akses pada semua kelas yang menggunakan kelas yang berisi variabel tersebut.
·
private
: Hanya dapat
diakses oleh metode2 dalam kelas itu sendiri.
·
protected
: Variabel instan dapat diakses pada kelas sendiri dan subkelasnya.
·
Tanpa
Penentu akses : variabel
dapat diakses oleh kelas yang berada dalam package yang sama.
Perbedaan public, private, protected, dan
tanpa penentu akses pada metode :
·
private
: Hanya dapat
diakses pada metode2 dalam kelas yang sama.
·
protected
: 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
Inheritance - penurunan
atribut dan kelakuan sebuah class (yang diberi istilah khusus parent
class) kepada class lain (child class) yang dapat memiliki atribut
dan kelakuan uniknya sendiri. Segala karakteristik yang diturunkan dapat diubah
nilainya pada child class. Multiple inheritance adalah
inheritance pada satu child class yang penurunannya berasal dari lebih dari
satu parent class.
Contoh:
1:publicclass
Window {
2://variabel dideklarasikan private sehingga
tidak bisa diakses oleh kelas
3://turunannya
4:privateint
top;
5:privateint
left;
6:
7://objek konstruktor
8:public
Window(int
top, int
left) {
9:this.top
= top;
10:this.left
= left;
11:
}
12:
13:publicvoid
DrawWindow() {
14: Console.WriteLine("Draw window pada ({0},{1})",
15: top, left);
16:
}
17: }
18:
19:publicclass
ListBox : Window {
20://member variable baru pada class anak
21:privatestring
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:publicnewvoid
DrawWindow() {
28:base.DrawWindow();
29: Console.WriteLine("Menuliskan string pada listbox: {0}",
30: listBoxContent);
31:
}
32:
}
33:
34:class
LatInheritance {
35:publicstaticvoid 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:
}
Abstraction - simplifikasi
realita yang kompleks dengan pemodelan classes yang sesuai dengan permasalahan,
dan bekerja pada level inheritance yang paling sesuai dengan aspek
permasalahan.
Contoh :
1:publicabstractclass Control {
2:privateint
top;
3:privateint
left;
4:
5:protectedint
Top {
6: get { returnthis.top;}
7: set { this.top = value;}
8:
}
9:protectedint
Left {
10: get {returnthis.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:publicabstractvoid DrawWindow();
19:
}
20:
21:publicclass
ListBox : Control {
22:privatestring
listBoxContent;
23:public
ListBox(int
top, int
left, string
contents)
24: : base(top, left) {
25:this.listBoxContent
= contents;
26:
}
27:
28:publicoverridevoid DrawWindow() {
29: Console.WriteLine("Position :({0},{1})", Top, Left);
30: Console.WriteLine("Menuliskan string pada listbox: {0}",
31: listBoxContent);
32: }
33:
34:
}
35:
36:publicclass
Button : Control {
37:public
Button(int
top, int
left) : base(top,
left) { }
38:publicoverridevoid DrawWindow() {
39: Console.WriteLine("Menggambar button pada ({0},{1})", Top, Left);
40:
}
41:
}
42:class
LatAbstract {
43:staticvoid
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:
}
Encapsulation - penyembunyian
detil fungsional sebuah class dari object yang berinteraksi dengannya.
Contoh :
namespace BW_OOP2
{
class Program
{
public static void Main(string[] args)
{
Barang brg = new Barang();
Console.Write("Masukkan
Nama barang = ");
brg.Nama_barang =
Console.ReadLine();
brg.DataBarang();
Console.WriteLine();
Console.Write("Press
any key to continue . . . ");
Console.ReadKey(true);
}
}
class Barang
{
public Barang()
{
Console.WriteLine("\t\t\t\t
Data Barang\n\n");
}
private string nama_barang; //---> modifier
private & information hidding
private string kode_barang; //---> modifier
private
protected int harga; //---> modifier protected
int stok; //---> modifier default
public string Nama_barang // ---> properties
getset
{
get { return nama_barang; }
set { nama_barang = value; }
}
public void DataBarang() //---> method dengan
modifier public
{
if(Nama_barang ==
"Acer 4741G")
{
kode_barang =
"310051";
harga = 4750000;
stok = 20;
}
else if(Nama_barang == "Acer
4750")
{
kode_barang =
"310052";
harga = 4490000;
stok = 20;
}
else
{
kode_barang =
"Barang Tidak ada";
harga = 0;
stok = 0;
}
Console.WriteLine("\n\n");
Console.WriteLine("Nama
Barang = {0}",Nama_barang);
Console.WriteLine("Kode
Barang = {0}",kode_barang);
Console.WriteLine("Harga
= {0}",harga);
Console.WriteLine("Stok
= {0}",stok);
}
}
}
Polymorphism - kemampuan
berbagai object yang memiliki tipe data yang berbeda untuk merespon pada
method-method bernama sama.
Contoh:
1:publicclass
Control {
2://variabel dideklarasikan private sehingga
tidak bisa diakses oleh kelas
3://turunannya
4:privateint
top;
5:privateint
left;
6:
7:protectedint
Top {
8: get {
9:returnthis.top;
10: }
11:
set {
12:this.top
= value;
13: }
14:
}
15:
16:protectedint
Left {
17: get {
18:returnthis.left;
19: }
20: set {
21:this.left
= value;
22: }
23:
}
24:
25://objek konstruktor
26:public
Control(int
top, int
left) {
27: Top = top;
28: Left = left;
29:
}
30:
31:publicvirtualvoid DrawWindow() {
32: Console.WriteLine("Draw window pada ({0},{1})",
33: top, left);
34:
}
35:
36:
}
37:
38:publicclass
ListBox : Control {
39://member variable baru pada class anak
40:privatestring
listBoxContent;
41:public
ListBox(int
top, int
left, string
contents)
42: : base(top, left) {
43:this.listBoxContent
= contents;
44:
}
45:
46://versi baru karena oSverride dari base
classnya
47:publicoverridevoid DrawWindow() {
48:base.DrawWindow();
49: Console.WriteLine("Menuliskan string pada listbox: {0}",
50: listBoxContent);
51:
}
52:
53:
}
54:
55:publicclass
Button : Control {
56:public
Button(int
top, int
left) : base(top,
left) {}
57:
58:publicoverridevoid DrawWindow() {
59://base.DrawWindow();
60: Console.WriteLine("Menggambar button pada ({0},{1})", Top, Left);
61:
}
62:
}
63:class
LatPolymophism {
64:staticvoid
Main(string[]
args) {
65: Control win = new Control(10,
15);
66: ListBox lstBox = new
ListBox(5, 10, "Text
pada ListBox");
67: Button b = new Button(5,
6);
68: win.DrawWindow();
69: lstBox.DrawWindow();
70: b.DrawWindow();
71:
72: Control[] winArray = new
Control[3];
73: winArray[0] = new
Control(10, 15);
74: winArray[1] = new
ListBox(5, 10, "Pada
ListBox");
75: winArray[2] = new Button(5,
6);
76:
77:for (int i = 0; i
< 3; i++) {
78: winArray.DrawWindow();
79: }
80:
}
81:
}
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.
7. Overloading
Overloading adalah suatu cara membuat lebih dari constructor pada
suatu class. Supaya pengaksesan constructor tersebut lancar, maka sebagai
pembedanya adalah tipe parameter dan atau jumlah parameternya.
8.
Membuat
program oop : menghitung nilai mata kuliah dan konversinya
Sumber :



Tidak ada komentar:
Posting Komentar