5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 1/30
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 2/30
E-t r ik V isual C# 2005
Objec t Or ient ed
Prog ram m ing (OOP)
S u h a r i a n R a m a d i
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 3/30
2
Objec t Or ient ed Prog ram m ing (OOP)
A. Class dan Method
A.1. Class
Salah satu keunggulan C# dibandingkan bahasa pemrograman lain (yang
belum menggunakan konsep OOP), adalah Modular. Dimana routine atau
fungsi (istilah dalam pemrograman prosedural) atau Method (istilah dalam
OOP), diletakkan secara terpisah-pisah yang disebut dengan Class. Class ini
nanti bisa digunakan kembali (reuseable) untuk membuat program lainnya.
Bentuk umum dari class adalah:
class nama_class
{
. . .
. . .
}
A.2. Method
Seperti yang pernah penulis singgung di atas tadi, bahwa Method adalah
istilah untuk fungsi atau routine pada OOP. Method harus terletak di dalam
class.
Bentuk umum dari method adalah:
hak_akses tipe_nilai_kembalian nama_method(parameter)
{
. . .
. . .
}
Dalam penggunaan method, pemilihan tipe_nilai_kembalian harus
benar-benar diperhatikan. Jika method tidak mempunyai nilai kembalian
(return value), maka tipe_nilai_kembalian adalah void. Tapi, jika method
mempunyai nilai kembalian, maka tipe_nilai_kembalian harus disesuaikan
dengan tipe data nilai kembalian tersebut. Untuk lebih jelasnya perhatikan
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 4/30
3
Object Oriented Programming (OOP)
contoh berikut ini:
Keterangan Program:
- Baris 1-3 dan 15-17: jangan diketik, karena contoh di atas adalah potongan
dari program. Jadi baris-baris tersebut hanya sebagai penanda bahwa
sebelum dan sesudahnya ada baris program lagi.
- Baris 5-8: adalah contoh method yang tidak memiliki nilai kembalian
(return value).
- Baris 9-14: adalah contoh method yang memiliki nilai kembalian (return
value).
- Baris 5: private adalah hak_akses, void adalah tipe_nilai_kembalian,
SetNilaiA() adalah nama_method, int a adalah parameter.
- Baris 9: public adalah hak_akses, int adalah tipe_nilai_kembalian,
HitungADikaliDua() adalah nama_method, int a adalah parameter.
- Baris 7: this.a, artinya variabel a yang di luar method. Jadi this.a = a;
1
23
4
5
6
7
8
910
11
12
13
14
15
16
17
.
.
.
int a;
private void SetNilaiA(int a)
{
this.a = a;
}
public int HitungADikaliDua(int a){
int hasil;
hasil = a * 2;
return hasil;
}
.
.
.
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 5/30
4
E-trik Visual C# 2005
berarti mengisi variabel a yang ada di luar method dengan nilai dari
variabel a yang berasal dari parameter.
- Baris 11: variabel hasil dideklarasikan dengan tipe data integer.
- Baris 12: mengkalikan variabel a lokal (yang berasal dari parameter)dengan 2, lalu hasilnya disimpan ke dalam variabel hasil.
- Baris 13: variabel hasil adalah return value.
B. Hak Akses
Hak akses dipakai untuk menentukan sebatas atau sejauh mana suatu Variabel
dan juga Method bisa digunakan. Jenis hak akses terbagi atas tiga, yaitu:
a. Pubic
Ditulis dengan huruf kecil semua, public. Berarti Variabel atau Method bisa
digunakan oleh class mana saja.
b. Private
Ditulis dengan huruf kecil semua, private. Berarti Variabel atau Method
hanya bisa digunakan oleh class itu sendiri. Tidak bisa diakses oleh class
manapun termasuk class turunannya sendiri.
c. Protected
Ditulis dengan huruf kecil semua, protected. Berarti Variabel atau Method
tidak bisa diakses oleh class lain yang bukan class turunannya.
C. Konstruktor
Konstruktor pada OOP berguna sebagai method yang akan otomatis dijalankan
begitu kita membuat objek baru dari class yang bersangkutan. Jika kita tidak
membuat konstruktor, maka compiler secara default akan membuatnya.
Catatan :
Variabel• , di dalam OOP sering disebut Data Member dan juga
Properties.
Method• , di dalam OOP sering disebut Member Function dan juga
Karakteristik.
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 6/30
5
Object Oriented Programming (OOP)
Nama konstruktor harus sama dengan nama class.
Contoh penggunaan Konstruktor adalah :
Keterangan Program:
- Baris 1: membuat class dengan nama PersegiEmpat.
- Baris 4-8: membuat konstruktor dengan nama yang sama dengan nama
class, yaitu PersegiEmpat.
D. ObjekObjek dibuat dengan tujuan sebagai instance atau turunan langsung dari class.
Jadi dengan menggunakan objek yang dibuat, kita bisa menggunakan method
dari class tersebut.
Contoh pembuatan objek dari class PersegiEmpat adalah :
12
3
4
5
6
7
89
10
11
12
13
14
15
class PersegiEmpat{
int panjang, lebar;
public PersegiEmpat(int panjang, int lebar)
{
this.panjang = panjang;
this.lebar = lebar;
}
public int HitungKeliling()
{
int hasil;
hasil = panjang * lebar;
return hasil;
}
}
1
2
PersegiEmpat objBaru = new PersegiEmpat(15,10);
textBox1.Text = objBaru.HitungKeliling().ToString();
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 7/30
6
E-trik Visual C# 2005
Keterangan Program:
- Baris 1: membuat objek dari class PersegiEmpat, dengan nama
objBaru.
- Baris 1: PersegiEmpat(15,10); dari potongan baris kode tersebut bisadilihat bahwa ketika kita membuat objek baru dari class, maka program
akan memanggil konstruktor. PersegiEmpat() adalah konstruktor, angka
15 adalah panjang dan angka 10 adalah lebar.
- Baris 2: objBaru.HitungKeliling() dari potongan baris kode tersebut bisa
dilihat bahwa dengan menggunakan objek objBaru, kita bisa mengakses
method HitungKeliling(), milik class PersegiEmpat.
E. Karakteristik OOP
E.1. Encapsulation (Pembungkusan)
Adalah karakteristik OOP dimana suatu informasi (bisa variabel atau method)
disembunyikan dari aspek eksternal. Pembungkusan bisa dilakukan dengan
menggunakan hak akses private dan protected.
E.2. Inheritance (Pewarisan atau Penurunan)
Adalah karakteristik OOP yang memungkinkan suatu class dibuat turunannya.Sehingga class turunan tersebut bisa menggunakan data member ataupun
method milik class induk. Hal ini sering dianalogikan sebagai “anak mewarisi
sifat orangtuanya (induknya)”.
E.3. Polymorphisme
Adalah karakteristik OOP yang memungkinkan penggunaan method dengan
nama yang sama, dan memiliki parameter yang sama ataupun berbeda. Akan
tetapi digunakan pada class yang berbeda.
Jika Anda ingin menggunakan Polymorphisme, maka terlebih dahulu Anda
harus membuat class Inheritance.
Catatan :
Class Induk• , sering juga disebut base class, atau class saja.
Class Anak• , sering juga disebut derived class, atau subclass.
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 8/30
7
Object Oriented Programming (OOP)
F. Contoh Program OOP
Pada bagian ini kita akan membuat program sederhana yang menerapkan
konsep OOP. Berikut deskripsi program yang akan kita buat.
Program berguna untuk menghitung berapa banyak jumlah SKS yang•
harus kita bayar semester ini.
Nilai yang diinput oleh user adalah, jumlah mata kuliah, SKS dan nilai•
per mata kuliah.
Program akan menghitung berapa IP yang diperoleh, lalu memutuskan•
berapa banyak SKS yang diperoleh.
Tampilan hasil akhir program yang akan kita buat nanti adalah seperti•pada gambar di bawah ini.
Gambar 1 Tampilan Program Yang Akan Dibuat
Langkah-langkah membuat tampilan program tersebut adalah sebagai
berikut:
1. Buat project baru dengan nama menghitungSKS, simpan di folder
e-Trik_2.
2. Masukkan ke dalam Form1 komponen-komponen yang dibutuhkan sebagai
berikut. 11 buah Label , 6 buah TextBox , 4 buah Button
, 1 buah ComboBox , dan 2 buah GroupBox . Atur tata
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 9/30
8
E-trik Visual C# 2005
letaknya kira-kira seperti pada gambar di bawah ini.
Gambar 2 Tata Letak Awal Komponen
3. Untuk langkah selanjutnya, kita akan mengubah semua nilai properties
pada masing-masing objek yang ada pada Form1, termasuk nilai properties
Form1 itu sendiri. Untuk mengetahui komponen dan properties yang
mana yang akan diubah, dan apa nilainya, silahkan Anda lihat pada tabel
di bawah ini.
Tabel 1. Properties dan Value yang Akan Diubah
Nama Kontrol Nama Properties Value / Nilai
Form1 FormBorderStyle FixedSingle
MaximizeBox False
Size 450, 409
StartPosition CenterScreen
Text Menghitung SKS Yang Harus
Dibayar Untuk Semester Ini
groupBox1 (Name) gbDataMatKul
Font style Bold
Location 15, 58
ComboBox
GroupBox
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 10/30
9
Object Oriented Programming (OOP)
Size 408, 106
Text Data Mata Kuliah
Visible False
groupBox2 (Name) gbHasilHitung
Font style Bold
Location 15, 177
Size 408, 143
Text Hasil Penghitungan
Visible False
label1 Location 12, 22
Text Menang
label2 Location 18, 27
Text Mata Kuliah Nomor
label3 (Name) lblNoMatKul
Location 133, 27
Text ?
label4 Location 18, 55
Text SKS
label5 Location 18, 81
Text Nilai
label6 Location 18, 27
Text Indeks Prestasi (IP)
label7 Location 18, 55
Text SKS Semester Ini
label8 Location 18, 81
Text Harga Per SKS
label9 Location 18, 107
Text Total SKS Yang Harus Dibayar
label10 Location 184, 81
Text Rp
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 11/30
10
E-trik Visual C# 2005
label11 Location 184, 107
Text Rp
textBox1 (Name) txtJumlahMatKul
Location 127, 15
Size 25, 20
TabIndex 0
textBox2 (Name) txtSKSPerMataKuliah
Location 136, 48
Size 50, 20
TabIndex 0
textBox3 (Name) txtIP
BackColor 255, 255, 192
Location 208, 22
Size 63, 20
textBox4 (Name) txtSKSSemesterIni
BackColor 255, 255, 192
Location 208, 48
Size 63, 20
textBox5 (Name) txtHargaPerSKS
BackColor 255, 255, 192
Location 208, 74
Size 113, 20
textBox6 (Name) txtTotalSKSYangHarusDiBayar
BackColor 255, 255, 192
Location 208, 74
Size 113, 20
button1 (Name) cmdOke
Font style Bold
Location 185, 12
Size 46, 23
TabIndex 1
Text Oke
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 12/30
11
Object Oriented Programming (OOP)
button2 (Name) cmdNext
Font style Bold
Location 231, 71
Size 67, 23
TabIndex 4
Text Next
button3 (Name) cmdHitung
Font style Bold
Location 318, 71
Size 67, 23
TabIndex 5
Text Hitung
button4 (Name) cmdKeluar
Font style Bold
Location 356, 342
Size 67, 23
TabIndex 6
Text Keluar
comboBox1 (Name) comboNilaiPerMataKuliah
Location 136, 73
Size 50, 21
TabIndex 3
Text A
4. Se te l a h i t u , k l ik kompone n ComboBox dengan nama
comboNilaiPerMataKuliah, pada bagian Properties Items, klik tombol
, maka akan muncul kotak dialog String Collection Editor.
5. Masih di kotak dialog yang tadi, pada bagian Enter the strings in the
collection (one per line): ketik huruf A, lalu Enter. Ketik huruf B, lalu
Enter, dan seterusnya sampai huruf E. Klik OK. Untuk lebih jelasnya
silahkan lihat Gambar 3.
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 13/30
12
E-trik Visual C# 2005
Gambar 3 Menambahkan Items pada ComboBox
Untuk tahap selanjutnya kita akan melakukan pengkodean. Langkah-
langkahnya adalah sebagai berikut:
1. Klik satu kali pada Form1, lalu tekan tombol F7, ketikkan kode yang
berwarna merah seperti dibawah ini.
Keterangan Program:
- Baris 1: mendeklarasikan array bertipe Integer, dengan panjang 10, dengannama sksPerMataKuliah.
- Baris 2: mendeklarasikan array bertipe char, dengan panjang 10, dengan
nama nilaiPerMataKuliah.
- Baris 3: mendeklarasikan variabel indexArray dan noMatkul.
- Baris 4-7: baris ini tidak perlu diketik, karena baris ini sudah ada dengan
sendirinya pada saat kita membuat project baru.
1. Ketik huruf A - E
2. Klik OK
1
2
3
4
5
6
7
private int[] sksPerMataKuliah = new int[10];
private char[] nilaiPerMataKuliah = new char[10];
private int indexArray = 0, noMatKul = 0;
public Form1()
{
InitializeComponent();
}
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 14/30
13
Object Oriented Programming (OOP)
2. Sebelum kita melanjutkan kode untuk di Form1. Terlebih dahulu kita
akan membuat class baru yang menerapkan konsep OOP.
3. Klik tombol , pilih Add New Item... Atau bisa dengan menekan
kombinasi tombol Ctrl + Shift + A. Maka akan tampil kotak dialog AddNew Item. Lihat gambar di bawah ini.
Gambar 4 Menambah Item Baru
4. Pada kotak dialog tersebut, pilih Class dan isi dengan namaPembayaranSKS.cs, klik Add.
Gambar 5 Memberi Nama Class Baru
5. Kemudian ketikkan kode berikut ini.
1. Klik di sini
2. Pilih ini
1. Pilih Class
2. Isi Nama Class3. Klik Add
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 15/30
14
E-trik Visual C# 2005
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class PembayaranSKS
{
protectedfoathargaPerSKS;
private int jumlahSKSYangDiperoleh;
public PembayaranSKS()
{
this.hargaPerSKS = 40000;
this.jumlahSKSYangDiperoleh = 0;
}
publicfoatGetHargaPerSKS()
{
return this.hargaPerSKS;
}
publicfoatHitungSKSYangHarusDibayar(int
jumlahSKSYangDiperoleh)
{
this.jumlahSKSYangDiperoleh = jumlahSKSYangDiperoleh;
foathasil=this.jumlahSKSYangDiperoleh*hargaPerSKS;
return hasil;
}
}
Keterangan Program:
- Baris 1: tambahkan public, sebelum perintah class. Karena kita akan
membuat lebih dari satu class.- Baris 2: mendeklarasikan variabel hargaPerSKS,dengantipedatafoat
dan hak akses protected.
- Baris 3: mendeklarasikan variabel jumlahSKSYangDiperoleh, dengan
tipe data int dan hak akses private.
- Baris 5-9: membuat konstruktor untuk class PembayaranSKS().
- Baris 10-13: membuat method dengan nama GetHargaPerSKS(), yang
berguna untuk mengambil nilai dari variabel hargaPerSKS. Karena
variabel ini tidak menggunakan hak akses public, sehingga tidak bisa
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 16/30
15
Object Oriented Programming (OOP)
diakses secara langsung dari luar class.
- B a r i s 1 4 - 1 9 : m e m b u a t m e t h o d d e n g a n n a m a
HitungSKSYangHarusDibayar() , yang berguna untuk menghitung
berapa banyak SKS yang harus dibayar untuk bulan ini. Yang didapat darirumus jumlahSKSYangDiperoleh dikali hargaPerSKS.
6. Selanjutnya kita akan membuat class turunan dari class PembayaranSKS,
yaitu class IPSemesterIni. Ketikkan kode berikut tepat di bawah class
PembayaranSKS.
1
23
4
5
6
7
8
910
11
12
13
14
1516
17
18
19
20
// inherit dari class PembayaranSKS
public class IPSemesterIni : PembayaranSKS{
foattotalSKSDiperoleh,totalKNDiperoleh;
int JumlahSKSSemesterIni;
// constructor
public IPSemesterIni()
{
this.totalSKSDiperoleh = 0;this.totalKNDiperoleh = 0;
}
public IPSemesterIni(foat totalSKSDiperoleh, foat
totalKNDiperoleh)
{
this.totalSKSDiperoleh = totalSKSDiperoleh;
this.totalKNDiperoleh = totalKNDiperoleh;}
public foat HitungIPYangDiperoleh(foat totalSKSDiperoleh,
foattotalKNDiperoleh)
{
return totalKNDiperoleh / totalSKSDiperoleh;
}
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 17/30
16
E-trik Visual C# 2005
Keterangan Program:
- Baris 2: membuat class dengan nama IPSemesterIni, yang diturunkan
dari class PembayaranSKS.
- Baris 7-16: pada baris ini terdapat dua bua konstruktor, dimana
pada konstructor pertama tidak terdapat parameter. Sedangkan pada
konstructor yang kedua terdapat parameter, yaitu totalSKSDiperoleh dan
totalKNDiperoleh.
- Baris 17-20: membuat method dengan nama HitungIPYangDiperoleh(),
yang berguna untuk menghitung berapa besar IP yang diperoleh dengancara membagi totalKNDiperoleh dengan totalSKSDiperoleh.
- B a r i s 2 1 - 2 7 : m e m b u a t m e t h o d d e n g a n n a m a
SKSYangDiperolehSemesterBaru(), yang berguna untuk menghitung
berapa SKS yang diperoleh untuk semester berikutnya. Dengan kondisi,
jika IP kurang dari atau sama dengan 2,5, SKS semester ini 18. Jika IP
antara 2,5 - 3, SKS semester ini 21. Dan jika IP lebih besar dari atau sama
dengan 3, SKS semester ini 24.
21
22
23
24
25
26
27
28
publicintSKSYangDiperolehSemesterBaru(foatIPSemesterIni)
{
if (IPSemesterIni <= 2.5) { JumlahSKSSemesterIni = 18; }
else if ((IPSemesterIni > 2.5) && (IPSemesterIni < 3)) {
JumlahSKSSemesterIni = 21; }
else if (IPSemesterIni >= 3) { JumlahSKSSemesterIni = 24; }
return JumlahSKSSemesterIni;
}
}
Catatan :
Untuk membuat class turunan, bentuk umumnya adalah:•
class nama_class_turunan : nama_class_induk
Untuk menurunkan class pada C# tidak digunakan• extends melainkan
: (simbol titik dua).
Pada setiap class sebaiknya dibuat paling tidak satu konstruktor tanpa•
parameter. Hal ini berguna jika class tersebut akan diturunkan.
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 18/30
17
Object Oriented Programming (OOP)
7. Kemudian kita akan membuat class turunan dari class IPSemesterIni,
yaitu class SKSSemesterIni. Ketikkan kode berikut tepat di bawah class
IPSemesterIni.
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
// inherit dari class IPSemesterIni
public class SKSSemesterIni : IPSemesterIni
{
private int jumlahMataKuliah;
private int[] sksPerMataKuliah = new int[10];
private char[] nilaiPerMataKuliah = new char[10];
privatefoattotalSKSDiperoleh,totalKNDiperoleh;
private int i, nilaiDalamAngka, temp = 0;
// constructor
public SKSSemesterIni(int jumlahMataKuliah, int[]
sksPerMataKuliah, char[] nilaiPerMataKuliah)
{
this.jumlahMataKuliah = jumlahMataKuliah;
this.sksPerMataKuliah = sksPerMataKuliah;
this.nilaiPerMataKuliah = nilaiPerMataKuliah;
}
publicfoatHitungTotalKNDiperoleh()
{
for (i = 0; i < jumlahMataKuliah; i++)
{
switch (nilaiPerMataKuliah[i])
{
case ‘A’:
nilaiDalamAngka = 4;
break;
case ‘B’:
nilaiDalamAngka = 3;
break;
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 19/30
18
E-trik Visual C# 2005
Keterangan Program:
- Baris 2: membuat class dengan nama SKSSemesterIni, yang diturunkan
dari class IPSemesterIni.
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
case ‘C’:
nilaiDalamAngka = 2;
break;
case ‘D’:
nilaiDalamAngka = 1;
break;
case ‘E’:
nilaiDalamAngka = 0;
break;
default:
nilaiDalamAngka = 0;
break;
}
temp = sksPerMataKuliah[i] * nilaiDalamAngka;
totalKNDiperoleh = totalKNDiperoleh + temp;
}
return totalKNDiperoleh;
}
publicfoatHitungTotalSKSDiperoleh()
{
for (i = 0; i < jumlahMataKuliah; i++)
{
totalSKSDiperoleh += sksPerMataKuliah[i];
}
return totalSKSDiperoleh;
}
}
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 20/30
19
Object Oriented Programming (OOP)
- Baris 10-15: membuat konstruktor.
- Baris 16-45: membuat method dengan nama HitungTotalKNDiperoleh() ,
yang berguna untuk menghitung berapa total KN (Komulatif Nilai)
yang diperoleh dengan rumus sksPerMataKuliah dikali dengannilaiDalamAngka. nilaiDalamAngka, diperoleh dari statement switch,
yang bertugas untuk merubah nilai dari bentuk Huruf ke bentuk Angka.
- Baris 46-53: membuat method dengan nama HitungTotalSKSDiperoleh(),
yang berguna untuk menjumlahkan SKS masing-masing mata
kuliah (sksPerMataKuliah), lalu hasilnya ditampung di variabel
totalSKSDiperoleh.
8. Sampai disini kita telah selesai membuat class sendiri yang menerapkankonsep OOP. Selanjutnya kita tinggal menggunakan class-class tersebut.
Sekarang kembali ke Form1.
9. Klik ganda pada TextBox txtJumlahMatKul, lalu ketikan kode yang
berwarna merah berikut ini.
Keterangan Program:- Baris kode ini berguna untuk membatasi input hanya boleh antara 1-10.
- Baris 3: periksa apakah text yang diinput pada TextBox txtJumlahMatKul,
lebih besar dari 10.
- Baris 4: jika benar, isi TextBox txtJumlahMatKul dengan angka 10.
- Baris 5: jika salah, periksa lagi apakah text yang diinput pada TextBox
txtJumlahMatKul, lebih kecil dari atau sama dengan 0.
- Baris 6: jika benar, isi TextBox txtJumlahMatKul dengan angka 1.
1
2
3
4
5
6
7
private void txtJumlahMatKul_TextChanged(object sender,
EventArgs e)
{
if (int.Parse(txtJumlahMatKul.Text) > 10)
txtJumlahMatKul.Text = “10”;
else if (int.Parse(txtJumlahMatKul.Text) <= 0)
txtJumlahMatKul.Text = “1”;
}
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 21/30
20
E-trik Visual C# 2005
10. Lalu, klik ganda pada Button cmdOke, lalu ketikan kode yang berwarna
merah berikut ini.
Keterangan Program:- Baris3:menampilkanGroupBoxgbDataMatKul.
- Baris 4-8: periksa apakah text yang diinput pada TextBox txtJumlahMatKul,
sama dengan angka 1. Jika benar, maka ubah status Button cmdNext
menjadi tidak bisa ditekan (disable). Dan ubah status Button cmdHitung
menjadi bisa ditekan (enable).
- Baris 9: isi TextBox lblNoMatKul, dengan string angka 1.
- Baris 10: isi variabelnoMatKul
, dengan integer angka 2.- Baris 11 dan 12: disable TextBox txtJumlahMatKul dan Button
cmdOke.
11. Klik ganda TextBox txtSKSPerMataKuliah, lalu ketikan kode ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
private void cmdOke_Click(object sender, EventArgs e)
{
gbDataMatKul.Visible = true;
if (int.Parse(txtJumlahMatKul.Text) == 1)
{
cmdNext.Enabled = false;
cmdHitung.Enabled = true;
}
lblNoMatKul.Text = “1”;
noMatKul = 2;
txtJumlahMatKul.Enabled = false;
cmdOke.Enabled = false;
}
1
2
private void txtJumlahMatKul_TextChanged(object sender,
EventArgs e)
{
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 22/30
21
Object Oriented Programming (OOP)
Keterangan Program:
- Baris 3: periksa apakah text yang diinput pada TextBox txtJumlahMatKul,
sama dengan kosong, A.K.A belum ada yang diinput.
- Baris 4: jika benar, disable Button cmdNext.- Baris 5-6: jika salah, enable Button cmdNext.
12. Langkah berikutnya, klik ganda Button cmdNext, lalu ketikan kode ini.
3
4
5
6
7
if (txtSKSPerMataKuliah.Text == “”)
cmdNext.Enabled = false;
else
cmdNext.Enabled = true;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void cmdNext_Click(object sender, EventArgs e)
{
if (indexArray < int.Parse(txtJumlahMatKul.Text))
{
if (indexArray < int.Parse(txtJumlahMatKul.Text) - 1)
{
lblNoMatKul.Text = Convert.ToString(noMatKul);
noMatKul++;
}
else
{
txtSKSPerMataKuliah.Enabled = false;
comboNilaiPerMataKuliah.Enabled = false;
cmdNext.Enabled = false;
cmdHitung.Enabled = true;
}
sksPerMataKuliah[indexArray] = int.
Parse(txtSKSPerMataKuliah.Text);
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 23/30
22
E-trik Visual C# 2005
Keterangan Program:
- Baris 3: periksa apakah isi variabel indexArray lebih kecil dari isi TextBoxtxtJumlahMatKul.
- Baris 5: jika benar, periksa lagi apakah isi variabel indexArray lebih
kecil dari isi TextBox txtJumlahMatKul kurang 1.
- Baris 7-8: jika benar, isi Label lblNoMatKul dengan isi dari variabel
noMatKul. Lalu tambah isi variabel noMatKul, sebanyak 1 poin.
- Baris 12-15: jika salah, disable TextBox txtSKSPerMataKuliah,
ComboBox comboNilaiPerMataKuliah.Enabled, dan Button cmdNext.
Lalu enable cmdHitung.- Baris 17: isi array sksPerMataKuliah, dengan isi teks dari TextBox
txtSKSPerMataKuliah . Untuk posisi indexnya ditentukan oleh nilai
variabel indexArray.
- Baris 18: isi array nilaiPerMataKuliah, dengan isi teks dari ComboBox
comboNilaiPerMataKuliah. Untuk posisi indexnya juga ditentukan oleh
nilai variabel indexArray.
- Baris 19: tambah isi variabel indexArray, sebanyak 1 poin.
- Baris 21 dan 22: kosongkan TextBox txtSKSPerMataKuliah danfokus atau pindahkan posisi kursor ke TextBox txtSKSPerMataKuliah
tersebut.
- Baris 23: ubah posisi teks ComboBox comboNilaiPerMataKuliah, ke
teks huruf A.
13. Selanjutnya, klik ganda pada Button cmdHitung, lalu ketikan kode yang
berwarna merah berikut ini.
18
19
20
21
22
23
24
nilaiPerMataKuliah[indexArray] = char.
Parse(comboNilaiPerMataKuliah.Text);
indexArray++;
}
txtSKSPerMataKuliah.Text = “”;
txtSKSPerMataKuliah.Focus();
comboNilaiPerMataKuliah.Text = “A”;
}
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 24/30
23
Object Oriented Programming (OOP)
Keterangan Program:- Baris3:tampilkanGroupBoxgbHasilHitung.
- Baris 4: disable Button cmdHitung.
- Baris 5: ambil isi teks TextBox txtJumlahMatKul, lalu simpan ke dalam
variabel jumlahMatKul.
- Baris 6: membuat objek baru dari class SKSSemesterIni dengan nama
objHitungSKS.
- Baris 7: menghitung total KN dengan menggunakan method
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void cmdHitung_Click(object sender, EventArgs e)
{
gbHasilHitung.Visible = true;
cmdHitung.Enabled = false;
int jumlahMatKul = int.Parse(txtJumlahMatKul.Text);
SKSSemesterIni objHitungSKS = new SKSSemesterIni(jumlahM
atKul,sksPerMataKuliah,nilaiPerMataKuliah);
foat totalKNDiperoleh = objHitungSKS.
HitungTotalKNDiperoleh();
foat totalSKSDiperoleh = objHitungSKS.
HitungTotalSKSDiperoleh();
foatIPSemesterIni=objHitungSKS.HitungIPYangDiperoleh(tota
lSKSDiperoleh, totalKNDiperoleh);
txtIP.Text = IPSemesterIni.ToString();
int SKSSemesterIni = objHitungSKS.SKSYangDiperolehSemeste
rBaru(IPSemesterIni);
txtSKSSemesterIni.Text = SKSSemesterIni.ToString();
foatSKSYangHarusDibayar=objHitungSKS.HitungSKSYangHa
rusDibayar(SKSSemesterIni);txtTotalSKSYangHarusDiBayar.Text = SKSYangHarusDibayar.
ToString() + “,-”;
foathargaPerSKS=objHitungSKS.GetHargaPerSKS();
txtHargaPerSKS.Text = hargaPerSKS.ToString() + “,-”;
}
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 25/30
24
E-trik Visual C# 2005
HitungTotalKNDiperoleh(), lalu simpan hasilnya ke variabel
totalKNDiperoleh.
- Baris 8: menghitung total SKS yang diperoleh dengan menggunakan
method HitungTotalSKSDiperoleh(), lalu simpan hasilnya ke variabeltotalSKSDiperoleh.
- Baris 9: menghitung IP semester ini dengan menggunakan method
HitungIPYangDiperoleh() , lalu simpan hasilnya ke variabel
IPSemesterIni.
- Baris 10: menampilkan isi variabel IPSemesterIni melalui TextBox
txtIP.
- Baris 11: menghitung SKS yang diperoleh untuk semester baru berdasarkan
besar IP dengan menggunakan methodSKSYangDiperolehSemesterBaru(),lalu simpan hasilnya ke variabel SKSSemesterIni.
- Baris 12: menampilkan isi variabel SKSSemesterIni melalui TextBox
txtSKSSemesterIni.
- Baris 13: menghitung SKS yang harus dibayar dengan menggunakan
method HitungSKSYangHarusDibayar(), lalu simpan hasilnya ke
variabel SKSYangHarusDibayar.
- Baris 14: menampilkan isi variabel SKSYangHarusDibayar melalui
TextBox txtTotalSKSYangHarusDiBayar.- Baris 15: mengambil isi variabel hargaPerSKS milik class
PembayaranSKS dengan menggunakan method GetHargaPerSKS(),
lalu simpan hasilnya ke variabel lokal hargaPerSKS.
- Baris 16: menampilkan isi variabel hargaPerSKS melalui TextBox
txtHargaPerSKS.
14. Selanjutnya, klik ganda pada Button cmdKeluar, lalu ketikan kode yang
berwarna merah berikut ini, untuk keluar dari aplikasi.
15. Setelah itu tekan tombol F6, untuk melakukan Build Solution. Jika ada
1
2
3
4
private void cmdKeluar_Click(object sender, EventArgs e)
{
this.Close();
}
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 26/30
25
Object Oriented Programming (OOP)
error , coba Anda teliti lagi apakah ada kode yang terlewat atau salah dalam
pengetikannya. Jika tidak ada error , tekan tombol F5. Maka program akan
dijalankan.
Berikutnya kita akan melakukan testing atau ujicoba program.
Langkah-langkah melakukan ujicoba program adalah sebagai berikut:
1. Setelah program dijalankan, isi Jumlah Mata Kuliah dengan angka 2,
lalu tekan Oke.
2. AkanmunculGroupBoxData Mata Kuliah. Isi SKS dengan angka 4,
lalu pilih Nilai A. Lalu tekan Next.
3. Isi SKS dengan angka 2, lalu pilih Nilai B. Lalu tekan Next.
4. Tekan tombol Hitung,makaakanmunculGroupBoxHasil Penghitungan
yang berisikan Indeks Prestasi (IP), SKS Semester Ini, Harga Per SKS,
dan Total SKS Yang Harus Dibayar.
Gambar 6 Tampilan Running Program
Sampai disini kita telah berhasil membuat program yang menerapkan konsep
OOP. Selanjutnya, kita akan menambahkan satu buah class lagi untuk lebih
memahami apa itu Polymorphisme.
Langkah-langkahnya adalah berikut ini:
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 27/30
26
E-trik Visual C# 2005
1. Buka kembali class PembayaranSKS, ketikkan kode berikut di bawah
class SKSSemesterIni.
Keterangan Program:
- Baris 3: membuat class turunan dari class PembayaranSKS, dengan nama
class UbahHargaSKS.
- Baris 5-6: membuat konstruktor.
- Baris 7: membuat method dengan nama HitungSKSYangHarusDibayar().
Kalau kita perhatikan nama method tersebut sama dengan nama method
yang ada pada class PembayaranSKS, hanya saja parameter yang
digunakan berbeda. Hal seperti ini disebut dengan istilah Method
Overloading.
- Baris 9: mengisi variabel hargaPerSKS milik class induk (class
PembayaranSKS) dengan isi dari variabel lokal hargaPerSKS.
1
2
3
4
5
6
7
8
9
10
11
12
13
// membuat turunan dari class PembayaranSKS
// untuk melihat penerapan ciri Polymorphism
public class UbahHargaSKS : PembayaranSKS
{
public UbahHargaSKS()
{ }
public foat HitungSKSYangHarusDibayar(int
jumlahSKSYangDiperoleh,foathargaPerSKS)
{
base.hargaPerSKS = hargaPerSKS;
foathasil=jumlahSKSYangDiperoleh*hargaPerSKS;
return hasil;
}
}
Catatan :
Untuk mengakses variabel milik class induk pada C# tidak digunakan•
perintah super melainkan base.
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 28/30
27
Object Oriented Programming (OOP)
2. Setelah itu, klik ganda pada Button cmdHitung. Lalu hapus kode yang
berwana merah.
3. Lalu ganti kode tersebut dengan kode berikut ini.
1
2
3
4
5
6
7
8
9
private void cmdHitung_Click(object sender, EventArgs e)
{
.
.
.
foatSKSYangHarusDibayar=objHitungSKS.HitungSKSYangHa
rusDibayar(SKSSemesterIni);
txtTotalSKSYangHarusDiBayar.Text = SKSYangHarusDibayar.
ToString() + “,-”;
foathargaPerSKS=objHitungSKS.GetHargaPerSKS();
txtHargaPerSKS.Text = hargaPerSKS.ToString() + “,-”;
}
1
2
3
4
5
6
7
8
9
10
11
private void cmdHitung_Click(object sender, EventArgs e)
{
.
.
.
UbahHargaSKS objUbahHargaSKS = new UbahHargaSKS();
foatSKSYangHarusDibayar=objUbahHargaSKS.HitungSKSYa
ngHarusDibayar(SKSSemesterIni, 45000);
txtTotalSKSYangHarusDiBayar.Text = SKSYangHarusDibayar.
ToString() + “,-”;
foathargaPerSKS=objUbahHargaSKS.GetHargaPerSKS();
txtHargaPerSKS.Text = hargaPerSKS.ToString() + “,-”;
}
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 29/30
28
E-trik Visual C# 2005
Keterangan Program:
- Baris 6: membuat objek baru dari class UbahHargaSKS dengan nama
objUbahHargaSKS.
- Baris 7: menghitung SKS yang harus dibayar dengan menggunakanmethod HitungSKSYangHarusDibayar() , lalu simpan hasilnya
ke variabel SKSYangHarusDibayar. Perbedaannya, method
HitungSKSYangHarusDibayar(), yang digunakan adalah milik class
UbahHargaSKS, dimana method tersebut memiliki dua parameter.
- Baris-baris yang lain, pada dasarnya sama hanya saja method yang
digunakan diakses dari objek yang berbeda yaitu, objUbahHargaSKS.
Sekarang coba jalankan lagi programnya, lakukan langkah-langkah yang
sama dengan ujicoba sebelumnya. Lalu apakah hasilnya ?
Hasil yang diperoleh hampir sama dengan yang sebelumnya, perbedaannya
hanya pada Harga Per SKS,dan Total SKS Yang Harus Dibayar.
Gambar 7 Tampilan Running Program
Lalu yang mana yang disebut polymorphisme ?
Coba kita perhatikan penggunaan nama method yang sama pada
class PembayaranSKS dan class UbahHargaSKS, yaitu method
HitungSKSYangHarusDibayar().
5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com
http://slidepdf.com/reader/full/02-object-oriented-programming-oop 30/30
29
Object Oriented Programming (OOP)
Pada saat kita menggunakan method tersebut, kenapa compiler bisa
“Memutuskan” method pada class UbahHargaSKS lah yang harus
digunakan, bukannya yang ada pada class PembayaranSKS ?
Jawabannya adalah, karena kita memanggil method tersebut dengan
menggunakan parameter yang cocok dengan yang ada pada method class
UbahHargaSKS.
Perhatikan yang berikut ini, kode yang berwarna merah adalah parameter-
nya.
Method milik class•PembayaranSKS
HitungSKSYangHarusDibayar(SKSSemesterIni);
Method milik class• UbahHargaSKS
HitungSKSYangHarusDibayar(SKSSemesterIni, 45000);
Kemampuan untuk “Memutuskan” tersebutlah yang disebut dengan
Polymorphisme.
Top Related