Advertisement
lpuarmy

SJF | SO

May 19th, 2013
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.05 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #define maks 20
  4.  
  5. int i,j,n,arr[maks],burst[maks],proses[maks];
  6. void sortirarr(void);
  7. void sortirburst(void);
  8.  
  9. main() {
  10.     int totalwaktu = 0, totalwait = 0;
  11.     puts("============ Shortest Job First =============");
  12.     printf(" Masukkan jumlah proses = "); scanf("%d", &n);
  13.     puts("=============================================");
  14.  
  15.     for(i=0;i<n;i++) {
  16.         proses[i] = i + 1;
  17.         printf(" Proses ke-%d\n",proses[i]);
  18.         puts("---------------------------------------------");
  19.         printf("  > Arrival Time : ");
  20.         scanf("%d", &arr[i]);
  21.         printf("  > Burst Time   : ");
  22.         scanf("%d", &burst[i]);
  23.         puts("---------------------------------------------");
  24.     }
  25.     sortirarr();
  26.     sortirburst();
  27.     totalwaktu = arr[0];
  28.  
  29.     puts("\n=============================================");
  30.     printf("| Proses | Waktu Awal | Burst | Waktu Akhir |\n");
  31.     puts("=============================================");
  32.     for(i=0;i<n;i++) {
  33.         printf("| P%-5d | %-10d | %-5d | %-11d |\n",proses[i],totalwaktu,burst[i],(totalwaktu+burst[i]));
  34.         totalwaktu += burst[i];
  35.         if((i+1) < n)
  36.             totalwait += totalwaktu;
  37.     }
  38.     puts("=============================================");
  39.     printf("  > Average Waiting time : %d\n", totalwait/n);
  40. }
  41.  
  42. void sortirburst(void) {
  43.     int temparr,tempproses,tempburst;
  44.  
  45.     for(i=0;i<n;i++){
  46.         for(j=1;j<n-1;j++){
  47.             if (burst[j] > burst[j+1]) {
  48.                 tempproses = proses[j];
  49.                 proses[j] = proses[j+1];
  50.                 proses[j+1] = tempproses;
  51.                
  52.                 temparr = arr[j];
  53.                 arr[j] = arr[j+1];
  54.                 arr[j+1] = temparr;
  55.                
  56.                 tempburst = burst[j];
  57.                 burst[j] = burst[j+1];
  58.                 burst[j+1] = tempburst;
  59.                     }
  60.         }
  61.     }
  62. }
  63.  
  64. void sortirarr(void) {
  65.     int temparr,tempproses,tempburst;
  66.  
  67.     for(i=0;i<n;i++){
  68.         for(j=0;j<n-1;j++){
  69.             if (arr[j] > arr[j+1]) {
  70.                 tempproses = proses[j];
  71.                 proses[j] = proses[j+1];
  72.                 proses[j+1] = tempproses;
  73.                
  74.                 temparr = arr[j];
  75.                 arr[j] = arr[j+1];
  76.                 arr[j+1] = temparr;
  77.                
  78.                 tempburst = burst[j];
  79.                 burst[j] = burst[j+1];
  80.                 burst[j+1] = tempburst;
  81.                     }
  82.         }
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement