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,*bantu1,*baru,*awal=NULL,*akhir=NULL;
- int total=0;
- int input;
- void inputData();
- void showData();
- void deleteData();
- int main()
- {
- char prompt;
- int pil;
- do
- {
- system("cls");
- cout << "Total data = " << total << endl;
- cout << "\nPilihan!!!" << endl;
- cout << "1. Input data" << endl;
- cout << "2. show data" << endl;
- cout << "3. Delete data" << endl;
- cout << "4. Done" << endl;
- cout << "\n\nMasukkan pilihan = ";
- cin >> pil;
- switch(pil)
- {
- case 1:
- {
- do
- {
- inputData();
- cout << "ingin input lagi? (y/n)";
- cin >> prompt;
- }while (prompt=='y');
- system("pause");
- break;
- }
- case 2:
- {
- showData();
- system("pause");
- break;
- }
- case 3:
- {
- deleteData();
- system("pause");
- break;
- }
- }
- }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;
- cout << "Tambahkan pada data index ke = ";
- cin >> input;
- if (awal==NULL)
- {
- awal=akhir=baru;
- }
- else
- {
- if (input<=0)
- {
- baru->next=awal;
- awal->prev=baru;
- awal=baru;
- }
- else if(input>=total)
- {
- akhir->next=baru;
- baru->prev=akhir;
- akhir=baru;
- }
- else
- {
- bantu=awal;
- for(int i=0;i<input-1;i++)
- {
- bantu=bantu->next;
- }
- baru->next=bantu->next;
- bantu->next->prev=baru;
- baru->prev=bantu;
- bantu->next=baru;
- }
- }
- total++;
- }
- 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;
- }
- }
- void deleteData()
- {
- if (total>0)
- {
- if (awal==akhir || total==1)
- {
- delete awal;
- awal=akhir=NULL;
- }
- else
- {
- cout << "\nHapus index ke = ";
- cin >> input;
- if (input<=1)
- {
- bantu=awal->next;
- bantu->prev=NULL;
- delete awal;
- awal=bantu;
- }
- else if(total>=total-1)
- {
- bantu=akhir->prev;
- bantu->next=NULL;
- delete akhir;
- akhir=bantu;
- }
- else
- {
- bantu=awal;
- for(int i=0;i<input-1;++i)
- {
- bantu=bantu->next;
- }
- bantu1=bantu->next->next;
- delete bantu->next;
- bantu->next=bantu1;
- bantu1->prev=bantu;
- }
- }
- cout << "\nData telah di hapus" << endl;
- total--;
- }
- else
- {
- cerr << "\nMaaf data masih kosong!!" << endl;;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement