Realisasi Prosedur dan Fungsi dalam Class

2008 | Direktorat Pembinaan SMK 531 int Titik::AmbilAbsis { return Absis; } int Titik::AmbilOrdinat { return Ordinat; } int mainint argc, char argv[] { Titik A; A.SetAbsis 4 ; A.SetOrdinat 6 ; cout Absis titik A = A.AmbilAbsis \n ; cout Ordinat titik A = A.AmbilOrdinat \n ; Titik B = A; cout Absis titik B = B ‐AmbilAbsis \n ; cout Ordinat titik B = B ‐AmbilOrdinat \n ; A.SetAbsis 2 ; A.SetOrdinat 3 ; Titik C = A; cout Absis titik C = C.AmbilAbsis \n ; cout Ordinat titik C = C.AmbilOrdinat \n ; system PAUSE ; return EXIT_SUCCESS; } Program di atas merupakan program untuk mengolah tentang titik dalam suatu bidang 2 dimensi. Sehingga mempunyai variable x dan y. Untuk dapat mengolah data-data absis serta ordinat dalam bidang 2 dimensi tersebut diperlukan prosedur untuk set absis dan prosedur untuk set ordinat. Hal itu dapat dilihat dalam prosedur SetAbsisint x dan prosedur SetOrdinatint y; Sedangkan untuk mengambil data baik absis maupun ordinatnya menggunakan fungsi AmbilAbsis dan fungsi AmbilOrdinat guna pengolahan lebih lanjut, misal untuk mencari jarak antara dua titik dalam suatu bidang 2 dimensi. Dalam program di atas juga dimunculkan cara pemanggilan obyek dengan berbagai cara : Titik A; pemanggilan obyek secara biasa Titik B = A; pemanggilan obyek secara pointer Titik C = A; pemanggilan obyek secara reference 532 Direktorat Pembinaan SMK | 2008 Pemanggilan anggota dari obyek juga ditunjukkan contoh pada pemanggilan biasa dan reference berbeda dengan apabila pemanggilan obyek secara pointer. Lebih jelasnya seperti berikut: Titik B = A; untuk pemanggilan fungsi atau prosedur anggota obyek tersebut tidak dapat menggunakan . titik tetapi harus menggunakan - panah. Seperti program di atas untuk memanggil fungsi AmbilAbsis, maka perintahnya B-AmbilAbsis. Begitu pula untuk prosedur SetAbsisx, maka perintahnya B-SetAbsisx. Contoh lain program untuk menentukan kelulusan siswa. Program 16.6 include cstdlib include iostream using namespace std; class Siswa { char Nama[ 25 ]; char NIS[ 12 ]; double Nilai; public: void InpNama; void InpNIS; void InpNilai; void output; char cekdouble n; }; void Siswa::InpNama { cout Nama Siswa = ; cin.getlineNama, sizeofNama; } void Siswa::InpNIS { cout NIS Siswa = ; cin.getlineNIS, sizeofNIS; } void Siswa::InpNilai 2008 | Direktorat Pembinaan SMK 533 { cout Nilai Siswa = ; cinNilai; } void Siswa::output { coutendl Hasil Ujian Siswa endl; cout Nama Siswa = Namaendl; cout NIS Siswa = NISendl; cout Keterangan = cekNilaiendl; } char Siswa::cekdouble n { if n= 75 return Lulus ; else return Tak Lulus ; } int mainint argc, char argv[] { Siswa Data; cout Masukkan Data Siswa endl; Data.InpNama; Data.InpNIS; Data.InpNilai; Data.output; system PAUSE ; return EXIT_SUCCESS; } Dalam program di atas ada satu fungsi yang mengembalikan nilai string yaitu fungsi cek. Fungsi ini akan mengembalikan keterangan sebagai status siswa “Lulus” ataupun “Tak Lulus”, sehingga harus mengembalikan nilai string. Keluaran program tersebut dapat dilihat seperti di bawah ini: Masukkan Data Siswa Nama Siswa = aku NIS Siswa = 1234 Nilai Siswa = 75 Hasil Ujian Siswa Nama Siswa = aku NIS Siswa = 1234 Keterangan = Lulus 534 Direktorat Pembinaan SMK | 2008

16.3. Class Private , Class Public, dan Class Protected

Penggunaan private maupun public biasanya digunakan bersama- sama atau dikombinasikan. Pada dasarnya suatu class apabila tidak dituliskan secara default adalah private jadi pada prinsipnya class tidak dapat diakses oleh class lain dan hanya dapat diakses oleh class itu sendiri. Untuk lebih memahami kita kembali ke contoh aplikasi class yang pertama kali. class Titik { int Absis; int Ordinat; }; Variabel Absis dan Ordinat merupakan variabel private walaupun tidak ditulis secara eksplisit. Apabila ditulispun hasilnya sama saja, karena secara default komponen dalam suatu class adalah private. Dalam hal ini variabel Absis dan Ordinat tidak bisa diakses secara langsung. Sebagai gambaran dilihat contoh di bawah ini: Program 16.7 include cstdlib include iostream using namespace std; class Titik { int X; int Y; }; int mainint argc, char argv[] { Titik A; A.X = 4 ; A.Y = 6 ; cout Absis titik A = A. X \n ; cout Ordinat titik A = A.Y \n ; system PAUSE ; return EXIT_SUCCESS; } Program di atas apabila di compile akan terjadi kesalahan dianggap kelas Titik tidak mempunyai member bernama X dan Y. Jadi X dan Y tidak dianggap sebagai member hal ini karena private. Lain halnya jika diganti menjadi public seperti berikut: 2008 | Direktorat Pembinaan SMK 535 Program 16.8 include cstdlib include iostream using namespace std; class Titik { public: int X; int Y; }; int mainint argc, char argv[] { Titik A; A.X = 4 ; A.Y = 6 ; cout Absis titik A = A. X \n ; cout Ordinat titik A = A.Y \n ; system PAUSE ; return EXIT_SUCCESS; } Program di atas jikalau dijalankan tidak akan terjadi kesalahan, karena variabel X dan Y public jadi tidak ada penyembunyian informasi information hiding. Keluaran dari program tersebut seperti berikut: Absis titik A = 4 Ordinat titik A = 6 Tapi kalau bisa diubah dari luar maka data itu terlalu berisiko ibarat sebuah rumah bisa dimasuki orang sekehendak hati, hal ini tidak boleh terjadi. Oleh karena itu variabel tersebut harus tetap private tetapi diberi jalan masuk apabila diperlukan untuk diganti atau diubah nilainya. Program secara lengkapnya menjadi include cstdlib Program 16.9 include iostream using namespace std; class Titik {