02-object oriented programming (oop)

30

Upload: elina-putri

Post on 19-Jul-2015

180 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 02-Object Oriented Programming (OOP)

5/17/2018 02-Object Oriented Programming (OOP) - slidepdf.com

http://slidepdf.com/reader/full/02-object-oriented-programming-oop 1/30

Page 2: 02-Object Oriented Programming (OOP)

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

Page 3: 02-Object Oriented Programming (OOP)

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

Page 4: 02-Object Oriented Programming (OOP)

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;

}

.

.

.

Page 5: 02-Object Oriented Programming (OOP)

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.

Page 6: 02-Object Oriented Programming (OOP)

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();

Page 7: 02-Object Oriented Programming (OOP)

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.

Page 8: 02-Object Oriented Programming (OOP)

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

Page 9: 02-Object Oriented Programming (OOP)

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

Page 10: 02-Object Oriented Programming (OOP)

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

Page 11: 02-Object Oriented Programming (OOP)

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

Page 12: 02-Object Oriented Programming (OOP)

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.

Page 13: 02-Object Oriented Programming (OOP)

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();

}

Page 14: 02-Object Oriented Programming (OOP)

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

Page 15: 02-Object Oriented Programming (OOP)

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

Page 16: 02-Object Oriented Programming (OOP)

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;

}

Page 17: 02-Object Oriented Programming (OOP)

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.

Page 18: 02-Object Oriented Programming (OOP)

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;

Page 19: 02-Object Oriented Programming (OOP)

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;

}

}

Page 20: 02-Object Oriented Programming (OOP)

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”;

}

Page 21: 02-Object Oriented Programming (OOP)

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)

{

Page 22: 02-Object Oriented Programming (OOP)

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);

Page 23: 02-Object Oriented Programming (OOP)

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”;

}

Page 24: 02-Object Oriented Programming (OOP)

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() + “,-”;

}

Page 25: 02-Object Oriented Programming (OOP)

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();

}

Page 26: 02-Object Oriented Programming (OOP)

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:

Page 27: 02-Object Oriented Programming (OOP)

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.

Page 28: 02-Object Oriented Programming (OOP)

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() + “,-”;

}

Page 29: 02-Object Oriented Programming (OOP)

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().

Page 30: 02-Object Oriented Programming (OOP)

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.