Bagosep

Data mahasiswa dengan Single LinkedList

Apr 9th, 2017
79
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <windows.h>
  4.  
  5. using namespace std;
  6.  
  7. struct datalink{
  8.     char nama[20];
  9.     char alamat[20];
  10.     char jurusan[20];
  11.     char kelas[6];
  12.     datalink *next;
  13. };
  14.  
  15. datalink *depan, *belakang, *baru, *posisi, *bantu;
  16. int input,pilih,pilihan,letak;
  17. char ulang,lihat;
  18.  
  19. void mulaiData(){
  20.     baru = new datalink;
  21.     cin.ignore();
  22.     cout<<"Masukan nama mahasiswa = ";cin.getline(baru->nama, 20);
  23.     cout<<"Masukan alamat mahasiswa = ";cin.getline(baru->alamat, 20);
  24.     cout<<"Masukan jurusan mahasiswa = ";cin.getline(baru->jurusan, 20);
  25.     cout<<"Masukan kelas mahasiswa = ";cin.getline(baru->kelas, 20);
  26.  
  27.     baru->next = NULL;
  28.  
  29.     depan = baru;
  30.     belakang = baru;
  31. }
  32.  
  33. void tambahData(){
  34.     baru = new datalink;
  35.     baru->next = NULL;
  36.     cin.ignore();
  37.     cout<<"Masukan nama mahasiswa = ";cin.getline(baru->nama, 20);
  38.     cout<<"Masukan alamat mahasiswa = ";cin.getline(baru->alamat, 20);
  39.     cout<<"Masukan jurusan mahasiswa = ";cin.getline(baru->jurusan, 20);
  40.     cout<<"Masukan kelas mahasiswa = ";cin.getline(baru->kelas, 20);
  41. }
  42.  
  43. void tambahDepan(){
  44.     if(depan==NULL){
  45.         belakang = baru;
  46.     }
  47.     else{
  48.         baru->next = depan;
  49.     }
  50.     depan = baru;
  51. }
  52.  
  53. void tambahBelakang(){
  54.     if(belakang==NULL){
  55.         depan = baru;
  56.     }
  57.     else{
  58.         belakang->next = baru;
  59.     }
  60.     belakang = baru;
  61. }
  62.  
  63. void tambahTengah(){
  64.     cout<<"Masukan data ke posisi berapa = ";cin>>input;
  65.  
  66.     baru->next = NULL;
  67.  
  68.     letak = input;
  69.  
  70.     posisi = depan;
  71.  
  72.     for(int i=1; i<letak; i++){
  73.         bantu = posisi;
  74.         posisi = posisi->next;
  75.     }
  76.     bantu->next=baru;
  77.     baru->next=posisi;
  78. }
  79.  
  80. void hapusDepan(){
  81.     posisi = depan;
  82.     depan = posisi->next;
  83.     posisi = NULL;
  84.     cout<<"\nData Terhapus";
  85. }
  86.  
  87. void hapusTengah(){
  88.     cout<<"Masukan data ke posisi berapa = ";cin>>input;
  89.     posisi = depan;
  90.     letak = input;
  91.  
  92.     for(int i=1; i<letak; i++){
  93.         bantu = posisi;
  94.         posisi = posisi->next;
  95.     }
  96.     bantu->next=posisi->next;
  97.     posisi = NULL;
  98.     cout<<"\nData Terhapus";
  99. }
  100.  
  101. void hapusBelakang(){
  102.     posisi = depan;
  103.     while(posisi->next->next != NULL){
  104.         posisi = posisi->next;
  105.     }
  106.     belakang = posisi;
  107.     posisi->next = NULL;
  108.     cout<<"\nData Terhapus";
  109. }
  110.  
  111. void tampilData(){
  112.     posisi = depan;
  113.     int lokasi = 1;
  114.  
  115.     while(posisi!=NULL){
  116.             cout << "\nData ke- " << lokasi << " : \n";
  117.             cout<<"\nMasukan nama mahasiswa = "<<posisi->nama;
  118.             cout<<"\nMasukan alamat mahasiswa = "<<posisi->alamat;
  119.             cout<<"\nMasukan jurusan mahasiswa = "<<posisi->jurusan;
  120.             cout<<"\nMasukan kelas mahasiswa = "<<posisi->kelas;
  121.             cout<<endl;
  122.             cout<<"Lihat Posisi Selanjut nya = (y/t)";cin>>lihat;
  123.             if(lihat=='y'){
  124.             posisi=posisi->next;
  125.             lokasi++;
  126.             }
  127.             else{
  128.                 break;
  129.             }
  130.     }
  131. }
  132.  
  133. int main()
  134. {
  135.     cout<<"Menu\n";
  136.     cout<<"0. Mulai Input Data\n";
  137.     cout<<"1. EXIT\n";
  138.     cout<<"Masukan Pilihan Anda = ";cin>>pilihan;
  139.     switch(pilihan){
  140.     case 0:
  141.     mulaiData();
  142.     do{
  143.     cout<<"Menu\n";
  144.     cout<<"1. Tambah Depan\n";
  145.     cout<<"2. Tambah Belakang\n";
  146.     cout<<"3. Tambah Tengah\n";
  147.     cout<<"4. Hapus depan\n";
  148.     cout<<"5. Hapus belakang\n";
  149.     cout<<"6. Hapus tengah\n";
  150.     cout<<"7. Tampilkan Data\n";
  151.     cout<<"Masukan Pilihan anda = ";cin>>pilih;
  152.     switch(pilih){
  153.         case 1:
  154.             tambahData();
  155.             tambahDepan();
  156.         break;
  157.         case 2:
  158.             tambahData();
  159.             tambahBelakang();
  160.         break;
  161.         case 3:
  162.             tambahData();
  163.             tambahTengah();
  164.         break;
  165.         case 4:
  166.             hapusDepan();
  167.         break;
  168.         case 5:
  169.             hapusBelakang();
  170.         break;
  171.         case 6:
  172.             hapusTengah();
  173.         break;
  174.         case 7:
  175.             tampilData();
  176.         break;
  177.         }
  178.     cout<<endl;
  179.     cout<<"Apakah anda ingin mengulang = ";cin>>ulang;
  180.     system("cls");
  181.     }while(ulang=='y');
  182.     break;
  183.  
  184.     case 1:
  185.     break;
  186.  
  187.     }
  188.     return 0;
  189. }
RAW Paste Data