Advertisement
feriyan8

share

Mar 18th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.77 KB | None | 0 0
  1. #include <iostream>
  2. #define MAX 5
  3. using namespace std;
  4.  
  5. struct Kartu {
  6.     int top, angka[MAX];
  7.     char jenis[8];
  8. }Tumpukan;
  9.  
  10. void init(){
  11.     Tumpukan.top = -1;
  12.     Tumpukan.jenis[8] = -1;
  13. }
  14.  
  15. bool isEmpty() {
  16.   return Tumpukan.top == -1;
  17.   return Tumpukan.jenis[8] == -1;
  18. }
  19.  
  20. bool isFull() {
  21.     return Tumpukan.top == MAX-1;
  22.     return Tumpukan.jenis[8] == MAX-1;
  23. }
  24.  
  25. void push() {
  26.    if (isFull()) {
  27.         cout << "\nTumpukan penuh"<<endl;
  28.     }
  29.     else {
  30.     Tumpukan.top++;
  31.     Tumpukan.jenis[8]++;
  32.     cout << "\nMasukkan Angka = "; cin >> Tumpukan.angka[Tumpukan.top];
  33.     cout << "\nMasukkan Jenis Kartu = "; cin.getline(Tumpukan.jenis,8);
  34.     cout << "Kartu " << Tumpukan.angka[Tumpukan.top] <<Tumpukan.angka[Tumpukan.jenis[8]]<< " masuk ke stack"<<endl;
  35.     }
  36. }
  37.  
  38. void pop() {
  39.     if (isEmpty()) {
  40.         cout << "\nData kosong\n"<<endl;
  41.     }
  42.     else {
  43.     cout << "\nData "<<Tumpukan.angka[Tumpukan.top] <<Tumpukan.angka[Tumpukan.jenis[8]] <<" sudah terambil"<<endl;
  44.     Tumpukan.top--;
  45.     Tumpukan.jenis[8]--;
  46.     }
  47. }
  48.  
  49. void printStack() {
  50.     if (isEmpty()) {
  51.         cout << "Kartu Tumpukan Kosong";
  52.     }
  53.     else {
  54.     cout << "\nKartu Tumpukan : ";
  55.         for (int i = Tumpukan.top; i >= 0; i--){
  56.             cout << Tumpukan.angka[i] << ((i == 0) ? "" : "  ");
  57.         }
  58.         for (int j = Tumpukan.jenis[8]; j >= 0; j--){
  59.             cout << Tumpukan.angka[j] << ((j == 0) ? "" : "  ");
  60.     }
  61. }
  62.  
  63. int main() {
  64.     int pilihan, angka;
  65.     init();
  66.     do {
  67.     printStack();
  68.     cout<<endl;
  69.         cout << "\n1. Buka Kartu (Pop)\n"
  70.         <<"2. Entri (Push)\n"
  71.         <<"3. Keluar\n"
  72.         <<"Masukkan Pilihan: ";
  73.         cin >> pilihan;
  74.         switch (pilihan)
  75.         {
  76.         case 1:
  77.             pop();
  78.             break;
  79.         case 2:
  80.             push();
  81.             break;
  82.         default:
  83.       cout << "Pilihan tidak tersedia" << endl;
  84.             break;
  85.         }
  86.     } while (pilihan!=3);
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement