Selasa, 28 Oktober 2008

FUNGSI FRIEND

FUNGSI FRIEND

Tujuan

- Memahami kegunaan fungsi friend

- Mampu membuat program aplikasi dengan menggunakan fungsi friend

Teori Singkat

Fungsi friend adalah fungsi anggota kelas yang dapat mengakses anggota kelas. Fungsi friend yang dapat mengakses anggota kelas yang bersifat provate atau protected. Memberi nilai awal dari sebuah obyek. Cara penulian friend pada class adalah sebagai berikut :

class A

{ private:

------------

------------

protected:

------------

------------

public:

A();

~A();

Void nama_fungsi();

------------

};

//program utama

void main()

{ A variabel_obyek; }

Definisi konstruktor

A::A(){……….}

Definisi destruktor

A:: ~ A(){……….}

Void nama_fungsi()

{definisi fungsi}

Contoh 1

//friend mengakses kelas

#include

#include

#include

class mahasiswa

{ private :

Long no_mhs;

Char nama[30];

Char jurusan[20];

Public:

Mahasiswa();

Void inisial(long no_mhs,char *nama, char *jurusan);

Friend void tampilkan(mahasiswa x); //fungsi friend

};

//program utama

void main()

{

Mahasiswa x;

Inisial(04025521,”Tri Kusuma”,”Manajemen Informatika”);

Tampilkan();

}

//konstruktor

Mahasiswa::mahasiswa()

{

No_mhs=0;

Strcpy(nama,””);

Strcpy(jurusan,””);

}

//fungsi anggota

Mahasiswa::inisial(long no_mhs,char *nama,char *jurusan)

{

Mahasiswa::no_mhs=no_mhs;

Strcpy(mahasiswa::nama,nama);

Strcpy(mahasiswa::jurusan,jurusan);

}

//definisi friend

Void tampilkan(mahasiswa x)

{

Cout<< “ N I M :”<<

Cout<<” Nama :”<<

Cout<<” Jurusan :”<<

};

Contoh 2

//fungsi friend untuk mengakses kelas

#include

#include

#include

//definisi kelas

class PemainPria;

class PemainWanita

{

private:

//data anggota

Char nama[25];

Char Negara[20];

Public:

//konstruktor

Pemainwanita(char *nama, char *negara);

Friend void info_pem_campuran(PemainWanita a,PemainPria b);

};

Class PemainPria

{

Private:

//data anggota

Char nama[25];

Char Negara[20];

Public:

//konstruktor

PemainPria(char *nama, char *negara);

Friend void info_pem_campuran(PemainWanita a, PemainPria b);

};

//Program utama

Void main()

{

Clrscr();

pemainWanita x(“Monica”,”Yugoslavia”);

PemainPria y(“Suharyadi”,”Indonesia”);

Info_pem_campuran();

}

//definisi konstruktor

PemainWanita::PemainWanita(char *nama, char *negara)

{

Strcpy(PemainWanita::nama.nama);

Strcpy(PemainWanita::Negara,negara);

}

PemainPria::PemainPria(char *nama, char *negara)

{

Strcpy(PemainPria::nama.nama);

Strcpy(PemainPria::Negara.negara);

}

//definisi fungsi friend

Void info_pem_camouran(PemainWanita a, PemainPria b)

{

Cout << “Pasangan Pemain CAmpuran”<

Cout << “ ”<<<”>

Cout << “ ”<<<”>

}

Contoh 3

//fungsi friend untuk mengakses dua kelas

#include

#include

#include

//definisi kelas

class PemainPria;

class PemainWanita

{

Private :

//data anggota

Char nama[25];

Char Negara[20];

Public :

//konstruktor

PemainWanita(char *nama, char *negara);

Coid info_pem_cadangan(const PemainPria &a);

};

Class PemainPria

{

Private :

//data anggota

Char nama[25];

Char Negara[20];

Friend void PemainWanita::Info_Pem_Cadangan(const PemainPria &b);

Public:

//konstruktor

PemainPria(char *nama, char *negara);

};

]

//program utama

Void main()

{

Clrscr()

PemainWanita p(“Monica”,”Yugoslavia”);

PemainPria q(“Suharyadi”,”Indonesia”);

Info_Pem_Cadangan(q);

}

//definisi konstruktor

PemainWanita::PemainWanita(char *nama, char *negara);

{

Strcpy(PemainWanita::nama.nama);

Strcpy(PemainWanita::Negara.negara);

}

PemainPria::PemainPria(char *nama, char *negara)

{

Strcpy(PemainPria::nama.nama);

Strcpy(PemainPria::Negara.negara);

}

//definisi fungsi friend

Void PemainWanita::Info_Pem_Campuran(const PemainPria &a)

{

Cout<<”Pasangan Pemain Campuran”<

Cout<<” “<<<”(“<<<”)”<

Cout<<” “<<<”(“<<<”)”<

}

Tugas Laporan

  1. Buatlah program mirip dengan contoh 1 dengan menggunakan deklarasi kelas.

Class Buku

{

Private :

Char pengarang[20];

Char judul[35];

Int jumlah;

Public:

Buku();

Void inisial(char *pengarang, char *judul, int jumlah);

Friend void tampilkan(buku novel);//fungsi friend

};

Tidak ada komentar: