TDA Double link list :
Instans :
Kumpulan informasi biasanya berupa karakter huruf kecil
Operation :
disini perintahnya disuruh membuat_node(char x) : membuat node baru dengan informasi karakter x
Tambah_elemen_didepan() : menambah elemen paling depan (pointernya menunjuk elemen pertama link list dan ditunjuk oleh elemen pertama link list)
Tambah_elemen_dibelakang() : menambah elemen paling belakang (pointer elemen terakhir link list menunjuk elemen baru dan elemen terakhir link list ditunjuk oleh elemen baru)
Tampilkan() : menelusuri elemen demi elemen dan menampilkan informasinya
Kelas Double link list diatas diasumsikan sebagai berikut :
Class Node{
…
private :
char info;
Node *berikut; // untuk menunjuk ke node berikutnya
Node *sebelum; // untuk menunjuk ke node sebelumnya
};
Menambahkan elemen baru di depan dengan informasi ‘p’ :
Node *baru;
baru->info = ’p’;
baru->berikut = firstNode;
firstNode<-sebelum = baru;
baru<-sebelum=NULL;
firstNode = baru;
Menambahkan elemen baru di belakang dengan informasi ‘w’ :
Baru->info = ‘w’;
lastNode->berikut = baru;
baru->berikut = NULL;
baru<-sebelum = lastNode;
lastNode = baru;
#include <iostream>
#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 sebanyak : "<<s.banyak<<"yaitu:";
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]='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<banyak;i++)
cout<<A[i]<<"";
}
void Queue::enqueue(char x)
{
cout<<"\nElemen:"<<x<<"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)//jika tempatnya tidak pada akhir antrian
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--> "<<temp;
A[banyak]='0';
return temp;
}
int main(int argc, char *argv[])
{
//main(){
Queue p;
char i;
char fk;
for(int c=0;c<4;c++){
cout<<"\n\n antrian"<<c+1<<":";cin>>i;
p.enqueue(i);}
cout<<p;
cout<<"\n sisipkan elemen baru : " ; cin>>fk;p.enqueue(fk);
cout<<p;
/*p.enqueue( 'b' );
cout<<p;
p.enqueue( 'd' );
cout<<p;
p.enqueue( 'c' );
cout<<p;
p.enqueue( 'e' );
cout<<p;
p.enqueue( 'a' );
cout<<p;*/
for(int c=0;c<5;c++){
char x=p.dequeue();
cout<<" elemen yang di-dequeue "<<x<<endl;
cout<<p;}
cout<<"\n\n\nNama HAYATUL FAUZAH AMRAN"<<endl;
cout<<"Nim 09018156"<<endl;
//return 0;
system("PAUSE");
return EXIT_SUCCESS;
}
#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 sebanyak : "<<s.banyak<<"yaitu:";
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]='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<banyak;i++)
cout<<A[i]<<"";
}
void Queue::enqueue(char x)
{
cout<<"\nElemen:"<<x<<"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)//jika tempatnya tidak pada akhir antrian
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--> "<<temp;
A[banyak]='0';
return temp;
}
int main(int argc, char *argv[])
{
//main(){
Queue p;
char i;
char fk;
for(int c=0;c<4;c++){
cout<<"\n\n antrian"<<c+1<<":";cin>>i;
p.enqueue(i);}
cout<<p;
cout<<"\n sisipkan elemen baru : " ; cin>>fk;p.enqueue(fk);
cout<<p;
/*p.enqueue( 'b' );
cout<<p;
p.enqueue( 'd' );
cout<<p;
p.enqueue( 'c' );
cout<<p;
p.enqueue( 'e' );
cout<<p;
p.enqueue( 'a' );
cout<<p;*/
for(int c=0;c<5;c++){
char x=p.dequeue();
cout<<" elemen yang di-dequeue "<<x<<endl;
cout<<p;}
cout<<"\n\n\nNama HAYATUL FAUZAH AMRAN"<<endl;
cout<<"Nim 09018156"<<endl;
//return 0;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
#define maks 7
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<<"\n ISI 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]='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 <<"\n ISI 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<<" \nqueue 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]='0';
return temp;
}
int main(int argc, char *argv[])
{
Queue q;
for(char C='A'; C<'H'; C++){
q.enqueue(C);
cout<<q;
}
char p=q.dequeue();
q.cetak();
cout<<"\n";
cout<<"\n\nCetak pakai overloading:"<<q;
cout<<"\n";
cout<<"09018156\n";
system("PAUSE");
return EXIT_SUCCESS;
}
#include <iostream>
#define maks 7
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<<"\n ISI 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]='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 <<"\n ISI 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<<" \nqueue 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]='0';
return temp;
}
int main(int argc, char *argv[])
{
Queue q;
for(char C='A'; C<'H'; C++){
q.enqueue(C);
cout<<q;
}
char p=q.dequeue();
q.cetak();
cout<<"\n";
cout<<"\n\nCetak pakai overloading:"<<q;
cout<<"\n";
cout<<"09018156\n";
system("PAUSE");
return EXIT_SUCCESS;
}
#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; }
#include <iostream>
#include <cstdlib>
#define maks 5
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();
void PrintMatchedPairs(char *cek);
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 << "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 <<"\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;
}
void Stack::PrintMatchedPairs(char *cek){
int A[maks];
int j, length=strlen(cek);
for(int i=1;i<=length;i++){
if(cek[i-1]=='(');
else if (cek[i-1]==')')
cout << j << ' ' << i << endl;
}
}
int main(int argc, char *argv[])
{
cout<<"NAMA : HAYATUL FAUZAH AMRAN "<<endl;
cout<<"N IM : 09018156 "<<endl;
Stack stack;
for (char c='a'; c<'d'; c++){
stack.push(c);
stack.cetak();
}
char cek[maks];
cout << "Type an expression of length at most " << maks << endl;
cin.getline(cek,maks);
cout << "The pairs of maytching parentheses in " << endl;
puts(cek);
cout << "are" << endl;
// Printjika (*expr);
char p = stack.pop();
stack.cetak();
cout << "\n\nCetak pakai overloading : " << stack;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#define maks 5
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();
void PrintMatchedPairs(char *cek);
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 << "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 <<"\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;
}
void Stack::PrintMatchedPairs(char *cek){
int A[maks];
int j, length=strlen(cek);
for(int i=1;i<=length;i++){
if(cek[i-1]=='(');
else if (cek[i-1]==')')
cout << j << ' ' << i << endl;
}
}
int main(int argc, char *argv[])
{
cout<<"NAMA : HAYATUL FAUZAH AMRAN "<<endl;
cout<<"N IM : 09018156 "<<endl;
Stack stack;
for (char c='a'; c<'d'; c++){
stack.push(c);
stack.cetak();
}
char cek[maks];
cout << "Type an expression of length at most " << maks << endl;
cin.getline(cek,maks);
cout << "The pairs of maytching parentheses in " << endl;
puts(cek);
cout << "are" << endl;
// Printjika (*expr);
char p = stack.pop();
stack.cetak();
cout << "\n\nCetak pakai overloading : " << stack;
system("PAUSE");
return EXIT_SUCCESS;
}
#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;
}
#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;
}
#include <iostream.h>
#include "xcept.h"
using namespace std;
template <class T>
class Array1D{
friend ostream& operator<<(ostream&,const Array1D<T>&);
friend istream& operator>>(istream&,Array1D<T>&);
public:
Array1D(int size=0);
Array1D(const Array1D<T>& v);
Array1D(){delete[]element;}
T& operator[](int i)const;
int Size(){return size;}
Array1D<T>& operator =(const Array1D<T>& v);
Array1D<T> operator+()const;
Array1D<T> operator+(const Array1D<T>& v)const;
Array1D<T> operator-()const;
Array1D<T> operator-(const Array1D<T>& v)const;
Array1D<T> operator*(const Array1D<T>& v)const;
Array1D<T>&operator+=(const T& x);
Array1D<T>& ReSize(int sz);
Array1D<T>& geser_kanan();
Array1D<T>& geser_kiri();
private:
int size;
T*element;
};
template <class T>
Array1D<T>::Array1D(int sz)
{
size =sz;
element=new T[sz];
}
template <class T>
Array1D<T>::Array1D(const Array1D<T>& v)
{
size = v.size;
element=new T[size]; // get space
for (int i=0;i<size;i++)// copy elements
element[i]=v.element[i];
}
template <class T>
T& Array1D<T>::operator[](int i)const
{
return element[i];
}
template <class T>
Array1D<T>&Array1D<T>::operator =(const Array1D<T>& v)
{
if (this !=&v){
size=v.size;
delete[]element;
element=new T[size];
for(int i=0;i<size;i++)
element[i]=v.element[i];
}
return *this;
}
template <class T>
Array1D<T>Array1D<T>::operator+(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]- v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]+ v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-()const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=-element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator*(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]* v.element[i];
return w;
}
template <class T>
Array1D<T>&Array1D<T>::operator+=(const T& x)
{
for(int i=0; i<size;i++)
element[i]+=x;
return *this;
}
template <class T>
ostream& operator<<(ostream& out,const Array1D<T>& x)
{
for(int i=0; i<x.size;i++)
out<<x.element[i]<<" ";
return out;
}
template <class T>
Array1D<T>&Array1D<T>::ReSize(int sz)
{
delete[]element;
size=sz;
element=new T[size];
return *this;
}
template <class T>
istream& operator>>(istream& in,Array1D<T>& x)
{
for(int i=0; i<x.size;i++)
cin>>x.element[i]<<" ";
return cin;
}
template <class T>
Array1D<T>&Array1D<T>::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<T>&Array1D<T>::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<<" nilai X = "<<X<<endl;
cout<<" nilai X is "<<X<<endl;
Y=X;
cout<<" nilai Y is "<<Y<<endl;
X += 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 :";
X.Array1D<T> geser_kanan();
cout<<"setelah digeser kekiri :";
X.Array1D<T> geser_kiri();
system("PAUSE");
}
#include "xcept.h"
using namespace std;
template <class T>
class Array1D{
friend ostream& operator<<(ostream&,const Array1D<T>&);
friend istream& operator>>(istream&,Array1D<T>&);
public:
Array1D(int size=0);
Array1D(const Array1D<T>& v);
Array1D(){delete[]element;}
T& operator[](int i)const;
int Size(){return size;}
Array1D<T>& operator =(const Array1D<T>& v);
Array1D<T> operator+()const;
Array1D<T> operator+(const Array1D<T>& v)const;
Array1D<T> operator-()const;
Array1D<T> operator-(const Array1D<T>& v)const;
Array1D<T> operator*(const Array1D<T>& v)const;
Array1D<T>&operator+=(const T& x);
Array1D<T>& ReSize(int sz);
Array1D<T>& geser_kanan();
Array1D<T>& geser_kiri();
private:
int size;
T*element;
};
template <class T>
Array1D<T>::Array1D(int sz)
{
size =sz;
element=new T[sz];
}
template <class T>
Array1D<T>::Array1D(const Array1D<T>& v)
{
size = v.size;
element=new T[size]; // get space
for (int i=0;i<size;i++)// copy elements
element[i]=v.element[i];
}
template <class T>
T& Array1D<T>::operator[](int i)const
{
return element[i];
}
template <class T>
Array1D<T>&Array1D<T>::operator =(const Array1D<T>& v)
{
if (this !=&v){
size=v.size;
delete[]element;
element=new T[size];
for(int i=0;i<size;i++)
element[i]=v.element[i];
}
return *this;
}
template <class T>
Array1D<T>Array1D<T>::operator+(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]- v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]+ v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-()const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=-element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator*(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]* v.element[i];
return w;
}
template <class T>
Array1D<T>&Array1D<T>::operator+=(const T& x)
{
for(int i=0; i<size;i++)
element[i]+=x;
return *this;
}
template <class T>
ostream& operator<<(ostream& out,const Array1D<T>& x)
{
for(int i=0; i<x.size;i++)
out<<x.element[i]<<" ";
return out;
}
template <class T>
Array1D<T>&Array1D<T>::ReSize(int sz)
{
delete[]element;
size=sz;
element=new T[size];
return *this;
}
template <class T>
istream& operator>>(istream& in,Array1D<T>& x)
{
for(int i=0; i<x.size;i++)
cin>>x.element[i]<<" ";
return cin;
}
template <class T>
Array1D<T>&Array1D<T>::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<T>&Array1D<T>::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<<" nilai X = "<<X<<endl;
cout<<" nilai X is "<<X<<endl;
Y=X;
cout<<" nilai Y is "<<Y<<endl;
X += 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 :";
X.Array1D<T> geser_kanan();
cout<<"setelah digeser kekiri :";
X.Array1D<T> geser_kiri();
system("PAUSE");
}
#include <cstdlib>
#include <iostream>
#define maks 5
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();
private:
char a[maks];
};
array1d::array1d(){
for(int i=0;i<maks;i++)
a[i]='0';
}
void array1d::cetak(){
for(int i=0;i<maks;i++)
cout<<a[i]<<"";
}
ostream& operator<<(ostream& out, const array1d& x){
for(int i=0;i<maks;i++)
cout<<x.a[i]<<"";
cout<<endl;
return out;
}
istream& operator>>(istream& in, array1d& x){
int posisi;
cout<<"Mengisi array pada posisi ke: ";
in>>posisi;
if(posisi>0&&posisi<=maks){
cout<<"Masukkan elemen array nya: ";
in>>x.a[posisi-1];
}
else
cout<<"Anda memasukkan posisi di luar range...\n";
return in;
}
void array1d::geser_kanan(){
int n=maks;
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=maks;
int temp=a[0];
for(int i=0;i<n;i++)
a[i]=a[i+1];
a[n-1]=temp;
}
void array1d::hapus(){
int pil;
cout<<"Elemen yang akan di hapus: ";
cin>>pil;
int n=maks;
for(int i=pil-1;i<n;i++){
a[i]=a[i+1];
}
a[n-1]='0';
}
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 digeser kiri: "<<x;
x.geser_kanan();
cout<<"Isi Array setelah digeser kanan: "<<x;
x.hapus();
cout<<"Isi Array setelah dihapus: "<<x;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <iostream>
#define maks 5
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();
private:
char a[maks];
};
array1d::array1d(){
for(int i=0;i<maks;i++)
a[i]='0';
}
void array1d::cetak(){
for(int i=0;i<maks;i++)
cout<<a[i]<<"";
}
ostream& operator<<(ostream& out, const array1d& x){
for(int i=0;i<maks;i++)
cout<<x.a[i]<<"";
cout<<endl;
return out;
}
istream& operator>>(istream& in, array1d& x){
int posisi;
cout<<"Mengisi array pada posisi ke: ";
in>>posisi;
if(posisi>0&&posisi<=maks){
cout<<"Masukkan elemen array nya: ";
in>>x.a[posisi-1];
}
else
cout<<"Anda memasukkan posisi di luar range...\n";
return in;
}
void array1d::geser_kanan(){
int n=maks;
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=maks;
int temp=a[0];
for(int i=0;i<n;i++)
a[i]=a[i+1];
a[n-1]=temp;
}
void array1d::hapus(){
int pil;
cout<<"Elemen yang akan di hapus: ";
cin>>pil;
int n=maks;
for(int i=pil-1;i<n;i++){
a[i]=a[i+1];
}
a[n-1]='0';
}
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 digeser kiri: "<<x;
x.geser_kanan();
cout<<"Isi Array setelah digeser kanan: "<<x;
x.hapus();
cout<<"Isi Array setelah dihapus: "<<x;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <iostream>
using namespace std;
//template<class T>
class Kompleks{
friend class Operasi;
friend ostream& operator<<(ostream&, const Kompleks&);
friend istream& operator>>(istream&, Kompleks&);
public:
Kompleks(int s=0, int t=0):a(s),b(t){}
void cetak();
Kompleks operator-();
Kompleks operator-(const Kompleks&);
Kompleks operator+(const Kompleks&);
Kompleks operator*(const Kompleks&);
private:
int a;
int b;
};
//template<class T>
void Kompleks::cetak(){
if(b>0)cout<<"bilangan kompleks:"<<a<<"+"<<b<<"i";
else cout<<"bilangan kompleks:"<<a<<b<<"i";
cout<<endl;
}
// template<class T>
Kompleks Kompleks::operator-(){
Kompleks x;
x.a=a;
x.b=-b;
return x;
}
// template<classT>
Kompleks Kompleks::operator-(const Kompleks& m){
Kompleks x;
x.a=a-m.a;
x.b=b-m.b;
return x;
}
// template<class T>
Kompleks Kompleks::operator+(const Kompleks& m){
Kompleks x;
x.a=a+m.a;
x.b=b+m.b;
return x;
}
Kompleks Kompleks::operator*(const Kompleks&m)
{
Kompleks x;
x.a=a*m.a;
x.b=b*m.b;
return x;
}
// template<class T>
ostream& operator<<(ostream& out, const Kompleks& x){
if(x.b==0) out<<'['<<x.a<<']';
else if(x.a==0 && x.b==1)out<<'['<<"i"<<']';
else if(x.a==0 && x.b==-1)out<<'['<<"-i"<<']';
else if(x.a==0 && x.b>1)out<<'['<<x.b<<"i"<<']';
else if(x.a==0 && x.b<-1)out<<'['<<x.b<<"i"<<']';
else if(x.b==1)out<<'['<<x.a<<"+"<<"i"<<']';
else if(x.b>0)out<<'['<<x.a<<"+"<<x.b<<"i"<<']';
else if(x.b==-1)out<<'['<<x.a<<"-i"<<']';
else out<<'['<<x.a<<x.b<<"i"<<']';
return out;
}
//template <class T>
istream& operator>>(istream& in, Kompleks&x)
{
cout<<"MASUKKAN BAGIAN REAL : ";
in>>x.a;
cout<<"MASUKKAN BAGIAN IMAJINER : ";
in>>x.b;
return in;
}
//template <class T>
class Operasi{
public :
Kompleks jumlah(const Kompleks&,const Kompleks&);
Kompleks kali(const Kompleks&,const Kompleks&);
Kompleks kurang(const Kompleks&,const Kompleks&);
};
//template <class T>
Kompleks Operasi::jumlah(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=m.a+n.a;
temp.b=m.b+n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kurang(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=m.a-n.a;
temp.b=m.b-n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kali(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=(m.a*n.a)-(m.b*n.b);
temp.b=(m.a*n.b)-(m.b*n.a);
return temp;
}
int main (){
Kompleks x(2,3),y(4,-4),t;
Operasi z;
cout<<"\nMenggunakan cetak():\n";
x.cetak();
cout<<"\nMenggunakan overloading :"<<x;
cout<<"\nKonjugat :"<<-x<<endl;
y.cetak();
cout<<"\nPenjumlahan menggunakan methods :";
t=z.jumlah(x,y);
t.cetak();
cout<<"\nPenjumlahan menggunakan operator:";
t=x+y;
cout<<x<<"+"<<y<<"="<<t;
cout<<"\nPerkalian menggunakan methods:";
t=z.kali(x,y);
t.cetak();
cout<<"\nperkalian menggunakan operator:";
t=x*y;
cout<<x<<"*"<<y<<"="<<t;
t=x-y;
cout<<"\n"<<x<<"-"<<y<<"="<<t<<endl;
cout<<endl;
Kompleks n;
cin>>n;
cout<<n;
system("PAUSE");
return 0;
}
using namespace std;
//template<class T>
class Kompleks{
friend class Operasi;
friend ostream& operator<<(ostream&, const Kompleks&);
friend istream& operator>>(istream&, Kompleks&);
public:
Kompleks(int s=0, int t=0):a(s),b(t){}
void cetak();
Kompleks operator-();
Kompleks operator-(const Kompleks&);
Kompleks operator+(const Kompleks&);
Kompleks operator*(const Kompleks&);
private:
int a;
int b;
};
//template<class T>
void Kompleks::cetak(){
if(b>0)cout<<"bilangan kompleks:"<<a<<"+"<<b<<"i";
else cout<<"bilangan kompleks:"<<a<<b<<"i";
cout<<endl;
}
// template<class T>
Kompleks Kompleks::operator-(){
Kompleks x;
x.a=a;
x.b=-b;
return x;
}
// template<classT>
Kompleks Kompleks::operator-(const Kompleks& m){
Kompleks x;
x.a=a-m.a;
x.b=b-m.b;
return x;
}
// template<class T>
Kompleks Kompleks::operator+(const Kompleks& m){
Kompleks x;
x.a=a+m.a;
x.b=b+m.b;
return x;
}
Kompleks Kompleks::operator*(const Kompleks&m)
{
Kompleks x;
x.a=a*m.a;
x.b=b*m.b;
return x;
}
// template<class T>
ostream& operator<<(ostream& out, const Kompleks& x){
if(x.b==0) out<<'['<<x.a<<']';
else if(x.a==0 && x.b==1)out<<'['<<"i"<<']';
else if(x.a==0 && x.b==-1)out<<'['<<"-i"<<']';
else if(x.a==0 && x.b>1)out<<'['<<x.b<<"i"<<']';
else if(x.a==0 && x.b<-1)out<<'['<<x.b<<"i"<<']';
else if(x.b==1)out<<'['<<x.a<<"+"<<"i"<<']';
else if(x.b>0)out<<'['<<x.a<<"+"<<x.b<<"i"<<']';
else if(x.b==-1)out<<'['<<x.a<<"-i"<<']';
else out<<'['<<x.a<<x.b<<"i"<<']';
return out;
}
//template <class T>
istream& operator>>(istream& in, Kompleks&x)
{
cout<<"MASUKKAN BAGIAN REAL : ";
in>>x.a;
cout<<"MASUKKAN BAGIAN IMAJINER : ";
in>>x.b;
return in;
}
//template <class T>
class Operasi{
public :
Kompleks jumlah(const Kompleks&,const Kompleks&);
Kompleks kali(const Kompleks&,const Kompleks&);
Kompleks kurang(const Kompleks&,const Kompleks&);
};
//template <class T>
Kompleks Operasi::jumlah(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=m.a+n.a;
temp.b=m.b+n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kurang(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=m.a-n.a;
temp.b=m.b-n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kali(const Kompleks&m, const Kompleks&n)
{
Kompleks temp;
temp.a=(m.a*n.a)-(m.b*n.b);
temp.b=(m.a*n.b)-(m.b*n.a);
return temp;
}
int main (){
Kompleks x(2,3),y(4,-4),t;
Operasi z;
cout<<"\nMenggunakan cetak():\n";
x.cetak();
cout<<"\nMenggunakan overloading :"<<x;
cout<<"\nKonjugat :"<<-x<<endl;
y.cetak();
cout<<"\nPenjumlahan menggunakan methods :";
t=z.jumlah(x,y);
t.cetak();
cout<<"\nPenjumlahan menggunakan operator:";
t=x+y;
cout<<x<<"+"<<y<<"="<<t;
cout<<"\nPerkalian menggunakan methods:";
t=z.kali(x,y);
t.cetak();
cout<<"\nperkalian menggunakan operator:";
t=x*y;
cout<<x<<"*"<<y<<"="<<t;
t=x-y;
cout<<"\n"<<x<<"-"<<y<<"="<<t<<endl;
cout<<endl;
Kompleks n;
cin>>n;
cout<<n;
system("PAUSE");
return 0;
}
#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<<"\nMasuk bagian integer:";
in>>x.a;
cout<<"Masuk 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(){
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 s di-assign t\n";
cout<<"Nilai s\n"<<s;
cout<<"masukan nilai-nilai object d";
cin>>d;
cout<<"setelah d+t=> \n"<<d+t;
cout<<"Nilai d dinegatifkan\n"<<-d;
system("PAUSE");
return EXIT_SUCCESS;
}
#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<<"\nMasuk bagian integer:";
in>>x.a;
cout<<"Masuk 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(){
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 s di-assign t\n";
cout<<"Nilai s\n"<<s;
cout<<"masukan nilai-nilai object d";
cin>>d;
cout<<"setelah d+t=> \n"<<d+t;
cout<<"Nilai d dinegatifkan\n"<<-d;
system("PAUSE");
return EXIT_SUCCESS;
}
- Banyak perintah dan fungsi SQL yang dapat digunakan untuk mendefenisikan maupun memanipulasi database. Suatu rangkaian aktivitas yang berhubungan dengan pemulihan dan pengoptimalan perintah query di dalam database pada SQL dapat dituliskan fasilitas yang memiliki antarmuka grafis yaitu Query Analyzer. Beberapa aktivitas yang dimaksud, antara lain :
- Melakukan query pada databese SQL dengan menggunakan perintah-perintah SQL untuk melihat teks atau grid.
- Melihat representasi grafik dari langkah-langkah untuk mengakses query
- Melakukan analisa kinerja indeks
- Menjalankan skrip Transact SQL dari prosedur tersimpan.
1. DDL (Data Definition Language)
DDL merupakan bagian dari SQL yang digunakan untuk mendefenisikan data dan proyek database. Perintah digunakan untuk mendefenisikan suatu proyek, yaitu membuat, mengubah, menghapus dan memberikan izin.
Beberapa perintah pada SQL yang temasuk DDL, seperti :
Create Table untuk Membuat Tabel
Create Index untuk Membuat Index
Create View untuknMembuat View
Alter Table untuk Mengubah atau menyisipkan ke dalam tabel
Drop Table untuk Menghapus Tabel
Drop Index untuk Menghapus Index
Drop View untuk Menghapus View
Grant untuk Memberi izin akses kepada user
2. DML (Data Manipulation Language)
DML merupakan bagian dari SQL yang digunakan untuk memanipulasi data. Perintah-perintah ini bertugas untuk melakukan query dan perubahan yg dilakukan dalam suatu tabel
Beberapa perintah SQL yang termasuk DML, Seperti :
Select diigunakan untuk memilih data dari suatu tabel atau view
Insert digunakan untuk Menyisipkan baris dari suatu tabel
Delete digunakan untuk Menghapus baris dari suatu tabel
UpDate digunakan untuk Mengubah isi dari kolom (field) pada suatu tabel
Commit digunakan untuk Menuliskan perubahan ke dalam disk
Rollback dingunakan untuk Membatalkan perubahan yang dilakukan setelah perintah Commit yang berakhir.