MODUL
ALGORITMA &
PEMROGRAMAN 2
(PASCAL)
Lilis Setyowati, ST., MMSI
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
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
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
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
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.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
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
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).
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
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).
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
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.
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 + - * / ; := , ‘ = < > <= >= <> : { } ( ) [ ]
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;
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)
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
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.
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
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
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
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.
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’;
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
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.
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).
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 (:=).
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
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
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
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.
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;
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.
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).
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:');
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);
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
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
* 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 :
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.
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:
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;
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
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
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
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:
*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);