Pengertian Pascal

 Program Turbo Pascal
Pascal adalah salah satu bahasa pemrograman tingkat tinggi (high level language). Nama Pascal diambil dari nama seorang ahli matematika dan filosofi terkenal abad 17 dari Perancis, yaitu Blaise Pascal. Bahasa ini dirancang oleh Prof. Niklaus Wirth dari Technical University di Zurich, Switzerland. Turbo Pascal adalah salah satu versi Pascal yang paling popular dan banyak digunakan saat ini. Terdapat tiga elemen utama dalam turbo pascal, yakni:
Menu Bar
Adalah fasilitas yang ada pada setiap aplikasi window. Ada delapan Menu Utama yang dapat dipanggil dengan menggunakan tombol Alt+[Huruf pertama dari menu]. Misal ingin memanggil menu File, tekan tombol Alt+F.
Toolbar
Adalah kumpulan tombol-tombol bergambar yang berfungsi untuk memberikan perintah pada komputer
Editor
Berfungsi untuk menulis dan menyunting program.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Pernyataan ARRAY

Array (larik) menyatakan tipe data terstruktur yang berupa kumpulan elemen-elemen dengan tipe data yang sama. Tipe Array dapat ditulis sebagai berikut:
Array [Indeks_1,…,Indeks_n] of Tipe_Dasar
• Array Dimensi Satu
Array berdimensi satu merupakan array dengan ciri memiliki tipe indeks hanya satu buah. Contoh deklarasi variabel dengan tipe array berdimensi satu:
VAR X : ARRAY[1..10] of Integer;
• Array Dimensi Dua
Array berdimensi dua merupakan array dengan ciri memiliki tipe indeks dua buah. Contoh deklarasi variabel dengan tipe array berdimensi dua:
VAR Y : ARRAY[1..5,1..10] of Integer;

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Statement REPEAT

Statement REPEAT adalah suatu perintah yang berfungsi untuk melakukan proses pengulangan, dimana pengulangan akan berhenti jika kondisi yang tertulis di akhir pengulangan dipenuhi. Sintak dari statement REPEAT adalah:
REPEAT
{Statement 1}
{Statement 2}
....
{Statement n}
UNTIL {Kondisi};

















Gambar 6. Flowchart Statement REPEAT

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Statement WHILE

Statement WHILE adalah suatu perintah yang berfungsi untuk melakukan proses pengulangan, dimana pengulangan akan terus dilakukan jika kondisi tertentu dipenuhi. Jika banyaknya pengulangan diketahui tapi kenaikan atau penurunan pengulangan tidak sebesar satu, statement IF tidak cocok untuk digunakan. Sebagai alternatif dapat digunakan statement WHILE atau REPEAT. Sedangkan jika banyaknya pengulangan tidak diketahui maka statement IF tidak dapat digunakan, sehingga harus digunakan statement WHILE atau REPEAT. Bentuk dari statement WHILE adalah:
WHILE {Kondisi} DO
BEGIN
{Statement 1}
{Statement 2}
....
{Statement n}
END;












Gambar 6. Flowchart Statement WHILE

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Statement FOR

Statement FOR adalah suatu perintah yang berfungsi untuk melakukan proses pengulangan, dimana jumlah pengulangannya sudah diketahui. Bentuk dari statement FOR adalah:
FOR {Variabel} := {Nilai Awal} TO {Nilai Akhir} DO
BEGIN
{Statement 1}
{Statement 2}
....
{Statement n}
END;



















Gambar 5. Flowchart Statement FOR TO DO
FOR {Variabel} := {Nilai Awal} DOWNTO {Nilai Akhir}
DO
BEGIN
{Statement 1}
{Statement 2}
....
{Statement n}
END;

















Gambar 6. Flowchart Statement FOR DOWNTO DO

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Pernyataan CASE

CASE <variabel-pemilih> OF
<daftar-label-1> : <Pernyataan-1>;
<daftar-label-2> : <Pernyataan-2>;
.
.
<daftar-label-n> : <Pernyataan-n>;
ELSE <Pernyataan-lain> ;
END;



  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Pernyataan IF Bersarang (NESTED)

Jika ada dua pernyataan IF atau lebih, dimana pernyataan IF yang satu berada di dalam pernyataan IF yang lain, maka pernyataan tersebut disebut Bersarang (nested). Contoh bentuk pernyataan IF Bersarang:
IF <syarat logika-1> THEN <Pernyataan-1>
ELSE IF <syarat logika-2> THEN <Pernyataan-2>
ELSE IF <syarat logika-3> THEN <Pernyataan-3>
ElSE <Pernyataan-4>;








Gambar 3. Flowchart Statement IF THEN Bersarang

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Array Segitiga Pascal


program array_pascal;
uses wincrt;
var input,i,j:word; isi:array [0..20,0..21] of word;
begin
writeln('masukkan berapa tingkat segitiga pascal!');
readln(input);
isi[0,1]:=1;
for i:= 1 to input do
begin
for j:= 1 to i+1 do
begin
isi[i,j]:=isi[i-1,j]+isi[i-1,j-1];
write(isi[i,j]);
end;
writeln;
end;
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Simpangan Baku

Program Hitung_Simpangan_Baku;
Uses wincrt;
Var X,N,I:Byte;
Akar,Jum,Rata,Sd,K,Y,Sigma,Pangkat:Real;
Data:Array[1..30] of byte;
Function Pengurangan(A,I:Byte):Integer;
Begin
Pengurangan:= A-I ;
end;
Procedure NilaiData;
Begin
Write ('Berapa Banyaknya Data Nilai= ');Readln(X);
For N:=1 to x do
Begin
Write('Data ke-',N,'=');Readln(Data[N]);
end;
end;
Procedure RataRata;
Begin
Jum:=0;
For N:=1 to X do
Begin
Jum:=Jum + Data[N] ;
Rata:= Jum / X;
end;
end;
Procedure PangkatSigma;
Begin
SIGMA:=0;
For N:= 1 to X do
Begin
Pangkat:=0;
K:= Data[N]-Rata;
Pangkat:= SQR (K);
Sigma:= Sigma+Pangkat;
end;
end;
Procedure TampilHasil;
Begin
For N:= 1 to X Do
Begin
Writeln ('Data Nilai ke- ',N,'=',Data[N]);
end;
end;
Begin
clrscr;
Sigma:=0;
Rata:=0;
Writeln ; {‘>> Menghitung Simpangan Baku <<’}
NilaiData;
RataRata;
PangkatSigma;
I:=1;
Y:=Pengurangan(X,I);
Akar:=Sigma/Y ;
Sd:= SQRT (Akar);
Clrscr;
Writeln ('Hasil Penghitungan Simpangan Baku');
TampilHasil;
Writeln ('Banyaknya Data Nilai =',X);
Writeln ('Nilai Rata-ratanya = ',Rata:4:2);
Writeln ('Simpangan Bakunya Adalah = ',Sd:4:2);
Readln;
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Aritmatik

program aritmatik;
uses wincrt;
var x: real;
begin
clrscr;
write('Masukkan nilai dari x = ');
readln(x);
if x<0 then x:=abs(x);
writeln('nilai x = ',x:5:2);
writeln('nilai eksponensialnya = ',exp(x):9:3);
writeln('nilai logaritma naturalnya = ',ln(x):9:3);
writeln('nilai integernya = ',int(x):9:3);
writeln('nilai fraksionalnya = ',frac(x):9:3);
writeln('nilai x dipangkatkan = ',sqr(x):9:3);
writeln('nilai x diakarkan = ',sqrt(x):9:3);
write('nilai x jika dimasukkan dalam ');
writeln('fungsi sin,cos,dan tangen: ');
writeln('- sinus = ',sin(x):9:3);
writeln('- cosinus = ',cos(x):9:3);
writeln('- tangen = ',arctan(x):9:3);
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Menghitung Luas Persegi Panjang

program luas_persegipanjang;
uses wincrt;
var a, b, nilai: integer;
begin
writeln('Program Penghitung Luas Persegi Panjang');
writeln('Masukkan nilai panjang');
readln(a);
writeln('Masukkan nilai lebar');
readln(b);
nilai:=a*b;
write('Luas Persegi Panjang adalah ');
writeln(nilai);
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Menghitung Pangkat

Program Menghitung_Pangkat;
Uses Wincrt;
Var i,n,m: integer;
x: real;
Begin
Writeln('Program Menghitung Pangkat');
Writeln('==========================');
Writeln;
Write('Masukkan Jumlah Pangkat : ');readln(n);
Write('Masukkan Bilangan yang Dipangkatkan : ');readln(m);
Writeln;
x:=1;
if (n>0) then
For i:= 1 to n do
x:=x*m
else
writeln('');
Writeln('Hasil Pangkat: ',x:6:2);
End.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Standar Deviasi

Program standar deviasi;
uses wincrt;
var n,data,i,x: longint;
sig,rata,varian,stdev: real;
begin
Write('Masukkan jumlah data : ');readln(n);
for i:=1 to n do
begin
write('Data ke-',i,': ');
readln(data);
x:=x+data;
sig:=sig+sqr(data);
end;
rata:=x/n;
varian:=(sig-n*sqr(rata))/(n-1);
stdev:=sqrt((sig-n*sqr(rata))/(n-1));
writeln('Nilai Varian sebanyak ',n,' data adalah : ',varian:0:1);
writeln('Nilai Standar Deviasi sebanyak ',n,' data adalah : ',stdev:0:1);
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program rata-rata standar deviasi

program rata2_stdev;
uses wincrt;
var i,j,n,a:integer;
k,rata,varian,stdev:real;
begin
writeln('masukkan jumlah data',' ');
i:=1;
readln(n);
while i<=n do begin
write('data ke-',i,'= ');
readln(a);
inc(i);
j:=j+a;
k:=k+sqr(a);
end;
rata:=j/n;
varian:= (k-n*sqr(rata))/(n-1);
stdev:=sqrt((k-n*sqr(rata))/(n-1));
writeln('nilai rata-ratanya = ',rata:2:3);
writeln('nilai variannya adalah = ',varian:2:3);
write('nilai standar deviasinya adalah = ',stdev:2:3);
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Bentuk pernyataan IF

Bentuk pernyataan IF:
IF <syarat logika> THEN <Pernyataan>;












Gambar 1. Flowchart Statement IF THEN
IF <syarat logika> THEN <Pernyataan-1>
ELSE <Pernyataan-2> ;











Gambar 2. Flowchart Statement IF THEN ELSE
Jika syarat logika bernilai Benar maka yang akan dijalankan adalah pernyataan yang mengikuti THEN, dan sebaliknya jika syarat logika bernilai Salah maka yang akan dijalankan adalah pernyataan yang mengikuti ELSE. Jika pernyataan yang mengikuti THEN atau ELSE lebih dari satu maka harus diawali oleh Begin dan diakhiri oleh End. Statement End sebelum ELSE tidak boleh ada tanda titik koma (;). IF <syarat logika> THEN begin
<Pernyataan-11>;
<Pernyataan-12>;
.
.
<Pernyataan-1n>;
end;
ELSE begin
<Pernyataan-21>;
<Pernyataan-22>;
.
.
<Pernyataan-2m>;
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Pernyataan READ & READLN

READ (<variabel-1, variabel-2,.., variabel-n>) ;
Atau
READLN (<variabel-1, variabel-2,.., variabel-n>) ;
Tiap-tiap data yang dimasukkan harus sesuai dengan tipe variabelnya. Setelah data dimasukkan, tombol ENTER ditekan. Perbedaan antara READ dan READLN adalah pada sifat menangani kelebihan data yang diinputkan.
READ : Jika ada kelebihan data, pernyataan ini tidak akan membuangnya. Kelebihan data tersebut   akan diberikan pada pernyataan READ atau READLN berikutnya.
READLN : Jika ada kelebihan data, pernyataan ini akan membuangnya. Kelebihan data tersebut tidak   akan diberikan pada pernyataan READ atau READLN berikutnya.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Pernyataan WRITE dan WRITELN

Bentuk pernyataan WRITE dan WRITELN:
WRITE (<argumen >);
Atau
WRITELN (<argumen>);
Jika pernyataan WRITELN yang digunakan, setelah menampilkan hasil maka kursor ganti baris. Sedangkan jika pernyataan WRITE yang digunakan, setelah menampilkan hasil maka kursor tidak ganti baris. Dalam format penulisan WRITE dan WRITELN jika yang akan ditampilkan adalah suatu  kata/kalimat yang tidak disinpan dalam suatu variabel, maka kata/kalimat tersebut harus ditulis diantara tanda petik tunggal (’).
• WRITE atau WRITELN dapat menerima argumen berupa variabel
• WRITE atau WRITELN dapat menerima argumen bertipe data dasar (seperti boolean, real atau     integer)  bahkan char atau string
• WRITE atau WRITELN dapat menerima argumen lebih dari satu. Jika argumen lebih dari satu      maka harus dipisahkan oleh tanda koma (,).
• WRITE atau WRITELN dapat menerima argumen berupa ekspresi.
• WRITELN bisa juga tanpa argumen. Biasanya digunakan untuk membuat baris
   kosong;

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Tipe Data dalam Pascal

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.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Matriks Transpose

program Matriks Transpose;
uses wincrt;
var
x:array[1..100,1..100]of integer;
p,l,i,j:integer;
begin
write('p= ');readln(p);
write('l= ');readln(l);
for i:=1 to l do
for j:=1 to p do
readln(x[i,j]);
writeln;
writeln('Bentuk Matriknya');
for i:=1 to l do
begin
for j:=1 to p do
write (x[i,j],' ') ;
writeln;
end;
writeln('Bentuk Matrik transposenya');
for i:=1 to p do
begin
for j:=1 to l do
write (x[j,i],' ') ;
writeln;
end;
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Matrik Penjumlahan

Program matrik_penjumlahan;
uses wincrt;
var a,b,c: array[1..10,1..10] of integer;
i,j,k1,k2,b1,b2,sum,r:integer;
begin
write('Masukkan baris Matrik A = ');readln(b1);
write('Masukkan kolom Matrik A = ');readln(k1);
write('Masukkan baris Matrik B = ');readln(b2);
write('Masukkan kolom Matrik B = ');readln(k2);
for i:=1 to b1 do
for j:=1 to k1 do
readln(a[i,j]);
writeln;
for i:=1 to b2 do
for j:=1 to k2 do
readln(b[i,j]);
writeln;
writeln('Matrik A');
writeln('==================');
for i:=1 to b1 do
begin
for j:=1 to k1 do
write(a[i,j],' ');
writeln;
end;
writeln;
writeln('Matrik B');
writeln('===================');
for i:=1 to b2 do
begin
for j:=1 to k2 do
write(b[i,j],' ');
writeln;
end;
writeln;
writeln('Matrik A*B');
writeln('================');
for i:=1 to b1 do
begin
for j:=1 to k2 do
begin
sum:=0;
for r:=1 to k1 do
sum:=sum+a[i,r]*b[r,j];
c[i,j]:=sum;
write(c[i,j]:2,' ');
end;
writeln;
end;
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Fibonacci

Program Fibonacci;
Uses wincrt;
Procedure fibo(key:string:k:integer);
Var
x,y,z,i,v:longint;
Baris:word;
Begin
x:=1;
y:=1;
Writeln(‘*’,key,’*’);
For baris:=1 to k do
Begin
Writeln;
End;
Write(‘masukkan bilangan= ‘):readln(n);
Write(x,’ ’);
Write(y,’ ‘);
For i:=1 to n-2 do
Begin
z:=x+y;
x:=y;
y:=z;
Write(z,’ ‘);
End;
End;
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Pola

Program pola;
uses wincrt;
var
i,j,n,a:integer;
begin
write ('tulis hingga suku ke n_');
readln (n);
a:=0;
for i:=1 to (n div 4)+1 do
begin
for j:= 1 to 4 do
begin
a:=a+1;
if a<= n then
write (a,' ')
else write (' ');
end;
writeln;
end;
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Faktorial

Program faktorial;
uses wincrt;
var i, N, jumlah: integer;
begin
jumlah:=1;
write('masukkan nilai: ');
readln(N);
write('faktorial dari',N,'adalah=');
for i:=N downto 2 do
begin
write(i,'x');
jumlah:=i* jumlah;
end;
begin
if N<0 then write ('tidak terdefinisi')
else write('1','=',jumlah);
end;
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Bintang

program star;
uses wincrt;
var
i,n,j:integer;
a:string;
begin
write ('buat pola hingga baris ke_');
readln(n);
writeln ;
for i:=1 to n do
begin
for j:=1 to i do
begin
if (j mod 2)=1 then
a:='*' else a:='1';
write(a, ' ');
end;
writeln;
end;
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Array

Program urut;
uses wincrt;
var n,i:integer;
mean,simp,jum:real;
dat:array[1..100] of integer;
begin
write('masukkan n: ');
readln(n);
for i:=1 to n do
readln (dat[i]);
for i:=1 to n do
mean:= mean+dat[i];
mean:=mean/n;
writeln;
writeln (mean:0:2);
for i:=1 to n do
jum:=jum+sqr(dat[i]-mean);
simp:=jum/(n-1);
write(simp);
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program matriks determinan dan invers

Program det_matriks;
uses wincrt;
var a,b,c: array[1..5,1..5] of integer;
i,j,b1,k1,det:integer;
begin
write('Masukkan baris matriks A = ');readln (b1);
write('Masukkan kolom matriks A = ');readln (k1);
for i:=1 to b1 do
for j:=1 to k1 do
readln(a[i,j]);
writeln;
writeln('Matrik A');
writeln('==================');
for i:=1 to b1 do
begin
for j:=1 to k1 do
write(a[i,j],' ');
writeln;
end;
writeln;
writeln('determinan matriks A = ');
writeln('================');
begin
det:=(a[1,1]*a[2,2])-(a[1,2]*a[2,1]);
write('det A = ',det);
end;
writeln;
writeln;
writeln ('adjoin matriks A');
writeln ('================');
for i:=1 to b1 do
begin
for j:=1 to k1 do
begin
b[1,1]:= a[2,2];
b[1,2]:=-1*a[1,2];
b[2,1]:=-1*a[2,1];
b[2,2]:= a[1,1];
write (b[i,j]:3,' ');
end;
writeln;
end;
writeln;
writeln ('invers matriks A');
writeln ('================');
for i:=1 to b1 do
begin
for j:=1 to k1 do
write(b[i,j]/det:7:2,' ');
writeln;
end;
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program kombinasi dan permutasi

Program kombinasi dan permutasi
uses wincrt;
var
a,b,a_k,kombinasi,permutasi:real;
i,n,k:integer;
begin
writeln('menghitung kombinasi dan permutasi');
write('masukkan bilangan n=');readln(n);
write('masukkan bilangan k='); readln(k);
a:=1;
b:=1;
a_k:=1;
for i:= 2 to n do
a:=a*i;
for i:= 2 to k do
b:=b*i;
for i:= 2 to (n-k)do
a_k:=a_k*i;
kombinasi:= a/(b*a_k);
permutasi:= a/(a_k);
writeln ('nilai ',n,'kombinasi',k,'=',kombinasi:0:0);
writeln ('nilai',n,'permutasi',k,'=',permutasi:0:0);
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Varians

program varians;
uses wincrt;
var i,n:integer;
rata,selisih,varian,sum1,sum2:real;
data:array [1..100] of real;
begin
sum1:=0;
write('banyak data?');readln(n);
writeln('masukkan datanya!');
i:=1;
repeat
write ('data ke-',i,' ');
readln (data[i]);
inc(i);
until i > n;
i:=1;
repeat
sum1:= sum1+data[i];
inc(i);
rata:=sum1/n;
until i > n;
i:=1;
repeat
selisih:= sqr(data[i]-rata);
sum2:= sum2+selisih;
inc(i);
varian:= sum2/(n-1);
until i > n;
writeln (varian);
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Program Modus

Program banyak;
uses wincrt;
var i,n,j,modus:integer;
A,frek:array[1..100] of integer;
begin
write('masukkan banyak bilangan');
readln(n);
writeln('masukan data');
for i:=1 to n do
readln(A[i]);
writeln;
for i:=1 to n-1 do
begin
for j:=i+1 to n do
if A[i]=A[j] then
frek[i]:=frek[i]+1;
end;
modus:=1;
for i:=1 to n do
begin
if frek[modus]<frek[i] then
modus:=i;
end;
write('Modus: ',A[modus],' sejumlah ',frek[modus]+1);
end.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS