RESUME PASCAL
Grafik
Layar monitor
komputer memiliki dua modus pemakaiannya, modus text dan modus grafik. Pada
modus text yang dapat ditampilkan layar monitor adalah berupa karakter –
karakter. Banyaknya karakter yang ditampung dalam satu layar penuh adalah 4000
karakter ( untuk mode layar yang biasa dipakai ) yaitu 80 karakter mengisi
lebar layar dan 25 karakter mengisi tiinggi layar.
Lainnya dengan
modus grafik, layar monitor dapat menampilkan objek hanya berupa titik – titik
yang dapat menampung pada suatu layar penuh bervariasi sesuai dengan mode
grafik yang kita pergunakan. Dalam pemograman grafik menggunakan bahasa pascal
kita akan memerlukan file – file sebagai berikut :
File driver
grafik, yaitu file – file yang berakhiran BGI ( Boolean Grafik Interface) Untuk
dipergunakan sesuai dengan monitor yang dipergunakan
File Graph. TPU adalah fil
eyang berisi definisi dari fungsi – fungsi grafik yang dipergunakan
File Hurup
adalah file – file yang memiliki akhiran CHR yang bersifat optimal jika tidak
terdapat file – file ini setiap karakter dicetak menggunakan Jenis huruf default .
Untuk dapat
menggunakan fasilitas layar grafik terlebih dahulu harus melakukan inialisasi
yaitu memberikan kode pada komputer untuk memperlakukan layar monitor sebagai
layar grafik. Setelah dilakukan inisialisasi ini cara penulisan ke layar
berbeda dengan cara penulisan yang dilakukan pada bab – bab sebelumnya. Dalam
Pemograman grafik dipergunakan InitGraph. Syntax penulisannya :
InitGraph(GrDriver, GrMode,
DrivePath);
GraphDriver
Parameter ini
berupa parameter variabel bertipe integer yang menyatakan driver layar yang
akan dipergunakan, yang tidak lain menyatakan jenis layar monitor apa yang
dipergunakan. Dengan menugaskan DETECT pada variabel ini maka complier akan
mendeteksi monitor apa yang terpasang pada komputer yang kita pergunakan. File
– file Driver berikut ini :
Nama File
|
Perangkat (Keras)
|
CGA,BGI
|
IBM CGA,MCGA
|
EGAVGA,CGI
|
IBM EGA, VGA
|
HERC,BGI
|
Hercules Monokrom
|
ATT,BGI
|
AT & T
|
PC3270,BGI
|
IBM 3270 PC
|
IBM8514,BGI
|
IBM - 8514
|
Nama Konstanta
|
Nilai
|
CurretDriver
|
-128
|
DETECT
|
0
|
CGA
|
1
|
MCGA
|
2
|
EGA
|
3
|
EGA84
|
4
|
EGAMono
|
5
|
IBM8514
|
6
|
Hercules Monokrom
|
7
|
ATT40
|
8
|
VGA
|
9
|
PC3270
|
10
|
GraphMode
Parameter ini
berupa variabel bertipe integer yang menyatakan modes grafik yang akan kita
pergunakan. Bila variabel ini dipergunakan tidak diinialisasikan (=), maka
complier akan mencari resolusi tertinggi yang mampu ditampilkan oleh driver
layar. Mode – mode grafik dalam bahasa pascal sebagai berikut :
Nama File
|
Ukuran
|
Warna
|
||
CGACO
|
0
|
320 X 200
|
Palet 0 : LightGreen, LightRed,
Yellow
|
1
|
CGAC1
|
1
|
320 X 200
|
Palet 1 : LightCyan, LightMagenta,
White
|
1
|
CGAC2
|
2
|
320 X 200
|
Palet 2 : Green, Red, Brown
|
1
|
CGAC3
|
3
|
320 X 200
|
Palet 3 : Cyan, Magenta, LightGray
|
1
|
CGAH1
|
4
|
640 x 200
|
||
MCGACO
|
0
|
320 X 200
|
Palet 0 : LightGreen, LightRed,
Yellow
|
1
|
MCGAC1
|
1
|
320 X 200
|
Palet 1 : LightCyan, LightMagenta,
White
|
1
|
MCGAC2
|
2
|
320 X 200
|
Palet 2 : Green, Red, Brown
|
1
|
MCGAC3
|
3
|
320 X 200
|
Palet 3 : Cyan, Magenta, LightGray
|
1
|
MCGACMed
|
4
|
640 x 200
|
1
|
|
MCGACHi
|
5
|
640 x 480
|
1
|
|
EGALO
|
0
|
640 x 200
|
16 Warna
|
4
|
EGAHi
|
1
|
640 x 350
|
16 Warna
|
2
|
EGAL64LO
|
0
|
640 x 200
|
16 Warna
|
1
|
EGAL64Hi
|
1
|
640 x 350
|
4 Warna
|
1
|
EgaMonoHi
|
3
|
640 x 350
|
||
HerMonoHi
|
0
|
720 x 350
|
2
|
|
ATT400C0
|
0
|
320 X 200
|
Palet 0 : LightGreen, LightRed,
Yellow
|
1
|
ATT400C1
|
1
|
320 X 200
|
Palet 1 : LightCyan, LightMagenta,
White
|
1
|
ATT400C2
|
2
|
320 X 200
|
Palet 2 : Green, Red, Brown
|
1
|
ATT400C3
|
3
|
320 X 200
|
Palet 3 : Cyan, Magenta, LightGray
|
1
|
ATT400Med
|
4
|
640 x 200
|
1
|
|
ATT400Hi
|
5
|
640 x 200
|
1
|
|
VGALO
|
0
|
640 x 200
|
16 Warna
|
4
|
VGAMed
|
1
|
640 x 350
|
16 Warna
|
2
|
VGAHi
|
2
|
640 x 480
|
16 Warna
|
1
|
PC3270Hi
|
0
|
720 X 350
|
1
|
|
IBM8514LO
|
0
|
640 X 480
|
256 Warna
|
|
IBM8514Hi
|
1
|
1024 X 768
|
2561 Warna
|
Drive Path
Parameter
string yang menyatakan letak direktorin dari file driver ( program tersebut di
simpan dimana drive c atau d (c:/tp/bgi ). Setelah selesai menggunakan. Modus
layar harus dikembalikan lagi ke modus text, Hal ini dilakukan dengan
menggunakan perintah :
CloseGraph;
Perintah –
Perintah Grafik
GetMaxX dan GetMaxY adalah
untuk mendapatkan nilai maxsimum dari koordinat X dan koordinat Y adalah titk
paling bawah layar. Koordinat layar pada monitor komputer adalah seperti :
|
PutPixel adalah perintah untuk mencetak titik pada suatu
koordinat tertentu seperti dibawah ini :
PutPixel(X,Y,Warna);
X
dan Y koordinat titik, dan warna adalah warna titik
Line adalah perintah untuk
menggambar garis pada layar seperti dibawah ini :
Line( X1, Y1, X2, Y2 );
X1 dan Y1 adalah koordinat awal garis dan X2 dan Y2
adalah koordinat akhir garis
Line To adalah perintah
untuk menggambar garis dari posisi aktif ke koordinat tertentu seperti di bawah
ini :
LineTo( X, Y );
X
dan Y adalah koordinat ujung garis.
MoveTo adalah perintah untuk memindahkan posis aktif
ke posisi tertentu seperti dibawah ini :
MoveTo ( X, Y);
X
dan Y adalah posisi aktif baru.
Rectangle adalah perintah
untuk menggambar sebuah kotak pada layar seperti di bawah ini :
Rectangle( X1, X2, Y1, Y2);
Circle adalah perintah untuk mengambar lingkaran pada
layar seperti dibawah ini : Radius
adalah jari – jari lingkaran.
Circle ( X, Y, Radius );
Ellipse adalah perintah
untuk mengambar Ellips pada layar seperti di bawah ini :
Ellipse( X, Y, Sudut awal,
Sudut Akhir, RadiusX, RadiusY );
Sudut awal dan sudut akhir
adalah bilangan antara 0 – 360 Derajat.
Latihan
–Latihan Program
Program
Perintah_menggambar;
Uses Crt, Graph;
Type
GrDrv,GrMode : Integer;
Begin
GrDrv :=
DETECT;
InitGraph(GrDrv,
GrMode,’’);
If
GraphResult <> GrOk Then
Init :=
false;
Else
init := true;
End;
Procedure Tulis( X,Y: integer; ST:S30);
Begin
OuttextXY(X,Y,’
< - -‘+ ST);
End;
Procedure Gambar;
Var
I : Integer;
Begin
{Menggambar
Garis}
LineTo(GetMaxX,
GetMaxY);
Tulis(
20,10,’ LineTo’);
Line(100,100,300,150);
Tulis(
250,120,’ Line’);
{Menggambar
Kotak}
Rectangle(200,200,300,300);
Tulis(
205,250,’Rectangle’);
Bar(60,250,80,300);
Tulis(
85,275,’Bar’);
Bar3D(60,350,80,380,10,True);
Tulis(
85,365,’Bar3D’);
{Menggambar
Lingkaran}
Circle(GetMaxX
div 2, GetMaxY div 2,50);
Tulis(380,
GetMaxX div div 2,’Circle’);
Ellipse(400,100,0,360,10,20);
Tulis(
420,100,’Ellips’);
{Menggambar
Titik}
For I:=1
to 10 do
Begin
PutPixel(5*I,400,
LIGHTRED);
Tulis(55,400,’PuPixel’);
Readln;
CloseGraph;
End
If Init Then Gambar;
End.
Program
Animasi_Bunga;
Uses Crt; Graph;
Var
GD,GM,I : Integer;
Begin
Repeat
GD:=VGA;
GM:=VGHi;
InitGraph(
GD,GM,’’);
For I:=1
to 30 do
Begin
Setcolor(
I );
Settextstyle(4,
Horizdir,4);
OuttextXY(300,40,’Bunga’);
Circle(310,240,5+I);
Circle(300,170,5+I);
Circle(270,310,5+I);
Circle(350,310,5+I);
Circle(230,240,5+I);
Circle(400,260,5+I);
Circle(370,190,5+I);
Sound(200);
Delay
( 10 );
noSound;
End;
Until
KeyPressed;
CloseGraph;
Readln;
End.
Program
Gelombang_Sinus;
Uses Graph;
Type
Data =
Array[0..360] Of PointType
Var
DataSinus :Data;
Frek,
Amp :Integer;
Function Init : Boolean;
Var
GrDrv,GrMode :Integer;
Begin
GrDrv :=
DETECT;
InitGraph(GrDrv,
GrMode,’’);
If
GraphResult <> GrOk Then
Init :=
false;
Else
init := true;
End;
Procedure Sumbu;
Begin
Line( 0,
GetMaxY div 2, GetMaxX, GetMaxY div 2);
Line(
GetMaxX div 2, 0 , GetMaxX div 2,
GetMaxY);
End;
Procedure Sinus( Frek, Amp : integer; Var SinBuffer :
Data);
Var
I : Integer;
Begin
For I:=
0 to 360 do
Begin
SinBuffer[I].X
:= Round(I/360 * GetMaxX);
SinBuffer[I].Y
:= (GetMaxY div 2 ) – Round(Amp * Sin (Frek * Pi * I / 180));
End;
End;
Begin
Writeln(‘%%%%%
Menggambar Gelombang Sinus %%%%%’);
Write(‘
Frekuensi = ‘);Readln(Frek);
Write(‘
Amplitudo = ‘);Readln(Amp);
If Init
then
Begin
Sumbu;
Sinus(Frek,amp,DataSinus);
DrawPoly(
360, DataSinus);
Readln;CloseGraph;
End
Else
Write(‘ Grafik Error !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!’);
End.
Pengulangan
atau Looping
Dalam melakukan
looping tentunya kita harus memiliki variabel penghitung ( pencacah ) yang
dapat menentukan berapa kali kiranya pengulangan dilakukan. Variabel pencacah
ini haruslah variabel yang memiliki tipe original. Tugas dari variabel ini yang
diinginkan pengulangan akan terhenti. Biasanya dalam program dituliskan sebagai
:
X := X + 1; (Pencacah Naik )
X
:= X - 1; (Pencacah Turun)
Dimana X merupakan variabel
bertipe integer, byte atau word ( dalam pemograman biasanya dipilih tipe
integer ) atau dengan cara lain :
Inc(x)
dan Dec(X);
Pengulangan dalam pemograman bahasa pascal terbagi atas 3
macam :
For ... to
... do
Begin
....
End;
Adalah suatu
perintah looping yang mengunakan pencacah naik ( Increment ), Artinya setiap
pengulangan dilakukan variabel pencacah akan bertambah. Syntax penulisannya :
For [ Nama Variabel ] := [
Indeks Awal ] to [ Indeks Akhir ]
Begin
Statement;
End;
Latihan
–Latihan Program
Program
Matematika;
Uses Crt;
Var
I : Byte;
Kuadrat,
Akar : Real;
Begin
Clrscr;
Writeln(‘Tabel
Kuadrat dan Akar Kuadrat’);
Writeln(‘&&&&&&&&&&&&&&&&&’);
Writeln(‘
Bilangan Kuadrat Akar Kuadrat’);
Writeln(‘&&&&&&&&&&&&&&&&&’);
Wrteln;
For I :=
1 to 10 do
Begin
Kuadrat
:= Sqr(I);
Akar
:= Sqrt(I);
Writeln(I:6, Kuadrat :10:0, Akar:15:2’);
End;
Writeln(‘&&&&&&&&&&&&&&&&&’);
End;
Program
Menggeser_Bintang
Uses Crt;
Var
Bintang
: Integer;
Begin
Clrscr;
For
Bintang := 5 to 23 do
Begin
Gotoxy(5,Bintang
);
Writeln(‘*’);
Delay
(100);
End;
For
Bintang := 5 to 75 do
Begin
Gotoxy(Bintang,23
);
Writeln(‘*’);
Delay
(100);
End;
For
Bintang := 23 downto 5 do
Begin
Gotoxy(75,Bintang
);
Writeln(‘*’);
Delay
(100);
End;
For
Bintang := 75 downto 5 do
Begin
Gotoxy(Bintang,5
);
Writeln(‘*’);
Delay
(100);
End;
End.
While Do
End;
Adalah suatu
langkah looping yang mengunakan eskpresi kondisi logika untuk menjajaki apakah
pengulangan masih dilakukan atau tidak, jika kondisi benar (True) maka looping
akan terus dilakukan dan sebaliknya. Syntax pemakaiannya adalah
Nama variabel := Indeks Awal
While ( Kondisi ) do
Begin
Statement
;
Inc(Nama_variabel);
End;
Latihan
– Latihan Program :
Program
Pitagoras;
Uses Crt;
Var
A,B,C : Real;
I : Integer;
Begin
Clrscr;
I:=0;
While ( I < 3 ) do
Begin
Write(‘Nilai
A adalah ‘);Readln(A);
Write(‘Nilai
B adalah ‘);Readln(B);
C :=
sqrt(Sqrt(A) + Sqrt(B));
Writeln;
Writeln(‘Hasil adalah’,C:8:2);
Inc(I);
End;
Readln;
End.
Program
Bilangan_Genap
Uses Crt;
Var
I :Integer;
Begin
Clrscr;
I:=0;
Writeln(‘Sepuluh
bilangan genap pertama : ’);
While (I
< 10 ) do
Writeln(I+2);
Readln;
End.
Repeat
Until
Adalah
proses looping kebalikan dari while do. Langkah perintah ini proses pengulangan
berlangsung jika kondisinya salah. Jadi proses looping diulang dulu baru di
kondisikan dan tidak perlu digunakan begin dan end lagi
Syntax penulisannya :
[ Nama
variabel ] := 0;
Repeat
Statement;
Inc(Nama
Variabel);
Until (
Kondisi)
Latihan
Latihan Program
Program Validasi_Nilai
Uses Crt;
Var
Nilai :Integer;
Benar : Boolean;
Begin
Clrscr;
Repeat
Write(‘Masukan
Nilai 0 s/d 100 : ‘);readln(Nilai);
Benar := nilai in [0..100];
If not (benar) then
Writeln(‘%% Nilainya Salah %%’);
writeln;
Until
(Benar );
End.
Program
Demontrasi_Pengulangan;
Uses Crt;
Var
I :
Integer;
Begin
Clrscr;
I:=0;
While (I
<= 100 ) do
Begin
Gotoxy(1,1);
Write(‘posisi
counter : ‘ ,I);
Inc(I);
Delay(100);
End;
Readln;
End.
BY. MAULANA MUCHLISH
DOSEN. MUMUN ,S.T
PEMPROGRAMAN 1 (PEMPROGRAMAN TERSTRUKTUR)
PRAKTEK PEMPROGRAMAN 1 (PEMPROGRAMAN TERSTRUKTUR)
PEMPROGRAMAN 1 (PEMPROGRAMAN TERSTRUKTUR)
PRAKTEK PEMPROGRAMAN 1 (PEMPROGRAMAN TERSTRUKTUR)
No comments:
Post a Comment