Pengantar 2. anggota. Fungsi Friend

dokumen-dokumen yang mirip
File & Stream. Kegunaan File : file : ini. dengan. iostream.h) suatu. stream, Jika. dapat menghubungkan. mendeklarasikan. kita.

FENOMENA ALAM DI DALAM DIMENSI PEMBUATAN PROGRAM DENGAN MENGGUNAKAN OBJECT ORIENTED PROGRAMMING

Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada file 3.

STRUKTUR DENGAN ARRAY DAN FUNCTION

//Kelas ini berisi data yang hendak disimpan ke dalam database

Input/Output with files

Penggunaan Private dan Public dalam C++

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

ELEMEN DASAR C++ C++ mempunyai cara untuk menyatakan karakter-karakter yang tidak mempunyai kode tombol (seperti karakter tombol) misalnya \n.

MENGAKSES ELEMEN STRUKTUR

SUB PROGRAM (FUNGSI)

Program struktur StrukturMhs.cpp #include <iostream.h> #include <conio.h> #include <string.h> struct Mhs { int nim; char nama[35]; char alamat[25]; };

MODUL MATA KULIAH PEMROGRAMAN KOMPUTER

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

Baca Tulis File. Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah:

OVERLOADING OPERATOR. Oleh: Rasim Ilkom - UPI

POINTER. Pemrograman Bahasa C++

12.Objek. S. Indrianii L, M.T

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

FILE & STREAM Bab FILE

Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013

PEMROGRAMAN BERORIENTASI OBJEK. Input / Output. Budhi Irawan, S.Si, M.T

Fungsi. Fungsi. Dasar Komputer & Pemrograman 1. dipecah Sub Program. Program. Dasar Komputer & Pemrograman TC22052 Kartika Firdausy - UAD

3. Elemen Dasar C++ S. Indriani S. L., M.T L.,

File I/O in C++ Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc

C V.S. C++ Oleh : Rasim

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

Class & Object 2. Imam Fahrur Rozi

REVIEW ARRAY. Institut Teknologi Sumatera

Obyektif : KONTROL ALUR PROGRAM

OPERATOR, PERULANGAN DAN SELEKSI KONDISI

PERTEMUAN VII FILE TEKS & FILE BINER

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-13 Arsip (File) 2

PERTEMUAN X. Gbr.1 Konsep program dibagi menjadi sejumlah modul. void main() { fungsi a();

MODUL V PERULANGAN. Perulangan digunakan untuk menjalankan satu atau lebih perintah secara berulang selama kondisi tertentu.

Object Oriented Programming (OOP)

BAB XII. CLASS. #include <iostream.h> #include <conio.h> #include <string.h> struct mahasiswa { char nim[8]; char nama[20]; int umur; };

5. Fungsi. S. Indrianii L, M.T

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

PERULANGAN (LOOP) PERNYATAAN WHILE

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

MODUL 1 Alur Seleksi dengan C++

LAMPIRAN PUSTAKA I/O C++

VARIABEL & TIPE DATA PEMROGRAMAN C++

UJIAN TENGAH SEMESTER KU1072/PENGENALAN TEKNOLOGI INFORMASI B SEM /2014

Perulangan, Percabangan, dan Studi Kasus

DASAR PEMOGRAMAN JAVA

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

int fungsi_2() { int main() { fungsi_1(); fungsi_2(); return 0;

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

STRUKUR KENDALI : PERCABANGAN

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

PERCABANGAN. Bentuk if Sederhana

C++ Mathematic Functions

Chapter 9 Operator Types dan Operator Overloading

Percabangan & Perulangan

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA April 1, 2010 BAB 8 REKURSIF

BAB VII. FUNCTION. A. Pengantar Function. #include <iostream.h> #include <conio.h> { clrscr(); // detail function

Teknik Pemrograman Terstruktur 1

: Algoritma dan Pemrograman II Modul Praktikum ke : 3

Fungsi : Dasar Fungsi

2 Class dan Object (1)

Untuk mengurangi pengulangan program yang sama agar program menjadi terstruktur, rapi dan lebih mudah dikembangkan.

MODUL ALGORITMA DAN PEMROGRAMAN. STMIK AMIKOM Yogyakarta. Rajif Agung Yunmar, S.Kom., M.Cs.

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

PERNYATAAN DAN KONDISI

Algoritma dan Struktur Data I 2014

Queue Priority Queue STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 6 : 7 Juli 2015

cout<<"masukkan nilai elemen["<<x<<"]= "; cin>> array[x];} min=array[0]; for (x=1;x<5;x++)

Function. Function adalah satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Format dari function :

BAB 3 CLASS DAN OBJECT. Tujuan:

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

Pewarisan Jamak Oleh : Agus Priyanto Priy, anto M.Kom M.K

BAB II VARIABEL DAN TIPE DATA

INHERITANCE. Oleh: Rasim ILKOM-FPMIPA-UPI

2 TIPE DATA DAN VARIABEL

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

A. TUJUAN PEMBELAJARAN. 1. Menerapkan konsep enkapsulasi pada class 2. Mendeklarasikan suatu constructor

PROCEDURE DAN FUNCTION

MODUL 7 FUNGSI A. Tujuan. B. Petunjuk. C. Dasar Teori

Algoritma dan Struktur Data Praktikum 3. Pointer

Contoh function 1 : Output : // function example The result is 8 #include <iostream.h>

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

Paradigma Pemrograman Berorientasi Objek

P3 Dasar Struktur Data TIF42/SIF42

Bab 8. Dasar-Dasar OOP

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

Selection / Pemilihan PEMILIHAN

ALGORITMA RINTA KRIDALUKMANA SISKOM UNDIP

Manage Sort STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 4 : 30 Juni 2015

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

Modul 3: Kendali program dan teknik. penyimpanan data

BAB X. Struct Dalam C++, kita dapat membuat sebuah tipe data baru. Maka penulisan variabel baru kita akan menjadi:

IF2281 Pemrograman Berorientasi Objek Program kecil Pelengkap Diktat. import java.io.*; import java.util.scanner; class IO {

Badiyanto, S.Kom., M.Kom. PBO java

Transkripsi:

FRIEND

Pengantar Friend merupakan kontradiktif Friend meruntuhkan konsep enkapsulasi Friend memungkinkan pihak luar class untuk mengakses anggota class, termasuk yang bersifat private Greg perry: jika class friend terlalu banyak, mungkin diperlukan untuk mengkombinasikan class-class menjadi sebuah class.

Pengantar 2 Fungsi friend adalah fungsi bukan anggota class yang dapat mengakses anggota class Fungsi ini dapat dipakai untuk mengakses anggota class baik proteksi maupun private. Pemanggilan fungsi friend melalui call by value anggota Fungsi Friend

Kriteria penggunaan atribut friend: Sedapat mungkin hindari penggunaan friend. Penggunaan friend di antara kelas menunjukkan perancangan kelas yang kurang baik. Jika kelas A menjadikan kelas B sebagai friend maka kemungkinan besar kelas A dan B seharusnya tidak dipisahkan Jika operasi yang dijalankan oleh sebuah fungsi friend mengubah status dari objek, operasi tersebut harus diimplementasikan sebagai fungsi anggota Gunakan friend untuk overloading pada operator tertentu.

Contoh Program Class mahasiswa{ private: long nim; char nama[35]; char jurusan[20]; public: mahasiswa(); void inisilisasi(long no, char *nama, char *jur); friend void tampil(mahasiswa mhs); ; Fungsi biasa Void main(){ mahasiswa mhs; mhs.inisialisasi(7363, joko, Pilkom ); tampilkan(mhs); Mahasiswa::mahasiswa(){ nim =0; strcpy(nama, ); strcpy(jurusan, ); Void mahasiswa::inisialisasi(long no, char *nama, char *jur) { nim=no; Tidak strcpy(mahasiswa::nama, diawali dg nama); strcpy(jurusan, nama jur); class Void tampil(mahsiswa mhs){ cout<< NIM : << mhs.nim << endl; cout<< Nama : << mhs.nama<<endl; cout<< Jurusan : << mhs.jurusan<<endl;

Fungsi untuk Lebih dari Satu Objek Class hasil_ujian{ private: long nim; float nilai; hasil_ujian :: hasil_ujian(long no, float hasil){ nim =no; nilai=hasil; public: hasil_ujian(long no, float hasil); friend float nilai terbesar( hasil_ujian a, hasil_ujian b, hasil_ujian c); ; Void nilai_terbesar(hasil_ujian a, hasil_ujian b, hasil_ujian c){ float maks=a.nilai; maks=(b.nilai>maks)? b.nilai : maks; maks=(c.nilai>maks)? C.nilai : maks; Void main(){ hasil_ujian amir(898,90.4); hasil_ujian endah(899,87.8); hasil_ujian joko(900,93.9); cout<< Nilai terbesar = << nilai_terbesar(amir, endah, joko) <<endl; return(maks);

Friend untuk Lebih dari Satu Class Class pemainteniswanita Class pemaintenispria Anggota Anggota Fungsi Info_pemain_gabungan() Fungsi Friend

ontoh Program Class pemaintenispria; Class pemainteniswanita{ private: char nama[35]; char asal[20]; public: pemainteniswanita(char *Nama, char *Asal); friend void info_campuran(pemainteniswanita x, pemaintenispria y); Class pemaintenispria{ private: char nama[35]; char asal[20]; public: pemaintenispria(char *Nama, char *Asal); friend void info_campuran(pemainteniswanita x, pemaintenis pria y); Void main(){ Pemainteniswanita wanita( Sales, Yugo ); Pemaintenispria pria( Sampras, AS ); Info_campuran(wanita, pria); pemainteniswanita(char *nama, char asal){ strcpy(nama, Nama); strcpy(asal, Asal); pemaintenispria(char *nama, char asal){ strcpy(nama, Nama); strcpy(asal, Asal); Void info_campuran(pemainteniswanita x, pemaintenispria y){ cout<<x.nama<< <<x.asal<<endl; cout<<y.nama<< <<y.asal<<endl;

Fungsi Anggota Friend Fungsi anggota class dapat berkedudukan sebagai fungsi friend Fungsi ini dapat mengakses anggota class yang mendeklarasikanya

Contoh Class pemainteniswanita{ private: char nama[35]; char asal[20]; public: pemainteniswanita(char *Nama, char *Asal); void info_campuran(conts pemaintenispria &y); Class pemaintenispria{ private: char nama[35]; char asal[20]; friend void pemainteniswanita::info_campuran(conts pemaintenispria &y); public: pemaintenispria(char *Nama, char *Asal);

CLASS FRIEND Suatu class dapat dijadikan friend class yang lain Class ini digunakan kalau ada dua class untuk mengakses bagian private

Contoh Class D3{ private: int ruang_d3; public: D3(){ ruang_d3=10; friend class S1; Class S1{ private: int ruang_s1; public: S1(){ ruang_s1=6; ; Void info_ruang(d3 x){ cout<< Ruang D3 : <<x.ruang_d3<<endl; cout<< Ruang S1 : <<ruang_s1<<endl; cout<< Ruang Gabungan << x.ruang_d3 + ruang_s1 <<endl; Void main(){ D3 r3; S1 r1; r1.info_ruang(r3);

Friend & Overloading operator Overload terhadap operator == Overload terhadap operator << Overload terhadap opeator >>

Overload terhadap operator == Class tgl{ private: int tanggal; int bulan; int tahun; public: tgl(int T, int B, int Th); friend int operator ==(tgl T1, tgl T2); ; Void main(){ tgl tgl_lahir(22,8,1987); tgl hari_pendidikan(2,5,2007); if (tgl_lahir == hari_pendidikan) cout<< lahir di hari pendidikan nasional <<endl; else cout<< lahir di hari biasa <<endl; Int operator ==(tgl T1, tgl T2){ if (T1.tanggal!= T2.tanggal) ( T1.bulan!= T2.bulan) ( T1.tahun!= T2.tahun) return(0); else return(1); Tanggal::tanggal(int T, int B, int Th){ tanggal = T; bulan = B; tahun = Th;

OPERASI FILE

Operasi Dasar Membuka atau mengaktifkan file Melaksanakan pemrosesan file Menutup file

Membuka File Deklarasikan : Ofstream nama_objek Deklarasikan : Nama_objek.open(nama_file)

Menulis ke file Nama_objek << string << endl Nama_objek.close() Menutup file

Merekam string ke file Void main(){ ofstream file_keluaran; file_keluaran.open( pelangi.txt ); cout<< sedang merekam <<endl; file_keluaran<< pelang-pelangi <<endl; file_keluaran<< alangkah indahmu << endl; file_keluaran.close();

Membaca string dari file Void main(){ conts int maks=80; char isi[maks+1]; ifstream file_keluaran; file_keluaran.open( pelangi.txt ); while (file_keluaran){ file_keluaran.getline(isi, maks); cout<< isi <<endl; file_keluaran.close();

Menambah string ke file Pada bagian open perlu dirambahkan : ios::app Void main(){ ofstream file_keluaran; file_keluaran.open( pelangi.txt, ios::app); file_keluaran<< pelukismu agung <<endl; file_keluaran<< siapakah gerangan << endl; file_keluaran.close();

Memeriksa keberhasilan operasi file Good(): untuk memeriksa keberhasilan dari suatu operasi file. Hasil benar jika operasi berhasil dilakukan Eof() : untuk memeriksa akhir file, hasil benar jika akhir file telah dijumpai Fail() : untuk memeriksa sesuatu kesalahan. Hasil benar jika terjadi suatu kesalahan. Memeriksa 3 jenis kesalahan: Kegagalan perangkat keras(bad sektor..) Kegagalan baca/tulis Kesalahan karena file tidak ada Bad() : untuk memeriksa adanya operasi yang tidak absah.

Contoh: Void main(){ ifstream file_masukan( z:82282.933 ); cout<< good = <<file_masukan.good() <<endl; cout<< bad = <<file_masukan.bad() <<endl; cout<< fail = <<file_masukan.fail() <<endl; cout<< eof = <<file_masukan.eof() <<endl;

Operasi file pada OO Merekam : Objek.write((char*) &objek, sizeof(objek)); Membaca: Objek.read((char*)&objek, sizeof(objek));

Contoh merekam Class buku{ private: char kode[8]; char judul[35]; char pengarang[20]; int jumlah; public: void entri(); Void rekam(buku B); Void main(){ buku fiksi; rekam(fiksi); void buku::entri(){ char tmp[15]; cout<< merekam data << endl; cout<< kode = ; cin.getline(kode,sizeof(kode)); cout<< judul = ; cin.getline(judul,sizeof(judul)); cout<< pengarang = ; cin.getline(pengarang,sizeof( pengarang)); cout<< jumlah = ; cin.getline(tmp,sizeof(tmp)); Jumlah = atoi(tmp); Void rekam(buku B){ char jawab; ofstream file_b( buku.dat, ios::app); for ( ; ; ){ buku.entri(); file_b.write((char *)&buku, sizeof(buku)); cout << endl; cout << Mau masukan data lagi (Y/T) ; do{ jawab=touper(getch()); while(!((jawab== Y ) (jawab== T ))); cout<<jawab<<endl; if (jawab == T ) break; file_b.close();

Contoh membaca Class buku{ private: char kode[8]; char judul[35]; char pengarang[20]; int jumlah; public: void info(); Void buku::info(){ cout<< Kode = << kode<<endl; cout<< Judul = << judul <<endl; cout<< Pengarang = << pengarang << endl; cout << Jumlah = << jumlah << endl; Void baca(buku B){ ifstream file_b( buku.dat ); Void baca(buku B); Void main(){ buku fiksi; baca(fiksi); cout << Daftar Buku <<endl;; file_b.read((char *)&buku, sizeof(buku)); while (!file_b.eof()) { buku.info(); file_b.read((char *)&buku, sizeof(buku)); file_b.close();