Modul Pascal
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.
Tidak ada komentar:
Posting Komentar