Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- struct merk
- {
- string namaMerk;
- int stock;
- };
- struct data
- {
- string namaBarang;
- string deskripsiBarang;
- int harga;
- merk merkBarang;
- data *next;
- data *prev;
- };
- data *bantu,*baru,*awal=NULL,*akhir=NULL;
- int front=-1,rear=-1,maks;
- void inputData();
- void deleteData();
- void showData();
- void enqueue();
- void deque();
- bool isFull();
- bool isEmpty();
- int main()
- {
- char prompt;
- int pil;
- cout << "Masukkan jumlah maksimal antrian = ";
- cin >> maks;
- do
- {
- system("cls");
- cout << "Total data = " << rear+1 << endl;
- cout << "\nPilihan!!!" << endl;
- cout << "1. Input data" << endl;
- cout << "2. Show data" << endl;
- cout << "3. Delete data" << endl;
- cout << "4. Selesai" << endl;
- cout << "\n\nMasukkan pilihan = ";
- cin >> pil;
- switch(pil)
- {
- case 1:
- {
- enqueue();
- system("pause");
- break;
- }
- case 2:
- {
- showData();
- system("pause");
- break;
- }
- case 3:
- {
- deque();
- system("pause");
- break;
- }
- case 4:
- {
- return 0;
- }
- default:
- {
- cerr << "\n\nError : invalid input" << endl;
- }
- }
- }while (pil<=4);
- return 0;
- }
- void inputData()
- {
- baru=new data;
- cout << "\nMasukkan nama barang = ";
- cin >> baru->namaBarang;
- cout << "Masukkan deskripsi barang = ";
- cin >> baru->deskripsiBarang;
- cout << "Masukkan merk barang = ";
- cin >> baru->merkBarang.namaMerk;
- cout << "Masukkan jumlah barang yang tersedia = ";
- cin >> baru->merkBarang.stock;
- cout << "Masukkan harga barang = ";
- cin >> baru->harga;
- baru->next=baru->prev=NULL;
- if (awal==NULL)
- {
- awal=akhir=baru;
- }
- else
- {
- akhir->next=baru;
- baru->prev=akhir;
- akhir=baru;
- }
- }
- void deleteData()
- {
- if (awal==akhir)
- {
- delete awal;
- awal=akhir=NULL;
- }
- else
- {
- bantu=awal->next;
- bantu->prev=NULL;
- delete awal;
- awal=bantu;
- }
- }
- void showData()
- {
- baru=awal;
- while(baru!=NULL)
- {
- cout << "\nNama barang = " << baru->namaBarang;
- cout << "\nDeskripsi barang = " << baru->deskripsiBarang;
- cout << "\nMerk barang = " << baru->merkBarang.namaMerk;
- cout << "\nJumlah barang yang tersedia = " << baru->merkBarang.stock;
- cout << "\nHarga barang = " << baru->harga << endl;
- cout << endl;
- baru=baru->next;
- }
- }
- bool isFull()
- {
- if (rear+1==maks)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- bool isEmpty()
- {
- if (rear==-1)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- void enqueue()
- {
- if (isFull()==true)
- {
- cerr << "Error : Data sudah penuh!" << endl;
- }
- else
- {
- if (front==-1)
- {
- front++;
- }
- inputData();
- rear++;
- }
- }
- void deque()
- {
- if (isEmpty()==true)
- {
- cerr << "Error : Data masih kosong!" << endl;
- }
- else if (front==rear)
- {
- deleteData();
- front--;
- rear--;
- }
- else
- {
- deleteData();
- rear--;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement