Others

ALGORITMA DAN PEMROGRAMAN



Aku mau share syntax pascal untuk menjalankan program transformasi geometri..
Ini syntax nya ...

program Transformasi_Geometri;

uses wincrt;

var pil, nomor : byte;
    Ul : char;
    pilihan : byte;
    plhn:byte;



   procedure Titik_Bayangan;

   var
   a,b : integer;
   x,y : integer;
   x1,y1 : integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('Titik Koordinat Bayangan');
   gotoxy(20,3);writeln('========================');
   writeln('Tentukan bayangan titik A(x,y) oleh translasi (a,b) ');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);
   write('a = '); readln(a);
   write('b = '); readln(b);

   x1 := x+a;
   y1 := y+b;

   writeln('        ');
   writeln('JAWAB : ');
   writeln('        ');
   writeln('Hasil translasi oleh translasi (',a,',',b,')');
   writeln('x = ',x,' adalah x'' = ',x1);
   writeln('y = ',y,' adalah y'' = ',y1);
   writeln('A(',x,',',y,') ----> A''(',x1,',',y1,')');
   end;


   procedure Translasinya;

   var
   a,b : integer;
   x,y : integer;
   x1,y1 : integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('Translasinya');
   gotoxy(20,3);writeln('============');
   writeln('Jika titik A(x,y) dan banyangan titik A atau A''(x'',y'') ');
   writeln('maka itu berarti ditranslasikan oleh titik (a,b), tentukan titik(a,b)!');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);
   write('x'' = '); readln(x1);
   write('y'' = '); readln(y1);

   a := x1-x;
   b := y1-y;

   writeln('        ');
   writeln('JAWAB : ');
   writeln('        ');
   writeln('Jika diketahui titik :');
   writeln('x = ',x,' dan x'' = ',x1);
   writeln('serta y = ',y,' dan y'' = ',y1);
   writeln('maka berarti titik (a,b) adalah (',a,',',b,')');
   end;



   procedure Titik_Benda;

   var
   a,b : integer;
   x,y : integer;
   x1,y1 : integer;
   pil : byte;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('Titik Koordinat Benda');
   gotoxy(20,3);writeln('=====================');
   writeln('Tentukan titik A(x,y) yang memiliki banyangan(x'',y'') dan ditranslasikan oleh (a,b)');
   writeln('jika diketahui :');
   write('x'' = '); readln(x1);
   write('y'' = '); readln(y1);
   write('a = '); readln(a);
   write('b = '); readln(b);

   x := x1-a;
   y := y1-b;

   writeln('        ');
   writeln('JAWAB : ');
   writeln('        ');
   writeln('Jika ditranslasikan oleh titik (',a,',',b,') dan memiliki banyangan (',x1,',',y1,')');
   writeln('maka berarti titik (x,y) adalah (',x,',',y,')');
   end;

   procedure Pencerminan_Terhadap_Sumbu_X;

   var
   x : integer;
   y : integer;
   x1 : integer;
   y1 : integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('==============================================');
   gotoxy(20,3);writeln('| Refleksi atau Pencerminan Terhadap Sumbu X |');
   gotoxy(20,4);writeln('==============================================');
   gotoxy(20,5);writeln('                                              ');
   writeln('Tentukan bayangan titik A(x,y) jika dicerminkan terhadap sumbu X dan');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);

   x1 := x;
   y1 := -y;

   writeln('        ');
   writeln('JAWAB : ');
   writeln('        ');
   writeln('Hasil pencerminan terhadap sumbu X dengan');
   writeln('x = ',x,' adalah x'' = ',x1);
   writeln('y = ',y,' adalah y'' = ',y1);
   writeln('A(',x,',',y,') ----> A''(',x1,',',y1,')');
   writeln('x'' adalah hasil pencerminan x terhadap sumbu X');
   writeln('y'' adalah hasil pencerminan y terhadap sumbu X');
   writeln('A'' adalah bayangan titik A');
   end;

   procedure Pencerminan_Terhadap_Sumbu_Y;

   var
   x : integer;
   y : integer;
   x1 : integer;
   y1 : integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('==============================================');
   gotoxy(20,3);writeln('| Refleksi atau Pencerminan Terhadap Sumbu Y |');
   gotoxy(20,4);writeln('==============================================');
   gotoxy(20,5);writeln('                                              ');
   writeln('Tentukan bayangan titik A(x,y) jika dicerminkan terhadap sumbu Y dan');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);

   x1 := -x;
   y1 := y;

   writeln('       ');
   writeln('JAWAB :');
   writeln('       ');
   writeln('Hasil pencerminan terhadap sumbu Y dengan');
   writeln('x = ',x,' adalah x'' = ',x1);
   writeln('y = ',y,' adalah y'' = ',y1);
   writeln('A(',x,',',y,') ----> A''(',x1,',',y1,')');
   writeln('x'' adalah hasil pencerminan x terhadap sumbu Y');
   writeln('y'' adalah hasil pencerminan y terhadap sumbu Y');
   writeln('A'' adalah bayangan titik A');
   end;

   procedure Pencerminan_Terhadap_Garis_x_SamaDengan_h;

   var
   x : integer;
   y : integer;
   h : integer;
   x1 : integer;
   y1 :integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('==================================================');
   gotoxy(20,3);writeln('| Refleksi atau Pencerminan Terhadap Garis x = h |');
   gotoxy(20,4);writeln('==================================================');
   gotoxy(20,5);writeln('                                                  ');
   writeln('Tentukan bayangan titik A(x,y) jika dicerminkan terhadap garis x = h dan');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);
   write('h = '); readln(h);

   x1 := (2*h) - x;
   y1 := y;

   writeln('       ');
   writeln('JAWAB :');
   writeln('       ');
   writeln('Hasil pencerminan terhadap garis x = ',h,' dengan');
   writeln('x = ',x,' adalah x'' = ',x1);
   writeln('y = ',y,' adalah y'' = ',y1);
   writeln('A(',x,',',y,') ----> A''(',x1,',',y1,')');
   writeln('x'' adalah hasil pencerminan x terhadap garis x = h');
   writeln('y'' adalah hasil pencerminan y terhadap garis x = h');
   writeln('A'' adalah bayangan titik A');
   end;

   procedure Pencerminan_Terhadap_Garis_y_SamaDengan_h;

   var
   x : integer;
   y : integer;
   h : integer;
   x1 : integer;
   y1 : integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('==================================================');
   gotoxy(20,3);writeln('| Refleksi atau Pencerminan Terhadap Garis y = h |');
   gotoxy(20,4);writeln('==================================================');
   gotoxy(20,5);writeln('                                                  ');
   writeln('Tentukan bayangan titik A(x,y) jika dicerminkan terhadap garis y = h dan');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);
   write('h = '); readln(h);

   x1 := x;
   y1 := (2*h)-y;
  
   writeln('       ');
   writeln('JAWAB :');
   writeln('       ');
   writeln('Hasil pencerminan terhadap garis y = ',h,' dengan');
   writeln('x = ',x,' adalah x'' = ',x1);
   writeln('y = ',y,' adalah x'' = ',y1);
   writeln('A(',x,',',y,') ----> A''(',x1,',',y1,')');
   writeln('x'' adalah hasil pencerminan x terhadap garis y = h');
   writeln('y'' adalah hasil pencerminan y terhadap garis y = h');
   writeln('A'' adalah bayangan titik A');
   end;


   procedure Pencerminan_Terhadap_Pusat_Koordinat;
   {Pusat koordinat O(0,0)}

   var
   x : integer;
   y : integer;
   x1 : integer;
   y1 : integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('======================================================');
   gotoxy(20,3);writeln('| Refleksi atau Pencerminan Terhadap Pusat Koordinat |');
   gotoxy(20,4);writeln('======================================================');
   gotoxy(20,5);writeln('                                                      ');
   writeln('Tentukan bayangan titik A(x,y) jika dicerminkan terhadap pusat koordinat O(0,0) dan');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);

   x1 := -x;
   y1 := -y;

   writeln('       ');
   writeln('JAWAB :');
   writeln('       ');
   writeln('Hasil pencerminan terhadap pusat koordinat O(0,0) dengan');
   writeln('x = ',x,' adalah x'' = ',x1);
   writeln('y = ',y,' adalah x'' = ',y1);
   writeln('A(',x,',',y,') ----> A''(',x1,',',y1,')');
   writeln('x'' adalah hasil pencerminan x terhadap pusat koordinat O(0,0)');
   writeln('y'' adalah hasil pencerminan y terhadap pusat koordinat O(0,0)');
   writeln('A'' adalah bayangan titik A');
   end;

   procedure Pencerminan_Terhadap_Sebuah_Titik;
   {Titik P(a,b)}

   var
   x : integer;
   y : integer;
   a : integer;
   b : integer;
   x1 : integer;
   y1 : integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('===================================================');
   gotoxy(20,3);writeln('| Refleksi atau Pencerminan Terhadap Titik P(a,b) |');
   gotoxy(20,4);writeln('===================================================');
   gotoxy(20,5);writeln('                                                   ');
   writeln('Tentukan bayangan titik A(x,y) jika dicerminkan terhadap titik P(a,b) dan');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);
   write('a = '); readln(a);
   write('b = '); readln(b);

   x1 := -x;
   y1 := -y;

   writeln('       ');
   writeln('JAWAB :');
   writeln('       ');
   writeln('Hasil pencerminan terhadap titik P(',a,',',b,') dengan');
   writeln('x = ',x,' adalah x'' = ',x1);
   writeln('y = ',y,' adalah x'' = ',y1);
   writeln('A(',x,',',y,') ----> A''(',x1,',',y1,')');
   writeln('x'' adalah hasil pencerminan x terhadap titik P(a,b)');
   writeln('y'' adalah hasil pencerminan y terhadap titik P(a,b)');
   writeln('A'' adalah bayangan titik A');
   end;

   procedure Pencerminan_Terhadap_Garis_y_SamaDengan_x;

   var
   x : integer;
   y : integer;
   x1 : integer;
   y1 : integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('==================================================');
   gotoxy(20,3);writeln('| Refleksi atau Pencerminan Terhadap Garis y = x |');
   gotoxy(20,4);writeln('==================================================');
   gotoxy(20,5);writeln('                                                  ');
   writeln('Tentukan bayangan titik A(x,y) jika dicerminkan terhadap garis y = x dan');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);

   x1 := y;
   y1 := x;

   writeln('       ');
   writeln('JAWAB :');
   writeln('       ');
   writeln('Hasil pencerminan terhadap garis y = x dengan');
   writeln('x = ',x,' adalah x'' = ',x1);
   writeln('y = ',y,' adalah x'' = ',y1);
   writeln('A(',x,',',y,') ----> A''(',x1,',',y1,')');
   writeln('x'' adalah hasil pencerminan x terhadap garis y = x');
   writeln('y'' adalah hasil pencerminan y terhadap garis y = x');
   writeln('A'' adalah bayangan titik A');
   end;

   procedure Pencerminan_Terhadap_Garis_y_SamaDengan_Minus_x;

   var
   x : integer;
   y : integer;
   x1 : integer;
   y1 : integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('===================================================');
   gotoxy(20,3);writeln('| Refleksi atau Pencerminan Terhadap Garis y = -x |');
   gotoxy(20,4);writeln('===================================================');
   gotoxy(20,5);writeln('                                                   ');
   writeln('Tentukan bayangan titik A(x,y) jika dicerminkan terhadap garis y = -x dan');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);

   x1 := -y;
   y1 := -x;

   writeln('       ');
   writeln('JAWAB :');
   writeln('       ');
   writeln('Hasil pencerminan terhadap garis y = -x dengan');
   writeln('x = ',x,' adalah x'' = ',x1);
   writeln('y = ',y,' adalah x'' = ',y1);
   writeln('A(',x,',',y,') ----> A''(',x1,',',y1,')');
   writeln('x'' adalah hasil pencerminan x terhadap garis y = -x');
   writeln('y'' adalah hasil pencerminan y terhadap garis y = -x');
   writeln('A'' adalah bayangan titik A');
   end;

    procedure Dilatasi_Berpusat_di_O;

   var
   k : integer;
   x,y : integer;
   x1,y1 : integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('Dilatasi yang Berpusat di O(0,0) dan Skala k');
   gotoxy(20,3);writeln('============================================');
   writeln('Tentukan bayangan titik A(x,y) karena dilatasi [O,k] ');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);
   write('k = '); readln(k);

   x1 := k*x;
   y1 := k*y;

   writeln('        ');
   writeln('JAWAB : ');
   writeln('        ');
   writeln('Bayangan karena dilatasi [O,',k,']');
   writeln('x = ',x,' adalah x'' = ',x1);
   writeln('y = ',y,' adalah y'' = ',y1);
   writeln('A(',x,',',y,') ----> A''(',x1,',',y1,')');
   end;

   procedure Dilatasi_Berpusat_di_P;

   var
   a,b,k : integer;
   x,y : integer;
   x1,y1 : integer;
   {x1 = x' dan y1 = y'}

   begin
   clrscr;
   gotoxy(20,2);writeln('Dilatasi yang Berpusat di P(a,b) dan Skala k');
   gotoxy(20,3);writeln('============================================');
   writeln('Tentukan bayangan titik A(x,y) karena dilatasi [P(a,b),k] ');
   writeln('jika diketahui :');
   write('x = '); readln(x);
   write('y = '); readln(y);
   write('k = '); readln(k);
   write('a = '); readln(a);
   write('b = '); readln(b);

   x1 := k*(x-a) + a;
   y1 := k*(y-b) + b;

   writeln('        ');
   writeln('JAWAB : ');
   writeln('        ');
   writeln('Bayangan karena dilatasi [P(',a,',',b,'),',k,']');
   writeln('x = ',x,' adalah x'' = ',x1);
   writeln('y = ',y,' adalah y'' = ',y1);
   writeln('A(',x,',',y,') ----> A''(',x1,',',y1,')');
   end;


    
procedure Translasi_atau_Pergeseran;

var
pil : byte;

begin
clrscr;
gotoxy(30,2);writeln(' TRANSLASI (PERGESERAN)');
gotoxy(30,3);writeln('************************');
writeln;
gotoxy(10,5);writeln('Translasi adalah transformasi atau perubahan setiap titik ');
gotoxy(10,6);writeln('dengan jarak dan arah yang tetap.');
gotoxy(10,7);writeln('Dalam vektor, translasi atau pergeseran adalah penambahan setiap ');
gotoxy(10,8);writeln('titik (x,y) dengan vektor tertentu (a,b) sehingga menghasilkan ');
gotoxy(10,9);writeln('(x + a, y + b).');
gotoxy(10,11);writeln('Dalam pembahasan translasi ini dapat ditentukan : ');
gotoxy(10,12);writeln('1. Titik koordinat bayangan');
gotoxy(10,13);writeln('2. Translasinya');
gotoxy(10,14);writeln('3. Titik koordinat benda');
gotoxy(10,16);write('Apa yang ingin Anda tentukan? Masukkan nomor urut pilihan Anda : '); readln(pil);

   begin
   clrscr;
   case pil of
   1 : begin
       Titik_Bayangan;
       end;

   2 : begin
       Translasinya;
       end;

   3 : begin
       Titik_Benda;
       end;
   end;

end;
end;

procedure Refleksi_atau_Pencerminan;

var
nomor : byte;

begin
clrscr;
gotoxy(30,2);writeln(' REFLEKSI (PENCERMINAN)');
gotoxy(30,3);writeln('************************');
writeln;
gotoxy(5,5);writeln('Refleksi (pencerminan) adalah transformasi yang memindahkan tiap titik pada ');
gotoxy(5,6);writeln('suatu bidang dengan menggunakan sifat-sifat bayangan pada suatu cermin.');
gotoxy(20,8);writeln(' Refleksi(pencerminan) ada 8 kategori, yaitu :');
gotoxy(20,9);writeln(' 1. Pencerminan terhadap sumbu X ');
gotoxy(20,10);writeln(' 2. Pencerminan terhadap sumbu Y ');
gotoxy(20,11);writeln(' 3. Pencerminan terhadap garis x = h ');
gotoxy(20,12);writeln(' 4. Pencerminan terhadap garis y = h ');
gotoxy(20,13);writeln(' 5. Pencerminan terhadap pusat koordinat O(0,0) ');
gotoxy(20,14);writeln(' 6. Pencerminan terhadap titik P(a,b) ');
gotoxy(20,15);writeln(' 7. Pencerminan terhadap garis y = x ');
gotoxy(20,16);writeln(' 8. Pencerminan terhadap garis y = -x ');
gotoxy(10,18);write('Apa yang ingin Anda tentukan? Masukkan nomor urut pilihan Anda : '); readln(nomor);

  
   begin
   case nomor of
1 : begin
    Pencerminan_Terhadap_Sumbu_X;
    end;
2 : begin
    Pencerminan_Terhadap_Sumbu_Y;
    end;
3 : begin
    Pencerminan_Terhadap_Garis_x_SamaDengan_h;
    end;
4 : begin
    Pencerminan_Terhadap_Garis_y_SamaDengan_h;
    end;
5 : begin
    Pencerminan_Terhadap_Pusat_Koordinat;
    end;
6 : begin
    Pencerminan_Terhadap_Sebuah_Titik;
    end;
7 : begin
    Pencerminan_Terhadap_Garis_y_SamaDengan_x;
    end;
8 : begin
    Pencerminan_Terhadap_Garis_y_SamaDengan_Minus_x;
    end;

end;

end;
end;

procedure Dilatasi_atau_Perkalian;

var
plhn: byte;

begin
clrscr;
gotoxy(30,2);writeln(' DILATASI (PERKALIAN) ');
gotoxy(30,3);writeln('**********************');
writeln;
gotoxy(10,5);writeln('Diltasi (perkalian) adalah transformasi yang mengubah ukuran ');
gotoxy(10,6);writeln('(memperbesar atau memperkecil) suatu bangun yang sebangun. ');
gotoxy(10,7);writeln('Sebuah dilatasi berpusat di O(0,0) dengan faktor skala k dinotasikan ');
gotoxy(10,8);writeln('oleh [O,k]. ');
gotoxy(10,11);writeln('Dalam pembahasan dilatasi ini ada 2 kategori, yaitu : ');
gotoxy(10,12);writeln('1. Dilatasi yang Berpusat di O(0,0) dan Skala k ');
gotoxy(10,13);writeln('2. Dilatasi yang Berpusat di P(a,b) dan Skala k ');
gotoxy(10,16);write('Kategori mana yang ingin dipilih? Masukkan nomor pilihan Anda : '); readln(plhn);

 
begin
clrscr;
case plhn of
   1 : begin
       Dilatasi_Berpusat_di_O;
       end;
   2 : begin
       Dilatasi_Berpusat_di_P;
       end;
   end;
   end;
   end;



{program utama}


begin
repeat
clrscr;                                 
gotoxy(20,2);writeln('****************************************');
gotoxy(20,3);writeln('*        TRANSFORMASI GEOMETRI         *');
gotoxy(20,4);writeln('****************************************');
gotoxy(10,6);writeln(' Transformasi adalah pemetaan suatu titik A pada suatu bidang');
gotoxy(10,7);writeln(' ke titik A''. Titik A'' itu disebut bayangan titik A.');
gotoxy(10,9);writeln(' Sekarang akan membahas beberapa jenis transformasi, yaitu :');
gotoxy(20,10);writeln(' 1. Translasi atau Pergeseran ');
gotoxy(20,11);writeln(' 2. Refleksi atau Pencerminan ');
gotoxy(20,12);writeln(' 3. Dilatasi atau Perkalian ');
gotoxy(10,14);writeln(' Jenis transformasi mana yang ingin Anda pilih ? ? ');
gotoxy(10,15);write(' Masukkan nomor urut jenis transformasi yang Anda pilih : '); readln(pilihan);



begin
case pilihan of
1 : begin
    Translasi_atau_Pergeseran;
    end;
2 : begin
    Refleksi_atau_Pencerminan;
    end;
3 : begin
    Dilatasi_atau_Perkalian;
    end;
end;

writeln;
write('Mau Ulangi Lagi ? (Y/T) : '); readln(Ul);
end;

Until upcase(Ul) <> 'Y' ;

end.