Realisasi Prosedur dan Fungsi dalam Class
16.2. Realisasi Prosedur dan Fungsi dalam Class
Sebuah class telah disinggung di sebuah class dengan class lainnya, uraian sebelumnya bahwa prosedur dan merupakan nyawanya class maupun fungsi (method) merupakan tersebut karena pengaturan proses satu kesatuan dengan datanya, dari suatu class melalui komponen sering disebut dengan encapsulated.
ini. Untuk lebih jelasnya lihat contoh Prosedur dan fungsi ini di bawah ini: merupakan dasar untuk komunikasi
Program 16.5 #include <cstdlib> #include <iostream>
using namespace std;
class Titik { int Absis; int Ordinat;
public: void SetAbsis(int x); void SetOrdinat(int y); int AmbilAbsis(); int AmbilOrdinat(); };
void Titik::SetAbsis(int x) { Absis = x; }
void Titik::SetOrdinat(int y) { Ordinat = y; }
Direktorat Pembinaan SMK | 2008
Inheritance, Polymorphism,Overloading dan Friends Bahasa Pemrorgraman
int Titik::AmbilAbsis() { return Absis; }
int Titik::AmbilOrdinat() { return Ordinat; }
int main(int 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 dan fungsi AmbilOrdinat() guna program untuk mengolah tentang titik
pengolahan lebih lanjut, misal untuk dalam suatu bidang 2 dimensi. mencari jarak antara dua titik dalam Sehingga mempunyai variable x dan
suatu bidang 2 dimensi. Dalam y. Untuk dapat mengolah data-data program di atas juga dimunculkan absis serta ordinat dalam bidang 2 cara pemanggilan obyek dengan dimensi tersebut diperlukan prosedur
berbagai cara :
untuk set absis dan prosedur untuk set ordinat. Hal itu dapat dilihat dalam
pemanggilan obyek prosedur SetAbsis(int x) dan secara biasa prosedur SetOrdinat(int y); Titik* B = &A; pemanggilan obyek Sedangkan untuk mengambil data secara pointer baik absis maupun ordinatnya Titik& C = A; pemanggilan obyek menggunakan fungsi AmbilAbsis() secara reference
Titik A;
2008 | Direktorat Pembinaan SMK
Bahasa Pemrograman Inheritance, Polymorphism,Overloading dan Friends
menggunakan (.) titik tetapi harus Pemanggilan anggota dari obyek
menggunakan (->) panah. Seperti juga ditunjukkan contoh pada program di atas untuk memanggil pemanggilan biasa dan reference fungsi AmbilAbsis(), maka berbeda dengan apabila perintahnya B->AmbilAbsis(). Begitu pemanggilan obyek secara pointer. pula untuk prosedur SetAbsis(x), Lebih jelasnya seperti berikut:
maka perintahnya B->SetAbsis(x).
Titik * B = &A; untuk Contoh lain program untuk pemanggilan fungsi atau prosedur menentukan kelulusan siswa. anggota obyek tersebut tidak dapat
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* cek(double n); };
void Siswa::InpNama() { cout<< "Nama Siswa = " ; cin.getline(Nama, sizeof(Nama)); }
void Siswa::InpNIS() { cout<< "NIS Siswa = " ; cin.getline(NIS, sizeof(NIS)); }
void Siswa::InpNilai() 532
Direktorat Pembinaan SMK | 2008
Inheritance, Polymorphism,Overloading dan Friends Bahasa Pemrorgraman
{ cout<< "Nilai Siswa = " ; cin>>Nilai; }
void Siswa::output() { cout<<endl<< "Hasil Ujian Siswa" <<endl; cout<< "Nama Siswa = " <<Nama<<endl; cout<< "NIS Siswa = " <<NIS<<endl; cout<< "Keterangan =" <<cek(Nilai)<<endl; }
char* Siswa::cek(double n) {
if (n>= 75 ) return "Lulus" ;
else
return "Tak Lulus" ; }
int main(int 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 Masukkan Data Siswa fungsi yang mengembalikan nilai Nama Siswa = aku string yaitu fungsi cek. Fungsi ini NIS Siswa = 1234 akan mengembalikan keterangan Nilai Siswa = 75 sebagai status siswa “Lulus” ataupun
“Tak Lulus”, sehingga harus Hasil Ujian Siswa mengembalikan nilai string. Keluaran
Nama Siswa = aku
program tersebut dapat dilihat seperti NIS Siswa = 1234 di bawah ini:
Keterangan = Lulus
2008 | Direktorat Pembinaan SMK
Bahasa Pemrograman Inheritance, Polymorphism,Overloading dan Friends