Praktikum 9

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

private :
char A[maks];
int banyak;
char x;
};
ostream& operator<<(ostream& out, const Queue& s){
cout<<”\nIsi Quueue sebanyak : “<<<” yaitu : “;
for(int i=0;i
out<<<” “;
return out;
}
Queue::Queue(){
banyak=0;
for(int i=0;i
A[i]=’0′;
}
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
cout<<<” “; } void Queue::enqueue(){ cin>>x;
cout<<”Elemen :”<<<” masuk antrian”;
if(penuh(banyak))cout<<”queue penuh “; else if(A[0]==’0′){ A[0]=x; banyak++; } else{ int tempat=0; while(A[tempat]>x)tempat++;
if(banyak!=tempat)
for(int i=banyak;i>=tempat;i–)
A[i+1] = A[i];
A[tempat]=x;
banyak++;
}
}
char Queue::dequeue(){
char temp=A[--banyak];
cout<<”\nDequeue elemen –> “<
A[banyak]=’0′;
return temp;
}
int main(int argc, char *argv[])
{
Queue p;
for(int i=1;i<=5;i++){
cout<<”masukan elemen :”;p.enqueue();
cout<
}
cout<
for(int i=1;i<=5;i++){
p.dequeue();cout<
if(i==5) cout<<”\n\n\n element kosong”;
cout<
}
system(“PAUSE”);
return EXIT_SUCCESS;
}

Praktikum 8

#include
#include
#define maks 5
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)
{ cout<<”\nIsi Queue : “;
for(int i=0; i<s.banyak;i++)
out<<s.A[i]<<” “;
}
Queue::Queue(){
banyak=0;
for(int i=0;i<maks-1;i++)
A[i]=’0′;
}
int Queue::penuh(int s)
{return s==maks-1 ? 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<<”\n\nElemen :”<<x<<” masuk antrian”;
if(penuh(banyak))cout<=0; i–)
A[i+1]=A[i];
A[0]=x;
banyak++;
}
}
char Queue::dequeue()
{
char temp=A[--banyak];
cout< “<<temp;
A[banyak]=’0′;
return temp;
}
int main(int argc, char *argv[])
{
Queue q;
char c;
for(char c=’A'; c<’E'; c++){
q.enqueue(c);
cout<<q;
}
for(char c=’E'; c<’F'; c++){
q.enqueue(c);
cout<<q;
}
char p=q.dequeue();
q.cetak();
for(char c=’E'; c<=’E'; c++){
q.enqueue(c);
cout<<q;
}
cout<<”\n\nCetak pakai everloading : “<<q;
system(“PAUSE”);
return EXIT_SUCCESS;
}

Praktikum 7

#include
#define maks 6
using namespace std;
class Stack{
friend ostream& operator<<(ostream&, const Stack&);
public:
Stack();
int penuh(int);
int kosong(int);
void cetak();
void push(char);
char pop();
private:
char A[maks];
int banyak;
};

ostream& operator<<(ostream& out, const Stack& s)
{
cout << "\nIsi stack : ";
for (int i=0;i< s.banyak;i++)
out << s.A[i] << " " ;
}
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 << "\nIsi stack :";
for (int i=0;i< banyak;i++)
cout << A[i] <<" ";
}
void Stack::push(char x)
{
cout << "\nElemen masuk :" << x;
if (penuh(banyak)) cout <=0;i–)
A[i+1]=A[i];
A[0]=x;
banyak++;}
}
char Stack::pop()
{ cout <<"\nPop 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;
stack.push(')');
stack.push(')');
stack.push('b');
stack.push('+');
stack.push('a');
stack.push('(');
stack.cetak();
for (char c='a';c<'d';c++){
stack.push(c);
stack.cetak();
}
char p = stack.pop();
stack.cetak();
cout << "\n\nCetak pakai overloading : " << stack;
system("PAUSE");
return EXIT_SUCCESS;
}

Praktikum 6

#include <iostream>
using namespace std;
//template <class T>
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;
};
//template <class T>
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;}
};
//template <class T>
ostream& operator<<(ostream& out, const List& k)
{
for (Node* p = k.kepala; p; p=p->berikut)
out << p->info << “->”;
out << “*\n”;
return out;
}
//template <class T>
List::~List()
{
Node* temp;
for (Node* p = kepala; p;)
{
temp = p;
p = p->berikut;
delete temp;
}
}
//template <class T>
void List::sisip(char t)
{
cout << “data “<< t << ” masuk list :”;
Node* p = nodeBaru(t,kepala);
kepala = p;
}
//template <class T>
int List::hapus(char& t)
{
if (kosong()) return 0;
t = kepala->info;
Node* p = kepala;
kepala = kepala->berikut;
delete p;
return 1;
}
//template <class T>
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;
}

Praktikum 5

#include <cstdlib>
#include <iostream>
#include <conio.h>
//#include ‘xcept.h’
using namespace std;
class Array1D {
friend ostream& operator<<(ostream&, const Array1D&);
public :
Array1D ( int size= 0);
void cetak();
void geser_kiri();
void geser_kanan();
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);

private :
int size ;
int * element ;
char A[5];
int x;
};
Array1D::Array1D(int sz)
{
if ( sz < 0);
size = sz;
element = new int[sz];
}
ostream& operator<<(ostream& out, const Array1D& x){
for(int i=0;i<5;i++)
out<<x.A[i]<<” “;
out<<endl;
return out;
}
void Array1D::geser_kanan(){
int n=5;
int size=A[n-1];
for(int i=n-1;i>=0;i–)
A[i+1]=A[i];
A[0]=size;
}
void Array1D::geser_kiri(){
int n=5;
int size=A[0];
for(int i=0;i<n;i++)
A[i]=A[i+1];
A[n-1]=size;
}
Array1D::Array1D(const Array1D& v)
{
size = v.size;
element =new int[size];
for (int i=0; i<size; i++)
element[i] = v.element[i];
}
int& Array1D::operator[](int i)const
{
if(i<0||i>=size);
return element[i];
}
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;
}
Array1D Array1D::operator +(const Array1D& v) const
{
if (size != v.size);
Array1D w(size);
for(int i=0; i < size; i++)
w.element[i] = element[i] + v.element [i];
return w;
}
Array1D Array1D::operator-(const Array1D& v) const
{
if (size!= v.size);
Array1D w(size);
for (int i=0; i<size; i++)
w.element[i] = element [i]- v.element [i];
return w;
}
Array1D Array1D::operator-() const
{
Array1D w(size);
for (int i=0; i <size; i++)
w.element[i] = -element[i];
return w;
}
Array1D Array1D::operator*(const Array1D& v)const
{
if (size != v.size);
Array1D w(size);
for(int i=0; i < size; i++)
w.element[i] = element [i] * v.element[i];
return w;
}
Array1D& Array1D::operator+=(const int& x)
{
for (int i=0; i < size; i++)
element [i] += x;
return *this;
}
Array1D& Array1D::ReSize(int sz)
{
if (sz < 0);
delete [] element;
size = sz;
element = new int [size];
return *this;
}
int main(int argc, char *argv[])
{
try {
Array1D x(10),y,z;
for (int i=0; i<10; i++)
x[i] = i;
x.geser_kiri();
cout<<”Isi Array setelah di geser kiri : “<<x;
x.geser_kanan();
cout<<”Isi Array setelah di geser kanan : “<<x;
cout <<”x[3]=” << x[3] << endl;
cout <<”x is ” << x << endl;
y=x;
cout <<”y is ” << y << endl;
x +=2;
cout <<”xincremented by 4 is ” << x << endl;
z = (y+x)*y;
cout << “(y + x)* y is” << z << endl;
cout << “-(y + x)* y is” << -z << endl;
}
catch (…) {
cerr << “An execption has occurred” << endl;
}
getch();
return EXIT_SUCCESS;
}