Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class Priority {
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- System.out.println(" ----------------------------------------------");
- System.out.println("\t Penjadwalan CPU - Priority");
- System.out.println(" ----------------------------------------------");
- System.out.print("\n Jumlah Proses : ");
- int n = input.nextInt();
- int[] aTime = new int[n];
- int[] bTime = new int[n];
- int[] process = new int[n];
- int[] prio = new int[n];
- for(int i=0;i<n;i++) {
- process[i]=i+1;
- System.out.print("\n P["+(i+1)+"] ->");
- System.out.print(" Arrival time : ");
- aTime[i] = input.nextInt();
- System.out.print(" Burst time : ");
- bTime[i] = input.nextInt();
- System.out.print(" Priority : ");
- prio[i] = input.nextInt();
- }
- int aTemp, bTemp, pTemp, prTemp;
- for(int i=0;i<n;i++){
- for(int j=0;j<n-1;j++){
- if(aTime[j]>aTime[j+1]){
- pTemp = process[j];
- process[j] = process[j+1];
- process[j+1] = pTemp;
- aTemp = aTime[j];
- aTime[j] = aTime[j+1];
- aTime[j+1] = aTemp;
- bTemp = bTime[j];
- bTime[j] = bTime[j+1];
- bTime[j+1] = bTemp;
- prTemp = prio[j];
- prio[j] = prio[j+1];
- prio[j+1] = prTemp;
- }
- }
- }
- for(int i=0;i<n;i++){
- for(int j=1;j<n-1;j++){
- if(prio[j]>prio[j+1]){
- pTemp = process[j];
- process[j] = process[j+1];
- process[j+1] = pTemp;
- aTemp = aTime[j];
- aTime[j] = aTime[j+1];
- aTime[j+1] = aTemp;
- bTemp = bTime[j];
- bTime[j] = bTime[j+1];
- bTime[j+1] = bTemp;
- prTemp = prio[j];
- prio[j] = prio[j+1];
- prio[j+1] = prTemp;
- }
- }
- }
- float wTime = 0;
- int tTime = 0;
- float wTot = 0;
- tTime=aTime[0];
- System.out.println("\n -----------------------------------------------");
- System.out.println(" | Process\t| Start Time \t| Stop Time\t|");
- System.out.println(" -----------------------------------------------");
- for (int i=0;i<n;i++) {
- System.out.println(" |\tP"+process[i]+"\t|\t"+tTime+" \t|\t "+(tTime+bTime[i])+"\t|");
- if (i == n-1) continue;
- tTime += bTime[i];
- wTime = tTime - aTime[i+1];
- wTot += wTime;
- }
- System.out.println(" -----------------------------------------------------------------------");
- float avg = wTot / n;
- System.out.println("\n -> Average waiting time : "+avg);
- System.out.println("");
- System.out.println(" -----------------------------------------------------------------------");
- System.out.println("\nGannt Chart");
- tTime = aTime[0];
- int h = 22;
- try{
- for(int i=0;i<=n;i++) {
- System.out.print(tTime);
- for(int j=1;j<=bTime[i];j++) {
- if(i == n) break;
- System.out.printf("%c",h);
- }
- tTime += bTime[i];
- }
- }catch (Exception e){
- System.out.println("");
- System.exit(0);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement