Jumat

Terjemah 2 - Start Programming using Object Pascal - Motaz Abdel Azeem


Sub Type

Terdapat banyak sub tipe dari variabel, sebagai contoh, sub tipe sub tipe dari Integer berbeda-beda dalam  rentang nilai dan ukuran byte yang dibutuhkan untuk menyimpannya dalam memori komputer. 

Tabel dibawah ini berisi tipe-tipe interger, rentang nilai masing-masing, dan ukuran byte yang dibutuhkan dalam memori. 



Kita dapat mengetahui nilai minimum dan maksimum dari masing-masing tipe dengan menggunakan fungsi Low, High, dan SizeOf. Sebagaimana contoh berikut:
programTypes;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
{$ENDIF}{$ENDIF}
  Classes;
begin
  Writeln('Byte: Size = ', SizeOf(Byte),
  ', Minimum value = ', Low(Byte), ', Maximum value = ',
  High(Byte));
  Writeln('Integer: Size = ', SizeOf(Integer), 
  ', Minimum value = ', Low(Integer), ', Maximum value = ',
  High(Integer));
  Write('Press enter key to close');
  Readln;
end.

Percabangan Kondisional

Salah satu hal terpenting yang harus dimiliki peralatan cerdas (seperti komputer, peralatan yang bisa diprogram) adalah bahwa mereka dapat bereaksi dalam kondisi yang berbeda-beda. Hal ini dapat dilakukan dengan menggunakan percabangan kondisional. Sebagai contoh, suatu mobil yang dapat otomatis mengunci pintu ketika kecepatan mobil telah mencapai melebihi 40km/jam. Kondisi dalam kasus ini dapat dituliskan sebagai berikut:

if kecepatan>=40 and pintu_belum_dikunci then kunci_pintu;

Mobil, mesin cuci, dan banyak alat listrik lain mengandung rangkaian sirkuit yang bisa diprogram seperti mikrokontroller, atau prosesor mini seperti ARM. Rangkaian sirkuti tersebut diprogram dengan menggunakan bahasa assembly, C, atau Free Pascal sesuai arsitekturnya.

Percabangan Kondisi IF

Statemen kondisi IF dalam bahasa Pascal sangat mudah dan jelas. Pada contoh berikut, kita ingin membuat program yang dapat mengambil keputusan kapan mematikan atau menghidupkan AC sesuai dengan kondisi temperatur ruangan.

Program AC
var
  Temp: Single;
begin
  Write('Please enter Temperature of this room :');
  Readln(Temp);
  if Temp > 22 then
    Writeln('Please turn on air-condition')
  else
    Writeln('Please turn off air-condition');
  Write('Press enter key to close');
  Readln;
end.

Pada contoh ini kita diperkenalkan dengan statemen if then else dimana: Jika temperatur  lebih besar daripada 22 derajat, maka program akan menampilkan tulisan:

Please turn on air-conditioner

sebaliknya, jika kondisi tidak sesuai (kurang atau sama dengan 22 derajat), maka akan menampilkan tulisan:

Please turn off air-conditioner

Kita juga dapat menggunakan banyak kondisi sekaligus seperti:

Anda dapat melakukan tes pada contoh di atas untuk mengetahui hasilnya.
var
  Temp: Single;
begin
  Write('Please enter Temperature of this room :');
  Readln(Temp);
  if Temp > 22 then
   Writeln('Please turn on air-conditioner')
  else
    if Temp < 18 then
      Writeln('Please turn off air-conditioner')
    else
      Writeln('Do nothing');

Anda dapat melakuka percobaan dengan mengisikan nilai temperatur yang berbeda-beda untuk mengetahui hasilnya.

Kita dapat membuat percabangan kondisi yang lebih kompleks, untuk meningkatkan kegunaannya:
var
  Temp: Single;
  ACIsOn: Byte;
begin
  Write('Please enter Temperature of this room : ');
  Readln(Temp);
  Write('Is air conditioner on? if it is (On) write 1,',
  ' if it is (Off) write 0 : ');
  Readln(ACIsOn);
  if(ACIsOn = 1) and(Temp > 22) then
    Writeln('Do nothing, we still need cooling')
  else
    if(ACIsOn = 1) and(Temp < 18) then
       Writeln('Please turn off air-conditioner')
    else
       if(ACIsOn = 0) and(Temp < 18) then
         Writeln('Do nothing, it is still cold')
       else
         if(ACIsOn = 0) and(Temp > 22) then
           Writeln('Please turn on air-conditioner')
         else
           Writeln('Please enter a valid values');
  Write('Press enter key to close');
  Readln;
end. 


In the above example, we have used the new keyword (and) which means if the first condition returns
True (ACIsOn = 1), and the second condition returns True (Temp > 22), then execute the Writeln
statement. If one condition or both of them return False, then it will go to the else part.

Pada contoh di atas, kita menggunakan katakunci baru and yang mana ini berarti:
jika kondisi pertama menghasilkan nilai True (ACIsOn = 1), dan kondisi kedua juga menghasilkan nilai  True (Temp > 22), maka statemen Writeln akan dijalankan. Jika salah satu atau kedua kondisi menghasilkan nilai False, maka bagian kode lain yang sesuai kondisi akan  dijalankan.

Program Weight (berat badan)
Pada contoh kali ini, kita meminta pengguna untuk memasukkan tinggi badannya dalam satuan meter, dan berat badan dalam satuan kilogram. Program akan menghitung berat badan ideal berdasarkan yang dimasukkan, kemudian menampilkan hasilnya.
program Weight;
{$mode objfpc}{$H+}
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes, SysUtils
{ you can add units after this };
var
  Height: Double;
  Weight: Double;
  IdealWeight: Double;
begin
  Write('What is your height in meters (e.g. 1.8 meter) : ');
  Readln(Height);
  
  Write('What is your weight in kilos : ');
  Readln(Weight);

  if Height >= 1.4 then
    IdealWeight:= (Height - 1) * 100
  else
    IdealWeight:= Height * 20;

  if(Height < 0.4) or(Height > 2.5) or(Weight < 3) or 
     (Weight > 200) then begin
    Writeln('Invalid values');
    Writeln('Please enter proper values');
  end else
    if  IdealWeight = Weight then
      Writeln('Your weight is suitable')
    else
      if IdealWeight > Weight then
        Writeln('You are under weight, you need more ', 
          Format('%.2f', [IdealWeight - Weight]), ' Kilos')
      else
        Writeln('You are over weight, you need to lose ',
          Format('%.2f', [Weight - IdealWeight]), ' Kilos');

  Write('Press enter key to close'); 
  Readln;
end


Pada contoh ini, kita menggunakan kata kunci baru:
  1. Double, tipe data ini mirip Single. Keduanya adalah tipe data untuk angka pecahan, tapi Double memiliki presisi pecahan lebih tinggi, membutuhkan 8 byte memori, dimana Single hanya 4 byte.
  2. Kata lainnya adalah kata kunci Or dimana kita menggunakannya untuk memeriksa apakah salah satu dari dua kondisi terpenuhi apa tidak. Jika salah satu  dari dua kondisi terpenuhi, maka baris perintah berikutnya akan jalankan. Sebagai contoh, jika kondisi pertama menghasilkan nilai True (Height<0.4), maka statemen Writeln('Invalid values') akan dijalankan. Jika kondisi pertama menghasilkan nilai False, maka kondisi kedua akan diperiksa, dan demikian seterusnya. Jika seluruh kondisi bernilai False (tidak terpenuhi), maka baris kode yang lain akan dieksekusi. 
  3. Kita menggunakan kata kunci begin   end  dalam  if karena pernyataan if hanya mengeksekusi satu baris kode. Begin   end   membuat adanya blok baris kode sebagai satu kesatuan yang harus dieksekusi seluruhnya jika kondisi if terpenuhi. Mari kita amati kedua statemen berikut ini: 
Writeln('Invalid values');
Writeln('Please enter proper values');
yang kemudian dikonversikan menjadi satu statemen menggunakan begin dan end.
if(Height < 0.4) or(Height > 2.5) or(Weight < 3) or
   (Weight > 200) then 
begin
  Writeln('Invalid values');
  Writeln('Please enter proper values');
end



Tidak ada komentar:

Posting Komentar

# semua file unduhan pada blog ini dikompress menggunakan zip, 7-zip 32bit, atau 7-zip 64bit