Pengertian Pascal
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.
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;
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
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
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
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;
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
Program Array Segitiga Pascal
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.
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.
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.
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.
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.
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.
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.
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.
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;
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.