Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- struct node {
- char nama[20];
- char jenis_vcd[20];
- char judul_vcd[20];
- int tanggal_sewa;
- int tanggal_pengembalian;
- int biaya_sewa;
- int denda;
- int total;
- node *next;
- node *prev;
- };
- node *depan, *belakang, *bantu, *posisi, *hapus, *baru, *tujuan;
- bool kosong(){
- if(depan==NULL){
- return true;
- }
- else{
- return false;
- }
- }
- void tambahData(){
- baru = new node;
- baru->next=NULL;
- baru->prev=NULL;
- cin.ignore();
- cout<<"Masukan nama penyewa = ";cin.getline(baru->nama, 20);
- cout<<"Masukan jenis VCD yang disewa = ";cin.getline(baru->jenis_vcd, 20);
- cout<<"Masukan judul VCD yang disewa = ";cin.getline(baru->judul_vcd, 20);
- cout<<"Masukan tanggal sewa = ";cin>>baru->tanggal_sewa;
- cout<<"Masukan tanggal pengembalian sewa = ";cin>>baru->tanggal_pengembalian;
- cout<<"Masukan biaya sewa = ";cin>>baru->biaya_sewa;
- }
- void tambahDepan(){
- if(kosong()){
- belakang=baru;
- }
- else{
- baru->next=depan;
- depan->prev=baru;
- }
- depan=baru;
- }
- void tambahBelakang(){
- if(belakang==NULL){
- depan=baru;
- }
- else{
- belakang->next=baru;
- baru->prev=belakang;
- }
- belakang=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 hapusDepan(){
- hapus=depan;
- depan->next->prev=NULL;
- depan=hapus->next;
- hapus=NULL;
- cout<<"\nData Terhapus";
- }
- void hapusBelakang(){
- hapus=belakang;
- belakang=hapus->prev;
- belakang->next=NULL;
- hapus=NULL;
- cout<<"\nData Terhapus";
- }
- 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 tampil(){
- posisi=depan;
- char lihat;
- while(posisi!=NULL){
- cout<<"\nNama penyewa = "<<posisi->nama;
- cout<<"\nJenis VCD yang disewa = "<<posisi->jenis_vcd;
- cout<<"\nJudul VCD yang disewa = "<<posisi->judul_vcd;
- cout<<"\nTanggal sewa = "<<posisi->tanggal_sewa;
- cout<<"\nTanggal pengembalian sewa = "<<posisi->tanggal_pengembalian;
- cout<<"\nTanggal biaya sewa = "<<posisi->biaya_sewa;
- cout<<"\nLihat data Sebelum atau selanjutnya ? [p/n] ";cin>>lihat;
- if(lihat=='p'){
- posisi=posisi->prev;
- }
- else if(lihat=='n'){
- posisi=posisi->next;
- }
- else{
- break;
- }
- }
- }
- int main()
- {
- int menu;
- char ulang;
- do{
- cout<<"\nMenu";
- cout<<"\n1. Tambah depan ";
- cout<<"\n2. Tambah belakang ";
- cout<<"\n3. Tambah tengah ";
- cout<<"\n4. hapus depan ";
- cout<<"\n5. hapus belakang ";
- cout<<"\n6. hapus tengah ";
- cout<<"\n7. Tampil data ";
- cout<<"\nMasukan pilihan anda = ";cin>>menu;
- switch(menu){
- case 1 :
- tambahData();
- tambahDepan();
- break;
- case 2 :
- tambahData();
- tambahBelakang();
- break;
- case 3:
- tambahData();
- tambahTengah();
- break;
- case 4:
- hapusDepan();
- break;
- case 5:
- hapusBelakang();
- break;
- case 6:
- hapusTengah();
- break;
- case 7:
- tampil();
- break;
- }
- cout<<"\nApakah anda ingin mengulang = ";cin>>ulang;
- system("cls");
- }while(ulang=='y');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement