1. Class, Atribut
dan Method
A.
Class
Class adalah kumpulan atas definisi data dan
fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebuah class adalah
dasar dari modularitas dan struktur dalam pemrograman berorientasi object.
Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang
non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode
yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan
independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP).
Dengan modularitas, struktur dari sebuah program akan terkait dengan
aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara
seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program
ataupun sebaliknya. Class, sesuatu disekitar kita dapat dibedakan ke
dalam class-class yang berbeda.
Sebagai contoh meja, kursi, manusia, kucing atau pohon. Class mengkategorikan atau mengelompokkan
sesuatu yang sama.
Untuk membuat Class dengan C# maka
berikut adalah sintaks yang mesti diketahui.
[attribute]
[access-modifier] class nama_class [: [base-class [, interface(s)]]
[attribute]
[access-modifier] class nama_class [: [base-class [, interface(s)]]
{
class-body
}
Keterangan:
1. Attribute, adalah penanda untuk menerangkan class dan untuk kebutuhan tertentu.
class-body
}
Keterangan:
1. Attribute, adalah penanda untuk menerangkan class dan untuk kebutuhan tertentu.
2.
Access-modifier dapat berupa public, private, protected, internal dan
protected internal.
a. public, tidak ada batasan, class dapat digunakan
oleh semua class.
b. private, terbatas tidak dapat digunakan pada class lain.
c. protected, terbatas digunakan oleh class turunannya.
d. internal, dapat digunakan secara internal di dalam class.
b. private, terbatas tidak dapat digunakan pada class lain.
c. protected, terbatas digunakan oleh class turunannya.
d. internal, dapat digunakan secara internal di dalam class.
3. Tanda “:” untuk
pengganti kata kunci extends bagi yang sudah mengenal OOP
pada Java atau PHP.
pada Java atau PHP.
B.
Atribut
Setiap object pasti
memiliki banyak property. Property akan
dapat menerangkan object dengan lebih jelas.
Sebagai contoh Budi akan mempunyai property seperti tinggi, berat,
warna kulit dan sebagainya.
Field
adalah property pada class seperti pada contoh kode berikut:
ClassExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace STS.Console
{
public class ClassExample
{
public int bilangan1;
public int bilangan2;
private string hasil;
protected string nama;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace STS.Console
{
public class ClassExample
{
public int bilangan1;
public int bilangan2;
private string hasil;
protected string nama;
}
}
Dari contoh di atas maka field
bilangan 1 dan bilangan 2 dapat diakses secara langsung
sebagai method dari objek di dalam class manapun karena menggunakan public sebagai
access-modifier.
sebagai method dari objek di dalam class manapun karena menggunakan public sebagai
access-modifier.
Sedangkan field nama, karena
menggunakan access-modifier protected maka hanya dapat digunakan oleh class
yang merupakan class turunan dari ClassExample.
Contoh :
ClassTurunan.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Console;
namespace STS.Console
{
public class ClassTurunan : ClassExample
{
public void TestMethod()
{
this.nama = "reza";
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Console;
namespace STS.Console
{
public class ClassTurunan : ClassExample
{
public void TestMethod()
{
this.nama = "reza";
}
}
}
Atau
dapat dilihat pada gambar berikut :
Pada class ClassExample terdapat field yang menggunakan access-modifier private. Artinya field ini hanya bisa digunakan di dalam class tersebut. Field pada suatu class secara default mempunyai access-modifier private dan memang seharusnya tetap seperti itu. Agar class lain dapat melakukan pengambilan (get) atau pengisian (set) nilai field tersebut maka perlu dibuat public method yang berfungsi untuk itu.
Public method ini dideklarasikan bukan seperti method yang
telah dibuat sebelumnya, istilah yang tepat sebagai pengganti nama ‘method’
untuk fungsi seperti di atas adalah Property.
Cara mendeklarasikan Property
adalah sebagai berikut :
ClassExample.cs
using
System;
using
System.Collections.Generic;
using System.Linq;
using System.Text;
namespace STS.Console
{
public class ClassExample
{
public int bilangan1;
public int bilangan2;
private string hasil;
protected string nama;
public string Hasil
{
get {return hasil;}
set {hasil = value;}
}
}
}
using System.Linq;
using System.Text;
namespace STS.Console
{
public class ClassExample
{
public int bilangan1;
public int bilangan2;
private string hasil;
protected string nama;
public string Hasil
{
get {return hasil;}
set {hasil = value;}
}
}
}
Dengan
cara di atas maka field hasil dapat diberikan nilai (set) dan diambil nilainya
(get) oleh semua class.
public string Hasil
{
get {return hasil;}
set {hasil = value;}
}
{
get {return hasil;}
set {hasil = value;}
}
Kode di atas dapat dipersingkat lagi
penulisannya dengan cara berikut :
public string Hasil
{
get;
set;
}
{
get;
set;
}
C.
Method
Method adalah apa yang bisa dikerjakan oleh suatu object, sebagai contoh Budi bisa berjalan atau berbicara.
Ada
dua jenis method, yaitu :
1.
Method
yang tidak melemparkan nilai biasanya disebut procedure. Sintaks : [access-modifier]
void nama_method(tipe_data parameter-1, ... tipe_data parameter-N)
{
}
Contoh:
{
}
Contoh:
ClassExamle.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace STS.Console
{
public class ClassExample
{
public void Tambah(int bilanganA, int bilanganB)
{
int hasil = bilanganA + bilanganB;
System.Console.WriteLine(hasil);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace STS.Console
{
public class ClassExample
{
public void Tambah(int bilanganA, int bilanganB)
{
int hasil = bilanganA + bilanganB;
System.Console.WriteLine(hasil);
}
}
}
Contoh penggunaan :
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Common.Math;
namespace STS.Console
{
class Program
{
static void Main(string[] args)
{
ClassExample classExample = new ClassExample();
classExample.Tambah(3, 10);
System.Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Common.Math;
namespace STS.Console
{
class Program
{
static void Main(string[] args)
{
ClassExample classExample = new ClassExample();
classExample.Tambah(3, 10);
System.Console.ReadKey();
}
}
}
2. Method
yang melemparkan nilai biasanya disebut function. Sintaks :
[access-modifier] tipe_data nama_method(tipe_data parameter-1, ... tipe_data parameter-N)
{
}
Contoh :
[access-modifier] tipe_data nama_method(tipe_data parameter-1, ... tipe_data parameter-N)
{
}
Contoh :
ClassExamle.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace STS.Console
{
public class ClassExample
{
public int Kurang(int bilanganA, int bilanganB)
{
return bilanganA - bilanganB;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace STS.Console
{
public class ClassExample
{
public int Kurang(int bilanganA, int bilanganB)
{
return bilanganA - bilanganB;
}
}
}
Contoh penggunaan :
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Common.Math;
namespace STS.Console
{
class Program
{
static void Main(string[] args)
{
ClassExample classExample = new ClassExample();
System.Console.WriteLine(classExample.Kurang(17,4));
System.Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Common.Math;
namespace STS.Console
{
class Program
{
static void Main(string[] args)
{
ClassExample classExample = new ClassExample();
System.Console.WriteLine(classExample.Kurang(17,4));
System.Console.ReadKey();
}
}
}
Biasanya dalam OOP,
method dapat didefinisikan sebagai sesuatu yang dapat dilakukan oleh suatu
object. Selain itu method dapat kita
definisikan juga sebagai langkah-langkah instruksi untuk melakukan sesuatu. Method
dibagi atas dua, yaitu :
a.
Method
yang tidak mengembalikan suatu nilai, dalam bahasa pemrograman lain tipe method
ini biasa disebut procedure.
b.
Method
yang dapat mengembalikan suatu nilai, dalam bahasa pemrograman lain tipe method
ini biasa disebut function.
Berikut contoh method yang tidak mengembalikan
suatu nilai.
Orang.cs
|
class Orang
{
public string namaDepan;
public string namaAkhir;
public
int umur;
/*
method yang tidak mengembalikan suatu nilai */
public void TampilkanNamaPenuh()
{
Console.WriteLine(“Nama penuh : “ + this.namaDepan + “ ” +
this.namaAkhir);
}
public void TulisNamaPenuh(string _namaDepan, string _namaAkhir)
{
Console.WriteLine(“Nama penuh : “ + _namaDepan + “ ” +
_namaAkhir);
}
/*
method yang mengembalikan suatu nilai */
public int TampilkanSisaUmur()
{
int sisaUmur = 63 – this.umur;
return sisaUmur;
}
}
|
Program.cs
|
Orang adi = new Orang();
adi.namaDepan = “Adi”;
adi.namaAkhir = “Nugraha”;
adi.umur = 20;
adi.TampilkanNamaPenuh();
Console.WriteLine(“Sisa umur : “ +
adi.TampilkanSisaUmur());
|
Keyword Public, Private dan Protected pada Method
Selain bisa
dilekatkan pada field, keyword public, private dan protected juga bisa
dilekatkan pada method. Secara default
level proteksi pada method adalah private.
Method Constructor
Method Constructor
adalah ‘method’ yang mempunyai fungsi mendefinisikan bagaimana sebuat object
akan dibuat pertama kali. Dalam C# (dan beberapa bahasa pemrograman lainnya),
Method Contructor mempunyai ciri sebagai berikut :
a.
Nama
method constructor sama dengan nama class.
b.
Pada
method tidak terdapat keyword void seperti pada method yang tidak mengembalikan
nilai.
c.
Method
constructor tidak mengembalikan nilai seperti method yang mengembalikan nilai.
2. Object
Object adalah
sebuah structure yang menggabungkan data dan prosedur untuk bekerja
bersama-sama. Objek merupakan dasar dari modularitas dan struktur dalam sebuah
program komputer berorientasi objek. Contoh, jika kamu tertarik dalam pelacakan
data yang dihubungkan dengan produk, kamu akan menciptakan sebuah object produk
yang bertanggung jawab untuk me-maintenance dan bekerja dengan data yang
bersinggungan dengan produk. Jika kamu ingin kemampuan mencetak dalam aplikasi
kamu, kamu harus bekerja dengan sebuah object printer yang bertanggung
jawab untuk data serta metode yang digunakan untuk berinteraksi dengan printermu. Object, dalam setiap class akan terdapat object-object spesifik. Sebagai contoh Budi, Wati dan Adi yang masuk dalam class manusia. Ketiga orang tadi merupakan object yang dibentuk dari class Manusia. Setiap object akan memiliki ciri yang unik.
jawab untuk data serta metode yang digunakan untuk berinteraksi dengan printermu. Object, dalam setiap class akan terdapat object-object spesifik. Sebagai contoh Budi, Wati dan Adi yang masuk dalam class manusia. Ketiga orang tadi merupakan object yang dibentuk dari class Manusia. Setiap object akan memiliki ciri yang unik.
3. Cara Membuat
Objek
C#
merupakan bahasa yang mempunyai ciri strong type, artinya setiap ‘variable’
(ini hanya istilah, karena nanti bukan hanya variable tapi juga object,
property dan lain-lain) harus diberikan tipe datanya. Pada contoh di atas, object mesti diberikan
dahulu ‘tipe data’-nya. Ada dua cara,
yaitu :
Hewan kera = new Hewan();
|
Atau
Hewan singa;
singa = new Hewan();
|
4. Kontruktor
Berikut adalah contoh method constructor pada C#.
Orang.cs
|
class Orang
{
public string namaDepan;
public string namaAkhir;
public int umur;
/* constructor */
public Orang()
{
this.namaDepan = “Reza”;
this.namaAkhir =
“Faisal”;
}
/* method yang tidak
mengembalikan suatu nilai */
public void
TampilkanNamaPenuh()
{
Console.WriteLine(“Nama
penuh : “ + this.namaDepan + “ ” +
this.namaAkhir);
}
/* method yang
mengembalikan suatu nilai */
public int
TampilkanSisaUmur()
{
int sisaUmur = 63 –
this.umur;
return sisaUmur;
}
}
|
Apabila
kita membuat object dari class Orang, maka secara otomatis field namaDepan dan
namaAkhir akan diisi nilainya.
5. Private,
Protected, Public
A. Private
Private, adalah level proteksi untuk bayi yang berada di dalam
rumah. Si bayi tidak boleh keluar dari rumah karena mempunya level
proteksi paling tinggi. Hanya orang-orang yang dapat dipercaya yang boleh
berinteraksi dengan si bayi, dalam hal ini mungkin adalah orang-orang yang
berada di dalam rumah. Dalam implementasinya, field dengan level proteksi
private hanya dapat
diakses di dalam class tersebut.
B. Protected
Protected, adalah level proteksi untuk anak yang sedang bermain bola
di dalam pagar. Orang yang ingin berinteraksi dengan anak ini harus juga
berada di dalam pagar juga. Dalam implementasinya, field dengan level
proteksi protected
dapat diakses oleh class lainnya tetapi harus mempunyai hubungan yang dekat. Variabel instan dapat diakses pada kelas
sendiri dan subkelasnya.
C. Public
Public, dapat dianggap tidak mempunyai
proteksi artinya setiap orang dapat melakukan interaksi dengan anak yang mempunya
level proteksi ini. Dalam implementasinya, field dengan level proteksi public
dapat diakses oleh semua class lain. Variabel dapat di akses pada semua kelas
yang menggunakan kelas yang berisi variabel tersebut.
6. Karakteristik
OOP dan Contoh
A. Inheritance
Banyak objects diklasifikasikan
menurut hirarki. Contoh, kamu dapat mengklasifikasikan sebuah mobil yang
mempunyai karakteristik umumnya mobil, seperti mempunyai ban, mesin, serta
body. Keturunan berikutnya diklasifikasikan dengan atribut umum seperti ukuran,
jumlah roda, isi silinder dll atau mengklasifikasikan mereka atas dasar daya
angkutnya. Contoh, ada kendaraan komersial atau kendaraan pribadi, ada truk
atau mobil penumpang. Penggunaan inheritance dalam OOP untuk
mengklasifikasikan objects dalam program sesuai karakteristik umum dan
fungsinya. Hal ini akan membuat pekerjaan bersama object lebih mudah dan lebih
intuitif. Hal ini juga membuat programming lebih mudah karena memungkinkan kita
untuk mengkombinasikan karakteristik umum kedalam object parent dan mewariskan
karakteristik ini ke child object. Pewarisan , Mewariskan
objek yang dimiliki ke pada objek yang diturunkan , bersifat menyeluruh. Kelas
yang mewariskan biasa di sebut super class / class induk. Kelas yang diwariskan
biasa di sebut sub class / kelas anak. Secara lebih singkat begini :
A
sebagai Ayah memiliki Anak bernama B , A berkulit Hitam maka B akan berkulit
Hitam jg . Ini merupakan inheritance terhadap A kepada B , dan inheritance bukan
hanya dapat 1x diwariskan, tetapi dapat lebih dari 1x. seperti berikut : A
sebagai Ayah memiliki Anak bernama B , A berkulit Hitam maka B akan berkulit
Hitam jg . dan B pun memiliki anak C maka C pun akan berkulit hitam.
Keuntungan dari
inheritance :
- Tidak perlu
mendefinisikan Variabel Bila membutuhkan , Cukup menurunkan dari class induk
- Memudahkan dan
Mempercepat pemprogramman , mengurangi Code Sample inheritance dalam C#.Net
public class A
{
public A() { }
}
public class B : A
{
public B() { }
}
Burung.cs
|
class Burung : Hewan
{
public string warnaBulu;
}
|
Program.cs
|
Burung elang = new Burung();
elang.jenisHewan = “Elang Botak”;
elang.warnaBulu = “Hitam”;
|
B.
Polymorphism
Polymorphisms adalah kemampuan 2 buah object
yang berbeda untuk merespon pesan permintaan yang sama dalam suatu cara yang unik.
Contoh, saya melatih anjing saya dengan perintah untuk menggonggong dan juga
saya melatih burung untuk merespon perintah saya untuk berkicau. Saya lakukan
latihan untuk merespon kepada mereka dengan perintah lisan. Melalui
polymorphism saya tahu bahwa anjing dan burung akan merespon dengan gonggongan
atau kicauan.
Bagaimana hal ini berhubungan dengan
OOP? Kamu dapat membuat objects yang dapat merespon pesan yang sama dalam
implementasi yang unik. Contohnya, kamu dapat mengirim pesan print ke object
printer yang akan mencetak pada printer, dan kamu juga dapat mengirim pesan
yang sama ke object screen yang akan menuliskan pada screen monitor. Dalam OOP,
kamu menerapkan tipe polymorphism melalui proses yang disebut overloading.
Kamu dapat mengimplementasikan metode yang berbeda pada sebuah object yang
mempunyai nama yang sama. Memiliki Banyak Bentuk.
Contoh Polymorphism
Contoh Polymorphism
public class BaseClass
{
public void
DoWork() { }
public int
WorkField;
public int
WorkProperty
{
get { return
0; }
}
}
public class DerivedClass : BaseClass
{
public new void
DoWork() { }
public new int
WorkField;
public new int
WorkProperty
{
get { return
0; }
}
Orang.cs
|
class Orang
{
public string namaDepan;
public string namaAkhir;
public int umur;
/* constructor */
public Orang()
{
this.namaDepan = “Reza”;
this.namaAkhir =
“Faisal”;
}
public Orang(string
_namaDepan, string _namaAkhir)
{
this.namaDepan =
_namaDepan;
this.namaAkhir = _namaAkhir;
}
public Orang(int umur)
{
this.umur = 0;
}
/* method yang tidak
mengembalikan suatu nilai */
public void
TampilkanNamaPenuh()
{
Console.WriteLine(“Nama
penuh : “ + this.namaDepan + “ ” +
this.namaAkhir);
}
public void
TampilkanNamaPenuh(string namaDepan, string namaAkhir)
{
Console.WriteLine(“Nama
penuh : “ + namaDepan + “ ” + namaAkhir);
}
/* method yang
mengembalikan suatu nilai */
public int
TampilkanSisaUmur()
{
int sisaUmur = 63 –
this.umur;
return sisaUmur;
}
public int
TampilkanSisaUmur(int umur)
{
int sisaUmur = 63 –
umur;
return sisaUmur;
}
}
|
C.
Encapsulation
Ciri penting lainnya dari OOP adalah
encapsulation. Encapsulation adalah sebuah proses dimana tidak ada akses
langsung ke data yang diberikan, bahkan hidden. Jika kamu ingin mendapat
data, kamu harus berinteraksi dengan object yang bertanggung jawab atas data
tersebut. Dalam contoh inventory, jika kita ingin melihat atau mengupdate
informasi atas produk, kita seharusnya bekerja melalui object produk. Untuk
membaca data, kita mengirimkan pesan ke object
produk, kemudian object produk
akan membaca pesan dan mengirim pesan balik ke kamu.
Object produk mendefinisikan bahwa operasi
dapat dilakukan pada data produk. Jika kamu mengirim pesan untuk memodifikasi
data dan jika object produk menentukan bahwa permintaan itu valid maka
permintaan tersebut akan dilakukan dan akan mengirimkan pesan balik bersama
hasilnya.
Pikirkan mengenai Human Resource
Department (HRD), yang meng-encapsulasi informasi mengenai karyawan. Mereka
menentukan bagaimana data ini dapat digunakan dan dimanipulasi. Setiap
permintaan data karyawan atau permintaan untuk mengupdate datanya harus
dijalankan melalui mereka. Contoh lain, network security. Setiap permintaan
informasi security atau perubahan kebijakan security harus dilakukan melalui
network administrator. Data security di-encapsulate dari user network.
Dengan melakukan encapsulasi pada
data, berarti kamu membuat data dari sistemmu lebih secure dan terpercaya. Karena kamu
mengetahui bagaimana data diakses dan operasi apa yang sedang berjalan pada
data. Hal ini membuat maintenance program menjadi lebih mudah. Kamu juga dapat
memodifikasi metode yang digunakan untuk kerja pada data, dan jika kamu tidak
merubah bagaimana metode itu diminta dan tipe response dikirim balik, maka kamu
tidak dapat merubah object lain dengan menggunakan metode tersebut. Pikirkan
ketika kamu mengirim surat melalui pos. Kamu membuat permintaan ke kantor pos
agar mengantar surat, dan bagaimana kantor pos menyelesaikannya kita tidak
perlu tahu. Jika ada
perubahan rute yang digunakan, maka hal itu tidak mempengaruhi keinginan untuk
kirim surat lewat kantor pos. Kamu tidak perlu tahu prosedur internal yang
digunakan oleh kantor pos untuk mengantar surat.
Enkapsulasi
= Pembungkusan , maksudnya di sini semua objek yang kita definisikan / bisa
juga informasi kita sembunyikan di dalam enkapsulasi tersebut agar tidak dapat
dibaca oleh kelas lain yang tidak berhak membacanya. maksudnya secara lebih
jelas agar memastikan agar object hanya dapat di ubah oleh object yang mendapat
ijin untuk mengubahnya , bila tidak memiliki ijin maka tidak dapat mengubahnya
atau membacanya. Contoh Enkapsulation:
1:// private
member variables
2:privateint
Year;
3:
4:publicint
getYear() //get method
5: {
6:returnthis.Year;
7: }
8:
9:publicvoid
setYear(int Year) //set method
10: {
11:this.Year =
Year;
12: }
D. Abstraction
Ketika kamu
berinteraksi dengan object-object di dunia ini, kamu sering hanya konsentrasi
dengan sebuah bagian dari propertiesnya. Tanpa kemampuan untuk
mensarikan/abstract atau menyaring untuk dibuang properties object yang asing /
tidak ada hubungannya, maka kamu akan menemukan kesulitan untuk memproses
informasi yang kebanyakan membombarding kamu. Sebagai hasil abstraction,
ketika 2 orang berbeda berinteraksi dengan object yang sama, mereka sering setuju dengan bagian yang berbeda
atas atribut. Ketika kami mengendarai mobil, kami perlu tahu kecepatan serta
tujuan yang akan dicapai.
Karena mobil
itu otomatis, maka kami tidak perlu tahu berapa RPMs dari mesinnya, jadi kami
akan membuang informasi ini. Tapi informasi ini sangat diperlukan oleh mekanik
atau pembalap.
Ketika membangun objects dalam aplikasi OOP, adalah
penting untuk menggabungkan konsep abstraction ini. Jika kamu membangun
aplikasi shipping, kamu harus membangun object produk dengan atribut seperti ukuran dan berat. Warna
adalah contoh informasi yang tidak ada hubungannya dan harus dibuang. Tetapi ketika kamu membangun order-entry
application, warna menjadi penting dan harus termasuk atribut object produk. Contoh
penggunaan property dapat dilihat pada contoh kode dibawah ini.
1:class
Mahasiswa {
2:privatestring
nim;
3:privatestring
nama;
4:
5:publicstring
Nim {
6:
get {
7:return
nim;
8:
}
9:
set {
10:this.nim
= value;
11:
}
12:
}
13:
14:publicstring
Nama {
15:
get {
16:return
nama;
17:
}
18:
set {
19:this.nama
= value;
20:
}
21:
}
22:
23:publicstring
DisplayInfo() {
24:return
Nim + " " + Nama;
25:
}
26:
}
27:
28:class
ClassProperty {
29:publicstaticvoid
Main(string[] args) {
30:
Mahasiswa mhs1 = new Mahasiswa();
31:
mhs1.Nim = "22002321";
32:
mhs1.Nama = "Erick";
33:
Console.WriteLine(mhs1.DisplayInfo());
34:
}u
35: }
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.
Konsep dari object oriented programming (OOP) adalah
lebih dari sekedar sebuah konsep pemrograman, Object oriented programming
adalah cara berpikir tentang aplikasi yang mempelajari untuk berpikir bahwa
aplikasi bukan sekedar prosedur melainkan sebagai object dan real entity.
Object yang dimaksud disini memiliki pengertian suatu modul yang
mengkombinasikan antara data dan kode program yang bekerja sama dalam program
dengan melewatkan proses satu sama lain. Jadi object oriented programming
merupakan cara yang paling efisien untuk menulis program komputer yang sangat
mudah untuk di kombinasikan dan untuk dipergunakan kembali.
Pemrograman
visual membawa OOP ke level berikutnya. Tujuan pemrograman visual adalah agar
pemrograman menjadi lebih mudah bagi para programmer dan lebih mudah diakses
oleh kalangan nonprogrammer dengan meminjam bahasa OOP, dan mempraktikanya secara
grafis atau visual. Pemrograman visual memungkinkan pengguna untuk lebih focus
pada pemecahan masalah ketimbang cara menangani bahasa pemrograman.
7. Overloading
Overloading
merupakan suatu function yang memiliki parameter , dan function tersebut dapat
memiliki nama function yang sama dengan yang lainnya dengan syarat jumlah
parameter mesti berbeda atau bisa kita bilang Situasi di mana beberapa rutin
dalam sebuah program dapat mempunyai nama sama tetapi berbeda jenis parameter
dan/utau jenis return value. Overloading secara singkat :
·
Nama
Method Boleh Sama , Tapi Jumlah Parameter Mesti berbeda
·
Nilai
Yang Di Return Harus memiliki Tipe yang sama
Sample Overloading pada function
TaxCalc pada C#.Net :
public static double TaxCalc(double
pamt1, double prate1, double pamt2,
double prate2)
{
double taxamt;
double prate2)
{
double taxamt;
Console.WriteLine(“Using method with
4 arguments”);
taxamt = (pamt1 * prate1) + (pamt2 * prate2);
taxamt = (pamt1 * prate1) + (pamt2 * prate2);
return taxamt;
} // *** TaxCalc ***
// This method only takes two
arguments: an amount and a rate
public static double TaxCalc(double pamt1, double prate1)
{
double taxamt;
public static double TaxCalc(double pamt1, double prate1)
{
double taxamt;
Console.WriteLine(“Using method with
2 arguments”);
taxamt = pamt1 * prate1;
taxamt = pamt1 * prate1;
return taxamt;
} // *** TaxCalc ***
// This method only takes one
argument: an amount
public static double TaxCalc(double pamt)
{
double taxrate = 0.15;
double taxamt = 0;
public static double TaxCalc(double pamt)
{
double taxrate = 0.15;
double taxamt = 0;
Console.WriteLine(“Using method with
1 argument”);
taxamt = pamt * taxrate;
taxamt = pamt * taxrate;
return taxamt;
} // *** TaxCalc ***
// This method only takes one
argument as well but it differs
// from the above in the argument type.
public static double TaxCalc(string whichtable)
{
double taxrate = 0;
Console.WriteLine(“Calling the method with 1 string argument”);
// from the above in the argument type.
public static double TaxCalc(string whichtable)
{
double taxrate = 0;
Console.WriteLine(“Calling the method with 1 string argument”);
if (whichtable == “TaxTable1″)
taxrate = 0.15;
taxrate = 0.15;
return taxrate;
}
Overloading adalah suatu cara untuk
memberikan nama yang sama kepada dua method yang berbeda meski dua method
tersebut berada dalam class yang sama. Hal ini dapat dilakukan dengan cara
membedakan tipe parameter, jumlah parameter dan susunan parameter, Manfaat
penggunaan overloading adalah agar method yang mempunyai tingkah yang hampir
sama mudah diingat oleh developer software.
//Overloading
public class test
{
public void getStuff(int id)
{}
public void getStuff(string name)
{}
}
Overloading
adalah dua atau lebih method di dalam satu kelas yang sama, dengan nama yang
sama, namun dengan deklarasi parameter yang membedakan.
Menurut saya syarat untuk membuat method Overloading adalah
Menurut saya syarat untuk membuat method Overloading adalah
1. jumlah
tipe dalam parameter nya harus berbeda.
2. tipe di
parameter harus berbeda.
3. urutan
tipe di dalam parameter harus berbeda.
Contoh:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
using
System;
namespace
overloading1
{
class
Program
{
private
static void perkalian(int a, int b, int c){
Console.WriteLine("perkalian
3 tipe dalam parameter");
int
x=0;
x
= Convert.ToInt32(a*b*c);
Console.WriteLine("{0}
= {1} * {2} * {3} ",x,a,b,c);
}
private
static void perkalian(int a, int b){
Console.WriteLine("perkalian
2 tipe dalam parameter");
int
x=0;
x
= Convert.ToInt32(a*b);
Console.WriteLine("{0}
= {1} * {2}",x,a,b);
}
public
static void Main(string[] args)
{
Console.WriteLine("contoh
overloading method dengan nama method perkalian");
Console.WriteLine();
perkalian(3,4);
Console.WriteLine();
perkalian(3,4,5);
Console.ReadKey(true);
}
}
}
|
|
|
compiled
8. Program OOP (
Menghitung Nilai Mata Kuliah dan Konversinya)
9. using System;
10. using System.Collections.Generic;
11. using System.Linq;
12. using System.Text;
13.
14. namespace nyoba
15. {
16. class nilaiMHS
17. {
18. private
double nt, np, nuts, nuas;
19. public void settugas(double
tugas)
20. { nt = tugas; }
21. public double gettugas()
22. { return
nt; }
23. public void setpartisipasi(double
partisipasi)
24. { np = partisipasi; }
25. public double getpartisipasi()
26. { return
np; }
27. public void setuts(double
uts)
28. { nuts = uts; }
29. public double getuts()
30. { return
nuts; }
31. public void setuas(double
uas)
32. { nuas = uas; }
33. public double getuas()
34. { return
nuas; }
35. public double NilaiAkhir()
36. {
37. return
0.2 * np + 0.3 * nt + 0.2 * nuts + 0.3 * nuas;
38. }
39. public static string
KonversiKeHuruf(double na)
40. {
41. string
nh = "";
42. if
(na >= 85 && na <= 100)
43. { nh = "A";
}
44. else
if (na >= 80 && na < 85)
45. { nh = "A-";
}
46. else
if (na >= 75 && na < 80)
47. { nh = "B+";
}
48. else
if (na >= 70 && na < 75)
49. { nh = "B";
}
50. else
if (na >= 65 && na < 70)
51. { nh = "B-";
}
52. else
if (na >= 60 && na < 65)
53. { nh = "C+";
}
54. else
if (na >= 55 && na < 60)
55. { nh = "C";
}
56. else
if (na >= 40 && na < 55)
57. { nh = "D";
}
58. else
if (na >= 0 && na < 40)
59. { nh = "E";
}
60. else
61. { nh = "tidak
ada"; }
62. return
nh;
63. }
64. class Program
65. {
66. static
void Main(string[]
args)
67. {
68. nilaiMHS
na = new nilaiMHS();
69. Console.Write("Nilai Tugas= ");
70. double
nt = double.Parse(Console.ReadLine());
71. Console.Write("Nilai Partisipasi= ");
72. double
np = double.Parse(Console.ReadLine());
73. Console.Write("Nilai Uts= ");
74. double
nuts = double.Parse(Console.ReadLine());
75. Console.Write("Nilai Uas= ");
76. double
nuas = double.Parse(Console.ReadLine());
77.
78. na.settugas(nt);
79. na.setpartisipasi(np);
80. na.setuts(nuts);
81. na.setuas(nuas);
82. Console.Write("Nilai Akhir= " + na.NilaiAkhir());
83. Console.Write("Nilai Huruf= " +
KonversiKeHuruf(na.NilaiAkhir()));
84. Console.ReadKey();
85. }
86.
87. }
88. }
89. }
90.