Selasa, 08 September 2020

Struktur Data Pertemuan 8 Double Ended Queue

Kontruksi Data Pertemuan 8 Double Ended Queue.


Soal

1. Buatlah suatu program Animasi Deque dengan 6 buah pilihan :

INSERT KIRI, INSERT KANAN, DELETE KIRI, DELETE KANAN, CETAK ANTRIAN, QUIT.

 

#include<iostream>

#include<conio.h>

#include<stdlib.h>

#define n 10

using namespace std;

 

void INSERT();

void DELETE();

void CETAKLAYAR();

void Inisialisasi();

void RESET();

int PIL,F,R;

char PILIHAN [1],HURUF;

char Q[n];

int main ( )

{

     Inisialisasi();

     do

     {

           cout<<" ANIMASI QUEUE"<<endl;

           cout<<"=============="<<endl;

           cout<<"1. INSERT"<<endl;

           cout<<"2. DELETE"<<endl;

           cout<<"3. CETAK QUEUE"<<endl;

           cout<<"4. QUIT"<<endl;

           cout<<"PILIHAN : "; cin>>PILIHAN;

           PIL=atoi(PILIHAN);

           switch (PIL)

           {

           case 1:

                INSERT ();

                break;

           case 2:

                DELETE();

                break;

           case 3:

                CETAKLAYAR ();

                break;

           default:

                cout<<"TERIMA KASIH"<<endl;

                break;

           }

           cout<<"press any key to continue"<<endl;

           getch();

           system("cls");

     }

     while (PIL<4);

}

void INSERT()

{

      if(R<n-1)

      {

           cout<<endl<<"MASUKAN 1 HURUF : ";

         cin>>HURUF;

         Q[++R]=HURUF;

}

else

    cout<<"Antrian Penuh"<<endl;

}

 

void CETAKLAYAR()

{

     if(F<R+1)

     {

           for (int i=F;i<=R;i++)

                cout<<"Q["<<i<<"] = "<<Q[i]<<endl;

     }

     else

           cout<<"Antrian Kosong"<<endl;

}

void DELETE()

{

     if(F<=R+1)

     {

           HURUF=Q[F];

           Q[F++]=HURUF;

           cout<<"Data yang diambil : "<<HURUF<<endl;

           if(F==n)

                RESET();

     }

     else

           cout<<"Antrian Kosong"<<endl;

}

void Inisialisasi()

{

     F=0;

     R=-1;

}

 

void RESET()

{

     F=0;

     R=-1;

}

 

 

 

 








Readmore → Struktur Data Pertemuan 8 Double Ended Queue

Struktur Data Pertemuan 7 Circular Queue

Struktur Data Pertemuan 7 Circular Queue

 

Soal

1. Buatlah suatu program Animasi Antrian dengan 4 buah pilihan : INSERT,DELETE, CETAK ANTRIAN, QUIT.

Jika dipilih INSERT : program akan meminta user untuk menginput sebuah karakter yang akan dimasukan kedalam antrian

Jika dipilih DELETE : maka karakter pertama masuk akan dikeluarkan dari antrian

Jika dipilih CETAK ANTRIAN : komputer menampilkan karakter yang ada pada antrian

Jika dipilih QUIT : program keluar

 

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

using namespace std;

int main() {

    int queue[10], i, head=-1, tail=-1, enqueue, pil, urut=0, tmp;

  

    do {

        system("pause");

        system("cls");

        printf("1. INSERT \n");

        printf("2. DELETE \n");

        printf("3. CETAK ANTRIAN \n");

        printf("4. QUIT \n");

        printf("Silahkan masukkan pilihan anda :  \n");

        scanf("%d", &pil);

        printf("\n");

 

      

        if(pil==1) {if(tail==9) {printf("Antrian Penuh ");}

                    else if(tail==-1) {head++;tail++;

                                       printf("Masukkan nilai : \n");

                                       scanf("%d", &enqueue);

                                       queue[tail]=enqueue;

                                       urut++;

                                       printf("Nomor urut : %d \n", urut);}

                    else {tail++;

                          printf("Masukkan nilai :  \n");

                          scanf("%d", &enqueue);

                          queue[tail]=enqueue;

                          urut++;

                          printf("Nomor urut : %d \n", urut);

                          printf("Anda harus menunggu %d antrian lagi \n", tail);}}

                        

        else if(pil==2) {if(tail==-1) {printf("Antrian kosong");}

                         else {printf("Data dengan nilai %d sudah dilayani \n", queue[head]);

                               tmp=queue[head];

                               for(i=head;i<=tail;i++) {queue[i]=queue[i+1];}

                               queue[tail]=tmp;

                               urut++;

                               printf("Data dengan nilai %d masuk antrian \n", queue[tail], urut);

                               if(tail==0) {printf("Yang bersangkutan langsung dilayani");}

                               else {printf("Yang bersangkutan harus menunggu %d antrian lagi", tail);}}}

                             

        else if(pil==3) {if(tail==-1) {printf("Antrian kosong \n");}

                         else {for(i=head;i<=tail;i++) {printf("Antrian ke-%d : %d \n", i+1, queue[i]);}

                         printf("\n");}}

                       

        else if(pil==4) {printf("Anda telah selesai menggunakan program Queue Circular \n");}

      

        else {printf("Pilihan yang anda masukkan tidak valid \n");}

        } while(pil!=4);

      

    getch();

}

 















Readmore → Struktur Data Pertemuan 7 Circular Queue

Struktur Data Pertemuan 6 LINEAR QUEUE

Struktur Data Pertemuan 6 LINEAR QUEUE  

Soal

1. Buatlah suatu program Animasi Antrian dengan 4 buah pilihan : INSERT,DELETE, CETAK ANTRIAN, QUIT.

Jika dipilih INSERT : program akan meminta user untuk menginput sebuah karakter yang akan dimasukan kedalam antrian

Jika dipilih DELETE : maka karakter pertama masuk akan dikeluarkan dari antrian

Jika dipilih CETAK ANTRIAN : komputer menampilkan karakter yang ada pada antrian

Jika dipilih QUIT : program keluar

 

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

using namespace std;

int main() {

    int queue[10], i, head=-1, tail=-1, enqueue, pil, urut=0, tmp;

  

    do {

        system("pause");

        system("cls");

        printf("1. INSERT \n");

        printf("2. DELETE \n");

        printf("3. CETAK ANTRIAN \n");

        printf("4. QUIT \n");

        printf("Silahkan masukkan pilihan anda :  \n");

        scanf("%d", &pil);

        printf("\n");

 

      

        if(pil==1) {if(tail==9) {printf("Antrian Penuh ");}

                    else if(tail==-1) {head++;tail++;

                                       printf("Masukkan nilai : \n");

                                       scanf("%d", &enqueue);

                                       queue[tail]=enqueue;

                                       urut++;

                                       printf("Nomor urut : %d \n", urut);}

                    else {tail++;

                          printf("Masukkan nilai :  \n");

                          scanf("%d", &enqueue);

                          queue[tail]=enqueue;

                          urut++;

                          printf("Nomor urut : %d \n", urut);

                          printf("Anda harus menunggu %d antrian lagi \n", tail);}}

                        

        else if(pil==2) {if(tail==-1) {printf("Antrian kosong");}

                         else {printf("Data dengan nilai %d sudah dilayani \n", queue[head]);

                               tmp=queue[head];

                               for(i=head;i<=tail;i++) {queue[i]=queue[i+1];}

                               queue[tail]=tmp;

                               urut++;

                               printf("Data dengan nilai %d masuk antrian \n", queue[tail], urut);

                               if(tail==0) {printf("Yang bersangkutan langsung dilayani");}

                               else {printf("Yang bersangkutan harus menunggu %d antrian lagi", tail);}}}

                             

        else if(pil==3) {if(tail==-1) {printf("Antrian kosong \n");}

                         else {for(i=head;i<=tail;i++) {printf("Antrian ke-%d : %d \n", i+1, queue[i]);}

                         printf("\n");}}

                       

        else if(pil==4) {printf("Anda telah selesai menggunakan program Queue Circular \n");}

      

        else {printf("Pilihan yang anda masukkan tidak valid \n");}

        } while(pil!=4);

      

    getch();

}

 

















Readmore → Struktur Data Pertemuan 6 LINEAR QUEUE

Struktur Data Pertemuan 5 Double Stack

Struktur Data Pertemuan 5 Double Stack

 

1. Susunlah program untuk menginput data dari keyboard terus menerus hingga stack1 penuh

2. Susunlah program untuk menginput data dari keyboard terus menerus hingga stack2 penuh

3. Susunlah program untuk menghapus stack1 hingga kosong

4. Susunlah program untuk menghapus stack2 hingga kosong

 

#include <stdio.h>

#include <conio.h>

#include<stdlib.h>

#define MAX 10

#define true 1

#define false 0

using namespace std;

char stack[MAX];

int top1, top2;

void init(void);

void push(char data, int nomorstack);

char pop(int nomorstack);

void clear(int nomorstack);

int full(void);

int empty(int nomorstack);

void baca();

main(){

char data;

int pilih, nomorstack;

init();

do{

system("cls");

printf("Contoh program double stack");

printf("\n1. Push");

printf("\n2. Pop");

printf("\n3. Clear");

printf("\n4. Baca");

printf("\n5. Selesai…");

printf("\nPilihan anda  : \n");

scanf("%i",&pilih);

switch(pilih){

case 1: printf("Push\n");

printf("Masukkan datanya :\n"); scanf("%s",&data);

printf("Mau dimasukkan ke stack berapa ? 1 atau 2 ? :\n");

scanf("%i",&nomorstack);

push(data, nomorstack);

break;

case 2: printf("Pop\n");

printf("Masukkan nomor stack\n");

scanf("%i",&nomorstack);

data=pop(nomorstack);

printf("\nData yang dikeluarkan adalah %s", data);

break;

case 3: printf("Clear\n");

printf("Nomor Stack yang akan dikosongkan \n");

scanf("%i",&nomorstack);

clear(nomorstack);

break;

case 4: printf("Baca\n");

baca();

break;

case 5: printf("Exit");

break;

default: printf("Pilihan yang anda masukkan tidak ada");

break;

}

}while(pilih!=5);

getch();

}

//init

void init(){

top1=0;

top2=MAX+1;

}

//PUSH

void push(char data, int nomorstack){

if(full()!=true){

switch(nomorstack){

case 1: top1++;

stack[top1]=data;

break;

case 2: top2--;

stack[top2]=data;

break;

default: printf("\nNomor stack salah");

break;

}

}

else

printf("\nStack penuh");

getch();

}

//POP

char pop(int nomorstack){

char data;

if(empty(nomorstack)!=true){

switch(nomorstack){

case 1: data=stack[top1];

top1--;

return data;

break;

case 2: data=stack[top2];

top2++;

return data;

break;

default: printf("\nNomor stack salah");

break;

}

}

else printf("\nStack masih kosong");

getch();

return 0;

}

//cek full

int full(void){

if(top1+1>=top2){

return true;

}

else return false;

}

//cek empty

int empty(int nomorstack){

switch(nomorstack){

case 1: if(top1==0) return true;

else return false;

break;

case 2: if(top2==MAX+1) return true;

else return false;

break;

default: printf("nomor stack salah");

break;

}

}

//clearing

void clear(int nomorstack){

switch(nomorstack){

case 1: top1=0;

break;

case 2: top2=MAX+1;

break;

default: printf("Nomor stack salah");

break;

}

}

void baca(){

int i;

printf("Baca isi stack pertama \n");

for(i=1; i<=top1; i++){

printf("  %c ",stack[i]);

printf("\n");

}

printf("Isi stack kedua\n");

for(i=MAX; i>=top2; i--){

printf("  %c ",stack[i]);

printf("\n");

}

getch();

}






 


Readmore → Struktur Data Pertemuan 5 Double Stack