Kamis, 05 Januari 2012

Sekilas Tentang Turbo Pascal


Apa sihhh Turbo Pascal Ituuu ???
 
Pascal merupakan suatu bahasa komputer tingkat tinggi (high level language)  yang dibuat sekitar tahun 1970 oleh Niklaus Wirth dari Technical University di Zurich, Switzerland dan digunakan untuk pendidikan komputer. Nama Pascal diambil dari seorang ahli matematika yang bernama Blaise Pascal yang menemukan mesin hitung pertama. Bahasa Pascal dirancang untuk menyelesaikan masalah dari berbagai kalangan pemakai, mulai dari para mahasiswa, pendidik, dan ilmuwan. Salah satu kompiler pascal yang terkenal dan tercepat adalah Turbo PASCAL yang dibuat oleh perusahaan Borland (http://www.borland.com).


Struktur Program Pascal

  • Struktur program pascal yang paling sederhana adalah :
uses ....;

var ......;

begin

......  {Program anda disini}

end.



     Contohnya :

Uses wincrt;

begin

Writeln('Turbo Pascal');

end.      

  • Struktur dasar suatu program pascal yang kompleks adalah sebagai berikut :
program ......         ; { Program heading }

uses ...                    ; { Uses clause(bagian deklarasi) }

label ...                   ; { Deklarasi Label }

const ...                  ; { Deklarasi Konstanta }

type ...                   ; { Deklarasi Tipe }

var ...                     ; { Deklarasi Variabel }

procedure ...         ; { Procedures }

function ...            ; { Functions }

begin

statement             ; { Berisi Pernyataan }

...

end.


Program Heading (Kepala Program)

Judul program dalam Turbo Pascal bersifat optional dan tidak ada pengaruhnya dalam

program. Jika ditulis akan memberikan nama program dan suatu daftar parameter

optional dimana program itu berkomunikasi. Daftar itu terdiri dari sederetan

indentifier yang diakhiri dengan tanda kurung dan dipisahkan dengan tanda koma.



Contoh            :       Program Perhitungan_Luas;

                               Program Faktorial;



Uses Clause (Bagian Deklarasi)

Bagian uses clause digunakan untuk menentukan library yang dibutuhkan saat proses program. LIBRARY merupakan file penyimpan subroutine yang secara berulang digunakan saat proses program. Library ini diistilahkan sebagai unit dalam Turbo PASCAL yang terdiri dari SYSTEM, OVERLAY, GRAPH, DOS, CRT yang ditempatkan dalam file TURBO.TPL.


Contoh            :           Uses Crt;              (*menggunakan Unit Crt *)

                                   Uses Wincrt;         (*menggunakan Unit Wincrt*)



Perhatian :

Unit system merupakan unit yang secara otomatis akan disertakan dalam setiap

program, unit inilah mengatur semua perintah dasar input dan output pada Pascal .

Sedangkan unit-unit lain hanya akan disertakan bila kita pilih pada bagian uses.



Declaration

Bagian ini meliputi deklarasi untuk label, const, type, var, procedure dan function. Syarat terpenting dalam pembentukan suatu program adalah, bahwa setiap variabel,

type non-standard, label, procedure non-standard, serta function non-standard yang

dipakai didalamnya harus nyatakan (deklarasi) terlebih dahulu pada bagian deklarasi.

Setiap deklarasi tersebut harus bersifat unik (tidak boleh serupa satu sama yang lain).

Penulisan nama dalam deklarasi tersebut harus memenuhi syarat-syarat sebagai

berikut :

- panjang nama maximum 63 character, diawali dengan alphabet

- tidak ada special character kecuali tanda garis bawah ("_")

- tidak boleh serupa dengan reserved word (kata tercadang)

- tidak boleh serupa dengan indentifier lainnya.


Variabel Declaration

Setiap variabel yang digunakan dalam program harus didefinisikan terlebih dahulu

sebelum digunakan. Cara penulisan ini adalah :

Var

<nama var> : <type variable>;

Contoh  :  Var

hitung : integer;

angka : real;        



Macam tipe Variabel

Ada beberapa macam tipe data dalam Pascal, diantaranya adalah :

1. Integer, adalah susunan angka yang tidak mengandung koma. Disebut juga bilangan bulat. Nilainya terletak antara -32768 s/d 32767.

2. Byte, adalah merupakan bagian dari integer. Nilainya terletak antara 0 s/d 255.

3. Real, merupakan tipe bilangan yang mengandung pecahan. Nilainya terletak antara 1E-38 s/d 1E+38.

4. Boolean, berhubungan dengan dua keadaan logika. Dapat bernilai True atau False.

5. Char, merupakan tipe yang hanya terdiri dari sebuah simbol karakter ASCII

6. String, merupakan tipe yang terdiri dari sejumlah karakter.



Macam Operasi Hitung

Simbol Operasi
Fungsi
Contoh
+
Penjumlahan
A + B
-
Pengurangan
A - B
*
Perkalian
A * B
/
Pembagian
A  / B
DIV
Hasil bagi
A DIV B
MOD
Sisa bagi
A MOD B



Operator dalam Pascal mempunyai hirarki. Tabel berikut ini menunjukkan prioritas atau hirarki pengerjaan operator dalam Pascal.



Kelompok Operator
Prioritas
NOT
1
* / DIV MOD AND
2
+ - OR
3
= <> <= >=
4




Rabu, 04 Januari 2012

Program Membuat Pola Berbentuk Segitiga

program segitiga;
uses wincrt;
var
n,i,j:integer;
begin
n:=1;
for i:=1 to 4 do
    begin
         for j:=1 to i do
         begin
         write(n,' ');
         n:=n+1;
         end;
         writeln(' ');
         end;
end.

Tampilan program ini ketika di run adalah sebagai berikut :

Program ln(1-x)

program len;
uses wincrt;
var
x,y:array[1..1000] of real;
i,j,n: longint;
a,p,sum:real;
begin
write('masukkan jumlah looping =');
readln(n);
write('masukkan nilai -x =');
readln(a);
sum:= 0;
for i:= 1 to n do
begin
x[i]:= -1/i;
p:=1;
for j:=1 to i do
p:=p*a;
y[i]:=p;
sum:=sum+x[i]*y[i];
end;
writeln('hasil =', sum:0:5);
writeln('asli =',ln(1-a):0:5);
writeln('eror =',ln(1-a)-sum:0:5);
end.


Berikut ini adalah tampilan ketika program di run :

Program Konversi Bilangan Biner Ke Desimal

program konversi;
uses wincrt ;
var
   biner,desimal,sisa,b: integer ;
begin
     desimal:=0; b:= 1;
     writeln('Masukkan bilangan biner :');
     readln(biner);
     repeat
           sisa := biner mod 10;
           biner := biner div 10;
           desimal := desimal + sisa * b;
           b:= b*2;          
     until
     biner =0;
writeln('Hasil konversi ke desimal adalah sebagai berikut :');
writeln(desimal);
end.


Tampilan ketika program ini di run adalah sebagai berikut :

Program Binomial

program binomial;
uses wincrt;
var
    n,x,i: integer;
    f,g,n_x,c,px,qx,b,p,q,r:real;
begin
    write ('Masukkan nilai n='); read(n);
    write ('Masukkan nilai x='); read(x);
    write ('Masukkan nilai p='); read(p);
    f:=1;
    g:=1;
    q:=(1-p);
    r:=n-x;
    n_x:=1;
    for i:=2 to n do
     f:=f*i;
    for i:=2 to x do
     g:=g*i;
    for i:=2 to (n-x)do
     n_x:=n_x*i;
     c:=f/(g*n_x);
     px:=1;
    for i:=1 to abs (x) do
     px:=p*px;
     qx:=1;
    for i:=1 to abs (n-x) do
     qx:=q*qx;
     b:=c*px*qx;
     write (c,px,qx);
     writeln('b=',b);
end.

Program Untuk Memasukkan Nilai Dalam Array

Program Array_Input;
Uses wincrt;
Var
Bilangan : array[1..50] of Integer;
Begin
ClrScr;
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);

End.

Program Menghitung Matrik

program matrik_kali;
uses wincrt;
var a,b,c: array[1..10,1..10] of real;
    i,j,k,baris1,kolom1,baris2,kolom2:integer;

begin
writeln('ukuran matrik A ');
read(baris1,kolom1);
write('masukan nilai matrik');
for i:=1 to baris1 do
  for j:=1 to kolom1 do
    read(a[i,j]);

write('ukuran matrik B ');
read(baris2,kolom2);
writeln('masukan nilai matrik');
for i:=1 to baris2 do
  for j:=1 to kolom2 do
    read(b[i,j]);


if kolom1=baris2 then
for i:=1 to baris1 do
  for j:=1 to kolom2 do
    begin
    c[i,j]:=0;
    for k:=1 to kolom1 do
    c[i,j]:=c[i,j]+a[i,k]*b[k,j];
    end
else
write('ukuran matrix tidak sesuai syarat');

writeln('hasil perkalian');
for i:=1 to baris1 do
  begin
  for j:=1 to kolom2 do
  write(c[i,j]:0:0,' ');
  writeln
  end;
begin if (baris1=baris2) and (kolom1=kolom2) then
   begin
   for i:=1 to baris2 do
     for j:=1 to kolom2 do
       c[i,j]:= a[i,j]+b[i,j]
   end
   else
   writeln('ukuran matrik tidak sama');

writeln('hasil penjumlahan');
for i:=1 to baris1 do
   begin
   for j:=1 to kolom1 do
   write(c[i,j]:0:0,' ');
   writeln;
   end;
end;
begin if (baris1=baris2) and (kolom1=kolom2) then
   begin
   for i:=1 to baris2 do
     for j:=1 to kolom2 do
       c[i,j]:= a[i,j]-b[i,j]
   end
   else
   writeln('ukuran matrik tidak sama');

writeln('hasil pengurangan');
for i:=1 to baris1 do
   begin
   for j:=1 to kolom1 do
   write(c[i,j]:0:0,' ');
   writeln;
   end; end; end.

Program Untuk Menghitung Nilai

program mencari_nilai;
uses wincrt;
var
Nilai : array[1..50] of real;
jumlah, rata : real;
i,a, JumDat : byte;
nama : string;

begin
 writeln('Menghitung Nilai Ujian PIK Kelas A');
 Writeln('==================================');
 writeln('Masukkan Nama Mahasiswa :' );
 readln(nama);
 Writeln('Banyaknya Ujian :');
 readln(JumDat);

  for i := 1 to Jumdat do
  begin
   Write('Masukkan Nilai Ujian ke',i,' =');
   Readln(Nilai[i]);
  end;
 jumlah:=0;

  for i:= 1 to JumDat do
  begin
   Jumlah := jumlah + Nilai[i];
   rata := Jumlah/JumDat;
  end;
 writeln('==================================');
 writeln('Nama Mahasiswa = ',nama);
 
  for i := 1 to jumdat do
  begin
   writeln('Nilai Ujian ke-',i,'=',nilai[i]:3:0);
  end;
 writeln('Total Nilai = ',jumlah:3:0);
 writeln('Nilai Rata-Rata Ujian = ',Rata:3:1);
end.

Tampilan ketika program ini di run adalah sebagai berikut :

Program Mencari Mean Modus dan Median

program stat_desk;
uses wincrt;
var i,n:integer;
j,k,l,m:real;
x:array[1..100] of integer;
begin
write('jumlah data= ');readln(n);
j:=0;
for i:=1 to n do
begin
write('suku',i,'=');
readln(x[i]);
j:=j+x[i];
end;
k:=j/n;
l:=l+(sqr(x[i]-k)/(n-1));
m:=sqrt(l);
writeln;
writeln('jumlah data= ',n);
writeln('nilai data= ',j:1:2);
writeln('rata nilai data= ',k:1:2);
writeln('variansi= ',l:1:2);
writeln('standart deviasi= ',m:1:2);
end.
untuk data yang dimasukkan berupa data genap bukan pecahan bila dengan pecahan maka array yang dipakai adalah real

 program konversi_angka_ke_teks;
 uses wincrt;
 var angka:integer;
 begin
 read (angka);
 case angka of
      1: write ('satu');
      2: write ('dua');
      3: write ('tiga');
      4: write ('empat');
      else write('angka salah');
 end;
 end.

program konversi_angka_ke_teks;
uses wincrt;
var angka:integer;
begin
write ('masukkan angka'); read(angka);
if angka=1 then write ('satu')
else if angka=2 then write ('dua')
     else if angka=3 then write ('tiga')
  else if angka=4 then write ('empat')
               else write('angka yang dimaksudkan salah')
               {endif}
          {endif} 
     {endif}
{endif}
end.


program quartil;
uses wincrt;
type arrint = array [1..100] of real;

procedure tukar(var a,b : real);var Bantu : real;
begin
Bantu := a;a := b;b := Bantu;
end;
procedure buble(var x:arrint ; n: integer);
var i,j : integer;
begin
for i:=1 to n-1 do
for j:=1 to n-i do
if x[j] > x[j+1] then    tukar(x[j],x[j+1]);
end;
procedure ganjil(var x:arrint ; n: integer);
var q1,q2,q3:integer;
begin
q1 :=(n+1) div 4;
q2 :=(n+1) div 2;
q3 :=(3*(n+1)) div 4;
write('quartil 1 dari data tersebut adalah : ',x[q1]:2:2);writeln;
write('quartil 2 dari data tersebut adalah : ',x[q2]:2:2);writeln;
write('quartil 3 dari data tersebut adalah : ',x[q3]:2:2);writeln;
end;
procedure genap(var x:arrint ; n: integer);
var q1,q2,q3:integer;
median:real;
begin
q1 :=(n+2) div 4;
q2 :=n div 2;
median:= ((x[q2])+(x[q2+1])) / 2;
q3 :=(3*n+2) div 4;
write('quartil 1 dari data tersebut adalah : ',x[q1]:2:2);writeln;
write('quartil 2 dari data tersebut adalah : ',median:2:2);writeln;
write('quartil 3 dari data tersebut adalah : ',x[q3]:2:2);writeln;
end;

var n,i : integer;
data : arrint;
begin
clrscr;write('masukkan banyak data : ');readln(n);
for i:= 1 to n do
begin
write('data ke-',i,' = ');readln(data[i]);
end;
buble(data,n);for i:=1 to n do
write(data[i]:0:0);writeln;

if n mod 2 = 1 then  ganjil(data,n)else  genap(data,n);
readln;

end.

Tampilan ketika program ini di run adalah sebagai berikut :

Program Membuat Pola Berbentuk Bintang

program bintang;
uses wincrt;
var i,n,j:integer;
begin
writeln('Masukkan tingkat yang diinginkan');
readln (n);
for i:=n downto 1 do
begin for j:=1 to n do
begin if(j<i) then
write (' ')
else
write ('*'); write(' ');
end;
writeln;
end;
end.


Tampilan ketika program ini di run adalah sebagai berikut :

Program Deret Fibonacci

program fibonaci;
uses wincrt;
var i,n,j,r:integer;  k:longint;
begin
writeln ('Masukkan tingkat yang diinginkan');
readln (n);
for i:=1 to n do
begin
for j:=1 to i do
k:=1;
for r:=1 to j do
begin
k:=j*k;
write (k); write(' ');
end;
writeln;
end;
end.

Program Deret Angka

program deret_angka;
uses wincrt;
var
angka1 : integer;
angka2: integer;
begin
angka1:=1;
repeat
angka2:=angka1+3 ;
until
angka2=16;
write(angka2);
end.