PASCAL
Modul Pascal
Dasar-dasar pascal
Bab
I
Pengenalan
dan Struktur Dasar bahasa Pascal
Bahasa pascal adalah salah satu bahasa
komputer yang menjembatani pemakai dengan mesin
( Komputer ) Dengan demikian komputer dapat
diperintah melalui suatu bahasa yang dapat dimengerti oleh manusia, yang
disebut dengan istilah bahasa tingkat tinggi Bahasa Pascal berkembang sampai
sekarang yang dulu menggunakan cobol, fortan dan sekarang kita kita menggunakan
Turbo Pascal for Dos Ver.7.0. Dalam Pemograman pada sistem komputer kita akan
selalu berhubungan dengan operasi input output. Pada umumnya system komputer
menggunakan keyboard sebagai alat untuk menerima masukan ( Input devices ).
Struktur Dasar Bahasa Pascal
Program NamaProgram :
Program Pascal:
Type
Type1 =
DeklarasiTipe1;
Type1 =
DeklarasiTipe2;
...
Const1 = Deklarasiconst1;
Const1 = Deklarasiconst2;
var
Var1 : Type;
Var2 : Type;
Procedure
NamaProcedure(Parameter);
Begin
[Instruksi];
..
End;
Function NamaFungsi(
Parameter );type;
Begin
[Instruksi];
..
End;
[Instruksi];
End.
Untuk memahami proses masukan data ( input ) harus
terlebih dahullu diketahui jenis – jenis data, cara pendeklarasian data, dan
format output data tersebut, pada bahasa pemograman pascal.
Tipe – Tipe
Data Bahasa Pascal
1.
Byte adalah tipe data numeric
terkecil dalam bahasa pascal yang merupakan bilangan bulat. Data ini menempati memori komputer sebesar 1 byte ( merupakan susunan dari
8 bit bilangan biner ) sehingga rentang bilangannya berada antara 0 hingga 255.
2.
Word adalah tipe data numeric
yang menempati memoti computer sebesar 2 byte sehingga rentang bilangannya
antara 0 hingga 65535
3.
Integer adalah tipe data numeric
yang menempati memoti computer sebesar 2 byte sehingga rentang bilangannya
antara -32768 hingga 32767
4.
Real adalah suatu bilangan yang bertanda yang mampu
menampung bilangan desimal antara -29 X 109 hingga 1,7 X 108. Jenis data ini
menempati memori komputer sebesar 6 byte.
5.
Boolean adalah jenis data yang hanya memiliki du keadaan
yaitu true ( benar ) dan false ( salah ) dan digunakan untuk penguji kondisi.
6.
Char adalah jenis data yang terdiri dari satu hurup
dan menempati memori komputer 1 byte.
7.
String adalah kumpulan dari karakter dan menampung 2
milyar huruf
8.
Longint adalah tipe data yang melebihi dari integer.
9.
Single, double dan extanded adalah tipe data yang
melebihi real.
Deklarasi
Variabel Dalam Bahasa Pascal
Untuk
dapat menggunakan suatu jenis data tertentu dalam pascal, harus dilakukan
pemesanan atau deklarasi jenis data tersebut dalam sebuah nama variabel.
Ketentuan untuk nama variabel tersebut adalah sebagai berikut :
Ø
Tidak boleh dimulai dengan angka
Ø
Tidak boleh mengandung simbol operator aritmatika, dan simbol – simbol
lain yang dipergunakan sebagai operator dalam pascal, seperti : koma # @ ^ !
& titik dll.
Ø
Tidak boleh mengandung spasi atau
blank
Ø
Tidak boleh sama dengan nama
fungsi dan keyword bahasa pascal.
Contoh penggunaan :
Var
BilBulat : Integer;
BilReal : Real;
W1,W2,W3
: Word;
A,B : Byte;
Nama,
Alamat : String
Operator
Aritmatika
1.
Operator pemangkatan yang menggunakan tanda pangkat ( ^ ) atau ( Sqr ).
Contoh : a :=
Sqr(b);
2.
Operator perkalian yang menggunakan tanda bintang ( * );
Contoh : a := b
* c ;
3.
Operator pembagian yang menggunakan tanda slash ( / ) dan kata div
serta mod. Contoh : a := b / c;
a := b Div c;
a := b Mod c;
4.
Operator Penjumlahan yang menggunakan tanda Plus ( + ).
Contoh : a := b +
c;
5.
Operator pengurangan yang mengunakan tanda Min ( - ).
Contoh : a := b -
c;
Dalam penggunaan
operator-operator ini terdapat urutan prioritas pengerjaannya yang dinamakan
hirarki operator aritmatika. Hirarki tersebut adalah seperti pada tabel
berikut:
Operator
|
Arti
|
Prioritas
|
(
…………… )
|
Tanda
Kurung
|
1
|
^
( Sqr )
|
Pangkat
|
2
|
*
|
Perkalian
|
3
|
/
( Div atau Mod )
|
Pembagian
|
4
|
+
|
Penjumlahan
|
5
|
-
|
Pengurangan
|
6
|
Format Data
Real ( Bilangan Desimal )
Selain dapat ditentukan banyaknya kolom penempatan,
untuk data real dapat ditentukan bentuk penulisan ( general, desimal ), dan
banyaknya angka dibelakang koma, Cara penulisan format data real adalah sebagai
berikut :
[ Variabel
Real ] : [ Jumlah Kolom ] : [ Banyak angka dibelakang koma ]
Contoh pemakaian :
Write(R:10:2); ( R adalah real yang isinya 123.456 )
Tampilkan pada layar :
1
|
2
|
3
|
.
|
4
|
6
|
Input
Adalah menerima suatu masukan data dari keyboard.
Perintah bahasa pascal untuk melakukan langkah ini antara lain :
1.
Readln adalah suatu perintah untuk
memasukan data dengan tipe sesuai dengan data yang dilewatkan padanya.
Contoh : readln ( X );
(artinya mengambilmasukan dari keyboard untuk disimpan di
variabel X ).
2.
Readkey adalah perintah untuk memasukan data bertipe
karakter. Dan berfungsi sebagai Right Value dari penugasan ( Assigment ) dan
berada pada unit Uses Crt.
Contoh : Ch :=
Readkey;
( artinya ch bertipe data
karakter )
3.
Keypressed adalah sama dengan readkey tapi data ini
menghasilkan tipe data boolean dan mendeteksi jika terjadi penekanan tuts
keyboard maka akan menghasilkan nilai TRUE
( biasanya dalam penggunaan looping until).
Contoh : Until Keypressed.
Output
Adalah suatu proses menampilkan data pada layar
monitor, perintah bahasa pascal untuk melakukan langkah ini antara lain :
- Write adalah perintah untuk menuliskan suatu data yang dilewatkan
kepadanya dan setelah penulisan dilakukan posisi pointer atau kursor
berada di sebelah kanan kalimat data yang kita tulis. Dan data yang kita tulis boleh lebih dari satu dengan menggunakan
pemisah tanda koma ( , ) .
Contoh : Write(‘
Selamat Datang ‘);
Write(‘ Nama
Siswa : ‘);
Write(‘ Hasil
pnjumlahan : ‘,C);
- Writeln adalahperintah yang
sama dengan write perbedaannya terletak pada penempatan pointer penulisan
setelah suatu data dituliskan kelayar dan posisi kursor berada disebelah
kiri pada baris setelahnya.
Contoh : Writeln(‘
-----------------------------------------------------------‘);
Writeln(‘ Perhitungan Total Gaji Karyawan ‘);
Writeln(‘
-----------------------------------------------------------‘);
PROGRAM-PROGRAM
LATIHAN
Program Tampilan;
Uses Crt;
Var
A, B, C :
Integer;
Begin
Clrscr;
Writeln(‘Program
Menampilkan Inpit & Output’);
Writeln;
Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);
Writeln(’ Program Penjumlahan’);
Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);
Writeln;
Write(‘ Nilai Pertama : ‘);readln(A);
Write(‘ Nilai Kedua : ‘);readln(B);
C:= A + B;
Writeln(’ Hasil Penjumlahan: ’,C);
Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);
Wrieln;
Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);
Writeln(’ Program Pengurangan’);
Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);
Writeln;
Write(‘ Nilai Pertama : ‘);readln(A);
Write(‘ Nilai Kedua : ‘);readln(B);
C:= A - B;
Writeln(’ Hasil Pengurangan: ’,C);
Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);
Writeln(;
Writeln(’ Program
Perkalian’);
Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);
Writeln;
Write(‘ Nilai
Pertama :
‘);readln(A);
Write(‘ Nilai
Kedua :
‘);readln(B);
C:= A * B;
Writeln(’ Hasil
Perkalian: ’,C);
Writeln(’$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$’);
Readln;
End;
Program
Data_mahasiswa;
Uses Crt ;
Var
Nim,Nama,Alamat,Jurusan : String;
Umur : Integer;
IP : Real;
Begin
Clrscr;
Writeln(‘-------------------------------------------------‘);
Writeln(‘ Data Mahasiswa Solusindo ‘);
Writeln(‘-------------------------------------------------‘);
Writeln;
Writeln(‘ Nim Mahasiswa : ‘);readln(Nim);
Writeln(‘ Nama Mahasiswa : ‘);readln(Nim);
Writeln(‘ Alamat Mahasiswa :
‘);readln(Nim);
Writeln(‘ Jurusan Mahasiswa : ‘);readln(Nim);
Writeln(‘ Umur Mahasiswa :
‘);readln(Nim);
Writeln(‘ IP Mahasiswa :
‘);readln(Nim);
Writeln;
Writeln(‘-------------------------------------------------‘);
Readln;
End;
Kasus :
Buat program dalam
Bahasa Pascal untuk menginput Penerimaan Siswa Baru Solusindo. Dengan ketentuan
Nis, Nama Siswa, Alamat Siswa, Belajar, Biaya Belajar, Cicilan Pertama, Cicilan
Kedua. Tunggakan adalah Biaya dikurang cicilan pertama ditambah cicilan kedua.
Output :
*****************************************
Penerimaan Siswa Baru
Solusindo
*****************************************
Nis :
0012036
Nama Siswa : Rachmansyah
Alamat Siswa : Jl. Cimindi Cimahi
Belajar : Pemrograman
Pascal
Biaya Belajar : Rp. 150000
Cicilan Pertama : Rp. 100000
Cicilan Kedua : Rp. 50000
Tunggakan : Rp. 0
*****************************************
Bab
II
Decision
Dan Selection ( Pengkondisian )
Didalam
pemrograman bahasa pascal dimana ada perintah untuk memilih membandingkan atau
memeriksa program. Dalam sebuah program tidak selalu setiap baris dari program
dilakukan dalam eksekusi. Akan tetapi ada statement tertentu yang dilakukan
hanya jika kondisinya memenuhi. Dan untuk menguji kondisi ini dapat dilakukan
dengan statement berikut ini :
1.
If .......
Then ..........
Else ............
Dengan
menggunakan statement ini suatu ekspresi logika bila “ Tidak Lulus “ pada
pengujian yang pertama diuji kembali pada kondisi yang berikutnya dan
seterusnya. Penggunaan jenis kondisi
semacam ini berguna sekali dalam menyeleksi statement yang akan
dilakukan sesuai dengan ekspresi kondisi yang diberikan, karena statement
pengujian kondisi ini dapat disusun berantai sehingga didapat multi level
checking. Syntax penulisannya adalah :
If ( Kondisi -1 )
Then ( Statement - 1
)
Else if (Kondisi -2 )
Then ( Statement - 2
)
.
.
If ( Kondisi – n )
Then (statement – n )
Else ( Statement – n
);
Keterangan : Dalam pengujian kondisi ini, jika
ekspresi kondisi – 1 tidak terpenuhi akan diuji pada ekspresi kondisi – 2 dan
seterusnya hingga kondisi terpenuhi. Jika kondisi tidak terpenuhi sampai akhir
statement pengujian, maka statement yang berada setelah keyword Else yang
terakhirlah yang dieksekusi.
Latihan –Latihan Program
Program Pemilihan_Nilai;
Uses Crt;
(
*********************************************
* Menyeleksi suatu nilai menggunakan if then else *
**********************************************
)
Var
Nilai :
Integer;
Begin
Clrscr;
Writeln(‘&&&&&
Menghitung Tingkatan Nilai &&&&’);
Writeln;
Write(‘Masukan nilai ( 0
.. 10 ) : ‘);Readln(Nilai);
Writeln;
If nilai < 9 then
If nilai < 7 then
If nilai < 5 then
If nilai < 3 then
Writeln(‘Waduh
!! Nilainya Kacau !!’)
Else
Writeln(‘Perlu Kerja
Keras Nih !!’)
Else
Writeln(‘Masih Lumayan
.....................’)
Else
Writeln(‘Nilainya cukup baik ‘)
Else
Writeln(‘Nah ini baru
nilai cumlaude ‘);
Write(‘Tekan < Enter
> ‘);
Readln;
End.
Program Pemilihan_Warna;
Uses Crt;
Var
Warna : Char;
Begin
Clrscr;
Writeln(‘@@ Menentukan warna dari Huruf Awalnya @@’);
Writeln;
Write (‘ Masukan Hurup Awal Warna : ‘);
Warna := readkey;
Writeln(Warna);
If (
Warna = ‘B’) or ( Warna = ‘b’) then
Writeln(‘Warna yang berawalan
dari hurup B adalah Biru’);
Else If
( Warna = ‘H’) or ( Warna = ‘h’) then
Writeln(‘Warna yang berawalan
dari hurup H adalah Hijau’);
Else If
( Warna = ‘M’) or ( Warna = ‘m’) then
Writeln(‘Warna yang berawalan
dari hurup M adalah Merah’);
Else If
( Warna = ‘K’) or ( Warna = ‘k’) then
Writeln(‘Warna yang berawalan
dari hurup K adalah Kuning’);
Else If
( Warna = ‘C’) or ( Warna = ‘c’) then
Writeln(‘Warna yang berawalan
dari hurup C adalah Coklat’);
Else If
( Warna = ‘V’) or ( Warna = ‘v’) then
Writeln(‘Warna yang berawalan
dari hurup V adalah Violet’);
Else If
( Warna = ‘J’) or ( Warna = ‘j’) then
Writeln(‘Warna yang berawalan
dari hurup J adalah Jingga’);
Else
Writeln(‘Huruf yang diketikan tidak ada dalam pilihan’);
Write(‘Tekan
< enter > ‘);
Readln;
End.
Kasus :
Buatlah program dalam
bahasa pascal untuk menghitung nilai Akhir Mahasiswa dengan mengunakan If Then
Else. Dengan ketentukan sebagai berikut Nim, Nama Mahasiswa, Alamat Mahasiswa,
Jurusan, Umur, Nilai UAS, Nilai UTS, Nilai Quiz dan Nilai Tugas.
Untuk Nilai Akhir adalah
40% dari Nilai UAS ditambah 30% dari Nilai UTS ditambah 20% dari niali Quiz
ditambah 10% dari Nilai Tugas. Nilai Akhir ditentukan oleh Nilai Grade sebagai
berikut :
Jika Nilai Akhir lebih
besar dari 85 maka nilai Grade adalah A
Jika Nilai Akhir lebih
besar dari 75 maka nilai Grade adalah B
Jika Nilai Akhir lebih
besar dari 65 maka nilai Grade adalah C
Jika Nilai Akhir lebih
besar dari 55 maka nilai Grade adalah D
Jika Nilai Akhir Kurang
dari 55 maka Nilai Grade adalah E
Output :
=====================================
Niali akhir Mahasiswa
=====================================
Nim :
Nama Mahasiswa :
Alamat Mahasiswa :
Jurusan :
Umur :
Nilai UAS :
Nilai UTS :
Nilai Quiz :
Nilai Tugas :
Nilai Akhir :
Nilai Grade :
======================================
1.
Case Of
End.
Alternatif
lain yang digunakan untuk mengontrol statement yang akan dieksekusi dalam
program dan hanya dapat menguji kesamaan suatu variabel tertentu denga nilai
yang disajikan, variabel yang diuji hanyalah berupavariabel yang bertipe (
Integer, Boolean, Char, Byte dan Word ).
Sedangkan
tipe – tipe data yang kompleks (Real, Array, Record dll ) tidak dapat digunakan
didata yang disajikan. Syntax penulisannya :
Case
( Nama variabel ) Of
Pilihan
– 1 : Statement – 1;
Pilihan – 2 : Statement – 2;
.
.
.
Pilihan – n : Statement – n;
Else : Statement;
End;
Keterangan : Pilihan
dapat berupa barisan yang tiap – tiap elemennya dipisahkan dengan koma ( , ).
Juga dapat memiliki range dengan menggunakan simbol dua buah titik ( .. ), yang
dapat diartikan sebagai hingga.
Case Pilih Of
‘1’ : Write (‘Pilihannya angka 1 ‘);
‘a’,’A’
: Write (Pilihannya a atau A’);
‘b;..’z’
: Write (Pilihannya diantara b hingga z’);
else
: Write (Pilihannya salah’);
end;
Latihan
– Latihan Program
Program
Alternatif_Kondisi;
Uses Crt;
(**************************************
* Contoh Perintah Case
Of
*
***************************************)
Var
Pilih :
Char;
Begin
Clrscr;
Writeln(‘Menu Pilihan’);
Writeln(‘[A] P ilihan Satu’);
Writeln(‘[B] Pilihan Dua’);
Writeln(‘[C] Pilihan Tiga’);
Writeln(‘[D] Pilihan Empat’);
Writeln(‘[0..9] Pilihan Angka’);
Writeln(‘[Esc] Pilihan Tombol Escape’);
Writeln;
Write(‘Pilihan anda : ‘);Pilih :=readkey;
Case Pilih Of
‘A’,’a’ : Writeln(‘Pilihan Satu dipilih,yaitu
huruf’,Pilih);
‘B’,’b’ : Writeln(‘Pilihan Dua dipilih,yaitu
huruf’,Pilih);
‘C’,’c’ : Writeln(‘Pilihan Tiga dipilih,yaitu
huruf’,Pilih);
‘D’,’d’ : Writeln(‘Pilihan Empat dipilih,yaitu
huruf’,Pilih);
‘0’,’9’ : Writeln(‘Pilihan Satu dipilih,yaitu
angka’,Pilih);
#27 : Writeln(‘Tombol Escape yang
dipilih’);
else Writeln(‘Salah
memilih’);
End;
Writeln(‘Tekan < enter > ‘);
Readln;
End.
Program Garment_Jaket;
Uses Crt;
Var
Ukuran :
Char;
Nama_Jaket :String;
Banyak : Integer;
Harga,Jumlah :Real;
Begin
Clrscr;
Writeln(‘ Program
Pembayaran Jaket ‘);
Write(‘Nama Jaket :
‘);Readln(Nama_jaket);
Write(‘Ukuran
Jaket S/ M /L :
‘);Readln(Ukuran);
Case
Ukuran of
‘S’ : Harga :=25000;
‘M’ : Harga :=35000;
‘L’ : Harga :=50000;
end;
Write(‘Banyak
Jaket :
‘);Readln(Banyak);
Jumlah
:= Harga * Banyak;
Writeln;
Writeln;
Writeln(‘Jumlah
yang harus dibayar = Rp.’Jumlah:8:0);
Readln;
End.
Kasus :
Buatlah program untuk
menghitung Upag karyawan dengan mengunakan perintah case of. Dengan ketentuan
Nik, Nama Karyawan, Alamat Karyawan, Golongan, Jam Kerja.
Jika Gol = 1 uang Harian
= 20000 dan Uang Lembur = 10000
Jika Gol = 2 uang Harian
= 15000 dan Uang Lembur = 7500
Jika Gol = 3 uang Harian
= 10000 dan Uang Lembur = 5000
Uang Lembur dihitung
bila jam kerjanya lebih dari 8 jam.
Lembur adalah jam kerja
dikurangi 8 kali Uang Lembur.
Tunjangan adalah 15%
Uang Harian. Upah cari sendiri.
Output :
===================================
Upah Karyawan
===================================
Nik :
Nama
Karyawan :
Alamat
Karyawan :
Golongan :
Uang
Harian :
Jam
Kerja :
Lembur :
Tunjangan
Upah Total :
====================================
Bab
III
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 :
1. 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.
2.
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.
3. 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.
Kasus
Buat
program looping untuk menghitung 2 data kredit Nasabah Bank , dengan ketentuan
No Nasabah , Nama Nasabah, alamat Nasabah, Besar Pinjaman, Suku Bunga ,Lama
Pinjaman.
Untuk
mencari bunga adalah besar pinjaman dikali lama pinjaman dikali suku bunga,
nilai pengembalian adalah besar pinjaman ditambah bunga
Output
:
####################################
Data Kredit Nasabah Bank Swasta
####################################
Nomer Nasabah :
Nama Nasabah :
Alamat Nasabah :
Besar Pinjaman :
Lama pinjaman :
Suku Bunga :
Bunga :
Nilai Pengembalian :
Nomer Nasabah :
Nama Nasabah :
Alamat Nasabah :
Besar Pinjaman :
Lama pinjaman :
Suku Bunga :
Bunga :
Nilai Pengembalian :
####################################
Bab IV
Struktur Data Komplek
Salah satu kelebihan dalam bahasa pascal adalah
tersedianya berbagai struktur data yang bisa dikatakan hanya terbatas pada
imajinasi programer dalam mengaplikasikannya, beberapa struktur data yang
komplek dengan manupulasi yang berbeda dengan manupulasi data original dan data
real. Struktur Data ini lebih efisien jika dideklarasikan dibawah keyword type
sehingga dengan demikian kita mendapat data jenis baru yang sesuai dengan
keinginan kita, dengan mendeklarasikan tipe data tertentu, maka akan didapat
beberapa keuntungan antara lain :
Ø
Tidak memerlukan deklarasi yang
berulang – ulang bila diperlukan banyak data yang bertipe komplek yang sama
Ø
Tipe data yang komplek yang
dideklarasikan dapat dipergunakan sebagai parameter dalam sebuah fungsi
Ø
Memungkinkan membuat tipe data
baru yang merupakan kumpulan dari tipe data – tipe data yang baru pula
Ø
Programer tidak terbatas dengan
tipe data yang baku yang disediakan oleh bahasa pascal
Ø
Dengan tipe data ini program
lebih dapat dimengerti sehingga seolah-olah programer menulis bahasa pascal
dalam bahasa inggris
Ø
Untuk pelindung atau proteksi
bagi keamanan program
Array
Adalah kumpulan dari beberapa nilai semuanya
memiliki tipe data yang sama. Syntax penulisannya :
Var
Nama Variabel : array[indeks
Awal ... Indeks Akhir] of Tipedata;
Begin
Dengan nama variabel adalah nama yang kita berikan
untuk mengidentifikasi data array tersebut, sedangkan indeks awal dan indeks
akhir berturut – turut merupakan indeks array terkecil dan indeks array
terbesar, yang menentukan beberapa banyak elemen array yang kita pesan.
Latihan
– Latihan Program
Program
Pengurutan
Uses Crt;
Var
Data
: Array[1..100] of
integer;
I,J,A,N
:Integer;
Begin
Clrscr;
Write(‘Masukan Data :’);Readln(n);
Writeln(‘Data sebelum
Diurutkan’);
For I :=1 to n do
Begin
Write(‘Masukan
Nilai ke : ‘,I:2);Readln(Data[I]);
End;
For I:=1 to n do
For J:=I + 1 to n do
Begin
If Data[I] < Data[J] then
Begin
A:=Data[I];
Data[I]
:= Data[J];
Data[J]
:= A
End;
End;
End;
Writeln;
Writeln(Data setelah diurut’);
For I:=i to n do
Begin
Write(‘
‘,Data[I]);
Readln;
End.
Program Perkalian_Matrik;
Uses
crt
Type
Larik : Array[1..25,1..25] of real;
Var
I,J,K : Byte;
L,M,N : Byte
A,B,C : Larik;
Begin
Clrscr;
Write(‘Baris
Matrik pertama :
‘);readln(M);
Write(‘Kolom
Matrik Pertama/ Baris Matrik Kedua :
‘);readln(N);
Write(‘Kolom
Matrik Kedua :
‘);readln(L);
Writeln(‘Matrik
yang pertama
: ‘);
For I
:=1 to M do
Begin
For J:=1 to N do
Begin
Write(‘Nilai [‘, I ,’ , ’,J,’ , ’] ?
‘);readln(A[I,J]);
End;writeln;
End;
Writeln;
Writeln(‘Matrik
yang kedua’);
For i:=
1 to n do
Begin
For J:= 1 to L do
Begin
Write(‘Nilai [‘, I ,’ , ’,J,’ , ’] ?
‘);readln(B[I,J]);
End;writeln;
End;
{proses
Perkalian matrik }
For i:=1
to M do
Begin
For j := 1 to N do
Begin
C[I,J] :=0;
For k:=1 to L do
C[I,J]:= C[I,J]
+ (A[I,K] * B[I,K]);
End;
End;
Clrscr;
Writeln(‘Hasil
Dari Perkalian Matrik : ‘);
Writeln;
For
I:=1 to M do
Begin
For J:=1 to L do
Write(C[I,J]:9:2);Writeln;
End;readln;
End.
Program Penjualan_Barang
Uses
Crt;
Var
I :
Integer;
NB :
Array[1..8] of String;
No, SA,BT,Sisa : Array[1..8] of Integer;
Begin
Clrscr;
Writeln(‘@@@@@@@@@@@@@@@@@@@@@@@’);
Writeln(‘ Data Stok Barang di Gudang ‘);
Writeln(‘No. Nama Barang Stok
Awal Terjual Sisa’);
For i:= i to 8 do
Begin
Gotoxy(2,4+1);Readln(No[I]);
Gotoxy(5,4+1);Readln(NB[I]);
Gotoxy(20,4+1);Readln(SA[I]);
Gotoxy(25,4+1);Readln(BT[I]);
Data[I] := (SA[I] –
BT[I]);
Gotoxy(35,4+I);Write(Data[I]);
End;
Readln;
End;
Record
Suatu
jenis struktur data komplek yang memungkinkan untuk mencampur beberapa jenis
data dalam satu struktur. Jika elemen dari struktur data array
haruslah memiliki tipe data yang sama, maka pada struktur record batasan
ini tidak ada. Record dapat memiliki tipe data apa saja, Syntak penulisannya :
Type
Namarecord
= Record
NamaVariabel : Tipedata
NamaVariabel : Tipedata
NamaVariabel : Tipedata
End;
Var
NamaVariabel : Tipe Data Record
Latihan –latihan Program
Program_data_bertipe_komplek;
Uses
crt;
Type
Data_Pegawai = Record
Nip :
Integer;
Nama,Alamat,Jabatan : String;
Gol :
Char;
Gapok,Pajak,Gaber : Real;
End;
Var
Pegawai : Array[1..2] of Data_pegawai;
I :
Integer;
Begin
Clrscr;
Writeln(‘************************************’);
Writeln(‘ Data Pegawai Swasta ‘);
Writeln(‘************************************’);
For i := 1 to 2 do
Begin
Write(‘ Nip :’);readln(pegawai[I].nip);
Write(‘ Nama Pegawai :’);readln(pegawai[I].nama);
Write(‘ Alamat Pegawai :’);readln(pegawai[I].alamat);
Write(‘ Jabatan Pegawai :’);readln(pegawai[I].jabatan);
Write(‘ Golongan :’);readln(pegawai[I].gol);
Write(‘ Gaji Pokok :’);readln(pegawai[I].gapok);
Pegawai[I].Pajak := 0,05
* Pegawai[I].Gapok;
Write(‘ Pajak :’);Readln(Pegawai[I].pajak:10:0);
Pegawai[I].Gaber :=
Pegawai[I].Gapok - Pegawai[I].Pajak;
Write(‘ Gaji Bersih :’);readln(pegawai[I].gaber:10:0);
End;
Readln;
End.
Program
Rata_rata_nilai_mahasiswa;
Uses
crt;
Const
Jumlahtes = 4;
SiswaMax = 40;
Type
Data_Siswa = Record
Nim :
Integer;
Nama :
String[20];
Nilai :
array[1..Jumlahtes]of real;
Rata_rata : Real;
End;
ArraySiswa = array[1..SiswaMax] Of
data_siswa;
Var
Jumlah : 1..SiswaMak;
I,J :
Integer;
Total_nilai : real;
Siswa : ArraySiswa;
Temporer : Data_Siswa;
Begin
Clrscr;
Write(‘Jumlah Data :’);Readln(Jumlah);Writeln;
For I:=1 to Jumlah do
Begin
Write(‘Nomer
Induk Mahasiswa :’);readln(Siswa[I].Nim);
Write(‘Nomer
Nama Mahasiswa :’);readln(Siswa[I].Nama);
Write(‘Nilai
Yang di Dapat :’);
For I:=1 to J do
Begin
Write(J:2,’
‘);Readln(Siswa[I].Nilai[J]);
End;Writeln;
End;
For I:=1 to SiswaMak do
Begin
Total_Nilai :=0;
For J:= 1 to
JumlahTes do
begin
Total_Nilai
:= Total_Nilai + Siswa[I].Nilai[J];
Siswa[I].Rata-rata
:=Total_Nilai / Jumlahtes;
End;
End;
For I:=1 to Jumlah – 1 do
For J:= I+1 to
jumlah do
If
siswa[I].Rata_rata < Siswa[J].Rata-rata then
Begin
Temporer
:= siswa[I];
Siswa[I]
:= Siswa[J];
Siswa[J]:=
Temporer;
End;
Writeln;
Writeln(‘^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^’);
Writeln(‘ | Nim Siswa Nama Siswa Nilai
Rata – Rata |‘);
Writeln(‘^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^’);
For I := 1 Jumlah do
Writeln(Siswa[I].Nim:5, Siswa[I].Nama:15,
Siswa[I].Rata-rata:10:2);
Writeln(‘^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^’);
Readln;
End.
Kasus
Buatlah
program untuk mengunakan record untuk menghitung dua data total gaji pegawai, dengan
ketentuan Nip,Nama,Pegawai alamat
Pegawai, Jabatan, Golongan dan jumlah anak
Jika
Gol = 1 gapok = 200000 dan tunjangan Jabatan = 100 % * Gapok
Gol = 2
gapok = 1500000 dan tunjangan Jabatan = 50 % * Gapok
Gol = 3
gapok = 1000000 dan tunjangan Jabatan = 30 % * Gapok
Gol = 4
gapok = 750000 dan tunjangan Jabatan = 20 % * Gapok
Tunjangan
anak dihitung sampai anak ke 3 = 20 % dari gapok
Tunjangan
Suami/Istri = 15 % dari Gapok. Untuk mencari Gator adalah gapok ditambah
tunjangan Jabatan ditambah tunjangan anakditambah tunjangan suami / istri.
Pajak didapat 2 % dari gaji pokok dan untuk gaber kalian cari sendiri.
Output
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Total
Gaji Pegawai Swasta
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Nim :
Nama Pegawai :
Alamat Pegawai :
Jabatan Golongan :
Jumlah Anak :
Gaji Pokok :
Tunjangan Jabatan :
Tunjangan Anak :
Tunjangan Suami / Istri :
Gaji Kotor :
Pajak :
Gaji Bersih :
Nim :
Nama Pegawai :
Alamat Pegawai :
Jabatan Golongan :
Jumlah Anak :
Gaji Pokok :
Tunjangan Jabatan :
Tunjangan Anak :
Tunjangan Suami / Istri :
Gaji Kotor :
Pajak :
Gaji Bersih :
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bab V
Prosedur dan Fungsi
Prosedur dan afungsi adalah suatu
bagian program ( sub program ) yang memiliki tugas untuk mengerjakan deretan
perintah tertentu. Dengan prosedur memungkinkan untuk melakukan suatu pekerjaan
yang berulang – ulang tanpa harus menuliskan kembali instruksi – intruksi yang
dilakukan. Pekerjaan yang dilakukan berulang –ulang . Prosedur dan fungsi
bedanya kalau prosedur hasilnya tidak ditipedatakan sedangkan fungis hasilnya
harus ditipedatakan. Syntak penulisannya :
Procedure NamaPRogram;
Begin
Statement
End;
Begin
Pemanggilan
Program;
End;
Dan &&&
Function NamaProgram:Tipedata;
Begin
Statement
End;
Begin
PemanggilanProgram;
End;
Latihan – Latihan
Program Menghitung
_Berbagai_Luas;
Uses
Crt;
Var
S,SE,PP,LL,LJ :
Real;
P,Alas,Tinggi,Panjang,Lebar,Jari,Sudut,Pil : Integer;
Pilihan :
Char;
Procedure
Matematika;
Begin
Writeln;
Writeln(‘Ketikan angka pilihan
dibawah ini dan tekan < Enter > ‘);
Writeln(‘1. Luas Segitiga’);
Writeln(‘2. Luas SegiEmpat’);
Writeln(‘3. Luas Persegi Panjang’);
Writeln(‘4. Luas Lingkaran’);
Writeln(‘5. Luas Juring’);
Writeln(‘6. Selesai’);
End;
Procedure
Luas_Segitiga;
Begin
Writeln;
Write(‘Alas
: ‘);Readln(Alas);
Write(‘Tinggi
: ‘);Readln(Tinggi);
S:=alas * (Tinggi / 2);
Writeln(‘Luas Segitiga : ‘,S);
End;
Procedure
Luas_SegiEmpat;
Begin
Writeln;
Write(‘Panjang
: ‘);Readln(Panjang);
Write(‘Lebar
: ‘);Readln(Lebar);
SE:=Panjang * Lebar
Writeln(‘Luas SegiEmpat : ‘,SE);
End;
Procedure
Luas_Persegi_Panjang;
Begin
Writeln;
Write(‘Panjang
: ‘);Readln(Panjang);
Write(‘Lebar
: ‘);Readln(Lebar);
PP:=Panjang * Lebar
Writeln(‘Luas Persegi Panjang : ‘,PP);
End;
Procedure
Luas_Lingkaran;
Begin
Writeln;
Write(‘Jari - Jari
: ‘);Readln(Jari);
LL:=Pi * Sqr(Jari);
Writeln(‘Luas Lingkaran : ‘,LL);
End;
Procedure
Luas_Juring;
Begin
Writeln;
Write(‘Sudut Juring :
‘);Readln(Juring);
Write(‘Jari - Jari
: ‘);Readln(JAri);
LJ:=Sudut / 360 * Pi * Sqr(Jari);
Writeln(‘Luas Juring : ‘,LJ);
End;
Procedure
Laksanakan_Matematika;
Begin
P:= Ord(Pilihan) – 48
Case P Of
1 : Luas_Segitiga;
2 :
Luas_SegiEmpat;
3 :
Luas_Persegi_Panjang;
4 :
Luas_Lingkaran;
5 : Luas_Juring;
6 : Begin
Writeln;
Writeln(‘
&&&& Selesai &&&&’);
End;
End;
End;
Begin
Write(‘Pilihan :
);Readln(Pil);
Write p <> 6 Do
Begin
Repeat
Matematika;
Write(‘Pilihan angka yang
dipilih : ‘);read(Pilihan);
Writeln(Pilihan);
Laksanakan_Matematika;
Until (pilihan = 6);
End;
End.
Program Perpustakaan;
Uses
Crt;
Var
Kode_Buku :
Char;
Harga_Sewa, Denda_Hari,
Sewa_Hari, Bayar : Real;
Procedure
Masukan(Var Tr_Kode ; Var Tr_hari:Real);
Begin
Gotoxy(15,12);Write(‘Kode Buku
Pinjaman :’);Readln(Tr_Kode);
Gotoxy(15,13);Write(‘Lama Hari
Pinjam :’);Readln(Tr_Hari);
End;
Funtion
HargaSewa(Tr_Kode2 : Char);Real;
Begin
If Upcase(Tr_Kode2) = ‘A’ Then
HargaSewa := 300
Else If Upcase (Tr_Kode2) = ‘B’ Then
HargaSewa := 250
Else If Upcase (Tr_Kode2) = ‘L’ Then
HargaSewa := 350;
End;
Funtion
Denda(Tr_Kode3 : Char; Tr_Kode2 : Real);Real;
Var
A :
Real;
Begin
If Upcase(Tr_Kode3) = ‘A’ Then
A:= 50
Else If Upcase
(Tr_Kode3) = ‘B’ Then
A := 25
Else
If Upcase (Tr_Kode3) = ‘L’ Then
A:=
100;
If Tr_Hari2 > 7 Then
Denda := (Tr_Hari2 – 7) * A
Else Denda := 0;
End;
Procedure
Cetak(Tr_Sewa, Tr_Denda, Tr_Total : real);
Begin
Gotoxy(15,15);Write(‘Harga Sewa 7
Hari : Rp.’,Tr_Sewa:5:0);
Gotoxy(15,16);Write(‘Denda Harus
Bayar : Rp.’,Tr_Denda:5:0);
Gotoxy(15,17);Write(‘================================);
Gotoxy(15,18);Write(‘Total
Pembayaran : Rp.’,Tr_Total:5:0);
End;
Clrscr; { Membersihkan Layar }
Masukan(Kode_Buku, Sewa_Hari);
Harga_Sewa := HargaSewa(Kode_Buku);
Denda_Hari :=
Denda(Kode_Buku,Sewa_Hari);
Bayar := Harga_Sewa + Denda_Hari;
Cetak(Harga_sewa, Denda_Hari,Bayar);
End.
Bab VI
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 :
Circle ( X, Y, Radius ); Radius adalah jari –
jari lingkaran.
Ø 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.