Advertisement
Wan_ich1

tugas tambahan modul 3

May 20th, 2018
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.64 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. struct merk
  7. {
  8.     string namaMerk;
  9.     int stock;
  10. };
  11.  
  12. struct data
  13. {
  14.     string namaBarang;
  15.     string deskripsiBarang;
  16.     int harga;
  17.     merk merkBarang;
  18.     data *next;
  19.     data *prev;
  20. };
  21.  
  22. data *bantu,*baru,*awal=NULL,*akhir=NULL;
  23. int front=-1,rear=-1,maks;
  24.  
  25. void inputData();
  26. void deleteData();
  27. void showData();
  28. void enqueue();
  29. void deque();
  30. bool isFull();
  31. bool isEmpty();
  32.  
  33. int main()
  34. {
  35.     char prompt;
  36.     int pil;
  37.  
  38.     cout << "Masukkan jumlah maksimal antrian = ";
  39.     cin >> maks;
  40.  
  41.     do
  42.     {
  43.         system("cls");
  44.         cout << "Total data = " << rear+1 << endl;
  45.         cout << "\nPilihan!!!" << endl;
  46.         cout << "1. Input data" << endl;
  47.         cout << "2. Show data" << endl;
  48.         cout << "3. Delete data" << endl;
  49.         cout << "4. Selesai" << endl;
  50.  
  51.         cout << "\n\nMasukkan pilihan = ";
  52.         cin >> pil;
  53.  
  54.         switch(pil)
  55.         {
  56.         case 1:
  57.             {
  58.                 enqueue();
  59.                 system("pause");
  60.                 break;
  61.             }
  62.         case 2:
  63.             {
  64.                 showData();
  65.                 system("pause");
  66.                 break;
  67.             }
  68.         case 3:
  69.             {
  70.                 deque();
  71.                 system("pause");
  72.                 break;
  73.             }
  74.         case 4:
  75.             {
  76.                 return 0;
  77.             }
  78.         default:
  79.             {
  80.                 cerr << "\n\nError : invalid input" << endl;
  81.             }
  82.         }
  83.     }while (pil<=4);
  84.  
  85.     return 0;
  86. }
  87.  
  88.  
  89. void inputData()
  90. {
  91.     baru=new data;
  92.     cout << "\nMasukkan nama barang = ";
  93.     cin >> baru->namaBarang;
  94.     cout << "Masukkan deskripsi barang = ";
  95.     cin >> baru->deskripsiBarang;
  96.     cout << "Masukkan merk barang = ";
  97.     cin >> baru->merkBarang.namaMerk;
  98.     cout << "Masukkan jumlah barang yang tersedia = ";
  99.     cin >> baru->merkBarang.stock;
  100.     cout << "Masukkan harga barang = ";
  101.     cin >> baru->harga;
  102.     baru->next=baru->prev=NULL;
  103.  
  104.     if (awal==NULL)
  105.     {
  106.         awal=akhir=baru;
  107.     }
  108.     else
  109.     {
  110.         akhir->next=baru;
  111.         baru->prev=akhir;
  112.         akhir=baru;
  113.     }
  114. }
  115.  
  116. void deleteData()
  117. {
  118.     if (awal==akhir)
  119.     {
  120.         delete awal;
  121.         awal=akhir=NULL;
  122.     }
  123.     else
  124.     {
  125.         bantu=awal->next;
  126.         bantu->prev=NULL;
  127.         delete awal;
  128.         awal=bantu;
  129.     }
  130. }
  131.  
  132. void showData()
  133. {
  134.     baru=awal;
  135.     while(baru!=NULL)
  136.     {
  137.         cout << "\nNama barang = " << baru->namaBarang;
  138.         cout << "\nDeskripsi barang = " << baru->deskripsiBarang;
  139.         cout << "\nMerk barang = " << baru->merkBarang.namaMerk;
  140.         cout << "\nJumlah barang yang tersedia = " << baru->merkBarang.stock;
  141.         cout << "\nHarga barang = " << baru->harga << endl;
  142.         cout << endl;
  143.         baru=baru->next;
  144.     }
  145. }
  146.  
  147. bool isFull()
  148. {
  149.     if (rear+1==maks)
  150.     {
  151.         return true;
  152.     }
  153.     else
  154.     {
  155.         return false;
  156.     }
  157. }
  158.  
  159. bool isEmpty()
  160. {
  161.     if (rear==-1)
  162.     {
  163.         return true;
  164.     }
  165.     else
  166.     {
  167.         return false;
  168.     }
  169. }
  170.  
  171. void enqueue()
  172. {
  173.     if (isFull()==true)
  174.     {
  175.         cerr << "Error : Data sudah penuh!" << endl;
  176.     }
  177.     else
  178.     {
  179.         if (front==-1)
  180.         {
  181.             front++;
  182.         }
  183.         inputData();
  184.         rear++;
  185.     }
  186. }
  187.  
  188. void deque()
  189. {
  190.     if (isEmpty()==true)
  191.     {
  192.         cerr << "Error : Data masih kosong!" << endl;
  193.     }
  194.     else if (front==rear)
  195.     {
  196.         deleteData();
  197.         front--;
  198.         rear--;
  199.     }
  200.     else
  201.     {
  202.         deleteData();
  203.         rear--;
  204.     }
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement