hendraadem

Data Structure

Jun 17th, 2020
1,066
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.12 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <stdio.h>
  4. using namespace std;
  5.  
  6. #define max 10
  7. int top;
  8.  
  9.  
  10. // struct section
  11. struct PROSES{
  12.     int id;
  13.     string hasil;
  14. };
  15. struct mahasiswa {
  16.     int nim;
  17.     string nama;
  18.     string prodi;
  19.     string ipk;
  20.     PROSES proses;
  21. } mhs[max];
  22.  
  23. // stack section
  24. void init(){
  25.     top = -1;
  26. }
  27.  
  28. bool isEmpty(){
  29.     if(top <= 0 ){
  30.         return true;
  31.     } else {
  32.         return false;
  33.     }
  34. }
  35.  
  36. bool isFull(){
  37.     if(top == max - 1){
  38.         return true;
  39.     } else {
  40.         return false;
  41.     }
  42. }
  43.  
  44. void push(int nim, string nama, string prodi, string ipk, string nilaiAkhir ){
  45.     if(isFull()){
  46.         cout<<"Data sudah penuh";
  47.     } else {
  48.         top++;
  49.  
  50.         if( ipk == "0" ){
  51.             nilaiAkhir = "E";
  52.         } else if( ipk > "1.00" && ipk < "2.00" ){
  53.             nilaiAkhir = "D";
  54.         } else if( ipk > "2.00" && ipk < "2.67" ){
  55.             nilaiAkhir = "C";
  56.         } else if( ipk > "2.67" && ipk < "3.00" ){
  57.             nilaiAkhir = "B";
  58.         } else if( ipk > "3.00" && ipk <= "3.67" ){
  59.             nilaiAkhir = "A";
  60.         } else if( ipk > "3.67" && ipk <= "4.00" ){
  61.             nilaiAkhir = "A";
  62.         }
  63.  
  64.         mhs[top].nim   = nim;
  65.         mhs[top].nama  = nama;
  66.         mhs[top].prodi = prodi;
  67.         mhs[top].ipk   = ipk;
  68.         mhs[top].proses.hasil   = nilaiAkhir;
  69.  
  70.        
  71.        
  72.     }
  73. }
  74.  
  75. void pop(){
  76.     if(isEmpty()){
  77.         cout<<"Data stack kosong";
  78.     } else {
  79.         cout<<"Nama      : " <<mhs[top].nama <<endl;
  80.         cout<<"NIM       : " <<mhs[top].nim  <<endl;
  81.         cout<<"prodi     : " <<mhs[top].prodi <<endl;
  82.         cout<<"IPK       : " <<mhs[top].ipk <<endl;
  83.         cout<<"Hasil     : " <<mhs[top].proses.hasil <<endl;
  84.         top--;
  85.     }
  86. }
  87.  
  88. void show(){
  89.     if(isEmpty()){
  90.         cout<<"Data stack kosong";
  91.     } else {
  92.         for(int i=1; i<top+1; i++){
  93.             cout<<"Nama      : " <<mhs[i].nama <<endl;
  94.             cout<<"NIM       : " <<mhs[i].nim  <<endl;
  95.             cout<<"prodi     : " <<mhs[i].prodi <<endl;
  96.             cout<<"IPK       : " <<mhs[i].ipk <<endl;
  97.             cout<<"Hasil     : " <<mhs[top].proses.hasil <<endl;
  98.         }
  99.     }
  100. }
  101.  
  102. int main(){
  103.  
  104. int menu, data, nim; string nama, prodi, ipk, nilaiAkhir;
  105.  
  106. menu :
  107. system("clear");
  108.  
  109. cout<<"Silahkan pilih menu dibawah" <<endl <<endl;
  110. cout<<"1. Push" <<endl;
  111. cout<<"2. Pop" <<endl;
  112. cout<<"3. Show" <<endl;
  113. cout<<"4. Delete" <<endl;
  114. cout<<"5. Exit" <<endl;
  115.  
  116. cout<<"Masukkan menu yang anda pilih : "; cin>>menu;
  117.  
  118. switch(menu){
  119.     case 1:
  120.         cout<<"Masukkan Nama Mahasiswa  : "; cin.ignore(); getline(cin, nama);
  121.         cout<<"Masukkan NIM             : "; cin>>nim;
  122.         cout<<"Masukkan Prodi Mahasiswa : "; cin.ignore(); getline(cin, prodi);
  123.         cout<<"Masukkan IPK Mahasiswa   : "; cin>>ipk;
  124.         push(nim, nama, prodi, ipk, nilaiAkhir);
  125.  
  126.         goto menu;
  127.     break;
  128.     case 2:
  129.         pop();
  130.     break;
  131.     case 3:
  132.         show();
  133.     break;
  134.     case 4:
  135.         init();
  136.     break;
  137.     case 5:
  138.         system("exit");
  139.     break;
  140.  
  141.  
  142.  
  143. }
  144.  
  145.  
  146.  
  147.    
  148.  
  149. }
Advertisement
Add Comment
Please, Sign In to add comment