Friend
Adalah fungsi bukan anggota kelas yg dapat mengakses anggota kelas. Secara umum friend berguna jika terdapat suatu operasi yg hendak mengakses data dari 2 kelas yg tidak berkaitan Friend dapat digunakan menampilkan isi object dengan cout
class Mahasiswa {private: long no_induk; char nama[25]; char jurusan[25]; public: Mahasiswa();//konstruktor void inisialisasi(long no_induk, char *nama, char *jurusan); friend void tampil_data(Mahasiswa mhs);}; int main() {Mahasiswa mhs;//mendef anggota class mhs mhs.inisialisasi(12345,"Ali Baba", "Teknik Informatika"); tampil_data(mhs); return 0;} // definisi fungsi anggota Mahasiswa::Mahasiswa() {no_induk= 0; strcpy(nama,""); strcpy(jurusan,""); }
void Mahasiswa::inisialisasi(long no_induk,char *nama, char *jurusan) {Mahasiswa::no_induk = no_induk; strcpy(Mahasiswa::nama, nama); strcpy(Mahasiswa::jurusan, jurusan); } //definisi fungsi friend void tampil_data(Mahasiswa mhs) {cout << "Nomor : " << mhs.no_induk << endl; cout << "N a m a : " << mhs.nama << endl; cout << "Jurusan: " << mhs.jurusan << endl; }
class Buku {private : char judul[20]; char pengarang[20]; int jumlah; public : void inisialisasi(char *Judul, char *Pengarang, int Jumlah) ; void info() ; friend void tampil(Buku lihat); } ; int main() {Buku novel ; // pendefinisian var novel sbg class Buku Buku lihat ; // pendefinisian friend novel.inisialisasi("Ramayana", "Narayan", 12); lihat.inisialisasi("Turbo C", "Borland", 10); novel.info(); tampil(lihat); return 0; }
void Buku::inisialisasi(char *Judul, char *Pengarang, int Jumlah) {strcpy(judul, Judul); strcpy(pengarang, Pengarang); jumlah = Jumlah; } void Buku::info() {cout << "Judul: " << judul << endl; cout << "Pengarang: " << pengarang << endl; cout << "Jumlah: " << jumlah << endl; } void tampil(Buku lihat) {cout << "Judul: " << lihat.judul << endl; cout << "Pengarang: " << lihat.pengarang << endl; cout << "Jumlah: " << lihat.jumlah << endl; }
Untuk mengakses 2 class class PemainPria; // Sebagai prototype class PemainWanita {private: char nama[25]; char negara[25]; public: PemainWanita(char *nama, char *negara); friend void info_campuran(PemainWanita x, PemainPria y); }; class PemainPria {private: char nama[25]; char negara[25]; public: PemainPria(char *nama, char *negara); friend void info_campuran(PemainWanita x, PemainPria y); };
void main() {PemainWanita p_wanita("monica seles", "yugo"); PemainPria p_pria("suhariadi", "indo"); info_campuran(p_wanita, p_pria); } //konstruktor PemainPria::PemainPria(char *nama, char *negara) {strcpy(PemainPria::nama, nama); strcpy(PemainPria::negara, negara); } PemainWanita::PemainWanita(char *nama, char *negara) {strcpy(PemainWanita::nama, nama); strcpy(PemainWanita::negara, negara); } void info_campuran(PemainWanita x, PemainPria y) {cout << "Pemain Ganda "<< endl; cout << x.nama<<" dari " << x.negara << endl; cout << y.nama<<" dari " << y.negara << endl; }
Operasi File Text dan Biner
Operasi Dasar Membuka atau mengaktifkan file Melaksanakan pemrosesan file Menutup file
Membuka file Menggunakan statement ofstream nama_file Fungsi ini digunakan untuk menangani operasi keluaran Dengan fungsi library #include
void main() {ofstream file_keluaran; file_keluaran.open("datacoba.txt") cout << "Sedang merekam...." << endl; file_keluaran <<"Ini data baris pertama... " << endl; file_keluaran <<"Ini data baris kedua..... " << endl; file_keluaran <<"Ini baris akhir " << endl; file_keluaran.close(); } Merekam data
Membaca data #include void main() { const int MAKS = 80; char temp[MAKS+1]; ifstream file_masukan; file_masukan.open("datacoba.txt"); while(file_masukan) {file_masukan.getline(temp, MAKS); cout << temp << endl; } file_masukan.close(); }
Atau #include void main() { const int MAKS = 80; char temp[MAKS+1]; ifstream file_masukan; file_masukan.open("datacoba.txt"); while(!file_masukan.eof()) {file_masukan.getline(temp, MAKS); cout << temp << endl; } file_masukan.close(); }
Menambahkan data Untuk menambahkan data yg sudah direkam, dilakukan dengan menambahkan statement Ios::app Seperti Ofstream file_keluaran(“datacoba.txt”, ios::app)
#include void main() {ofstream file_keluaran; file_keluaran.open("datacoba.txt", ios::app); cout << "Sedang merekam...." << endl; file_keluaran <<"Ini data baris ketiga... " << endl; file_keluaran <<"Ini data baris keempat..... " << endl; file_keluaran <<"Ini baris akhir " << endl; file_keluaran.close(); }
Ini data baris pertama... Ini data baris kedua..... Ini baris akhir Ini data baris ketiga... Ini data baris keempat..... Ini baris akhir