Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct node {
- char nama[30];
- float nilai_tugas;
- float nilai_quiz;
- float nilai_ETS;
- float nilai_EAS;
- float nilai_Akhir;
- int urut;
- node *next;
- node *prev;
- };
- node *baru, *head=NULL, *tail=NULL, *bantu;
- void cetak_data();
- void tambah_depan();
- void tambah_belakang();
- void tambah_data();
- void SisipData();
- void HapusTengah();
- void hapus_awal_node();
- void hapus_akhir_node();
- int main()
- {
- int pilih;
- char EntriLagi = 'y';
- do{
- cout<<endl;
- cout<< "DATA MAHASISWA ITATS 2018\n"<<endl;
- cout<< "1. Tambah Data "<<endl;
- cout<< "2. Tambah depan "<<endl;
- cout<< "3. Tambah Belakang "<<endl;
- cout<< "4. Sisip DATA "<<endl;
- cout<< "5. Cetak Data "<<endl;
- cout<< "6. Hapus Data Tengah "<<endl;
- cout<< "7. Hapus Data Awal "<<endl;
- cout<< "8. Hapus Data Akhir "<<endl;
- cout<< "Masukkan Pilihan Anda Mulai Dari Nomer 1-3 : ";
- cin>>pilih;
- switch (pilih)
- {
- case 1 :
- tambah_data();
- break;
- case 2 :
- tambah_depan();
- break;
- case 3 :
- tambah_belakang();
- break;
- case 4 :
- SisipData();
- break;
- case 5 :
- cetak_data();
- break;
- case 6 :
- HapusTengah();
- break;
- case 7 :
- hapus_awal_node();
- break;
- case 8 :
- hapus_akhir_node();
- break;
- }
- cout<<endl;
- cout<< "Apakah Anda Ingin Kembali Ke Menu : [y/t]";
- cin>>EntriLagi;
- }while(EntriLagi == 'y');
- }
- void tambah_depan()
- {
- if(head==NULL)
- {
- cout<< "\nData Masih Kosong Harap Tambahkan Data Terlebih Dahulu"<<endl;
- }
- else
- {
- baru = new node;
- cin.sync();
- cout<< "Masukkan Nama : ";
- cin.getline(baru->nama,30);
- cout<< "Masukkan Nilai Tugas : ";
- cin>>baru->nilai_tugas;
- cout<< "Masukkan NIlai Quiz : ";
- cin>>baru->nilai_quiz;
- cout<< "Masukkan Nilai ETS : ";
- cin>>baru->nilai_ETS;
- cout<< "Masukkan Nilai EAS : ";
- cin>>baru->nilai_EAS;
- baru->next = NULL;
- baru->prev = NULL;
- baru->next = head;
- head->prev = baru;
- head=baru;
- }
- cout<<endl<<endl;
- }
- void cetak_data()
- {
- bantu=head;
- if (head==NULL)
- {
- cout<<endl;
- cout<< "Data Masih Kosong"<<endl;
- }
- else{
- while(bantu!=NULL)
- {
- cout<< "=========================================="<<endl;
- cout<< "Nama : "<<bantu->nama<<endl;
- cout<< "Nilai Tugas : "<<bantu->nilai_tugas<<endl;
- cout<< "Nilai Quiz : "<<bantu->nilai_quiz<<endl;
- cout<< "Nilai ETS : "<<bantu->nilai_ETS<<endl;
- cout<< "Nilai EAS : "<<bantu->nilai_EAS<<endl;
- bantu->nilai_Akhir = (bantu->nilai_tugas + bantu->nilai_quiz + bantu->nilai_ETS + bantu->nilai_EAS)/4;
- cout<< "NIlai Akhir : "<<bantu->nilai_Akhir<<endl;
- cout<< "=========================================="<<endl;
- {
- if (bantu->nilai_Akhir>=80&&bantu->nilai_Akhir<=100){
- cout << "NILAI ANDA : A "<<endl;
- }
- else if (bantu->nilai_Akhir>=70&&bantu->nilai_Akhir<80){
- cout << "NILAI ANDA : B "<<endl;
- }
- else if (bantu->nilai_Akhir>=60&&bantu->nilai_Akhir<70){
- cout << "NILAI ANDA : C "<<endl;
- }
- else if (bantu->nilai_Akhir>=50&&bantu->nilai_Akhir<60){
- cout << "NILAI ANDA : D "<<endl;
- }
- else if (bantu->nilai_Akhir>=40&&bantu->nilai_Akhir<50){
- cout << "NILAI ANDA : E "<<endl;
- }
- else {
- cout << "NILAI ANDA : F "<<endl;
- }
- }
- bantu = bantu->next;
- }
- }
- }
- void tambah_belakang()
- {
- if(head==NULL)
- {
- cout<< "\nData Masih Kosong Harap Tambahkan Data Terlebih Dahulu"<<endl;
- }
- else
- {
- baru = new node;
- cin.sync();
- cout<< "Masukkan Nama : ";
- cin.getline(baru->nama,30);
- cout<< "Masukkan Nilai Tugas : ";
- cin>>baru->nilai_tugas;
- cout<< "Masukkan NIlai Quiz : ";
- cin>>baru->nilai_quiz;
- cout<< "Masukkan Nilai ETS : ";
- cin>>baru->nilai_ETS;
- cout<< "Masukkan Nilai EAS : ";
- cin>>baru->nilai_EAS;
- baru->next = NULL;
- baru->prev = NULL;
- tail->next=baru;
- baru->prev=tail;
- tail=baru;
- }
- cout<<endl<<endl;
- }
- void tambah_data()
- {
- baru = new node;
- cin.sync();
- cout<< "Masukkan Nama : ";
- cin.getline(baru->nama,30);
- cout<< "Masukkan Nilai Tugas : ";
- cin>>baru->nilai_tugas;
- cout<< "Masukkan NIlai Quiz : ";
- cin>>baru->nilai_quiz;
- cout<< "Masukkan Nilai ETS : ";
- cin>>baru->nilai_ETS;
- cout<< "Masukkan Nilai EAS : ";
- cin>>baru->nilai_EAS;
- baru->next = NULL;
- baru->prev = NULL;
- if(head==NULL)
- {
- head = baru;
- tail = baru;
- }
- else
- {
- baru->next = head;
- head->prev = baru;
- head=baru;
- }
- cout<<endl<<endl;
- }
- void SisipData()
- {
- node *baru, *bantu;
- int posisi_sisip;
- if(head != NULL)
- {
- cout<<"Akan Disisipkan setelah Data Ke ? : ";
- cin>>posisi_sisip;
- baru =new node;
- bantu=head;
- for(int i=1;i<posisi_sisip-1;i++) {
- if(bantu->next != NULL)
- bantu=bantu->next;
- else
- break;
- }
- cin.sync();
- cout<< "Masukkan Nama : ";
- cin.getline(baru->nama,30);
- cout<< "Masukkan Nilai Tugas : ";
- cin>>baru->nilai_tugas;
- cout<< "Masukkan NIlai Quiz : ";
- cin>>baru->nilai_quiz;
- cout<< "Masukkan Nilai ETS : ";
- cin>>baru->nilai_ETS;
- cout<< "Masukkan Nilai EAS : ";
- cin>>baru->nilai_EAS;
- baru->next=bantu->next;
- bantu->next=baru;
- }
- else
- {
- cout<< "\nData Masih Kosong Harap Tambahkan Data Terlebih Dahulu"<<endl;
- }
- }
- void HapusTengah()
- {
- int banyakdata,posisi_hapus,poshapus;
- node *hapus, *bantu;
- if(head != NULL)
- {
- cout<<" Akan dihapus pada data ke : ";
- cin>>posisi_hapus;
- banyakdata=1;
- bantu=head;
- while(bantu->next != NULL)
- {
- bantu=bantu->next;
- banyakdata++;
- }
- if((posisi_hapus<1)||(posisi_hapus>banyakdata))
- {
- cout<<"Belum ada data !! masukkan Data dula aja...\n";
- }
- else
- {
- bantu=head;
- poshapus=1;
- while(poshapus<(posisi_hapus-1))
- {
- bantu=bantu->next;
- poshapus++;
- }
- hapus=bantu->next;
- bantu->next=hapus->next;
- delete hapus;
- }
- }
- else
- cout<<"Data Masih kosong, tidak bisa hapus data dari tengah! ";
- }
- void hapus_awal_node()
- {
- node *temp;
- temp = head;
- head = head->next;
- delete temp;
- }
- void hapus_akhir_node()
- {
- node *temp1, *temp2;
- if (head == NULL)
- cout << "List kosong!" << endl;
- else
- {
- temp1 = head;
- if (temp1->next == NULL)
- {
- delete temp1;
- head = NULL;
- }
- else
- {
- while (temp1->next != NULL)
- {
- temp2 = temp1;
- temp1 = temp1->next;
- }
- delete temp1;
- temp2->next = NULL;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement