Advertisement
firzaelbuho

2. Buku David

Oct 2nd, 2023
969
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.79 KB | Source Code | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4.  
  5. #define MAX_STACK_SIZE 7
  6.  
  7. struct Stack {
  8.     char books[MAX_STACK_SIZE][100];
  9.     int top;
  10. };
  11.  
  12. // Inisialisasi stack
  13. void initStack(struct Stack* stack) {
  14.     stack->top = -1;
  15. }
  16.  
  17. // Cek apakah stack kosong
  18. bool isEmpty(struct Stack* stack) {
  19.     return (stack->top == -1);
  20. }
  21.  
  22. // Cek apakah stack penuh
  23. bool isFull(struct Stack* stack) {
  24.     return (stack->top == MAX_STACK_SIZE - 1);
  25. }
  26.  
  27. // Menambahkan buku ke dalam stack (lemari)
  28. void push(struct Stack* stack, const char* bookTitle) {
  29.     if (!isFull(stack)) {
  30.         stack->top++;
  31.         strcpy(stack->books[stack->top], bookTitle);
  32.         printf("Buku '%s' berhasil ditambahkan ke dalam lemari.\n", bookTitle);
  33.     } else {
  34.         printf("Lemari sudah penuh, tidak bisa menambahkan buku.\n");
  35.     }
  36. }
  37.  
  38. // Mengambil buku dari stack (lemari)
  39. void pop(struct Stack* stack) {
  40.     if (!isEmpty(stack)) {
  41.         printf("David mengambil buku '%s' dari lemari.\n", stack->books[stack->top]);
  42.         stack->top--;
  43.     } else {
  44.         printf("Lemari sudah kosong, tidak ada buku yang dapat diambil.\n");
  45.     }
  46. }
  47.  
  48. int main() {
  49.     struct Stack lemariDavid;
  50.     initStack(&lemariDavid);
  51.  
  52.     // Menambahkan buku-buku ke dalam lemari
  53.     push(&lemariDavid, "The Secret Garden");
  54.     push(&lemariDavid, "The Catcher in the Rye");
  55.     push(&lemariDavid, "Harry Potter and the Sorcerer's Stone");
  56.     push(&lemariDavid, "To Kill a Mockingbird");
  57.     push(&lemariDavid, "1984");
  58.     push(&lemariDavid, "The Great Gatsby");
  59.     push(&lemariDavid, "Pride and Prejudice");
  60.  
  61.     // David mengambil buku-buku sesuai keinginannya
  62.     pop(&lemariDavid); // Mengambil buku "Pride and Prejudice"
  63.     pop(&lemariDavid); // Mengambil buku "The Great Gatsby"
  64.  
  65.     return 0;
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement