Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- #include <string.h>
- using namespace std;
- struct barang{
- char nama_barang[20];
- int harga;
- int stok;
- barang *next;
- barang *prev;
- };
- struct transaksi{
- char nama_barang[20];
- int jumlah_beli;
- transaksi *next;
- transaksi *prev;
- };
- struct pembelian{
- transaksi *beli_barang, *depan, *belakang, *letak, *hapus_belakang, *hapus_depan;
- int total;
- double full, diskon;
- int bayar;
- int kembalian;
- pembelian *next;
- pembelian *prev;
- };
- pembelian *depan, *belakang, *baru, *posisi, *tujuan, *bantu, *hapus;
- barang *head, *tail, *tambah, *position;
- void stok(){
- tambah = new barang;
- cout<<"Nama Barang = ";
- cin.getline(tambah->nama_barang, 20);
- cout<<"Harga Barang = ";
- cin>>tambah->harga;
- cout<<"Stok = ";
- cin>>tambah->stok;
- tambah->next = NULL;
- tambah->prev = NULL;
- if(head == NULL){
- head = tambah;
- tail = tambah;
- }
- else{
- tail->next = tambah;
- tambah->prev = tail;
- tail = tambah;
- }
- }
- void tampil_barang(){
- position = head;
- while(position != NULL){
- cout<<"Nama Barang = "<<position->nama_barang<<"( @"<<position->stok<<" pcs) Harga = "<<position->harga<<endl;
- position = position->next;
- }
- }
- void tambah_belakang(){
- if(depan == NULL){
- depan = baru;
- belakang = baru;
- }
- else{
- belakang->next = baru;
- baru->prev = belakang;
- belakang = baru;
- }
- }
- void tambah_depan(){
- if(depan == NULL){
- depan = baru;
- belakang = baru;
- }
- else{
- baru->next = depan;
- depan->prev = baru;
- depan = baru;
- }
- }
- void tambahTengah(){
- int letak;
- cout<<"\nMenyisipkan data ke posisi berapa = ";cin>>letak;
- baru->next=NULL;
- posisi=depan;
- for(int i = 1; i<letak; i++){
- bantu=posisi;
- posisi=posisi->next;
- }
- bantu->next=baru;
- baru->prev = bantu;
- baru->next=posisi;
- posisi->prev = baru;
- }
- void hapusTengah(){
- int letak;
- cout<<"\ndata ke posisi berapa yang ingin dihapus = ";cin>>letak;
- hapus=depan;
- while(hapus->next->next!=NULL){
- bantu=hapus;
- hapus=hapus->next;
- }
- posisi=hapus;
- tujuan = hapus->next;
- bantu->next=tujuan;
- tujuan->prev = bantu;
- hapus=NULL;
- cout<<"Data Terhapus";
- }
- void beli_barang(){
- system("CLS");
- char beli_lagi;
- int tambah_mana;
- baru = new pembelian;
- baru->total = 0;
- baru->diskon = 0;
- baru->full = 0;
- baru->depan = NULL;
- baru->belakang = NULL;
- do{
- system("CLS");
- tampil_barang();
- baru->beli_barang = new transaksi;
- cout<<"Masukan Nama barang yg ingin dibeli = ";
- cin.getline(baru->beli_barang->nama_barang, 20);
- cout<<"Masukan Jumlah Barang yg ingin dibeli = ";
- cin>>baru->beli_barang->jumlah_beli;
- baru->beli_barang->next = NULL;
- if(baru->depan == NULL){
- baru->depan = baru->beli_barang;
- baru->belakang = baru->beli_barang;
- }
- else{
- baru->belakang->next = baru->beli_barang;
- baru->beli_barang->prev = baru->belakang;
- baru->belakang = baru->beli_barang;
- }
- position = head;
- while(position != NULL){
- if(strcmp(position->nama_barang, baru->beli_barang->nama_barang)==0){
- position->stok = position->stok - baru->beli_barang->jumlah_beli;
- baru->total = baru->total + position->harga * baru->beli_barang->jumlah_beli;
- if(baru->total > 200000){
- baru->diskon = baru->total * 20/100;
- baru->full = baru->total - baru->diskon;
- }
- else {
- baru->diskon = baru->total * 0;
- baru->full = baru->total - baru->diskon;
- }
- break;
- }
- if(position == tail){
- break;
- }
- position = position->next;
- }
- cout<<"Anda Ingin Beli Lagi = ";
- cin>>beli_lagi;
- cin.ignore();
- }while(beli_lagi == 'y');
- baru->next = NULL;
- cout<<"Anda Ingin menambahkan Dimana ? "<<endl;
- cout<<"1. Tambah Depan "<<endl;
- cout<<"2. Tambah Tengah "<<endl;
- cout<<"2. Tambah Belakang "<<endl;
- cout<<"Masukan Pilihan Anda "<<endl;
- cin>>tambah_mana;
- if(tambah_mana == 1)
- tambah_depan();
- else if(tambah_mana == 2)
- tambahTengah();
- else if(tambah_mana == 3)
- tambah_belakang();
- else
- cout<<"Pilihan Tidak Ada "<<endl;
- }
- void tampil_pembeli(){
- system("CLS");
- posisi = depan;
- while(posisi!=NULL){
- posisi->letak = posisi->depan;
- while(posisi->letak!=NULL){
- cout<<"Nama Barang = "<< posisi->letak->nama_barang <<endl;
- cout<<"Banyak Barang yg dibeli = "<< posisi->letak->jumlah_beli <<endl;
- posisi->letak = posisi->letak->next;
- }
- cout<<"Harga = "<<posisi->total<<endl;
- cout<<"Diskon = "<<posisi->diskon<<endl;
- cout<<"Total = "<<posisi->full<<endl;
- posisi = posisi->next;
- }
- }
- void hapus_depan ()
- {
- posisi= depan;
- depan=posisi->next;
- depan->prev = NULL;
- posisi=NULL;
- cout<< "data hilang";
- }
- void hapus_belakang ()
- {
- posisi=belakang;
- belakang = posisi->prev;
- belakang->next = NULL;
- posisi = NULL;
- cout<< "data hilang";
- }
- void hapus_pembeli(){
- int hapus;
- cout<<"1. Hapus Depan"<<endl;
- cout<<"2. Hapus Tengah"<<endl;
- cout<<"2. Hapus Belakang"<<endl;
- cout<<"Masukan Pilihan Anda = ";
- cin>>hapus;
- if(hapus == 1)
- hapus_depan();
- else if(hapus == 2)
- hapusTengah();
- else if(hapus == 3)
- hapus_belakang();
- else
- cout<<"Pilihan tidak ada "<<endl;
- }
- void tampilan(){
- int pilihan;
- char ulangi;
- do{
- system("cls");
- cout<<"1. stok barang \n";
- cout<<"2. Pembelian \n";
- cout<<"3. view data\n";
- cout<<"4. Hapus Pembeli\n"<<endl;
- cout<<"\nPilihan anda = ";cin>>pilihan;
- cin.ignore();
- switch(pilihan){
- case 1 :
- system("CLS");
- stok();
- break;
- case 2 :
- system("CLS");
- beli_barang();
- break;
- case 3:
- system("CLS");
- tampil_pembeli();
- break;
- case 4:
- system("CLS");
- hapus_pembeli();
- break;
- default:
- cout<<"Pilihan Tidak ada"<<endl;
- break;
- }
- cout<<"\nApakah anda ingin mengecek ulang ? (y/t)";cin>>ulangi;
- }while(ulangi=='y');
- }
- int main()
- {
- tampilan();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement