Advertisement
JonathanA007

Jonathan Arya Priguna_235150301111015/Stack Soal 1

Apr 7th, 2024 (edited)
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.36 KB | Source Code | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. // Definisikan maksimum ukuran stack
  5. #define MAX_SIZE 5
  6. using namespace std;
  7.  
  8.  
  9. char item;
  10. char arr_stack[MAX_SIZE];
  11. int count = 0;
  12. int keluar = 0;
  13.  
  14. // Fungsi untuk menambahkan item pada index ke-0 stack
  15. void push(char item) {
  16.     if (count == MAX_SIZE) {
  17.         cout << "\n# Stack Penuh"; // Pesan jika stack sudah penuh
  18.     } else {
  19.         for (int i = count; i > 0; i--) {
  20.             arr_stack[i] = arr_stack[i - 1]; // Geser semua elemen ke atas
  21.         }
  22.         arr_stack[0] = item; // Tambahkan item pada index ke-0
  23.         count++;
  24.         cout << "\n# PUSH No urut/index : " << 0 << ", Push :" << item; // Tampilkan pesan bahwa item telah ditambahkan
  25.     }
  26. }
  27.  
  28. // Fungsi untuk menghapus item pada index ke-0 stack
  29. void pop() {
  30.     if (count == 0) {
  31.         cout << "\n## Stack kosong"; // Pesan jika stack kosong
  32.     } else {
  33.         cout << "\n##POP No urut/index : " << 0 << ", Value :" << arr_stack[0]; // Tampilkan item yang dihapus
  34.         for (int i = 0; i < count - 1; i++) {
  35.             arr_stack[i] = arr_stack[i + 1]; // Geser semua elemen ke bawah
  36.         }
  37.         count--;
  38.     }
  39. }
  40.  
  41. // Fungsi untuk menampilkan seluruh elemen stack
  42. void printAll() {
  43.     cout << "\n## Stack Size : " << count; // Tampilkan ukuran stack
  44.     for (int i = count - 1; i >= 0; i--) {
  45.         cout << "\n## No Urut/index : " << i << ", Value :" << arr_stack[i]; // Tampilkan setiap elemen stack beserta indeksnya
  46.         cout << "\nJonathan Arya Priguna" << endl;
  47.         cout << "235150301111015" << endl;
  48.     }
  49. }
  50.  
  51. // Fungsi untuk menampilkan menu operasi stack
  52. void menu() {
  53.     int choice;
  54.     cout << "\nMasukkan operasi yang akan dilakukan (1:push, 2:pop, 3:print) : "; // Tampilkan pilihan menu
  55.     cin >> choice;
  56.     switch (choice) {
  57.         case 1: {
  58.             cout << "\nMasukkan huruf yang akan dipush : "; // Minta input untuk push
  59.             cin >> item;
  60.             push(item);
  61.             break;
  62.         }
  63.         case 2:
  64.             pop();
  65.             break;
  66.         case 3:
  67.             printAll();
  68.             break;
  69.         default:
  70.             cout << "\n1:push, 2:pop, 3:print\n"; // Pesan jika operasi tidak valid
  71.             keluar = 1;
  72.             break;
  73.     }
  74. }
  75.  
  76. // Fungsi utama
  77. int main() {
  78.     do {
  79.         menu();
  80.     } while (keluar == 0);
  81.  
  82.     return 0;
  83. }
  84.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement