ALT_IMG

XA3

XA3 adalah kelasku, dimana tempatku belajar. menimba ilmu dari guru-guru. bertemu dengan kawan-kawan yang kadang menjengkalkan, menyenangkan dan kadang juga bertingkah konyol Readmore...

ALT_IMG

Siswa XA3

Disamping adalah anak-anak XA3 ketika poto bareng

Alt img

Siswa XA3

ingin lebih jelas? klik link Siswa XA3 diatas

Showing posts with label Pascal. Show all posts
Showing posts with label Pascal. Show all posts
Wednesday 10 November 2010

Contoh Membuat Bintang dalam Pascal

0 comments


Program cara Membuat Bintang Di Pascal...

program Bintang;
uses crt, graph;
type Tbintang = Record
PX, PY : Integer;
Ukuran : Integer;
Warna : Integer;
end;
Var BT : TBintang;
Procedure Create_Bintang(Var B:Tbintang;X, Y, U, W: Integer);
begin
B.PX := X;
B.PY := Y;
B.Ukuran := U;
B.Warna := W;
setcolor(B.Warna);
Moveto(B.PX, B.PY-4*B.Ukuran);
Lineto(B.PX+1*B.Ukuran, B.PY-1*B.Ukuran);
LineTo(B.PX+4*B.Ukuran, B.PY-1*B.Ukuran);
LineTo(B.PX+2*B.Ukuran, B.PY+1*B.Ukuran);
LineTo(B.PX+3*B.Ukuran, B.PY+4*B.Ukuran);
Lineto(B.PX, B.PY+2*B.Ukuran);
LineTo(B.PX-3*B.Ukuran, B.PY+4*B.Ukuran);
LineTo(B.PX-2*B.Ukuran, B.PY+1*B.Ukuran);
Lineto(B.PX-4*B.Ukuran, B.PY-1*B.Ukuran);
LineTo(B.PX-1*B.Ukuran, B.PY-1*B.Ukuran);
Lineto(B.PX, B.PY-4*B.Ukuran);
end;

procedure InisialisasiGrafik;
var
DriverGrafik,ModeGrafik : integer;
begin
DriverGrafik:=VGA;
ModeGrafik:=VGAHi;
initgraph(DriverGrafik,ModeGrafik,' ');
end;

Begin
clrscr;
InisialisasiGrafik;
Repeat
BT.PX :=(315);
BT.PY :=(200);
BT.Ukuran := Random(30);
BT.Warna := (green);
Create_Bintang(BT, BT.PX, BT.PY, BT.Ukuran, BT.Warna);
delay(10000);
until keypressed;
readln;
closegraph
End.

Mudah2 dapat Membantu Tmn2 dalam belajar Pascall ^_^

Source from : Indonesian Hacker
Continue reading →

Buat Game Tetris Menggunakan Pascal

0 comments
RxN7
04-28-2010, 03:08 PM
uses crt;

type _points = array [1..4] of record
x,y : longint;
end;
tetris = record
points : _points;
cshape, nshape, xmodel, xtetris, ymodel, ytetris : longint;
end;

Const template : array [1..8] of _points =
(((x:1; y:1),(x:1; y:2),(x:2; y:1),(x:2; y:2)),
((x:2; y:1),(x:1; y:1),(x:3; y:1),(x:4; y:1)),
((x:1; y:2),(x:1; y:1),(x:1; y:3),(x:2; y:3)),
((x:2; y:2),(x:2; y:1),(x:2; y:3),(x:1; y:3)),
((x:1; y:2),(x:1; y:1),(x:2; y:2),(x:2; y:3)),
((x:1; y:2),(x:2; y:1),(x:2; y:2),(x:1; y:3)),
((x:1; y:2),(x:1; y:1),(x:1; y:3),(x:2; y:2)),
((x:1; y:2),(x:2; y:1),(x:2; y:2),(x:2; y:3)));

var field : array [1..79,1..25] of boolean;
tetris1, tetris2, ttetris : tetris;
quit,gameover : boolean;
answer : char;

procedure init_field;
var i : longint;
begin
clrscr; fillchar(field,sizeof(field),0);
for i := 3 to 22 do
begin
gotoxy(20,i); write(#186); field[20,i] := true;
gotoxy(36,i); write(#186); field[36,i] := true;
gotoxy(60,i); write(#186); field[60,i] := true;
gotoxy(76,i); write(#186); field[76,i] := true;
end;
for i := 1 to 15 do
begin
gotoxy(20+i,23); write(#205); field[20+i,23] := true;
gotoxy(60+i,23); write(#205); field[60+i,23] := true;
end;
gotoxy(20,23); write(#200);
gotoxy(60,23); write(#200);
gotoxy(36,23); write(#188);
gotoxy(76,23); write(#188);
gotoxy(6,4); write('Next:');
gotoxy(46,4); write('Next:');
end;

procedure drawtetris(objek : tetris; mode : Boolean);
var i : longint;
c : char;
begin
if mode then c := #178 else c := #32;
for i := 1 to 4 do
begin
field[objek.points[i].x,objek.points[i].y] := mode;
gotoxy(objek.points[i].x, objek.points[i].y);
write(c);
end;
gotoxy(1,1);
End;

procedure dropnew(var objek : tetris);
var i : longint;
begin
if objek.cshape <> 0 then
begin
for i := 1 to 4 do
begin
ttetris.points[i].x := template[objek.nshape,i].x + objek.xmodel;
ttetris.points[i].y := template[objek.nshape,i].y + objek.ymodel;
end;
drawtetris(ttetris,false);
end;
objek.cshape := objek.nshape;
objek.nshape := random(8) + 1;
for i := 1 to 4 do
begin
objek.points[i].x := template[objek.cshape,i].x + objek.xtetris;
objek.points[i].y := template[objek.cshape,i].y + objek.ytetris;
ttetris.points[i].x := template[objek.nshape,i].x + objek.xmodel;
ttetris.points[i].y := template[objek.nshape,i].y + objek.ymodel;
if field[objek.points[i].x,objek.points[i].y] then
begin
gameover := true;
break;
end;
end;
drawtetris(objek,true);
drawtetris(ttetris,true);
end;

procedure init_tetris(var objek : tetris; id : longint);
begin
objek.nshape := random(8) + 1;
if id = 1 then
begin
objek.xmodel := 7; objek.xtetris := 26;
end else begin
objek.xmodel := 47; objek.xtetris := 66;
end;
objek.ymodel := 5; objek.ytetris := 2;
dropnew(objek);
end;

procedure eliminate(objek : tetris; y : longint);
var i,j,k : longint;
blank : boolean;
begin
for i := y downto 3 do
begin
blank := false;
for j := objek.xmodel + 14 to objek.xmodel + 28 do
if not field[j,i] then
begin
blank := true;
break;
end;
if not blank then
begin
for k := i downto 3 do
begin
gotoxy(objek.xmodel + 14,k);
for j := (objek.xmodel + 14) to (objek.xmodel + 28) do
begin
if field[j,k-1] then write(#178) else write(#32);
field[j,k] := field[j,k-1];
end;
end;
eliminate(objek,i);
break;
end;
end;
end;

procedure slide(var objek : tetris);
var i : longint;
dropped : boolean;
begin
drawtetris(objek,false);
ttetris := objek;
dropped := false;
for i := 1 to 4 do
begin
inc(ttetris.points[i].y);
if field[ttetris.points[i].x,ttetris.points[i].y] then
begin
dropped := true;
break;
end;
end;
if not dropped then objek := ttetris;
drawtetris(objek,true);
if dropped then
begin
eliminate(objek,22);
dropnew(objek);
end;
end;

procedure rotate(var objek : tetris);
var i : longint;
collide : boolean;
begin
drawtetris(objek,false);
ttetris := objek;
collide := false;
for i := 2 to 4 do
begin
ttetris.points[i].y := objek.points[1].y + objek.points[i].x - objek.points[1].x;
ttetris.points[i].x := objek.points[1].x - objek.points[i].y + objek.points[1].y;
if field[ttetris.points[i].x,ttetris.points[i].y] then
begin
collide := true;
break;
end;
end;
if not collide then objek := ttetris;
drawtetris(objek,true);
end;

procedure shift(var objek : tetris; x, y : longint);
var i : longint;
collide : boolean;
begin
drawtetris(objek,false);
ttetris := objek;
collide := false;
for i := 1 to 4 do
begin
ttetris.points[i].x := objek.points[i].x + x;
ttetris.points[i].y := objek.points[i].y + y;
if field[ttetris.points[i].x,ttetris.points[i].y] then
begin
collide := true;
break;
end;
end;
if not collide then objek := ttetris;
drawtetris(objek,true);
if collide then eliminate(objek,22);
end;

procedure userinput;
var i : longint;
c : char;
begin
for i := 1 to 20 do
begin
if keypressed then
begin
c := upcase(readkey);
case c of
'W' : if tetris1.cshape <> 1 then rotate(tetris1);
#72 : if tetris2.cshape <> 1 then rotate(tetris2);
'A' : shift(tetris1,-1,0);
#75 : shift(tetris2,-1,0);
'S' : shift(tetris1,0,1);
#80 : shift(tetris2,0,1);
'D' : shift(tetris1,1,0);
#77 : shift(tetris2,1,0);
#27 : gameover := true;
#32 : repeat delay(10); until keypressed;
end;
end;
delay(10);
end;
end;

begin
randomize;
while not quit do
begin
init_field;
init_tetris(tetris1,1);
init_tetris(tetris2,2);
gameover := false;
while not gameover do
begin
slide(tetris1);
slide(tetris2);
userinput;
end;
gotoxy(1,25); write('Play Again[Y/N]? ');
repeat
answer := upcase(readkey);
until answer in ['Y','N',#27];
if (answer = 'N') or (answer = #27) then break;
end;
end.

Source From :Indonesian hacker
Continue reading →

Contoh Program menggunakan procedure dan case of DI Pascal

0 comments
Program Menghitung_Luas_dan_Keliling_Bangun_Datar;
uses crt;
Var
Pilih : Integer;
Procedure Persegi; {Mencari Luas dan Keliling Persegi}
Var
s, L, K : Real;
Begin
Writeln(' ');
Textcolor(LightRed);
Writeln(' --==::Menghitung Luas dan Keliling Persegi::==--');
Textcolor(LightGreen);
Writeln(' ');
Write('Masukkan sisi : ');Readln(s);
L := s*s;
K := 4*s;
Writeln('Luas : ', L:0:0);
Writeln('Keliling : ', K:0:0);
Writeln(' ');
Textcolor(LightRed);
Writeln(' CopyLeft@2008 Teatzo_system.corp (TS.corp) ');
Readln;
end;
Procedure PersegiPanjang; {Mencari Luas dan Keliling Persegi Panjang}
Var
p, lbr, L, K : Real;
Begin
Writeln(' ');
Textcolor(LightRed);
Writeln(' --==::Menghitung Luas dan Keliling Persegi Panjang::==--');
Textcolor(LightGreen);
Writeln(' ');
Write('Masukkan panjang : ');Readln(p);
Write('Masukkan lebar : ');Readln(lbr);
L := p*lbr;
K := 2*(p+lbr);
Writeln('Luas : ', L:0:0);
Writeln('Keliling : ', K:0:0);
Writeln(' ');
Textcolor(LightRed);
Writeln(' CopyLeft@2008 Teatzo_system.corp (TS.corp) ');
Readln;
end;
Procedure Segitiga; {Mencari Luas dan Keliling Segitiga}
Var
a, t, sm, L, K : Real;
Begin
Writeln(' ');
Textcolor(LightRed);
Writeln(' --==::Menghitung Luas dan Keliling Segitiga Siku-Siku::==--');
Textcolor(LightGreen);
Writeln(' ');
Write('Masukkan alas : ');Readln(a);
Write('Masukkan tinggi : ');Readln(t);
L:= 0.5*a*t;
sm:= sqrt(sqr(a)+sqr(t));
K:= a+t+sm;
Writeln('Luas : ', L:0:2);
Writeln('Keliling : ', K:0:2);
Writeln(' ');
Textcolor(LightRed);
Writeln(' CopyLeft@2008 Teatzo_system.corp (TS.corp) ');
Readln;
end;
Procedure Lingkaran; {Mencari Luas dan Keliling Lingkaran}
Var
r, L, K : Real;
Begin
Writeln(' ');
Textcolor(LightRed);
Writeln(' --==::Menghitung Luas dan Keliling Lingkaran::==--');
Textcolor(LightGreen);
Writeln(' ');
Write('Masukan jari-jari : ');Readln(r);
L:= 22/7*(sqr(r));
K:= 2*22/7*r;
Writeln('Luas : ', L:0:2);
Writeln('Keliling : ', K:0:2);
Writeln(' ');
Textcolor(12);
Writeln(' CopyLeft@2008 Teatzo_system.corp (TS.corp) ');
Readln;
end;
Procedure Kubus; {Mencari Volume dan Luas permukaan Kubus}
Var
s, V, Lp : Real;
Begin
Writeln(' ');
Textcolor(LightRed);
Writeln(' --==::Menghitung Volume dan Luas permukaan Kubus::==--');
Textcolor(LightGreen);
Writeln(' ');
Write('Masukan sisi : ');Readln(s);
V:= s*s*s;
Lp:= 6*s*s;
Writeln('Volume : ', V:0:0);
Writeln('Luas Permukaan : ', Lp:0:0);
Writeln(' ');
Textcolor(LightRed);
Writeln(' CopyLeft@2008 Teatzo_system.corp (TS.corp) ');
Readln;
end;
Procedure Balok; {Mencari Volume dan Luas permukaan Balok}
Var
p, l, t, V, Lp : Real;
Begin
Writeln(' ');
Textcolor(LightRed);
Writeln(' --==::Menghitung Volume dan Luas Permukaan Balok::==--');
Textcolor(LightGreen);
Writeln(' ');
Write('Masukan panjang : ');Readln(p);
Write('Masukan lebar : ');Readln(l);
Write('Masukan tinggi : ');Readln(t);
V:= p*l*t;
Lp:= 2*p*l+2*p*t+2*l*t;
Writeln('Volume : ', V:0:0);
Writeln('Luas Permukaan : ', Lp:0:0);
Writeln(' ');
Textcolor(LightRed);
Writeln(' CopyLeft@2008 Teatzo_system.corp (TS.corp) ');
Readln;
end;
Procedure Latihan1;
var
a, b, c, d, e : Real;
f, g, h, i : Integer;
Begin
Writeln(' ');
Textcolor(LightRed);
Writeln(' --==::Mengerjakan Soal-Soal Mengenai Bangun Datar::==--');
Textcolor(LightGreen);
Writeln(' ');
Writeln(' ');
Writeln(' 1. Diketahui sebuah Persegi Mempunyai Panjang sisi 5');
Writeln(' Berapakah Luas Dan Kelilingnya..?');
Writeln(' ');
Write('Luas : ');Readln(a);
Write('Keliling : ');Readln(b);
Textcolor(LightRed);
if a*b/2+5=255
then write('Bagus, Lanjutkan Ke soal Berikutnya ')
else write('Maaf, anda salah, lebih teliti lagi di soal berikutnya ! ');
Readln;
Textcolor(LightGreen);
Writeln(' ');
Writeln(' 2. Diketahui sebuah Lingkaran Mempunyai Jari-jari 7');
Writeln(' Berapakah Luas Dan Kelilingnya..?');
Write('Luas : ');Readln(c);
Write('Keliling : ');Readln(d);
Textcolor(LightRed);
if c+d=198
then write('SELAMAT')
else write('Maaf Coba Lagi Yah.!');
Writeln(' ');
Writeln(' ');
Textcolor(LightRed);
Writeln(' CopyLeft@2008 Teatzo_system.corp (TS.corp) ');

Readln;
end;
Procedure Credits;
Begin
Writeln(' ');
Writeln(' ');
Writeln(' ');
Writeln(' ');
Textcolor(LightCyan);
Writeln('***************************************** ****************************** ');
Textcolor(LightGreen);
Writeln(' ');
Writeln(' Cah SMANSA Community ');
Writeln(' Simbah Google ');
Writeln(' Komputer Bokap Gue ');
Writeln(' ');
Textcolor(LightCyan);
Writeln('***************************************** ****************************** ');
Writeln(' ');
Textcolor(LightRed);
Writeln(' CopyLeft@2008 Teatzo_system.corp (TS.corp) ');
Readln;
end;
Procedure BangunDatar;
Begin {Sub Program}
repeat
clrscr;
Textcolor(LightCyan);
Writeln('***************************************** **************************** ');
Textcolor(LightRed);
Writeln(' ---==::BANDIT CYBER PINGIN TOBAT::==--- ');
Textcolor(LightCyan);
Writeln('***************************************** **************************** ');
Textcolor(Yellow);
writeln(' ');
Writeln('<<<<<<< Cara Cepat Menghitung Luas dan Keliling Bangun Datar >>>>>>>) ');
Writeln(' <<<<< Lebih Cepat daripada Menggunakan Jari tangan anda >>>>) ');
writeln(' ');
Textcolor(LightCyan);
writeln('--------------------------------------------------------------------- ');
Textcolor(LightRed);
writeln(' = Provided by Teatzo = ');
Textcolor(LightCyan);
writeln('--------------------------------------------------------------------- ');
Textcolor(Yellow);
Writeln(' Pilihan : ');
Textcolor(LightGreen);
Writeln(' 1. Menghitung Luas dan Keliling Persegi ');
Writeln(' 2. Menghitung Luas dan Keliling Persegi Panjang ');
Writeln(' 3. Menghitung Luas dan Keliling Segitiga siku-siku ');
Writeln(' 4. Menghitung Luas dan Keliling Lingkaran ');
Writeln(' 5. Keluar ');
Textcolor(Yellow);
Write(' Pilih Angka untuk memilih pilihan : ');
Readln(pilih);
case pilih of
1 : Persegi;
2 : PersegiPanjang;
3 : Segitiga;
4 : Lingkaran;
5 : exit;
end;
until pilih = 5;
end;
Procedure BangunRuang;
Begin {Sub Program}
repeat
clrscr;
Textcolor(LightCyan);
Writeln('***************************************** **************************** ');
Textcolor(LightRed);
Writeln(' ---==::BANDIT CYBER PINGIN TOBAT::==--- ');
Textcolor(LightCyan);
Writeln('***************************************** **************************** ');
Textcolor(Yellow);
writeln(' ');
Writeln('<<<< Cara Cepat Menghitung Volume dan Luas Permukaan Bangun Ruang >>>)');
Writeln(' <<<<< Lebih Cepat daripada Menggunakan Jari tangan anda >>>>) ');
writeln(' ');
Textcolor(LightCyan);
writeln('--------------------------------------------------------------------- ');
Textcolor(LightRed);
writeln(' = Provided by Teatzo = ');
Textcolor(LightCyan);
writeln('--------------------------------------------------------------------- ');
Textcolor(Yellow);
Writeln(' Pilihan : ');
Textcolor(LightGreen);
Writeln(' 1. Menghitung Volume dan Luas Permukaan Kubus ');
Writeln(' 2. Menghitung Volume dan Luas Permukaan Balok ');
Writeln(' 3. Keluar ');
Textcolor(Yellow);
Write(' Pilih Angka untuk memilih pilihan : ');
Readln(pilih);
case pilih of
1 : Kubus;
2 : Balok;
3 : exit;
end;
until pilih = 3;
end;
Procedure Latihan;
Begin {Sub Program}
repeat
clrscr;
Textcolor(LightCyan);
Writeln('***************************************** **************************** ');
Textcolor(LightRed);
Writeln(' ---==::BANDIT CYBER PINGIN TOBAT::==--- ');
Textcolor(LightCyan);
Writeln('***************************************** **************************** ');
Textcolor(Yellow);
writeln(' ');
Writeln(' <<<< Contoh Soal-Soal Latihan Yang Sangat Mudah >>>)');
Writeln(' <<<<< Kalau gak Bisa Menjawab, lebih baik Sekolah SD dulu >>>>) ');
writeln(' ');
Textcolor(LightCyan);
writeln('--------------------------------------------------------------------- ');
Textcolor(LightRed);
writeln(' = Provided by Teatzo = ');
Textcolor(LightCyan);
writeln('--------------------------------------------------------------------- ');
Textcolor(Yellow);
Writeln(' Pilihan : ');
Textcolor(LightGreen);
Writeln(' 1. Soal-soal Menghitung Luas dan Keliling Bangun datar ');
Writeln(' 2. Keluar ');
Textcolor(Yellow);
Write(' Pilih Angka untuk memilih pilihan : ');
Readln(pilih);
case pilih of
1 : Latihan1;
2 : exit;
end;
until pilih = 2;
end;

Begin {Main Program}
repeat
clrscr;
textcolor(LightCyan);
Writeln('***************************************** **************************** ');
Textcolor(LightRed);
Writeln(' ---==::BANDIT CYBER PINGIN TOBAT::==--- ');
Textcolor(LightCyan);
Writeln('***************************************** **************************** ');
Textcolor(Yellow);
writeln(' ');
Writeln(' <<<<<<< Cara Cepat Mengerjakan Soal-Soal Matematika >>>>>>) ');
Writeln(' <<<<< disertai contoh soal dan pembahasan >>>>) ');
writeln(' ');
Textcolor(LightCyan);
writeln('--------------------------------------------------------------------- ');
Textcolor(LightRed);
writeln(' = Provided by Teatzo = ');
Textcolor(LightCyan);
writeln('--------------------------------------------------------------------- ');
Textcolor(Yellow);
Writeln(' Pilihan : ');
Textcolor(LightGreen);
Writeln(' 1. Mengerjakan Soal-Soal Mengenai Bangun Datar ');
Writeln(' 2. Mengerjakan Soal-Soal Mengenai Bangun Ruang ');
Writeln(' 3. Mengerjakan Latihan-latihan ');
Writeln(' 4. Credits ');
Writeln(' 5. Keluar ');
Textcolor(Yellow);
Write(' Pilih Angka untuk memilih pilihan : ');
Readln(pilih);
case pilih of
1 : BangunDatar;
2 : BangunRuang;
3 : Latihan;
4 : Credits;
5 : exit;
end;
until pilih = 5;
End.

source From :
Untuk Contoh Program Pascal Lainnya :
- bagaimana-cara-tips.blogspot.com
Continue reading →

Materi - Pengenalan Pascal

0 comments


Pascal merupakan suatu bahasa komputer tingkat tinggi yang dibuat sekitar tahun 1970 oleh Niklaus Wirth 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.
Pascal adalah suatu bahasa pemrograman terstruktur. Hal tersebut berarti semua program yang anda buat harus terstruktur dan teratur, dalam hal ini ada pemakaian goto dan jump. Struktur program pascal yang paling sederhana adalah :
uses ...;
var ...;
begin
.... {Your program is here}
end.

Adapun struktur dasar suatu program pascal adalah sebagai berikut :
program ... ; { Program heading }
uses ... ; { Uses clause }
label ... ; { Labels }
const ... ; { Constants }
type ... ; { Types }
var ... ; { Variables }
procedure ... ; { Procedures }
function ... ; { Functions }
begin
statement; { Statements }
...
end.




PEMBAHASAN

A. Program Heading
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 titik koma.
Contoh :
Program Perhitungan(Input,Output);
Untuk membuat program anda menjadi mudah dibaca dan di mengerti, maka perlu diberi keterangan yang akan diabaikan oleh kompiler. Untuk membuat keterangan gunakan tanda kurawal { ini adalah keterangan }, atau (* ini adalah keterangan *).
Adapun type variable yang disediakan pada TURBO PASCAL :
1. Ordinal types Type data yang mempunyai urutan pasti, dan masih terbagi menjadi.
o Integer type variable yang beguna untuk pengolahan data yang bulat, type ini masih terbagi atas berberapa menurut jangkauan data dan ukurannya : Type Jangkuan Ukuran Shortint-128..127 8 bit Integer-32768..32767 16 bit Longint-2147483648..2147483647 32 bit Byte 0..255 8 bit Word 0..65535 16 bit.
o Char type variabel yang berguna untuk pengolahan character ASCII, type character ini penulisannya ditandai dengan dua buah petik tunggal seperti : 'A', '3','*',#7 untuk menyatakan ' harus ditulis ''''.
o Boolean ype varibale yang berguna untuk pengolahan hal yang hanya mempunyai dua ketentuan yaitu benar(TRUE) dan salah(FALSE) saja.
2. Real types Type variable yang beguna untuk pengolahan data yang tidak bulat, untuk type real ini juga terbagi atas beberapa :
Type Jangkauan Ketelitian Ukuran
Real 2.9e-39..1.7e38 11-12 digit 6 bit
Single 1.5e-45..3.4e38 � 7-8 7-8 digit 4 bit
Double 5.0e-324..1.7e308 15-16 digit 8 bit
Extended 3.4e-4932..1.1e4932 19-20 digit 10 bit
Comp -9.2e18..9.2e18 19-20 digit 8 bit


Untuk pengolahan type variabel diatas di sediakan berbagai jenis operator antara lain :
Operator Integer Type Real Type
+ Penjumlahan Penjumlahan
- Pengurangan Pengurangan
* Perkalian Perkalian
/ Pembagian Pembagian
DIV Hasil bagi
MOD Sisa Bagi
Operator Integer Type Boolean Type
NOT Bitwise Negation Logical Negation
AND Bitwise AND Logical AND
OR Bitwise inclusive OR Logical inclusive OR
XOR Bitwise exclusive OR Logical exclusive OR
SHL Bitwise shift-left
SHR Bitwise shift-right

Operator relasi yang mengembalikan hasil Boolean
Operator Fungsi
:= Menyatakan nilai
= Sama dengan
<> Tidak sama dengan
< Lebih kecil
> Lebih besar
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan

B. Cara Menampilkan Tulisan Ke Layar
Pascal menyediakan perintah Write dan Writeln yang dapat anda gunakan untuk menampilkan tulisan ke layar. Dapatkah anda memberi contoh program yang menggunakan variabel ? {Deklarasi variabel}
var
UmurKu : Byte;
Keterangan : String;
(*Program anda*)
begin
UmurKu:=19;
Keterangan:='Hi, saya sedang belajar Pascal di PentaCOM';
Writeln('Saya berumur ',UmurKu,' tahun');
Writeln(Keterangan);
end.

C. Cara Membaca Masukan Dari Pemakai
Perintah Readln dapat digunakan untuk membaca masukan dari pemakai dan menyimpannya ke suatu variabel.
var
UmurKu : Byte;
Keterangan : String;
begin
Write('Berapa umur anda ? '); Readln(UmurKu);
Write('Komentar anda: '); Readln(Keterangan);
Writeln;
Writeln('Saya berumur ',UmurKu,' tahun');
Writeln(Keterangan);
end.

D. Cara Membatasi Pencetakan Tempat Desimal Untuk Data Real Type
Untuk menentukan jumlah tempat sebelum desimal dan sesudah desimal anda dapat menggunakan :x:y setelah variabel yang akan dibatasi pencetakan nilainya, dimana x adalah jumlah tempat sebelum desimal dan y adalah jumlah tempat setelah desimal. Silahkan coba koding berikut :
var
Pi : Real;
Begin
Pi := 22/7;
Writeln('Bilangan Pi adalah ', Pi);
Writeln('Bilangan Pi adalah ', Pi:2:3);
end.
Unit apa yang perlu saya cantumkan pada bagian uses, kalau saya ingin melakukan pengaturan layar ? Turbo Pascal menyediakan suatu unit CRT, yang berisi perintah-perintah pengaturan layar seperti membersihkan layar, mengatur warna tulisan, warna background, memindahkan posisi cursor, mode layar, dan membuat window Ok, saya sudah tahu perintah Clrscr, apa perintah untuk mengatur warna tulisan ? Pada prinsipnya ada dua cara untuk mengatur warna tulisan yang dicetak dengan perintah Write dan Writeln, yang pertama adalah perintah :
TextColor(nomor warna);
Dan yang kedua adalah variabel internal dari unit CRT:
Textattr := nomor warna;
Hallo, anda belum memberitahukan kepada saya nomor warna yang dapat saya gunakan !
Baiklah, berikut ini adalah nomor warna yang mewakili masing-masing warna:
0 (black), 1 (blue), 2 (green), 3 (cyan), 4 (red), 5 (magenta), 6 (brown), 7 (lightgray),
8 (darkgray), (9) lightblue, 10 (lightgreen), 11 (lightcyan), 12 (lightred), 13 (lightmagenta),
14 (yellow), 15 (White).

E. Cara Membuat Tulisan Warna Berkedip-Kedip
Dapatkan hal tersebut dilakukan dengan menambahkan angka 128 pada nomor warna yang anda inginkan, misalnya :
TextColor(4 + 128);
Writeln('Merah dan berkedip-kedip');
Atau :
TextColor(Red + Blink);
Writeln('Merah dan berkedip-kedip');
Pada prinsipnya anda dapat menggunakan konstanta dari masing-masing nomor warna seperti black, blue, green, dll, untuk menggantikan pemakaian nomor. Ok, saya sudah mengerti, bagaimana pula dengan warna latar belakang ? Pengaturan warna latarbelakang dapat menggunakan perintah :
TextBackground(nomor warna);
Dalam hal ini nomor warna yang berlaku hanya 0 s/d 7. Tadi ada ada sedikit menyinggung tentang memindahkan posisi cursor, apa gunanya dan apa perintahnya. Pada lingkungan dos, posisi tulisan dilayar dicetak berdasarkan posisi cursor yang sedang aktif, misalnya sekarang posisi cursor berada di kolom 10, baris 5, maka perintah :
Writeln('Sedang belajar Pascal di PentaCOM');
Akan menampilkan tulisan tersebut mulai kolom 10 di baris 5.
Jadi misalnya ingin mencetak tulisan tersebut pada kolom 20, baris 13, maka harus memindahkan cursor keposisi kolom 20, baris 13, diikuti dengan perintah pencetakan tulisan tersebut, contoh :
GotoXY(20,13);
Writeln('Tulisan ini dicetak mulai kolom 20, di baris 13);
Bisakah mendapatkan nilai posisi cursor yang sedang aktif ?
Bisa, bisa menggunakan variabel internal unit CRT, yaitu WhereX, dan WhereY.
GotoXY(5,5);
Write('Turbo');
GotoXY(WhereX+10,3);
Write('Pascal');

F. Cara Membatasi Tampilan Pada Layar
Jumlah kolom dan baris pada layar normal adalah 80 kolom, 25 baris. Jika layernya yang lebih besar dari tulisan normal, bagaimana hal tersebut dapat dilakukan. Hal tersebut dapat dilakukan dengan mengatur Mode layar dengan perintah :
TextMode(CO40);
Dan
TextMode(CO80);
Untuk menormalkannya.
Contoh :
Uses CRT;
begin
TextMode(CO40);
Writeln('A Real BIG Characters on screen !');
Readln;
TextMode(CO80);
Writeln('Back to normal');
Readln;
end.
Cara membatasi dari pencetakan dilayar berdasarkan koordinat kiri atas dan koordinat kanan bawah dengan perintah :
Window(x1, y1, x2, y2);
Dimana x1, y1 adalah koordinat kiri atas dan x2, y2 adalah koordinat kanan bawah.
Contoh :
uses Crt;
begin
ClrScr;
WriteLn('Creating a window from 30,10 to 50,20');
Window(30,10,50,20);
WriteLn('We are now writing in this small window we just created, we'+
'can''t get outside it when writing long lines like this one');
Write('Press any key to clear the window');
ReadKey;
ClrScr;
Write('The window is cleared, press any key to restore to fullscreen');
ReadKey;
{Full Screen is 80x25}
Window(1,1,80,25);
Clrscr;
Writeln('Back in Full Screen');
end.

G. Cara Menambah Suara Pada Program
Sebenarnya masih banyak perintah yang terdapat pada unit CRT, seperti :
Sound(frekuensi);
Delay(milidetik);
NoSound;
Fungsi-fungsinya sebagai berikut :
Fungsi perintah Sound untuk membunyikan speaker komputer dengan frekuensi tertentu.
Contoh :
Sound(500);
Bunyinya tidak berhenti, walaupun programnya sudah selesai !
berarti tidak menggunakan perintah NoSound untuk menghentikan efek dari perintah Sound.
Contoh :
Sound(500);
NoSound;
sekarang speaker komputer tidak berbunyi sama sekali,
Sisipkan delay diantara Sound dan NoSound.
Contoh :
Sound(500);
Delay(1000);
NoSound;

H. Konvensi Perhitungan
Memang pascal adalah bahasa yang sangat ketat dalam variabel dan type data. Berikut ini akan menerangkan konvensi perhitungan dan type data yang dihasilkan :
Konvensi Penjumlah (+), Pengurangan (-), dan Perkalian (*) :
integer dengan integer = integer
integer dengan real = real
real dengan real = real
Konvensi Pembagian (/) :
Selalu menghasilkan real.
Pembagian bulat dengan Div :
Menghasilkan Integer.

I. Sebuah Program Dengan Bahasa Pascal
Program Nilai_Akhir;
uses crt;
type
arr=array[1..4] of byte;
var
nilai:arr;
jawab:char;
procedure input;
var i:byte;
begin
clrscr;
gotoxy(3,1); writeln('Perhitungan Nilai Akhir:');
gotoxy(3,2); writeln('========================');
gotoxy(3,4); writeln('Nilai Absensi :');
gotoxy(3,5); writeln('Nilai TM :');
gotoxy(3,6); writeln('Nilai Mid :');
gotoxy(3,7); writeln('Nilai Final :');
gotoxy(3,8); writeln('Nilai Akhir :');
gotoxy(12,10); write('==>> Grade :');
for i:=1 to 4 do {looping dengan validasi nilai yang dimasukkan}
begin
repeat
gotoxy(19,3+i); ClrEol;
gotoxy(19,3+i); Readln(nilai[i]);
until nilai[i] in [0..100];
end;
end;

procedure Hitung;
var
akhir:real;
grade:char;
begin
akhir:=(0.1*nilai[1])+(0.1*nilai[2])+(0.3*nilai[3])+(0.5*nilai[4]); {rumus perhitungan}
gotoxy(19,8); write(akhir:-5:2); {nilai akhir}
if akhir >=85 then grade:='A' else {penentuan grade}
if akhir >=75 then grade:='B' else {nilai akhir}
if akhir >=65 then grade:='C' else
if akhir >=55 then grade:='D' else grade:='E';
gotoxy(25,10); write(grade);
end;

begin
repeat
input;
hitung;
gotoxy(3,13); write('Mau Coba Lagi (Y/T) ?');
repeat
gotoxy(25,13); jawab:=UpCase(ReadKey);
until (jawab='Y') or (jawab='T');
write(jawab);
until (jawab='T');
end.

Hasil Output :
Perhitungan Nilai Akhir:
==================
Nilai Absensi : 100
Nilai TM : 85
Nilai Mid : 80
Nilai Final : 95
Nilai Akhir : 90.00
==>> Grade : A
Mau Coba Lagi (Y/T) ?

By : Bertel Ruata
Continue reading →