Jumat, 21 Desember 2012

Source Code Bangun Datar di Pascal

Dalam postingan saya sebelumnya saya membahas tentang Membuat Bangun Datar di bahasa pemrograman pascal. Begitu pun dengan postingan kali ini saya akan membahas hal yang masih ada kaitannya dengan postingan sebelumnya, yaitu saya hanya akan menampilkan source code penulisan di bahasa pascal.

Langsung saja ke pokok pembahasan. Tampilan contoh program tersebut sudah saya tampilkan di postingan saya sebelumnya, dan berikut adalah source code-nya.



Program Bangun_bintang;
Uses Crt;

Var
  i,j,k,a : integer;
  status : boolean;
  x : integer;
Begin
repeat
clrscr;
textcolor(7);
textbackground(blue);
clrscr;
window(2,1,79,3);
textbackground(14);
clrscr;
gotoxy(23,2);
write('=== MEMBUAT BANGUN DATAR ===');
  begin
    window(2,4,33,4);
    textbackground(3);
    clrscr;
    gotoxy(14,1);
    write('MENU');
    window(2,5,33,24);
    textbackground(green);
    clrscr;
      gotoxy(2,2);writeln('1. Segitiga Siku Kiri - Atas');
      gotoxy(2,3);writeln('2. Segitiga Siku Kiri - Bawah');
      gotoxy(2,4);writeln('3. Segitiga Siku Kanan - Atas');
      gotoxy(2,5);writeln('4. Segitiga Siku Kanan - Bawah');
      gotoxy(2,6);writeln('5. Segitiga Tumpul - Kanan');
      gotoxy(2,7);writeln('6. Segitiga Tumpul - Kiri');
      gotoxy(2,8);writeln('7. Segitiga Sama Sisi - Atas');
      gotoxy(2,9);writeln('8. Segitiga Sama Sisi - Bawah');
      gotoxy(2,10);writeln('9. Jajargenjang');
      gotoxy(2,11);writeln('0. Keluar');
      gotoxy(2,13);writeln('Pilihan Anda : ');
  end;
  begin
    window(34,4,53,4);
    textbackground(green);
    clrscr;
    gotoxy(8,1);
    write('PROSES');
    window(34,5,53,24);
    textbackground(3);
    clrscr;
  end;
  begin
    window(54,4,79,4);
    textbackground(3);
    clrscr;
    gotoxy(11,1);
    write('OUTPUT');
    window(54,5,79,24);
    textbackground(green);
    clrscr;
  end;
  begin
    window(18,17,33,24);
    textbackground(green);
    clrscr;
    gotoxy(2,1);read(x);
    case x of
    1:begin
      window(34,5,52,24);
      textbackground(cyan);
      clrscr;
      gotoxy(2,2);write('Maks Alas = 20');
      gotoxy(2,4);write('Alas   : ');readln(a);
      window(55,5,79,24);
      textbackground(green);
      clrscr;
      if (a < 1) or (a > 20) then
        begin
         gotoxy(2,2);write('Panjang Alas Salah');
        end
      else
      begin
      for i := 1 to a do
        begin
        writeln;
          for j := 1 to i do
            write('');
        end;
      end;
      status := false;
      end;
    2:begin
      window(34,5,52,10);
      textbackground(cyan);
      clrscr;
      gotoxy(2,2);write('Maks Alas = 20');
      gotoxy(2,4);write('Alas   : ');readln(a);
      window(55,5,79,24);
      textbackground(green);
      clrscr;
      if (a < 1) or (a > 20) then
        begin
         gotoxy(2,2);write('Panjang Alas Salah');
        end
      else
      begin
      for i := 1 to a do
        begin
          writeln;
          for j := i to a do
            write('*');
        end;
        end;
      status := false;
      end;
    3:begin
      window(34,5,52,10);
      textbackground(cyan);
      clrscr;
      gotoxy(2,2);write('Maks Alas = 20');
      gotoxy(2,4);write('Alas   : ');readln(a);
      window(55,5,79,24);
      textbackground(green);
      clrscr;
      if (a < 1) or (a > 20) then
        begin
         gotoxy(2,2);write('Panjang Alas Salah');
        end
      else
      begin
      for i := 1 to a do
        begin
          writeln;
            for j := i to a do
              begin
                textbackground(green);
                write(' ');
              end;
            for k := 1 to i do
              begin
                textbackground(green);
                write('');
              end;
        end;
        end;
      status := false;
      end;
    4:begin
      window(34,5,52,10);
      textbackground(cyan);
      clrscr;
      gotoxy(2,2);write('Maks Alas = 20');
      gotoxy(2,4);write('Alas   : ');readln(a);
      window(55,5,79,24);
      textbackground(green);
      clrscr;
      if (a < 1) or (a > 20) then
        begin
         gotoxy(2,2);write('Panjang Alas Salah');
        end
      else
      begin
      for i := 1 to a do
        begin
          writeln;
            for j := 1 to i do
              begin
                textbackground(green);
                write(' ');
              end;
            for k := i to a do
              begin
                textbackground(green);
                write('');
              end;
        end;
      end;
      status := false;
      end;
    5:begin
      window(34,5,52,10);
      textbackground(cyan);
      clrscr;
      gotoxy(2,2);write('Maks Alas = 10');
      gotoxy(2,4);write('Alas   : ');readln(a);
      window(55,5,79,24);
      textbackground(green);
      clrscr;
      if (a < 1) or (a > 10) then
        begin
         gotoxy(2,2);write('Panjang Alas Salah');
        end
      else
      begin
      for i := 1 to a do
        begin
        writeln;
          for j := 1 to i do
            write('');
        end;
      for i := 1 to a do
        begin
          writeln;
          for j := i to a-1 do
            write('');
        end;
      end;
      status := false;
      end;
    6:begin
      window(34,5,52,10);
      textbackground(cyan);
      clrscr;
      gotoxy(2,2);write('Maks Alas = 10');
      gotoxy(2,4);write('Alas   : ');readln(a);
      window(55,5,79,24);
      textbackground(green);
      clrscr;
      if (a < 1) or (a > 10) then
        begin
         gotoxy(2,2);write('Panjang Alas Salah');
        end
      else
      begin
      for i := 1 to a do
        begin
          writeln;
            for j := i to a do
              begin
                textbackground(green);
                write(' ');
              end;
            for k := 1 to i do
              begin
                textbackground(green);
                write('');
              end;
        end;
      for i := 1 to a do
        begin
          writeln;
            for j := 1 to i do
              begin
                textbackground(green);
                write(' ');
              end;
            write(' ');
            for k := i to a-1 do
              begin
                textbackground(green);
                write('');
              end;
        end;
      end;
      status := false;
      end;
    7:begin
      window(34,5,52,10);
      textbackground(cyan);
      clrscr;
      gotoxy(2,2);write('Maks Alas = 11');
      gotoxy(2,4);write('Alas   : ');readln(a);
      window(55,5,79,24);
      textbackground(green);
      clrscr;
      if (a < 1) or (a > 11) then
        begin
         gotoxy(2,2);write('Panjang Alas Salah');
        end
      else
      begin
      for i := 1 to a do
        begin
          writeln;
            for j := i to a do
              begin
                textbackground(green);
                write(' ');
              end;
            for k := 1 to i do
              begin
                textbackground(green);
                write(' ');
              end;
        end;
      end;
      status := false;
      end;
    8:begin
      window(34,5,52,10);
      textbackground(cyan);
      clrscr;
      gotoxy(2,2);write('Maks Alas = 11');
      gotoxy(2,4);write('Alas   : ');readln(a);
      window(55,5,79,24);
      textbackground(green);
      clrscr;
      if (a < 1) or (a > 11) then
        begin
         gotoxy(2,2);write('Panjang Alas Salah');
        end
      else
      begin
      for i := 1 to a do
        begin
          writeln;
            for j := 1 to i do
              begin
                textbackground(green);
                write(' ');
              end;
            write(' ');
            for k := i to a do
              begin
                textbackground(green);
                write(' ');
              end;
        end;
      end;
      status := false;
      end;
    9:begin
      window(34,5,52,10);
      textbackground(cyan);
      clrscr;
      gotoxy(2,2);write('Maks Alas = 10');
      gotoxy(2,4);write('Alas   : ');readln(a);
      window(55,5,79,24);
      textbackground(green);
      clrscr;
      if (a < 1) or (a > 10) then
        begin
         gotoxy(2,2);write('Panjang Alas Salah');
        end
      else
      begin
      for i := 1 to a do
        begin
          writeln;
            for j := i to a do
              begin
                textbackground(green);
                write(' ');
              end;
            for k := 1 to i do
              begin
                textbackground(green);
                write(' ');
              end;
        end;
      for i := 1 to a do
        begin
          writeln;
            for k := 1 to i do
              begin
                write(' ');
              end;
            for j := i to a-1 do
              begin
                write(' ');
              end;
        end;
      end;
      status := false;
      end;
    0:exit;
    else
      begin
        window(54,5,79,10);
        textbackground(Green);
        clrscr;
        gotoxy(2,2);
        writeln('Pilihan Tidak Ada');
        status := false;
        readln;
      end;
    end;
  end;
readln;
until status;
end.


Selasa, 18 Desember 2012

Membuat Bangun Datar Dengan Pascal

Seperti pada judul postingan di atas, Membuat Bangun Datar Dengan Pacal kali ini saya akan membahasnya. Pembuatan pola bangun datar ini dibuat di bahasa pemrograman pascal dengan menggunakan perulangan (looping) For - to - Do. Yang dihasilkan hanya output seperti pola karakter yang tersusun sesuai bentuk yang kita inginkan. Ada beberapa contoh bentuk yang disa dibuat, antara lai :
1. Segitiga Siku-siku
    Dalam segitiga siku-siku ada 4 macam pola perataan
    a. Segitiga siku siku rata kiri dengan ujung keatas
     b. Segitiga siku siku rata kiri dengan ujung kebawah
    c. Segitiga siku siku rata kanan dengan ujung keatas
    d. Segitiga siku siku rata kanan dengan ujung kebawah
   
2. Segitiga Sama Sisi
    a. Segitiga sama sisi ujung keatas
    b. Segitiga sama sisi ujung kebawah
   
3. Segitiga Tumpul
    a. Segitiga tumpul ujung kekanan
    b. Segitiga tumpul ujung kekiri
a
   
4. Jajar Genjang (Belah Ketupat)
  

Begitulah kira-kira contoh gambar bentuk bangun datar yang buat dalam bahasa pemrograman pascal. Dan untuk source code (kodingannya) akan saya bahas dalam postingan berikutnya. Mohon sabar menunggu.

oO Semoga Sukses Oo

Jumat, 14 Desember 2012

Membuat Deret Bilangan Fibonacci di Pascal

Dalam Catatan kali ini saya akan mencoba membahas tentang bagaimana menampilkan deret bilangan fibonacci tanpa menggunakan array melainkan menggunakan perulangan (looping) For - to - Do, dengan menambahkan sedikit tampilan yang berbeda. Namun sebelum dibahas lebih lanjut ada baiknya kita mengetahui apa itu deret bilangan fibonacci. Deret fibonacci adalah suatu deret matematika yang berasal dari hasil penjumlahan dua bilangan sebelumnya, atau untuk lebih jelasnya silahkan kunjungi Sumber Wikipedia (Fibonacci).

Mari kita langsung ke pokok pembahasan. Berikut source code pembuatan deret bilangan Fibonacci.

Program Bil_Fibonacci;
Uses Crt;
Label x;
Var
  a,b,i : Integer;
  sumbu : Real;
  temp : Longint;
  n : byte;
  y : Char;
  txt1,txt2,judul : string;
Begin
Clrscr;
  judul:='=== DERET BILANGAN FOBONACCI DI PASCAL ===';
x:Begin
  TextBackground(10);
  Clrscr;
  a:= 1;
  b:= 0;
  txt1:='TUNGGU SETELAH NADA';
  TextColor(blue);
  for i:=0 to length(judul)-1 do
    begin
    gotoxy(60-length(judul)+i,1);
    write('-')
    end;
  for i:=0 to length(judul)-1 do
    begin
    gotoxy(60-length(judul)+i,3);
    write('-');
    end;
  Gotoxy(60-length(judul),2);
  Writeln(judul);
  Gotoxy(2,4);
  Write('Berapa Banyak Deret (Min 3 / Max 27) : ');
  readln(n);
  if (n < 3) or (n > 27) then
     goto x;

  Gotoxy(2,6);
  write('Deretnya adalah : ');
  gotoxy(40-length(txt1),15);
  textcolor(lightcyan);
  for i:=1 to length(txt1) do
    begin
      txt2:=copy(txt1,i,1);
      delay(500);
      write(txt2,' ');
    end;
    delay(100);
  delline;
  Gotoxy(20,6);
  Sound(500);
  Delay(10);
  NoSound;
  TextColor(Yellow);
  Write(a,' ');
  Delay(500);
  Write(b,' ');
  n:= n-2;
  For i:= 1 to n do
    Begin
      temp := a+b;
      a:= b;
      b:= temp ;
      Delay(500);
      TextColor(Yellow);
      Write(temp,' ');
    End;
  Gotoxy(2,15);
  TextColor(Blue);
  Write('Ulang atau Tidak (Y/T) : ');
  Readln(y);
  if (y = 'y') or (y = 'Y') then
     Goto x
  Else
    if (y = 't') or (y = 'T') then
       exit
    else
       Begin
       TextBackground(10+128);
       Clrscr;
       txt1:='TOLOL';
       txt2:='Program Error';
       repeat
       window(15,4,75,100);
       clrscr;
       i:=1;
       b:=1;
       while a <= 20 do
         Begin
         Delay(100);
         i:= 1;
         a:= a + 1;
         Gotoxy(a,b);
         textcolor(a);
         Writeln(txt1);
         b:= b + 1;
         end;
       while a >= 1 do
         Begin
         delay(100);
         gotoxy(b,a);
         textcolor(a);
         Writeln(txt2);
         a:= a - 1;
         b:= b + 1;
         end;
       Delay(200);
       until 1 = 0;
       end;
end;
  Readkey;
end.


Program tersebut juga dilengkapi dengan variasi output yang berwarna dan bersuara, tinggal langsung di copy paste di Free Pascal, program sudah siap untuk dijalankan. Untuk menghasilkan tampilan yang lebih menarik silahkan kembangkan sendiri sesuai selera.

Selamat mencoba dan semoga sukses

Kamis, 13 Desember 2012

Mencetak Teks Warna di Pascal

Dalam belajar bahasa pemrograman Pascal memang menarik jika kita menemukan suatu cara untuk menampilkan yang beda dari yang diintruksikan (lebih baik). Kali ini akan dibahas tentang bagaimana menampilkan teks berwarna secara acak menggunakan perulangan (looping) while -do. Dalam contoh program kali ini kita membutuhkan beberapa variabel string, integer, dan char.
Berikut kode penulisannya.

PROGRAM Teks_Warna;
USES CRT;
VAR
  i: INTEGER;
  h,j,k,l,m,x,y,s: STRING;
  JK: CHAR; {Jenis Kelamin}
BEGIN
CLRSCR;
  Write('Masukkan Nama Anda : ');
  readln(s);
  Write('Masukan Jenis Kelamin (L/P) : ');
  Readln(JK);
  Repeat
  clrscr;
  i:=1;
  j:='Saya : ';
  l:='Menyatakan bahwa saya ';
  if (JK = 'P') or (JK='p') then
     x:='CANTIK !!!'
  else
    if (JK = 'L') or (JK='l') then
     x:='GANTENG !!!'
  else
     x:='Berkelamin Ganda !!!';
  gotoxy(2,2);
  while i <= length(j) do
    BEGIN
      k:=copy(j,i,1);
      delay(200);
      textcolor(cyan);
      write(k);
      i:=i+1;
    END;
  gotoxy(2,4);
  i:=1;
  While i <= length(s) do
    BEGIN
      h:=copy(s,i,1);
      delay(150);
      textcolor(i);
      write(h,' ');
      i:=i+1;
    END;
  gotoxy(2,6);
  i:=1;
  While i <= length(L) do
    BEGIN
      m:=copy(l,i,1);
      delay(150);
      textcolor(cyan);
      write(m);
      i:=i+1;
    END;
  gotoxy(2+length(l),6);
  i:=1;
  while i <= length(x) do
    BEGIN
      y:=copy(x,i,1);
      delay(250);
      textcolor(LIGHTGREEN);
      write(y,' ');
      i:=i+1;
    END;
UNTIL KEYPRESSED;
END.

Dari hasil pengkodean (coding) di atas maka akan menampilkan output sepert ini :

Masukkan Nama Anda : [inputan bebas]
Masukkan Jenis Kelamin : [Hanya boleh menginput L atau P]

Setelah selesai menginput, layar akan kembali dibersihan dan akan menampilkan output yang lain, yaitu :

Pada baris ke 2 dan kolom 2:
Output 1: Saya : [kata yang telah kita buat di atas]
{dicetak per karakter dengan warna cyan (2 dalam index pascal) dalam tempo 200 MS}
{setelah selesai ditampilkan}
Pada kolom 2 dan baris 4 :
output 2: nama anda [kata atau kalimat yang anda inputkan] {dicetak per karakter dengan warna yang berbeda dalam tempo 150 MS}
{setelah ditampilkan}
Pada kolom 2 dan baris 6 :
output 3: [sebuah pernyataan yang telah kita buat di atas] {dicetak per karakter dengan warna cyan dalam tempo 150 MS}
{setelah selesai ditampilka}
Pada kolom  2+length(teks)  dan baris 6 : {pointer akan menunjukkan pada kolom dan baris setelah huruf terakhir dari output 3}
output 4: [isi pernyataan] {Seperti contoh GANTENG !!! atau CANTIK !!! sesuai yang telah kita buat di atas dan dicetak per karakter dengan warna LightGreen (hijau terang) dalam tempo 250 MS}

Program ini akan terus berjalan (mencetak) selama kondisi TRUE, dan program akan berakhir setelah kita menekan tombol pada keyboard.

Selamat Mencoba dan Semoga Sukses.