• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
119
0
0

Teks penuh

(1)

MODUL

ALGORITMA &

PEMROGRAMAN 2

(PASCAL)

Lilis Setyowati, ST., MMSI

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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)

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

(9)

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).

(10)

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

(11)

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).

(12)

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

(13)

 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.

(14)

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 + - * / ; := , ‘ = < > <= >= <> : { } ( ) [ ]

(15)

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;

(16)

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)

(17)

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

(18)

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.

(19)

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

(20)

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

(21)

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

(22)

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.

(23)

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’;

(24)

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

(25)

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.

(26)

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).

(27)

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 (:=).

(28)

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

(29)

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

(30)

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

(31)

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.

(32)

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;

(33)

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.

(34)

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).

(35)

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:');

(36)

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);

(37)

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

(38)

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

(39)

* 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 :

(40)

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.

(41)

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:

(42)

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;

(43)

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

(44)

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

(45)

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

(46)

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:

(47)

*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);

Gambar

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 ;

Referensi

Dokumen terkait

Bayi Paus Beluga berwarna gelap seperti lautan Arktik yang biru kelam, sehingga aman dari pemangsa. Saat dewasa warnanya putih sebagai alat penyamaran di tempat tinggalnya

Berdasarkan hasil penelitian, dapat disimpulkan bahwa aplikasi mobile learning Fisika dengan menggunakan adobe flash pada materi pelajaran perpindahan kalor khususnya

Kriteria usaha menengah adalah usaha ekonomi produktif yang berdiri sendiri, yang dijalankan oleh orang perseorangan atau badan usaha yang bukan merupakan anak perusahaan atau cabang

perusahaan yang terdaftar di Bursa Efek Indonesia. Tujuan penelitian ini adalah: 1) untuk mengetahui dan menganalisis pengaruh pengumuman right issue terhadap abnormal return

Untuk menganalisis pengaruh penyuluhan dengan metode ceramah tentang bahaya narkoba terhadap pengetahuan dan sikap siswa SMA Raksana Medan Tahun 2014.. Bagi Dinas Kesehatan Kota

Rapat Koordinasi Protokol adalah rapat yang diselenggarakan oleh Biro Protokol dan Persidangan, Sekretariat Wakil Presiden bersama-sama dengan Direktorat Jenderal Protokol

Jumlah tercatat aset tetap dihentikan pengakuannya ( derecognized ) pada saat dilepaskan atau tidak ada manfaat ekonomis masa depan yang diharapkan dari penggunaan

Buy on Weakness : Harga berpotensi menguat namun diperkirakan akan terkoreksi untuk sementara Trading Buy : Harga diperkirakan bergerak fluktuatif dengan