official site of lilis setyowati - gunadarma university

119
0 MODUL ALGORITMA & PEMROGRAMAN 2 (PASCAL) Lilis Setyowati, ST., MMSI 9/1/2018

Upload: others

Post on 15-Oct-2021

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Official Site of LILIS SETYOWATI - Gunadarma University

0

MODUL ALGORITMA & PEMROGRAMAN 2 (PASCAL) Lilis Setyowati, ST., MMSI

9/1/2018

Page 2: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 1

KATA PENGANTAR

Puji Syukur kehadirat Tuhan Yang Maha Esa karena atas limpahan rahmat-Nya sehingga

modul Algoritma & Pemrograman 2 (Pascal) dapat diselesaikan. Modul ini disusun

berdasarkan Satuan Acara Perkuliahan (SAP) Jurusan Teknik Informatika, Fakultas

Teknologi Industri Universitas Gunadarma. Modul ini juga dilengkapi dengan contoh

program dan output yang dapat digunakan untuk latihan mahasiswa terkait dengan

materi yang terdapat pada modul.

Disadari masih banyak kekurangan dalam penyusunan modul ini. Oleh karena itu, kritik

dan saran demi perbaikan dan kesempurnaan modul ini sangat diharapkan. Semoga

modul ini dapat bermanfaat bagi kita semua, khususnya para mahasiswa.

Jakarta, September 2018

Page 3: Official Site of LILIS SETYOWATI - Gunadarma University

2 Lilis Setyowati, ST., MMSI

DAFTAR ISI

KATA PENGANTAR .......................................................................................................... 0

DAFTAR ISI ...................................................................................................................... 2

1. KONSEP DASAR BAHASA PASCAL ............................................................................. 8

1.1. Sejarah Bahasa Pascal ...................................................................................... 8

1.2. Compiler Pascal: UCSD Pascal, Microsoft Pascal dan Turbo Pascal .................... 8

1.3. Versi Turbo PASCAL ......................................................................................... 9

1.4. Kelebihan dan Kekurangan PASCAL ................................................................ 10

1.4.1. Kelebihan Pascal .................................................................................... 10

1.4.2. Kekurangan Pascal ................................................................................. 10

1.5. Struktur dan Komponen Dasar Program Pascal .............................................. 10

1.5.1. Aturan dalam Pascal............................................................................... 11

1.5.2. Judul/ Nama Program ............................................................................ 12

1.5.3. Bagian Deklarasi ..................................................................................... 12

1.5.4. Bagian Statement (Pernyataan) .............................................................. 12

1.6. Komponen Dasar Program Pascal .................................................................. 13

1.6.1. Simbol Dasar .......................................................................................... 13

1.6.2. Identifier (penyebut) .............................................................................. 14

1.6.3. Identifier Standar ................................................................................... 14

1.6.4. Jangkauan Identifier ............................................................................... 15

1.7. Tipe Data Pada Pascal .................................................................................... 16

1.7.1. Tipe Data Scalar ..................................................................................... 17

1.7.1.1. Tipe Data Standar ........................................................................... 17

1.7.1.2. Tipe Data Integer ............................................................................ 17

1.7.1.3. Tipe Data Real ................................................................................ 18

1.7.1.4. Char ............................................................................................... 19

1.7.1.5. Tipe Data Boolean .......................................................................... 20

1.7.2. Tipe Data User Defined (Bentukan) ........................................................ 20

1.7.3. Tipe Data Structured .............................................................................. 21

1.7.3.1. Tipe Data Array .............................................................................. 21

Page 4: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 3

1.7.4. Tipe Data Pointer ................................................................................... 23

1.8. Variabel ......................................................................................................... 23

1.9. Konstanta ...................................................................................................... 24

1.10. Ekspresi ..................................................................................................... 25

1.11. Operand dan Operator ............................................................................... 26

1.11.1. Operand ................................................................................................. 26

1.11.2. Operator ................................................................................................ 26

1.11.2.1. Asignment operator ....................................................................... 26

1.11.2.2. String operator ............................................................................... 27

1.11.2.3. Set operator ................................................................................... 27

1.11.2.4. Relational operator (Operator Perbandingan) ................................. 27

1.11.2.5. Aritmatika Operator ....................................................................... 28

1.11.2.6. Unary , Binary, dan Ternary Operator ............................................. 29

1.11.2.6.1. Unary Operator ......................................................................... 29

1.11.2.6.2. Binary Operator ......................................................................... 29

1.11.2.6.3. Ternary Operator ....................................................................... 29

1.11.2.7. Logical Operator (Operator logika).................................................. 29

1.11.2.8. Bitwise operator ............................................................................. 30

1.11.2.9. Address Operator (Pointer)............................................................. 30

1.12. Input dan Output pada Pascal .................................................................... 30

1.12.1. Statement Read dan Readln ................................................................... 30

1.12.1.1. Penggunan Read dan Readln pada tipe data angka (integer/real) ... 31

1.12.1.2. Penggunaan Read dan Readln pada tipe data char .......................... 33

1.12.1.3. Penggunaan read dan readln untuk tipe data string ........................ 34

1.12.2. Statement Write dan Writeln ................................................................. 36

1.13. Format Output ........................................................................................... 38

1.13.1. Parameter CH:N ..................................................................................... 39

1.13.2. Parameter S:N ........................................................................................ 39

1.13.3. Parameter I:N......................................................................................... 39

1.13.4. Parameter R:N ....................................................................................... 40

1.13.5. Parameter R:N:M ................................................................................... 40

Page 5: Official Site of LILIS SETYOWATI - Gunadarma University

4 Lilis Setyowati, ST., MMSI

1.13.6. Parameter B:N ....................................................................................... 40

1.14. Pengaturan Letak Di Layar.......................................................................... 40

1.14.1. Prosedur CLRSCR .................................................................................... 41

1.14.2. Prosedur GOTOXY .................................................................................. 41

1.14.3. Prosedur CLREOL ................................................................................... 41

1.14.4. Prosedur Delline .................................................................................... 42

1.14.5. Prosedur Insline ..................................................................................... 43

1.14.6. Prosedur Delay....................................................................................... 44

1.15. Pengaturan Bentuk Di Printer .................................................................... 44

2. MANIPULASI STRING ............................................................................................. 45

2.1. Prosedur Standar Pada String ........................................................................ 45

2.1.1. Prosedur DELETE .................................................................................... 45

2.1.2. Prosedure INSERT .................................................................................. 46

2.1.3. Prosedur STR.......................................................................................... 46

2.1.4. Prosedur VAL ......................................................................................... 47

2.2. Fungsi Standar Pada String............................................................................. 47

2.2.1. Fungsi CONCATE .................................................................................... 48

2.2.2. Fungsi COPY ........................................................................................... 48

2.2.3. Fungsi POS ............................................................................................. 48

2.2.4. Fungsi LENGTH ....................................................................................... 49

3. PERULANGAN PADA PASCAL ................................................................................. 50

3.1. Struktur Perulangan FOR-DO ......................................................................... 50

3.1.1. Perulangan FOR-TO-DO .......................................................................... 50

3.1.2. Perulangan FOR-DOWNTO-DO ............................................................... 52

3.2. Struktur Perulangan WHILE -DO ..................................................................... 53

3.2.1. Membuat Perulangan Hitung Mundur dengan WHILE-DO ...................... 54

3.2.2. Membuat Perulangan Lompat dengan WHILE-DO .................................. 55

3.3. Struktur Perulangan REPEAT -UNTIL............................................................... 55

3.3.1. Membuat Perulangan Lompat dengan REPEAT-UNTIL ............................ 57

3.4. Perulangan Bersarang .................................................................................... 58

3.4.1. Perulangan bersarang pada FOR-DO ...................................................... 58

Page 6: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 5

3.4.2. Perulangan bersarang pada WHILE-DO ................................................... 59

3.4.3. Perulangan bersarang pada REPEAT UNTIL ............................................. 60

3.4.4. Perintah BREAK ...................................................................................... 61

3.4.5. Perintah CONTINUE ................................................................................ 61

4. PERCABANGAN PADA PASCAL ............................................................................... 64

4.1. Statement IF .................................................................................................. 64

4.1.1. IF - THEN ................................................................................................ 64

4.1.2. IF-THEN-ELSE.......................................................................................... 65

4.1.3. IF Bersarang (Nested IF) ........................................................................ 66

4.2. Statement CASE ............................................................................................. 69

5. PROCEDURE PADA PASCAL .................................................................................... 72

5.1. Procedure Dengan Parameter ........................................................................ 73

5.1.1. Dibuat bersifat global: Harus dideklarasikan di atas modul yang

menggunakannya. ................................................................................................. 74

5.1.2. Cara kedua adalah dengan mengirimkan variabel sebagai parameter ke

modul yang membutuhkannya. ............................................................................. 75

5.1.2.1. Pengiriman parameter secara nilai ................................................. 75

5.1.2.2. Pengiriman Parameter Secara Acuan .............................................. 77

5.1.2.3. Pengiriman Parameter Secara Nilai Sebagai Acuan ......................... 77

5.2. Procedure Memanggil Procedure Yang Lain ................................................... 78

5.3. Procedure Tersarang ...................................................................................... 78

5.4. Procedure Memanggil Dirinya Sendiri ............................................................ 79

5.5. Acuan Forward .............................................................................................. 79

5.6. Procedure Standar ......................................................................................... 80

5.6.1. Procedure Standar EXIT .......................................................................... 80

5.6.2. Procedur Standar Halt ............................................................................ 80

5.6.3. Procedur Standar Move ......................................................................... 80

5.6.4. Procedur Standar FillChar ....................................................................... 81

6. FUNGSI PADA PASCAL ........................................................................................... 82

6.1. Perbedaan Fungsi Dengan Prosedur ............................................................... 82

6.2. Fungsi Tanpa Parameter ................................................................................ 83

6.3. Parameter Dalam Fungsi ................................................................................ 84

Page 7: Official Site of LILIS SETYOWATI - Gunadarma University

6 Lilis Setyowati, ST., MMSI

6.4. Fungsi Pangkat............................................................................................... 85

6.5. Fungsi Rekursif .............................................................................................. 86

6.6. Fungsi Standar ............................................................................................... 86

6.6.1. Fungsi Standar Aritmatika ...................................................................... 86

6.6.2. Fungsi Standar Transfer.......................................................................... 88

6.6.3. Fungsi Standar Lainnya........................................................................... 90

7. ARRAY DAN RECORD PADA PASCAL ....................................................................... 91

7.1. ARRAY ........................................................................................................... 91

7.1.1. Deklarasi Array ....................................................................................... 91

7.1.1.1. Deklarasi Tipe Index Subrange Integer ............................................ 92

7.1.1.2. Deklarasi Tipe Index Subrange Integer ............................................ 92

7.1.1.3. Deklarasi Tipe Index Subrange Byte ................................................ 92

7.1.1.4. Deklarasi Tipe Index Subrange Word .............................................. 93

7.1.1.5. Deklarasi Tipe Index Subrange Boolean .......................................... 93

7.1.1.6. Deklarasi Tipe Index Subrange Char ................................................ 93

7.1.1.7. Deklarasi Tipe Index Skalar ............................................................. 93

7.1.1.8. Deklarasi konstanta Array ............................................................... 94

7.1.2. String Sebagai Array Tipe Char ............................................................... 94

7.1.3. Parameter Array .................................................................................... 95

7.1.4. Array Dimensi Banyak ............................................................................ 95

7.1.5. Dynamic Array Pascal ............................................................................. 96

7.2. RECORD ......................................................................................................... 97

8. FILE DAN OPERASINYA PADA PASCAL .................................................................... 99

8.1. File Teks......................................................................................................... 99

8.1.1. Membuat File Text ................................................................................. 99

8.1.1.1. Mendeklarasikan Variabel File ........................................................ 99

8.1.1.2. Menghubungkan variabel file dengan nama file ........................... 100

8.1.1.3. Membuat file text aktif ................................................................. 100

8.1.1.4. Menulis ke dalam file text ............................................................ 100

8.1.1.5. Menutup file ................................................................................ 100

8.1.2. Membaca File Teks............................................................................... 101

Page 8: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 7

8.1.2.1. Mendeklarasikan variabel file ....................................................... 101

8.1.2.2. Menghubungkan variabel file dengan nama file ............................ 101

8.1.2.3. Membaca isi file dan menampilkannya di layar ............................. 101

8.1.2.4. Menutup file ................................................................................ 102

8.1.3.1. Mendeklarasikan variabel file ....................................................... 102

8.1.3.2. Menghubungkan variabel file dengan nama file ............................ 103

8.1.3.3. Menambah isi file ......................................................................... 103

8.1.3.4. Menampilkannya di layar ............................................................. 103

8.1.3.5. Menutup file ................................................................................ 103

8.1.4. Metode Pembacaan file oleh Turbo Pascal ........................................... 104

8.2. File Bertipe .................................................................................................. 104

8.2.1. Membuat File Bertipe .......................................................................... 105

8.2.1.1. Mendeklarasikan variabel file ....................................................... 105

8.2.1.2. Menghubungkan variabel file dengan nama file ............................ 105

8.2.1.3. Membuat/ membuka file bertipe.................................................. 106

8.2.2. Menulis/ Membaca File Bertipe............................................................ 106

8.2.3. Menutup File........................................................................................ 106

8.2.4. Fungsi-fungsi yang digunakan dalam file Bertipe .................................. 108

8.3. File Tak Bertipe ............................................................................................ 109

8.4. Menangani Kesalahan I/O pada File ............................................................. 112

8.5. Manipulasi File ............................................................................................. 113

8.5.1. Parameter ............................................................................................ 113

8.5.2. Atribut File ........................................................................................... 113

8.5.3. Menghapus File .................................................................................... 114

8.5.4. Mengubah nama file ............................................................................ 114

8.5.5. Tanggal dan waktu File ......................................................................... 115

8.5.6. Mencari File ......................................................................................... 116

8.5.7. Mengecek Keberadaan File .................................................................. 117

8.5.8. Memberikan directory File ................................................................... 117

DAFTAR PUSTAKA ....................................................................................................... 118

Page 9: Official Site of LILIS SETYOWATI - Gunadarma University

8 Lilis Setyowati, ST., MMSI

1. KONSEP DASAR BAHASA PASCAL

1.1. Sejarah Bahasa Pascal

Bahasa Pascal dirancang oleh Prof. Nicklaus Wirth dari Technical University di Zurich,

Switzerland pada tahun 1971. Nama Pascal dipilih untuk menghormati Blaise Pascal,

seorang ilmuwan matematis Prancis yang pada tahun 1642 pembuat kalkulator mekanis

pertama di dunia. Kalkulator ini menjadi cikal bakal komputer modern. Bahasa Pascal

merupakan pengembangan dari bahasa Algol 60 dan Algol W (turunan Algol 60).

Niklaus Wirth pada awalnya merancang bahasa Pascal untuk mengajarkan

pemrograman kepada mahasiswa di Universitas ETH Zürich di Swiss. Pascal di desain

menggunakan structured programming yang kemudian menjadi populer dan banyak

digunakan oleh bahasa pemrograman setelahnya.

Sejak dipublikasikan oleh pada 1970, bahasa pemrograman Pascal mulai digunakan oleh

berbagai universitas di Eropa dan Amerika. Walaupun demikian, compiler pascal

(program untuk menjalankan perintah-perintah bahasa pascal) masih terbatas untuk

kalangan tertentu. Karena saat itu harga komputer masih sangat mahal dan umumnya

hanya terdapat di perusahaan atau universitas besar.

Pascal merupakan bahasa pemrograman data-oriented. Programmer bisa membuat tipe

data sendiri (selain tipe data standar yang disediakan seperti integer, real,

char, dan boolean). Walaupun demikian, pascal sangat ketat aturan. Setiap variabel

hanya bisa menggunakan tipe data tertentu dan harus dideklarasikan terlebih dahulu.

Tidak seperti bahasa pemograman lain pada saat itu, bahasa Pascal mirip dengan bahasa

inggris sehari-hari, sehingga mudah bagi programmer pemula untuk mulai membuat

kode program.

Bahasa Pascal bersaing dengan bahasa pemrograman lain pada era tersebut,

seperti Algol, Basic, Fortran dan C.

1.2. Compiler Pascal: UCSD Pascal, Microsoft Pascal dan Turbo Pascal

University of California, San Diego (UCSD) membuat salah satu compiler pertama pascal,

yakni UCSD Pascal. Compiler ini ditujukan untuk sistem operasi buatan UCSD sendiri,

yang dikenal dengan UCSD p-System. UCSD p-System merupakan salah satu sistem

operasi yang bisa dipilih jika membeli IBM PC pada saat itu, selain UCSD p-System, IBM

juga menyediakan PC dengan sistem operasi CP/M-86 dan PC DOS buatan Microsoft

(cikal bakal Windows).

Page 10: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 9

Melihat perkembangan Pascal, Microsoft juga mengeluarkan produk Microsoft Pascal.

Namun karena harga yang relatif mahal, compiler ini tidak terlalu populer, dan segera

digantikan dengan Microsoft QuickPascal untuk dapat bersaing dengan Turbo Pascal.

Pada saat itu, untuk menjalankan sebuah kode program (termasuk Pascal), seorang

programmer harus menulis kode program pada text editor, kemudian menjalankannya

(men-compile-nya) menggunakan program terpisah. Jika membutuhkan library

tambahan, maka perlu melakukan proses berikutnya, yakni linker. Alur kerja pembutan

program ini dikenal dengan istilah edit/compile/link cycle.

Philippe Kahn (seorang enterpreneur yang baru saja mendirikan sebuah perusahaan

software Borland pada tahun 1983) melihat peluang bisnis dalam bahasa Pascal dan

menggabungkan proses edit, compile dan link dalam satu produk, yakni Turbo

Pascal. Borland, adalah perusahaan software yang saat itu berbasis di Scotts Valley,

California (sekarang pindah ke Austin, Texas).

Turbo Pascal merupakan compiler Pascal yang revolusioner: cepat dan murah, terutama

jika dibandingkan dengan UCSD Pascal dan Microsoft Pascal. Sebagai gambaran, harga

compiler pascal saat itu berkisar antara US $400 – $600, namun Turbo Pascal dijual

seharga $45. Selain itu, Turbo Pascal mampu menjalankan kode program jauh lebih

cepat dan membutuhkan sedikit memory. Karena inilah Borland menggunakan kata

“turbo” untuk compiler pascal buatan mereka.

Pada awal kemunculannya, Turbo Pascal mendukung 3 sistem operasi, yakni CP/M,

CP/M-86, and DOS.

1.3. Versi Turbo PASCAL

Selama periode 1983 – 1992, Borland merilis 10 versi Turbo Pascal, terdiri dari 8 versi

untuk MS DOS, dan 2 versi untuk Windows. Berikut adalah tanggal release Turbo Pascal:

Turbo Pascal 1 – November 20, 1983 – versi pertama, 64kb limit, CP/M-80, CP/M-86, DOS

Turbo Pascal 2 – April 17, 1984 – 8087 support via optional compiler

Turbo Pascal 3 – September 17, 1986 – overlays, 8087 compiler, BCD compiler

Turbo Pascal 4 – November 20, 1987 – separately compiled units

Turbo Pascal 5 – August 24, 1988 – integrated debugging, dynamic overlays

Turbo Pascal 5.5 – May 2, 1989 – mendukung pemrograman object

Turbo Pascal 6 – October 23, 1990 – Dirilis juga dengan nama Turbo Vision

Turbo Pascal for Windows 1.0 – February 13, 1991 – versi pertama untuk 16-bit Windows 3.0, Object Windows Library, Whitewater Resource Toolkit (WRT)

Page 11: Official Site of LILIS SETYOWATI - Gunadarma University

10 Lilis Setyowati, ST., MMSI

Turbo Pascal for Windows 1.5 – June 8, 1992 – Windows 3.1, Resource Workshop, versi terakhir untuk Windows.

Turbo/Borland Pascal 7 – October 27, 1992 – DPMI 16/32 bit, versi terkahir untuk MS DOS.

1.4. Kelebihan dan Kekurangan PASCAL

Setiap Bahasa pemrograman pasti memiliki keunggulan (kelebihan) dan kekurangan,

begitu juga pada bahasa pemrograman pascal. Berikut kelebihan dan kekurangan

Bahasa Pascal:

1.4.1. Kelebihan Pascal

Tipe Data Standar, tipe-tipe data standar yang telah tersedia pada kebanyakan bahasa pemrograman.

Pascal memiliki tipe data standar: boolean, integer, real, char, string,

User defined Data Types, programmer dapat membuat tipe data lain yang diturunkan dari tipe data standar.

Strongly-typed, programmer harus menentukan tipe data dari suatu variabel, dan variabel tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain dari format yang ditentukan.

Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (procedure dan function) yang dapat dipergunakan berulang-ulang.

Sederhana dan Ekspresif, memiliki struktur yang sederhana dan sangat mendekati bahasa manusia (bahasa Inggris) sehingga mudah dipelajari dan dipahami.

1.4.2. Kekurangan Pascal

Versi awal Pascal kurang cocok untuk aplikasi bisnis. Hal ini berkaitan dengan keterbatasan dukungan basis data.

TIdak mendukung pemrograman berorientasi objek.

Pascal tidak fleksibel dan banyak kekurangan yang dibutuhkan untuk membuat aplikasi yang besar.

1.5. Struktur dan Komponen Dasar Program Pascal

Struktur dari suatu program Pascal terdiri atas sebuah judul program dan suatu blok

program atau badan program. Blok program dibagi lagi menjadi dua bagian, yaitu

bagian deklarasi dan bagian pernyataan (statement).

Page 12: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 11

Program Nama_Program;

uses…..

Label Nama_Label;

CONST…..;

TYPE……..;

VAR………;

Procedure Nama_Prosedur;

……………………………………..;

……………………………………..;

Function Nama_Fungsi……;

……………………………………..;

……………………………………..;

begin

(instruksi program)

……………………………………..;

……………………………………..;

……………………………………..;

……………………………………..;

end.

Contoh Program (Menghitung luas bidang berbentuk empat persegi panjang dengan

panjang P dan lebar L.)

Program Luas; {Judul} Var P, L, Luas : real; {Deklarasi Variabel} Begin {awal program utama} Read (P,L); {statement} Luas := P*L; {statement} Write (P,L,Luas); {statement} End. {akhir program}

1.5.1. Aturan dalam Pascal

Akhir sebuah program Pascal ditandai dengan tanda baca titik (.) setelah END

yang paling akhir.

Tanda titik koma (;) merupakan pemisah antar instruksi satu dengan lainnya.

Judul/ Nama Program (Penjelasan mengenai program yang berisi uraian singkat mengenai apa yang dilakukan oleh program)

Deklarasi piranti

Deklarasi label

Deklarasi konstanta

Deklarasi tipe

Deklarasi variabel

Deklarasi prosedur

Deklarasi fungsi

Bagian awal program utama

Bagian akhir program

Bagian Pernyataan (statement)

Bagian Deklarasi

Blok Program/ Badan Program

Page 13: Official Site of LILIS SETYOWATI - Gunadarma University

12 Lilis Setyowati, ST., MMSI

Beberapa statement boleh ditulis menjadi satu baris dipisahkan dengan tanda

baca titik koma (;)

Contoh : simpan := akhir; akhir := simpan + awal;

Baris komentar diletakkan diantara tanda (* dan *) atau diantara tanda { dan }

Contoh : Var rerata : real; (*nilai rata-rata*)

Nil1 : real; {nilai ujian}

1.5.2. Judul/ Nama Program

Judul program sifatnya adalah optional dan tidak signifikan di dalam program

(sebagai dokumentasi saja). Jika judul ditulis dapat digunakan untuk memberi nama

program dan daftar dari parameter tentang komunikasi program dengan lingkungannya

yang sifatnya sebagai dokumentasi saja. Judul program bisa ditulis, namun harus terletak

pada awal dari program dan diakhiri dengan titik koma ( ; ).

Judul program tidak signifikan terhadap proses program.Misalnya program Anda hanya

menampilkan hasil saja, tetapi tidak meminta data input pada judul program dapat

didokumentasikan dengan ditulis sebagai berikut :

program contoh (output); atau

program contoh (layar);

Parameter tentang komunikasi program dengan lingkungan ditulis di dalam tanda

kurung buka dan tutup ( ) dan dapat ditulis apapun dengan dipisahkan oleh koma.

Contoh penulisan judul program yang benar :

program Nilai (UTS,UAS);

1.5.3. Bagian Deklarasi

Bagian deklarasi digunakan bila di dalam program digunakan pengenal (identifier).

Identifier dapat berupa label, konstanta, tipe, variabel, prosedur dan fungsi. Jika suatu

program menggunakan identifier, Pascal menuntut supaya identifier tersebut

diperkenalkan terlebih dahulu sebelum digunakan, yaitu dengan dideklarasikan terlebih

dahulu pada bagian ini.

1.5.4. Bagian Statement (Pernyataan)

Statement (pernyataan) merupakan instruksi atau gabungan instruksi yang

menyebabkan komputer melakukan aksi.

Page 14: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 13

Type statement dalam Pascal terdiri atas :

a. Sederhana :

- menandai sebuah item data ke sebuah variabel (assigment statement)

contoh : X := Y * 4.135

- pemanggilan procedure dan goto statement

b. Terstruktur:

- Compound Statement

contoh : Begin read (x) ; y := x + 5; write (y) End.

- Repetitive Statement

contoh :

For I := 1 to 100 do write (count);

- Conditional Statement

contoh :

If x > 100 then write (s) else write (p) ;

1.6. Komponen Dasar Program Pascal

Pola susun bahasa Pascal dibentuk dengan menggunakan komponen bahasa

pemrograman yang umum, yaitu Simbol Dasar, Reserved Word (kata pasti), dan

Identifier (penyebut).

1.6.1. Simbol Dasar

Simbol dasar pada Pascal terdiri atas :

a. Simbol huruf, yaitu huruf A sampai dengan Z atau a sampai dengan z. (huruf besar dan kecil).

b. S imbol angka atau digit yaitu : 0,1,2,3,4,5,6,7,8,9. c. Simbol khusus, yaitu + - * / ; := , ‘ = < > <= >= <> : { } ( ) [ ]

Page 15: Official Site of LILIS SETYOWATI - Gunadarma University

14 Lilis Setyowati, ST., MMSI

1.6.1. Reserved Word (kata pasti)

Reserved Word adalah suatu kata yang secara mutlak tidak boleh diartikan lain dan harus digunakan sebagaimana yang telah didefinisikan atau ditentukan kegunaanya oleh bahasa Pascal. Reserved word ini tidak boleh didefinisikan ulang oleh pemakai, sehingga tidak dapat dipergunakan sebagai pengenal (identifier). Reserved Word ini jumlahnya berbeda untuk masing-masing bahasa Pascal.

Contoh beberapa reserved word yang telah didefinisikan oleh bahasa pascal antara lain

AND ELSE LABEL SET

ARRAY END OF TYPE

BEGIN FUNCTION OR UNTIL

CASE FOR PROCEDURE VAR

CONST GOTO PROGRAM WHILE

DO IF RECORD WITH

DOWNTO IN REPEAT dsb

1.6.2. Identifier (penyebut)

Identifier merupakan sebuah kata yang digunakan sebagai nama atau sebutan terhadap

sesuatu didalam program. Pemakai dapat mendefinisikan sendiri suatu nama sebagai

identifier. Identifier ini terdiri atas :

1.6.3. Identifier Standar

Identifier standar yaitu identifier yang telah didefinisikan oleh bahasa pascal. Contoh

dari Identifier standar ini antara lain:

ABS LN ARCTAN ODB

BOOLEAN PRED CHAR ROUND

CHR READ COS READLN

EOF SQR EOLN SQRT

EXP SUCC dsb.

1.6.1.1. Identifier Non Standar

Identifier non standar yaitu identifier yang didefinisikan oleh pemakai bahasa pascal;

misalnya;

Page 16: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 15

nama suatu program

nama suatu konstanta

nama suatu variabel

nama suatu procedure

Identifier bersifat bebas, tetapi dengan ketentuan-ketentuan sebagai berikut :

1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa

huruf.

2. Huruf besar dan huruf kecil dianggap sama.

3. Tidak boleh mengandung blank.

4. Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah.

5. Panjangnya bebas, tetapi hanya 63 karakter pertama yang dianggap signifikan.

Contoh penulisan identifier:

1.6.4. Jangkauan Identifier

Identifier yang dideklarasikan dalam suatu blok program hanya berlaku pada blok

dimana identifier tersebut didefinisikan.

Contoh:

Program p; Var x : real;

Procedure pl; Var y : integer;

begin ……………………….; ……………………..;

end; begin

……………………….; ……………………..;

end.

Identifier Keterangan

NamaMahasiswa Benar

Nama_Mahasiswa Benar

Nama3Mahasiswa Benar

3NamaMahasiswa Slah, Karakter pertama harus huruf

Nama&NPM Salah, tidak boleh mengandung symbol khusus

Nama Mahasiswa Salah, tidak boleh mengandung blank (spasih)

Derah berlakunya y

(y sebagai variabel lokal)

Derah berlakunya x

(x sebagai variabel global)

Page 17: Official Site of LILIS SETYOWATI - Gunadarma University

16 Lilis Setyowati, ST., MMSI

CONTOH 2:

Program p; Var x, y : real; ……………… ………………

Procedure P1; Var y : integer;

………………………… begin

………………………; ………………………;

end; Procedure P2; Var x : char;

………………………… begin

………………………; ………………………; end; begin

x:=………………………; y:=………………………;

end.

1.7. Tipe Data Pada Pascal

Terdapat beberapa kelompok tipe data pada Bahasa pemrograman PASCAL yang biasa

digunakan untuk sebuah variable atau konstanta pada program. Tipe data secara garis

besar dikelompokkan menjadai 3 jenis yakni tipe data scalar,pointer, dan structured.

Kelompok tipe data scalar dibagi menjadi tipe data standard an user defined. Tipe data

structured dibagi menjadi tipe data Array, Record, File, dan Set. Pembagian kelompok

tipe data dapat dilihat pada gambar 1.

Hanya berlaku di P1 saja (lokal)

x dan y yang dimaksud adalah x dan y real (variabel global)

y (real) berlaku di semua blok program P, kecuali di P1 x (real) berlaku di semua blok program P, kecuali P2

Hanya berlaku di P2 saja (lokal)

Page 18: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 17

Gambar 1. Kelompok tipe data

1.7.1. Tipe Data Scalar

Tipe Data Scalar adalah tipe data yang digunakan untuk menyimpan nilai tunggal. Tipe

data scalar dibagi menjadi dua, yaitu tipe data standard an tipe data user defined.

1.7.1.1. Tipe Data Standar

Kelompok pertama adalah tipe data standar pada pascal. Kelompok ini terdiri dari 4 tipe

data: Integer, Real, Character dan Boolean.

1.7.1.2. Tipe Data Integer

Tipe data integer adalah tipe data yang terdiri dari angka bulat (tidak mengandung nilai

pecahan atau nilai desimal). Nilai ini bisa berbentuk angka positif maupun negatif,

contohnya 3, 99, 1114, -44, 10000, atau 128730123.

Page 19: Official Site of LILIS SETYOWATI - Gunadarma University

18 Lilis Setyowati, ST., MMSI

Pascal mendukung beragam tipe data integer, seperti byte, shortint, smallint, word,

integer, cardinal, longint, longword, int64, dan qword. Tipe-tipe ini dibedakan

berdasarkan jangkauan nilai dan kapasitas memory yang dibutuhkan. Berikut contoh

cara pendefenisian tipe data integer di dalam pascal:

var a:integer;

Berikut contoh penggunaan tipe data ini:

program tipe_integer; uses crt; var x:shortint; y:longword; z:int64; begin clrscr; x:=-128; y:= 4294967295; z:=9223372036854775807; writeln('x: ',x); writeln('y: ',y); writeln('z: ',z); readln; end.

1.7.1.3. Tipe Data Real

Dalam bahasa pemrograman Pascal, tipe data real digunakan untuk angka desimal

(pecahan), seperti 0.11, 3.14, atau 999.99. Tipe data ini dikenal juga dengan tipe data

float atau floating point. Penulisan nilai real di dalam Pascal menggunakan karakter titik

sebagai penanda angka ‘desimal’, bukan karakter koma sebagaimana yang kita gunakan

sehari-hari. Hal ini dilakukan karena penggunaan format amerika.

Pascal mendukung beberapa tipe data yang termasuk kategori float, yakni: Real, Single,

Double, Extended, Comp dan Currency. Berikut contoh cara pendefenisian tipe data real

di dalam pascal:

var a:real;

Berikut contoh penggunaan tipe data ini: program tipe_real;

uses crt; var a:real; begin

Page 20: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 19

clrscr; a:=3.14; writeln('a: ',a); a:=999.99; writeln('a: ',a); a:= a + 0.01; writeln('a: ',a); readln; end.

1.7.1.4. Char

Tipe data Char adalah tipe data yang hanya bisa diisi dengan 1 karakter saja dari 1 digit,

seperti ‘a’, ‘A’, ‘x’, atau ‘#’. Karakter ini harus ditulis diantara tanda kutip. Karena hanya

bisa diisi dengan 1 karakter saja, tipe data char hanya membutuhkan 1 byte memory (1

byte = 8 bit).

Selain itu, variabel bertipe data char juga bisa diisi dengan urutan karakter ASCII. Di

dalam compiler FreePascal, selain tipe data Char, didukung juga tipe data AnsiChar dan

WideChar.

Berikut contoh cara pendefenisian tipe data char di dalam pascal:

var a:char;

Berikut contoh penggunaan tipe data ini:

program tipe_char; uses crt; var a:char; begin clrscr; a:='A'; writeln('a: ',a); a:='9'; writeln('a: ',a); a:='x'; writeln('a: ',a); readln; end.

Selain menulis karakter secara langsung, penulisan tipe data char juga bisa dituliskan

menggunakan karakter berdasarkan nomor urut tabel ASCII. Karakter ASCII (American

Page 21: Official Site of LILIS SETYOWATI - Gunadarma University

20 Lilis Setyowati, ST., MMSI

Standard Code for Information Interchange) adalah 256 karakter dasar yang digunakan

secara internal oleh computer. Pada tabel karakter ASCII, dimana huruf ‘A’ disimpan

dengan nilai biner: 01000001, dimana dalam bentuk desimal (basis 10) dikonversi

menjadi angka 65. Oleh karena itu, karakter ‘A’ berada pada urutan ke 65 pada tabel

karakter ASCII. Daftar lengkap tabel ASCII ini bisa anda lihat di www.ascii-code.com. Cara

penulisan karakter berdasarkan no urut tabel ASCII adalah dengan menambahkan tanda

pagar “#” sebelum angka no urut. Sebagai contoh, karakter ‘A’ yang mimiliki nilai ASCII:

65 bisa ditulis sebagai berikut:

a:=#65;

1.7.1.5. Tipe Data Boolean

Tipe data boolean adalah tipe data yang hanya bisa diisi dengan 1 diantara 2 nilai: True

atau False (benar atau salah). Tipe data boolean biasanya digunakan untuk percabangan

kode program seperti struktur IF atau perulangan (looping).

Berikut contoh cara pendefenisian tipe data boolean di dalam pascal:

var a:boolean;

1.7.2. Tipe Data User Defined (Bentukan)

Kelompok kedua dari tipe data scalar pada pascal adalah tipe data user defined

(bentukan) atau dikenal juga dengan tipe data non standar. Tipe data bentukan ini

terdiri dari 2 tipe: enumerated dan subrange. Kedua tipe data ini harus didefenisikan di

dalam bagian type struktur pascal.

1.7.2.1.1. Tipe Data Enumerated

Tipe data enumerated adalah tipe data yang isinya terdiri dari kelompok data yang

sudah ditentukan. Sebagai contoh, kita bisa membuat tipe enumerated warna yang

berisi: merah, kuning, biru dan ungu. Atau tipe nama_hari yang berisi nama-nama hari

seperti senin, selasa, rabu, dst. Tipe data enumerated sering juga disebut enumeration

atau enum saja.

Berikut contoh cara pendefenisian tipe data enumerated di dalam pascal:

type nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu); var a: nama_hari;

Page 22: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 21

1.7.2.1.2. Tipe Data Subrange

Tipe data subrange adalah tipe data bentukan yang berasal dari bagian (sub) tipe data

lain dan berada dalam sebuah jangkauan (range). Contohnya, kita bisa membuat tipe

data baru yang hanya terdiri dari angka 0 sampai 9, atau hanya dari huruf ‘a’ hingga ‘e’.

Berikut contoh cara pendefenisian tipe data subrange di dalam pascal:

type satuan= 1..9; var a: satuan;

1.7.3. Tipe Data Structured

Kelompok tipe data berikutnya adalah tipe data structured atau tipe data terstruktur.

Kelompok tipe data ini terdiri dari tipe data Array, String, Record, Set dan File.

1.7.3.1. Tipe Data Array

Tipe data array adalah tipe data yang terdiri dari kumpulan tipe data lain yang masih

satu tipe. Anggota dari array ini dikenal dengan element. Di dalam pascal, jumlah

element array harus sudah di tentukan di awal program. Berikut contoh cara

pendefenisian tipe data array di dalam pascal:

var nilai: array[0..9] of integer;

Sebagai contoh, perhatikan kode program berikut ini:

Program tipe_array; uses crt; var nilai1, nilai2, nilai3, nilai4: integer; begin clrscr; nilai1:= 100; nilai2:= 19; nilai3:= 17; nilai4:= 2008; writeln('nilai1: ',nilai1); writeln('nilai2: ',nilai2); writeln('nilai3: ',nilai3); writeln('nilai4: ',nilai4); readln; end.

Page 23: Official Site of LILIS SETYOWATI - Gunadarma University

22 Lilis Setyowati, ST., MMSI

1.7.3.2. Tipe Data String

Tipe data string adalah tipe data yang bisa menampung banyak karakter sekaligus,

seperti kata, atau kalimat. Secara internal di dalam pascal, string merupakan array dari

tipe data char, oleh karena itu, tipe data ini sering dimasukan ke dalam array. Berikut

contoh cara pendefenisian tipe data string di dalam pascal:

var mahasiswa: record nama: string[20]; umur: integer; kelas: string[30]; end;

1.7.3.3. Tipe Data Set

Tipe data set adalah tipe data yang isinya terdiri dari sebuah himpunan tipe data lain,

seperti hipunan angka 1 sampai dengan 9, himpunan huruf vokal, dll. Tipe data set

digunakan untuk membuat operasi himpunan seperti gabungan, irisan, atau selisih.

Tipe data set adalah tipe data yang terdiri dari kelompok data yang sama. Tipe data ini

sedikit mirip dengan tipe data enumeration, dimana kita bisa menentukan sendiri isi dari

tipe data set. Secara khusus, tipe data set ini sangat mirip dengan konsep himpunan di

dalam matematika. Sebagai contoh, misalnya saya membuat sebuah himpunan huruf

fokal, himpunan ini terdiri dari huruf ‘a’, ’i’, ’u’, ’e’ dan ‘o’. Kemudian, saya bisa

melakukan beberapa proses terhadap himpunan ini, apakah itu penambahan dengan

himpunan lain (union), pengurangan dengan himpunan lain (irisan), dll.

Untuk membuat tipe data set di dalam pascal, kita cukup mendeklarasikan variabel

sebagai set of tipe_data. Sebagai contoh, untuk membuat variabel yang merupakan

himpunan dari tipe data char, bisa ditulis seperti berikut ini:

var himpunan1: set of char;

Variabel himpunan1 merupakan tipe data set yang bisa diisi dengan sembarang karakter (char). Jumlah anggota yang bisa diterima oleh himpunan ini dapat dibatasi. Untuk membatasi anggota dapat dituliskan seperti berikut: var himpunan1: set of 1..9; himpunan2: set of 99..999; himpunan3: set of ‘a’..’z’;

Page 24: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 23

Pengisian anggota himpunan, dilakukan dengan menggunakan tanda kurung siku. Sebagai contoh, jika himpunan1 merupakan set of char, saya bisa mengisinya dengan karakter huruf vokal seperti berikut ini:

himpunan1 := ['a','i','u','e','o']; Sekarang, himpunan 1 akan berisi 5 anggota yakni huruf ‘a’, ‘i’, ‘u’, ‘e’, dan ‘o’. 1.7.3.4. Tipe Data File

Tipe data file adalah tipe data yang digunakan untuk mengakses file. Tipe data ini

digunakan jika kita ingin membaca file atau menulis sesuatu kedalam file. Berikut contoh

cara pendefenisian tipe data file di dalam pascal:

var myfile: file of single;

1.7.4. Tipe Data Pointer

Kelompok tipe data terakhir adalah tipe data Pointer. Kelompok tipe data ini hanya

terdiri dari jenis: pointer. Tipe data pointer adalah tipe data yang berisi alamat memory

dari sebuah variabel. Tipe data ini digunakan jika kita butuh memanipulasi variabel

langsung dari memory komputer. Biasanya pointer digunakan ketika mempelajari

struktur data.

Berikut contoh cara pendefenisian tipe data pinter di dalam pascal:

var pointer : ^string;

Ketika sebuah variabel (misalkan variabel ‘angka’) dideklarasikan, pascal akan

menyiapkan sebuah tempat di memory komputer. Tempat ini memiliki alamat, yang

berfungsi untuk menandai lokasi variabel tersebut. Agar lebih mudah dipahami, anggap

sebuah memory komputer sebagai sebuah lemari besar. Variabel disimpan di dalam

setiap laci lemari. Setiap laci tentunya memiliki nomor agar mudah diakses. Nomor laci

inilah yang akan disimpan sebagai pointer.

Sebagai contoh, variabel ‘angka’ bisa ditempatkan di alamat 10023 pada memory

komputer. Variabel lain, misalnya ‘huruf’, akan disimpan di alamat 19920, variabel ‘i’

bisa disimpan di alamat 10033, dst. Alamat memory inilah yang disimpan ke dalam tipe

data pointer.

1.8. Variabel

Variabel adalah suatu identifier non-standar yang digunakan untuk menampung suatu

nilai. Variabel nilainya tidak tetap atau nilainya merupakan hasil dari suatu proses.

Secara teknis, variabel merujuk kepada suatu alamat di memory komputer. Setiap

Page 25: Official Site of LILIS SETYOWATI - Gunadarma University

24 Lilis Setyowati, ST., MMSI

variabel memiliki nama yang sebagai identitas variabel tersebut. Bentuk umum deklarasi

variabel adalah sebagai berikut:

a) Jika hanya 1 (satu) variabel yang dideklarasikan :

VAR identifier : jenis data;

b) Jika lebih dari 1 (satu) variabel dan masing-masing memiliki jenis data yang

sama:

VAR id-1, id-2, …., id-3 : jenis data;

c) Jika beberapa variabel yang berbeda jenis datanya :

VAR identifier-1 : jenis data; identifier-2 : jenis data; . . identifier-n : jenis data;

d) Jika variabel yang dideklarasikan berjenis data non-standar :

TYPE id = (data_item_1,data_item_2,…,data_item_n); VAR id-v : id; SUB-RANGE : TYPE id = data_item_pertama .. data_item_terakhir; VAR id-v : id;

Berikut ini merupakan contoh pendeklarasian variabel:

a) VAR x : integer;

b) VAR p,q,r : real;

c) VAR a,b : char;

a. m,n : boolean;

d) TYPE warna = (merah,hitam,biru,putih,kuning);

a. VAR x1,x2 : warna;

e) TYPE tahun = 1900 .. 1993;

a. VAR thn-1,thn-2,thn-3 : tahun;

1.9. Konstanta

Konstanta merupakan suatu identifier non-standar yang nilainya telah ditetapkan dalam

suatu program, tidak dapat berubah (tetap) sepanjang program, dan dideklarasikan

pada bagian deklarasi. Umumnya konstanta digunakan untuk nilai yang tidak akan

berubah, seperti nilai phi dalam matematika yang bernilai 3.14, atau kecepatan cahaya

yang bernilai 299.792.458 m/s.

Page 26: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 25

Di dalam pascal, sebuah konstanta hanya dapat diisi dengan tipe data dasar, yakni char,

integer, real, boolean, serta tipe data string dan set. Penulisan nama konstanta juga

mengkuti aturan penulisan identifier sebagai berikut:

Karakter pertama harus berupa huruf.

Karakter kedua dan seterusnya bisa berupa huruf, angka, atau karakter

underscore “_”.

Penulisan konstanta tidak boleh menggunakan karakter selain angka, huruf dan

underscore. Kita tidak bisa menggunakan spasi, dan tanda-tanda khusus seperti

*, +, -, &, %, $, #, atau @.

Maksimal panjang konstanta tergantung kepada compiler yang digunakan.

Beberapa mendukung 32 karakter hingga 63 karakter.

Konstanta tidak bisa diubah nilainya sepanjang kode program.

Berbeda dengan variabel, konstanta harus diisi nilai pada saat deklarasi. Berikut format

dasar penulisan konstanta:

Konstanta dapat dideklarasinya sebagai berikut :

CONST Nama_konstanta = nilai_konstanta;

Contoh penggunaan konstanta dalam program adalah sebagai berikut:

CONST phi = 3.14; x= 2; y = ‘S’;

*pascal menggunakan tanda sama dengan ‘ = ’ untuk memberikan nilai kepada

konstanta saat dideklarasikan (proses inisialisasi).

1.10. Ekspresi

Ekspresi merupakan kumpulan dari operand-operand (seperti : bilangan, konstanta,

variabel, dll) yang bersama-sama dengan operator membentuk suatu bentuk aljabar dan

menyatakan suatu nilai.

Terdapat 2 (dua) jenis ekspresi dalam bahasa Pascal, yaitu :

1. Ekspresi numerik / aritmatika, yaitu suatu ekspresi yang menghasilkan nilai

numerik / aritmatika.

Contoh :

(b * b – 4 * a * c) / (2*a) / (2 * a) ekspresi numerik, jika a, b dan c adalah bilangan

(variabel bernilai numerik).

Page 27: Official Site of LILIS SETYOWATI - Gunadarma University

26 Lilis Setyowati, ST., MMSI

2. Ekspresi Boolean atau ekspresi logika, yaitu suatu ekspresi yang menghasilkan

nilai boolean / logika (true/false).

Contoh :

Upah < 1000.0 ekspresi boolean (“upah” adalah suatu variabel bernilai real).

1.11. Operand dan Operator

Dalam pengoperasian tipe data yang telah dibahas pada poin sebelumnya, diperlukan

sebuah operator. Operator lekat hubungannya dengan istilah operand. Berikut

pembahasan mengenai operand dan operator.

1.11.1. Operand

Operand adalah nilai asal yang digunakan di dalam sebuah proses operasi. Sebagai

contoh, pada operasi: 10 + 2. Angka 10 dan 2 disebut sebagai operand, sedangkan tanda

tambah (karakter +) adalah operator.

1.11.2. Operator

Operator atau tanda operasi adalah instruksi yang diberikan untuk mendapatkan hasil

dari proses tersebut. Biasanya operator berupa karakter matematis atau perintah

singkat sederhana.

Tanda operasi (operator) di dalam bahasa Pascal dikelompokkan ke dalam 9 kategori,

yaitu:

a. Assignment operator. b. String operator. c. Set operator. d. Relational operator. e. Aritmatika operator. f. Unary, Binary, dan Ternary operator. g. Logical operator. h. Bitwise operator. i. Address operator.

1.11.2.1. Asignment operator

Assignment operator (operator pengerjaan) menggunakan simbol titik dua diikuti oleh

tanda sama dengan (:=).

Page 28: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 27

1.11.2.2. String operator

Di dalam pascal, hanya terdapat 1 jenis operator string, yakni tanda tambah ‘ + ’ yang

digunakan untuk menyambung string (concatenated).

Operator Penjelasan Contoh

+ Penggabungan (Concate) “belajar” + “Pascal”

1.11.2.3. Set operator

Operator set khusus digunakan untuk tipe data set (himpunan).

Operator Action

+ Union

– Selisih (Difference)

* Irisan (Intersection)

>< Selisih simetri (Symmetric difference)

<= Beranggotakan (Contains)

include Menambahkan element baru

exclude Mengeluarkan element baru

in Cek apakah ada di dalam himpunan

1.11.2.4. Relational operator (Operator Perbandingan)

Operator Penjelasan Contoh

:= Pemberian nilai (Assignment) a := “belajar pascal»

Page 29: Official Site of LILIS SETYOWATI - Gunadarma University

28 Lilis Setyowati, ST., MMSI

Relational operator digunakan untuk membandingkan 2 buah angka, apakah angka

tersebut sama besar, lebih kecil, lebih besar, dll. Nilai dari operator perbandingan ini

adalah True atau False (boolean).

Operator Penjelasan Contoh

= Sama dengan 5 = 5 -> True

<> Tidak sama dengan 5 <> 5 -> False

> Lebih besar 5 > 6 -> False

< Lebih kecil 5 < 6 -> True

>= Lebih besar atau sama dengan 5 >= 3 -> True

<= Lebih kecil atau sama dengan 5 <= 5 -> True

1.11.2.5. Aritmatika Operator

Operator aritmatika adalah operator yang biasa kita temukan untuk operasi

matematika. Berikut jenis-jenis operator aritmatika di dalam pascal:

Operator Penjelasan Contoh

+ Penambahan 2 + 3 = 5

– Pengurangan 5 – 2 = 3

* Perkalian 2 * 3 = 6

/ Pembagian (real/pecahan) 14 / 4 = 3.5

div Pembagian (integer/angka bulat) 14 div 4 = 3

mod Sisa hasil bagi 14 mod 4 = 2

Contoh penggunaan operator aritmatika dapat dilihat di bawah ini:

15*5 hasilnya 75

20/3 hasilnya 6.6666666667E+00

20 div 3 hasilnya 6

Page 30: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 29

20 mod 3 hasilnya 2

1.11.2.6. Unary , Binary, dan Ternary Operator

Berdasarkan jumlah operand-nya, operator dibagi menjadi 3 jenis: Operator Unary,

Operator Binary dan Operator Ternary.

1.11.2.6.1. Unary Operator

Unary Operator adalah operator yang hanya terdiri dari 1 operand. Contohnya adalah

operator positif (plus): +7, +9, +10.111. Operator aritmatika unary dapat dilihat pada

table di bawah ini:

Operator Penjelasan Contoh

+ Positif (plus) 5

– Negatif (min) -3

1.11.2.6.2. Binary Operator

Operator Binary digunakan untuk mengoperasikan dua buah operand. Operand dapat

berbentuk konstanta ataupun variabel. Operator ini digunakan untuk operasi aritmatika

yang berhubungan dengan nilai tipe data integer dan real.

1.11.2.6.3. Ternary Operator

Operator Ternary adalah operator yang terdiri dari 3 operand. Khusus di dalam pascal,

tidak terdapat operator ternary.

1.11.2.7. Logical Operator (Operator logika)

Logical operator digunakan untuk menghasilkan nilai boolean TRUE atau FALSE dari 2

buah kondisi.

Operator Penjelasan Contoh

and Akan menghasilkan TRUE jika kedua operand TRUE

TRUE and FALSE, hasilnya: FALSE

or Akan menghasilkan TRUE jika salah satu operand TRUE

TRUE or FALSE, hasilnya: TRUE

xor Akan menghasilkan TRUE jika kedua operand berbeda

TRUE xor FALSE, hasilnya: TRUE

not Akan menghasilkan TRUE jika operand FALSE not TRUE , hasilnya: FALSE

Page 31: Official Site of LILIS SETYOWATI - Gunadarma University

30 Lilis Setyowati, ST., MMSI

1.11.2.8. Bitwise operator

Operator ini mirip dengan operator logika / boolean, tapi dilakukan pada level bit.

Operator Penjelasan Contoh

not Bitwise NOT not 1100, hasilnya: 0011

and Bitwise AND 1100 and 0101, hasilnya: 0100

or Bitwise OR 1100 and 0101, hasilnya: 1101

xor Bitwise exclusive OR 1100 xor 0101, hasilnya: 1001

shl Bitwise shift left 0100 shl 1, hasilnya: 1000

shr Bitwise shift right 0100 shr 1, hasilnya: 0010

<< Bitwise shift left 0100 << 1, hasilnya: 1000

>> Bitwise shift right 0100 >> 1, hasilnya: 0010

1.11.2.9. Address Operator (Pointer)

Operator address khusus digunakan untuk tipe data pointer. Operator ini berfungsi

untuk mencari alamat memory dari sebuah variabel.

Operator Penjelasan Contoh

@ Menampilkan alamat memory sebuah variabel @nama_variabel

^ Menampilkan nilai variabel dari alamat memory nama_variabel^

1.12. Input dan Output pada Pascal

Pada Bahasa pemrograman pascal terdapat dua buah perintah input dan dua perintah

output. Perintah input pada pascal terdiri dari statement Read dan Readln. Sedangkan

perintah output pada pascal terdiri dari statement Write dan Writeln.

1.12.1. Statement Read dan Readln

Dalam bahasa Pascal untuk keperluan input (membaca input) digunakan identifier

standar READ atau READLN. Perintah read dan readlndapat digunakan ketika variabel

yang akan menampung hasil inputan dari pengguna sudah disiapkan. Variabel harus

memiliki tipe data yang sama dengan apa yang akan diinput.

Page 32: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 31

Perintah read dan readln sama-sama digunakan untuk meminta input dari pengguna.

Namun, keduanya memiliki perbedaan dari cara pembacaan data. Perintah read akan

membaca data secara ‘horizontal’. Setelah proses input selesai, posisi kursor akan tetap

berada di baris yang sama. Karakter ‘spasi’ atau ‘enter’ dapat digunakan untuk

memisahkan 1 input dengan input lainnya (dengan beberapa pengecualian).

Perintah readln akan membaca data secara ‘vertikal’. Setelah proses input selesai, posisi

kursor akan pindah ke baris baru. Kita bisa menggunakan karakter ‘enter’ untuk

memisahkan 1 input dengan input lainnya.

Defenisi perbedaan diatas ‘hanya’ secara teori. Dalam prakteknya, kedua perintah ini

akan membuat prilaku berbeda tergantung tipe data yang digunakan.

Catatan:

Statement Read tidak memperhatikan batas baris, rinci data yang tersedia akan

selalu dibaca tidak tergantung apakah mereka ada yang baris yang sama atau

tidak.

Statement Readln memulai pembacaan data pada posisi baris saat itu dan pergi

ke awal baris baru setelah pembacaan selesai.

Contoh statement Read dan Readln:

Read(A,B,C); Read(A); Read(B); Read(C);

1.12.1.1. Penggunan Read dan Readln pada tipe data angka (integer/real)

Perintah read akan membaca seluruh inputan yang dipisah dengan spasi maupun enter.

Berikut contoh penggunaannya:

a) Statement Read

program input; uses crt; var a,b,c:integer; begin clrscr; writeln('Input 3 angka, dipisah dengan spasi:'); read(a); read(b); read(c); read(d); writeln;

Page 33: Official Site of LILIS SETYOWATI - Gunadarma University

32 Lilis Setyowati, ST., MMSI

writeln('Hasil Input:'); writeln('a: ',a,', b: ',b,', c: ',c); readln; readln; end.

* Perintah readln di akhir program ditulis 2 kali. Hal inidigunakan untuk ‘menahan’

jendela program agar tidak langsung menutup ketika dijalankan. Jika tidak menggunakan

2 kali perintah readln, hasil program dapat dilihat dari menu Debug->User Screen atau

menekan tombol ALT+F5.

ATAU program input; uses crt; var a,b,c:integer; begin clrscr; writeln('Input 3 angka, dipisah dengan spasi:'); read(a,b,c,d); writeln; writeln('Hasil Input:'); writeln('a: ',a,'. b: ',b,'. c: ',c); readln; end.

OUTPUT: Input 3 angka, dipisah dengan spasi: 17 9 29 Hasil Input: a: 17, b: 9, c: 29

b) Statement Readln program input; uses crt; var a,b,c:integer; begin clrscr; writeln('Input 3 angka, dipisah dengan enter:'); readln(a); readln(b); readln(c); writeln; writeln('Hasil Input:'); writeln('a: ',a,'. b: ',b,'. c: ',c); readln; end.

Page 34: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 33

OUTPUT:

Input 3 angka, dipisah dengan enter: 17 9 29 Hasil Input: a: 17. b: 9. c: 29 *Khusus untuk tipe data angka (integer/real), perintah read bisa digunakan dengan pemisah spasi, maupun enter. 1.12.1.2. Penggunaan Read dan Readln pada tipe data char

Perintah read akan membaca seluruh karakter teks (termasuk spasi dan enter) dalam 1 baris secara vertikal. Contoh program dapat dilihat di bawah ini:

program input; uses crt; var a,b,c,d,e,f:char; begin clrscr; writeln('Input Teks Sembarang (6 karakter)'); read(a); read(b); read(c); read(d); read(e);

read(f); writeln; writeln('Hasil Teks:'); write(a,' ',b,' ',c,' ',d,' ',e, ' ',f); readln; readln; end.

OUTPUT Input Teks Sembarang (6 karakter) mahasiswa Hasil Teks: m a h a s i *Ketika diinput sebanyak 6 karakter atau lebih, dan mengakhiri dengan tombol enter, tiap-tiap varibel akan diisi dengan 6 karakter pertama dari teks (teks ke-7 dan seterusnya akan diabaikan).

Page 35: Official Site of LILIS SETYOWATI - Gunadarma University

34 Lilis Setyowati, ST., MMSI

Ketika statement read dengan readln, pembacaan karakter akan dilakukan secara vertikal. Setiap karakter dipisahkan dengan enter, seperti contoh kode program berikut:

program input; uses crt; var a,b,c,d,e:char; begin clrscr; writeln('Input Teks Sembarang (5 karakter) :'); readln(a); readln(b); readln(c); readln(d); readln(e); writeln; writeln('Hasil Teks:'); write(a,' ',b,' ',c,' ',d,' ',e); readln; end.

OUTPUT Input Teks Sembarang (5 karakter) : mahasiwa teknik informatika universitas gunadarma Hasil Teks: m t i u g * Ketika ada penambahan karakter setelah karakter pertama di sebuah baris, karakter kedua dst akan diabaikan oleh Readln 1.12.1.3. Penggunaan read dan readln untuk tipe data string

Penggunaan perintah read pada tipe data string menghasilkan sesuatu yang sedikit

berbeda. Perhatikan contoh kode berikut:

program input;

uses crt; var a,b,c,d:string; begin clrscr; writeln('Input 4 kata:');

Page 36: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 35

read(a); read(b); read(c); read(d); writeln; writeln('Hasil Teks:'); writeln('a: ',a); writeln('b: ',b); writeln('c: ',c); writeln('d: ',d); readln; readln; end.

OUTPUT a) Ketika 4 kata diinput dengan spasih sebagai pemisah dan menekan tombol enter,

keempat kata ini akan diinput kedalam variabel a: Input 4 kata: Mahasiswa Informatika Universitas Gunadarma Hasil Teks: a: Mahasiswa Universitas Gunadarma b: c: d:

b) Ketika sebuah kata dibuat dan menekan enter, program akan ‘melewati’ variabel b, c, dan d:

Input 4 kata: Mahasiswa Hasil Teks: a: Mahasiswa b: c: d:

Guna menghindari output seperti di atas, maka digunakan perintah Readln. program input;

uses crt; var a,b,c,d:string; begin clrscr; writeln('Input 4 kata:'); readln(a); readln(b);

Page 37: Official Site of LILIS SETYOWATI - Gunadarma University

36 Lilis Setyowati, ST., MMSI

readln(c); readln(d); writeln; writeln('Hasil Teks:'); writeln('a: ',a); writeln('b: ',b); writeln('c: ',c); writeln('d: ',d); readln; end.

OUTPUT

Input 4 kata: Teknik Informatika Universitas Gunadarma Akreditasi A Hasil Teks: a: Teknik Informatika b: Universitas Gunadarma c: Akreditasi d: A

1.12.2. Statement Write dan Writeln

Guna keperluan output (menampilkan luaran ke jendela tampilan) pada pascal

digunakan identifier standar WRITE atau WRITELN.

Perbedaan Statement Write dan Writeln adalah sebagai berikut:

• Write menampilkan hasil tanpa ganti baris dan tampilan berikutnya akan

disambung dalam baris yang sama.

• WriteLn adalah bahwa Sedang WriteLn digunakan untuk menampilkan tampilan

perbaris, akan ganti baris untuk tampilan berikutnya.

• Statement Write digunakan untuk mencetak pada baris yang sama dari

beberapa argumen

• Writeln yang tidak diikuti argumen hanya mencetak satu baris kosong

• Writeln yang diikuti argumen akan mencetak nilai argumen tersebut dan

berpindah ke baris berikutnya

Page 38: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 37

Cara penulisan Write dan Writeln:

Data-output yang ingin ditampilkan dengan perintah write dan writeln, harus

ditulis diantara tanda tanda kurung “ ( “ dan “ ) ”.

Jika data tersebut berjenis ‘teks’ yang terdiri dari karakter (char) atau kumpulan

karakter (string), perlu ditambahkan tanda tanda kutip satu ( ‘ ) diantara teks

tersebut.

Jika data yang akan ditampilkan berjenis angka, variabel, atau konstanta, maka

tidak perlu menggunakan tanda kutip.

Contoh penggunaan statement Write dan WriteLn:

program tampil;

uses crt; begin clrscr; write('Nama : '); writeln('Adifa'); writeln('Nama: '); writeln('Alesha'); write('D'); write('i'); write('n'); write('a'); write('r'); writeln('D'); writeln('h'); writeln('a'); writeln('a'); writeln('f'); readln; end.

OUTPUT Nama : Adifa Nama: Alesha Dinard h a a f

Page 39: Official Site of LILIS SETYOWATI - Gunadarma University

38 Lilis Setyowati, ST., MMSI

* Hasil kode program pada baris 6 dan 7 ditampilkan dalam 1 baris. Hal ini karena perintah write akan membuat teks berikutnya tetap di baris yang sama. Hasil tampilan juga memperlihatkan kata “Dinard”, bukan “Dinar” seperti yang diinginkan. Ini terjadi karena perintah writeln hanya akan memindahkan teks selanjutnya ke baris baru, bukan teks saat ini. Khusus untuk tipe data angka (integer/real) pascal menyediakan instruksi tambahan untuk mengatur bagaimana angka tersebut ditampilkan. Jika data berupa angka bulat (integer), kita bisa mengatur seberapa banyak ‘tempat’ untuk angka yang dipersiapkan. Apabila angka tersebut adalah angka pecahan (real), kita bisa mengatur berapa digit angka dibelakang koma. Berikut format penulisannya:

Angka bulat (integer) = angka:jumlah_digit.

Angka desimal (real) = angka:jumlah_digit:jumlah_digit_dibelakang_koma. Berikut contoh kode programnya:

program tampil; uses crt; var angka_int:integer=12345; angka_real:real=1234.123456; begin clrscr; writeln(angka_int); writeln(angka_int:4); writeln(angka_int:8); writeln(angka_real); writeln(angka_real:4:2); writeln(angka_real:2:4); readln; end.

OUTPUT 12345 12345 12345 1.23412345600000E+003 1234.12 1234.1235 1.13. Format Output

Dalam Pascal kita dapat menampilkan hasil yang lebih menarik dengan format Write dan

Writeln menggunakan beberapa parameter. Bentuk-bentuk dari format tersebut adalah

sebagai berikut :

Page 40: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 39

1.13.1. Parameter CH:N

Parameter CH:N digunakan untuk membentuk format tampilan Char selebar N karakter

dengan blank dimuka sebanyak N-1.

Contoh :

Program Tampil1; Output : Var _ _ _ _ A _ _ B Ket1, Ket2 : Char; Begin Ket1 :=’A’; Ket2 :=’B’; Writeln(Ket1:5; Ket2:3); End.

1.13.2. Parameter S:N

Parameter S:N digunakan untuk membentuk format tampilan String dengan lebar N

karakter.

Contoh :

Program Tampil2; Output : Var Bahasa : _ _ _ _ Pascal Karakter : String; Begin Karakter := ‘Pascal’; Writeln(‘Bahasa :’, Karakter:10); End.

1.13.3. Parameter I:N

Parameter I:N digunakan untuk membentuk format tampilan integer dengan lebar N

digit.

Contoh :

Program Tampil3; Output : Var Jumlah Data = _ _275 N : Integer; Begin N := 275; Writeln(‘Jumlah Data =’, N:5); End.

Page 41: Official Site of LILIS SETYOWATI - Gunadarma University

40 Lilis Setyowati, ST., MMSI

1.13.4. Parameter R:N

Parameter R:N digunakan untuk membentuk format tampilan nilai numeric Real dengan

lebar N digit rata sebelah kanan.

Contoh :

Program Tampil4; Output : Var Nilai Real = _ _1.23450E+02 Nilai := 123,45; Writeln(‘Nilai Real =’, Nilai:13) End.

1.13.5. Parameter R:N:M

Parameter R:N:M digunakan untuk membentuk format tampilan nilai numeric Real

dengan lebar N digit rata sebelah kanan, dengan M digit angka dibelakang koma tidak

dalam bentuk eksponential.

Contoh : Program Tampil5; Output : Var Nilai Real = _ _ _ _ _123,450 Nilai : Real; Begin Nilai := 123,45; Writeln(‘Nilai Real =’.Nilai:12:3); End.

1.13.6. Parameter B:N

Parameter B:N digunakan untuk membentuk format tampilan nilai Boolean True atau

False dengan lebar N karakter rata sebelah kanan.

Contoh :

Program Tampil6; Output : Var Nilai Boolean =_ _True Nilai : Boolean; Writeln(“Nilai Boolean =’,Nilai:6); End.

1.14. Pengaturan Letak Di Layar

Pada Pascal ada beberapa prosedur untuk mengatur letak di layar. Berikut beberapa

perintah yang dimaksud:

Page 42: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 41

1.14.1. Prosedur CLRSCR

Prosedur CLRSCR digunakan untuk membersihkan layar dari tampilan-tampilan

sebelumnya dan meletakkan kursor diposisi ujung kiri atas dari layar. Prosedur standar

ini bila digunakan harus menyebutkan terlebih dahulu Unit Standar Crt.

Contoh :

Program Tampil7; Output : Uses Crt; Bahasa Pascal Begin (berada diposisi ujung kiri atas) Clrscr; Writeln(‘Bahasa Pascal’); End.

1.14.2. Prosedur GOTOXY

Prosedur GOTOXY digunakan untuk meletakkan kursor diposisi layar yang ditunjukkan

oleh nilai Xpos dan Ypos. Nilai Xpos menunjukkan posisi sumbu X (posisi horizontal atau

posisi kolom diantara kolom 1 sampai dengan kolom 80), nilai Ypos menunjukkan posisi

sumbu Y (posisi Vertikal atau posisi baris diantara baris 1 sampai dengan baris 25).

Prosedur standar ini bila digunakan harus melibatkan Unit Standar Crt.

Contoh :

Program Tampil8; Uses Crt; Begin Clrscr; Gotoxy(10,15); Writeln(‘Bahasa Pascal’); Readln; End.

Output:

Bahasa Pascal Baris 15

Kolom 10

1.14.3. Prosedur CLREOL

Prosedur CLREOL digunakan untuk menghapus semua karakter dalam satu baris

disebelah kanan posisi kursor tanpa merubah posisi kursor. Prosedur standar ini bila

digunakan harus melibatkan Unit Standar Crt.

Contoh :

Program Tampil9; Uses Crt; Var

Page 43: Official Site of LILIS SETYOWATI - Gunadarma University

42 Lilis Setyowati, ST., MMSI

Nilai : Integer; Begin Clrscr; Gotoxy(10,15); Write(‘Masukkan sebuah nilai Integer ?’); Readln(Nilai); Gotoxy(10,15); Clreol; Writeln(‘Anda Pintar !!!’); Readln; End.

Output 1 :

Masukkan sebuah nilai Integer ? 9 baris 15

kolom 10

Output 2 :

Anda Pintar !!! baris 15

Kolom 10

1.14.4. Prosedur Delline

Prosedur Delline digunakan untuk menghapus sebuah baris diposisi kursor dan

menggeser naik tampilan-tampilan dibawahnya. Prosedur standar ini bila digunakan

harus melibatkan Unit Standar Crt.

Contoh :

Program Tampil10; Uses Crt; Var Tekan : Char; Begin Clrscr; Gotoxy(5,8); Writeln (‘Satu’); Gotoxy(5,9); Writeln (‘Dua’);

Gotoxy(5,10); Writeln (‘Tiga’); Gotoxy(5,11); Writeln (‘Empat’); Gotoxy(5,12); Writeln (‘Lima’); Gotoxy(5,20); Writeln (‘Tekan Sembarang Tombol’);

Read(Tekan); Gotoxy(5,20); Clreol; End.

Output 1: Satu Baris 8 Dua Baris 9 Tiga Baris 10 Empat Baris 11

Page 44: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 43

Lima Baris 12 Tekan Sembarang Tombol Baris 20

Kolom 5 Output 2: Satu Tiga Empat 1.14.5. Prosedur Insline

Prosedur Insline digunakan untuk menyisipi sebuah baris pada posisi kursor dan

menggeser ke bawah tampilan-tampilan baris dibawahnya. Prosedur standar ini bila

digunakan harus melibatkan Unit Standar Crt.

Contoh :

Program Tampil10; Uses Crt; Var Tekan : Char; Begin Clrscr; Gotoxy(5,8); Writeln (‘Satu’); Gotoxy(5,9); Writeln (‘Dua’);

Gotoxy(5,10); Writeln (‘Tiga’); Gotoxy(5,11); Writeln (‘Empat’); Gotoxy(5,12); Writeln (‘Lima’); Gotoxy(5,20); Writeln (‘Tekan Sembarang Tombol’);

Read(Tekan); Gotoxy(5,20); Clreol; Gotoxy(5,20); Insline; End.

Output 1: Output 2: Satu Baris 8 Satu Dua Baris 9 Dua Tiga Baris 10 Tiga Empat Baris 11 Empat Lima Baris 12 Lima Tekan Sembarang Tombol Baris 20

Kolom 5

Page 45: Official Site of LILIS SETYOWATI - Gunadarma University

44 Lilis Setyowati, ST., MMSI

1.14.6. Prosedur Delay

Prosedur Delay digunakan untuk menghentikan sejenak proses program selama nilai dari

argumen tempo, yaitu dalam ukuran waktu millisecond (1/1000 detik). Nilai argumen ini

harus dalam bentuk numeric integer. Prosedur standar ini bila digunakan harus

melibatkan unit Standar Crt.

Contoh :

Program Tampil12;

Uses Crt; Begin Clrscr; Writeln(‘5 Detik Lagi Akan Tampil Tulisan Menarik !!’); Delay(5000); Writeln; Writeln(‘Hallo Apa Kabar ?’); End.

Output:

5 Detik Lagi Akan Tampil Tulisan Menarik !!

Hallo Apa Kabar ?

1.15. Pengaturan Bentuk Di Printer

Selain ditampilkan di layar, hasil program juga dapat ditampilkan di Printer yaitu dengan

menyebutkan alat outputnya. Alat output pada pascal yaitu Lst untuk printer. Untuk

menggunakan alat output printer, maka Unit standar Printer harus disebutkan.

Contoh :

Program Tampil13; Uses Printer; Begin Writeln(‘Lst,’Ini tercetak di printer’); Writeln(‘Lst,’Ini juga tercetak di printer’); Writeln(‘Kalau ini dilayar’); Writeln(‘Kalau ini juga dilayar’); Writeln(‘Lst,’Sekarang tercetak lagi di printer’); End.

Output 1 : Output 2:

Ini tercetak di printer Kalau ini dilayar Ini juga tercetak di printer Kalau ini juga dilayar Sekarang tercetak lagi di printer

Page 46: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 45

2. MANIPULASI STRING

Suatu String dalam Bahasa Pascal dapat dioperasikan dengan berbagai macam tujuan.

Pascal menyediakan berbagai prosedur standar dan fungsi standar untuk operasi string.

Pada table dibawah ini ditampilkan prosedur standar dan fungsi standar pada pascal:

Prosedur Standar Fungsi Standar

DELETE CONCAT

INSERT COPY

STR POS

VAL LENGTH

Dalam operasinya, String hanya mempunyai sebuah operator yaitu operator ‘+’. Bila

operator ini digunakan untuk dua buah elemen string maka akan menggabungkan dua

buah string menjadi satu string. Panjang maksimal suatu string yang diijinkan oleh Pascal

adalah 255 karakter. Di bawah ini ada sebuah contoh penggunaan operator ‘+’ untuk

menggabungkan string:

Const Jenis = ‘Bahasa’; Nama = ‘Turbo Pascal’;

Var Sifat : String[10]; Kalimat : String[80];

Begin Sifat := ‘Terstruktur’; Kalimat := Jenis + ‘ ‘ + Nama + ‘ ‘ + ‘Merupakan’ + Jenis + ‘ ‘ + Sifat; WriteLn(Kalimat);

End.

Output: Bahasa Turbo Pascal Merupakan Bahasa Terstruktur

2.1. Prosedur Standar Pada String

Pascal menyediakan beberapa prosedur standar yang berguna untuk memanipulasi string, yaitu DELETE, INSERT, STR, dan VAL. 2.1.1. Prosedur DELETE

Prosedur DELETE digunakan untuk melakukan penghapusan terhadap substring dalam string yang dimulai dari posisi X sebanyak N karakter. Bentuk umum prosedur DELETE adalah sebagai berikut: DELETE(STRING :X :N);

Page 47: Official Site of LILIS SETYOWATI - Gunadarma University

46 Lilis Setyowati, ST., MMSI

*Jika jumlah i lebih besar dari jumlah karakter dalam string maka tidak ada karakter yang dihapus.

Contoh program menghapus substring dalam string:

Program delete_string; Uses Var awal : string; Begin Clrscr; Awal : = ‘Program Pascal’; DELETE (awal 2,3); Writeln (‘string awal = ,’awal); Readln; End.

2.1.2. Prosedure INSERT

Prosedur INSERT berfungsi untuk menyisipkan substring 1 ke dalam substring 2 mulai posisi karakter x. Bentuk umum prosedur INSERT adalah sebagai berikut:

Insert (string 1, string 2, n); * Bila hasil penyisipan string panjangnya lebih dari 255 karakter maka yang dianggap signifikan hanya sampai 255 karakter. Contoh program menyisipkan sebuah string ke dalam string lain:

Program insert_substring; Uses crt; Var s : string; Begin Clrscr; S : = ‘free pascal adalah karakter gratis pascal!’; Writeln (‘string s awal = ‘,s); Insert (‘bukan’,s,20); Writeln (‘string s setelah di insert =’,s); Readln; End.

2.1.3. Prosedur STR

Mengubah bentuk numerik (x) menjadi nilai string (s). Bentuk umum penulisan prosedur STR adalah sebagai berikut:

STR (x[:n[:m]], string); Nilai ‘n’ adalah format panjang dari nilai dan nilai ‘m’ menunjukkan format panjang

Page 48: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 47

desimal (nilai dibelakang koma). Contoh penggunaan prosedur STR dapat dilihat pada program di bawah ini:

Uses Crt; Var N1,N2:integer;

S1,S2: string; Begin

N1:=1234; N2:=567; Writeln (N1+N2); Readln; Str (N1:4,S1); Str (N2:4,S2); Writeln(S1+S2); Readln;

End.

2.1.4. Prosedur VAL

Prosedur VAL berfungsi untuk mengubah nilai suatu argumen string menjadi nilai

numerik. Bentuk umum penulisan prosedur VAL adalah sebagai berikut:

VAL (Var_string_angka, Var_nilai, kode);

Keterangan :

Var_string_angka: berisi data string yang berupa angka.

Var_nilai berisi data hasil konversi.

Jika terjadi kesalahan data makaposisi kesalahan disimpan pada

kode.

Uses Crt; Var X1,X2:real; Y1,Y2:string[6]; Z1,Z2:integer;

Begin Y1 := ‘123.45’; Y2 := ‘765.13’;

Val (Y1, X1, Z1); Val (Y2, X2,Z2); Writeln(‘Nilai String 1 = ‘,’Y1);

Writeln(‘Nilai String 2 = ‘, Y2); Writeln(‘Nilai Real 1 = ’, X1); Writeln(‘Nilai Real 2 = ’, X2); Writeln(‘Posisi Salah X1 = ‘, Y1); Writeln(‘Posisi Salah X2 = ‘, Y2);

End.

2.2. Fungsi Standar Pada String

Pascal menyediakan beberapa fungsi standar yang berguna untuk memanipulasi

string, yaitu CONCATE, COPY, POS, dan LENGTH.

Page 49: Official Site of LILIS SETYOWATI - Gunadarma University

48 Lilis Setyowati, ST., MMSI

2.2.1. Fungsi CONCATE

Memiliki kesamaan fungsi dengan operator penggabungan “+” seperti yang telah

dijelaskan pada sub bab penggabungan diatas. Bentuk umum penulisan fungsi CONCATE

adalah sebagai berikut:

CONCATE (string1, string2, ... string N);

Contoh program untuk menggabungkan 2 string menggunakan fungsi concat:

Program concat_string; Uses crt;

Var Kata 1, kata 2, hasil : string; Begin

Clrscr; Kata 1 := ‘Belajar pemrograman’ Kata 2 := ‘Dengan free pascal’; Hasil := concat (kata 1, kata 2); Readln;

End.

2.2.2. Fungsi COPY

Fungsi COPY digunakan untuk menyalin substring dan string yang dimulai pada posisi x

sebanyak n karakter. Format umum penulisan fungsi COPY adalah adalah sebagai

berikut:

COPY (STRING, x, n)

Contoh program untuk menyalin substring ke dalam string :

Program cth_copy string; Uses crt;

Var awal, akhir : string; Begin

Clrscr; Awal :=’1234567’; Writeln (‘nilai string awal : ‘,awal); Akhir : = copy (awal, 1, 2); {akhir : ‘12’} Writeln (‘nilai akhir =’,akhir); Akhir := copy (awal, 4,2); {s := ‘45’} Writeln (‘nilai akhir copy, 4,2 =’,akhir); Readln;

End.

2.2.3. Fungsi POS

Perintah POS berfungsi unutk mencari posisi suatu substring di dalam string dengan output data

berupa integer.

Page 50: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 49

POS akan mengembalikan nilai indeks substring ke dalam string jika string mengandung yang

dicari. Format umum penulisan fungsi POS adalah sebagai berikut:

POS (substring, string);

Contoh program mencari substring dalam string: Program pos_string; Uses crt;

Var Kata, cari : string; Posisi : integer; Begin

Clrscr; Kata := ‘Belajar pemrograman’; Cari := ‘aj’; Posisi := pos (cari,kata); Writeln (posisi); Readln;

End.

2.2.4. Fungsi LENGTH

Fungsi LENGTH digunakan untuk memberikan nilai panjang atau jumlah karakter dari

suatu string. Format umum penulisan fungsi LENGTH adalah sebagai berikut:

LENGTH (string);

Contoh program memberikan nilai panjang string:

Program length_string; Uses crt;

Var s:string[20]; i:word; Begin

s:=‘program pascal’; i:=length(s); writeln(‘Panjang String’,’ ‘,s,’ ‘,’adalah’,’ ‘,i,’

‘,’karakter’); Readln;

End.

Page 51: Official Site of LILIS SETYOWATI - Gunadarma University

50 Lilis Setyowati, ST., MMSI

3. PERULANGAN PADA PASCAL

Perulangan, atau looping dalam bahasa inggris, adalah konsep pemrograman dimana

kita mengulang baris program beberapa kali. “Beberapa kali” disini bisa dikatakan tidak

terbatas, selama komputer masih bisa mengolahnya.

Struktur perulangan (atau dalam bahasa inggris disebut dengan loop) merupakan

instruksi program yang bertujuan untuk mengulang beberapa baris perintah. 3

komponen utama yang harus diketahui ketika menggunakan struktur perulangan

looping adalah kondisi awal dari perulangan, perintah program yang akan diulang,

serta kondisi akhir dimana perulangan akan berhenti. Pada Bahasa pemrograman

pascal terdapat beberapa struktur perulangan yang dapat digunakan, antara lain :

Struktur perulangan FOR-DO

Struktur perulangan WHILE-DO

Struktur perulangan REPEAT-UNTIL

3.1. Struktur Perulangan FOR-DO

FOR DO merupakan salah satu struktur perulangan di dalam Pascal. Flowchart

perulangan FOR DO dapat dilihat pada gambar di bawah ini,

Perulangan FOR DO dibagi menjadi 2 yaitu perulangan FOR-TO-DO dan FOR-DOWNTO-

DO.

3.1.1. Perulangan FOR-TO-DO

Perulangan FOR TO DO merupakan perulangan dengan nilai awal lebih rendah dibanding

nilai akhir (perulangan maju/meningkat). Flowchart dari perulangan ini adalah sbb;

Page 52: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 51

Bentuk umum penulisan perulangan FOR-TO-DO adalah sbb:

FOR (variabel_counter):= (nilai_awal) TO (nilai_akhir) DO begin (kode program yang ingin diulang disini...) end;

variabel_counter adalah variabel yang berfungsi sebagai counter, atau penghitung di

dalam perulangan. Variabel ini otomatis menaik dari nilai_awal hingga nilai_akhir. Dalam

setiap kenaikan, blok kode program yang berada di dalam begin dan end; akan

dijalankan. Variabel_counter ini bisa digunakan sepanjang perulangan (jika diperlukan).

Contoh Program perulangan FOR-TO-DO:

program for_do_loop; uses crt; var i: integer; begin clrscr; for i := 1 to 5 do begin writeln('Hello World ke - ',i); end; readln; end.

Page 53: Official Site of LILIS SETYOWATI - Gunadarma University

52 Lilis Setyowati, ST., MMSI

OUTPUT :

Hello Word Ke – 1 Hello Word Ke - 2 Hello Word Ke - 3 Hello Word Ke - 4 Hello Word Ke - 5

3.1.2. Perulangan FOR-DOWNTO-DO

Jenis perulangan FOR DO yang kedua adalah perulangan FOR-DOWNTO-DO. Jenis

perulangan ini merupakan kebalikan dari perulangan FOR-TO-DO, jika pada perulangan

FOR-TO-DO nilai awal lebih rendah dibanding nilai akhir (perulangan maju/meningkat),

maka nilai awal pada FOR-DOWNTO-DO adalah leboh ringgi dibandingkan dengan nilai

akhir (perulangan mundur/ menurun). Flowchart dari perulangan ini adalah sbb;

Bentuk umum penulisan perulangan FOR-DOWNTO-DO adalah sbb :

FOR (variabel_counter) := (nilai_awal) DOWNTO (nilai_akhir) DO begin (kode program yang ingin diulang disini...) end;

Contoh Program perulangan FOR-DOWNTO-DO:

program for_do_loop2; uses crt;

Page 54: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 53

var i: integer; begin clrscr; for i := 5 downto 1 do begin writeln('Hello World ke - ',i); end; readln; end.

OUTPUT :

Hello Word Ke - 5 Hello Word Ke - 4 Hello Word Ke - 3 Hello Word Ke - 2 Hello Word Ke - 1

3.2. Struktur Perulangan WHILE -DO

Perulangan WHILE-DO adalah perulangan yang dapat digunakan pada situasi dimana

jumlah perulangan belum bisa dipastikan. Bentuk umum penulisan perulangan WHILE-

DO adalah sebagai berikut:

WHILE (condition) DO begin (kode program yang ingin diulang disini...) (kode program untuk mengubah condition..) end;

Kunci dari perulangan WHILE DO ada di condition dan kode program untuk mengubah

condition. Condition bisa dikatakan sebagai syarat agar perulangan bisa dijalankan.

Selama syarat ini terpenuhi (bernilai TRUE), perulangan akan terus dijalankan. Jika syarat

ini tidak terpenuhi (bernilai FALSE), perulangan tidak akan berjalan.

Contoh program perulangan WHILE-DO

program while_do; uses crt; var i: integer; begin clrscr;

Page 55: Official Site of LILIS SETYOWATI - Gunadarma University

54 Lilis Setyowati, ST., MMSI

i:= 6; while i <= 10 do begin writeln('Variabel i sekarang bernilai: ',i); i:= i + 1; end; readln; end.

OUTPUT: Variabel i sekarang bernilai: 6 Variabel i sekarang bernilai: 7 Variabel i sekarang bernilai: 8 Variabel i sekarang bernilai: 9 Variabel i sekarang bernilai: 10

3.2.1. Membuat Perulangan Hitung Mundur dengan WHILE-DO

Program dengan perulangan yang mundur dengan WHILE-Do dapat dibuat dengan

mengubah nilai awal variabel counter dan kondisi syarat dari perulangan WHILE-DO.

Berikut ini merupakan contoh program hitung mundur menggunakan WHILE-DO:

program while_do; uses crt; var i: integer; begin clrscr; i:= 3; while i >= 0 do begin writeln('Hitung mundur: ',i); i:= i - 1; end; readln; end.

OUTPUT:

Hitung mundur: 3 Hitung mundur: 2 Hitung mundur: 1 Hitung mundur: 0

Page 56: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 55

3.2.2. Membuat Perulangan Lompat dengan WHILE-DO

Program perulangan lompat dengan menggunakan WHILE-DO dapat dibuat dengan

memodifikasi bagian counter. Variabel counter yang naik misalnya dari 3, 6, 9, 12, dst

dapat dibuat dengan memodifikasi bagian counter. Contoh program perulangan lompat

menggunakan WHILE-Do adalah sbb;

program while_do; uses crt; var i: integer; begin clrscr; i:= 3; writeln('Berikut deret untuk kelipatan 3: '); while i <= 30 do begin write(i,' '); i:= i + 3; end; readln; end.

OUTPUT:

Berikut deret untuk kelipatan 3: 3 6 9 12 15 18 21 24 27 30

3.3. Struktur Perulangan REPEAT -UNTIL

Perulangan REPEAT -UNTIL digunakan untuk mengulang (repeat) statement-statement

atau blok statement sampai (until) kondisi yang diseleksi di Until tidak terpenuhi.

Pada dasarnya, perulangan REPEAT-UNTIL mirip dengan perulangan WHILE-DO.

Pengecekan dalam setiap iterasi apakah nilai variabel counter masih dipenuhi atau tidak

selalu dilakukan pengecekan.

Perbedaan REPEAT-UNTIL dengan WHILE-DO terletak pada proses pemeriksaan kondisi.

Pemeriksaan kondisi pada perulangan REPEAT-UNTIL dilakukan di akhir perulangan,

sedangkan WHILE-DO dilakukan di awal. Format dasar penulisan perulangan REPEAT-

UNTIL dalam bahasa pemrograman PASCAL adalah sebagai berikut:

REPEAT begin (kode program yang ingin diulang disini...) (kode program yang untuk mengubah condition..) end; UNTIL (condition)

Page 57: Official Site of LILIS SETYOWATI - Gunadarma University

56 Lilis Setyowati, ST., MMSI

Karena condition dicek di akhir, setidaknya isi perulangan akan dijalankan minimal 1

kali, meskipun condition tidak dipenuhi. Inilah perbedaan mendasar dari REPEAT-UNTIL

dengan perulangan lain seperti FOR-DO dan WHILE-DO.

Flowchart dari perulangan REPEAT-UNTIL dapat dilihat pada gambar di bawah ini:

Contoh program yang menggunakan perulangan REPEAT-UNTIL dapat dilihat di bawah

ini:

program repeat_until; uses crt; var i: integer;

begin clrscr; i:= 0; repeat begin

writeln('Variabel i sekarang bernilai: ',i); i:= i + 1; end; until i = 4; readln; end.

OUTPUT:

Variabel i sekarang bernilai: 0 Variabel i sekarang bernilai: 1 Variabel i sekarang bernilai: 2 Variabel i sekarang bernilai: 3

Page 58: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 57

3.3.1. Membuat Perulangan Lompat dengan REPEAT-UNTIL

Program perulangan lompat dengan menggunakan REPEAT-UNTIL dapat dibuat dengan

memodifikasi bagian counter. Variabel counter yang naik misalnya dari 3, 6, 9, 12, dst

dapat dibuat dengan memodifikasi bagian counter. Contoh program perulangan lompat

menggunakan REPEAT-UNTIL adalah sbb;

program repeat_until;

uses crt; var i: integer;

begin clrscr; i:= 3;

writeln('Berikut deret untuk kelipatan 3: '); repeat begin write(i,' '); i:= i + 3; end;

until i > 20; readln;

end.

OUTPUT:

Berikut deret untuk kelipatan 3: 3 6 9 12 15 18

HARAP DIPERHATIKAN: Hati-hati terhadap Infinity Loop Infinity Loop adalah sebuah perulangan yang tidak pernah berhenti. Ini terjadi karena

variabel kondisi akan selalu bernilai TRUE.

Page 59: Official Site of LILIS SETYOWATI - Gunadarma University

58 Lilis Setyowati, ST., MMSI

Contoh program Infinity Loop:

program while_do; uses crt; var i: integer; begin clrscr; i:= 5; while i < 11 do begin writeln('Variabel i sekarang bernilai: ',i); end;

readln; end.

Jika program di atas dijalankan akan terjadi Ifinity Loop. Ifinity Loop terjadi karena

kondisi while i <= 10 do akan selalu TRUE. Infinity Loop biasanya terjadi karena

kesalahan logika dari programmer, terutama untuk perulangan WHILE-DO dan REPEAT-

UNTIL. Infinity loop dapat dihentikan dengan menekan kombinasi tombol CRTL + C, atau

menutup paksa Free Pascal.

3.4. Perulangan Bersarang

Perulangan bersarang atau dalam bahasa inggris sering disebut sebagai nested loop

adalah perulangan di dalam perulangan.

3.4.1. Perulangan bersarang pada FOR-DO

Format dasar nested loop menggunakan perulangan FOR-DO:

FOR (variabel_counter_1) := (nilai_awal_1) TO (nilai_akhir_1) DO begin

(kode program yang ingin diulang disini...) FOR (variabel_counter_2) := (nilai_awal_2) TO (nilai_akhir_2) DO

Begin (kode program yang ingin diulang disini...) end; end;

Page 60: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 59

Contoh Kode Program Pascal untuk Nested Loop menggunakan FOR-DO :

program nested_loop; uses crt; var i,j: integer; begin clrscr; for i := 1 to 5 do begin for j := 1 to 5 do begin write(i*j); write(' '); end; writeln; end; readln; end.

OUTPUT: 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25 3.4.2. Perulangan bersarang pada WHILE-DO

Dalam perulangan bersarang menggunakan WHILE-DO harus dipastikan variabel counter

dinaikkan pada saat yang tepat, jika tidak maka akan terjadi infinty loop.

Berikut kode program nested loop dari contoh sebelumnya, namun menggunakan

perintah WHILE-DO:

program nested_loop; uses crt; var i,j: integer; begin clrscr;

Page 61: Official Site of LILIS SETYOWATI - Gunadarma University

60 Lilis Setyowati, ST., MMSI

i := 1; while i <= 5 do begin j := 1; while j <= 5 do begin write(i * j,' '); j := j + 1; end; writeln; i := i + 1; end; readln; end.

3.4.3. Perulangan bersarang pada REPEAT UNTIL

Sama seperti perulangan bersarang pada WHILE-DO, perulangan bersarang

menggunakan REPEAT-UNTIL juga harus dipastikan variabel counter dinaikkan pada saat

yang tepat, jika tidak maka akan terjadi infinty loop.

Berikut kode program nested loop dari contoh sebelumnya, namun menggunakan

perintah REPEAT-UNTIL:

Var a,b,c : Real; Begin

Writeln(‘========================================’); Writeln(‘ sisi A sisi B Sisi C ‘); Writeln (‘ =======================================’);

a:= 1; Repeat b := 0;

Repeat c:=Sqrt (a*a+b*b);

Writeln (a:6:2, b:9:2, c:9:2); b:=b+5;

Until b>25; a:=a+1;

Until a>3; Writeln(‘ =======================================’); End.

Page 62: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 61

3.4.4. Perintah BREAK

Perintah break digunakan untuk berhenti dari perulangan yang sedang berlangsung.

Perulangan yang dimaksud adalah perulangan FOR-DO, WHILE-DO, maupun REPEAT-

UNTIL. Ketiga perulangan tersebut akan dipaksa berhenti saat ketemu perintah break.

Umumnya perintah break disimpan dalam sebuah kondisi IF ELSE. Selama kondisi belum

terpenuhi, perulangan tetap terus berlangsung. Jika kondisi sesuai, maka akan berhenti

(break).

Contoh Kode Program Penggunaan Break Pascal:

program penggunaan_break; uses crt; var i: integer; begin clrscr; for i := 12 downto 10 do begin writeln(i ,' * 3 = ',i*3); if (i = 5) then break; end;

readln; end.

OUTPUT:

12 * 3 = 36 11 * 3 = 33 10 * 3 = 30

CATATAN: Di dalam perulangan di atas terdapat 1 kondisi break: if (i = 5) then break. Perintah ini

tidak akan pernah dijalankan karena secara logika variabel counter i tidak akan pernah

bernilai 5. Hal ini juga dikarenakan perulangan akan berhenti lebih dulu, yakni saat i

bernilai 10.

3.4.5. Perintah CONTINUE

Perintah continue digunakan untuk menghentikan 1 iterasi yang sedang berlangsung.

Page 63: Official Site of LILIS SETYOWATI - Gunadarma University

62 Lilis Setyowati, ST., MMSI

Perulangan tidak berhenti total, yang dihentikan hanya 1 kali perulangan yang sedang

terjadi, kemudian kode program akan melanjutkan perulangan. contoh kode program

pascal untuk penggunaan perintah continue dapat dilihat di bawah ini:

program penggunaan_continue; uses crt; var i: integer; begin clrscr; for i := 2015 to 2020 do begin writeln('Mahasiswa Gunadarma ',i); if (i = 2017) then continue; end; readln; end.

OUTPUT:

Mahasiswa Gunadarma 2015 Mahasiswa Gunadarma 2016 Mahasiswa Gunadarma 2017 Mahasiswa Gunadarma 2018

Mahasiswa Gunadarma 2019 Mahasiswa Gunadarma 2020

CATATAN: Terlihat baris Mahasiswa Gunadarma 2017 tetap tampil, bahkan seluruh baris tampil.

Hal ini terjadi karena pada saat i = 2017, baris writeln('Mahasiswa Gunadarma

',i) sudah dijalankan terlebih dahulu, barulah perintah continue di proses. Akibatnya,

sudah terlambat untuk melompati iterasi saat itu. Solusinya, kita harus jalankan perintah

continue sebelum writeln('Mahasiswa Gunadarma ',i).

Pada perulangan while do, penggunaan perintah continue harus ditambahkan dengan

menaikkan nilai variabel counter. Berikut contohnya:

program penggunaan_break; uses crt; var i: integer; begin clrscr; i:= 0;

Page 64: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 63

while i < 10 do begin if (i = 6) then begin i:= i + 1; continue; end; writeln('Variabel i sekarang bernilai: ',i); i:= i + 1; end; readln; end.

OUTPUT: Variabel i sekarang bernilai: 0 Variabel i sekarang bernilai: 1 Variabel i sekarang bernilai: 2 Variabel i sekarang bernilai: 3 Variabel i sekarang bernilai: 4 Variabel i sekarang bernilai: 5 Variabel i sekarang bernilai: 7 Variabel i sekarang bernilai: 8 Variabel i sekarang bernilai: 9 CATATAN:

Perintah untuk menaikkan nilai variabel counter i, yakni baris i:= i + 1 harus

ditambahkan sebelum perintah continue. Jika tidak, akan terjadi infinity loop.

Jika perintah if (i = 6) then continue ditulis tanpa menaikkan nilai variabel counter, perulangan while do akan berputar di i = 6 dan tidak akan bisa lanjut ke i = 7 (karena memang tidak ada perintah untuk menaikkan nilai i ke 7). Baris i:= i + 1 ditempatkan di akhir perulangan, sehingga akan dilompati oleh perintah continue.

Tambahan perintah begin dan end digunakan sebagai block kode program ketika

kondisi if (i = 6) dipenuhi. Jika ini tidak ditulis, perintah continue tidak akan dianggap sebagai bagian dari if (i = 6).

Page 65: Official Site of LILIS SETYOWATI - Gunadarma University

64 Lilis Setyowati, ST., MMSI

4. PERCABANGAN PADA PASCAL

Dalam pembuatan program ada saatnya diperlukan perintah percabangan. Perintah

percabangan diperlukan akan dilakukan aksi ketika sebuah kondisi terpenuhi maka

jalankan kode program. Jika kondisi tidak terpenuhi, jalankan kode program yang lain. Di

dalam Pascal terdapat beberapa struktur kondisi yakni:

4.1. Statement IF

Kondisi percabangan If memiliki beberapa bentuk umum, antara lain:

4.1.1. IF - THEN

Konsep dasar dari percabangan perintah IF THEN dalam bahasa pemrogram Pascal

adalah sebagai berikut:

IF (kondisi) THEN begin

(statement)

end;

Kondisi berperan sebagai penentu dari stuktur percabangan ini. Jika kondisi terpenuhi

(menghasilkan nilai TRUE), kode program akan dijalankan. Jika kondisi tidak terpenuhi

(menghasilkan nilai FALSE), tidak terjadi apa-apa.

Bentuk flowchart dari bentuk IF kondisi THEN statement adalah sebagai berikut,

Page 66: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 65

Contoh program yang menggunakan bentuk umum percabangan IF kondisi THEN

statement:

program struktur_if_then; uses crt; var nilai: integer; begin clrscr; nilai := 100; if (nilai > 50) then begin writeln('Nilai "UTS" lebih besar dari 50'); end; writeln(Mahasiswa Teknik Informatika Universitas Gunadarma'); readln; end.

OUTPUT: Nilai “UTS” lebih besar dari 50 Mahasiswa Teknik Informatika Universitas Gunadarma * Saran: Selalu buat blok begin dan end; ketika membuat sebuah percabangan. Hal ini dilakukan untuk memastikan baris mana saja yang termasuk ke dalam blok if. 4.1.2. IF-THEN-ELSE

kondisi IF THEN ELSE adalah tambahan dari kondisi IF THEN. Bagian ELSE digunakan

untuk menjalankan kode program apabila sebuah kondisi tidak terpenuhi.

Konsep dasar dari percabangan IF THEN ELSE dalam bahasa pemrogram Pascal adalah

sebagai berikut:

IF (kondisi) THEN begin (statement 1) end ELSE begin (statement 2) end;

Bentuk flowchart dari bentuk IF kondisi THEN statement ELSE Statement 2 adalah

sebagai berikut,

Page 67: Official Site of LILIS SETYOWATI - Gunadarma University

66 Lilis Setyowati, ST., MMSI

Contoh program:

program struktur_if_then_else; uses crt; var nilai: integer; begin clrscr; nilai := 45; if (nilai > 50) then begin writeln('Nilai "UTS" lebih besar dari 50'); end else begin writeln('Nilai "UTS" lebih kecil dari 50'); end; readln; end.

OUTPUT: Nilai “UTS” lebih kecil dari 50 Catatan: Penutup block sebelum perintah ELSE tidak boleh ada titik koma “ ; ”

4.1.3. IF Bersarang (Nested IF)

IF bersarang atau nested IF adalah penggunaan struktur IF di dalam IF. Kondisi seperti ini

sering digunakan untuk kode program yang sudah cukup kompleks. Banyak variasi

dari nested IF, tergantung kode program yang ingin dirancang. Salah satunya adalah

sebagai berikut:

Page 68: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 67

IF (kondisi 1) THEN begin (statement 1) IF (kondisi 1.1) THEN begin (statement 1.1) end; end ELSE begin (statement 2) end;

Keterangan: Sebuah kondisi IF di dalam IF (nested IF). Statement 1.1 hanya akan

dijalankan jika kondisi 1 dan kondisi 1.1 terpenuhi. Jika kondisi 1 tidak terpenuhi,

program akan langsung lompat ke bagian ELSE.

Variasi nested IF berikutnya adalah sebagai berikut:

IF (kondisi 1) THEN begin (statement 1) IF (kondisi 1.1) THEN begin (statement 1.1) IF (kondisi 1.1.1) THEN begin (statement 1.1.1) end; end; end ELSE begin (statement 2) IF (kondisi 2.1) THEN begin (statement 2.1) end; end;

Keterangan: Struktur IF di dalam IF di dalam IF (2 level nested IF). Untuk program di atas

diperlukan kehati-hatian dalam menentukan statement mana yang masuk ke dalam blok

IF.

Page 69: Official Site of LILIS SETYOWATI - Gunadarma University

68 Lilis Setyowati, ST., MMSI

Penulisan indenting (meletakkan statement dengan mendahului penambahan beberapa

spasi di awal) juga akan membantu untuk membedakan statement ini masuk IF yang ini,

dan statement itu masuk ke IF yang itu.

contoh program nested IF:

program struktur_if_then_else_nested; uses crt; var angka:integer; begin clrscr; write('Masukkan sebuah angka: '); readln(angka); if (angka mod 2 = 0) then begin write('Angka yang anda masukkan merupakan bilangan genap '); if (angka > 10) then begin writeln('dan besar dari 10'); end else begin writeln('dan kecil dari 10'); end; end else begin write('Angka yang anda masukkan merupakan bilangan ganjil '); if (angka > 10) then begin writeln('dan besar dari 10'); end else begin writeln('dan kecil dari 10'); end; end; readln; end.

OUTPUT 1: Masukkan sebuah angka : 7 Angka yang anda masukkan merupakan bilangan ganjil dan kecil dari 10 OUTPUT 2: Masukkan sebuah angka : 12 Angka yang anda masukkan merupakan bilangan genap dan besar dari 10

Page 70: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 69

4.2. Statement CASE

Struktur percabangan CASE mirip seperti struktur percabangan IF THEN ELSE yang

berulang. Jika di dalam IF THEN ELSE kita memiliki format penulisan seperti berikut:

IF (kondisi1) THEN (statement 1) ELSE IF (kondisi2) THEN (statement 2) ELSE IF (kondisi3) THEN (statement 3)

Maka di struktur CASE, format penulisannya adalah seperti berikut:

CASE (expression) OF kondisi 1 : (statement 1); kondisi 2 : (statement 2); kondisi 3 : (statement 3); end;

Catatan: Expression adalah ‘sesuatu’ yang akan di periksa nilainya. Jika nilai dari

expression ini sama dengan kondisi 1, maka yang dijalankan adalah (kode program 1),

jika sesuai dengan kondisi 2, maka yang akan dijalankan adalah (kode program 2), dst.

Contoh program:

program struktur_case; uses crt; var bulan: integer; begin clrscr; write('Silahkan input angka untuk bulan (1-8): '); readln(bulan); case (bulan) of 1 : writeln('Januari'); 2 : writeln('Februari'); 3 : writeln('Maret'); 4 : writeln('April'); 5 : writeln('Mei'); 6 : writeln('Juni'); 7 : writeln('Juli'); 8 : writeln('Agustus'); end; readln; end.

Page 71: Official Site of LILIS SETYOWATI - Gunadarma University

70 Lilis Setyowati, ST., MMSI

OUTPUT: Silahkan input angka untuk bulan (1-8): 8 Agustus

CASE ELSE Contoh program CASE ELSE :

program struktur_case; uses crt; var grade: string; begin

clrscr; write('Silahkan input grade anda (A-E): '); readln(grade); case (grade) of 'A' : writeln('Sangat Memuaskan'); 'B' : writeln('Memuaskan'); 'C' : writeln('Kurang Baik'); 'D' : writeln('Kurang Baik'); 'E' : writeln('Maaf, anda tidak lolos'); else writeln('Maaf, format yang anda masukkan salah'); writeln('Harap input grade berupa huruf: A, B, C, D, atau E'); end; readln; end.

OUTPUT: Silahkan input grade anda (A-E) : E Maaf, anda tidak lolos OUTPUT 2: Silahkan input grade anda (A-E) : Y Maaf, format yang anda masukkan salah Harap input grade berupa huruf: A, B, C, D, atau E

Page 72: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 71

Batasan Struktur CASE:

Struktur CASE menawarkan penulisan yang lebih singkat dan efisien dibandingkan struktur IF THEN, namun kondisi yang bisa dipakai hanya sederhana seperti yang saya contohkan, misalkan apakah sebuah variabel bernilai angka atau string tertentu.

Untuk kondisi yang lebih rumit seperti perbandingan lebih besar ” > ” atau lebih kecil ” <“, atau perbandingan yang melibatkan lebih dari 1 kondisi, kita tidak bisa menggunakan CASE. Kode program untuk menentukan apakah sebuah angka genap atau ganjil, tidak bisa dikonversi ke dalam CASE.

Dalam pemrograman yang “sebenarnya”, kita juga lebih sering menggunakan IF daripada CASE. Tapi untuk situasi yang melibatkan banyak perulangan sederhana, struktur CASE lebih rapi dan singkat daripada IF.

Perbedaan CASE dan IF THEN

Jika statement if menyeleksi suatu kondisi dan terpenuhi, setelah memproses statement dalam lingkungan yang terpenuhi tersebut, proses penyeleksian masih dilakukan terhadap statement if berikutnya yang lain. Sedangkan pada struktur CASE-OF bila salah satu kondisi terpenuhi dan statement tersebut telah diproses, selanjutnya statement-statement yang lainnya dalam lingkungan CASE tidak akan diseleksi lagi.

Daftar case label dapat berupa sebuah konstanta, atau range dari konstanta yang bukan bertipe real.

Page 73: Official Site of LILIS SETYOWATI - Gunadarma University

72 Lilis Setyowati, ST., MMSI

5. PROCEDURE PADA PASCAL

Procedure adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub-

program (modul program) yang merupakan sebuah program kecil untuk memproses

sebagian dari pekerjaan program utama.

Procedure diawali dengan kata cadangan Procedure di dalam bagian deklarasi

procedure. Procedure dipanggil dan digunakan di dalam blok program yang lainnya

dengan menyebutkan judul procedurenya.

Procedure banyak digunakan pada program yang terstruktur. Hal ini disebabkan kerena:

1. Merupakan penerapan konsep program modular, yaitu memecah-mecah

program yang rumit menjadi program-program bagian yang lebih sederhana

dalam bentuk procedure-procedure.

2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja

dalam procedure dan dapat dipanggil atau dipergunakan sewaktu-waktu bila

diperlukan.

Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block.

Perbedaan bentuk procedure dengan program hanyalah pada bagian header-nya saja.

Bentuk Umum header suatu procedure adalah sbb:

PROCEDURE nama; Atau

PROCEDURE nama (formal parameter : jenis);

Jika procedure digunakan dalam suatu program, maka procedure tersebut harus

dituliskan pada bagian deklarasi.

Contoh 1:

Misal akan dibuat suatu procedure untuk menentukan bilangan bulat terbesar diantara

tiga bilangan bulat, maka procedure tersebut adalah sebagai berikut :

PROCEDURE maksimum; VAR max : integer; BEGIN IF a > b THEN max := a ELSE max := b; IF c > max THEN max := c; WRITELN(max); END.

Page 74: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 73

Selanjutnya, di dalam suatu program, procedure ini dapat digunakan dengan bentuk

penulisan sebagai berikut :

Program contoh_1; uses crt; var a,b,c : integer; procedure maksimum; var max : integer;

begin IF a > b then max := a else max := b;

IF c > max THEN max := c; Writeln (max); end;

begin

readln (a, b, c); maksimum

end.

5.1. Procedure Dengan Parameter

Nilai di dalam suatu modul program Pascal sifatnya adalah lokal, artinya hanya dapat

digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat

digunakan pada modul atau unit program yang lainnya. Contoh procedure dengan

parameter dapat dilihat di bawah ini:

procedure tanya_hitung; uses crt; var x,y : real;

begin write ('nilai x ?'); readln (x); y := x*x; writeln ('Nilai Y = ', y:6:2);

end; begin tanya_hitung; end.

OUTPUT: Nilai X ? 5 Nilai Y = 25.00

Header program

utama

Deklarasi program

utama

Statement program

utama

Page 75: Official Site of LILIS SETYOWATI - Gunadarma University

74 Lilis Setyowati, ST., MMSI

CONTOH 2:

procedure tanya_hitung; uses crt; var x,y : real; begin write ('nilai x ?'); readln (x); y := x*x; end; begin tanya_hitung; writeln ('Nilai Y = ', y:6:2); end.

OUTPUT: Error 31: Unknown identifier Solusi agar output tidak error !!!

Pastikan nilai variabel dapat digunakan di modul lainnya, dengan cara :

5.1.1. Dibuat bersifat global: Harus dideklarasikan di atas modul yang

menggunakannya.

Pada contoh di bawah ini, variabel A dab B bersifat global untuk procedure kedua, ketiga dan utama, tetapi tidak bersifat global untuk procedure pertama, sehingga procedure pertama tidak dapat menggunakan variabel-variabel tersebut.

procedure pertama; uses crt; begin ...........; ...........; end; (*akhir proceduree pertama....*) var A,B : char; procedure kedua; begin ...........; ...........; end;(*akhir proceduree kedua....*) procedure ketiga; begin ...........; ...........; end; (*akhir proceduree ketiga....*) begin ...........; ...........; end. (*akhir dari modul utama*)

Page 76: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 75

Berbeda dengan contoh sebelumnya, pada contoh ini, variabel A dan B bersifat global.

Variabel berlaku untuk semua modul.

var A,B : real;

procedure pertama; begin ...........; ...........; end; (*akhir proceduree pertama....*) procedure kedua; begin ...........; ...........; end;(*akhir proceduree kedua....*) procedure ketiga; begin ...........; ...........; end; (*akhir proceduree ketiga....*) begin ...........; ...........; end. (*akhir dari modul utama*)

5.1.2. Cara kedua adalah dengan mengirimkan variabel sebagai parameter ke modul

yang membutuhkannya.

Parameter yang dikirim dari modul utama ke modul procedure disebut actual

parameter, dan parameter yang ada dan dituliskan pada judul procedure disebut formal

parameter. Ada beberapa cara pengiriman parameter, yaitu:

5.1.2.1. Pengiriman parameter secara nilai

parameter yang dikirimkan secara nilai berarti bahwa parameter formal yang ada di

procedure akan berisi nilai yang dikiirmkan , yang kemudian bersifat lokal di procedure.

contoh :

procedure konversi; begin f := (5/9) * c + 32 writeln (c,f); end;

Keterangan : f dan c variabel global, c sebagai input dan f sebagai output.

Page 77: Official Site of LILIS SETYOWATI - Gunadarma University

76 Lilis Setyowati, ST., MMSI

Procedure di atas dapat dipanggil dengan variabel yang berbeda, tetapi penulisannya

harus diubah dengan menggunakan parameter sbb:

procedure konversi (var f: real; c: real; begin f := (5/9) * c + 32 (disebut formal parameter) writeln (c,f); end;

Selanjutnya procedure di atas dapat dipanggil dengan parameter lain, misalnya: konversi (x,y); (disebut actual parameter)

Pada eksekusinya, x akan menggantikan c dan y akan menggantikan f. x dan y dapat

berupa : konstanta, variabel, procedure, atau fungsi.

Contoh: procedure Hitung (A,B : integer); var C : integer; begin C := A + B; writeln('Nilai C = ', C); end; var X,Y : integer; begin write ('Nilai X ? "); readln(X); write ('Nilai Y ? "); readln(Y); Hitung(X,Y); end. OUTPUT: Nilai X ? 6 Nilai Y ? 4 Nilai C = 10

Keterangan:

Procedure dimulai dengan deklarasi procedure dengan judul procedure Hitung. Variable A dan B merupakan parameter formal dengan tipe parameter integer

Variable local yang hanya dipergunakan di procedure dan tidak termasuk parameter formal (parameter nilai), harus didefinisikan sendiri, yaitu : variable C.

Hubungan antara parameter formal di procedure dengan parameter nyata di

modul utama adalah : nilai parameter nyata X dan Y di modul utama dikirimkan

ke parameter formal A dan B di procedure. Dengan demikian nilai parameter A

Page 78: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 77

dan B di procedure akan berisi nilai yang sama dengan parameter X dan Y di

modul utama.

5.1.2.2. Pengiriman Parameter Secara Acuan

Jika pengiriman parameter dilakukan secara acuan (by reference), maka perubahan-

perubahan yang terjadi pada nilai parameter formal di procedure akan mempengaruhi

nilai actual parameter. Parameter-parameter ini disebut dengan variable parameter

serta dideklarasikan di deklarasi procedure dengan menggunakan kata cadangan Var,

seperti tampak di bawah ini:

Procedure hitung(var A,B,C : integer);

Contoh program:

Procedure Hitung ( var A, B, C : integer ) ; Begin C : = A + B ; End ; Var X, Y, Z : integer ; Begin X : = 2 ; Y : = 3 ; Hitung ( X, Y, Z ) ; Writeln (‘ X = ‘, X , ‘ Y = ‘ , Y, ‘ Z = ‘ , Z ) ; End.

Output: X = 2 Y = 3 Z = 5

Keterangan :

Pengiriman parameter secara acuan merupakan pengiriman dua arah, bolak-balik,

sehingga perubahan nilai di parameter formal akan mempengaruhi nilai parameter

nyata juga. Pada contoh, nilai parameter nyata Z akan mengikuti perubahan nilai dari

parameter formal C.

5.1.2.3. Pengiriman Parameter Secara Nilai Sebagai Acuan

Pengiriman parameter dapat dicampur sebagian secara nilai dan sebagian secara acuan

dalam suatu procedure. Parameter yang hanya dibutuhkan pada procedure saja dapat

dikirimkan secara nilai dan yang ingin dikirimkan balik dapat dilakukan secara acuan,

sebagai berikut :

PROCEDURE Hitung ( A, B : integer ; Var C : integer ) ;

Page 79: Official Site of LILIS SETYOWATI - Gunadarma University

78 Lilis Setyowati, ST., MMSI

Contoh program :

Procedure Hitung ( A, B : integer ; Var C ; integer ) ; Begin C : = A + B ; End ; Var X, Y, Z : integer ; Begin X : = 2 ; Y : = 3 ; Hitung ( X, Y, Z ) ; Writeln ( ‘ X = ‘, X , ‘ Y = ‘, Y , ‘ Z = ‘, Z ) ; End.

OUTPUT: X = 2 Y = 3 Z = 5

5.2. Procedure Memanggil Procedure Yang Lain

Sebuah procedure dapat digunakan untuk memanggil procedure yang lainnya. Berikut

contoh program pemanggilan procedure menggunakan procedure:

Procedure Pro1 ( X1 : integer ); Begin

Writeln (‘Nilai X = ‘, X1, ‘ada di procedure Pro1’); End;

Procedure Pro2 (X2 : integer ); Begin

Writeln (‘Nilai X = ‘, X2, ‘ada diprocedure Pro2’); Pro1 (X2);

End; Var

X : integer ; Begin

X : = 5; Pro2 ( X );

End.

OUTPUT: Nilai X = 5 ada diprocedure Pro2 Nilai X = 5 ada diprocedure Pro1 5.3. Procedure Tersarang

Procedure tersarang merupakan sebuah keadaan dimana procedure berada di dalam

procedure lain. Adalah procedure yang berada didalam procedure yang lainnya. Bentuk

umum pembuatan procedure di dalam procedure adalah sebagai berikut:

Page 80: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 79

Program Procedure

Procedure Begin

…… ……

End ; Begin

… …

End ; Begin

… …

end. 5.4. Procedure Memanggil Dirinya Sendiri

Procedure memanggil dirinya sendiri merupakan procedure yang memanggil atau

menggunakan procedure itu juga. Proses dari suatu program bagian yang memanggil

dirinya sendiri dikenal dengan istilah recursion. Tidak semua bahasa menyediakan

kemampuan untuk melakukan proses recursion. Pascal merupakan salah satu Bahasa

pemrograman yang dapat melakukan proses recursion. Walaupun proses ini merupakan

algoritma yang baik, tetapi membutuhkan banyak memori, karena setiap kali program

bagian dipanggil oleh dirinya sendiri, maka dibutuhkan sejumlah ruang memori

tambahan. Contoh:

Var I : integer ; Procedure Rekursi ; Begin

Writeln ( ‘Hallo saya Pascal ‘ ) ; I : = I + 1 ; If I < 10 Then Rekursi ;

End ; Begin

I : = 1 ; Rekursi ;

End.

5.5. Acuan Forward

Acuan forward digunakan untuk mendeklarasikan di muka judul procedure terpisah dari

bloknya. Judul procedure yang berisi parameter terpisah ini merupakan judul yang

semestinya dan di deklarasikan dengan menambahkan kata cadangan “ Forward ”. Blok

Page 81: Official Site of LILIS SETYOWATI - Gunadarma University

80 Lilis Setyowati, ST., MMSI

procedure ini letaknya terpisah dari judulnya, juga diawali dengan judul procedure,

tetapi hanya mencantumkan judul atau nama procedurenya saja, tanpa mencantumkan

parameter formalnya. Contoh program :

Procedure Pro1 (Var I : integer ) ; Forward ; Procedure Pro2 (Var I : integer ) ; Begin

Writeln ( ‘ Procedure PRO’, I ) ; End ; Procedure Pro1 ; Begin

Writeln ( ‘Procedure PRO’, I ) ; End ; Var

I : integer ; Begin

I : = 1 ; Pro1 ( I ) ; I : = 2 ; Pro2 ( I ) ;

End. Output : Procedure PRO1 Procedure PRO2

5.6. Procedure Standar

5.6.1. Procedure Standar EXIT

Procedure standar EXIT digunakan untuk keluar dari suatu blok. Bila diletakkan pada

program bagian, prosedur standar exit akan menyebabkan proses di program bagian

berhenti dan proses kembali ke blok program yang memanggilnya. Bila berada di

program utama, menyebabkan proses program berhenti.

5.6.2. Procedur Standar Halt

Digunakan untuk menghentikan proses program baik di program bagian maupun

program utama.

5.6.3. Procedur Standar Move

Procedure standar MOVE digunakan untuk menyalinkan suatu blok sebanyak count byte

memori dari blok dimulai byte pertama source dan disalinkan ke byte pertama dest.

Bentuk umum procedure standar move adalah sebagai berikut:

Page 82: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 81

Move ( var source, dest; count : word )

Contoh program :

Var Sumber, Tujuan : string [5] ; Sejumlah : word ;

Begin Sumber : = ‘ABCDE’ ; Tujuan : = ‘FGHIJ’ ; Sejumlah : = 4 ; Move (Sumber, Tujuan, Sejumlah ) ; Writeln (Sumber : 7, Tujuan : 7 ) ;

End.

OUTPUT: ABCDE ABCIJ

5.6.4. Procedur Standar FillChar

Procedure standar FillChar digunakan untuk mengisi sejumlah byte nilai ke dalam suatu

variable, sbb :

FillChar (x ; count : word ; ch )

X adalah variable yang dapat bertipe apapun yang akan diisi dengan nilai tipe ordinal ch

sebanyak count byte.

Page 83: Official Site of LILIS SETYOWATI - Gunadarma University

82 Lilis Setyowati, ST., MMSI

6. FUNGSI PADA PASCAL

Blok fungsi hampir sama dengan blok prosedur, hanya saja fungsi harus dideklarasikan

dengan tipenya atau jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.

Pada bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan

sebagainya. Fungsi-fungsi tersebut biasanya dikenal dengan Built in Function.

Sedangkan function yang akan bicarakan disini adalah fungsi yang kita buat sendiri.

Berbeda dengan procedure, function merupakan modul program yang menghasilkan

suatu kuantitas. Hal ini dapat dilihat dari bentuk header-nya yang menyebutkan jenis

data dari kuantitas yang dihasilkan.Secara umum bentuk header suatu function adalah :

FUNCTION nama : jenis hasil; ATAU

FUNCTION nama (formal parameter : jenis ) : jenis_hasil;

Blok Fungsi diawali dengan kata cadangan Begin dan diakhiri dengan kata cadangan End

dan titik koma.

6.1. Perbedaan Fungsi Dengan Prosedur

1. Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya (kalau pada

prosedur pada parameter yang dikirimkan secara acuan). Pada contoh, nama fungsi

tersebut adalah Hitung dan nilai yang dikirim balik berada pada nama fungsi

tersebut. Sehingga nama fungsi ini harus digunakan untuk menampung hasil yang

akan dikirimkan dari fungsi, sebagai berikut :

Hitung := A + B; Nama fungsi yang berisi nilai yang akan dikirimkan

2. Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat

langsung digunakan untuk dicetak hasilnya, sebagai berikut :

Writeln(X, ‘+’ ,Y, ‘=‘ ,Hitung(X,Y));

Atau nilai fungsi tersebut dapat juga langsung dipindahkan ke pengenal variabel

yang lainnya, sebagai berikut :

Hasil := Hitung(X,Y);

Nama fungsi yang langsung digunakan untuk ditampilkan hasilnya

Page 84: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 83

Writeln(X, ‘+’ ,Y, ‘+’ ,Hasil); Sedang pada prosedur, nama prosedur tersebut tidak dapat digunakan langsung, yang

dapat langsung digunakan adalah parameternya yang mengandung nilai balik.

6.2. Fungsi Tanpa Parameter

Suatu Fungsi yang tanpa menggunakan parameter berarti nilai balik yang akan dihasilkan

merupakan nilai yang sudah pasti. Pada Fungsi yang tidak mempunyai parameter, maka

hasil tersebut tidak dapat diatur dari modul yang menggunakannya, karena tidak ada

parameter yang dikirimkan.

Contoh:

Contoh :

Program Contoh1; Type Huruf = String; Function Garis : Huruf; Begin Garis := ‘-----------‘; End; Begin Writeln(Garis); Writeln(‘Pascal’); Writeln(Garis); End.

Output: ----------- Pascal ----------- Atau dapat juga didefinisikan sebagai suatu konstanta dibagian definisi konstanta,

sebagai berikut :

Contoh :

Program Contoh2; Const Garis:=’---------‘; Begin Writeln(Garis); Writeln(‘Pascal’); Writeln(Garis); End.

Page 85: Official Site of LILIS SETYOWATI - Gunadarma University

84 Lilis Setyowati, ST., MMSI

Output: ----------- Pascal ----------- 6.3. Parameter Dalam Fungsi

Parameter dalam fungsi dapat dikirimkan secara Nilai (By Value) atau secara Acuan (By

Reference). Penulisan judul Fungsi yang menggunakan parameter dengan pengiriman

sevara Nilai adalah tampak sebagai berikut :

Function Hitung(A,B : Integer): Integer;

Contoh : Suatu Fungsi yang akan menghasilkan nilai terbesar dari 2 buah Nilai Real.

Function Terbesar(X,Y:Real):Real; Begin If X>Y then Terbesar :=X Else Terbesar :=Y; End; Var Nilai1,Nilai2 :Real; Begin Write(‘Nilai Pertama ?’);Readln(Nilai1); Write(‘Nilai Kedua ?’); Readln(Nilai2); Writeln(‘Nilai Terbesar adalah’ , Terbesar(Nilai1,Nilai2):9:3); End.

Sedang Penulisan judul Fungsi yang menggunakan parameter dengan pengiriman secara

Acuan adalah dengan menambahkan katan cadangan Var sebagai berikut :

Function Hitung(Var A,B : Integer):Integer;

Pengiriman parameter dengan secara Acuan akan mengakibatkan perubahan nilai

parameter di Fungsi juga merubah nilai parameter dimodul yang mengirimkannya.

Contoh :

Program Contoh3:

Function Hitung(Var A,B,C : Integer):Integer; Begin Hitung :=A+B; C :=A*B; End; Var X,Y,Z : Integer;

Page 86: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 85

Begin Write(‘Nilai X ?’); Readln(X); Write(‘Nilai Y?’); Readln(Y); Writeln; Writeln(X,’+’,Y, ‘=’,Hitung(X,Y,Z); Writeln(X,’*’,Y, ‘=’,Z); End. Output:

Nilai X ? 2 Nilai Y ? 3 2 + 3 = 5 2 * 3 = 6 6.4. Fungsi Pangkat

Pascal tidak menyediakan Fungsi untuk perpangkatan tinggi, yang ada hanyalah SQR,

yaitu untuk pemangkatan kuadrat. Bila akan melakukan perpangkatan lebih dari pangkat

2, maka harus dibuat program tersendiri.

Contoh :

Program Contoh4; Function PangkatI(X:Real; Y:Integer):Real; Var Pangkat :=1; For I := 1 to Y do Pangkat := Pangkat * X; PangkatI := Pangkat; End; Var A: Real; B : Integer; Begin Write(‘Nilai akan dipangkatkan ?’); Readln(A); Write(‘Dipangkatkan dengan ?’); Readln(B); Writeln(A:9:3, ‘Pangkat’ ,B, ‘adalah’,PangkatI(A,B):9:3); End. Output : Nilai akan dipangkatkan ? 1.5 Dipangkatkan dengan ? 3 1.500 pangkat 3 adalah 3.375

Page 87: Official Site of LILIS SETYOWATI - Gunadarma University

86 Lilis Setyowati, ST., MMSI

6.5. Fungsi Rekursif

Suatu fungsi atau prosedur dalam bahasa Pascal dapat bersifat rekursif. Artinya, fungsi

atau prosedur tersebut dapat memanggil dirinya sendiri. Berikut ini sebuah contoh

fungsi dan prosedur yang rekursif.

function faktorial (nilai : integer) : integer; begin if nilai <= 0 then faktorial := 1; else faktorial := nilai * faktorial (nilai-1) end; Var N : integer; Begin Write(‘Berapa faktorial ?’ ); Readln(N); Writeln(N, ‘faktorial = ‘,faktorial(N):9:0); End.

6.6. Fungsi Standar

Pada Bahasa pemrograman pascal terdapat beberapa fungsi standar yang dapat

digunakan, yaitu:

6.6.1. Fungsi Standar Aritmatika

a) Fungsi standar ABS : Digunakan untuk memutlakkan suatu nilai yang ditunjukkan

oleh argumen x.

Bentuk umum : ABS(x);

Contoh :

Begin X:=-2.3; Write(Nilai X = ,X, Nilai mutlaknya = ,Abs(X):3:1); End.

b) Fungsi standar EXP : Digunakan untuk menghitung nilai pangkat dari bilangan e

yaitu sebesar ex. Hasilnya berupa nilai real.

Bentuk Umum : EXP(x:):real;

c) Fungsi standar LN : Digunakan untuk menghitung nilai logaritma alam (natural

logarithm) dari nilai x. Hasilnya berupa nilai real.

Bentuk umum : LN(x):real;

Page 88: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 87

d) Fungsi standar INT : Digunakan untuk menghasilkan nilai integer dari x. hasil dari

fungsi adalah tipe real dengan nilai yang berupa pembulatan ke bawah (nilai

pecahan dibuang) dari nilai x.

Bentuk umum : INT(x:real):real;

Contoh :

Begin X:=9.99; Write(‘Nilai yang akan dibulatkan = ‘ ,X); Writeln(‘Nilai pembulatannya = ‘,Int(X):3:2); End. Hasil : Nilai yang akan dibulatkan = 9.99 Nilai pembulatannya = 9.00

e) Fungsi standar FRAC : Digunakan untuk mendapatkan nilai pecahan dari argumen x.

Argumen x dapat bernilai real maupun integer dan hasil dari fungsi adalah real.

Bentuk umum : FRAC(x:):real;

Contoh :

Begin X:=9.99; Write(‘Nilai X = ‘,X, ‘Nilai pecahannya = ‘,Frac(X):4:3); End. Hasilnya : Nilai X = 9.99 Nilai pecahannya = 0.990

f) Fungsi standar SQR : Digunakan untuk menghitung nilai pangkat kuadrat dari

argumen X. Argumen X dapat berbentuk tipe Real atau Integer dan hasil Fungsinya

akan sama dengan tipe argumennya.

Bentuk umum : SQR(x);

Contoh :

Program Misal5; Var X : Real; Begin Write(‘Nilai yang akan dikuadratkan ?’); Readln(X); Writeln(‘Nilai kuadratnya =’, SQR(X):9:2); End.

Page 89: Official Site of LILIS SETYOWATI - Gunadarma University

88 Lilis Setyowati, ST., MMSI

Output : Nilai yang akan dikuadratkan ? 5 Nilai kuadratnya = 25.00

g) Fungsi standar SQRT : Digunakan untuk menghitung nilai akar dari argumen X.

Argumen X dapat berbentuk tipe Real atau Integer dan hasil dari Fungsinya adalah

Real.

Bentuk umum : SQRT(x) : real;

Contoh :

Program Misal6; Var A,B,C : Real; Begin Write(‘Panjang Sisi Tegak ?’);Readln(A); Write(‘Panjang Sisi Datar ?’); Readln(B); C := SQRT(SQR(A) + SQR(B)); Writeln(‘Panjang Sisi Miring = ‘,C:9:2); End.

Output :

Panjang Sisi Tegak ? 30 Panjang Sisi Datar ?40 Panjang Sisi Miring = 50.00

6.6.2. Fungsi Standar Transfer

Digunakan untuk merubah suatu nilai ke bentuk nilai yang lain. Fungsi-fungsi standar

transfer yang tersedia, yaitu Fungsi Standar Chr, Ord, Round dan Trunc.

a) Fungsi Standar CHR : Digunakan untuk merubah nilai dari Byte X ke bentuk karakter

yang sesuai dengan kode ASCII nya.

Bentuk Umum : Chr(X:Byte):Char;

Contoh : Program Misal7; Var X : Byte; Begin Write(‘Nilai kode ASCII (0-255) ?; Readln(X); Writeln(‘Karakter kode ASCII ini adalah : ‘, Chr(X)); End.

Page 90: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 89

Output : Nilai kode ASCII (0-255) ? 66 Karakter kode ASCII ini adalah : B b) Fungsi Standar ORD : Digunakan untuk merubah nilai X ke bentuk nilai Longint yang

sesuai dengan kode ASCIInya.

Bentuk Umum : Ord(X):Longint;

Contoh :

Program Misal8; Var Karakter : Char; Begin ‘Write(‘Karakter ?’); Readln(Karakter); Writeln(Karakter,’adalah kode ASCII : ‘,Ord(Karakter)); End. Output :

Karakter ? B B adalah kode ASCII : 66 c) Fungsi Standar ROUND : Digunakan untuk membulatkan nilai dari Real X ke nilai

Longint yang terdekat. Bila nilai pecahan sama dengan taua lebih besar dari 0.5 akan

dibulatkan ke atas, sedang bila nilai pecahan lebih kecil dari 0.5 akan dibulatkan ke

bawah.

Bentuk Umum : Round(X:Real):Longint;

Contoh :

Program Misal9; Begin

Writeln(’10 dibagi 3 hasil pembulatan terdekat adalah ‘,Round(10/3)); Writeln(’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Round(20/3);

End.

Output :

10 dibagi 3 hasil pembulatan terdekat adalah 3 20 dibagi 3 hasil pembulatan terdekat adalah 6 d) Fungsi Standar TRUNC : Digunakan untuk membulatkan nilai Real X ke nilai Longint

terkecil atau dengan kata lain membulatkan ke bawah.

Bentuk Umum : Trunc(X:Real):Longint;

Page 91: Official Site of LILIS SETYOWATI - Gunadarma University

90 Lilis Setyowati, ST., MMSI

Contoh :

Program Misal10; Begin Writeln(’10 dibagi 3 hasil pembulatan ke bawah adalah ‘,Trunc(10/3)); Writeln(’20 dibagi 3 hasil pembulatan ke bawah adalah ‘,Trunc(20/3));

End. Output :

10 dibagi 3 hasil pembulatan ke bawah adalah 3 20 dibagi 3 hasil pembulatan ke bawah adalah 6

6.6.3. Fungsi Standar Lainnya

Fungsi standar yang tidak termasuk dalam kelompok pembagian di atas antara lain:

a) Fungsi standar Random : Digunakan untuk menghasilkan angka random berkisar

dari nilai lebih besar atau sama dengan nol dan lebih kecil dari satu. Bila range tidak

disebutkan, hasil dari fungsi ini adalah real, bila range disebutkan, hasilnya adalah

word.

Bentuk umum : Random [(range :word)];

b) Fungsi standar SizeOf : Digunakan untuk menunjukkan besarnya byte yang digunakan

oleh suatu variabel x, hasilnya berupa nilai word.

Bentuk umum : SizeOf(x):word;

Fungsi standar UPCASE : Digunakan untuk merubah argumen suatu karakter yang

ditunjukkan oleh Ch menjadi bentuk karakter huruf besar (upper case).

Bentuk umum : UpCase(Ch:char):char;

Page 92: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 91

7. ARRAY DAN RECORD PADA PASCAL

7.1. ARRAY

Larik / array adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen

yang mempunyai tipe yang sama. Daripada membuat 10 variabel yang terdiri dari

nama1, nama2, nama3, dst, akan lebih efisien jika variabel nama ini disimpan ke dalam

array.

Contoh pembuatan array:

program tipe_array; uses crt; var nilai1, nilai2, nilai3, nilai4: integer; begin clrscr; nilai1:= 23; nilai2:= 13; nilai3:= 98; nilai4:= 106; writeln('nilai1: ',nilai1); writeln('nilai2: ',nilai2); writeln('nilai3: ',nilai3); writeln('nilai4: ',nilai4); readln; end.

Untuk membuat tipe data array di pascal, kita harus menentukan seberapa banyak

element array yang ingin dibuat. Element adalah sebutan untuk ‘anggota’ / isi dari array.

Sebagai contoh, untuk membuat 10 element array bertipe integer dapat dilihat pada

kode berikut:

var nilai: array[0..9] of integer; Contoh di atas merupakan contoh array satu (1) dimensi. Array satu dimensi merupakan

array yang setiap elementnya hanya terdiri dari satu ‘lapis’. Setiap element array

dibahas dengan 1 index, seperti nilai[0], nilai[1] dan nilai[2].

7.1.1. Deklarasi Array

Array yang akan dipergunakan harus di deklarasikan terlebih dahulu. Deklarasi dari Array

diawali dengan kata cadangan Array diikuti oleh tipe index yang diletakkan diantara

Page 93: Official Site of LILIS SETYOWATI - Gunadarma University

92 Lilis Setyowati, ST., MMSI

tanda “[ ]” diikuti lagi oleh kata cadangan of dan tipe arraynya. Array dapat bertipe

sederhana byte, word, integer, real, boolean, char, string dan tipe scalar atau subrange.

7.1.1.1. Deklarasi Tipe Index Subrange Integer

Array yang akan dipergunakan harus di deklarasikan terlebih dahulu. Deklarasi dari Array

diawali dengan kata cadangan Array diikuti oleh tipe index yang diletakkan diantara

tanda “ [ ] ” diikuti lagi oleh kata cadangan of dan tipe arraynya.

Array dapat bertipe sederhana byte, word, integer, real, boolean, char, string dan tipe

scalar atau subrange.

Contoh:

Var X : array [ 1..100 ] of integer ;

Array X dideklarasikan sebagai array tipe integer dengan jumlah elemen maksimum 100

elemen, dimana nilai elemen array ini harus berisi nilai integer. Misalkan :

X [1] : = 18 ;

X [2] : = 5 ;

Bila nilai elemen ke-1 dari array X akan ditampilkan, dapat dipergunakan perintah :

Writeln ( x[1] ) ;

7.1.1.2. Deklarasi Tipe Index Subrange Integer

Deklarasi tipe index subrange integer adalah sebagai berikut :

Var NilaiHuruf : array [1..5] of char ;

Nilai [1..5] inilah yang dimaksud dengan index subrange integer. Index dari array diatas

dapat dideklarasikan terlebih dahulu di bagian deklarasi tipe :

Type Jangkauan = 1..5 ; {tipe subrange integer}

Var NilaiHuruf : array [Jangkauan] of char ;

Begin … end.

7.1.1.3. Deklarasi Tipe Index Subrange Byte

Kalau index dari array tidak sampai dengan 255, maka index dari array ini dapat

dideklarasikan dengan tipe byte.

Page 94: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 93

Var X : array [0..255] of real ;

Karen anilai 0 sampai 255 merupakan nilai subrange byte, maka deklarasi ini dapat

ditulis :

Var X : array [byte] of real ;

7.1.1.4. Deklarasi Tipe Index Subrange Word

Jika jangkauan index dari 0 sampai 65525, maka index dari array dapat dideklarasikan

dengan tipe word.

Var X : array [byte] of word ;

7.1.1.5. Deklarasi Tipe Index Subrange Boolean

Index array yang bertipe Boolean, hanya mempunyai maksimum 2 buah elemen saja.

Type Keterangan = string [11] ;

Var X : array [Boolean] of keterangan ;

7.1.1.6. Deklarasi Tipe Index Subrange Char

Tipe char adalah tipe subrange yang mempunyai nilai sebanyak 256 buah (0 – 255)

sesuai dengan urutan kode ASCII. Berikut pendeklarasian index subrange char.

Var X : array [char] of integer ;

7.1.1.7. Deklarasi Tipe Index Skalar

Index dari array dapat berupa tipe scalar atau enumerated. Berikut contoh pembuatan

array menggunakan tipe indeks scalar.

Contoh program:

Var Jumlah : array [(Jan, Peb, Mar)] of integer ;

Begin Jumlah[Jan] : = 125 ; Jumlah{Peb] : = 75 ; Jumlah[Mar] : = 18 ; Writeln ( ‘Jumlah untuk bulan maret = ‘, Jumlah{Mar});

End.

Page 95: Official Site of LILIS SETYOWATI - Gunadarma University

94 Lilis Setyowati, ST., MMSI

Output program : Jumlah untuk bulan Maret = 18 Contoh diatas dapat ditulis : Type Bulan = (Jan, Peb, Mar) ; Var Jumlah : array [Bulan] of integer ;

7.1.1.8. Deklarasi konstanta Array

Array tidak hanya dapat berupa suatu variable yang dideklarasikan di bagian deklarasi

variable, tetapi juga dapat berupa suatu konstanta yang dideklarasikan di bagian

deklarasi konstanta.

Contoh program : Const

X : array [1..5] of integer = (6, 25, 375, 5, 2) ; Var

I : word ; Begin

For I : = 1 to 5 do Writeln ( ‘Nilai konstanta array ke ‘, I, ‘=’,

X[I] ) ; End.

Output program : Nilai Konstanta array ke 1 = 6 Nilai Konstanta array ke 2 = 25 Nilai Konstanta array ke 3 = 375 Nilai Konstanta array ke 4 = 5 Nilai Konstanta array ke 5 = 2 7.1.2. String Sebagai Array Tipe Char

String dapat dianggap sebagai suatu array tipe char dengan index dari 0 sampai dengan

panjang dari string yang di definisikan. Contoh program :

Var I : word ; Nama : string [255] ;

Begin Write ( ‘Nama Anda ?’ ) ; readln ( Nama ) ; Writeln ; Writeln ( ‘Nama Anda kalau dibaca terbalik adalah : ‘ ); For I : = ord (Nama [0] ) down to 1 do Write (Nama [I] ) ;

End.

Page 96: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 95

Output program : Nama Anda ? Alesha Nama Anda kalau dibaca terbalik adalah : ahselA 7.1.3. Parameter Array

Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai atau secara

acuan ke prosedur atau ke fungsi. Prosedur yang menggunakan parameter berupa array

harus dideklarasikan di dalam judul prosedur yang menyebutkan parameternya bertipe

array.

Contoh program :

Type Array = array [1..50, 1..50] of real ;

Var I, J, K : byte ; Procedure inverse (Var X: Array ; N : byte ) ; ….

Begin …. …

end. 7.1.4. Array Dimensi Banyak

Array dapat juga berdimensi lebih dari satu yang disebut dengan array dimensi banyak,

yang dapat berdimensi dua, dimensi tiga dan seterusnya. Array dimensi 2 mewakili suatu

bentuk table atau matrik, yaitu index yang pertama dapat menunjukkan baris dan index

kedua dapat menunjukkan kolom dari table atau metric. Bentuk Umum penulisan array

dimensi banyak :

Nama_array = array [tipe index1] of array [tipe index2] of tipe array

Atau Nama_array = array [tipe index1, tipe index2] of tipe array

Contoh program :

Var Tabel : array [1..3, 1..2] of byte ; I, J : byte ;

Begin Tabel[1,1] : = 5 ; Tabel[1,2] : = 25 ; Tabel[2,1] : = 200 ; Tabel[2,2] : = 22 ;

Page 97: Official Site of LILIS SETYOWATI - Gunadarma University

96 Lilis Setyowati, ST., MMSI

Tabel[3,1] : = 75 ; Tabel[3,2] : = 50 ; For I : = 1 to 3 do

Begin For J : = 1 to 2 do Write ( table [I,J] : 10 ) ; Writeln ;

End ; End.

Output program : 5 25 200 22 75 50 7.1.5. Dynamic Array Pascal

Dynamic array adalah tipe array yang jumlah element-nya belum ditentukan (masih nol).

Contoh penulisan dynamic Array adalah sebagai berikut:

var nilai: array of integer; kata: array of string[20];

Pada contoh dynamic array jumlah element akan ditentukan menggunakan fungsi

setlength() di bagian kode program utama. Sebagai contoh, jika variabel ‘nilai’ memiliki

10 element, maka perintah ditulis dengan setlength(nilai, 10). Contoh program

dynamic array pada array dua dimensi:

program tipe_array; uses crt; var nilai: array of array of integer; begin clrscr; setlength(nilai,4,4); nilai[0,0]:= 34; nilai[2,3]:= 99; nilai[3,0]:= 15; writeln('nilai [0,0]: ',nilai[0,0]); writeln('nilai [2,3]: ',nilai[2,3]); writeln('nilai [3,0]: ',nilai[3,0]); readln; end.

Page 98: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 97

OUTPUT:

nilai [0, 0] : 34 nilai [2, 3] : 99 nilai [3, 0] : 15 7.2. RECORD

Tipe data Record adalah tipe data khusus. Tipe data record memiliki komponennya yang

terdiri dari berbagai jenis tipe data lain. Sebuah record berisi beberapa variabel lain yang

‘dipaketkan’. Konsep struktur data seperti ini sedikit mirip dengan konsep object dalam

bahasa pemrograman modern (walaupun di dalam pascal juga terdapat konsep tentang

object).

Record juga mirip dengan array, dimana sebuah variabel yang berisi berbagai element

dapat dibuat. Perbedaannya dengan array, record bisa menampung berbagai jenis tipe

data, tidak hanya 1 tipe data seperti array.

Untuk membuat record di dalam pascal, dapat dideklarasikan terlebih dahulu di bagian

type atau di bagian var. Jika digunakan di dalam bagian var, cara penulisannya adalah

sebagai berikut:

var nama_record: record variabel: tipe_data; variabel: tipe_data; variabel: tipe_data; end;

Pembuatan record diawali dengan nama_record. Nama_record adalah variabel yang

akan menampung seluruh isi record. Setelah itu, pembuatan ‘isi’ record berada di antara

perintah record dan end;. Di sinilah seluruh variabel yang menjadi ‘isi’ record di

definisikan. Berikut ini merupakan contoh perintah untuk membuat record ‘siswa’ yang

terdiri dari nama, umur, sekolah, dan kota:

var siswa: record nama: string[20]; umur: integer; sekolah: string[30]; kota: string[20]; end;

Untuk mengakses variabel di dalam record (atau disebut juga sebagai field), digunakan

karakter titik ( . ), seperti contoh berikut:

Page 99: Official Site of LILIS SETYOWATI - Gunadarma University

98 Lilis Setyowati, ST., MMSI

siswa.nama:= 'Alesha'; siswa.umur:= 17; siswa.sekolah:= 'SMA 104 Jakarta'; siswa.kota:= 'Jakarta';

Dalam kode di atas, beberapa data diisi ke dalam record ‘siswa’. Isi masing-masing data

harus bersesuaian dengan tipe data saat merancang record. Untuk nama, bisa diisi

dengan string[20], sedangkan untuk umur bisa diisi dengan angka bulat (integer). Kode

lengkap cara penggunaan struktur record di dalam pascal dapat dilihat di bawah ini:

program tipe_record; uses crt; var siswa: record nama: string[20]; umur: integer; sekolah: string[30]; kota: string[20]; end; begin clrscr; siswa.nama:= 'Alesha'; siswa.umur:= 17; siswa.sekolah:= 'SMA 104 Jakarta'; siswa.kota:= 'Jakarta'; writeln('Nama : ',siswa.nama); writeln('Umur : ',siswa.umur); writeln('Sekolah : ',siswa.sekolah); writeln('Kota : ',siswa.kota); readln; end.

OUTPUT:

Nama : Alesha Umur : 17 Sekolah: SMA 104 Jakarta Kota : Jakarta

Page 100: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 99

8. FILE DAN OPERASINYA PADA PASCAL

File adalah kumpulan byte-byte yang disimpan dalam media penyimpanan. Merupakan

komponen yang bertipe data sama, yang jumlahnya tidak tentu, yang dapat ditambah

atau dikurangi jika dibutuhkan.

Pointer fileadalah bagian yang menunjuk ke komponen file yang akan diakses (dibaca

atau direkam) untuk keperluan pengaksesan file (akan dibahas kemudian).

File pada Pascal dikenal dalam 3 jenis, yaitu :

File Text

File bertipe

File tidak bertipe

Selain membuat, menambahkan isi sebuah file, manipulasi File juga dapat dilakukan

pada pascal. Manipulasi yang dimaksud antara lain:

• Menggunakan parameterMengenai Atribut File • Menghapus file • Mengubah nama file • Mengenai tanggal dan waktu file • Mencari file • Mengecek keberadaan file • Memberikan directory file

8.1. File Teks

File teks pada Bahasa pascal memiliki beberapa karakteristik. Karakteristik file teks pada

pascal antara lain:

1. Karakteristik File Teks Berisi data karakter ASCII. 2. Tiap record pada file teks boleh memiliki panjang yang bervariasi. 3. Setiap record diakhiri dengan tanda EOL (end of Line). 4. File teks hanya dapat diakses secara sequensial (berurutan). 5. Isi filenya dapat dilihat oleh perintah dos type atau editor text

Bentuk Umum penulisan file teks pada pascal adalah sebagai berikut:

Var TipeFile : Text; Begin Assign(TipeFile,’Data.txt’);

8.1.1. Membuat File Text

Urutan proses dalam membuat file text pada pascal adalah sebagai berikut:

8.1.1.1. Mendeklarasikan Variabel File

Var NmVar:TEXT;

Page 101: Official Site of LILIS SETYOWATI - Gunadarma University

100 Lilis Setyowati, ST., MMSI

Keterangan : NmVar : Nama variabel file text 8.1.1.2. Menghubungkan variabel file dengan nama file

Assign (NmVar, nama file);

Keterangan : NmVar : Nama variabel file text nama file : Nama file dalam bentuk string, format 8:3 penamaan dos, ditulis dalam bentuk string. 8.1.1.3. Membuat file text aktif

Rewrite(NmVar);

Keterangan : NmVar : Nama variabel file text yang sudah di- assign 8.1.1.4. Menulis ke dalam file text

Write / writeln (NmVar, data item1, data item 2, …)

Keterangan: NmVar : Nama variabel file text Data item : text / string yang akan dituliskan, atau bisa juga berupa isi suatu variabel 8.1.1.5. Menutup file

Close (NmVar);

Keterangan: NmVar : Nama variabel file text Contoh program Membuat File Text:

Page 102: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 101

8.1.2. Membaca File Teks

Urutan proses dalam membaca file text pada pascal adalah sebagai berikut:

8.1.2.1. Mendeklarasikan variabel file

Mendeklarasikan variabel file dengan perintah sebagai berikut,

Var NmVar:TEXT;

8.1.2.2. Menghubungkan variabel file dengan nama file

Menghubungkan variabel file dengan nama fime menggunakan perintah sebagai berikut,

Assign (NmVar, nama file)

8.1.2.3. Membaca isi file dan menampilkannya di layar

Membaca isi file dan menampilkan isi file di layar dapat dilakukan menggunakan

perintah sebagai berikut

While not eof (NmVar) do Begin Read / readln ( NmVar, data item 1, data item 2, … ); Write / writeln ( data item1, data item 2, … ); End;

Page 103: Official Site of LILIS SETYOWATI - Gunadarma University

102 Lilis Setyowati, ST., MMSI

8.1.2.4. Menutup file

Menutup file text pada pascal dapat dilakukan mengguunakan perintah sebagai berikut,

Close (NmVar);

Contoh Program Membaca File Text

OUTPUT:

8.1.3. Menambah isi file teks

Urutan proses dalam menambah isi file text pada pascal adalah sebagai berikut:

8.1.3.1. Mendeklarasikan variabel file

Mendeklarasikan variabel file dengan perintah sebagai berikut,

Var NmVar:TEXT;

Page 104: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 103

8.1.3.2. Menghubungkan variabel file dengan nama file

Menghubungkan variabel file dengan nama file menggunakan perintah sebagai berikut,

Assign (NmVar, nama file)

8.1.3.3. Menambah isi file

Menambah isi file menggunakan perintah sebagai berikut,

Append(NmVar)

8.1.3.4. Menampilkannya di layar

Menambah file di layar menggunakan perintah sebagai berikut,

Write / writeln (NmVar, data item1, data item 2, …)

8.1.3.5. Menutup file

Menutup file text pada pascal dapat dilakukan menggunakan perintah sebagai berikut,

Close (NmVar);

Contoh program menambah isi file teks adalah sebagai berikut:

Page 105: Official Site of LILIS SETYOWATI - Gunadarma University

104 Lilis Setyowati, ST., MMSI

8.1.4. Metode Pembacaan file oleh Turbo Pascal

Metode pembacaan file pada turbo pascal adalah sebagai berikut:

a. Menggunakan statemen operasi READ / READLN

b. Bergantung pada tipe data variabel yang digunakannya, yaitu :

1. Variabel berjenis numerik (byte,integer, real)

Tanda batas akhir pembacaan variabel jika ditemui blank(spasi), EOL (end of

line), EOF (End of File) atau TAB.

Jika sebelum membaca data (atau dengan kata lain tidak ada datanya) pointer

pascal menemukan EOL / EOF, maka variabel tersebut akan diisi NOL.

Jika string yang dibaca oleh variabel numerik tidaksah, maka terjadi kesalahan

I/O : Invalid numerik format.

2. Variabel berjenis string

Karakter-karakter file aakan dibaca sampai ditemui EOL / EOF tercapai atau lebih besar

dari ukuran stringnya.

3. Variabel berjenis Char

Pada variabel berjenis char yang dibaca hanya satu karakter saja. Agar pembacaan file

sesuai dengan yang diharapkan, terkadang perlu kita deklarasikan secara jelas jumlah

byte yang disediakan untuk suatu variabel, atau mesti kita selipkan pencetakan spasi

diantara dua variabel yang akan dibaca. Perlu diperhatikan kesesuaian tipe data, antara

yang dituliskan dengan metode WRITE/WRITELN dan dengan yang akan kita baca.

8.2. File Bertipe

File bertipe pada Bahasa pascal memiliki beberapa karakteristik. Karakteristik file bertipe

pada pascal antara lain:

Page 106: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 105

1. Berisi data format biner, ukurannya lebih kecil dari file teks. 2. Tiap record memiliki tipe dan panjang yang sama. Bisa saja memiliki berbagai

tipe asalkan dikelompokkan dalam RECORD. 3. Dapat diakses secara random, elemen-elemennya bisa dibaca secara acak yang

keberapa saja.

Bentuk Umum penulisan file bertipe pada pascal adalah sebagai berikut:

Var

FileData : file of byte;

Begin

Assign(FileData,’Abc’);

Rewrite(fileData);

8.2.1. Membuat File Bertipe

Urutan proses dalam membuat file bertipe pada pascal adalah sebagai berikut:

8.2.1.1. Mendeklarasikan variabel file

Perintah pendeklarasian variabel file bertipe adalah:

Var NmVar:FILE OF TypeVariabel; Keterangan : NmVar : Nama variabel file bertipe TypeVariabel : Char, variabel tipe RECORD, variabeltipe array, real, variabel array tipe record. Untuk satu file satu tipe elemen. Contoh : Type DaftarBarang = Array [1..100] of integer;

DataKonsumen = RECORD Nama :string[15]; Alamat :string[30]; Kode :1..3; DaftarKonsumen = Array [1..100] of Datakonsumen ; Var FileBarang : File of Daftarbarang; FileJumlah : File of integer; FileData : File of DataKonsumen; FileKode : File of Char; 8.2.1.2. Menghubungkan variabel file dengan nama file

Perintah untuk menghubungkan variabel file dengan nama file dapat dilihat di bawah ini:

Assign (NmVar, nama file);

Page 107: Official Site of LILIS SETYOWATI - Gunadarma University

106 Lilis Setyowati, ST., MMSI

Keterangan : NmVar : Nama variabel file bertipe nama file : Nama file dalam bentuk string, format 8:3 penamaan dos, ditulis

dalam bentuk string.

8.2.1.3. Membuat/ membuka file bertipe

Perintah untuk membuat/ membuat file bertipe pada pascal adalah sebagai berikut:

Rewrite(NmVar); => perintah untuk membuat

Reset(NmVar); =>perintah untuk membuka

8.2.2. Menulis/ Membaca File Bertipe

Menulis/ membaca file bertipe pada pascal dapat dilakukan menggunakan perintah

sebagai berikut:

Write (NmVar, data item1, data item 2, …) =>perintah untuk menulis

Read (NmVar, data item1, data item 2, …) =>perintah untuk membaca

Keterangan:

Data item1, data item 2 dan seterusnya, harus berupa variabel, tidak bisa dituliskan

secara langsung dalam bentuk konstanta. Variabelnyaharus sama dengan deklarasi tipe

file-nya.

Fungsi Writeln dan Readln tidak dapat digunakan pada file bertipe.

8.2.3. Menutup File

Menutup file bertipe pada pascal dapat dilakukan menggunakan perintah sebagai

berikut,

Close (NmVar);

Contoh program file bertipe dapat dilihat di bawah ini:

Page 108: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 107

Page 109: Official Site of LILIS SETYOWATI - Gunadarma University

108 Lilis Setyowati, ST., MMSI

Contoh Program membaca file bertipe:

8.2.4. Fungsi-fungsi yang digunakan dalam file Bertipe

Di bawah ini ada beberapa fungsi yang digunakan pada file bertipe:

a. Menempatkan pointer ke posisi record ke-N

Seek (VarFile,N);

Contoh :

Seek(namafile,4); {pointer akan menunjuk posisi record ke-4, dengan nomor

record 3}

b. Menunjuk nomor record (nomor record dimulai dari record 0)

FilePOS (VarFile);

Page 110: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 109

Contoh :

Posisi:=Filepos(Varfile);

{mengetahui posisi pointer aktual di record mana, dan hasilnya diletakkan pada

variabel posisi}.

c. Mengukur besar file bertipe, yaitu mengetahui jumlah record yang berada

dalam suatu file (jika file baru dibuat = 0)

Filesize(VarFile);

Contoh :

.. Begin Write(‘input nomor record yang ingin dilihat’);readln(NoRec);dec(NoRec) If NoRec >=filesize(VarFile) then Writeln(‘Nomor record terlalu besar’); Else begin seek(VarFile,NoRec); {Pointer menuju nomor record yang dimaksud} Read(VarFile,data); End;

.. end.

d. Menunjuk akhir dari file.

EOF(VarFile);

e. Menghapus sebagian file

Truncate(VarFile);

Contoh : Seek(varfile,5); {pointer menuju record nomor 5} Truncate(VarFile); {menghapus mulai record nomor 5 sampai habis } 8.3. File Tak Bertipe

File tak bertipe pada Bahasa pascal memiliki beberapa karakteristik. Karakteristik file tak

bertipe pada pascal antara lain:

File yang mengakses langsung ke media penyimpanan tanpa adanya pengenalan

record dan sebagainya.

Page 111: Official Site of LILIS SETYOWATI - Gunadarma University

110 Lilis Setyowati, ST., MMSI

Digunakan untuk tugas-tugas yang berhubungan dengan file biner yang dapat

diproses tanpa mengenal jenis recordnya.

File tak bertipe (untyped file) adalah channel I/O (Input/output) level rendah

yang terutama digunakan untuk mengakses langsung suatu file di disk tidak

perduli bagaimana tipe dan strukturnya.

Membuat File Tak Bertipe

Urutan proses pembuatan file tak bertipe adalah sebagai berikut:

1. Mendeklarasikan variabel

Perintah untuk mendeklarasikan variabel pada file tak bertipe adalah:

Var NmVar:FILE;

2. Menghubungkan variabel file dengan nama file

Perintah untuk menghubungkan variabel file dengan nama file adalah:

Assign (NmVar, nama file);

Keterangan :

NmVar : Nama variabel file bertipe

nama file : Nama file dalam bentuk string, format 8:3 penamaan dos, ditulis dalam

bentuk string.

3. Membuka file bertipe

Perintah untuk membuka file tak bertipe adalah sebagai berikut:

Rewrite(NmVar[,brec]); => untuk membuat

Reset(NmVar[,brec]); => untuk membuka

Keterangan :

Brec : Menunjukkan besar file dalam byte, opsional,boleh ditulis, boleh tidak, dan

besarnya kita tentukan sendiri. Defaultnya 128 Byte.

4. Menulis/ membaca file tidak terbatas

Perintah untuk menulis/ membaca file tidak bertipe adalah sebagai berikut:

Blockwrite (NmVar, Buffer, jumlah[,jumtulis]) => untuk menulis

Keterangan :

Buffer : daerah penyimpanan data yang akan ditulis ke dalam file. Buffer dapat

berupa suatu variabel dengan tipe apa saja sesuai dengan ukuran data yang

akan ditulis di file.

Page 112: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 111

Jumlah : jumlah data yang akan ditulis ke file dalam ukuran byte.

Jumtulis : suatu parameter yang tidak tetap yang boleh digunakan dan boleh juga

tidak digunakan, bila digunakan akan berisi jumlah byte yang dapat ditulis ke file.

Read (NmVar, data item1, data item 2, …) => untuk membaca

Keterangan :

Buffer : daerah penyimpanan yang tipe variabelnya disesuaikan dengan jumlah data

yang dibaca.

Jumlah : jumlah byte yang akan dibaca dari file, dapat merupakan suatu variabel

dengan tipe word. Jumlah harus sama dengan besar buffer yang diberikan

dan tidak boleh lebih dari 64 Kilobyte.

Jumbaca : merupakan variabel yang berisi laporan jumlah byte yang dapat dibaca

dari file.

Contoh File tidak bertipe :

Program menyalin_file Uses crt; Var

Fileasal, filetuju :file; Besar :real; Buf :array [1..10240] of char; Hbaca, Hatulis :word; nfile1,nfile2 :string;

Begin besar:=0; clrscr; write (‘Input nama file asal :’);readln(nfile1); write (‘Input nama file tujuan :’);readln(nfile2); {$I-} Assign(fileasal,nfile1); Assign(filetuju,nfile2); Reset(fileasal,1); If IOResult <>0 then

Begin Writeln(‘File asal tidak ada !’); Halt(0);

End; Rewrite(filetuju,1); If IOResult <>0 then

Begin Writeln(‘File tujuan tidak bisa dibuat !’); Halt(0); End; {$I+}

Repeat Blockread(fileasal,buf,10240,hbaca); Besar:=besar + hbaca;

Blockwrite(filetuju,buf,hbaca,htulis);

Page 113: Official Site of LILIS SETYOWATI - Gunadarma University

112 Lilis Setyowati, ST., MMSI

If hbaca <> htulis then Begin

Writeln(‘Tujuan tidak bisa menampung besar file’); Halt(0);

End; Until hbaca <>10240; Close (fileasal); Close (filetuju); Writeln (‘Besar file yang dipindahkan :‘,besar:10:0);

End.

8.4. Menangani Kesalahan I/O pada File

Beberapa operasi pada file yang dapat mengalami kesalahan I/O : Reset, rewrite, read,

readln, write, writeln, close, append, seek Agar program tidak berhenti, maka harus

digunakan Compiler Directive Fungsi I/O result Untuk pengecekan I/O file tersebut.

Bentuk umum :

{$ Kode Kondisi}

Keterangan :

• Kode : Karakter kode, untuk fungsi I/O result adalah I. • Kondisi : OFF (-) / ON (+) • Secara default {$I+} => ON • I/O Result => bernilai 0 jika operasi berhasil • Isi nilai selalu dihapus sendiri setiap kali dipanggil • Penulisannya mengapit operasi-operasi yang rentan kesalahan

Contoh: … Assign(VarFile, ‘data.dat’); {$I-} Reset(VarFile); {$I+} fileada := IOResult = 0; if fileada then begin

writeln(‘file sudah ada…’); …

end else { Kondisi bila file tidak ada }

begin rewrite(VarFile); { Buat file baru } … write (VarFile, var1, var2, …); … close(VarFile);

end; …

Page 114: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 113

8.5. Manipulasi File

Manipulasi pada file dapat dilakukan dengan beberapa cara, antara lain:

8.5.1. Parameter

Parameter disebut juga command tail, merupakan informasi tambahan bagi program

utama yang dapat diketikkan sesuai keperluan, untukmenjalankan rutin khusus dalam

program tersebut.

Contoh : program scan.exe

Biasanya dituliskan pada prompt : C:\scan a: /clean

String ‘a:’ dan string ‘/clean’ merupakan parameter, yang akan membuat scan program

ke drive a dan kemudian menjalankan prosedur CLEAN.

Ada dua perintah untuk membuat parameter :

1. ParamCount: untuk mengetahui jumlah parameter yang diberikan

Bentuk Umumnya : Var_word := ParamCount;

2. ParamString: untuk mengambil parameter tersebut dalam bentuk string

Bentuk Umumnya : Var_string := ParamString(index);

8.5.2. Atribut File

Atribut file adalah satu byte data yang berisi keterangan dari suatu file. Karena bit–nya

merupakan kode biner, maka dibuat lambang untuk mewakili bit-bit tersebut, sebagai

berikut :

Lambang Angka

ReadOnly 1

Hidden 2

SysFile 4

VolumeId 8

Directory 16

Archive 32

Ada 2 perintah yang berhubungan dengan atribut file, yaitu :

Page 115: Official Site of LILIS SETYOWATI - Gunadarma University

114 Lilis Setyowati, ST., MMSI

1. GetFAttr (Get File Atribut): Mengambil informasi atribut file.

Bentuk umumnya : GetFAttr(nm_var,attr);

2. SetFAttr (Set File Atribut): Mengeset atribut file.

Bentuk umumnya : GetFAttr(nm_var,attr);

Keterangan :

Nm_var : nama suatu file yang telah di-assign dengan tipe apa saja. Attr : Bilangan atribut yang akan diambil/diketahui dari suatu file. Catatan : a. File yang akan dilihat atau diset atributnya mesti di-assign terlebih dahulu. b. Kedua perintah ini berada pada unit DOS dan WINDOWSTurbo Pascal, maka perlu

menggunakan ‘Uses DOS’ atau ‘Uses Windows;’ pada deklarasi unit. 8.5.3. Menghapus File

Untuk menghapus suatu file, file tersebut harus di-assign terlebih dahulu. Bentuk umum

perintahnya :

Erase(nm_var); Contoh :

Program hapus; Uses crt;

Var f:file; Begin

Clrscr; Assign(f,paramstr(1)); Write( ‘File ‘,paramstr(1)); {$I-} erase(f); {$I+} if IOResult <> 0 then writeln(‘Gagal mengapus’); else writeln(‘Menghapus sukses …’);

end.

8.5.4. Mengubah nama file

Untuk mengubah nama file, file tersebut harus di-assign terlebih dahulu. Bentuk umum

perintahnya adalah :

Rename(nm_var,nm_baru); Contoh :

Program Ubah_nama; Uses crt;

Var f:file;

Page 116: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 115

Begin Clrscr; Assign(f,paramstr(1)); Write( ‘File ‘,paramstr(1)); {$I-} rename(f,ParamStr(2)); {$I+} if IOResult <> 0 then writeln(‘Gagal mengubah nama’); else writeln(‘Mengubah nama menjadi ’, ParamStr(2));

end.

8.5.5. Tanggal dan waktu File

Guna memanipulasi tanggal dan waktu file, Turbo Pascal menyediakan variabel khusus

bernama DateTime dengan tipe data record dengan field-field sebagai berikut :

Type datetime = record; Year, month,day,hour,min,sec:word; End;

Setelah dideklarasikan, menset informasi date dan time baru dapat diambil dengan

menggunakan perintah :

• GetFTime: mengambil informasi tanggal dan jam file. Bentuk Umum :

GetFTime(nm_var,waktu);

• SetFTime: mengeset informasi tanggal dan jam file. BentukUmum :

SetFTime(nm_var,waktu);

Keterangan : Nm_var : variabel file yang telah di-assign. Waktu : waktu yang akan diambil (dalam bentuk LongInt). Keterangan :

1. Pada saat GetFTime, variabel waktu masih merupakantipe data sistem(LongInt),

maka perlu diubah terlebih dahulu sebelum ditampilkan, yaitu dengan perintah :

UnpackTime(waktu,var_datetime);

Waktu : dideklarasikan dalam bentuk longint Var_datetime : variabel dari record datetime. 2. Sebelum melakukan SetFTime, variabel waktu masih merupakan variabel dari record

datetime, maka perlu dikembalikan ke tipe data sistem(LongInt), yaitu dengan

perintah :

Page 117: Official Site of LILIS SETYOWATI - Gunadarma University

116 Lilis Setyowati, ST., MMSI

(var_datetime, waktu);

Var_datetime : variabel dari record datetime. Waktu : dideklarasikan dalam bentuk tipe data sistem (longint). 3. Harus menggunakan deklarasi unit ‘Uses DOS;’ atau ‘Uses WinDOS;’

8.5.6. Mencari File

Mencari file pada pascal dapat dilakukan dengan meggunakan perintah :

Findfirst(path,attr,var_searchrec); FindNext(var_searcRec);

Keterangan :

Path : file yang akan dicari, dapat diisi dengan wildcard seperti ‘*’ dan ‘?’. Pada unit DOS menggunakan tipe string. Harus deklarasi unit ‘Uses Dos;’.

Attr : atribut file yang dicari Var_searchrec : variabel dengan tipe searchrec sebagai berikut ini :

Type Searchrec = record

Fill : array [1..2] of char; Attr : byte; Time : longint; Size : longint; Name : string;

End;

Contoh program:

Program cari; Uses crt,dos; Var dirinfo :searchrec;

Begin Clrscr; Findfirst(paramstr(1),archive,dirinfo); Writeln (‘File-file yang dicari adalah :’); While doserror=0 do Begin

Write(dirinfo.name:15, ‘ ‘); Writeln(dirinfo.size:10); Findnext(dirinfo);

End; End.

Page 118: Official Site of LILIS SETYOWATI - Gunadarma University

Lilis Setyowati, ST., MMSI 117

8.5.7. Mengecek Keberadaan File

Mengecek keberadaan file pada pascal dapat dilakukan menggunakan perintah :

1. Fsearch: untuk deklarasi unit DOS

Bentuk penulisan : Var_pathstr := Fsearch(path,dirlist)

Keterangan:

Path : file yang akan dicari

Dirlist : letak dimana akan dicari yang didefinisikan di path tersebutuntuk deklarasi unit

Windows

2. FileSearch: untuk deklarasi unit Windows

Bentuk penulisan: FileSearch(var_string1, var_string2, var_string3)

Keterangan :

Var_string1 : variabel tempat menaruh hasil proses. Var_string2 : variabel tempat menaruh file yang dicari. Var_string3 : variabel tempat melakukan pencarian file. 8.5.8. Memberikan directory File

Pemberian directory file dapat dilakukan dengan dua perintah:

1. FExpand

Bentuk umum perintah FExpand : Var_pathstr1 := FExpand(Var_pathstr2);

Keterangan :

Var_pathstr1 : hasil dari proses dengan penulisan file secara panjang Var_pathstr2 : nama file yang akan diperpanjang penulisannya Fungsi ini tidak mengecek keberadaan file yang dimanipulasinya. Bila file tidak ada, maka

tetap akan menghasilkan path yang sedang aktif.

2. FileExpand

Bentuk umum perintah FileExpand : FileExpand(hasil,file_asal);

Keterangan :

Hasil : merupakan hasil proses. File_asal : nama file yang akan diperpanjang penulisannya.

Page 119: Official Site of LILIS SETYOWATI - Gunadarma University

118 Lilis Setyowati, ST., MMSI

DAFTAR PUSTAKA

Anonim. 1990. Algoritma & Pemrograman II, Jakarta: Gunadarma

Ediman Lukito. 1993. Belajar Sendiri Pemrograman dengan Turbo Pascal 7.0. Jakarta:

Elex Media Komputindo

https://www.duniailkom.com/

http://www.stackoverflow.com/questions/5693186/pascal-read-readln-function-

impurities

http://www.stackoverflow.com/questions/8997678/pascal-read-function-strange-

behavio