Archive for the ‘Uncategorized’ Category


kali ini kami akan mencoba untuk membuat program memecah 1 stack menjadi 2 stack,

inilah sourcodeya:

#include <string>
#include <iostream>

using namespace std;
class stak{
 public:
        stak();
        void baru();
        void bagi1();
        void bagi2();
        void cetak1();
        void cetak_hasil();
 private:
        int top;
        char stackA[9];
        char stackC[9];
        char stackB[9];
        char x;};

stak::stak(){
        top=-1;
        cout<<“Tugas Kelompok Stack\n\n”;}

void stak::baru(){
        cout<<“Stack A\n”;
        for (int i=0; i<6; i++){
        cout<<“Masukkan stack [“<<i+1<<“] : “;
        cin>>x;
        top++;
        stackA[top]=x;}}

void stak::bagi2(){
     cout<<“\nKarakter yang di pop”;
     cout<<“\nStack B\n”;
     int i=0;
     for(i=2;i>=0;i–){
     x=stackA[i];
     stackB[i+1]=x;
     cout<<“stack ke [“<<i+1<<“] : “<< x<<endl;}}
   
void stak::bagi1(){
     cout<<“\nKarakter yang di pop”;
     cout<<“\nStack C\n”;
     int i=0;
     for(i=top;i>=3;i–){
     x=stackA[i];
     stackC[i-2]=x;
     cout<<“stack ke [“<<i-2<<“] : “<< x<<endl;}}

void stak::cetak1(){
        int i=0;
        for (i= top; i>=0; i–)
        cout<<“stack ke [“<<i+1<<“] : “<<stackA[i]<<endl;}

void stak::cetak_hasil(){
     cout<<“\nHasil pembagian stack”;
     cout<<“\n\tStack B\n”;
        int i=0;
        for (i= 3; i>=1; i–){
        cout<<“stackB ke [“<<i<<“] : “<<stackB[i]<<endl;}
        cout<<“\n\tStack C\n”;
        int j=0;
        for (j= 3; j>=1; j–){
        cout<<“stackC ke [“<<j<<“] : “<<stackC[j]<<endl;}}
       
int main (){
        int input;
        stak a;
        a.baru();
        //a.cetak1();
        a.bagi1();
        a.bagi2();
        a.cetak_hasil();
         system(“PAUSE”);
         return EXIT_SUCCESS;}

Queue

Posted: December 4, 2011 in Uncategorized

Pada posting kali kami ingin berbagi penjelasan tentang contoh study kasus QUEUE yang dibahas bersama tim kami yaitu “menggabungkan 2 antrian menjadi 1 antrian”, Sebelum kami mendemokan program kami mari kita pelajari dulu apa itu queue(antrian)?

Antrian (Queue) merupakan kumpulan data dimana penambahan data dilakukan di “belakang”(rear), dan penghapusan dilakukan pada elemen yang berada di “depan”(front). Prinsip dasar antrian adalah yang yang dating duluan itu yang dilayani terlebih dahulu(first come first serve[FCFS]) atau First in First out[FIFO].

Enqueue dan dequeue merupakan operasi yang dihubungkan dengan queues. Enqueu
menunjuk pada memasukkan data pada akhir queue dimana dequeue berarti
memindahkan elemen dari queue tersebut. Untuk mengingat bagaimana queue bekerja,
ingatlah arti khusus dari queue yaitu baris. Berikut ini bagaimana cara kerja queue.
Siapa yang akan mendapatkan kesempatan pertama untuk bertemu bintang idolanya
dari mereka yang sedang menunggu dalam sebuah barisan? Seharusnya orang pertama
yang berada pada barisan tersebut. Orang ini mendapat kesempatan pertama untuk
meninggalkan barisan. Hubungkan hal tersebut dengan bagaimana queue bekerja.

Berikut ini merupakan ilustrasi dari bagaimana tampilan dari queue:

Queue akan kosong jika nilai end kurang dari front. Sementara itu, akan penuh jika end
sama dengan n-1.

Source code program :

#include
#include
#define maks 14
#define Que1 3
#define Que2 3

class Queue{
friend ostream& operator<<(ostream&, const Queue&);
public:
Queue();
int penuh(int);
int kosong(int);
void cetak();
void pecah(Queue &, Queue&);
private:
char A[maks];
int banyak;
};
ostream& operator<<(ostream& out, const Queue& s)
{
out<<” isi Queue:”;
for(int i=0; i
out<<s.A[i]<<” “;
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<<” Isi Queue:”;
for(int i=0; i
cout<<A[i]<<” “;
}

char Queue::enqueue(char x){
if(penuh(banyak)) cout<<“Queue 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++;
}
return banyak;
}
char Queue::dequeue(){
char temp=A[–banyak];
A[banyak]=’0′;
return temp; }

void Queue::pecah(Queue &q1, Queue &q2){
int i;
char a[Que1],b[Que2];
Queue q3;
cout<<“setelah digabung \n”;
for(i=0; i<Que1; i++){
a[i]=q1.dequeue(a[i]);
q3.enqueue(a[i]);
}
for(i=0; i<Que2; i++){
b[i]=q2.dequeue();
q3.enqueue(b[i]);
}
cout<<q3<<endl;
}

int main(){
Queue p,q,r;
char z[3]={1,2,3};
char y[3]={4,5,6};
cout<<“Antrian 1:\n”;
for(int i=Que1-1; i>=0; i–){
p.enqueue(z[i]);
cout<<p<<endl;
}
cout<<“—————————“;
cout<<endl<<endl;
r.pecah(p,q);
cout<<endl;
getch();
}