Translate

Jumat, 10 Maret 2017

 Dengan mengembangkan code berikut, buatlah program STACK dengan ketentuan:
a. Memiliki fungsi PUSH (input data) 
b. Memiliki fungsi POP (ambil satu data)
c. Memiliki fungsi CLEAR (delete all data)
d. Memiliki fungsi PRINT (cetak data pada layar)
e. (opsional) jika user ingin menampilkan data yang diinputkan, maka data tersebut telah terurut secara ascending


#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
#define max_stak 15

struct stak{
    int top;
    string data[15];
}tumpuk;

void push(string d){
    tumpuk.top++;
    tumpuk.data[tumpuk.top]=d;
    cout<<"\tData berhasil dimasukkan \n";
    getch();
}

void pop(){

        cout<<"\tData "<<tumpuk.data[tumpuk.top]<<" terambil \n";
        tumpuk.top--;
        getch();
   
}

int isFull(){
    if(tumpuk.top==max_stak-1){
        return 1;
    }
    else{
        return 0;
    }
}

int isEmpty(){
    if(tumpuk.top==-1){
        return 1;
    }
    else{
        return 0;
    }
}

void clear(){
    tumpuk.top=-1;
    cout<<"\tSemua data terhapus. ";
}

void tukar(int a,int b)
{
    string t;
    t=tumpuk.data[b];
    tumpuk.data[b]=tumpuk.data[a];
    tumpuk.data[a]=t;
}

void print(){

    for(int i=0;i<=tumpuk.top;i++){
        for(int j=i+1;j<=tumpuk.top;j++){//mencari data terkecil
            if(tumpuk.data[i]<tumpuk.data[j]){
                tukar(i,j);
            }
        }
    }

        for (int i=tumpuk.top;i>=0;i--)
        cout<<"\t"<<tumpuk.data[i]<<endl;
    getch();
}

int main()
{
    int a;
    string input;
    tumpuk.top=-1;
    do{
        system("cls");
           
            cout<<"PRAKTIKUM 5"<<endl;
            cout<<"SOAL 1"<<endl;
            cout<<"+----------------------+"<<endl;
            cout<<"|Muh. Budi Dharmawan P |"<<endl;
            cout<<"|E1E1 15 034           |"<<endl;
            cout<<"+----------------------+\n"<<endl;
            cout<<"==============***================"<<endl;
            cout<<"\tMenu Stack \n\t1. Push \n\t2. Pop \n\t3. Clear \n\t4. Print \n\t5. Terminate \nMasukkan pilihan menu(1,2,3,4,5)  : ";
            cin>>a;
            fflush(stdin);
        switch(a)
        {
        case 1:
            if(isFull()==1){
                cout<<"Stack penuh. \n";
                getch();
            }
            else{
                cout<<"Masukkan data : ";
                //fflush(stdin);
                cin>>input;
                push(input);
            }
            break;
        case 2:
            if(isEmpty()==1){
                cout<<"Stack kosong.";
                getch();
            }
            else{
                pop();
            }
            break;
        case 3:
            clear();
            cout<<"Stack kosong. \n";
            getch();
            break;
        case 4:
            if(isEmpty()==1){
                cout<<"Stack kosong";
                getch();
            }
            else{
                print();
            }
        }
    }while(a!=5);

}


Tidak ada komentar:

Posting Komentar