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