0% menganggap dokumen ini bermanfaat (0 suara)
5 tayangan123 halaman

Panduan Lengkap Bahasa Pascal

Dokumen ini adalah panduan lengkap tentang Bahasa Pemrograman Pascal yang ditulis oleh Ferdinal R, S.KOM, mencakup sejarah, jenis file, dan cara menjalankan program dalam Turbo Pascal. Terdapat berbagai bab yang membahas konsep dasar, tipe data, operasi aritmatika, struktur kontrol, dan prosedur/fungsi. Tujuan utama dari dokumen ini adalah untuk memberikan pemahaman mendalam tentang prinsip dan teknik pembuatan aplikasi menggunakan Pascal.

Diunggah oleh

amikleni
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
5 tayangan123 halaman

Panduan Lengkap Bahasa Pascal

Dokumen ini adalah panduan lengkap tentang Bahasa Pemrograman Pascal yang ditulis oleh Ferdinal R, S.KOM, mencakup sejarah, jenis file, dan cara menjalankan program dalam Turbo Pascal. Terdapat berbagai bab yang membahas konsep dasar, tipe data, operasi aritmatika, struktur kontrol, dan prosedur/fungsi. Tujuan utama dari dokumen ini adalah untuk memberikan pemahaman mendalam tentang prinsip dan teknik pembuatan aplikasi menggunakan Pascal.

Diunggah oleh

amikleni
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Page 1

FERDINAL. R, [Link]

AMIK DEPATI PARBO KERINCI

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 2
PROGRAM STUDI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIK DEPATI PARBO KERINCI .

Nama Matakuliah : Bahasa Pemrograman Pascal


Tgl. Penyusunan : 6 Februari 2006

Tujuan Utama :
1. Memahami latar belakang, prinsip dan konsep dasar Bahasa Pemrograman Pascal
2. Memberikan gambaran tentang konsep dam teknik pembuatan aplikasi dengan
menggunakan Bahasa Pemrograman Pascal

DAFTAR ISI
BAB I PENDAHULUAN 1
1.1 Sejarah Singkat Turbo Pascal 1
1.2 Jenis-Jenis File Yang Dimiliki Turbo Pascal 1
1.3 Menjalankan Program Turbo Pascal 2
1.4 Operasi File 3
1.5 Mengatur Konfigurasi Turbo Pascal Dengan [Link] 4
1.6 Bagian-Bagian Program Dalam Turbo Pascal 6
1.7 Meng-Compile dan Me-Link File 7
1.8 Menjalankan Program 9
1.9 Fungsi-Fungsi Tombol Lainnya 9
1.10 Struktur Bahasa Pascal 10
1.11 Penulisan Program Pascal 10
1.12 Latihan 15

BAB II TYPE DATA 17


2.1 Type Data Sederhana 17
2.2 Type Data String 19
2.3 Type Data Terstruktur 20
2.4 Type Data Pointer 21

BAB III STATEMENT INPUT/OUTPUT 23


3.1 Statement Output 23
3.1.1 Fungsi Write() dan Writeln() 23
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 3
3.1.2 Menentukan Lebar Field (Field Width Specifier) 24
3.1.3 Mencetak Kode ASCII 25
3.2 Statement Input 26
3.2.1 Fungsi Read() dan Readln() 26
3.3 Mencetak Ke Printer 27
3.4 Latihan 27

BAB IV OPERASI ARITMATIKA 30


4.1 Operator Aritmatika 30
4.2 Hierarki Operator Aritmatika 31
4.3 Operator Boolean 32
4.4 Operator Relational (Hubungan) 32

BAB V STRUCTURE DICISION (STATEMENT IF DAN CASE) 34


5.1 Struktur IF 34
5.2 Struktur CASE 36
5.3 Latihan 37

BAB VI STRUCTURE LOOP 46


(STATEMENT FOR / WHILE / REPEAT)
6.1 Struktur FOR 46
6.2 Struktur WHILE 48
6.3 Struktur REPEAT .. UNTIL 49
6.4 Latihan 50

BAB VII ARRAY 53


7.1 Deklarasi Variabel Array 53
7.2 Array Satu Dimensi 54
7.3 Array Dua Dimensi 55
7.4 Array Multi Dimensi 57
7.5 Mengurutkan Array 59

BAB VIII PROSEDUR DAN FUNGSI 63


8.1 Sifat-Sifat dan Manfaat Prosedur/Fungsi 63
8.2 Parameter (Argumen) 63
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 4
8.3 Variabel Global 64
8.4 Variabel Lokal 65
8.5 Prosedur 65
8.5.1 Pendeklarasian Prosedur 65
8.5.2 Pemanggilan Prosedur 66
8.6 Fungsi 67
8.6.1 Pendeklarasian Fungsi 67
8.6.2 Pemanggilan Fungsi 68
8.7 Rekursi 68
8.8 Latihan 70

BAB IX DISAIN LAYAR 74


9.1 Unit CRT 74
9.2 Menghapus Layar 74
9.3 Mengatur Atribut Teks 74
9.4 Kursor 75
9.5 Mode Teks 76
9.6 Jendela Teks (Window) 77
9.7 Menghapus dan Menyisipkan Baris Pada Window 78

BAB X TYPE DATA RECORD 80


10.1 Defenisi 80
10.2 Pendeklarasian Record 81
10.3 Operasi Pada Record 82
10.3.1 Mengakses Record Dengan Notasi Titik 82
10.3.2 Mengakses Record Dengan Pernyataan With 83
10.4 Latihan 85

BAB XI TYPE DATA HIMPUNAN 89


11.1 Deklarasi Type Himpunan 89
11.2 Operasi Himpunan 89
11.3 Latihan 90

BAB XII TYPE DATA FILE 93


12.1 File Acak (Random) / File Bertipe 93
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 5
12.1.1 Pernyataan Assign 94
12.1.2 Pernyataan Rewrite 94
12.1.3 Pernyataan Reset 95
12.1.4 Pernyataan Close 95
12.1.5 Pernyataan Write 96
12.1.6 Pernyataan Read 96
12.1.7 Pernyataan Seek 97
12.1.8 Fungsi EOF 97
12.1.9 Fungsi Filesize 97
12.2 Menangani Kesalahan I/O 97
12.3 Latihan 98

BAB XIII SUARA & GRAFIK 102


13.1 Mode Suara 102
13.2 Mode Grafik 102
13.2.1 Mode Untuk Graphmode 103
13.2.2 Mode Untuk Graph Color Mode 104
13.2.3 Mode Untuk Hires 104
13.2.4 Fungsi Grafik Lainnya 105
13.3 Latihan 106

LAMPIRAN 1 TABEL ASCII 108


LAMPIRAN 2 DAFTAR TOMBOL PERLUASAN 110
LAMPIRAN 3 PESAN KESALAHAN 111
DAFTAR PUSTAKA 118

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 6
BAB I
PENDAHULUAN

1.13 SEJARAH SINGKAT TURBO PASCAL


Pascal merupakan salah satu bahasa tingkat tinggi (Hight Level Language) yang
orientasinya pada segala tujuan, yang dirancang oleh Prof. Niklaus Wirth dari Technical
University di Zurich, Switzarland. Nama pascal diambil dari nama ahli matematika abad
17 asal Perancis yaitu Blaise Pascal yang menemukan mesin hitung mekanik pertama.

Prof. Niklaus Wirth memperkenalkan komputer bahasa pascal dengan pertama kali
untuk komputer CDC-600 (Control Data Corporation) yang dipublikasikan tahun 1971,
dengan tujuan untuk membantu mengajar program komputer secara sistematis
khususnya untuk memperkenalkan pemrograman yang terstruktur, jadi pascal adalah
yang ditujukan untuk membuat program yang terstruktur.

Standar pascal adalah bahasa yang didefinisikan oleh K. Jensen dan Prof. Niklaus
Wirth. Penerapan nyata dari standar pascal banyak yang berbeda seperti apa yang telah
didefinisikan oleh K. Jensen dan Prof. Niklaus Wirth. Standar pascal di Eropa
didefinisikan oleh ISO (International Standard Organization) dan di Amerika oleh kerja
sama antar ANSI (American National Standard Institute) dan IEEE (Institute of
Electrical Electronic Engineer).

Beberapa versi dari pascal telah beredar dipasaran, diantaranya UCSD Pascal
(University Of California at San Diego Pascal), MS-Pascal (Microsoft Pascal), APPLE
Pascal, Turbo Pascal dan lain sebagainya. Sampai saat ini untuk komputer micro dan
personal, Turbo Pascal merupakan versi bahasa pascal yang paling populer dan banyak
digunakan.

1.14 JENIS-JENIS FILE YANG DIMILIKI TURBO PASCAL


1. File Editor
File Editor adalah program yang anda buat / anda susun dalam Turbo Pascal. Nama
file program harus selalu berakhiran dengan “.pas”.
2. File Object
File Object adalah hasil file program anda setelah melewati proses COMPILE. File
ini berakhiran .obj.
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 7
3. File Eksekusi
File Eksekusi adalah hasil file program setelah melewati proses LINK. File ini
berakhiran .exe.

1.15 MENJALANKAN PROGRAM TURBO PASCAL


Program Turbo Pascal sebenarnya dapat dijalankan dengan 2 cara, yakni :
1. cara command-line, yaitu program disunting/dibuat, dicomplile serta di link secara
terpisah dengan menggunakan programnya masing-masing dan dilaksanakan dari
DOS (dalam Turbo Pascal dapat melalui file [Link]).
2. dengan Integrated Development Environment (IDE). IDE melayani penyuntingan
program, compile dan link secara terpadu.

Untuk menjalankan Turbo Pascal dengan cara IDE dapat dilakukan dengan meng-click
(double click) file [Link] (dari desktop Windows) atau cari file [Link] yang ada
dalam directory pascal atau dari C prompt (C>) anda ketik C>TPX (tekan Enter).
Tunggu sejenak, hingga dilayar tampil gambar seperti berikut :
Baris Menu

Nama File

Editor Penyuntingan
Posisi Kursor

Kotak Pesan

Gambar 1.1 Tampilan layar Integrated Development Environment (IDE)


Keterangan :
- Editor penyuntingan merupakan tempat untuk membuat atau menyusun program
anda.
- Kotak Pesan (message) adalah tempat berbagai pesan kesalahan ditampilkan.

Kursor dapat dipindahkan dari kotak PENYUNTINGAN ke kotak MESSAGE / PESAN


atau sebaliknya dengan menggunakan tombol “F6”. Memilih MENU dari kotak
PENYUNTINGAN dapat dilakukan dengan dua cara :
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 8
1. Tekan tombol ALT dan huruf depan nama menu yang bersangkutan
Contoh :
Memilih menu OPTIONS : [ALT] O
FILE : [ALT] F dts…
2. dengan menekan tombol F10.

Sedangkan untuk menutup kembali menu yang telah dipilih dapat


menggunakan/menekan tombol ESC.

1.16 OPERASI FILE


Perintah-perintah yang ada pada menu file :

Gambar 1.2 Tampilan Menu File


1. NEW
Perintah ini berfungsi untuk mempersiapkan layar IDE yang baru untuk
penyuntingan program yang baru pula.
2. OPEN (F3)
Perintah ini digunakan untuk mengaktifkan atau memanggil kembali suatu file yang
pernah anda buat. Caranya, yaitu dengan menyorot perintah ini kemudian
dilanjutkan dengan menekan tombol ENTER. Setelah tombol ENTER ditekan,
dilayar akan tampil seperti gambar berikut :

Gambar 1.3 submenu Open dari Menu File


Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 9
3. SAVE (F2)
Digunakan untuk menyimpan program anda. Dalam Turbo Pascal, nama file yang
diberikan harus berakhiran .pas (titik pas). misalnya : [Link]
4. SAVE AS
Perintah ini digunakan untuk menyimpan suatu program kedalam file yang lain atau
file baru.
5. SAVE ALL
Perintah ini digunakan untuk menyimpan semua file program yang dibuka pada saat
bersamaan.
6. CHANGE DIR
Untuk memindahkan directory yang aktif dari suatu directory ke directory yang lain.

Ketikkan directory yang


akan diaktifkan
Misalnya c:\pascal\data

Gambar 1.4 submenu Change dir dari Menu File


7. PRINT
Untuk mencetak listing suatu program ke printer.
8. OS SHELL
OS Shell (operating system shell) digunakan bila anda ingin bekerja dengan sistem
operasi (prompt) yang sifatnya sementara tanpa ingin keluar dari program Turbo
Pascal. Untuk kembali ke editor cukup dengan mengetikkan : C> EXIT.
9. EXIT (ALT-X)
Perintah ini digunakan bila anda ingin keluar dari Turbo Pascal.

1.17 MENGATUR KONFIGURASI TURBO PASCAL DENGAN [Link]


Konfigurasi yang akan diatur disini terutama yang menyangkut penggunaan directory.
Konfigurasi akan diatur melalui menu OPTIONS dan hasilnya akan disimpan ke dalam
file [Link].
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 10
Pengaturan Directory
Untuk pengaturan directory, pilihlah submenu DIRECTORIES dari menu OPTIONS.
Dalam submenu DIRECTORIES terdapat perintah-perintah sebagai berikut :
 EXE & TPU Directories
 Include Directories
 Unit Directories
 Object Directories
Untuk lebih jelasnya dapat anda lihat dalam tampilan gambar berikut ini :

Gambar 1.5 submenu DIRECTORIES dari MENU OPTIONS


EXE & TPU Directories, Semua file ber_extensi .EXE dan .TPU disimpan dalam
direktori ini. Jika dibiarkan kosong (tidak diisi), file ber_extensi .EXE dan .TPU
akan di simpan pada direktori tempat program sumber ditemukan. Direktori ini
juga digunakan untuk menyimpan file yang berakhiran MAP.
Include Directories, Direktori ini menyatakan tempat file yang disertakan melalui ($i
nama_file). Pilihan ini bisa di isi dengan sejumlah nama direktori yag dipisahkan
dengan tanda titik koma (;).
Unit Directories, Direktori yang menyatakan letak file unit Turbo Pascal. Dapat di isi
dengan sejumlah nama directori. Dalam hal ini gunakan tanda titik koma (;)
sebagai pemisah.
Object Directories, Menyatakan direktori tempat file ber_extensi .OBJ (file yang berisi
rutin dalam bahasa assembly). Direktori ini dapat juga di isi dengan sejumlah
direktori, dimana digunakan tanda titik koma (;) sebagai pemisahnya.
Untuk menjalankan/mengatur perintah-perintah yang ada dalam directories tersebut
pilihlah / sorot perintah yang akan anda atur. Misalnya anda akan mengatur perintah

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 11
EXE & TPU directories. Langkah pertama pindahkan kursor di mana direktori akan
kita ketik. Misalnya anda menyimpan file .EXE dan .TPU dalam directory
C:\PASCAL\UNITS maka ketikkan nama directory tersebut dalam kotak kecil EXE &
TPU directories lalu tekan ENTER.

Gambar 1.6 Pengaturan DIRECTORIES dari MENU OPTIONS


Setelah selesai mengisi EXE & TPU directories, lanjutkan pengaturan untuk perintah-
perintah yang lainnya sesuai dengan directory tempat file-file disimpan atau akan
disimpan seperti terlihat pada gambar 1.6 diatas. Setelah semua perintah dalam
submenu Directories diatur tekan ESC untuk keluar.
Langkah berikutnya setelah anda mengisi/mengatur semua perintah yang ada dalam
Directories tersebut adalah menyimpan hasil pengaturan konfigurasi tadi kedalam file
“[Link]”, dengan memilih perintah “Save [Link]” yang juga ada dalam menu
OPTIONS.

Gambar 1.7 Menyimpan hasil pengaturan konfigurasi

1.18 BAGIAN-BAGIAN PROGRAM DALAM TURBO PASCAL


Program dalam Turbo Pascal tersusun dari fungsi-fungsi yang didalamnya mengandung
satu atau lebih pernyataan-pernyataan atau perintah-perintah.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 12

Komentar

awal program

Titik koma “;” untuk mengakhiri


setiap pernyataan/perintah

akhir program

Gambar 1.8 Contoh program sederhana


Beberapa petunjuk yang dapat anda gunakan dalam menuliskan program adalah :
1. Sebaiknya dalam satu baris hanya terdiri dari satu perintah saja.
2. Perintah/pernyataan yang merupakan bagian dari suatu fungsi dituliskan agak
menjorok kedalam.
3. Bila sebuah perintah tidak cukup dituliskan dalam satu baris, anda dapat menuliskan
kebaris berikutnya.
4. Bila perlu gunakan spasi untuk memisahkan suatu kelompok perintah dengan
kelompok perintah yang lain.

1.19 MENG-COMPILE DAN ME-LINK FILE


Proses COMPILE adalah mengubah file program (file berakhiran .pas) menjadi file
Object (berakhiran .obj). Sedangkan proses LINK akan mengubah file object tersebut
menjadi file eksekusi (berakhiran .exe).

Proses COMPILE dapat dilakukan dari kotak penyuntingan dengan menggunakan


tombol : Alt + F9 atau lewat menu COMPILE dengan memilih perintah : Compile atau
(tekan tombol Alt + C) kemudian dilanjutkan dengan menekan tombol ENTER.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 13

Gambar 1.9 submenu Compile dari Menu File

Sedangkan untuk melakukan proses LINK atau RUN (merubah file .obj ke file .exe)
dapat dilakukan dari kotak penyuntingan dengan menggunakan tombol : Ctrl + F9
atau lewat menu RUN dengan memilih perintah : Run kemudian dilanjutkan dengan
menekan tombol ENTER.

Gambar 1.10 submenu Run dari Menu File

Proses COMPILE dan LINK dapat dilakukan bersama-sama dari kotak


PENYUNTINGAN dengan menggunakan tombol : F9 atau lewat menu COMPILE
dengan perintah : Make.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 14

Gambar 1.11 Pesan yang tampil setelah proses COMPILE dan LINK sukses

Pesan ini dapat dihilangkan dari layar dengan menekan tombol :


ENTER atau sembarang tombol

1.20 MENJALANKAN PROGRAM


Program yang telah selesai di-COMPILE dan di-LINK dengan sukses dapat anda jalan
dengan tombol :
CTRL + F9
atau
Lewat menu RUN, dengan memilih RUN dan dilanjutkan dengan ENTER

1.21 Fungsi-Fungsi Tombol Lainnya


Jenis Tombol Fungsi / Kegunaan
ALT + F5 Melihat Output / Tampilan Hasil Program dilayar
F5 untuk menampilkan kotak penyuntingan saja atau
kotak pesan saja
F6 Untuk memindahkan kursor dari kotak pesan ke kotak
penyuntingan atau sebaliknya
F10 Memindahkan kursor kebaris MENU
CTRL + F4 Untuk menghitung suatu variabel atau suatu rumus
tertentu
F7 atau F8 Untuk menjalankan program langkah demi langkah

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 15
1.22 STRUKTUR BAHASA PASCAL

Judul Program Kepala Program


bersifat optional

Bagian Deklarasi :
- Deklarasi Label
- Deklarasi Konstanta
- Deklarasi Type
- Deklarasi Variabel
- Deklarasi Procedure
- Deklarasi Fungsi
Tubuh Program

Bagian Pernyataan :
Begin
----
----
----
End.

1.23 PENULISAN PROGRAM PASCAL


Program pascal tidak mengenal aturan penulisan di kolom tertentu jadi boleh ditulis
mulai kolom berapapun. Penulisan statement-statement pada contoh program yang
menjorok kedalam masuk beberapa kolom tidak mempunyai pengaruh diproses, hanya
dimaksudkan untuk mempermudah pembacaan program, sehingga lebih terlihat bagian-
bagiannya.
1). Judul Program
Dalam Turbo Pascal, judul program sifatnya adalah optional dan tidak signifikan di
dalam program. Jika ditulis dapat digunakan untuk memberi nama program dan
daftar dari parameter tentang komunikasi program dengan lingkungannya yang
sifatnya sebagai dokumentasi saja. Judul program bila ditulis, harus terletak pada
awal dari program dan diakhiri dengan titik koma.
2). Bagian Deklarasi
Bagian deklarasi digunakan bila di dalam program menggunakan pengenal
(identifier). Identifier dapat berupa label, konstanta, type, variabel, prosedur dan
fungsi. Supaya identifier tersebut dikenal di dalam pascal maka terlebih dahulu
sebelum digunakan, yaitu dideklarasikan pada bagian deklarasi.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 16
A. Deklarasi Label
Deklarasi label digunakan untuk mendefenisikan label yang akan dipakai dalam
program pascal. Dan digunakan untuk pernyataan “GOTO”.
Cara Penulisan :
LABEL N1, N2, …;
Contoh :
Program Contoh Deklarasi Label ;
Label DP, Selesai ;
Begin
write (‘AMIK’);
GOTO DP ;
write (‘Kerinci’);
DP :
write (‘Depati Parbo’);
GOTO Selesai;
Selesai :
write(‘AMIK-DP’);
End.
B. Deklarasi Konstanta
Digunakan untuk mendefenisikan nilai konstanta (tetap) yang dipakai dalam
program.
Cara Penulisan :
CONST N1 = Nilai ;
Contoh :
Program Contoh Deklarasi Konstanta ;
Const DP = ‘AMIK Depati Parbo’ ;
Alt = ‘Jl. Pancasila’ ; Telp = 21719;
Begin
write (‘Nama Akademi : ‘, DP);
write (‘Alamat : ‘, Alt);
write (‘Nomor Telpon : ‘,Telp);
End.
C. Deklarasi Type
Pada turbo pascal menyediakan beberapa macam tipe dari data yakni :
1. Data Type Sederhana (Simple Type Data)
Type data ini dihubungkan dengan sebuah identifier untuk sebuah data.
Simple type data dapat digolongkan menjadi type data standar (standard
type data) dan type data yang didefenisikan oleh pemakai (user defined
data).

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 17
Yang termasuk type data standar adalah :
- Integer - Word
- Shortint - Byte
- Longint - Extended
- Real - Char
- Double - String
- Single - Boolean
- Comp
Contoh :
Program Contoh Deklarasi Type Sederhana ;
Type
Pecahan = real;
Angka = integer;
Nama = string[25];
Logika = boolean;
Begin
…..
End.
2. Data Type Terstruktur (Struktured Type Data)
Data type ini terdiri dari beberapa item yang dihubungkan satu dengan yang
lainnya. Masing-masing huruf dari data item di hubungkan dengan satu
identifier tertentu.
Yang termasuk type data terstruktur :
- Array - File
- Record - Set
Contoh :
Program Contoh Deklarasi Type Terstruktur ;
Type
Mahasiswa = record
Bp : string[9];
Nama : string[25];
matakuliah : array [1..9] of string[25];
end;
hari = (Senin, Selasa, Rabu, Kamis);
namahari = set of hari;
Var
File_mhs : file of mahasiswa;
Begin
…..
End.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 18
3. Data Type Penunjuk (Pointer Type Data)
Data ini digunakan untuk membuat data terstruktur type dynamic. Untuk
mendefenisikan type dari data yang akan dipergunakan di dalam program,
dapat dilakukan dengan mendeklarasikan pengenal variabelnya di bagian
deklarasi variabel sesuai dengan type data yang dipergunakan.
Bentuk umum deklarasi pointer :
Type Pengenal =^simpul;
Simpul = tipe;
Keterangan :
Pengenal : nama pengenal yang menyatakan data bertipe pointer
Simpul : nama simpul
Tipe : tipe data dari simpul
Tanda ^ di depan nama simpul harus di tulis seperti apa adanya dan
menunjukkan bahwa pengenal adalah suatu tipe data pointer.
Contoh :

D. Deklarasi Variabel
Variabel adalah identifier yang berisi data yang dapat berubah nilainya di dalam
program.
Cara Penulisan :
Var N1,N2, … = type data ;
Contoh :
Program Contoh Deklarasi Variabel ;
Const Jml = 10;
Harga = 1500;
Var Total : integer;
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 19
Potongan : real;
Namabrg : string[25];
Begin
write (‘Nama Barang : ‘);readln(namabrg);
total := jml * harga ;
potongan := 0.1 * total ;
writeln (‘Total : ‘,total);
writeln (‘Potongan : ‘,potongan);
End.
Beberapa hal yang perlu diperhatikan dalam membuat nama variabel :
1. Nama variabel hanya boleh terdiri dari abjad, bilangan & tanda hubung ( _ )
Contoh :
nama
no_bp
no1
2. Nama variabel boleh dimulai oleh tanda hubung ( _ )
Contoh :
_nama
_bp
jml_anak
3. Nama variabel tidak boleh dimulai oleh angka
Contoh variabel yang salah :
3nm
1no_bp
50_bulan
4. Nama variabel tidak boleh menggunakan operator aritmatika seperti tanda :
+ - / * %
Contoh variabel yang salah :
nama+kecil
jml%anak
angka*lahir
5. Nama variabel tidak boleh menggunakan karakter-karakter khusus seperti
tanda : # @ & ! ^ $ : ; . (titik) , (koma)
Contoh variabel yang salah :
nama&kecil
no;bp
status,anak
jenis@alat

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 20
6. Nama variabel tidak boleh mengandung spasi
Contoh variabel yang salah :
nama kecil
no bp
jam kerja
7. Tidak boleh menggunakan nama fungsi atau kata-kata lain yang mempunyai
arti khusus dalam Turbo Pascal (reserved words) kecuali digabungkan
dengan kata-kata lain
Contoh variabel yang salah :
readln
clrscr
Contoh variabel yang benar :
nama_read
write_masuk
8. Turbo Pascal tidak membedakan antara huruf besar dan huruf kecil
Contoh :
NAMA NO JUMLAH
nama no jumlah
E. Deklarasi Procedure
Prosedur merupakan bagian yang terpisah dari program dan dapat di aktifkan
dimanapun didalam program.
Contoh :
Procudure hitung (x, y : integer);
F. Deklarasi Fungsi
Blok fungsi hampir sama dengan prosedur hanya saja fungsi harus di
deklarasikan dengan typenya.
Contoh :
Function hitung (x, y : integer) : integer ;

1.24 LATIHAN
1. Suatu persegi panjang dengan panjang = 50.5 dan lebar tidak diketahui (nilainya di
inputkan).
Carilah : Luas = Panjang * Lebar
Keliling = 2 * (Panjang + Lebar)

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 21
uses crt;
var
panjang, luas, lebar, keliling : real;

begin
clrscr;
panjang := 50.5;
writeln('Menghitung Luas Persegi Panjang');
write('Lebar : ');readln(lebar);
luas := panjang * lebar;
keliling := 2 * (panjang + lebar);
writeln('Luas : ',luas:5:2);
writeln('Keliling : ',keliling:5:2);
end.

2. Hitunglah nilai diskriman (D = B2 – 4AC). Dimana nilai A=4, C = 2.5 sedangkan


nilai dari B tidak diketahui (nilai B di inputkan).
uses crt;
var
A,B,C,D : real;

begin
clrscr;
A := 4; C := 2.5;
writeln('Menghitung Nilai Diskriminan');
writeln('-----------------------------------');
writeln('Nilai A = ',A:4:2);
writeln('Nilai C = ',C:4:2);
write('Nilai B = ');readln(B);
D := sqr(B) - 4 * A * C;
writeln('Nilai Diskriminan = ',D:4:2);
readln;
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 22
BAB II
TYPE DATA

Type data adalah suatu kelas dari objek-objek data bersama-sama dengan himpunan operasi
untuk membuat dan memanipulasinya. Setiap bahasa pemrograman mempunyai sekumpulan
tipe data primitif yang menjadi bawaan bahasa tersebut (built in) dan ada juga yang
menyediakan fasilitas bagi programer untuk mendefenisikan tipe data baru.

2.1 TYPE DATA SEDERHANA


Merupakan tipe data dasar yang sering dipakai oleh program.
Yang termasuk tipe data sederhana adalah :
 Type Ordinal
 Type Real

Type Ordinal
Yang termasuk tipe ordinal adalah :
Type Range Ukuran Memori
- Integer -32768 s/d 32767 2 byte
- Byte 0 s/d 255 1 byte
- Shortint -128 s/d 127 1 byte
- Word 0 s/d 65535 2 byte
-2147483638 s/d 4 byte
- Longint 2147483647 1 byte
- Char 1 Character 1 byte
- Boolean True & False ---
- Enumerasi --- ---
- Subrange ---

Contoh :
- Deklarasi type integer, byte, shortint, word, longint, char dan boolean :

var
nilai : integer;
angka : word;
a, i, j : byte;
huruf : char;
benar : boolean;

- Deklarasi type Enumerasi, type ini dapat di defenisikan pada TYPE. Pada type
anumerasi terdapat istilah pendahulu (predecessor) dan pengikut (successor).

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 23
uses crt;
{ Deklarasi type data anumerasi }
type
bulan = (Januari, Februari, Maret, April, Mei);
var
nama_bulan : bulan;
begin
clrscr;
nama_bulan := Januari;
{ Dengan perintah Succ data akan menuju ke data berikutnya}
nama_bulan := succ(nama_bulan);
case nama_bulan of
Januari : writeln('Januari');
Februari : writeln('Februari');
Maret : writeln('Maret');
April : writeln('April');
Mei : writeln('Mei');
end;
writeln;
nama_bulan := Mei;
{ Dengan perintah Pred data akan menuju ke data sebelumnya}
nama_bulan := pred(nama_bulan);
case nama_bulan of
Januari : writeln('Januari');
Februari : writeln('Februari');
Maret : writeln('Maret');
April : writeln('April');
Mei : writeln('Mei');
end;
readln;
end.

Jika program diatas dijalankan maka di peroleh hasil tampilan seperti berikut :
Februari
April
- Deklarasi type Subrange, merupakan type yang didefenisikan dengan menyebutkan
kemungkinan nilai yang terbesar dan terkecil.
Bentuk umum penulisan :
Type
nama_variabel = nilai_terkecil .. nilai_terbesar;
uses crt;
type
huruf = (A,B,C,D,E,F,G,H,I,J,K,L,M,N,
O,P,Q,R,S,T,U,V,W,X,Y,Z);
var
n1 : 1..26; { merupakan tipe sub range}
h_awal,nama_huruf : huruf;

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 24
begin
clrscr;
write('Nomor urutan huruf yang akan di tampilkan : ');readln(n1);
h_awal := huruf(n1-1);
writeln;
write('Huruf dari urutan ',n1:2,' adalah : ');
for nama_huruf := h_awal to Z do
begin
case nama_huruf of
A : write(' A'); B : write(' B'); C : write(' C');
D : write(' D'); E : write(' E'); F : write(' F');
G : write(' G'); H : write(' H'); I : write(' I');
J : write(' J'); K : write(' K'); L : write(' L');
M : write(' M'); N : write(' N'); O : write(' O');
P : write(' P'); Q : write(' Q'); R : write(' R');
S : write(' S'); T : write(' T'); U : write(' U');
V : write(' V'); W : write(' W'); X : write(' X');
Y : write(' Y'); Z : write(' Z');
end;
end;
readln;
end.

Type Real (Bilangan Pecahan)


Yang termasuk tipe real adalah :
Type Range Ukuran Memori
- Real 2.9 x 10 s/d 1.7 x 1038
-39
6 byte
- Single 1.5 x 10-45 s/d 3.4 x 1038 4 byte
- Double 5.0 x 10-324 s/d 1.7 x 10308 8 byte
- Extended 5.0 x 10-4951 s/d 1.1 x 104932 10 byte
- Comp -9.2 x 1018 s/d 1.1 x 1018 8 byte

2.2 TYPE DATA STRING


String di gunakan untuk menangani data yang bertipe teks. Misalnya nama, alamat,
asal_sekolah dan lain-lain.
Di dalam Turbo Pascal, string dianggap sebagai array dari karakter.
Suatu konstanta string di tulis dengan diapit oleh tanda petik tunggal (‘ ‘).
Contoh :
Const
nama : string[20] = ‘AMIK-DP Kerinci’;
Var
alamat : string[30];
Begin
Clrscr ; alamat := ‘Sungai Penuh’;
writeln(nama);
writeln(alamat);readln;
End.
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 25
2.3 TYPE DATA TERSTRUKTUR
Type data terstruktur secara umum terdiri dari :
1. Type data Array
2. Type data Record
3. Type data Set (Himpunan)
4. Type data File (Berkas)

1. Type Array
Merupakan type data yang mempunyai komponen dalam jumlah yang tetap dan
setiap komponen mempunyai type data yang sama.
Cara Penulisan :
Type pengenal = array [type index] of type_data ;

Contoh :
Type
Nilai = array [1..5] of real ;
Jml = array [1..10] of array [1..5] of real ;
atau
Jml = array [1..10,1..5] of real ;

2. Type Rekaman (Record)


Hampir sama dengan typa data array, perbedaannya bahwa dalam array semua
elementnya harus bertipe sama sedangkan dalam rekaman (record) bisa sebaliknya.
Contoh :
Type nilai = record
NA : byte ;
NH : char ;
Rata_rata : real ;
end ;

3. Type Himpunan (Set)


Merupakan kumpulan obyek yang mempunyai tipe data yang sama dan urutan
penulisannya tidak diperhatikan. Salah satu manfaat penggunaan type data set
adalah untuk mengecek apakah suatu nilai muncul dalam suatu range tertentu.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 26
Contoh :
uses crt;
type
huruf = set of char; { type set atau himpunan }
var
j_huruf : char;
aksara : huruf;
begin
clrscr;
write('Masukkan Nomor atau Huruf : ');readln(j_huruf);
writeln;
aksara:=['A'..'Z']; { pemberian nilai sebuah set/himpunan }
if j_huruf in aksara then
writeln(j_huruf,' Merupakan Karakter')
else
writeln(j_huruf,' Merupakan Numerik');
readln;
end.

4. Type Berkas (File)


Merupakan sejumlah komponen yang betipe data sama, yang jumlahnya tidak
tertentu dan biasanya tersimpan dalam suatu media penyimpanan luar.
Bentuk umum deklarasi type file :
FILE OF <tipe_komponen>
Contoh :
Type nilai = record
NA : byte ;
NH : char ;
Rata_rata : real ;
end ;
Var
f_nilai : file of nilai;

2.4 TYPE DATA POINTER


Pointer merupakan variabel yang nilainya berupa alamat atau lokasi memori dari data
atau variabel lain.
Type pointer di defenisikan dengan simbol ^ diikuti dengan tipe yang ditunjuk oleh
pointer.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 27
Bentuk umum deklarasi type pointer :
TYPE <pengenal_pointer> = ^<type_pointer>
Secara umum pembagian type data dalam turbo pascal dapat digambar sebagai berikut :
Integer
ShortInt
LongInt
Type Ordinal Boolean
Type Char
Byte
Sederhana Word
Subrange
Type Real
Terbilang
Type String
TYPE
DATA Array
Type
Record
Terstruktur Set (Himpunan)
File (Berkas)

Type Pointer

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 28
BAB III
STATEMENT INPUT / OUTPUT

Input dan Output memegang peranan yang penting dalam suatu program, karena bagian dari
program inilah yang membuka jalur komunikasi dengan manusia.

3.5 STATEMENT OUTPUT


Merupakan proses untuk menampilkan data dalam media output (dapat berupa printer,
monitor atau media lainnya). Untuk menampilkan proses tersebut, tentunya diperlukan
adanya perintah-perintah atau fungsi-fungsi yang mengatur output tersebut.
Dalam Pascal, salah satu fungsi yang paling umum adalah Write() atau Writeln().

3.5.1 Fungsi Write() dan Writeln()


Fungsi Write() dan Writeln() dapat digunakan untuk mencetak data baik yang
bertipe numerik ataupun teks, baik konstanta ataupun variabel.
Bentuk pernyataan Write() dan Writeln() :
Write (<nilai-1>, <nilai-2>, … <nilai-n>)
Writeln (<nilai-1>, <nilai-2>, … <nilai-n>)
Contoh :
Uses crt;
begin
write(‘AMIK Depati Parbo Kerinci ’);
write(‘Jumlah 10 + 2 = ‘,12);
end.

Contoh program diatas bila dijalankan akan memberikan hasil sebagai berikut :
AMIK Depati Parbo Kerinci Jumlah 10 + 2 = 12

Jika kita lihat dari tampilan yang dihasilkan terlihat kurang indah dipandang dan
sulit untuk di baca. Sebenarnya tampilan program dapat kita atur sesuai dengan
selera kita.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 29
Contoh :
Uses crt;
begin
writeln(‘AMIK Depati Parbo Kerinci ’);
writeln(‘A’);
writeln(‘Jumlah 10 + 2 = ‘,12);
end.

Program diatas bila kita jalankan akan memberikan hasil sebagai berikut :
AMIK Depati Parbo Kerinci
A
Jumlah 10 + 2 = 12

3.5.2 MENENTUKAN LEBAR FIELD (FIELD WIDTH SPECIFIER)


Penentuan lebar field terkadang sangat diperlukan dalam suatu program
terutama untuk menambah keindahan tampilan program.
Misalnya untuk mencetak decimal dalam suatu program, terkadang terlalu
panjang.
Contoh :
Uses crt;
begin
clrscr;
writeln(‘Nilai = ’, 5.5);
writeln(‘Jumlah = ‘, 25.62);
end.

Contoh program diatas jika dijalankan akan memberikan hasil sebagai berikut :
Nilai = 5.5000000000E+00
Jumlah = 25.620000000E+01

Dilihat dari tampilan yang dihasilkan dari contoh program diatas meskipun
hasilnya sudah benar tetapi tidak sesuai dengan tampilan yang kita harapkan.
Angka desimal yang dihasilkan sebenarnya dapat anda atur sesuai dengan
keinginan saudara sehingga tampilan program terlihat lebih indah.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 30
Contoh :
Uses crt;
begin
clrscr;
writeln(‘Nilai = ‘, 5.5:2);
writeln(‘Jumlah = ‘, 5.5:2:2);
writeln(‘Angka = ‘, 25.62:2:2);
end.

Contoh program diatas jika dijalankan akan memberikan hasil sebagai berikut :
Nilai = 5.5E+00
Jumlah = 5.50
Angka = 25.62
Pengaturan lebar field juga berlaku untuk data yang bertipe integer. Bila lebar
field ditentukan, data umumnya di cetak/ditampilkan rata kanan.
Sebagai ilustrasi bandingkan kedua hasil/tampilan program dibawah ini :
Uses crt;
Begin
Clrscr;
writeln(“Nilai = ”,12);
write(“Jumlah = ”,156);
end.

Uses crt;
Begin
Clrscr;
writeln(“Nilai = ”,12:8);
write(“Jumlah = ”,156:8);
end.

3.5.3 MENCETAK KODE ASCII


Untuk mencetak kode ASCII digunakan notasi :
Chr(angka_desimal)

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 31
Contoh :
Uses crt
Begin
clrscr;
writeln (chr(73),chr(32),chr(77),chr(73),chr(83),
chr(83),chr(32),chr(89)chr(79),chr(85));
readln;
end.

3.6 STATEMENT INPUT


Fungsi input digunakan untuk memasukkan data untuk selanjutnya diproses oleh
komputer sebelum dikeluarkan dengan fungsi output.

3.6.1 FUNGSI READ() DAN READLN()


Penggunaan Read() atau Readln() seringkali dikombinasikan bersama dengan
fungsi Write() atau Writeln() untuk sekedar memberi keterangan tentang data
apakah yang harus dimasukkan dalam Read() atau Readln(), karena fungsi
Read() atau Readln() itu sendiri tidak dapat digabungkan dengan teks.
Bentuk umum penggunaan fungsi Read() atau Readln() :
read (variabel_1, variabel_2, … variabel_n);
readln (variabel_1, variabel_2, … variabel_n);

Perbedaan antara Read() atau Readln() :


Read() : Jika ada kelebihan data (yang dimasukkan melalui keyboard),
data tersisa akan dimasukkan ke variabel pada pernyataan
Read() atau Readln() selanjutnya.
Readln() : Jika ada kelebihan data, data tersisa akan diabaikan.
Contoh :
{ -------------------------------------------------------- }
{ Contoh Program Penggunaan Write dan Read }
{ -------------------------------------------------------- }
Uses crt
Var
nama : string[25];
bp : string[8];
mtk : string[25];

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 32
mid, sem,rata : real;
Begin
clrscr;
write(‘Nama Mahasiswa : ‘);readln(nama);
write(‘Nomor Bp : ‘);readln(bp);
write(‘Matakuliah : ‘);readln(mtk);
write(‘Nilai Mid: ‘);readln(mid);
write(‘Nilai Semester : ‘);readln(sem);
rata := 0.4 * mid + 0.6 * sem;
write(‘Nilai Rata-rata : ‘,rata:4:2);
readln;
end.

3.7 MENCETAK KE PRINTER


Selain menampilkan data dilayar monitor, turbo pascal juga menyediakan fasilitas untuk
menampilkan data di printer dengan menggunakan perintah Lst.
Contoh :
Uses printer;
Begin
Writeln(lst,’Hanafa Azzahra’);
Wtiteln(lst,’Ferdinal’);
End.

3.8 LATIHAN
1. Buatlah program untuk menampilkan luas persegi panjang dengan ketentuan sebagai
berikut :
Luas = Panjang * Lebar
Nilai dari variabel Panjang dan lebar di inputkan
Ketentuan variabel yang digunakan :
Nama Variabel type data keterangan
Panjang integer Panjang Persegi Panjang
Lebar integer Lebar Persegi Panjang
Luas integer Luas Persegi Panjang
Bentuk Tampilan :
Panjang = ……. M
Lebar = ……. M
Jadi Luas Persegi Panjang = ……… M2
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 33
uses crt;
var
panjang, lebar, luas : integer;

begin
clrscr;
writeln('Menghitung Luas Persegi Panjang');
writeln('-----------------------------------------');
writeln;
write('Panjang : ');readln(panjang);
write('Lebar : ');readln(lebar);
luas := panjang * lebar;
writeln('Jadi Luas Persegi Panjang : ',luas);
readln;
end.

2. Buatlah suatu program untuk menghitung nilai rata-rata mahasiswa, dengan rumus
sebagai berikut :
Nilai_rata = 0.6 * nilai_sem + 0.4 * nilai_mid
Bentuk tampilan :
Nama Mahasiswa : ……………
Nomor Bp : ……………
Nama Matakuliah : ……………
Nilai Mid : ……………
Nilai Semester : ……………
Nilai Rata-rata : ……………
Ketentuan variabel yang digunakan :
Nama Variabel type data keterangan
Nama string Nama Mahasiswa
Bp string Nomor Bp
Mtk string Nama Matakuliah
Mid real Nilai Mid Semester
Sem real Nilai Semester
NA real Nilai Rata-rata

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 34
uses crt;
var
nama : string[20];
bp : string[9];
mtk : string[20];
mid, sem, na : real;
begin
clrscr;
writeln('Menghitung Nilai Mahasiswa');
writeln('----------------------------------');
write('Nama Mahasiswa : ');readln(nama);
write('Nomor Bp. : ');readln(bp);
write('Matakuliah : ');readln(mtk);
write('Nilai Mid : ');readln(mid);
write('Nilai Semester : ');readln(sem);
na := 0.4 * mid + 0.6 * sem;
writeln('Nilai Rata-rata : ',na:4:2);
readln;
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 35
BAB IV
OPERASI ARITMATIKA

Operasi aritmatika hampir selalu dapat anda jumpai pada setiap program, baik program-
program untuk masalah-masalah teknik maupun masalah-masalah umum lainnya.

4.1 OPERATOR ARITMATIKA


Operator aritmatik ada yang bersifat binary dan ada yang bersifat unary. Suatu operator
termasuk binary jika operator melibatkan dua buah operand sedangkan yang termasuk
unary jika operator hanya melibatkan sebuah operand.
Contoh :
a*b → bersifat binary
*b → bersifat unary

Daftar Operator Aritmatik


Operator Type Argument Type Hasil Tujuan
Real – Real Real
+ Real – Integer Real Penjumlahan
Integer – Integer Integer
Real – Real Real
- Real – Integer Real Pengurangan
Integer – Integer Integer
Real – Real Real
* Real – Integer Real Perkalian
Integer – Integer Integer
Real – Real Real
/ Real – Integer Real Pembagian
Integer – Integer Real
Pembagian
div Integer – Integer Integer
bilangan bulat
mod Integer – Integer Integer Sisa pembagian

Fungsi Standard untuk Operasi Aritmatik


Operator Type Argument Type Hasil Tujuan
Menghitung nilai
Integer Integer
Abs(x) absulut atau
Real Real
mutlak dari x
Menghitung
Integer Integer
Sqr(x) kodrat (pangkat 2)
Real Real
dari x
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 36
Operator Type Argument Type Hasil Tujuan

Integer Real Menghitung nilai


Sin(x)
Real Real sinus dari x

Integer Real Menghitung nilai


Cos(x)
Real Real cosinus dari x

Integer Real Menghitung nilai


Arctan(x)
Real Real arctangen dari x
Menghitung nilai
Integer Real
Exp(x) bilangan pokok ©
Real Real
dengan pangkat x
Menghitung
Integer Real
Ln(x) logaritma dengan
Real Real
bilangan pokok x
Integer Real
Sqrt(x) Akar x
Real Real

Integer
Trunc(x) Integer Pemotongan nilai
Real

Integer
Round(x) Integer Pembulatan nilai
Real

Contoh :

1. F = a − b + c2 → Sqrt(Abs(a - b) + Sqr(c))

2. F = Trunc(45,65) → 45
3. F = Round(45,65) → 46

4.2 HIERARKI OPERATOR ARITMATIKA


Dalam suatu ekspresi matematika anda sering menjumpai penggunaan beberapa
operator Aritmatika yang berbeda secara bersamaan. Jika anda menjumpai hal tersebut
maka pengetahuan tentang hierarki operator aritmatika menjadi hal yang sangat penting
untuk anda ketahui.
Hierarki Operator Aritmatika dalam Turbo Pasal
Hierarki Operator Operasi
Operasi aritmatika yang
terletak dalam tanda
1 ()
kurung ‘( )’ akan
didahulukan

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 37
Hierarki Operator Operasi
2 *, /, div, mod Tergantung letak, yang
3 +, - didepan yang didahulukan

4.3 OPERATOR BOOLEAN


Dalam turbo pascal terdapat 4 (empat) buah operator boolean yaitu :
1. Operator Not
2. Operator And
3. Operator Or
4. Operator Xor
Sifat-sifat Operasi Operator Boolean :
Operator Sifat Operasi
Jika salah satu operand bernilai
AND False, maka hasil operasi akan
bernilai False
Jika salah satu operand bernilai
OR True, maka hasil operasi akan
bernilai True
Jika hanya satu operand yang
XOR bernilai True, hasil operasi akan
bernilai True
Jika operand bernilai True, maka
NOT hasil operasinya bernilai False
begitu juga sebaliknya.

Untuk lebih jelasnya, hasil operasi berbagai And, Or, Xor dan Not untuk berbagai
kemungkinan nilai operand, dapat dilihat pada tabel dibawah ini :

Operand 1 Operand 2 Hasil Operasi


And Or Xor
False False False False False
False True False True True
True False False True True
True True True True False

4.4 OPERATOR RELATIONAL (HUBUNGAN)


Operator relasi digunakan untuk membandingkan nilai dua ekspresi aritmatika yang
berbeda. Operator hubungan dapat dikenakan pada berbagai jenis operand, seperti,
byte, char, integer dan boolean. Kedua operand harus bertipe sejenis atau bersifat
kompatibel.
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 38
Daftar Operator Relational (Hubungan)
Operator Keterangan
= Sama dengan
<> Tidak sama
> Lebih besar
< Lebih kecil
>= Lebih besar atau sama dengan
<= Lebih kecil atau sama dengan

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 39
BAB V
STRUCTURE DICISION (STATEMENT IF DAN CASE)

Seleksi dalam Pascal dipakai untuk mengontrol jalannya program agar memilih salah satu dari
sekian banyak kondisi. Pascal menyediakan 2 (dua) struktur untuk melakukan seleksi, yaitu :
1. Struktur IF
2. Struktur CASE

5.4 STRUKTUR IF
Statement IF membagi suatu alur proses menjadi dua cabang, berdasarkan persyaratan
yang diberikan. Cabang yang pertama dijalankan bila persyaratan dipenuhi, sedangkan
cabang kedua dijalankan apabila persyaratan tidak dipenuhi. Bila satu keadaan yang
dapat dipilih dalam statement IF mengandung lebih dari satu pernyataan, maka
pernyataan-pernyataan tersebut dimasukkan dalam blok Begin dan End.

Dalam bentuk diagram alir proses percabangan IF dapat digambarkan sebagai berikut :
 Struktur If … Then …

If Kondisi True Then


IF
Pernyataan ;
False
True

Pernyataan

 Struktur If … Then … Else


If Kondisi True Then
Begin
IF Pernyataan;
Pernyataan;
True False End
else { jika tidak }
Pernyataan Pernyataan Begin
Pernyataan Pernyataan Pernyataan;
Pernyataan;
End;

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 40
Contoh :
1.
If A = X then
Begin
C := ……. ;
D := ……. ;
End
Else
If A = Z then
E := ……. ;
Else
Begin
F := ……. ;
G := ……. ;
End;

2. If A < 0 then
Write(‘Nilai : ‘,A);
Else
Begin
If A = 0 then
Begin
A1 = …….. ;
A2 = …….. ;
End
Else
Begin
A1 = …….. ;
A2 = …….. ;
End;
Writeln(A1);
Writeln(A2);
End;

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 41
5.5 STRUKTUR CASE
Perintah Case memiliki sifat yang hampir sama dengan If .. Else, namun
penggunaannya lebih sempit, karena perintah ini hanya khusus untuk memeriksa data
yang bertipe karakter dan integer. Perintah Case ini juga digunakan untuk
menyelesaikan program yang memiliki banyak cabang atau alternatif.
Bentuk penulisan perintah CASE :

Case <variabel> Of
Konstanta_1 : Statement_1;
Konstanta_2 : Statement_2;
Konstanta_3 : Statement_3;
Konstanta_4 : Statement_4;

Konstanta_N : Statement_5;
End;

Dimana variabel adalah nama variabel yang sudah dideklarasikan sebelumnya, dan
konstanta_1 sampai konstanta_N adalah harga yang dibandingkan dengan harga
variabel. Perintah statement_1 akan dilaksanakan apabila nilai konstanta_1 sama dengan
nilai variabel, statement_2 akan dilaksanakan apabila nilai konstanta_2 sama dengan
nilai variabel, dan seterusnya.

Bila satu keadaan yang dapat dipilih dalam statement CASE mengandung lebih dari satu
pernyataan (statement), maka pernyataan-pernyataan tersebut dimasukkan dalam blok
Begin dan End.
Bentuk penulisan perintah CASE dengan lebih dari satu statement :

Case <variabel> Of
Konstanta_1 : Begin
Statement_1;
Statement_2;
Statement_N;
End;
Konstanta_2 : Begin
Statement_1;
Statement_2;
Statement_N;
End;

Konstanta_N : Begin
Statement_1;
Statement_2;
Statement_N;
End;
End;

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 42
Bila konstanta terdiri dari lebih dari satu nilai, antara satu nilai dengan nilai berikutnya
dipisahkan dengan tanda koma. Sedangkan untuk konstanta yang bernilai subrange
maka antara nilai konstanta terkecil dengan nilai konstanta terbesar digunakan tanda ‘..’
(titik dua kali).
Contoh :
Case aksara of
‘a’ , ‘A’ : writeln (“Karakter Pertama”);
‘b’ , ‘B’ : writeln (“Karakter Kedua”);
‘a’ .. ‘z’ : writeln (“Merupakan Karakter”);
1 .. 99 : writeln (“Merupakan Numerik”);
End;

5.6 LATIHAN
1. Dari persamaan kuadrat ax2 + bx + c = 0 dapat diketahui nilai akarnya berdasarkan
diskriminannya (D) yaitu D = B2 – 4AC.
Jika D < 0 → tidak didapat akar nyata
Jika D = 0 → di dapat dua akar kembar yaitu x1 = x 2 = − B 2 A

Jika D > 0 → di dapat dua akar yaitu x 2 = (− B − D ) 2 A

Data yang diinputkan adalah A, B, C dengan syarat A ≠ 0, jika A = 0 maka proses


dihentikan.
{ Program menghitung persamaan kuadrat }
uses crt;
var
A, B, C , D, x1, x2 : real;
begin
clrscr;
writeln('MENGHITUNG PERSAMAAN KUADRAT');
writeln('----------------------------------------------');
writeln;
write('Input Nilai A : ');readln(A);
write('Input Nilai B : ');readln(B);
write('Input Nilai C : ');readln(C);
writeln;
if A = 0 then
exit
else
begin
D := sqr(B)-4*A*C;
if D < 0 then
writeln('Akar tidak nyata')
else
begin
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 43
if D = 0 then
begin
x1 := -B / 2 * A;
x2 := -B / 2 * A;
end
else
begin
x1 := (-B+sqrt(D))/2 * A;
x2 := (-B-sqrt(D))/2 * A;
end;
writeln('Nilai X1 = ',x1:4:2);
writeln('Nilai X2 = ',x2:4:2);
end;
end;
readln;
end.

2. Buatlah suatu program untuk menghitung nilai rata-rata mahasiswa, dengan rumus
sebagai berikut :
Nilai_rata = 0.6 * nilai_sem + 0.4 * nilai_mid
Bentuk tampilan Input :
Nama Mahasiswa : ……………
Nomor Bp : ……………
Nama Matakuliah : ……………
Nilai Mid : ……………
Nilai Semester : ……………
Bentuk tampilan Output :
Nama Mahasiswa : ………….
Nomor Bp : ………….
No Matakuliah Nil. Mid Nil. Sem Nil. Rata NA NH

Ketentuan variabel yang digunakan :


Nama Variabel type data keterangan
Nama string Nama Mahasiswa
Bp string Nomor Bp
Mtk string Nama Matakuliah
Mid real Nilai Mid Semester
Sem real Nilai Semester

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 44
Rata real Nilai Rata-rata
NA byte Nilai Angka
NH char Nilai Huruf

Ketentuan proses :
Nilai NA dan NH diperoleh dari perhitungan nilai rata-rata dimana :
Jika Nilai rata-rata > 80 maka NA = 4, NH = ‘A’
Jika Nilai rata-rata > 70 maka NA = 3, NH = ‘B’
Jika Nilai rata-rata > 60 maka NA = 2, NH = ‘C’
Jika Nilai rata-rata > 50 maka NA = 1, NH = ‘D’
Jika Nilai rata-rata < 50 maka NA = 0, NH = ‘E’

{ Program Menghitung Nilai Mahasiswa }


uses crt;
var
nama, mtk : string[25];
bp : string[8];
i, na : byte;
nh : char;
mid, sem, rata : real;
begin
clrscr;
i := 0;
writeln('ENTRY DATA NILAI MAHASISWA');
writeln('----------------------------------------');
writeln;
write('Nama Mahasiswa: ');readln(nama);
write('Nomor Bp : ');readln(bp);
write('Matakuliah : ');readln(mtk);
write('Nilai Mid : ');readln(mid);
write('Nilai Semester : ');readln(sem);
rata := 0.4 * mid + 0.6 * sem;
if (rata <= 100) and (rata >= 80) then
begin
nh := 'A';
na := 4;
end
else
if (rata < 80) and (rata >= 70) then
begin
nh := 'B';
na := 3;
end
else
if (rata < 70) and (rata > 60) then

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 45
begin
nh := 'C';
na := 2;
end
else
if (rata <= 60) and (rata > 50) then
begin
nh := 'D';
na := 1;
end
else
begin
nh := 'E';
na := 0;
end;
clrscr;
i := i + 1;
writeln;
writeln('Nama Mahasiswa : ',nama);
writeln('Nomor Bp : ',bp);
writeln('------------------------------------------------------------------------');
writeln(' No Matakuliah [Link] [Link] Rata-rata NA NH');
writeln('------------------------------------------------------------------------');
writeln(i:2,' ',mtk,' ',mid:4:2,' ',sem:4:2,' ',rata:4:2,' ',na,' ',nh);
writeln('------------------------------------------------------------------------');
readln;
end.

3. Sebuah hotel ingin mengetahui jumlah pembayaran kamar oleh pelanggan yang
menginap di hotel tersebut. Untuk itu diperlukan suatu program untuk menghitung
besarnya biaya yang harus dikeluarkan oleh pelanggan hotel berdasarkan jumlah
hari dan jenis kamar yang pakai
Ketentuan Proses :
 Tarif kamar dan jenis kamar diperoleh dari
Jika kd_kamar = ‘1’ maka jns_kamar ‘VIP 1’ dengan tarif = 125.000
Jika kd_kamar = ‘2’ maka jns_kamar ‘VIP 2’ dengan tarif = 100.000
Jika kd_kamar = ‘3’ maka jns_kamar ‘VIP 3’ dengan tarif = 95.000
Jika kd_kamar = ‘4’ maka jns_kamar ‘Kelas’ dengan tarif = 70.000
 Jika lama menginap lebih dari 4 hari maka pelanggan akan mendapat discount
sebesar 10% dari jumlah tarif dan lama menginap
 Jumlah bayar = lama inap * tarif – discount
Ketentuan Variabel yang digunakan :
Untuk definisi variabel yang digunakan ditentukan sendiri !
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 46
Disain Input
>> ENTRY DATA PELANGGAN HOTEL <<
------------------------------------------------------------
Nama Pelanggan : ......
Alamat Pelanggan : ......
Tanggal Masuk : ......
Kode Kamar : ......
Jenis Kamar : ......
Tarif Kamar : Rp. …………......
Nomor Kamar : ......
Lama Menginap : ......
Disain Ouput
Nama Pelanggan : ………………….
-----------------------------------------------------------------------------------------
No Jns_Kmr Trf_Kmr No_Kmr Lm_Inap Discount Jml_Bayar
-----------------------------------------------------------------------------------------
1 xxxxx 999999 99 999 999999 999999
-----------------------------------------------------------------------------------------

{ Program menghitung tarif kamar hotel }


uses crt;
var
nama : string[20];
alt : string[25];
tgl : string[12];
kode_k : char;
jns_k : string[15];
trf_k : longint;
no_k : string[5];
lama : integer;
disc, jml_bayar : real;

begin
clrscr;
writeln('>> ENTRY DATA PELANGGAN HOTEL <<');
writeln('--------------------------------------------------');
write('Nama Pelanggan : ');readln(nama);
write('Alamat Pelanggan : ');readln(alt);
write('Tanggal Masuk : ');readln(tgl);
write('Kode Kamar : ');readln(kode_k);
if (kode_k = '1') then
begin
jns_k := 'VIP 1';
trf_k := 125000;
end
else if (kode_k = '2') then
begin
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 47
jns_k := 'VIP 2';
trf_k := 100000;
end
else if (kode_k = '3') then
begin
jns_k := 'VIP 3';
trf_k := 95000;
end
else if (kode_k = '4') then
begin
jns_k := 'Kelas';
trf_k := 75000;
end
else
begin
jns_k := ' ';
trf_k := 0;
end;
writeln('Jenis Kamar : ',jns_k);
writeln('Tarif Kamar : Rp. ',trf_k);
write('Nomor Kamar : ');readln(no_k);
write('Lama Menginap : ');readln(lama);
if lama > 4 then
disc := 0.1 * trf_k * lama
else
disc := 0;
jml_bayar := lama * trf_k - disc;
writeln;
writeln('Nama Pelanggan : ',nama);
writeln('------------------------------------------------------------------');
writeln('Jns_Kamar Trf_Kamar Lm_Inap Discount Jml_Bayar');
writeln('------------------------------------------------------------------');
writeln(jns_k,' ',trf_k,' ',lama,' ',disc:8:0,' ',jml_bayar:9:0);
writeln('------------------------------------------------------------------');
readln;
end.

4. Sebuah perusahaan air minum (PDAM) ingin menghitung rekening/ jumlah tagihan
yang harus dibayar pelanggan tiap bulannya, format output/tampilan yang
diinginkan adalah sebagai berikut :
Disain Input
PDAM DAERAH X
DAFTAR PEMAKAIAN AIR/M3
--------------------------------------------
Nomor Rekening : ..........
Nama Pelanggan : ..........
Kode Wilayah : ..........

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 48
Jenis Pelanggan : ..........
Meter Bulan Lalu : ..........
Meter Bulan Ini : ..........

Bentuk Output
PDAM DAERAH X
DAFTAR PEMBAYARAN REKENING AIR
Nomor Rekening :
Nama Pelanggan :
---------------------------------------------------------------------------------------
MBA MBI Terpakai Hrg_Air Dana_M Dana_Adm Jml_Tagih
---------------------------------------------------------------------------------------
999 999 999 9999 9999 9999 999999
---------------------------------------------------------------------------------------
Ketentuan Proses :
- Jumlah pemakaian air, Pakai = MBA – MBI
- Harga air perkubik diperoleh dari :
Jika jenis langganan = ‘1’ maka harga air = 150 perkubik
Jika jenis langganan = ‘2’ maka harga air = 200 perkubik
Jika jenis langganan = ‘3’ maka harga air = 250 perkubik
Jika jenis langganan = ‘4’ maka harga air = 275 perkubik
- Dana administrasi dan dana meteran diperoleh berdasarkan kode wilayah :
Jika kode wilayah = ‘a’ maka dana_adm = 1500, dana_m = 850
Jika kode wilayah = ‘b’ maka dana_adm = 1750, dana_m = 1000
Jika kode wilayah = ‘c’ maka dana_adm = 2000, dana_m = 1500
Jika kode wilayah = ‘d’ maka dana_adm = 2500, dana_m = 2000
- Jumlah tagihan = pemakaian * harga air + dana_m + dana_adm
Ketentuan Variabel yang digunakan :
Untuk definisi variabel yang digunakan ditentukan sendiri !

Program menghitung_jumlah_tagihan_pemakaian_air;
uses crt;
var
no_rek : string[6];
nm_lang : string[25];
kd_wil,jns_lang : char;
mba,mbi,i,pakai,hrg_air,dana_m,dana_adm : integer;
jml_tagih : longint;
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 49
begin
clrscr;
gotoxy(2,2);write('PDAM DAERAH');
gotoxy(2,3);write('DAFTAR PEMAKAIAN AIR/M3');
gotoxy(2,4);write('---------------------------------------');
gotoxy(2,6);write('Nomor Rekening : ');readln(no_rek);
gotoxy(2,7);write('Nama Pelanggan : ');readln(nm_lang);
gotoxy(2,8);write('Kode Wilayah : ');readln(kd_wil);
gotoxy(2,9);write('Jenis Pelanggan : ');readln(jns_lang);
gotoxy(2,10);write('MBA : ');readln(mba);
gotoxy(2,11);write('MBI : ');readln(mbi);
pakai:=mba-mbi;
case jns_lang of
'1' : hrg_air := 150;
'2' : hrg_air := 200;
'3' : hrg_air := 250;
'4' : hrg_air := 275;
end;
case kd_wil of
'a','A' : begin
dana_m := 850;
dana_adm := 1500;
end;
'b','B' : begin
dana_m := 1000;
dana_adm := 1750;
end;
'c','C' : begin
dana_m := 1500;
dana_adm := 2000;
end;
'd','D' : begin
dana_m := 2000;
dana_adm := 2500;
end;
end;
jml_tagih := pakai * hrg_air + dana_m + dana_adm;
clrscr;
gotoxy(2,5);write('PDAM DAERAH X');
gotoxy(2,6);write('DAFTAR REKENING');
gotoxy(2,8);write('Nomor Rekening : ',no_rek);
gotoxy(2,9);write('Nama Langganan : ',nm_lang);
gotoxy(2,10);write('---------------------------------------------------------------------------
-');
gotoxy(2,11);write('MBA MBI Terpakai Harga_Air Dana_M Dana_Adm
Jml_Tagihan');
gotoxy(2,12);write('---------------------------------------------------------------------------
-');
gotoxy(3,13);write(mba:4);
gotoxy(9,13);write(mbi:4);
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 50
gotoxy(16,13);write(pakai:4);
gotoxy(28,13);write(hrg_air);
gotoxy(37,13);write(dana_m);
gotoxy(46,13);write(dana_adm);
gotoxy(56,13);write(jml_tagih);
gotoxy(2,14);write('---------------------------------------------------------------------------
-');
readkey;
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 51
BAB VI
STRUCTURE LOOP (STATEMENT FOR / WHILE / REPEAT)

Pernyataan pengulangan (looping) merupakan pernyataan yang berfungsi untuk mengeksekusi


suatu pernyataan lain secara berulang-ulang, dengan jumlah pengulangan tergantung dari
persyaratan yang diberikan. Dalam Turbo Pascal, proses pengulangan ini dimungkinkan
dengan disediakannya berbagai perintah loop, dimana setiap perintah loop memiliki
keunikannya sendiri.
Dalam Turbo Pascal terdapat 3 macam struktur pengulangan (loop) :
1. Struktur For
2. Struktur While
3. Struktur Repeat .. Until

6.5 STRUKTUR FOR


Bentuk umum pernyataan For adalah sebagai berikut :

Perulangan positif (counter naik setiap dilakukan perulangan)


For <variabel> := <nilai_awal> to <nilai_akhir> do
Begin


Statement ;


End;

Perulangan negatif (counter mundur/turun setiap perulangan)


For <variabel> := <nilai_awal> downto <nilai_akhir> do
Begin


Statement ;


End;

Argument dari pernyataan For terdiri dari tiga bagian : variabel, nilai_awal dan
nilai_akhir.
Variabel merupakan nama variabel untuk menampung nilai awal dan nilai akhir dari
suatu pengulangan.
Nilai awal merupakan nilai awal pengulangan dilakukan
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 52
Nilai akhir adalah nilai batas maksimum pengulangan
Baik variabel, nilai_awal maupun nilai_akhir harus memiliki type data yang sama atau
kompatibel, dan tipe yang digunakan adalah dalam bentuk tipe integer (bilangan bulat)
dan tipe char (karakter).

Contoh :
1. Program untuk menampilkan bilangan 1 hingga 5 serta total dari seluruh bilangan
tersebut.
{ Contoh Program Penggunaan For secara manaik }
Uses crt
Var
i, tot : integer;
Begin
clrscr;
tot := 0;
For i := 1 to 5 do
begin
writeln(i);
tot := tot + i;
end;
writeln(‘-----‘);
writeln(tot);
readln;
end.

Jika program diatas dijalankan maka diperoleh hasil sebagai berikut :


1
2
3
4
5
----
15

2. Program untuk menampilkan bilangan 10 hingga 1 serta total dari seluruh bilangan
tersebut.
{ Contoh Program Penggunaan For secara menurun }
Uses crt
Var
i, tot : integer;
Begin
clrscr; tot := 0;
For i := 10 downto 1 do
begin

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 53
writeln(i);
tot := tot + i;
end;
writeln(‘-----‘);
writeln(tot);
readln;
end.

Output program diatas :


10
9
8
7
6
5
4
3
2
1
----
55

6.6 STRUKTUR WHILE


Pengulangan dengan While merupakan suatu bentuk pengulangan yang mirip dengan
For, namun dengan bentuk yang lebih sederhana. Pernyataan While ini merupakan
pengulangan yang dikendalikan oleh suatu syarat tertentu, dalam arti pengulangan akan
terus dilaksanakan selama syarat tersebut terpenuhi.
Bentuk umum pernyataan while :

While <syarat> do
Begin


Statement ;


End;

Contoh :
1. Program untuk menampilkan bilangan bulat 1 hingga 8 beserta totalnya.
{ Contoh Program Penggunaan While }

Uses crt
Var
tot, i : integer;
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 54
Begin
clrscr;
tot := 0; i := 1;
while i <= 8 do
begin
tot := tot + i;
writeln(i,’ ‘,tot);
i := i + 1;
end;
end.

Jika program diatas dijalankan maka diperoleh output sebagai berikut :


1 1
2 3
3 6
4 10
5 15
6 21
7 28
8 36

6.7 STRUKTUR REPEAT .. UNTIL


Pada statement Repeat..Until pengulangan akan dieksekusi selama kondisi tidak
terpenuhi.
Bentuk umum pernyataan Repeat..Until :

Repeat


Statement ;


Until <Kondisi>

Dimana kondisi merupakan sebuah ekspresi boolean. Jika kondisi bernilai true maka
perulangan akan dihentikan dan statement tidak dijalankan lagi, dan sebaliknya jika
kondisi bernilai false statement dijalankan lagi.
Contoh :
1. Program untuk menampilkan bilangan bulat 1 hingga 8 beserta totalnya.
{ Contoh Program Penggunaan Repeat..Until }
Uses crt
Var

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 55
tot, i : integer;
Begin
clrscr;
tot := 0; i := 1;
repeat
tot := tot + i;
writeln(i,’ ‘,tot);
i := i + 1;
until i > 8 ;
readln;
end.

Jika program diatas dijalankan maka diperoleh output sebagai berikut :


1 1
2 3
3 6
4 10
5 15
6 21
7 28
8 36

6.8 LATIHAN
1. Buatlah sebuah program untuk menghitung total bilangan genap yang terletak
diantara 0 sampai dengan 20
Program menghitung_total_bilangan_genap;
uses crt;
var
i,tot : integer;
begin
clrscr;
tot := 0;
for i := 0 to 20 do
begin
if (i mod 2 = 0) then
begin
tot := tot + i;
writeln(i,' ',tot);
end;
end;
readkey;
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 56
2. Buatlah sebuah program untuk menghitung total bilangan ganjil yang terletak
diantara 0 sampai dengan 20
Program menghitung_total_bilangan_ganjil;
uses crt;
var
i,tot : integer;

begin
clrscr;
tot := 0;
for i := 0 to 20 do
begin
if (i mod 2 <> 0) then
begin
tot := tot + i;
writeln(i,' ',tot);
end;
end;
readkey;
end.

3. Hitunglah nilai faktorial sebuah bilangan bulat positif, bila rumus untuk faktorial
adalah sebagai berikut :
Faktorial dari n (n!) = n*(n-1)*…*2*1
Misalnya : 3 ! = 3*2*1 = 6
4 ! = 4*3*2*1=24
Khusus untuk 0 ! = 1
Input : Bilangan bulat
Output : Faktorial

Program menghitung_nilai_faktorial;
uses crt;
var
fak, i, nilai : integer;
begin
clrscr;
nilai := 1;
write('Input Sebuah Bilangan : ');readln(fak);
for i := fak downto 1 do
nilai := nilai * i;
writeln('Nilai Faktorial dari ',fak,' = ',nilai);
readkey;
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 57
4. Buatlah sebuah program untuk menghitung gaji harian pegawai, serta total gaji yang
dibayarkan oleh PT. MAKMUR kepada para karyawannya, bila gaji seorang
karyawan ditentukan sebagai berikut :
Gaji per jam = 750
Bila jumlah jam kerja hari itu > 8 jam, maka kelebihannya dihitung lembur
yang besarnya 1.5 x gaji per jam
Seluruh karyawan PT. MAKMUR berjumlah 10 orang
Sebagai input : Jumlah jam kerja setiap pegawai
Sebagai output : gaji harian pegawai dan total gaji seluruh pegawai

Program menghitung_jumlah_gaji_perjam;
uses crt;
var
jam_kerja, gaji : longint;
total_gaji : real;
mad : char;
begin
clrscr;
mad := 'Y';
gaji := 15000;
while (upcase(mad)='Y') do
begin
clrscr;
write('Input Jumlah Jam Kerja : ');readln(jam_kerja);
if (jam_kerja > 8) then
total_gaji := gaji * 8 + (jam_kerja - 8)*1.5*gaji
else
total_gaji := gaji * jam_kerja;
writeln;
writeln('Gaji Harian : ',total_gaji:8:0);
writeln;write('Masih Ada Data [Y/T] : ');mad:=readkey;
if (upcase(mad)='T') then
exit;
end;
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 58
BAB VII
ARRAY

Array merupakan kelompok data sejenis, yang disimpan ke dalam variabel dengan nama yang
sama, hanya sekarang variabel-variabel ini diberi indeks untuk membedakan antara yang satu
dengan yang lainnya.

7.6 DEKLARASI VARIABEL ARRAY


Struktur variabel array satu dimensi ditulis sebagai berikut :

type
tipe_array = array [range_indeks] of tipe_data ;
var
variabel_array : tipe_array;

atau dapat langsung di tulis :

var
variabel_array : array [range_indeks] of tipe_data;

variabel_array adalah nama variabel yang dipakai untuk mengidentifikasi array.


Range-indeks adalah batasan indeks yang digunakan untuk mengidentifikasi elemen
array. Range_indeks menentukan jumlah elemen array, yang jumlahnya
tidak akan berubah mulai saat awal program dijalankan sampai program
selesai dijalankan.
Tipe_data adalah tipe data untuk elemen array. Tipe data untuk elemen array dapat
berupa integer, char, boolean, enumerasi (yang termasuk tipe data ordinal
kecuali tipe data real atau double) dan dapat juga berupa tipe data terstruktur
seperti array.

Contoh :
1. type
data_nilai = array [1..10] of integer;
var
nilai : data_nilai;
atau
var nilai : array [1..10] of integer;

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 59
2. Penggunaan tipe data enumerasi buatan user
type
nilai_aksara = (a, b, c, d, e, f, g, h);
var
huruf : array [nilai_aksara] of boolean;

7.7 ARRAY SATU DIMENSI


Struktur array satu dimensi memiliki satu macam indeks yang dituliskan seperti berikut
ini :
type
tipe_array = array [range_indeks] of tipe_data ;
var
variabel_array : tipe_array;
atau
var
variabel_array : array [range_indeks] of tipe_data;
Contoh :
1. { Contoh Program Penggunaan Array Satu Dimensi }
Uses crt
Var
i, jml : integer;
bil : array [1..100] of integer;
Begin
clrscr;
write(‘Input Jumlah Pengulangan : ‘); readln(jml);
For i := 1 to jml do
begin
write(‘Bilangan ke_’,i,’ = ‘);readln(bil[i]);
end;
For i := 1 to jml do
begin
writeln(‘Bilangan ke_’,i,’ = ‘,bil[i]);
end;
readln;
end.

2. { Program Mencari Nilai Maksimum dan Minimum }


Uses crt;
Var
mak,min : integer;
bil : array [1..50] of integer;
i,jml : byte;
Begin
clrscr;
write('Input Jumlah Data : ');readln(jml);
For i:= 1 to jml do
begin
write('Nilai ke_',i,' = ');readln(bil[i]);
end;
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 60
mak:=0; min:=20000;
For i:= 1 to jml do
begin
if bil[i] > mak then
mak := bil[i];
if bil[i] < min then
min := bil[i];
end;
writeln;writeln('Nilai Maksimum = ',mak);
writeln;writeln('Nilai Minimum = ',min);
readkey;
end.

7.8 ARRAY DUA DIMENSI


Struktur array dua dimensi memiliki dua macam range indeks yang dituliskan seperti
berikut ini :

type
tipe_array = array [range_indeks1] of [range_indeks2] of
tipe_data ;
atau
tipe_array = array [range_indeks1, range_indeks2] of
tipe_data ;
var
variabel_array : tipe_array;

atau dapat langsung di tulis :

var
variabel_array : array [range_indeks1] of [range_indeks2]
of tipe_data;
atau
variabel_array : array [range_indeks1, range_indeks2] of
tipe_data ;

Range_indeks1 menunjukkan jumlah atau nomor baris, sedangkan range_indeks2


menunjukkan jumlah atau nomor kolom.
1 2 3 4 5
1

[2,5] … baris 2 kolom 5


2

3
[3,4] … baris 3 kolom 4
4

Range_indeks1 = [1..4]

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 61
Contoh :
Program array_dimensi_dua;
Uses crt;
Const
jml = 100;
Var
nama : array [1..jml] of string[25];
bp : array [1..jml] of string[8];
nilai : array [1..jml, 1..jml] of real;
jms,i,j,col : integer;
tot,rata : real;
mad : char;
Begin
clrscr;
mad := 'Y';
Repeat
write('Input Jumlah Mahasiswa : ');readln(jms);
writeln;
For i:=1 to jms do
begin
write(i:2,' Nama Mahasiswa : ');readln(nama[i]);
write(' Nomor Bp : ');readln(bp[i]);
writeln;
For j:=1 to 4 do
begin
write(' Nilai ke_',j, ' = ');readln(nilai[i,j]);
end;
writeln;
end;
mad:='T';
Until upcase(mad)='T';
clrscr;
gotoxy(2,04);write('>> DAFTAR NILAI TEST MAHASISWA <<');
gotoxy(2,07);write('---------------------------------------------------------------------');
gotoxy(2,08);write(' No Nama Mahasiswa No. Bp Nilai Test Rata-rata');
gotoxy(2,09);write(' 1 2 3 4 ');
gotoxy(2,10);write('---------------------------------------------------------------------');
For i:=1 to jms do
begin
tot:=0;col:=29;
gotoxy(4,10+i);write(i:2);
gotoxy(8,10+i);write(nama[i]);
gotoxy(25,10+i);write(bp[i]);
For j:=1 to 4 do
begin
col := col + 6;
gotoxy(col,10+i);write(nilai[i,j]:2:2);
tot := tot + nilai[i,j];
end;
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 62
rata := tot / 4;
gotoxy(61,10+i);write(rata:2:2);
writeln;
end;
gotoxy(2,11+i);write('--------------------------------------------------------------------');
gotoxy(2,12+i);write('Press anykey ...exit !!!'); readln;
end.

7.9 ARRAY MULTI DIMENSI


Struktur array tiga atau multi dimensi dinyatakan dengan tiga buah atau lebih jumlah
indeksnya.
Bentuk umum penulisan :

var
variabel_array : array [range_indeks1, range_indeks2,
range_indek_n] of tipe_data ;

Contoh :
Program array_multi_dimensi;
Uses crt;
Const
jml = 50;
Var
nama : array [1..jml] of string[25];
bp : array [1..jml] of string[8];
mtk : array [1..jml, 1..20] of string[25];
nilai : array [1..jml, 1..20, 1..3] of real;
jsim : array [1..jml] of byte;
ket : string[20];
jms,i,j,k,col : integer;
tot,rata : real;
mad,mad1,mad2 : char;
Begin
clrscr;
mad := 'Y';
Repeat
write('Input Jumlah Mahasiswa : ');readln(jms);
writeln;
For i:=1 to jms do
begin
clrscr;
write(i:2,' Nama Mahasiswa : ');readln(nama[i]);
write(' Nomor Bp : ');readln(bp[i]);
writeln;
mad1:='Y';j:=1;
while upcase(mad1)='Y'do
begin

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 63
write(' Matakuliah : ');readln(mtk[i,j]);
For k:=1 to 3 do
begin
case k of
1 : ket := ' Nilai Mid : ';
2 : ket := ' Nilai Sem : ';
3 : ket := ' Lain-lain : ';
end;
write(ket);readln(nilai[i,j,k]);
end;
writeln;
write('Ada matakuliah lagi [Y/T] : ');readln(mad1);
writeln;
if upcase(mad1)='Y' then
inc(j);
jsim[i]:=j;
end;
end;
mad:='T';
Until upcase(mad)='T';
clrscr;

For i:=1 to jms do


begin
gotoxy(2,02);write('>> DAFTAR NILAI MAHASISWA <<');
gotoxy(2,04);write('Nama Mahasiswa : ',nama[i]);
gotoxy(2,05);write('Nomor Bp. : ',bp[i]);
gotoxy(2,07);write('-----------------------------------------------------------------');
gotoxy(2,08);write(' No Matakuliah Nilai Rata-rata');
gotoxy(2,09);write(' MID SEM Lain ');
gotoxy(2,10); write('----------------------------------------------------------------');
For j:=1 to jsim[i] do
begin
tot:=0;col:=29;
gotoxy(2,10+j);write('|');
gotoxy(4,10+j);write(j:2);
gotoxy(7,10+j);write('|');
gotoxy(8,10+j);write(mtk[i,j]);
gotoxy(34,10+j);write('|');
For k:=1 to 3 do
begin
col := col + 6;
gotoxy(col,10+j);write(nilai[i,j,k]:2:2);
gotoxy(col+5,10+j);write('|');
tot := tot + nilai[i,j,k];
end;
rata := tot / 4;
gotoxy(55,10+j);write(rata:2:2);
gotoxy(62,10+j);write('|'); writeln;
end;
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 64
gotoxy(2,11+j);write('--------------------------------------------------------------');
gotoxy(2,12+j);write('Press anykey ... !');
readln;
clrscr;
end;
end.

7.10 MENGURUTKAN ARRAY


Proses lainnya yang cukup penting untuk dipelajari adalah mengurutkan array.
Sebenarnya cukup banyak metode yang digunakan untuk mengurutkan array. Namun
pada bab ini hanya dibahas metode bubble sort. Bubble sort dipilih karena metode ini
memiliki logika yang mudah di ikuti dan lebih sederhana dibandingkan dengan metode
pengurutan lainnya.

BUBBLE SORT
Untuk mempermudah memberikan gambaran tentang proses bubble sort, maka disini
akan dijelaskan lewat suatu contoh. Misalkan anda memiliki empat buah bilangan yang
akan diurutkan mulai dari bilangan terkecil sampai bilangan terbesar.

Langkah-langkah pelaksanaan pengurutan dengan metode bubble sort :


Langkah Pertama : bandingkan bilangan pertama dengan bilangan-bilangan yang lain.
Bila bilangan-bilangan yang lain lebih kecil dari pada bilangan
pertama, maka akan dilakukan penukaran tempat antara bilangan
pertama dengan bilangan tadi

Langkah Kedua : Membandingkan bilangan kedua dengan bilangan-bilangan yang


terletak dibawahnya (bilangan ketiga, keempat, dst). Jika bilangan-
bilangan tersebut lebih kecil dari pada bilangan kedua, maka akan
dilakukan pertukaran tempat.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 65

Langkah Ketiga : bandingkan bilangan ketiga dengan bilangan-bilangan dibawahnya


(bilangan keempat). Penukaran tempat akan dilakukan bila bilangan-
bilangan lain lebih kecil daripada bilangan ketiga.

Dari penjelasan diatas, maka dapat dibuat suatu bagan alir (flow chart) metode bubble
sort sebagai berikut :

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 66
Contoh :
uses crt;
Var
i,j,jml : byte;
bil1,bil2 : array [1..20] of byte;
carry : byte;
Begin
clrscr;
write('Input Jumlah Data : ');readln(jml);
writeln;
For i:=1 to jml do
begin
write(' Bilangan ke_',i,' = ');readln(bil1[i]);
bil2[i]:=bil1[i];
end;
writeln;
writeln('Bilangan Setelah Diurut');
writeln('-----------------------');
For i:=1 to jml do
begin
For j:=1 to jml-1 do
begin
if bil1[i] < bil1[j] then
begin
carry := bil1[i];
bil1[i]:=bil1[j];
bil1[j]:=carry;
end;
end;
end;
For i:=1 to jml do
begin
For j:=1 to jml-1 do
begin
if bil2[i] > bil2[j] then
begin
carry := bil2[i];
bil2[i]:=bil2[j];
bil2[j]:=carry;
end;
end;
end;
writeln;write(' Dari Terkecil hingga Terbesar :');
For i:=1 to jml do
begin
write(bil1[i]:4);
end;
writeln;writeln;
write(' Dari Terbesar hingga Terkecil :');

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 67
For i:=1 to jml do
begin
write(bil2[i]:4);
end;
readkey;
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 68
BAB VIII
PROSEDUR DAN FUNGSI

Program yang anda susun dalam Turbo Pascal sebenarnya merupakan kumpulan dari fungsi.
Fungsi-fungsi ini dapat berupa fungsi yang telah disediakan oleh Turbo Pascal dalam
librarynya, seperti write() atau writeln, read() atau readln(), ataupun fungsi yang dapat anda
buat sendiri.

8.9 SIFAT-SIFAT DAN MANFAAT PROSEDUR/FUNGSI


Penggunaan prosedur atau fungsi akan memberikan beberapa manfaat yang antara lain
adalah :
1. Menghindari penulisan yang berulang.
2. Prosedur atau Fungsi akan membagi program anda menjadi modul-modul yang lebih
kecil, dengan demikian program yang panjang dan kompleks, dapat disederhanakan
menjadi modul-modul yang lebih relatif pendek dan mudah.
3. Setiap prosedur atau fungsi memiliki tingkatan yang sama dan berdiri sendiri.
Dengan demikian prosedur atau fungsi ini dapat dipanggil dari sembarang prosedur
atau fungsi yang lain dengan mudah.
4. Prosedur dapat menghasilkan data, dan Fungsi dapat menghasilkan nilai.

8.10 PARAMETER (ARGUMEN)


Parameter merupakan suatu mekanisme untuk melewatkan nilai atau variabel ke dalam
subprogram. Dengan parameter ini, pemberian nilai awal atau nama variabel yang
berbeda terhadap subprogram dapat dilakukan.

Parameter dapat dibedakan atas dua macam :


1. Parameter Formal
Merupakan parameter yang terdapat dalam kepala subprogram. Parameter formal
dapat berupa Parameter Nilai atau Parameter Variabel. Parameter nilai adalah
parameter yang nilainya tidak berubah sekeluarnya dari subprogram. Nilai dari
parameter aktualnya tidak akan berubah ketika keluar dari subprogram, meskipun
ada pernyataan dalam subprogram yang mengubahnya. Parameter variabel adalah
parameter yang nilainya dapat berubah sekeluarnya dari subprogram. Untuk jenis

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 69
parameter variabel ini, parameter aktual dalam pemanggilan subprogram harus
berupa suatu variabel.
Sebagai ilustrasi bandingkan hasil/output kedua program berikut :
1. uses crt;
var
a,b,c : integer;
Procedure hitung(x,y,z : integer);
begin
z := x + y;
writeln('Hasil x + y = ',z);
end;

Begin
clrscr;
a:=3; b:=4; c:=8;
hitung(a,b,c);
writeln('Hasil a + b = ',c);
readkey;
End.

2. uses crt;
var
a,b,c : integer;

Procedure hitung(var x,y,z : integer);


begin
z := x + y;
writeln('Hasil x + y = ',z);
end;

Begin
clrscr; a:=3; b:=4; c:=8;
hitung(a,b,c);
writeln('Hasil a + b = ',c);
readkey;
End.

2. Parameter Aktual
Parameter aktual merupakan parameter yang diberikan apabila prosedur atau fungsi
dipanggil.

8.11 VARIABEL GLOBAL


Dengan mendefenisikan suatu Variabel Global, diharapkan variabel tersebut akan
dikenal oleh beberapa prosedur atau fungsi sehingga dapat digunakan bersama-sama
tanpa harus dideklarasikan berulang-ulang.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 70
8.12 VARIABEL LOKAL
Variabel-variabel yang di deklarasikan di dalam suatu prosedur atau fungsi tertentu di
kenal dengan nama Variabel Lokal. Disebut Lokal karena hanya dikenal oleh prosedur
atau fungsi yang bersangkutan sedangkan prosedur atau fungsi lain sama sekali tidak
mengenal variabel ini.
Contoh penggunaan variabel global dan variabel lokal :
uses crt;
var
a,b,c : integer;

Procedure hitung(x,y,z : integer);


var i, j : integer;
begin
i:=x;j:=z;
a := i + j; z := x + y;
writeln('Hasil x + y = ',z);
wtiteln(‘Hasil i + j = ‘,a);
end;

Begin
clrscr; a:=3; b:=4; c:=8;
hitung(a,b,c);
writeln('Hasil a + b = ',c);
readkey;
End.

Dari contoh program diatas variabel a, b, c merupakan variabel global sedangkan


variabel i, j merupakan variabel lokal karena hanya dikenal oleh prosedur tempat
variabel tersebut di deklarasikan.

8.13 PROSEDUR
Prosedur (Procedure) adalah serangkaian statement yang digunakan untuk
memecahkan sebuah masalah. Prosedur harus dideklarasikan terlebih dahulu sebelum
dipanggil ata digunakan. Pascal juga menyediakan beberapa prosedur Built-in yang
langsung dapat digunakan, misalnya inc() dan dec(), yang masing-masing digunakan
untuk menambah atau mengurang 1 (satu) pada sebuah bilangan integer yang menjadi
parameternya.

8.13.1 PENDEKLARASIAN PROSEDUR


Prosedur mempunyai nama dan baris-baris statement yang merupakan
implementasi prosedur tersebut. Sebuah prosedur juga dapat mempunyai satu
atau lebih variabel. Deklarasi prosedur memiliki struktur yang hampir sama

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 71
dengan program utama. Di dalamnya bisa saja mengandung deklarasi Const,
Var, Type, Label dan bahkan subprogram lainnya.
Bentuk umum penulisan deklarasi prosedur :

Procedure <nama_prosedur> (parameter_input; var


parameter _output);
<bagian deklarasi variabel)
Begin
<statement>;
<statement>;
End;

Sebuah prosedur tidak harus mempunyai parameter atau dengan kata lain
prosedur tanpa parameter.
Prosedur dengan parameter dapat di bagi menjadi dua, yaitu :
1. Prosedur dengan Parameter Nilai (Value Parameter) atau mempunyai
parameter input. Prosedur ini tidak mengirimkan nilai.
2. Prosedur dengan Parameter Variabel (Variabel Parameter) atau
mempunyai parameter output. Prosedur ini dapat mengirimkan nilai.

8.13.2 PEMANGGILAN PROSEDUR


Prosedur dapat dipanggil dengan cara menuliskan nama prosedur dan
parameternya atau dapat juga tanpa menyertakan parameternya, cukup dengan
menuliskan nama prosedurnya saja.
Contoh program pemanggilan prosedur :
uses crt;
var
a,b,c : integer;
procedure judul;
begin
writeln('Contoh Program Pemanggilan Prosedur');
writeln('------------------------------------------------');
end;
procedure hitung(x,y : integer; var z : integer);
var i, j : integer;
begin
i := x; j := y;
a := i * j;
z := x + y;
writeln('Hasil x + y = ',z);
writeln('Hasil i * j = ',a);
end;

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 72
begin
clrscr;
a:=3; b:=4; c:=8;
judul;
hitung(a,b,c);
writeln('Hasil a + b = ',c);
readkey;
end.

8.14 FUNGSI
Konsep fungsi dalam pascal hampir sama dengan konsep fungsi dalam matematika.
Sebuah fungsi digunakan untuk menghitung sebuah nilai berdasarkan satu atau beberapa
nilai masukan.
Seperti halnya prosedur, fungsi juga mempunyai nama dan parameter. Fungsi harus
dideklarasikan terlebih dahulu sebelum dipanggil atau digunakan.
Pascal juga menyediakan beberapa fungsi built-in yang langsung dapat digunakan,
seperti fungsi ord() untuk menentukan urutan atau nilai ordinal sebuah karakter, atau
fungsi sqrt() untuk menghitung akar kuadrat sebuah bilangan.

8.14.1 PENDEKLARASIAN FUNGSI


Fungsi memiliki struktur yang hampir sama dengan prosedur. Perbedaannya,
nama prosedur tidak bertipe, sedangkan nama fungsi memiliki tipe.
Bentuk umum penulisan deklarasi fungsi :

Function (nama_fungsi> (parameter) : tipe_hasil :


<bagian deklarasi variabel)
Begin
<statement>;
<statement>;
End;

Aturan penamaan fungsi sama dengan aturan penamaan variabel. Sebuah fungsi
tidak harus mempunyai parameter dan tipe-hasil. Nilai yang dapat dikirim oleh
suatu fungsi hanya satu. Jika kita ingin mengirim lebih dari satu nilai maka
harus dibuat lebih dari satu fungsi lagi. Pada bagian statement fungsi harus
dituliskan statement yang menghasilkan hasil dengan memberi harga kepada
nama_fungsi dengan hasil atau nilai yang dikirimkan atau dihitung oleh fungsi
tersebut.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 73
8.14.2 PEMANGGILAN FUNGSI
Sebuah fungsi dipanggil dengan menuliskan nama fungsi dan parameternya.
Contoh program pemanggilan suatu fungsi :
uses crt;
var
a,b,c : integer;
function hitung(x,y : integer ) : integer;
begin
hitung := x + y;
writeln('Hasil i * j = ',a);
end;

begin
clrscr; a:=3; b:=4;
c := hitung(a,b);
writeln('Hasil a + b = ',c);
end.

8.15 REKURSI
Rekursi merupakan suatu subprogram yang bisa memanggil dirinya sendiri. Rekursi
banyak dipakai pada persoalan yang dapat dipecahkan secara induktif. Misalnya untuk
menghitung bilangan faktorial dan fibonacci.
Contoh :
1. Menghitung nilai faktorial
Faktorial 4 atau 4 ! = 4 * 3 * 2 *1
Langkah-langkahnya :
4! =4*3!
=3*2!
=2*1!
1=1
0!=1
Faktorial 0 = 1
Fakt(n) = n * fakt(n-1)

{ Program menghitung nilai faktorial }


uses crt;
var
nl,i : integer;

function fakt(n : integer) : integer;

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 74
begin
if n = 1 then
fakt := 1
else
fakt := n * fakt(n-1);
end;

begin
clrscr;
write('Input Nilai Faktorial : ');readln(nl);
writeln;
for i:= 1 to nl do
begin
writeln('Nilai Faktorial dari ',i,' = ',fakt(i));
end;
readln;
end.

2. Menghitung deret fibonacci ( 1 1 2 3 5 8 13 … dst)


Fibo 1 = 1
Fibo 2 = 1
Fibo(n) = fibo(n-1) + fibo(n-2)

{ Program menghitung deret fibonacci }


uses crt;
var
nl,i : integer;

function fibo(n : integer) : integer;


begin
if (n = 1) or (n = 2) then
fibo := 1
else
fibo := fibo(n-1) + fibo(n-2);
end;

begin
clrscr;
write('Input Deret Fibonacci : ');readln(nl);
writeln;
for i := 1 to nl do
begin
writeln('Nilai Fibonacci dari ',i,' = ',fibo(i));
end;
readln;
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 75
8.16 LATIHAN
1. Buatlah program untuk menampilkan Laporan Penumpang pada PT. Angkutan
Kerinci.
Dengan Ketentuan Proses :
- Barang yang dikenakan biaya jika berat barang melebihi 10 Kg dengan tarif
barang Rp. 750 per kilo gramnya.
- Nama tujuan dan tarif diperoleh berdasarkan data-data sbb :
Kode Tujuan Nama Tujuan Tarif
P Padang Rp. 65.000
J Jambi Rp. 75.000
G Palembang Rp. 85.000
K Jakarta Rp. 125.000
B Bandung Rp. 200.000
M Medan Rp. 90.000
T Bukit Tinggi Rp. 75.000

- Ongkos Barang = Berat Barang x 750


- Discount diperoleh dari :
Jika Jumlah berangkat > 3 orang dengan tujuan Padang, Bukit Tinggi atau Jambi
maka diberi discount 10% dari tarif
Jika Jumlah berangkat > 3 orang dengan tujuan Palembang atau Medan maka
diberi discount 25% dari tarif
Jika Jumlah berangkat > 3 orang dengan tujuan Jakarta atau Bandung maka diberi
discount 35% dari tarif
- Jumlah Bayar=Tarif * jumlah berangkat + Ongkos Barang - Discount

Bentuk Input :
PT. ANGKUTAN KERINCI
ENTRY DATA PENUMPANG

Nama Penumpang : ……………….


Jumlah Berangkat : ……………….
Nomor Tiket : ……………….
Kode Tujuan : ……………….
Nama Tujuan : [tampil berdasarkan kode tujuan]
Tarif : [tampil berdasarkan kode tujuan]
Berat Barang : ……………….

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 76
Bentuk LAY-OUT (tampilan) :
PT. ANGKUTAN KERINCI
LAPORAN PENUMPANG
Ongkos Barang : 750 / Kg
Nomor Nama Berat Barang Ongkos
No Tujuan Tarif
Tiket Penumpang (Kg) Barang
1 xxx xxxxxxx xxxxx 999 999999 999999

Total Pembayaran 999999

Ada Data Lagi [Y/T] : …


{ Program contoh penggunaan prosedur dan fungsi }
uses crt;
type
ukuran = string[15];
var
nama_p : string[20]; nama_t : ukuran;
notik : string[6]; jml_b : integer;
tarif, ong_b, brt_b : longint;
kode_t, mad : char; disc, jml_bayar : real;

procedure tujuan(kode_x : char ; var xtujuan : ukuran; var trf : longint);


begin
case kode_x of
'P', 'p' : begin
xtujuan := 'Padang';
trf := 65000;
end;
'J', 'j' : begin
xtujuan := 'Jambi';
trf := 75000;
end;
'G', 'g' : begin
xtujuan := 'Palembang';
trf := 85000;
end;
'K', 'k' : begin
xtujuan := 'Jakarta';
trf := 125000;
end;
'B', 'b' : begin
xtujuan := 'Bandung';
trf := 200000;
end;
'M', 'm': begin
xtujuan := 'Medan';
trf := 90000;
end;
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 77
'T', 't' : begin
xtujuan := 'Bukit Tinggi';
trf := 75000;
end;
end;
end;
function hitung_diskon(jml : integer ; kode_x : char ; trf : longint) : real;
begin
case kode_x of
'P','p','T','t','J','j' :
begin
if jml > 3 then
hitung_diskon := 0.1 * trf
else
hitung_diskon := 0;
end;
'G','g','M','m' :
begin
if jml > 3 then
hitung_diskon := 0.25 * trf
else
hitung_diskon := 0;
end;
'K','k','B','b' :
begin
if jml > 3 then
hitung_diskon := 0.35 * trf
else
hitung_diskon := 0;
end;
end;
end;
begin
mad := 'Y';
while (upcase(mad)='Y') do
begin
clrscr;
gotoxy(15,2);write('PT. ANGKUTAN KERINCI');
gotoxy(15,3);write('ENTRY DATA PENUMPANG');
gotoxy(15,4);write('--------------------------------');
gotoxy(5,6);write('Nama Penumpang : ');readln(nama_p);
gotoxy(5,7);write('Jumlah Berangkat : ');readln(jml_b);
gotoxy(5,8);write('Nomor Tiket : ');readln(notik);
gotoxy(5,9);write('Kode Tujuan : ');readln(kode_t);
tujuan(kode_t,nama_t,tarif);
gotoxy(5,10);write('Nama Tujuan : ',nama_t);
gotoxy(5,11);write('Tarif : ',tarif);
gotoxy(5,12);write('Berat Barang : ');readln(brt_b);
ong_b := brt_b * 750;
jml_bayar := tarif * jml_b + ong_b - hitung_diskon(jml_b,kode_t,tarif);
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 78
clrscr;
gotoxy(25,2);write('PT. ANGKUTAN KERINCI');
gotoxy(25,3);write(' LAPORAN PENUMPANG');
gotoxy(5,5);write('Ongkos Barang : 750 / Kg');
gotoxy(5,6);write('---------------------------------------------------------------------------------
');
gotoxy(5,7);write('|Nomor | Nama | Tujuan |Berat |Ongkos | Tarif
|');
gotoxy(5,8);write('|Tiket | Penumpang | |Barang |Barang |
|');
gotoxy(5,9);write(‘---------------------------------------------------------------------------------
');
gotoxy(5,10);write('|');
gotoxy(6,10);write(notik);
gotoxy(12,10);write('|');
gotoxy(13,10);write(nama_p);
gotoxy(28,10);write('|');
gotoxy(29,10);write(nama_t);
gotoxy(42,10);write('|');
gotoxy(45,10);write(brt_b);
gotoxy(49,10);write('|');
gotoxy(50,10);write(ong_b:7);
gotoxy(57,10);write('|');
gotoxy(58,10);write(tarif:9);
gotoxy(67,10);write('|');
gotoxy(5,11);write('--------------------------------------------------------------------------------
');
gotoxy(5,12);write('| Total Pembayaran |', jml_bayar:9:0);
gotoxy(67,12);write('|');
gotoxy(5,13);write('--------------------------------------------------------------------------------
');
gotoxy(5,14);write('Masih Ada Data [Y/T] : ');mad:=readkey;
end;
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 79
BAB IX
DISAIN LAYAR

Untuk membuat output sebuah program tampil lebih semarak, pada BAB ini akan
diperkenalkan beberapa fungsi yang dapat anda gunakan untuk mengatur tampilan dalam
modus teks.

9.1 UNIT CRT


Unit CRT merupakan fasilitas yang berkaitan dengan disain layar. Klausa USES CRT
perlu disertakan dalam program apabila program menggunakan fasilitas dalam unit
tersebut.

9.2 MENGHAPUS LAYAR


Untuk menghapus layar dapat digunakan pernyataan CLRSCR.

9.3 MENGATUR ATRIBUT TEKS


Ada beberapa cara yang digunakan untuk mengatur atribut teks, diantaranya adalah
sebagai berikut :
1. TextColor(Warna) : untuk mengatur warna teks. Warna teks dapat berupa
nilai 0 sampai dengan 15.
2. TextBackGround(Warna) : untuk mengatur warna latar belakang teks. Warna yang
dipilih dapat berupa 0 sampai dengan 7.
Warna yang digunakan untuk mengatur warna teks dan warna latar belakang teks dapat
dilihat pada tabel berikut ini.
Nilai Konstanta Warna Nilai Konstanta Warna
0 Black Hitam 8 DarkGray Abu-abu tua
1 Blue Biru 9 LightBlue Biru cerah
2 Green Hijau 10 LightGreen Hijau cerah
3 Cyan Sian 11 LightCyan Sian cerah
4 Red Merah 12 LightRed Merah cerah
5 Magenta Magenta 13 LightMagenta Magenta cerah
6 Brown Coklat 14 Yellow Kuning
7 Lightgray Abu-abu 15 White Putih

Jika ingin teks berkedip, tambahkan nilai 128 atau konstanta Blink terhadap warna pada
TextColor.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 80
Contoh :
Menampilkan tulisan ‘AMIK Depati Parbo Kerinci’ dengan berbagai warna dengan
latar belakang (background) warna hijau cerah.
uses crt;
var
j : integer;

begin
textbackground(10);
clrscr;
for j := 0 to 15 do
begin
textcolor(j);
writeln('AMIK Depati Parbo Kerinci');
end;
readln;
end.

9.4 KURSOR
Turbo Pascal juga menyediakan fasilitas untuk mengatur letak kursor maupun untuk
mengetahui posisi kursor.
• Gotoxy(X, Y) : menempatkan kursor pada posisi baris Y, kolom X
• WhereX : untuk memperoleh posisi baris tempat kursor berada
• WhereY : untuk memperoleh posisi kolom tempat kursor berada
Contoh pengunaan gotoxy() untuk membuat program animasi teks dengan bermacam-
macam warna teks.

uses crt;
const
posy = 12;
posx = 28;
waktutunda = 2000;
teks:string[80] = 'AMIK DEPATI PARBO KERINCI';
var
i,j,x : byte;
begin
textbackground(0);
clrscr;
j := 1;
for i := length(teks) downto 1 do
begin
x := 1;
if i > 15 then
begin
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 81
textcolor(j);
j:=j+1;
end
else
textcolor(i);
while x < (posx + i - 1) do
begin
gotoxy(x, posy);
write(teks[i]);
delay(waktutunda);
gotoxy(x, posy);
write(' ');
x := x + 1;
end;
gotoxy(posx + i - 1, posy);
write(teks[i]);
end;
readln;
end.

9.5 MODE TEKS


Mode teks dalam Pascal dapat berupa mode 80 kolom atau 40 kolom. Mode ini dapat
diperoleh dengan menggunakan prosedur TextMode().
Macam-macam modus teks dalam Turbo Pascal :
No. Mode Nama Resolusi Fungsi
Mengembalikan ke mode
LastMode
teks sebelumnya
0 BW40 40 x 25 Hitam putih 40 kolom
1 C040 (C40) 40 x 25 Berwarna 40 kolom
2 BW80 80 x 25 Hitam putih 80 kolom
3 C080 (C80) 80 x 25 Berwarna 80 kolom
7 MONO 80 x 25 Monocrome 80 kolom

Pada kolom resolusi terdapat perkalian dua bilangan, bilangan ini menunjukkan jumlah
karakter yang dapat ditampung dalam baris dan kolom pada layar.

Contoh :
40 x 25 : menunjukkan bahwa satu baris pada layar mampu menampung 40 karakter,
sedangkan satu kolom pada layar mampu menampung 25 karakter. Dengan
demikian satu layar mampu menampung 1000 (40 x 25) karakter.
Untuk mengubah dari satu modus ke modus yang lain dapat digunakan fungsi :

TextMode(Mode)
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 82
Contoh :
Uses crt;
Begin
Textmode(BW40); {mode 40 kolom hitam putih}
Writeln(‘Mode 40 kolom hitam putih’);
Readln;
Textmode(C80); {kembali ke mode 80 kolom berwarna}
End.

9.6 JENDELA TEKS (WINDOW)


Window digunakan bila anda ingin bekerja dengan sebagian layar saja. Dengan
demikian teks yang anda ketikkan hanya akan ditampilkan dalam batas window saja.
Untuk membuat sebuah window dapat digunakan perintah :
Window (x1, y1, x2, y2 : Byte)
Dimana :
x1 = batas kiri window
y1 = batas atas window
x2 = batas kanan window
y2 = batas bawah window
Contoh :
Untuk membuat window dengan batas kiri 10, kanan 40, atas 5 dan bawah 20, dapat
ditulis seperti berikut :

Window(10,5,40,20);
Sebagai ilustrasi dapat digambarkan sebagai berikut :

Dengan diaktifkannya suatu jendela, perintah Clrscr akan memberi efek menghapus
hanya pada daerah jendela (window) saja. Adapun warna yang digunakan untuk
menghapus daerah warna jendela sesuai dengan warna yang terekam pada
TextBackground.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 83
Contoh :
Uses crt;
Begin
TextBackgound(Blue)
Window(5,10,60,20)
Clrscr;
Readkey;
End.

Jika program diatas dijalankan maka layar akan dibersihkan mulai dari kolom 5 baris ke
10 sampai dengan kolom ke 60 baris ke 20 dengan latar belakang warna layar biru.
Contoh program animasi membersihkan layar :

uses crt;
var
i : byte;
begin
textbackground(0);
clrscr;
textbackground(9);
for i:=1 to 40 do
begin
window(41-i,1,41-i,25);
clrscr;
window(40+i,1,40+i,25);
clrscr;
delay(10000);
end;
textbackground(14);
for i:=40 downto 0 do
begin
window(41-i,1,41-i,25);
clrscr;
window(40+i,1,40+i,25);
clrscr;
delay(10000);
end;
end.

9.7 MENGHAPUS DAN MENYISIPKAN BARIS PADA WINDOW


Perintah yang digunakan untuk menghapus atau menghilangkan baris adalah :
 ClrEol : Untuk menghapus teks mulai posisi kursor hingga akhir baris pada
jendela yang sedang aktif

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 84
 DelLine : Untuk menghapus baris pada posisi kursor pada daerah jendela yang
aktif. Seluruh baris yang berada di bawah kursor dan berada dalam
daerah jendela yang aktif akan bergeser keatas satu baris
 InsLine : Untuk menyisipkan baris pada posisi kursor berada pada daerah
jendela yang aktif

Contoh Program penggunaan Delline dan Insline:


uses crt;
var
i : byte;
begin
textcolor(blue);
clrscr;
gotoxy(20,11);write('YAYASAN DEPATI PARBO KERINCI');
gotoxy(20,12);write(' AMIK DP KERINCI ');
gotoxy(20,13);write(' Jl. Pancasila No. 29, Sungai Penuh ');
for i:=1 to 10 do
begin
window(1,1,80,11);
gotoxy(1,1);
delline;
window(1,13,80,25);
gotoxy(1,1);
insline;
delay(19000);
end; readln;
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 85
BAB X
TYPE DATA RECORD

Dengan record, anda dapat mengorganisasikan database dengan lebih baik. Misalkan anda
ingin membuat database untuk menyimpan data barang, dimana setiap data akan menyimpan
informasi tentang kode, nama dan harga barang. Bila anda menggunakan array biasa, maka
anda harus membuat tiga variabel array yang bebas satu sama lain, yaitu variabel-variabel
untuk kode, nama dan harga barang. Dengan record data tadi dapat di organisasikan menjadi
satu kesatuan, misalnya record untuk barang pertama yang mengandung kode, nama dan
harga barang pertama, record data kedua mengandung kode, nama dan harga barang kedua
dan seterusnya.
kode[] nama[] harga[]
A101 Roti 4.500
A102 Kacang 10.000 A101
B101 Aqua 2.500 Roti
C105 Sprite 3.500 4.500

B101
Aqua
2.500

Array Record

10.5 DEFENISI
Record adalah tipe data terstruktur yang tersusun atas elemen-elemen yang jumlahnya
tertentu dan tipe data elemennya dapat berbeda-beda.
Elemen dari record biasa di sebut dengan field dan setiap field memiliki nama pengenal
tersendiri.
Record dan array merupakan data terstruktur yang panjangnya tertentu (statis). Namun
demikian, terdapat perbedaan diantara keduanya, yakni :
1. Elemen / field record dapat terdiri dari beberapa tipe data, sedangkan elemen / field
array bersifat homogen (mempunyai tipe data yang sama).
2. Elemen / field record di identifikasi dengan simbol/identifier, sedangkan Elemen /
field array di defenisikan dengan indeks.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 86
10.6 PENDEKLARASIAN RECORD
Sebelum digunakan, Record harus di deklarasikan lebih dahulu.
Bentuk umum deklarasi record :
Type tipe_record = Record
nama_field_1 : tipe_field_1;
nama_field_2 : tipe_field_2;

nama_field_n : tipe_field_n;
end;
var nama_record : tipe_record;

tipe_record adalah nama/identifier yang digunakan untuk tipe jenis record yang dibuat
nama_record adalah variabel bertipe record yang digunakan untuk mengidentifikasikan
record suatu objek secara keseluruhan
nama_field adalah nama variabel yang digunakan untuk mengidentifikasikan sebuah
atribute yang menjadi elemen record. Setiap atribute di identifikasikan
dengan nama yang berbeda
tipe_field adalah tipe data untuk setiap atribute elemen record. Tipe ini dapat berbeda-
beda antara elemen yang satu dengan elemen yang lain. Tipe dari field
juga dapat berupa array.
Sebagai contoh, kita akan mencoba mendeklarasikan sebuah record untuk data barang,
yang tersusun dari kode yang bertipe string, nama juga bertipe string dan gaji yang
bertipe long integer.
type barang = record
kode : string[5];
nama : string[25];
harga : longint;
end;
var r_barang : barang;
atau
Jika data terdiri dari beberapa record (maks 10 record), maka deklarasi recordnya
adalah :
type barang = record
kode : string[5];
nama : string[25];
harga : longint;
end;
var r_barang : array [1..10] of barang;
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 87
Tipe suatu field dari record bisa berupa record. Sebagai contoh :
type tanggal_beli = record
tanggal : 1..31;
bulan : 1..12;
tahun : 2000..2009;
end;
barang = record
kode : string[5];
nama : string[25];
harga : longint;
tgl_beli : tanggal_beli;
end;
var r_barang : barang;

10.7 OPERASI PADA RECORD


10.7.1 MENGAKSES RECORD DENGAN NOTASI TITIK
Elemen record (field) dapat diakses dengan notasi titik, yaitu menuliskan nama
record diikuti dengan tanda titik (.).

Secara umum dapat dituliskan sebagai berikut :


nama_record.nama_field;

Contoh :
Buatlah program untuk menampilkan data barang.

uses crt;
const
jml_data = 50;
type
barang = record
kode : string[5];
nama : string[20];
harga : longint;
end;
var
r_barang : array [1..jml_data] of barang;
mad : char; i, jml : integer;
begin
mad := 'Y'; i := 1;
while (upcase(mad)='Y') do
begin
clrscr;
writeln('ENTRY DATA BARANG');
writeln('---------------------------');
writeln;
write('Kode Barang : ');readln(r_barang[i].kode);

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 88
write('Nama Barang : ');readln(r_barang[i].nama);
write('Harga Barang : ');readln(r_barang[i].harga);
write('Masih Ada Data [Y/T] : ');mad:=readkey;
if (upcase(mad)='Y') then
i := i + 1;
end;
clrscr;
gotoxy(20,2);writeln('DAFTAR HARGA BARANG');
gotoxy(20,3);writeln('------------------------------');
gotoxy(8,5);writeln('----------------------------------------------------');
gotoxy(8,6);writeln('| No. | Kode | Nama Barang | Harga |');
gotoxy(8,7);writeln('----------------------------------------------------');
for jml := 1 to i do
begin
gotoxy(8,7+jml);write('|');
gotoxy(10,7+jml);write(jml:2);
gotoxy(14,7+jml);write('|');
gotoxy(16,7+jml);write(r_barang[jml].kode);
gotoxy(21,7+jml);write('|');
gotoxy(23,7+jml);write(r_barang[jml].nama);
gotoxy(39,7+jml);write('|');
gotoxy(41,7+jml);write(r_barang[jml].harga:8);
gotoxy(50,7+jml);write('|');
end;
gotoxy(8,8+jml);write('------------------------------------------------');
readkey;
end.

10.7.2 MENGAKSES RECORD DENGAN PERNYATAAN WITH


Cara lain untuk mengakses field dari record yaitu dengan menggunakan
pernyataan With.

Bentuk pernyataan With :


with <daftar_nama_record> do
begin
<pernyataan_1>;
<pernyataan_2>;

<pernyataan_n>;
end;

Contoh :
Buatlah program untuk menampilkan data barang.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 89
uses crt;
const
jml_data = 50;
type
barang = record
kode : string[5];
nama : string[20];
harga : longint;
end;
var
r_barang : array [1..jml_data] of barang;
mad : char;
i, jml : integer;
begin
mad := 'Y'; i := 1;
while (upcase(mad)='Y') do
begin
clrscr;
writeln('ENTRY DATA BARANG');
writeln('---------------------------');
writeln;
with r_barang[i] do
begin
write('Kode Barang : ');readln(kode);
write('Nama Barang : ');readln(nama);
write('Harga Barang : ');readln(harga);
end;
write('Masih Ada Data [Y/T] : ');mad:=readkey;
if (upcase(mad)='Y') then
i := i + 1;
end;
clrscr;
gotoxy(20,2);writeln('DAFTAR HARGA BARANG');
gotoxy(20,3);writeln('------------------------------');
gotoxy(8,5);writeln('----------------------------------------------------');
gotoxy(8,6);writeln('| No. | Kode | Nama Barang | Harga |');
gotoxy(8,7);writeln('----------------------------------------------------');
for jml := 1 to i do
begin
with r_barang[jml] do
begin
gotoxy(8,7+jml);write('|');
gotoxy(10,7+jml);write(jml:2);
gotoxy(14,7+jml);write('|');
gotoxy(16,7+jml);write(kode);
gotoxy(21,7+jml);write('|');
gotoxy(23,7+jml);write(nama);
gotoxy(39,7+jml);write('|');
gotoxy(41,7+jml);write(harga:8);
gotoxy(50,7+jml);write('|');
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 90
end;
end;
gotoxy(8,8+jml);write('------------------------------------------------');
readkey;
end.

10.8 LATIHAN
1. Sebuah perusahaan air minum (PDAM) ingin menghitung rekening/jumlah tagihan
yang harus dibayar pelanggan tiap bulannya, format output/tampilan yang
diinginkan adalah sebagai berikut :
Ketentuan Proses :
a. Terpakai = mba - mbi
b. Harga air/m3 berdasarkan jenis langganan
jika jns_lang = '1', harga_air = 150
jika jns_lang = '2', harga_air = 200
jika jns_lang = '3', harga_air = 250
jika jns_lang = '4', harga_air = 275
c. Dana_M/pelanggan berdasarkan kode wilayah
jika kd_wil ='a', dana_m = 850 dan dana_adm = 1500
jika kd_wil ='b', dana_m = 1000 dan dana_adm = 1750
jika kd_wil ='c', dana_m = 1500 dan dana_adm = 2000
jika kd_wil ='d', dana_m = 2000 dan dana_adm = 2500
d. jml_tagihan = terpakai * harga_air + dana_m + dana_adm
e. Proses/variabel lainnya anda atur sendiri, sesuai format yang diinginkan
Tampilan Input
PDAM DAERAH X
DAFTAR PEMAKAIAN AIR/M3
-----------------------------------
No_Rek : ..........
Nama Pelanggan : ..........
Kode Wilayah : ..........
Jenis Pelanggan : ..........
MBA : ..........
MBI : ..........

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 91
Bentuk Output
PDAM DAERAH X
DAFTAR REKENING
Kode_Wil : ......
No_Rek : ...... Nama Langgan : ...........
--------------------------------------------------------------------------------------
MBA MBI Terpakai Harga_Air Dana_M Dana_Adm Jml_Tagihan
--------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------

Nama Variabel/Record
------------------------------------------------------------------
Field Name Type Width Keterangan
------------------------------------------------------------------
no_rek string 6 Nomor Rekening
nm_lang string 25 Nama Langganan
kd_wil character 1 Kode Wilayah
jns_lang character 1 Jenis Langganan
mba numeric 6 Meter Bulan Akhir
mbi numeric 6 Meter Bulan Ini
------------------------------------------------------------------
Program menghitung_jumlah_tagihan_pemakaian_air;
uses crt;
const
jml_data = 1000;
type langganan = record
no_rek : string[6];
nm_lang: string[25];
kd_wil,jns_lang : char;
mba,mbi : integer;
end;
var
r_langganan : array [1..jml_data] of langganan;
i,jml,pakai,hrg_air,dana_m,dana_adm : integer;
jml_tagih : longint;
mad : char;
begin
clrscr;
mad:='Y'; i:=1;
while (upcase(mad)='Y') do
begin
with r_langganan[i] do
begin
gotoxy(2,2);write('PDAM DAERAH');
gotoxy(2,3);write('DAFTAR PEMAKAIAN AIR/M3');
gotoxy(2,4);write('---------------------------------------');
gotoxy(2,6);write('No_Rek : ');readln(no_rek);
gotoxy(2,7);write('Nama Pelanggan : ');readln(nm_lang);
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 92
gotoxy(2,8);write('Kode Wilayah : ');readln(kd_wil);
gotoxy(2,9);write('Jenis Pelanggan : ');readln(jns_lang);
gotoxy(2,10);write('MBA : ');readln(mba);
gotoxy(2,11);write('MBI : ');readln(mbi);
end;
gotoxy(2,13);write('Masih Ada Data [Y/T] : ');mad:=readkey;
if (upcase(mad) ='Y') then
begin
i := i + 1;
clrscr;
end;
end;
clrscr;
for jml := 1 to i do
begin
with r_langganan[jml] do
begin
pakai:=mba-mbi;
case jns_lang of
'1' : hrg_air := 150;
'2' : hrg_air := 200;
'3' : hrg_air := 250;
'4' : hrg_air := 275;
end;
case kd_wil of
'a','A' : begin
dana_m := 850;
dana_adm := 1500;
end;
'b','B' : begin
dana_m := 1000;
dana_adm := 1750;
end;
'c','C' : begin
dana_m := 1500;
dana_adm := 2000;
end;
'd','D' : begin
dana_m := 2000;
dana_adm := 2500;
end;
end;
jml_tagih := pakai * hrg_air + dana_m + dana_adm;
clrscr;
gotoxy(2,5);write('PDAM DAERAH X');
gotoxy(2,6);write('DAFTAR REKENING');
gotoxy(2,8);write('Kode_Wil : ',kd_wil);
gotoxy(2,9);write('No_Rek : ',no_rek);
gotoxy(35,9);write('Nama Langganan : ',nm_lang);

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 93
gotoxy(2,10);write('-----------------------------------------------------------------------------
-');
gotoxy(2,11);write('MBA MBI Terpakai Harga_Air Dana_M Dana_Adm
Jml_Tagihan');
gotoxy(2,12);write('-----------------------------------------------------------------------------
-');
gotoxy(3,13);write(mba:4);
gotoxy(9,13);write(mbi:4);
gotoxy(16,13);write(pakai:4);
gotoxy(28,13);write(hrg_air);
gotoxy(37,13);write(dana_m);
gotoxy(46,13);write(dana_adm);
gotoxy(56,13);write(jml_tagih);
gotoxy(2,14);write('-----------------------------------------------------------------------------
-');
end;
readkey;
end;
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 94
BAB XI
TYPE DATA HIMPUNAN

Type data set (himpunan) termasuk tipe data terstruktur yang berisi sekumpulan dari obyek
dengan tipe sama.

11.4 DEKLARASI TYPE HIMPUNAN


Pendeklarasian tipe himpunan dimulai dengan kata tercadang set dan of, diikuti dengan
tipe elemen himpunan. Tipe himpunan dapat berupa sebarang tipe ordinal antara 0
sampai dengan 255. Tipe ordinal seperti longint, word, shortint tak diperkanankan.

Deklarasi tipe himpunan :


type
nama_tipe = set of tipe;
Contoh pendeklarasian tipe set (himpunan) :
Type
Nilai = set of 0..20;
Huruf = set of ‘a’ .. ‘z’;
Const
Bil_genap : nilai = [0, 2, 4, 8, 10, 12, 14, 16, 18, 20];
Bil_ganjil : nilai = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19];
Nilai yang bertipe set dapat juga dituliskan secara langsung dalam program dengan
memakai konstruktor set, [] (dua kurung siku) yang berarti set kosong.

11.5 OPERASI HIMPUNAN


Operasi himpunan meliputi penambahan, pengurangan, perkalian himpunan serta
perbandingan himpunan.

Operator yang digunakan dalam himpunan (set)


Operator Operasi Keterangan
+ Union Menggabungkan semua elemen,
elemen_1 dengan elemen_2
- Difference Menghasilkan elemen yang berada pada
elemen_1 tetapi tidak pada elemen_2
* Intersection Menghasilkan elemen yang berada di
elemen_1 dan sekaligus di elemen_2

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 95
Contoh :
[‘A’, ’B’, ’C’] + [‘B’, ‘D’, ‘E’] ---> [ ‘A’, ’B’, ’C’, ’D’, ’E’ ]
[] + [1] ---> [1]
[‘A’, ’B’, ’C’] - [‘B’, ‘D’, ‘E’] ---> [ ‘A’, ’C’ ]
[] - [1] ---> []
[‘A’, ’B’, ’C’] * [‘B’, ‘D’, ‘E’] ---> [ ’B’ ]
[] * [1] ---> []
[1, 2, 4] * [5, 6, 7] -- []

Operator perbandingan yang digunakan dalam himpunan (set)


Perbandingan Nilai Kondisi
A=B True Bila himpunan A dan B sama
A <= B True Bila himpunan A merupakan anggota B
A >= B True Bila himpunan B merupakan anggota A
A <> B True Bila himpunan A dan B tidak sama
A in B True Bila elemen A adalah anggota
himpunan B

11.6 LATIHAN
1. Program untuk menampilkan angka yang diinputkan apakah merupakan bilangan
genap atau ganjil dengan batasan angka 1 sampai dengan 10
uses crt;
type
nilai = set of 1..10;
const
genap : nilai = [2,4,6,8,10];
ganjil : nilai = [1,3,5,7,9];
var
bil : integer;
mad : char;
begin
mad := 'Y';
while (upcase(mad)='Y') do
begin
clrscr;
write('Input Sebuah Bilangan : ');readln(bil);
writeln;
if bil in genap then
writeln(bil,' merupakan bilangan genap !')
else if bil in ganjil then
writeln(bil,' merupakan bilangan ganjil !')
else
writeln('angka ',bil,' diluar jangkauan himpunan..!');
writeln;
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 96
write('Masih Ada Data [Y/T] : ');mad:=readkey;
writeln;
end;
end.

2. Program untuk menampilkan daftar tagihan biaya penginapan


uses crt;
type
vkode = set of char;
vmad = set of char;
const
vkode_k : vkode = ['1','2','3','4'];
xmad : vmad = ['T','t'];
var
nama : string[20]; alt : string[25];
tgl : string[12]; mad,Kode_k : char;
jns_k : string[15];
trf_k : longint; no_k : string[5];
lama : integer;
disc, jml_bayar : real;
begin
repeat
clrscr;
gotoxy(5,2);write('>> ENTRY DATA PELANGGAN HOTEL <<');
gotoxy(5,3);write('---------------------------------------------------');
gotoxy(5,5);write('Nama Pelanggan : ');readln(nama);
gotoxy(5,6);write('Alamat Pelanggan : ');readln(alt);
gotoxy(5,7);write('Tanggal Masuk : ');readln(tgl);
repeat
gotoxy(5,8);write('Kode Kamar : ');readln(kode_k);
until (kode_k in vkode_k);
if (kode_k = '1') then
begin
jns_k := 'VIP 1';
trf_k := 125000;
end
else if (kode_k = '2') then
begin
jns_k := 'VIP 2';
trf_k := 100000;
end
else if (kode_k = '3') then
begin
jns_k := 'VIP 3';
trf_k := 95000;
end
else
begin
jns_k := 'Kelas';

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 97
trf_k := 75000;
end;
gotoxy(5,9);write('Jenis Kamar : ',jns_k);
gotoxy(5,10);write('Tarif Kamar : Rp. ',trf_k);
gotoxy(5,11);write('Nomor Kamar : ');readln(no_k);
gotoxy(5,12);write('Lama Menginap : ');readln(lama);
if lama > 4 then
disc := 0.1 * trf_k * lama
else
disc := 0;
jml_bayar := lama * trf_k - disc;
clrscr;
gotoxy(5,5);write('Nama Pelanggan : ',nama);
gotoxy(5,6);write('------------------------------------------------------------------------
');
gotoxy(5,7);write('Jns_Kamar Trf_Kamar Lm_Inap Discount Jml_Bayar');
gotoxy(5,8);write('------------------------------------------------------------------------
');
gotoxy(5,9);write(jns_k);
gotoxy(17,9);write(trf_k:6);
gotoxy(29,9);write(lama:2);
gotoxy(37,9);write(disc:6:0);
gotoxy(47,9);write(jml_bayar:7:0);
gotoxy(5,10);write('------------------------------------------------------------------------
');
gotoxy(5,11);write('Masih Ada Data [Y/T] : ');mad:=readkey;
until (mad in xmad);
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 98
BAB XII
TYPE DATA FILE

Data yang disimpan pada tipe-tipe data yang telah dibahas pada bab-bab sebelumnya bersifat
sementara. Artinya, sewaktu program selesai dijalankan, data yang telah diinputkan akan
hilang.

Pada banyak aplikasi adakalanya diperlukan untuk menyimpan sekumpulan data yang
diinputkan untuk tujuan penggunaan dikemudia hari. Kalau dibutuhkan data tersebut dapat
dipanggil secara langsung, tanpa perlu dilakukan penginputan kembali. Untuk keperluan
demikian, perlu kiranya menyimpan data ke dalam piranti pengingat (media penyimpanan)
seperti disket dan hard disk.

Penyimpanan data disusun dalam satu unit yang disebut dengan file. Isi sebuah file dapat
terdiri dari beberapa komponen (record) yang memiliki tipe yang sama.

12.1 FILE ACAK (RANDOM) / FILE BERTIPE


File bertipe merupakan file yang bisa diakses secara acak. Data diakses secara langsung
pada posisi yang diinginkan, tidak harus dimulai dari awal file.

Bentuk Pendeklarasian File Acak (File Bertipe) :

file of <tipe_komponen>

<tipe_kompinen> menunjukkan tipe komponen dari file. Misalnya :


1. var
angka : file of integer; { komponen bertipe integer }
huruf : file oh char; { komponen bertipe char }

Pada contoh diatas semua komponen file bertipe skalar.

2. type
data_mhs = record
nama : string[20];
bp : string[9];
alamat : string[25];
mid : real;
sem : real;
end;

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 99
var
mahasiswa : file of data_mhs;
Contoh kedua, komponen dari file berupa record yang mengandung 5 (lima) buah
field yaitu : nama, bp, alamat, mid dan sem.

12.1.1 PERNYATAAN ASSIGN


Pernyataan Assign digunakan untuk mengawali semua operasi yang melibatkan
file.

Bentuk umum penulisan :


Assign (nama_variabel_file, ‘nama_file’);

nama_variabel_file merupakan nama variabel file.


nama_file merupakan nama file tempat record akan di simpan dalam disk.
Contoh :
type
data_mhs = record
nama : string[20];
bp : string[9];
alamat : string[25];
mid : real;
sem : real;
end;
var
mahasiswa : file of data_mhs;
begin
assign (mahasiswa, ‘[Link]’);
...
...
...
end.

12.1.2 PERNYATAAN REWRITE


Pernyataan rewrite dipakai untuk membuka dan menciptakan file baru pada disk.
Dengan perintah rewrite menyebabkan penunjuk file (pointer file) diletakkan
pada awal file dan membuat isi file menjadi kosong.

Bentuk umum penulisan :


Rewrite (nama_variabel_file);
nama_variabel_file merupakan nama variabel file.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 100
Contoh :
type
data_mhs = record
nama : string[20];
bp : string[9];
mid : real;
sem : real;
end;
var
mahasiswa : file of data_mhs;
begin
assign (mahasiswa, ‘[Link]’); { membuat file baru }
if ioresult <> 0 then
rewrite(mahasiswa); {jika terjadi kesalahan dalam
membuka/membentuk file maka dibuka atau
dibentuk file baru }
...
...
...
end.

12.1.3 PERNYATAAN RESET


Reset digunakan untuk membuka suatu file yang sudah ada pada media
penyimpanan (disket atau hard disk). File yang dibuka adalah yang berhubungan
dengan variabel file. Perintah ini menyebabkan penunjuk file ditempatkan pada
awal file, tetapi tidak menghapus isi file.

Bentuk umum penulisan :


Reset (nama_variabel_file);

nama_variabel_file merupakan nama variabel file.

12.1.4 PERNYATAAN CLOSE


Perintah Close digunakan untuk menutup file yang aktif (file yang terbuka).

Bentuk umum penulisan :


Close(nama_variabel_file);

nama_variabel_file merupakan nama variabel file.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 101
12.1.5 PERNYATAAN WRITE
Pernyataan Write digunakan untuk menyimpan atau menyalin data dari variabel
file ke dalam media penyimpanan (disket / hard disk).

Bentuk umum penulisan :


Write(nama_variabel_file, record_ file);

nama_variabel_file merupakan nama variabel file.


record_file merupakan nama file tempat record akan di simpan dalam disk.
Contoh :
type
data_mhs = record
nama : string[20];
bp : string[9];
alamat : string[25];
mid : real;
sem : real;
end;
var
mahasiswa : file of data_mhs;
record_mhs : data_mhs;
begin
assign (mahasiswa, ‘[Link]’);
...
...
...
write(mahasiswa,record_mhs);
end.

12.1.6 PERNYATAAN READ


Read digunakan untuk membaca isi file yang tersimpan pada media
penyimpanan.

Bentuk umum penulisan :


Read(nama_variabel_file, record_ file);

nama_variabel_file merupakan nama variabel file.


record_file merupakan nama file tempat record di simpan dalam disk.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 102
12.1.7 PERNYATAAN SEEK
Perintah Seek digunakan untuk memindahkan penunjuk file ke posisi tertentu
yang diinginkan. Fasilitas ini memungkinkan untuk mengganti atau membaca
komponen (record) tertentu dari file.

Bentuk umum penulisan :


Seek(nama_variabel_file, nilai_counter);

nama_variabel_file merupakan nama variabel file.


nilai_counter merupakan nilai posisi dari penunjuk file.

12.1.8 FUNGSI EOF


Fungsi EOF (End Of File) atau akhir dari file menghasilkan nilai True jika
penunjuk file sedang berada pada lokasi akhir file dan akan bernilai False jika
penunjuk file sedang berada bukan pada lokasi akhir file.

Bentuk umum penulisan :


Eof(nama_variabel_file);

nama_variabel_file merupakan nama variabel file.

12.1.9 FUNGSI FILESIZE


Filesize berfungsi untuk mengetahui jumlah data (record) yang ada dalam file
yang telah disimpan.
Bentuk umum penulisan :
FileSize(nama_variabel_file);

nama_variabel_file merupakan nama variabel file.

12.2 MENANGANI KESALAHAN I/O


Jika perintah seperti Reset sedang dieksekusi dan ternyata file yang dilibatkan tidak ada,
akan menimbulkan kesalahan I/O yang akan mengakibatkan eksekusi program terhenti.
Agar kesalahan I/O tidak menyebabkan terhentinya eksekusi program, maka pengarah I
harus dibuat dalam keadaan pasif yaitu {$I-}.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 103
Contoh :
{$I-} {kalau ada kesalahan I/O akan dibiarkan}
reset (variabel_file)
{$I+} { kalau ada kesalahan I/O eksekusi program akan dihentikan}

12.3 LATIHAN
1. Contoh program entri data / menginputkan data baru
uses crt;
type pasien=record
kd_pas : string[4];
nm_pas: string[20];
jekel : char;
alt : string[25];
end;
var
file_pas : file of pasien;
r_pas : pasien;
ketemu : boolean;
i,j,jml : byte; vkode : string[4];
mad, dsb : char;
begin
assign(file_pas,'c:\pascal\[Link]'); {membuat / membentuk file baru }
{$I-}
reset(file_pas); { buka file yang telah dibuat }
{$I+}
if ioresult <> 0 then
rewrite(file_pas); {jika terjadi kesalahan dalam membuka / membentuk file
maka dibuka atau dibentuk file baru }
mad := 'Y';
repeat
clrscr;
gotoxy(10,10);write('>> ENTRY DATA PASIEN <<');
gotoxy(10,11);write('-----------------------------------');
gotoxy(10,13);write('Kode Pasien : ');
gotoxy(10,14);write('Nama Pasien : ');
gotoxy(10,15);write('Jenis Kelamin : ');
gotoxy(10,16);write('Alamat : ');
gotoxy(10,18);write('Data Sudah Benar [Y/T] : ');
gotoxy(10,19);write('Masih Ada Data [Y/T] : ');
gotoxy(27,13);readln(vkode);
with r_pas do
begin
jml:=filesize(file_pas); { set nilai variabel jml dari jumlah record yang telah
tersimpan }
ketemu:=false;
for i:=1 to jml do
begin
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 104
seek(file_pas,i-1); {mengarahkan penunjuk file ke awal komponen
(record)}
read(file_pas,r_pas); {baca data (record) dari variabel file}
if vkode=kd_pas then ketemu:=true;
end;
end;
if ketemu then
begin
gotoxy(10,21);write('Kode pasien sudah terdaftar ....!');
repeat until keypressed;
end
else
begin
with r_pas do
begin
dsb:='T';
repeat
gotoxy(27,14);readln(nm_pas);
gotoxy(27,15);readln(jekel);
gotoxy(27,16);readln(alt);
gotoxy(35,18);readln(dsb);
until upcase(dsb)='Y';
kd_pas:=vkode;
write(file_pas,r_pas); {simpan data (record) yang telah diinputkan
kemedia penyimpanan}
end;
end;
gotoxy(35,19);readln(mad);
until upcase(mad)='T';
close(file_pas);
end.

2. Contoh program edit/ koreksi data


uses crt;
type pasien=record
kd_pas : string[4];
nm_pas : string[20];
jekel : char;
alt : string[25];
end;
var
file_pas : file of pasien;
r_pas : pasien;
ketemu : boolean;
i,j,jml : byte;
vkode : string[4];
mad, dsb : char;
begin
assign(file_pas,'[Link]');
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 105
{$I-}
reset(file_pas);
{$I+}
if ioresult <> 0 then rewrite(file_pas);
mad := 'Y';
repeat
clrscr;
gotoxy(10,10);write('>> ENTRY DATA PASIEN <<');
gotoxy(10,11);write('-----------------------------------');
gotoxy(10,13);write('Kode Pasien : ');
gotoxy(10,14);write('Nama Pasien : ');
gotoxy(10,15);write('Jenis Kelamin : ');
gotoxy(10,16);write('Alamat : ');
gotoxy(10,18);write('Data Sudah Benar [Y/T] : ');
gotoxy(10,19);write('Masih Ada Data [Y/T] : ');
gotoxy(27,13);readln(vkode);
with r_pas do
begin
jml:=filesize(file_pas);
ketemu:=false;
for i:=1 to jml do
begin
seek(file_pas,i-1); {mengarahkan penunjuk file ke awal komponen
(record) }
read(file_pas,r_pas);
if vkode=kd_pas then
begin
gotoxy(27,14);write(nm_pas);
gotoxy(27,15);write(jekel);
gotoxy(27,16);write(alt);
ketemu:=true;
end;
end;
end;
if not ketemu then
begin
gotoxy(10,21);write('Kode pasien tidak terdaftar ....!');
repeat until keypressed;
end
else
begin
with r_pas do
begin
dsb:='T';
repeat
gotoxy(27,14);readln(nm_pas);
gotoxy(27,15);readln(jekel);
gotoxy(27,16);readln(alt);
gotoxy(35,18);readln(dsb);
until upcase(dsb)='Y';
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 106
kd_pas:=vkode;
seek(file_pas,filesize(file_pas)); {mengarahkan penunjuk file ke akhir
komponen (record)}
write(file_pas,r_pas);
end;
end;
gotoxy(35,19);readln(mad);
until upcase(mad)='T';
close(file_pas);
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 107
BAB XIII
SUARA & GRAFIK

13.1 MODE SUARA


Untuk menampilkan efek suara di speaker dapat menggunakan perintah :
Sound (Frekuensi_bunyi)
Sedangkan untuk menghilang efek bunyi dapat digunakan perintah NoSound.

Contoh :
Uses crt, graph3;
Begin
Repeat
Sound(500);
Delay(2000);
Sound(145);
Delay(2000);
Until keypressed;
NoSound;
End.

13.2 MODE GRAFIK


Dalam turbo pascal, untuk pembuatan grafik disediakan 3 macam mode grafik yang
terdapat dalam unit Graph3, yaitu :
1. GraphMode Grafik hitam putih dengan 320 x 200 pixel
2. GraphColor Mode Grafik warna dengan 320 x 200 pixel
3. HiRes Grafik resolusi tinggi yang terdiri 640 x 200 pixel

Koordinat pada grafik adalah sebagai berikut :

Dengan pixel pada pojok kiri atas pada layar memiliki koordinat (0 ,0).

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 108
13.2.1 MODE UNTUK GRAPHMODE
 GraphMode Pada graphmode, koordinat X mempunyai batasan titik
antar 0 sampai dengan 319, dan koordinat Y mempunyai
nilai antara 0 sampai dengan 199.
 GraphBackGround(warna : integer)
Digunakan untuk memilih warna latar belakang
(background). Nilai dari warna antara 0 sampai dengan
15.

Nilai Konstanta Warna


0 Black Hitam
1 Blue Biru
2 Green Hijau
3 Cyan Sian
4 Red Merah
5 Magenta Magenta
6 Brown Coklat
7 Lightgray Abu-abu
8 DarkGray Abu-abu tua
9 LightBlue Biru cerah
10 LightGreen Hijau cerah
11 LightCyan Sian cerah
12 LightRed Merah cerah
13 LightMagenta Magenta cerah
14 Yellow Kuning
15 White Putih

 Palette(warna_palet : integer)
Untuk memilih kelompok warna. Warna_ palet dapat
bernilai 0 atau 1.
 Plot(X, Y, warna : Integer)
Untuk menggambar sebuah piksel (titik) pada koordinat
(X, Y). warna dapat dipilih antara 0 sampai dengan 3.
Nilai Warna 0 1 2 3
Palette 0 LB Biru Merah Abu-abu
Palette 1 LB Biru Cerah Merah Cerah Putih

 Draw(X1, Y1, X2, Y2, warna : Integer)


Untuk menggambar garis dari piksel (X1,Y1) ke piksel
(X2, Y2). Nilai warna 0–3.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 109
13.2.2 MODE UNTUK GRAPH COLOR MODE
 GraphColorMode Pada mode ini , koordinat X mempunyai batasan titik
antar 0 sampai dengan 319, dan koordinat Y mempunyai
nilai antara 0 sampai dengan 199.
 GraphBackGround(warna : integer)
Digunakan untuk memilih warna latar belakang
(background). Nilai dari warna antara 0 sampai dengan
15.
 Palette(warna_palet : integer)
Untuk memilih kelompok warna. Warna_ palet dapat
bernilai 0, 1, 2 atau 3.
 Plot(X, Y, warna : Integer)
Untuk menggambar sebuah piksel (titik) pada koordinat
(X, Y). warna dapat dipilih antara 0 sampai dengan 3.
Nilai Warna 0 1 2 3
Palette 0 LB Hijau Merah Coklat
Palette 1 LB Sian Magenta Abu-abu
Palette 2 LB Hijau Cerah Merah Cerah Kuning
Palette 3 LB Sian Cerah Magenta Cerah Putih

 Draw(X1, Y1, X2, Y2, warna : Integer)


Untuk menggambar garis dari piksel (X1,Y1) ke piksel
(X2, Y2). Nilai warna 0–3.

13.2.3 MODE UNTUK HIRES


 HiRes Pada mode ini, koordinat X mempunyai batasan titik
antar 0 sampai dengan 639, dan koordinat Y mempunyai
nilai antara 0 sampai dengan 199. Warna latar
(background) berwarna hitam.
 HiResColor(warna : integer)
Untuk memilih warna piksel yang hendak ditampilkan.
Nilai Warna antara 0 sampai dengan 15.
 Plot(X, Y, warna : Integer)
Untuk menggambar sebuah piksel (titik) pada koordinat
(X, Y). Warna sama dengan 1 untuk menampilkan
piksel.
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 110
 Draw(X1, Y1, X2, Y2, warna : Integer)
Untuk menggambar garis dari piksel (X1,Y1) ke piksel
(X2, Y2). Nilai warna 1 untuk menampilkan garis.

13.2.4 FUNGSI GRAFIK LAINNYA


 GraphWindow(X1, Y1, X2, Y2)
Digunakan untuk membuat jendela pada mode grafik. (X1, Y1) merupakan
koordinat pojok kiri atas jendela dan (X2,Y2) menunjukkan koordinat kanan
bawah jendela.
Ukuran jendela terbesar pada mode 320 x 200 (0,0,319,199) dan untuk mode
640 x 200 (0,0,639,199).
 Arc (X, Y, Sudut, Jari, Warna : integer)
Digunakan untuk menggambar sebuah busur mulai koordinat (X, Y), nilai
warna (0..3).
 Circle(X, Y, Jari, Warna : integer)
Digunakan untuk menggambar lingkaran dengan pusat lingkaran (X, Y).
 ColorTable(Warna1,Warna2,Warna3,Warna4 : Integer)
Untuk memperoleh tabel translasi warna, yang memungkinkan warna pada
suatu titik menentukan warna barunya jika pada titik tersebut dikenakan
operasi penulisan titik kembali.
 FillPatern(X1, Y1, X2, Y2, Warna : Integer)
Digunakan untuk memenuhi segi empat yang pojok kiri atasnya (X1, Y1)
dan pojok kanan bawah (X2, Y2).
 FillScreen(Warna : Integer)
Digunakan untuk mengisi jendela layar yang aktif dengan warna.
 FillShape(X, Y, Warna1, Warna 2 : Integer)
Prosedur ini digunakan untuk memenuhi sembarang yang dibatasi oleh
warna1 dengan warna2. (X, Y) merupakan koordinat sampel dari titik dalam
area yang hendak diwarnai.
 GetDot Color(X, Y : Integer) : Integer
Merupakan fungsi yang menghasilkan kode warna dari titik pada koordinat
(X, Y).

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 111
 GetPic(Var V; X1, Y1, X2, Y2 : Integer)
Untuk menyimpan data gambar dari daerah segi empat yang memiliki
koordinat kiri atas (X1, Y1) dan koordinat pojok kanan bawah (X2, Y2) ke
dalam variabel V.
 PutPic(Var V; X, Y : Integer)
Digunakan untuk menempatkan data gambar yang ada pada variabel V ke
lokasi yang memiliki koordinat pojok kiri bawah (X, Y).

13.3 LATIHAN
1. Contoh program grafik lingkaran yang dengan efek suara
uses crt, graph3;
var
i, j, warna : integer;
begin
graphcolormode;
graphwindow(0,0,639,199);
fillscreen(0);
i:=0; warna := 1; j:=0;
repeat
circle(80+i,30+i,20,1);
circle(200-i,30+i,20,1);
circle(140,30+i,20,warna);
circle(80+i,90,20,warna);
delay(10000);
i:=i+5;
if (i = 65) then
i := i + 10;
if (warna=3) then
warna:=0;
inc(warna);
until i >= 130;
repeat
circle(140,90,0+j,0);
delay(10000);
sound(50+j);
j:=j+1;
until j >= 115;
nosound;
gotoxy(8,24);write('Tekan Enter .... Exit !!');
repeat until readkey=#13;
textmode(C80);
end.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 112
2. Contoh program grafik lingkaran dengan menggunakan perintah Arc
uses crt, graph3;
var
i : integer;
begin
graphcolormode;
graphwindow(0,0,639,199);
fillscreen(0);
i:=0;
gotoxy(10,24);write('Tekan Enter .... Exit !!');
repeat
arc(80+i,30+i,360,20,3);
arc(200-i,30+i,360,20,2);
arc(140,30+i,360,20,1);
arc(80+i,90,360,20,1);
delay(10000);
i:=i+5
until i >= 130;
repeat until readkey=#13;
textmode(C80);
end.

3. Contoh program grafik animasi garis


uses crt, graph3;
procedure gambar(warna : byte);
var
i : integer;
begin
i := 0;
repeat
draw(10+i,99,119,105-i+4,warna);
draw(230-i,99,119,105-i+4,warna);
draw(230-i,99,119,105+i-4,warna);
draw(10+i,99,119,105+i-4,warna);
delay(10000);
i := i + 5;
until i >=105;
end;
begin
graphcolormode;
gambar(2);
gotoxy(1,25);write('Tekan Enter ...!!!');
graphwindow(20,20,319,199);
gambar(3);
graphwindow(40,40,319,199);
gambar(1);
repeat until readkey=#13;
textmode(C80);
end.
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 113
LAMPIRAN 1
TABEL ASCII
Dec Hex CHR Dec Hex CHR Dec Hex CHR Dec Hex CHR
000 00H Null 039 27H ‘ 078 4EH N 117 75H u
001 01H ☺ 040 28H ( 079 4FH O 118 76H v
002 02H ☻ 041 29H ) 080 50H P 119 77H w
003 03H ♥ 042 2AH * 081 51H Q 120 78H x
004 04H ♦ 043 2BH + 082 52H R 121 79H y
005 05H ♣ 044 2CH , 083 53H S 122 7AH z
006 06H ♠ 045 2DH - 084 54H T 123 7BH {
007 07H • 046 2EH . 085 55H U 124 7CH |
008 08H ◘ 047 2FH / 086 56H V 125 7DH }
009 09H ○ 048 30H 0 087 57H W 126 7EH ~
010 0AH ◙ 049 31H 1 088 58H X 127 7FH DEL
011 0BH ♂ 050 32H 2 089 59H Y 128 80H Ç
012 0CH ♀ 051 33H 3 090 5AH Z 129 81H ü
013 0DH ♪ 052 34H 4 091 5BH [ 130 82H é
014 0EH ♫ 053 35H 5 092 5CH \ 131 83H â
015 0FH ☼ 054 36H 6 093 5DH ] 132 84H ä
016 10H ► 055 37H 7 094 5EH ^ 133 85H à
017 11H ◄ 056 38H 8 095 5FH _ 134 86H å
018 12H ↕ 057 39H 9 096 60H ` 135 87H ç
019 13H ‼ 058 3AH : 097 61H a 136 88H ê
020 14H ¶ 059 3BH ; 098 62H b 137 89H ë
021 15H § 060 3CH < 099 63H c 138 8AH è
022 16H ▬ 061 3DH = 100 64H d 139 8BH ï
023 17H ↨ 062 3EH > 101 65H e 140 8CH î
024 18H ↑ 063 3FH ? 102 66H f 141 8DH ì
025 19H ↓ 064 40H @ 103 67H g 142 8EH Ä
026 1AH → 065 41H A 104 68H h 143 8FH Å
027 1BH ← 066 42H B 105 69H i 144 90H É
028 1CH ∟ 067 43H C 106 6AH j 145 91H æ
029 1DH č 068 44H D 107 6BH k 146 92H Æ
030 1EH ▲ 069 45H E 108 6CH l 147 93H ô
031 1FH ▼ 070 46H F 109 6DH m 148 94H ö
032 20H SPC 071 47H G 110 6EH n 149 95H ò
033 21H ! 072 48H H 111 6FH o 150 96H û
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 114
Dec Hex CHR Dec Hex CHR Dec Hex CHR Dec Hex CHR
034 22H “ 073 49H I 112 70H p 151 97H ù
035 23H # 074 4AH J 113 71H q 152 98H ÿ
036 24H $ 075 4BH K 114 72H r 153 99H Ö
037 25H % 076 4CH L 115 73H s 154 9AH Ü
038 26H & 077 4DH M 116 74H t 155 9BH ¢
156 9CH £ 181 B5H ╡ 206 CEH ╬ 231 E7H Τ
157 9DH ¥ 182 B6H ╢ 207 CFH ╧ 232 E8H Φ
158 9EH ₧ 183 B7H ╖ 208 D0H ╨ 233 E9H Θ
159 9FH ƒ 184 B8H ╕ 209 D1H ╤ 234 EAH Ω
160 A0H á 185 B9H ╣ 210 D2H ╥ 235 EBH δ
161 A1H í 186 BAH ║ 211 D3H ╙ 236 ECH ∞
162 A2H ó 187 BBH ╗ 212 D4H ╘ 237 EDH φ
163 A3H ú 188 BCH ╝ 213 D5H ╒ 238 EEH ε
164 A4H ñ 189 BDH ╜ 214 D6H ╓ 239 EFH ∩
165 A5H Ñ 190 BEH ╛ 215 D7H ╫ 240 F0H ≡
166 A6H ª 191 BFH ┐ 216 D8H ╪ 241 F1H ±
167 A7H º 192 C0H └ 217 D9H ┘ 242 F2H ≥
168 A8H ¿ 193 C1H ┴ 218 DAH ┌ 243 F3H ≤
169 A9H ⌐ 194 C2H ┬ 219 DBH █ 244 F4H ⌠
170 AAH ¬ 195 C3H ├ 220 DCH ▄ 245 F5H ⌡
171 ABH ½ 196 C4H ─ 221 DDH ▌ 246 F6H ÷
172 ACH ¼ 197 C5H ┼ 222 DEH ▐ 247 F7H ≈
173 ADH ¡ 198 C6H ╞ 223 DFH ▀ 248 F8H °
174 AEH « 199 C7H ╟ 224 E0H α 249 F9H ·
175 AFH » 200 C8H ╚ 225 E1H ß 250 FAH ·
176 B0H ░ 201 C9H ╔ 226 E2H Γ 251 FBH √
177 B1H ▒ 202 CAH ╩ 227 E3H π 252 FCH ⁿ
178 B2H ▓ 203 CBH ╦ 228 E4H Σ 253 FDH ²
179 B3H │ 204 CCH ╠ 229 E5H σ 254 FEH ■
180 B4H ┤ 205 CDH ═ 230 E6H µ 255 FFH Blank

Keterangan :
Dec = Decimal (Nilai ASCII)
Hex = Hexadesimal
CHR = Character
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 115
LAMPIRAN 2

DAFTAR TOMBOL PERLUASAN

KODE TOMBOL KODE TOMBOL


3 NUL (Karakter null) 73 Page UP
15 Shift – Tab 75 Panah Kiri
16 Alt - Q 77 Panah Kanan
17 Alt - W 79 END
18 Alt - E 80 Panah Bawah
19 Alt - 81 Page Down
20 Alt - T 82 INS
21 Alt - Y 83 DEL
22 Alt - U 84 .. 93 Shift (F1 .. F10)
23 Alt - I 94 .. 103 Ctrl (F1 .. F10)
24 Alt - O 104 .. 113 Alt (F1 .. F10)
25 Alt - P 114 Ctrl - Print Scrn
30 Alt - A 115 Ctrl - Panah Kiri
31 Alt - S 116 Ctrl - Panah Kanan
32 Alt - D 117 Ctrl – END
33 Alt - F 118 Ctrl – Page Down
34 Alt - G 119 Ctrl – Home
35 Alt - H 120 .. 128 Alt (1 .. 9)
36 Alt - J 129 Alt – 0
37 Alt - K 130 Alt – -
38 Alt - L 131 Alt – =
44 Alt - Z 132 Ctrl – Page Up
45 Alt - X 133 F11
46 Alt - C 134 F12
47 Alt - V 135 Shift – F11
48 Alt - B 136 Shift – F12
49 Alt - N 137 Ctrl – F11
50 Alt - M 138 Ctrl – F12
59 - 68 F1 .. F10 139 Alt – F11
71 HOME 140 Alt – F12
72 Panah Atas

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 116
LAMPIRAN 3
PESAN KESALAHAN

A. KESALAHAN SAAT KOMPILASI


1. Out Of Memory
Memori tidak cukup untuk melakukan proses.
2. Identifier Expected
Pengenal diperlukan pada posisi yang ditunjukkan.
3. Unknown Identifier
Pengenal belum dideklarasikan.
4. Duplicate Identifier
Ada pengenal dengan nama yang sama.
5. Syntax Error
Ada karakter yang tidak diperkenankan.
6. Error In Real Constant
Salah dalam menuliskan konstanta real.
7. Error In Integer Constant
Salah dalam menuliskan konstanta integer.
8. String Constant Exeeds Line
Salah karena string belum diakhiri dengan tanda petik.
9. Too Many Nested Files
File include yang memanggil file include perlu di kurangi.
10. Unexpected End Of File
Biasanya disebabkan salah penulisan begin dan end atau ada suatu komentar yang
belum ditutup.
11. Line Too Long
Panjang karakter dalam baris melebihi 126 karakter.
12. Type Identifier Expected
Pengenal type belum diberikan.
13. Too Many Open File
Terlalu banyak file yang dibuka (dapat diatur melalui file [Link]).
14. Invalid File Name
Nama file salah.
15. File Not Found
File tidak ditemukan.
16. Disk Full
Disk penuh.
17. Invalid Compiler Directive
Pengarah kompiler yang ditunjukkan tidak dikenal.
18. Too Many File
Terlalu banyak file yang dilibatkan sewaktu melakukan kompilasi unit atau
program.
19. Undifined Type In Pointer Definition
Type yang digunakan pada pendefinisian pointer belum dideklarasikan.
20. Variabel Identifier Expected
Pengenal yang ditunjuk seharusnya menyatakan sebuah variabel.
21. Error In Type
Kesalahan dalam pendefinisian type.
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 117
22. Structure Too Large
Type terstruktur terlalu besar (ukuran maksimal yang diperkenankan yaitu 65520
byte)
23. Set Base Type Out Of Range
Tipe dasar dari himpunan harus berada dalam kawasan 0 sampai dengan 255 atau
berupa type enumerasi yang jumlah kemungkinannya tidak lebih dari 256 buah.
24. File Components May Not be Files
Komponen dari file tidak boleh berupa file.
25. Invalid String Length
Panjang string dalam deklarasi harus terletak antara 1 sampai dengan 255.
26. Type Mismatch
Tipe tidak cocok.
27. Invalid Subrange Base Type
Kesalahan pada type dasar subrange.
28. Lower Bound Greater Then Upper Bound
Dalam mendeklarasikan subrange, nilai awal harus lebih kecil dari pada nilai akhir.
29. Ordinal Type Expected
Type yang diperkenankan adalah type ordinal.
30. Integer Constant Expected
Membutuhkan konstanta integer.
31. Constant Expected
Membutuhkan suatu konstanta.
32. Integer or Real Constant Expected
Membutuhkan konstanta real atau integer.
33. Type Identifier Expected
Membutuhkan pengenal type.
34. Invalid Function Result Type
Tipe keluaran fungsi salah (seharusnya berupa tipe sederhana, string atau pointer).
35. Label Identifier Expected
Membutuhkan pengenal type.
36. Begin Expected
Membutuhkan pernyataan Begin.
37. End Expected
Membutuhkan pernyataan End.
38. Integer Expression Expected
Membutuhkan ungkapan integer.
39. Ordinal Expression Expected
Membutuhkan ungkapan ordinal.
40. Boolean Expression Expected
Membutuhkan ungkapan boolean.
41. Operand Type Do Not Match Operator
Type operan tidak sesuai dengan operator.
42. Error In Expression
Kesalahan dalam penulisan ungkapan.
43. Illegal Asignment
Kesalahan dalam penyataan penugasan.
44. Field Identifier Expected
Membutuhkan field dari record.
45. Object File Too Large
File .OBJ yang berukuran lebih dari 64 KB tidak dapat di LINK oleh Turbo Pascal.
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 118
46. Undefined External
Prosedur atau fungsi eksternal belum didefinisikan.
47. Invalid Object File Record
Ada suatu obyek record dalam file .OBJ yang tidak sah.
48. Code Segment Too Large
Kode dalam segmen kode terlalu besar. Prosedur atau funsi perlu dipecah dalam
beberapa unit.
49. Data Segment Too Large
Data dalam segmen data terlalu besar. Tempatkan data dalam heap.
50. Do Expected
Membutuhkan pernyataan Do.
51. Invalid Public Definition
52. Invalid Extrn Definition
53. Too Many Extrn Definition
Kesalahan yang berkaitan dengan bahasa Assembly.
54. Of Expected
Membutuhkan pernyataan Of.
55. Interface Expected
Membutuhkan interface.
56. Invalid Relocatable Reference
57. Then Expected
Membutuhkan pernyataan Then.
58. To or Downto Expected
Membutuhkan pernyataan To atau Downto.
59. Undefined Forward
Definisi dari prosedur atau fungsi belum diberikan.
60. Too Many Procedures
Terlalu banyak prosedur atau fungsi. Jumlah prosedur atau fungsi per modul tidak
boleh lebih dari 512 buah.
61. Invalid Type Cast
Kesalahan dalam melakukan typecast (konversi type).
62. Division By Zero
Kesalahan karena pembagian bilangan dengan nol.
63. Invalid File Type
Tipe file yang digunakan tidak mengenal prosedur atau fungsi penanganan file yang
ditunjukkan.
64. Can Not Read or Write Variables of This Type
Tipe dari variabel yang ditunjuk tidak dapat digunakan pada instruksi Write dan
Writeln atau pada Read atau Readln.
65. Pointer Variabel Expected
Membutuhkan variabel pointer.
66. String Variabel Expected
Membutuhkan variabel string.
67. String Expression Expected
Membutuhkan ungkapan string.
68. Circular Unit Reference
Kesalahan disebabkan dua buah unit saling memanggil.
69. Unit Name Mismatch
Unit pada [Link] tidak cocok dengan nama yang dinyatakan klausa USES

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 119
70. Unit Version Mismatch
Versi tidak cocok. (untuk mengatasinya, unit perlu dikompilasi lagi)
71. Duplicate Unit Name
Ada duplikasi nama unit
72. Unit File Format Error
Ada suatu kesalahan format pada [Link]
73. Implementation Expected
Kurang IMPLEMENTATION
74. Constant And Case Types Do Not Match
Antara konstanta dan tipe CASE tidak cocok
75. Record Variabel Expected
Membutuhkan variabel record
76. Constant Out Of Range
Nilai konstanta melebihi nilai kawasannya (misalnya karena variabel bertipe Byte
diberi nilai 567).
77. File Variabel Expected
78. Pointer Expression Expected
79. Integer Or Real Expression Expected
80. Label Not Within Current Blok
Kesalahan disebabkan ada penyataan goto yang menunjuk kelabel yang kotaknya
diluar blok.
81. Label Already Defined
Label sudah ada pada pernyataan
82. Undifined Label In Preceding Statement Part
Label belum didefinisikan.
83. Invalid @argument
Operator @ hanya dapat dikenalkan pada variabel, prosedur atau fungsi
84. UNIT Expected
85. “;” Expected
86. “:” Expected
87. “,” Expected
88. “(“ Expected
89. “)” Expected
90. “=” Expected
91. “:=” Expected
92. “[“ or “(.“ Expected
93. “]” or “.)” Expected
94. “.” Expected
95. “..” Expected
96. Too Many Variables
Jumlah variabel terlalu banyak. Total variabel global dalam sebuah program atau
unit tidak boleh melebihi 64 KB. Total variabel lokal dalam prosedur atau fungsi
juga tidak melebihi 64 KB.
97. Invalid For Control Variable
Variabel control (kendali) dalam FOR harus berupa tipe sederhana.
98. Integer Variable Expected
99. Files Are Not Allowed Here
Tipe file tidak diperkenankan diletakkan pada lokasi yang ditunjuk.
100. String Length Mismatch
Panjang constanta sering tidak cocok dalam jumlah komponen dalam array karakter.
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 120
101. Invalid Ordering Of Fileds
Kesalahan dalam meletakkan urutan field dalam tipe record.
102. String Constant Expected
103. Integer Or Real Variable Expected
104. Ordinal Variable Expected
105. INLINE Error
Kesalahan dalam instruksi INLINE
106. Character Expression Expected
107. Too Many Relocation Expected
108. CASE Constant Out Of Range
109. Eror In Statement
Kesalahan dalam pernyataan.
110. Cannot Call An Interrupt Procedure
Prosedure interrupt tak dapat dipanggil secara langsung.
111. Must Be In 8087 Mode To Compile This
Tipe seperti Comp, Doudle, Extended, Single hanya bisa dikompilasi kalau ada
prosesor numerik 8087. gunakan pengarah kompiler {N+} supaya bisa dikompilasi.
112. Target Address Not Found
Tampil kalau kita melakukan pilihan compile/Find pada IDE dan alamat target tidak
ada.
113. Include Files Are Not Allowed Here
Setiap bagian dari pernyataan harus secara keseluruhan berada dalam satu file
114. NIL Expected
Membutuhkan NIL
115. Invalid Qualifier
Kemungkinan kesalahan:
- Ada indek terhadap suatu variabel, padahal variabel tersebut bukanlah array
- Field diterapkan pada variabel bukan record
- Variabel yang bukan pointer diperlakukan sebagai pointer
116. Invalid Variable Reference
117. Too Many Symbol
Terlalu banyak simbol
118. Statement Part Too Large
Terlalu banyak pernyataan-pernyataan perlu di bagi-bagi kedalam prosedur.
119. Files Must Be Var Parameters
Parameter file harus berupa VAR
120. Too Many Conditional Symbols
121. Misplaced Conditional Derictive
122. ENDIF Directive Missing
123. Error In Initial Conditional Defines
Kesalahan yang berkaitan dengan pengarah kondisi ({$IFDEF}-{$ENDIF}
124. Critical Disk Error
Kesalahan yang berkaitan dengan disk (misalnya Pintu drive belum tertutup)
125. Cannot Evaluate This Expression
Sistem turbo pascal tak bisa menghitung ungkapan yang ditunjukkan
126. Expression Incorrectly Terminated
Ungkapan kurang lengkap
127. Invalid Format Specifier
128. Invalid Indirect Reference

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 121
129. Struktured Variabel Are Not Allowed Here
Operasi yang dilakukan terhadap variabel terstruktur tidak diperkenankan
(misalnya melakukan perkalian terhadap dua buah record)
130. Canot Evaluated Without System Unit
Unit sytem tidak ada pada [Link]
131. Cannot Acces This Symbol
Tidak dapat mengakses simbol yang ditunjukan
132. Invalid Floayting-Poin Operation
Ada pembagian dengan bilangan nol atau operasi terhadap bilangan real
menyebabkan oveflow
133. Cannot Compile Overlays To Memory
Program yang mengandung ovelay harus dikompilasi ke disk
134. Procedure Or Fungtion Variable Expected
Operator @ hanya dapat dikenakan pada variabel prosedur atau fungsi.
135. Invalid Procedure Or Fungtion Reference
- Disebabkan adanya prosedur yang dipanggil dalam suatu ungkapan
- Prosedur atau fungsi perlu dikompilasi dengan menyertakan pengarah compiler
{$F+}
136. Cannon Overlay This Unit
Unit hanya bisa di overlay dengan menyertakan pengaruh {$O}

B. RUN – TIME ERROR


1. File Not Found
File yang diakses tidak ditemukan. Perintah yang menyebabkan timbulnya
kesalahan ini adalah Reset, Rename, Append dan Erase.
2. Path Not Found
Path atau directory tidak ditemukan atau nama path atau direktori salah (invalid).
Perintah yang menyebabkan timbulnya kesalahan ini adalah Reset, Rename,
Append, Erase, ChDir, MkDir dan RmDir.
3. Too Many Open Files
Terlalu banyak file yang dibuka. Kesalahan ini dapat ditimbulkan oleh perintah
Reset, ReWrite dan Append.
4. File Access Denied
Akses terhadap file gagal.
5. Invalid File Handle
Kesalahan penanganan file.
6. Invalid File Access Code
Kesalahan terjadi karena kode akses terhadap file tidak berlaku (invalid)
7. Invalid Drive Number
Kode drive tidak berlaku.
8. Cannot Remove Current Directory
Direktori tidak dapat dihapus.
9. Cannot Rename Across Drives
Penggantian nama file harus dalam satu drive.
10. Disk Read Error
Kesalahan terjadi karena ada operasi pembacaan (read) pada posisi EOF (akhir file)
pada file bertipe (acak)
11. Disk Write Error
Disk penuh ketika ada penulisan ke disk
Bahasa Pemrograman Pascal
FERDINAL. R, [Link]
Page 122
12. File Not Assigned
Variabel file pada reset, Rewrite, Append, Rename atau Erase dikaitkan dengan
nama file.
13. File Not Open
File belum dibuka
14. File Not Open For Input
Ada operasi membaca file pada file dibuka bukan dengan mode input.
15. File Not Open For Output
File tidak dibuka untuk output.
16. Invalid Numeric Format
Format numerik salah ketika ada pembacaan oleh Read atau Readln pada file teks.
17. Disk Is Write Protected
18. Unknown Unit
19. Drive Not Ready
20. Unknown Command
21. CRC Error In Data
22. Bad Drive Request Structure Length
23. Disk Seek Error
24. Unknown Media Type
25. Printer Out Of Range
26. Device Write Fault
27. Device Read Fault
28. Hardware Failure
29. Devision by Zero
30. Range Check Error
Kesalahan yang terjadi karena suatu nilai berada di luar kawasan yang ditentukan.
31. Stack Overflow Error
Tidak ada lagi ruang dalam stack.
32. Heap Overflow Error
Tidak ada lagi ruang dalam heap.
33. Invalid Pointer Operation
Salam dalam melakukan Dispose dan FreeMem.
34. Floating Point Overflow
Operasi bilangan real menimbulkan overflow.
35. Floating Point Underflow
Terjadinya Underflow.
36. Invalid Floating Point Operation
Operasi terhadap bilangan real ada yang tidak berlaku.
37. Overlay Manager Not Installed
OverInit belum dipanggil atau pemanggilan terhadapnya gagal.
38. Overlay File Read Error
Ada suatu kesalahan sewaktu manajer overlay membaca file overlay.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]
Page 123
DAFTAR PUSTAKA

Abdul Kadir, Pemrograman Dasar Turbo Pascal, Andi Offset, Yogyakarta, 1993.

Bambang Harianto, Struktur Data, Bandung, Informatika, 1999.

Heri Sismoro, Struktur Data dan Pemrograman dengan Pascal, Andi Offset, 2004.

Isap Santoso, Struktur Data Menggunakan Turbo Pascal 6.0, Andi Offset, Yogyakarta.

Jogiyanto. HM, Teori dan Aplikasi Program Komputer Bahasa Turbo Pascal, Jilid I & II ,
Andi Offset, Yogyakarta, 1993.

Markus Robijanto Kusuma, Belajar Turbo C dengan Cepat dan Mudah, Elex Media
Komputindo, Jakarta, 1995.

Munir Renaldi, Algoritma Pemrograman I Dalam Pascal dan C, Bandung, Informatika, 1999.

Paulus Bambangwirawan, Struktur Data dengan C, Andi Offset, Yogyakarta, 2004.

Bahasa Pemrograman Pascal


FERDINAL. R, [Link]

Anda mungkin juga menyukai