8th practice (data structure)

postest praktikum ke 8 adalah

#include <cstdlib>
#include <iostream>
#define maks 6
using namespace std;
class Queue{
friend ostream& operator<<(ostream&, const Queue&);
public:
Queue();
int penuh(int);
int kosong(int);
void cetak();
void enqueue(char);

char dequeue();
private:
char A[maks];
int banyak;
};
ostream& operator<<(ostream& out, const Queue& s){
out << "\nIsi Queue : ";
for(int i=0; i<s.banyak; i++){
out << s.A[i] << " ";
}
}
Queue::Queue(){
banyak=0;
for(int i=0; i<maks; i++){
A[i]='O';
}
}
int Queue::penuh(int s){
return s==maks?1:0;
}
int Queue::kosong(int s){
return s==0?1:0;
}
void Queue::cetak(){
cout << "\nIsi queue : ";
for(int i=0; i<banyak; i++){
cout << A[i] << " ";
}
}

void Queue::enqueue(char x){
cout << "\nElemen : " << x << " masuk antrian";
if(penuh(banyak)){
cout << "Antrian Penuh";
}
else if(A[0]==0){
A[0]=x;
banyak++;
}
else{
for(int i=banyak; i>=0; i--)
A[i+1]=A[i];
A[0]=x;
banyak++;
}
}
char Queue::dequeue(){
char temp=A[--banyak];
cout << "\nDequeue elemen --> " << temp;
A[banyak]='O';
return temp;
}

int main(int argc, char *argv[])
{
Queue q;
char c;
for(int i=0; i<7; i++){
cout <<endl<<"masukkan antrian karakter a - g :";cin>>c;
q.enqueue(c);
cout << q;
if(i==6){
char p=q.dequeue();

q.cetak();
cout << endl;
 }
}
q.enqueue(c);
q.cetak();
cout << endl;
cout << "Cetak pakai overloading : " << q<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Leave a Comment

5th Practice (data structure)

postest praktikum 5

#include <iostream.h>
//template <class T>

class Array1D{
friend ostream& operator<<(ostream&,const Array1D&);
public:
Array1D(int size=0);
Array1D(const Array1D& v);
Array1D(){delete[]element;}
int& operator[](int i)const;
int Size(){return size;}
Array1D& operator =(const Array1D& v);
Array1D&operator+()const;
Array1D&operator+(const Array1D& v)const;
Array1D&operator-()const;
Array1D&operator-(const Array1D& v)const;
Array1D&operator*(const Array1D& v)const;
Array1D&operator+=(const int& x);
Array1D& ReSize(int sz);
Array1D& geser_kanan();
Array1D& geser_kiri();
private:
int size;
int*element;
int w;
};
//template <class T>
Array1D::Array1D(int sz)
{
size =sz;
element=new int[sz];
}
//template <class T>
Array1D::Array1D(const Array1D& v)
{
size = v.size;
element=new int[size]; // get space
for (int i=0;i<size;i++)// copy elements
element[i]=v.element[i];
}
//template <class T>
int& Array1D::operator[](int i)const
{
return element[i];
}
//template <class T>
Array1D&Array1D::operator =(const Array1D& v)
{
if (this !=&v){
size=v.size;
delete[]element;
element=new int[size];
for(int i=0;i<size;i++)
element[i]=v.element[i];
}
return *this;
}
//template <class T>
Array1D&Array1D::operator+(const Array1D& v)const
{
Array1D w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]- v.element[i];
return w;
}
//template <class T>
Array1D&Array1D::operator-(const Array1D& v)const
{
Array1D w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]+ v.element[i];
return w;
}
//template <class T>
Array1D&Array1D::operator-()const
{
Array1D  w(size);
for(int i=0; i<size;i++)
w.element[i]=-element[i];
return w;
}
//template <class T>
Array1D&Array1D::operator*(const Array1D& v)const
{
Array1D  w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]* v.element[i];
return w;
}
//template <class T>
Array1D&Array1D::operator+=(const int& x)
{
for(int i=0; i<size;i++)
element[i]+=x;
return *this;
}
//template <class T>
ostream& operator<<(ostream& out,const Array1D& x)
{
for(int i=0; i<x.size;i++)
out<<x.element[i]<<” “;
return out;
}
//template <class T>
Array1D&Array1D::ReSize(int sz)
{
delete[]element;
size=sz;
element=new int[size];
return *this;
}
//template <class T>
Array1D&Array1D::geser_kanan()
{
int n = size;
int temp = element[n-1];
for (int i=n-1; i>=0; i–)
element[i+1]=element[i];
element[0]=temp;
}
//template <class T>
Array1D&Array1D::geser_kiri()
{
int n=size;
int temp = element[0];
for(int i=0; i<n; i++)
element[i]=element[i+1];
element[n-1]=temp;

}

int main()
{
int X(10),Y,Z;
for (int i=0; i<10; i++)
X=i;
cout<<” X = “<< X <<endl;
cout<<” X is “<< X <<endl;
Y=X;
cout<<” Y is “<< Y <<endl;
Y += 2;
cout << ” X incremented by 2 is ” <<X<<endl;
Z=(Y+X)*Y;
cout<<”(Y+X)*y is ” << Z <<endl;
cout<< “-(Y+X)*Y is ” << -Z <<endl;
cout<<”setelah digeser kekanan :”<<(Y-X)*Y<<endl;
cout<<”setelah digeser kekiri  :”<<(Y+X)<<endl;
system(“PAUSE”);
}

[\sourcecode]

Leave a Comment

7th Practice (data structure)

pembahasan praktikum ke 7 link list

pada praktikum ini kita disuruh untuk memodifikasi program dengan menambahkan fungsi yaitu untuk mengenal apakah fungsi operator inputan itu kelebihan ‘(‘ atau kelebihan ‘)’ dan seimbang

disini saya mencoba tapi masih kurang maksimal karna waktu tidak mencukupi, mungkin nanti teman-teman bisa memodifikasinya

[/sourcecode]

 

#include <cstdlib>
#include <iostream>
#define maks 10

using namespace std;

class Stack {
friend ostream& operator <<(ostream&,const Stack&);
friend istream& operator >>(istream&, Stack&);
public:
Stack();
int penuh(int);
int kosong(int);
void cetak();
void push(char);
char pop();
void co();
//private:
char A[maks];
int banyak;
};

ostream& operator<<(ostream& out, const Stack& s)
{
cout << “\n Isi stack    : “;
for (int i=0;i<s.banyak;i++)
out << s.A[i]<<” “;
return out;
}
void Stack::co()
{
for (char c=’(‘;c<=’)';c++){
cout << “\n Elemen masuk : “<<c;
if (penuh(banyak)) cout << ” stack penuh”;
else if (A[0]==’0′){
A[0]=c;
banyak++;}
else {
for (int i=banyak;i>=0;i–)
A[i+1]=A[i];
A[0]=c;
banyak++;
}
}
}

istream& operator>>(istream& in, Stack& s){
cout<<”\n Masukkan data:”;

for(int i=0; i<1; i++){
in>>s.A[i];
if(s.A[i]==0){cout<<”kurang”;}

else if(s.A[i]==’)'&&’)'){
cout<<”kelebihan’)'”;}

else if(s.A[i]==’(‘&&’(‘ ){
cout<<”kelebihan’(‘”;}
else if(s.kosong(5)==0){
cout<<”\t seimbang \n”;
}

}
}
Stack::Stack(){
banyak=0;
for (int i=0;i<maks;i++)
A[i]=’0′;
}

int Stack::penuh(int s)
{ return s==maks ?1:0;}

int Stack::kosong(int s)
{ return s==0? 1:0;}

void Stack::cetak()
{ cout << “\n Isi stack    : “;
for (int i=0;i<banyak;i++)
cout << A[i]<< ” “;}

void Stack::push( char x)
{ cout << “\n Elemen masuk : “<<x;
if (penuh(banyak)) cout << ” stack penuh”;
else if (A[0]==’0′){
A[0]=x;
banyak++;}
else {
for (int i=banyak;i>=0;i–)
A[i+1]=A[i];
A[0]=x;
banyak++;}
}

char Stack::pop()
{ cout << “\n Pop stack, elemen yang di pop : “<<A[0];
char temp = A[0];
for (int i=0;i<banyak;i++) A[i]=A[i+1];
A[banyak]=’0′;
banyak–;
return temp;
}
int main(int argc, char *argv[])
{
Stack stack;
cin>>stack;
for (char c=’a';c<=’d';c++){
// stack.co();
stack.push(c);

stack.cetak();

}

char p=stack.pop();
//stack.co();
stack.cetak();

cout << “\n\n Cetak pakai overloading : “<<stack;
cout << ” \n\n”;
system(“PAUSE”);
return EXIT_SUCCESS;
}

[\sourcecode]

Leave a Comment

6th Practice (Link List Data Structure)

pembahasan post test stuktur data praktikum ke 6, pada praktikum ini kita belajar untuk mengenai Link List.

berikut source code nya

#include <cstdlib>
#include <iostream>

using namespace std;

class Node{
friend class List;
friend ostream& operator<<(ostream&, const List&);
public:
Node(char& t, Node* p) : info(t), berikut(p){}
protected:
char info;
Node *berikut;
};

class List{
friend ostream& operator<<(ostream&, const List&);
public:
List() : kepala(0){}
~List();
void sisip(char t);
int hapus(char& t);
int kosong() {return (kepala == 0);}
void cetak();
protected:
Node* kepala;
Node* nodeBaru(char& t,Node* p)
{ Node* q = new Node(t,p); return q;}
};

ostream& operator<<(ostream& out, const List& k)
{
for (Node* p = k.kepala; p; p=p->berikut)
out << p->info << "->";
out << "*\n";
return out;
}

List::~List()
{
Node* temp;
for (Node* p = kepala; p;)
{
temp = p;
p = p->berikut;
delete temp;
}
}

void List::sisip(char t)
{
cout << "data "<< t << " masuk list :";
Node* p = nodeBaru(t,kepala);
kepala = p;
}

int List::hapus(char& t)
{
if (kosong()) return 0;
t = kepala->info;
Node* p = kepala;
kepala = kepala->berikut;
delete p;
return 1;
}

void List::cetak()
{
for (Node* p = kepala; p; p=p->berikut)
cout << p->info << "->";
cout << "*\n";
}

int main(int argc, char *argv[])
{
List x;
char data;
x.sisip('a');
cout << x;
x.sisip('b');
cout << x;
x.sisip('c');
cout << x;
x.sisip('d');
cout << x;
for (int i=0; i<4; i++){
x.hapus(data);
cout << data << " dihapus dari list :";
cout << x;
}
system("PAUSE");
return EXIT_SUCCESS;
}

ini hasil running program diatas

untuk penggunaan fungsi sisip yang ada pada program diatas adalah program untuk menyisipkan atau menambahkan elemen list lihat pada running program diatas

berikut source code fungsi untuk menambah atau menyisipkan

void List::sisip(char t)
{
cout << "data "<< t << " masuk list :";
Node* p = nodeBaru(t,kepala);
kepala = p;
}

sedangkan fungsi selanjutnya adalah menghapus list, silahkan lihat hasil running program

ketika kita melihat huruf a b c d yang ada pada program diatas, satu demi satu program tersebut dihapus dari list. dan yang tersisa ketika sudah dihapus adalah NULL untuk mengetahui cara kerja dari hasil running program diatas, berikut source codenya:

int List::hapus(char& t)
{
if (kosong()) return 0;
t = kepala->info;
Node* p = kepala;
kepala = kepala->berikut;
delete p;
return 1;
}

demikian mungkin yang dapat saya bantu, semoga bermanfaat. . selamat mencoba

Leave a Comment

4th Practice (postest data structure)

saya ingin sharing praktikum ke 4 dari struktur data,

pada praktikum ini kita disuruh untuk membuat array dengan ada metode tambahan seperti menggeser ke kanan, menggeser ke kiri dan bahkan menghapus.

pertama kita membuat data array misalkan kita batasi 5 data.


#include <cstdlib>
#include <iostream>
#define maks5

using namespace std;

class Array1D{
 friend ostream& operator<<(ostream&, const Array1D&);
 friend istream& operator>>(istream&, Array1D&);
public:
 Array1D();
 void cetak();
 void geser_kiri();
 void geser_kanan();
 void hapus_elemen();

private:
 char A[5];
 int posisi;
};

Array1D::Array1D(){
 for(int i=0;i<5;i++)
 A[i]='O';
}

void Array1D::cetak(){
 for(int i=0;i<5;i++)
 cout<<A[i]<<" ";
}

ostream& operator<<(ostream& out, const Array1D& x){
 for(int i=0;i<5;i++)
 out<<x.A[i]<<" ";
 out<<endl;
 return out;
}

istream& operator>>(istream& in, Array1D& x){
 int posisi;
 for (int posisi=1; posisi<=5; posisi++){
 cout<<"masukkan nilai array posisi ke- : ";
 in>>x.posisi;
 if(posisi >= 0 && posisi <= 5){cout<<"masukkan elemen arraynya :";
 in>>x.A[posisi-1];
 }
 }
 return in;
}

void Array1D::geser_kanan(){
 int n=5;
 int temp=A[n-1];
 for(int i=n-1;i>=0;i--)
 A[i+1]=A[i];
 A[0]=temp;
}

void Array1D::geser_kiri(){
 int n=5;
 int temp=A[0];
 for(int i=0;i<n;i++)
 A[i]=A[i+1];
 A[n-1]=temp;
}

void Array1D::hapus_elemen(){
 int posisi;
 cout<<"Pilih indeks berapa yg akan di hapus : ";
 cin>>posisi;
 if(posisi>0 && posisi<=5)
 A[posisi-1]='O';
 else cout<<"indeks yg anda masuukan salah karena indek hanya terdiri dari 1 - 5\n";
}

int main(int argc, char *argv[])
{
 Array1D x;
 cout<<"Array masih kosong : "<<x;
 cin>>x;

 cout<<"Isi Array saat ini : "<<x;
 x.geser_kiri();
 cout<<"Isi Array setelah di geser kiri : "<<x;
 x.geser_kanan();
 cout<<"Isi Array setelah di geser kanan : "<<x;
 cout<<"Urutan elemen pada indeksnya saat ini : "<<x;
 x.hapus_elemen();
 cout<<"Setelah dihapus menjadi : "<<x;

 system("PAUSE");
 return EXIT_SUCCESS;
}

dan ini hasil run program

pembahasan :

pertama kita masukkan data array.

misalkan saya ingin memasukkan data array 4 6 1 5 8

ketika kita sudah masukkan maka kita akan menemukan hasil data array

4 6 1 5 8

dengan menggunakan metode pertama kita harus menggeser ke kiri

 

 

 

 

lihat angka 4 yang semula berada di depan dia menjadi angka yang berada paling kanan

maka hasil yang ada di layar adalah : 6 1 5 8 4

ini sourcecode fungsi untuk menggeser ke kiri


void Array1D::geser_kiri(){
 int n=5;
 int temp=A[0];
 for(int i=0;i<n;i++)
 A[i]=A[i+1];
 A[n-1]=temp;
}

kemudian kita menggeser ke kanan,

 

 

 

silahkan lihat angka 4 maka dia akan kembali lagi ke asal dengan data : 4 6 1 5 8

di bawah ini sourcocode fungsi untuk menggeser ke kanan

void Array1D::geser_kanan(){
 int n=5;
 int temp=A[n-1];
 for(int i=n-1;i>=0;i--)
 A[i+1]=A[i];
 A[0]=temp;
}

setelah metode ke 2 kita lakukan maka kita coba menggunakan fungsi menghapus :

misalkan array ke 2 kita hapus maka kita temukan data array :

4 0 1 5 8

kenapa angka 6 bisa berubah jadi 0?

ini dikarenakan saya merubah data kosong dengan angka 0. jadi 0 ini bisa dirubah sesuai dengan keinginan teman-teman.

dan dibawah ini sourcecode fungsi untuk menghapus elemen array


void Array1D::hapus_elemen(){
 int posisi;
 cout<<"Pilih indeks berapa yg akan di hapus : ";
 cin>>posisi;
 if(posisi>0 && posisi<=5)
 A[posisi-1]='O';
 else cout<<"indeks yg anda masuukan salah karena indek hanya terdiri dari 1 - 5\n";
}

mungkin ini saja yang dapat saya bantu. semoga bermanfaat.

Leave a Comment

4th Practice (pretest data structure)

pembahasan pretest praktikum ke 4

1. memodifikasi operator overloading input >> agar saat memasukkan elemen yang baru, elemen array dalam keadaan terurut

ini jawabannya :

istream& operator>>(istream& in, Array1D& x){
 int posisi;
 for (int posisi=1; posisi<=5; posisi++){
 cout<<"masukkan nilai array posisi ke- : ";
 in>>x.posisi;
 if(posisi >= 0 && posisi <= 5){cout<<"masukkan elemen arraynya :";
 in>>x.A[posisi-1];
 }
 }
 return in;
}

2. buatlah metode hapus elemen tertentu dari array, namun sebelum dihapus, user ditanya lebih dulu elemen mana yang akan dihapus dengan menampilkan keadaan array pada saat itu.

ini jawabannya :

void Array1D::hapus_elemen(){
int posisi;
cout<<"Pilih indeks berapa yg akan di hapus : ";
cin>>posisi;
if(posisi>0 && posisi<=5)
A[posisi-1]='O';
else cout<<"indeks yg anda masuukan salah karena indek hanya terdiri dari 1 - 5\n";
}

ini mungkin yang saya bisa bantu selamat ketemu minggu depan ya, eits jangan lupa kritik dan sarannya…

2 Comments

Analisa Pendaftaran Praktikum(APBO Practice)

untuk kali ini saya akan mencoba membahas prosedur pendaftaran praktikum di universitas ahmad dahlan dengan menggunakan use case system,,

pertama kali kita analisa notasi yang dibutuhkan

aktor :

> mahasiswa

> Laboran

 

use case :

> Regristrasi di tif.uad.ac.id (bagi mahasiswa yang belum mempunyai account di tif)

> login di tif.uad.ac.id (dengan memilih menu praktikum)

> memillih praktikum yang diikuti

> mendapat pin (untuk aktifasi) dan jumlah pembayaran praktikum

> membayar praktikum

> aktifasi account (dengan membawa bukti kuitansi pembayaran dan juga no pin yang telah diberikan setelah memilih praktikum)

> laboran mengaktifkan account mahasiswa (setelah ada aktifasi account dari mahasiswa)

> mahasiswa set jadwal (setelah accout aktif)

 

analisa tugas dan alur pendaftaran praktikum

mahasiswa -> regristrasi di tif.uad.ac.id -> login -> memilih praktikum yang diikuti -> mendapat pin dan jumlah pembayaran ->    membayar -> aktivasi account -> set jadwal praktikum

 

laboran -> menerima bukti pembayaran dan pin mahasiswa -> mengaktifkan account -> account aktif

 

dan secara garis besar use case system dari pendaftaran praktikum di universitas ahmad dahlan adalah(menggunakan software rational rose 2000) :

 

 

7 Comments

Pretest 3rd Practice (Data Structure)

dibawah ini adalah pembahasan pretest praktikum ke 3 struktur data

1. buatlah kelas turunan Bil_float yang hanya mempunyai satu data member bertipe float. kelas bil_float diturunkan dari kelas bilangan

class bil_float:public bilangan{
friend ostream& operator<<(ostream&, const bil_float&);
friend istream& operator>>(istream&, bilangan&);
public:
bil_float(int a0=0, int b0=0, float ch=’x'):bilangan(a0,b0),c(ch){}
private:
float c;
};

2. buatlah konstruktor dari kelas bil_float

bil_float(int a0=0, int b0=0, float ch=’x'):bilangan(a0,b0),c(ch){}

dan lengkap dengan kelasnya:

class bil_float:public bilangan{
friend ostream& operator<<(ostream&, const bil_float&);
friend istream& operator>>(istream&, bilangan&);
public:
bil_float(int a0=0, int b0=0, float ch=’x'):bilangan(a0,b0),c(ch){}
private:
float c;
};

 

3. buatlah operator overloading input dan output

ini implementasi untuk operator overloading output

ostream& operator<<(ostream& out,const bil_float& x){
out<<”Bagian integer: “<<x.a<<endl;
out<<”Bagian float: “<<x.b<<endl;
out<<”Bagian char: “<<x.c<<endl;
return out;
}

implementasi operator overloading input
istream& operator>>(istream& in,bil_float& x){
cout<<”\nMasukkan bagian integer: “;
in>>x.a;
cout<<”Masukkan bagian float: “;
in>>x.b;
return in;
}

 

4. modifikasi method banding_int untuk membuat method banding_float pada kelas bil_float

void bilangan::banding_float(const bilangan& x, const bilangan& y){

if(x.c>y.c) cout<<x.c<<”x lebih besar dari “<<y.c<<”y”;

else cout<<x.c<<”x lebih kecil dari”<<y.c<<”y”;

}

selamat mengerjakan.

semoga bisa bermanfaat

 

2 Comments

3rd Practice (postest Data Structure)

pada praktikum stuktur data yang ke 3 ini kita belajar INHERITANCE (pewarisan)dalam c++

sebelum kita belajar lebih jauh mari kita mengetahui dulu pengertian dari Inheritance (Pewarisan)

Inheritance adalah salah satu bentuk penggunaan kembali perangkat lunak dimana suatu kelas baru dibuat dari kelas yang sudah ada dengan memakai variabel data fungsi (method) dari kelas yang sudah ada tersebut serta menambah atribut/pelaku yang baru, kelas baru otomatis memiliki variabel atau fungsi yang dimiliki kelas asal.

nah pada program yang ada di praktikum ke 3 ini kita disuruh membuat class bilangan dalam 1 file.

klik file – new – source file dan disimpan di file  : BILANGAN.H


class bilangan{
 friend ostream& operator<<(ostream&, const bilangan&);
 friend istream& operator>>(istream&, bilangan&);
 public:
 bilangan(int a0=0, float b0=0.0):a(a0),b(b0){}
 void banding_int(const bilangan&, const bilangan&);
 bilangan& operator=(const bilangan&);
 bilangan operator+(const bilangan&)const;
 bilangan operator-()const;
 protected:
 int a;
 float b;

 };

dan selanjutnya kita membuat kelas turunan dari kelas bilangan dengan nama kelas bil_char

klik file – new – source file dan disimpan di file : BILCHAR.H


class bil_char:public bilangan{
 friend ostream& operator<<(ostream&, const bil_char&);
 public:
 bil_char(int a0=0, int b0=0,char ch='x'):bilangan(a0,b0),c(ch){}
 private:
 char c;
 };

setelah kedua kelas kita buat kita membuat file baru klik file – new – source file

dan kita simpan di turuan.cpp


# include <iostream.h>

#include "bilchar.h"

int main(int argc, char *argv[])
 {

bilangan s,t(-2,3.14),d;
 cout<<"Nilai awal s\n"<<s;
 cout<<"Nilai awal t dari deklarasi\n"<<t;
 s=t;
 cout<<"Setelah diassign t\n";
 cout<<"Nilai s\n"<<s;
 cout<<"Masukkan nilai-nilai objek d";
 cin>>d;
 cout<<"Setelah d+t=>\n"<<d+t;
 cout<<"Nilai d dinegatifkan\n"<<-d;
 bil_char ss;
 cout<<"Nilai awal ss\n"<<ss;

 system("PAUSE");
 return EXIT_SUCCESS;
 }

dan ini adalah source code lengkapnya, jika kita gabungkan semua:


#include <cstdlib>
#include <iostream>

using namespace std;

class bilangan{
 friend ostream& operator<<(ostream&, const bilangan&);
 friend istream& operator>>(istream&, bilangan&);
 public:
 bilangan(int a0=0, float b0=0.0):a(a0),b(b0){}
 void banding_int(const bilangan&, const bilangan&);
 bilangan& operator=(const bilangan&);
 bilangan operator+(const bilangan&)const;
 bilangan operator-()const;
 protected:
 int a;
 float b;

 };

ostream& operator<<(ostream& out, const bilangan& x){
 out<<"Bagian integer: "<<x.a<<endl;
 out<<"Bagian float: "<<x.b<<endl;
 return out;
 }

void bilangan::banding_int(const bilangan& x, const bilangan& y){
 if(x.a>y.a)cout<<x.a<<"::x lebih besar dari"<<y.a<<"::y";
 else cout<<x.a<<"::x lebih kecil dari"<<y.a<<"::y";
 }

bilangan& bilangan::operator=(const bilangan& x){
 a=x.a;
 b=x.b;
 return *this;
 }

istream& operator>>(istream& in, bilangan& x){
 cout<<"\nMasukkan bagian integer: ";
 in>>x.a;
 cout<<"Masukkan bagian float: ";
 in>>x.b;
 return in;
 }

bilangan bilangan::operator+(const bilangan& x)const{
 bilangan cc;
 cc.a=a+x.a;
 cc.b=b+x.b;
 return cc;
 }

bilangan bilangan::operator-()const{
 bilangan x;
 x.a=-a;
 x.b=-b;
 return x;
 }

class bil_char:public bilangan{
 friend ostream& operator<<(ostream&, const bil_char&);
 public:
 bil_char(int a0=0, int b0=0,char ch='x'):bilangan(a0,b0),c(ch){}
 private:
 char c;
 };

ostream& operator<<(ostream& out,const bil_char& x){
 out<<"Bagian integer: "<<x.a<<endl;
 out<<"Bagian float: "<<x.b<<endl;
 out<<"Bagian char: "<<x.c<<endl;
 return out;
 }

int main(int argc, char *argv[])
{
 bilangan s,t(-2,3.14),d;
 cout<<"Nilai awal s\n"<<s;
 cout<<"Nilai awal t dari deklarasi\n"<<t;
 s=t;
 cout<<"Setelah diassign t\n";
 cout<<"Nilai s\n"<<s;
 cout<<"Masukkan nilai-nilai objek d";
 cin>>d;
 cout<<"Setelah d+t=>\n"<<d+t;
 cout<<"Nilai d dinegatifkan\n"<<-d;
 bil_char ss;
 cout<<"Nilai awal ss\n"<<ss;

 system("PAUSE");
 return EXIT_SUCCESS;
}

selamat mencoba!

semoga bermanfaat

Leave a Comment

jawaban Quiz sdata

jawaban dari kuis struktur data ke 1


# include <iostream>

using namespace std;

class tambah {
friend istream& operator >>(istream&, tambah&)
friend ostream& operator <<(ostream&, tambah&)
public:
tambah(int n, nilai, total=0);
void hitung(int n);
};

friend istream& operator >>(istream& in, tambah& t)
{
cout<<"masukkan berapa banyak nilai yang mau dihiting :";
in>>t.n;
return in;
}

friend ostream& operator<<(ostream& keluar, tambah& t){
keluar<<"jumlah nilai yang dimasukkan ="<<t.total;
return keluar;
}

void hitung(int n){
if(n==0) return 0;
else return hitung(n-1);
}

int main(){
tambah x;
cin>>x;
x.hitung(5);
cout<<x;
system ("PAUSE");
}

selamat mencoba, eits jangan lupa comment ya,,

semoga bermanfaat.

Leave a Comment

Follow

Get every new post delivered to your Inbox.