Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. Program KonversiSuhu;
  2. uses wincrt;
  3. var InpSuhu:real; {C=Celcius, R=Reamur, F=Fahrenheit, K=Kelvin}
  4.     OutC, OutR, OutF, OutK:real;
  5.     JenisSuhu:char;
  6.     InpSuhuString:string; {var penampung input suhu dalam string}
  7.     tempSuhu:real;        {var sementara untuk konver string ke real}
  8.     ErrCode:integer;      {var untuk menampung error saat konversi string ke real}
  9.  
  10. label 100,200;
  11.  
  12. {program utama}
  13. begin
  14.      {menu}
  15.      100: {label 100}
  16.      write('Masukan jenis suhu C/R/F/K  : ');
  17.      readln(JenisSuhu);
  18.      JenisSuhu:=upcase(JenisSuhu); {mengubah jenis suhu ke upper case}
  19.  
  20.      if (JenisSuhu <> 'C') then
  21.         if (JenisSuhu <> 'R' )  then
  22.            if (JenisSuhu <> 'F' ) then
  23.               if (JenisSuhu <> 'K' ) then
  24.               begin
  25.                  writeln ('Jenis suhu salah, silahkan ulangi!');
  26.                  writeln;
  27.                  goto 100;
  28.               end;
  29.  
  30.      200: {label 200}
  31.      write('Masukan besar suhu          : ');
  32.      readln(InpSuhuString);
  33.      val(InpSuhuString,inpSuhu,ErrCode);
  34.      if ErrCode <> 0 then
  35.      begin
  36.         writeln('Data suhu yang dimasukan tidak valid, masukan data numerik!');
  37.         writeln;
  38.         goto 200;
  39.      end;
  40.  
  41.      writeln;
  42.  
  43.      { hitung konversi suhu}
  44.  
  45.      writeln('Hasil Konversi Suhu, Untuk Suhu ', inpSuhu:6:2,' ',JenisSuhu);
  46.      writeln('--------------------------------------');
  47.      if (JenisSuhu = 'C') then {jika input suhu dalam celcius}
  48.      begin
  49.           OutR:=InpSuhu * 4/5;
  50.           OutF:=(InpSuhu *9/5) + 32;
  51.           OutK:=InpSuhu + 273;
  52.  
  53.           writeln('Suhu dalam Reamur      = ', OutR:6:2);
  54.           writeln('Suhu dalam Fahrenheit  = ', OutF:6:2);
  55.           writeln('Suhu dalam Kelvin      = ', OutK:6:2);
  56.      end
  57.      else if (JenisSuhu = 'R')  then  {jika input suhu dalam reamur}
  58.      begin
  59.           OutC:=InpSuhu * 5/4;
  60.           OutF:=(InpSuhu * 9/4) + 32;
  61.           OutK:=(InpSuhu * 5/4) + 273;
  62.  
  63.           writeln('Suhu dalam Celcius     = ', OutC:6:2);
  64.           writeln('Suhu dalam Fahrenheit  = ', OutF:6:2);
  65.           writeln('Suhu dalam Kelvin      = ', OutK:6:2);
  66.      end
  67.      else if (JenisSuhu = 'F') then  {jika input suhu dalam fahrenheit}
  68.      begin
  69.           OutC:=InpSuhu * 5/9;
  70.           OutR:=(InpSuhu * 4/9) + 32;
  71.           OutK:=(InpSuhu * 5/9) + 273;
  72.  
  73.           writeln('Suhu dalam Celcius     = ', OutC:6:2);
  74.           writeln('Suhu dalam Reamur      = ', OutR:6:2);
  75.           writeln('Suhu dalam Kelvin      = ', OutK:6:2);
  76.      end
  77.      else if (JenisSuhu = 'K') then  {jika input suhu dalam kelvin}
  78.      begin
  79.           OutC:=InpSuhu - 273;
  80.           OutR:=(InpSuhu - 273) * 4/5;
  81.           OutF:=((InpSuhu - 273) * 9/5) + 32;
  82.  
  83.           writeln('Suhu dalam Celcius     = ', OutC:6:2);
  84.           writeln('Suhu dalam Reamur      = ', OutR:6:2);
  85.           writeln('Suhu dalam Fahrenheit  = ', OutF:6:2);
  86.      end;
  87.      readln;
  88. end. {end program}