pascal 4-aturan-penulisan-pascal

51
PASCAL Dosen: Heriyanto,A.Md, S.Kom 1 BAB I PENGENALAN STRUKTUR DAN ATURAN PENULISAN PASCAL 1. Pengenalan Struktur Pascal Program struktur Pascal secara umum yaitu terbagi menjadi dua : - Program Inti (yang akan menjalankan/dipanggil pertama kali dalam running) Pada dasarnya diawali dengan perintah “Begin” dan diakhiri dengan perintah “End.” (end titik). Untuk Program Inti yaitu : Var …..{Menyebutkan jenis nama Variabel} Begin Statement Statement …….{Diletakkan perintah-perintah} Statement Statement End. - Perintah Untuk program non Inti atau sub dalam inti yaitu : Dengan struktur sebagai berikut : Selalu diawali dengan “Begin” dan diakhiri dengan”end;” (end titik koma). Untuk program non inti/Sub yaitu : Var …..{Menyebutkan jenis nama Variabel} Begin Statement Statement …….. {Diletakkan perintah-perintah} Statement Statement End; Untuk Jenis Variabel harus dideklarasikan terlebih dahulu. Contoh 1.1 program dalam struktur Pascal Begin End.

Upload: adealfarisi

Post on 05-Aug-2015

440 views

Category:

Design


3 download

TRANSCRIPT

Page 1: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

1

BAB I

PENGENALAN

STRUKTUR DAN ATURAN PENULISAN PASCAL

1. Pengenalan Struktur Pascal

Program struktur Pascal secara umum yaitu terbagi menjadi dua :

- Program Inti (yang akan menjalankan/dipanggil pertama kali dalam running)

Pada dasarnya diawali dengan perintah “Begin” dan diakhiri dengan perintah “End.”

(end titik).

Untuk Program Inti yaitu :

Var …..{Menyebutkan jenis nama Variabel} Begin Statement Statement …….{Diletakkan perintah-perintah} Statement Statement End. - Perintah Untuk program non Inti atau sub dalam inti yaitu :

Dengan struktur sebagai berikut :

Selalu diawali dengan “Begin” dan diakhiri dengan”end;” (end titik koma).

Untuk program non inti/Sub yaitu :

Var …..{Menyebutkan jenis nama Variabel} Begin Statement Statement …….. {Diletakkan perintah-perintah} Statement Statement End;

Untuk Jenis Variabel harus dideklarasikan terlebih dahulu.

Contoh 1.1 program dalam struktur Pascal

Begin

End.

Page 2: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

2

Kalau program dijalankan maka akan berhasil dan tidak menghasilkan apa-apa namun tidak

terdapat kesalahan karena sudah memenuhi aturan struktur Pascal.

Gabungan Antara Inti program dan sub program :

Contoh 2.1 program dalam struktur Pascal

Begin Begin 2.program non inti 1. program inti (main) End; (Sub) End. Contoh 3.1 program dalam struktur Pascal

Begin Statement… Begin Statement… End; Begin Statement… End; End. Contoh 3.2 program dalam struktur Pascal

Begin Statement… Begin Statement… Begin Statement… End; Statement… End; Statement… End.

Page 3: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

3

Program Struktur Pascal Secara Unit/Kesatuan

Uses ……..{pemanggilan unit file lain} Untuk reserved word Uses Crt,Dos; Type …..{berbagai jenis indentifier} Identifier = boolean; Identifier = Banyak tipe; Banyak tipe Seperti : array, file, object, ordinal, pointer, real, record, set, string} Const …. {Untuk deklarasi konstanta} Identifier =expresion; Standar fungsi di gunakan dalam constanta expression seperti : Abs, Hi, Lo, Ptr, SizeOf, Swap, Chr, Length, Odd, Pred, Round, Succ, Trunc Minimum Interger = 0 Maximum Integer = 9999 Var …. {untuk nama variabel } Identifier := String; 1 sampai 255 Identifier :=Shortint; -128..127 format 8 bit Identifier :=Integer; -32768..32767 format 16 bit Identifier :=Longint; -2147483648..2147483647 format 32 bit Identifier :=Byte; 0..255 format 8 bit Identifier :=Word; 0..65535 format 16 bit

Identifier := Boolean; True/False

Begin Clrscr; Statement Statement …. Statement Statement End.

Syarat Struktur Pascal yaitu :

1. Program harus diawali oleh “Begin” dan diakhiri “End.” (End titik)

2. Untuk Program yang bukan inti atau yang akan dipanggil diawali oleh “Begin” dan

diakhiri “End;” (End titik koma}

3. Variabel harus dideklarasikan terlebih dahulu.

Page 4: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

4

2. Aturan Penulisan Pascal

1. Penulisan bahasa pemrograman Pascal huruf kecil dan besar tidak terpengaruh pada

nilai maupun variabel. Contoh

Nama akan sama dengan NAMA

2. Setiap akhir perintah harus diakhiri dengan tanda ; (titik koma) kecuali untuk perintah

else begin (tidak digunakan titik koma antara else dan begin)

Tanda ; (titik koma) tidak ditulis apabila : dalam sub terdapat sub lagi dan tidak

melakukan aktivitas blok lagi dibawahnya.

3. Selalu memesan terlebih dahulu variabel yang akan digunakan.

4. Untuk penulisan Variabel dapat dengan huruf atau angka namun tidak diawali oleh

angka. Contoh :

Nama1 : String; {betul}

1Nama : String; {salah tidak diizinkan/error}

Nama1MHS: String; {betul}

5. Pemisahan nama variabel harus menggunakan tanda hubung _ {strip bawah}

Contoh :

Nama1_Mahasiswa : String; {betul}

Nama1 Mahasiswa : String {Salah tidak diizinkan/error}

Nama1Mahasiswa : String; {Betul}

6. Tanda kurung buka “{“ dan kurung tutup “}” merupakan keterangan atau komentar.

7. Tidak diizinkan menggunakan nama variabel yang sudah ada/ duplikasi variabel.

Nama Variabel tidak boleh sama dengan yang sudah ada.

Contoh :

Nama : String; Duplikasi nama maka Error

Nama : Integer; (Salah)

8. Tidak diizinkan menggunakan nama variabel pada Reserved Word.

Contoh :

Var Begin : Integer; {Salah karena Reserved Word}

Page 5: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

5

Contoh-Contoh Penggunaan Struktur Pascal

1. Contoh Uses Uses Crt, Dos; Begin Clrscr; End.

2. Contoh Type a. Contoh type array

Type Nomor = array[1..100] of Integer; Abjad = array['A'..'Z'] of Byte; Bilanganreal = array[0..9, 0..9] of real; Begin End.

b. Contoh type File type Perorangan = record NamaAsli: string[15]; NamaPanggil : string[25]; Alamat : string[35]; end; PeroranganFile = file of Perorangan; NumberFile = file of Integer; SwapFile = file; Begin End. c. Contoh Type pointer type BytePointer = ^Byte; WordPointer = ^Word; IdentitasPointer = ^IdentitasRec; IdentitasRec = record Identitas: string[15]; RefCount: Word; Next: IdentitasPointer; end; begin end.

Page 6: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

6

d. Contoh Type Record type Kelas = (Angka, Tanggal, Huruf); Tanggal = record T, M, Y: Integer; end; Facts = record Nama: string[10]; case Kind: Kelas of Angka: (N: real); Tanggal: (T: Date); Huruf: (H: string); end; begin end. e. Contoh Type set type Day = (Sun, Mon, Tue, Wed, Thu, Fri, Sat); CharSet = set of Char; Digits = set of 0..9; Days = set of Day; Begin End.

f. Contoh Type String type Name = string[25]; Line = string[LineLen]; Begin End.

3. Contoh Constanta (Const)

a. Const Declaration Const MaxData = 1024 * 64 - 16; AngkaChar = Ord('Z') - Ord('A') + 1; Pesan = 'Hello world...'; b. Const Abs var r: Real;

Page 7: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

7

i: Integer; begin r := Abs(-2.3); { 2.3 } i := Abs(-157); { 157 } end. c. Contoh Const Hi

var B: Byte; begin B := Hi($1234); { $12 } end.

d. Contoh Const Lo var B: Byte; begin B := Lo($1234); { $34 } end.

e. Contoh Const Ord type Colors = (RED,BLUE,GREEN); begin Writeln('BLUE has an ordinal value of ', Ord(BLUE)); Writeln('The ASCII code for "c" is ', Ord('c'), ' decimal'); end. f. Contoh Const Ptr Var P: ^Byte; begin P := Ptr($40, $49); Writeln('Current video mode is ', P^); end. g. Contoh Const Swap var X: Word; begin X := Swap($1234); { $3412 } end. h. Contoh Const Chr var I: Integer; begin for I := 32 to 126 do Write(Chr(I)); end.

Page 8: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

8

4. Contoh penggunaan Variabel Var Nama : String[20]; Umur : Integer[20]; lama :longint; Begin End.

Contoh Latihan Program Sederhana Struktur Pascal True/False

1. Latihan 1 : Begin end; Run error 94 : “ . ” Expected (false)

2. Latihan 2 : Begin End. Run success (true) 3. Latihan 3 : Begin Begin End; End; Run Error 94 : “ . ” Expected (false) 4. Latihan 4 : Begin Begin End; Begin End. Run Error 85 : “ ; ” expected (false)

5. Latihan 5 : Begin End. Begin Tidak dikerjakan End; Run Success (True) 6. Latihan 6 :

Page 9: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

9

Begin Begin End; Begin End. End. Run Error 85 : “ ; “expected (false) 7. Latihan 7 : Begin Begin Diijinkan tidak memakai ; End End. Run Succes (True) 8. Latihan 8 : Begin Begin End. End. Run Error 85 : “ ; ” expected (false) 9. Latihan 9 : Begin End. Begin Tidak dikerjakan End. Run Success (True)

10. Latihan 10 : Begin Begin End Begin End Begin End End. Run Error 85 : “ ; “ expected (false) 11. Latihan 11 : Begin Begin End;

Page 10: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

10

Begin End; Begin diijinkan End End. Run Success (true) 12. Latihan 12 : Begin Begin Tidak diijinkan End Begin End; Begin End; End. Run Error 85 : “ ; “ expected (false) 13. Latihan 13 : Begin Begin End; Begin Tidak diijinkan End Begin Tidak diijinkan End End. Run Error 85 : “ ; “ expected (false) 14. Latihan 14 : Begin Begin End; Begin Tidak diijinkan End Begin End; End. Run Error 85 : “ ; “ expected (false)

Page 11: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

11

15. Latihan 15 : ? Begin Begin Begin End; End; End; End. Run Error 94 : “ . “ expected (false) 16. Latihan 16 : Begin End; Begin End. Run Error 94 : “ . “ expected (false) 17. Latihan 17 : Begin Begin End. End; Run Error 85 : “ ; “ expected (false) 18. Latihan 18 : Begin Begin Begin Sub1 sub 2 sub 3 diijinkan semua tanpa (; ) End karena : dalam satu sub dan tidak End melakukan blok dibawahnya End. Run Success (true) 19. Latihan 19 : Begin Begin Begin Begin Sub terbesar 1 End tidak memenuhi (;) End End Begin Sub terbesar 2 End;

Page 12: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

12

End. Run Error 85 : “ ; “ expected (false)

20. Latihan 20 : Begin Begin Begin Begin Sub terbesar 1 End memenuhi (; ) End End; Begin Sub terbesar 2 End; End. Run Success (true) 21. Latihan 21 : Begin Begin Begin Begin Sub terbesar 1 End tidak memenuhi ( ; ) End;

End Begin End;

End. Run Error 85 : “ ; “ expected (false)

Page 13: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

13

TABEL BOOLEAN :

True : T (B:BENAR) False : F (S:SALAH)

OR/“V” HASIL S/F S/F S/F S/F B/T B/T B/T S/F B/T B/T B/T B/T

AND/” ^ ” HASIL

S/F S/F S/F S/F B/T S/F B/T S/F S/F B/T B/T B/T

OPERASI MATEMATIKA :

+ : Addition (penjumlahan) - : Subtraction (pengurangan) * : Multiplication (perkalian) / : Division (pembagian)

div : Integer division (hasil bagi bulat/utuh) mod : Remainder (sisa hasil bagi)

Page 14: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

14

BAB II

PERINTAH-PERINTAH DASAR PASCAL

1. PERINTAH CETAK, INPUT, KOMENTAR DAN NAMA PROGRAM

• Perintah CETAK

Perintah cetak dimaksudkan untuk menampilkan huruf atau charakter tertentu di

layar dengan apa adanya. Perintah cetak akan tampil di layar monitor text atau huruf

sesuai dengan yang dimaksud. Perintah tersebut di cetak ke layar diapit dengan dua tanda

petik :

PERINTAH CETAK DI LAYAR :

Write(‘……. text …..’); {text tercetak di layar, cursor pada akhir baris/text }

Writeln(‘ ….text……’); {text tercetak di layar, cursor pada baris/text berikutnya}

Contoh 2.1 : Write(‘Program PASCAL’); Writeln(‘Saya suka Program PASCAL’); {tampil pada baris berikutnya}

Writeln(‘--------PASCAL--------‘); {tampil pada baris berikutnya}

• Perintah boleh ada boleh tidak : KOMENTAR dan NAMA PROGRAM

Perintah komentar digunakan untuk komentar pada program atau perintah agar

kita dapat mengetahui atau sebagai pengingat dan merupakan salah satu dokumentasi

program/ keterangan program. Perintah dimulai dengan kurung buka “{“ dan diakhiri

dengan kurung tutup “}”. Perintah komentar tidak mempengaruhi jalannya program dan

program tidak akan membaca/mendetaksi sehingga sebagai asesoris saja. Perintah

komentar dapat dipakai dan juga tidak tergantung pemrogram.

Perintah Nama program juga dapat disertakan atau tidak disertakan tidak

mempengaruhi program harus dituliskan pada awal program/ diletakkan paling atas

sebelum perintah uses.

Page 15: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

15

• Perintah INPUT

Perintah input merupakan perintah masukan yang diberikan untuk berbagai jenis

data seperti integer, string, longint, real. Perintah input terlebih dahulu harus

memasukkan nama variabel/ memesan nama variabel.

PERINTAH INPUT :

Readln(Variabel); {variabel dapat berupa : string, integer, longint, real, char;}

{Variabel tersebut harus di deklarasikan dalam Var.}

Contoh 2.2 : Var Nama1 : String;

Nomor1 : integer; begin

Readln(Nama1); Readln(Nomor1);

End. Run IPTTI 1

• Keluaran CETAK terhadap INPUT

Selain kita ingin mencetak text dan kita menginputkan masukan maka kita dapat

pula untuk menampilkan cetakan dari input dengan gabungan dari cetak dan input

tersebut. Perintah tersebut sama seperti perintah cetak “write” namun diakhiri dengan

koma dan nama variabel yang telah dideklarasikan.

PERINTAH KELUARAN CETAK :

Write(‘…..text.…’,Variabel); {Variabel nama yang sudah dideklarasikan.} Write(‘…..text.…’,Variabel:x:y);{Variabel nama x: depan desimal, y: belakang desimal. (Variabel:1:2) digunakan untuk variabel real}

Contoh 2.3 : Var Nama1 : string; Nomor1 : integer; Nomor2 : real; Begin Write(‘Nama : ‘); Readln(Nama1); Write(‘Nomor1 : ‘); Readln(Nomor1); Write(‘Nomor2 : ‘);Readln(Nomor2); Writeln(‘Nama Anda : ‘,Nama1); Writeln(‘Nomor1 Anda : ‘,Nomor1);

Page 16: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

16

Writeln(‘Nomor2 Anda : ‘,Nomor2:2:1); Readln; {tunggu sampai ditekan enter} End. Run Nama : IPTTI Nomor1 : 1 Nomor2 : 1 Nama Anda : IPTTI Nomor1 Anda : 1 Nomor2 : 1.0

• Perintah GOTOXY

Perintah gotoxy digunakan untuk meletakkan posisi teks yang akan dicetak sesuai

dengan keinginan pada posisi tertentu.

PERINTAH CETAK DI LAYAR :

Gotoxy(X,Y); Write(‘……. text …..’); {x : posisi kolom dan y: posisi baris} {x,y bilangan integer}

Contoh 2 4 :

Gotoxy(10,5);Write(‘Program PASCAL’); Gotoxy(10,6);Writeln(‘Saya suka Program PASCAL’); Gotoxy(10,7);Writeln(‘--------PASCAL--------‘);

2. PERINTAH KONDISI Perintah kondisi dalam pemrograman digunakan untuk menseleksi pada kondisi

tertentu apakan nilai tersebut memenuhi syarat atau tidak. Perintah Kondisi menggunakan

perintah If …syarat memenuhi/tidak…..then....kerjakan

PERINTAH KONDISI/ PERSYARATAN :

If Kondisi1 Then Begin End; Kondisi dapat berupa : If variabelAngka=nilai then {Nama variabel Angka = nilai angka }

Begin ….Statement

End; If variabelHuruf=’A‘ then {Nama variabel huruf = ‘nilai huruf‘ ATAU nilai} Begin ….Statement end; If variabelboolean:=true then {Nama variabel boolean := true/false}

Page 17: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

17

Begin ….Statement End Else …..Statement

Contoh 2.5 : Uses Crt,Dos; {memanggil semua perintah dos dan control} Var Nomor1 : integer; Begin Clrscr; {menggunakan uses crt untuk menghapus layar} Writeln(‘Contoh program Kondisi’); Write(‘Masukkan Nomor1 : ‘);Readln(Nomor1); If Nomor1=1 Then Begin

Writeln(‘Anda Memasukkan Nomor 1’); End; If Nomor2=2 Then Begin

Writeln(‘Anda Memasukkan Nomor 2’); End; If Nomor3=3 Then Begin

Writeln(‘Anda Memasukkan Nomor 3’); End Else

Writeln(‘Tidak Termasuk kategori !’); End. Run Contoh program Kondisi Masukkan Nomor1 : 4 Tidak Termasuk kategori Dalam satu baris perintah kondisi terkadang lebih dari satu syarat misalkan : If ((Kondisi1) or (Kondisi2) or (Kondisi4)) Then {dipisahkan dengan tanda “(“ “)”} Begin End;

Contoh 2.6 : Uses Crt,Dos; {memanggil semua perintah dos dan control} Var Nomor1 : integer; Begin Clrscr; {menggunakan uses crt untuk menghapus layar} Writeln(‘Contoh program Kondisi 2’);

Page 18: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

18

Write(‘Masukkan Nomor : ‘);Readln(Nomor1); If ((Nomor1=1) or (Nomor1=2) or (Nomor1=3)) Then

Begin Writeln(‘Anda Memasukkan Nomor 1/2/3’); End {tidak perlu memakai ; karena ada else} Else Writeln(‘Tidak Termasuk kategori !’);

End. Run Contoh program Kondisi 2 Masukkan Nomor : 1 Anda Memasukkan Nomor 1/2/3

3. PERINTAH PERULANGAN TERKENDALI

Perintah perulangan terkendali merupakan perintah yang dilakukan secara berulang-

ulang dengan terbatas/ terkendali dengan nilai tertentu saja. Perulangan tersebut diulang

dengan sampai batas tertentu yang kita inginkan. Setelah memenuhi sejumlah yang kita

tentukan maka akan keluar dari perulangan atau selesai.

PERULANGAN TERKENDALI : FOR variabel := 1 to n Do {variabel berupa nama variabel berupa integer}

Contoh 2.7 : Uses crt,dos; {memanggil semua perintah dos dan control} Const N=5; {constanta variabel n global} Var Nama : String[12]; {membatasi panjang string yang diijinkan hanya 12 huruf} I : integer; Begin Clrscr; {menghapus semua tulisan di layar menggunakan uses crt} Write(‘Masukkan Nama : ‘); Readln(Nama); For I := 1 to n do Begin Writeln(‘Nama Anda : ‘,I,’=’,Nama); End; Readln; End. Run Masukkan Nama : ABCDE Nama Anda : 1 = ABCDE

Nama Anda : 2 = ABCDE Nama Anda : 3 = ABCDE Nama Anda : 4 = ABCDE Nama Anda : 5 = ABCDE

Page 19: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

19

Contoh 2.8 : Uses crt,dos; {memanggil semua perintah dos dan control} Var Nama : String[12]; {membatasi panjang string yang diijinkan hanya 12 huruf} I,N : integer; Begin Clrscr; {untuk menghapus tulisan semua di layar menggunakan uses crt} N:=5; {variabel lokal} Write(‘Masukkan Nama : ‘); Readln(Nama); For I := 1 to n do Begin Writeln(‘Nama Anda : ‘,I,’=’,Nama); End; End. Run Masukkan Nama : ABCDE Nama Anda : 1 = ABCDE

Nama Anda : 2 = ABCDE Nama Anda : 3 = ABCDE Nama Anda : 4 = ABCDE Nama Anda : 5 = ABCDE

4. PERINTAH PERULANGAN TAK TERKENDALI

Perintah Perulangan tak terkendali terdiri dari dua yaitu :

PERULANGAN TAK TERKENDALI SELAMA BERNILAI FALSE;

Repeat …jika tidak sesuai kondisi/false maka ulangi…..Until… true

Contoh 2.9 : Uses Crt,dos; Var Nama : String; Begin Repeat Write(‘Nama : ‘);Readln(Nama); Until Nama = ‘IPTTI’; Writeln(‘Perulangan Betul Keluar !’); Run Nama : LEMBAGA Nama : INSTITUSI Nama : IPTTI Perulangan Betul Keluar ! PERULANGAN TAK TERKENDALI SELAMA BERNILAI TRUE;

while… jika sesuai kondisi /true..Do….ulangi terus…

Page 20: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

20

Contoh 2.0.1 : Uses Crt,dos; Var Nama : String; Begin Write(‘Masukkan Nama : ‘);readln(nama); While nama=’IPTTI do Write(‘AKAN DIULANG KARENA SAMA DENGAN IPTTI); Readln; End. Run Masukkan Nama : LPK Selesai Masukkan Nama : IPTTI AKAN DIULANG KARENA SAMA DENGAN IPTTI AKAN DIULANG KARENA SAMA DENGAN IPTTI AKAN DIULANG KARENA SAMA DENGAN IPTTI …..dan seterusnya… tidak ….berhenti…henti…… Contoh 2.0.2 : Uses Crt,dos; Var Nama : String; Begin Write(‘Masukkan Nama : ‘);readln(nama); While nama<>’IPTTI do Write(‘AKAN DIULANG KARENA TIDAK SAMA DENGAN IPTTI); Readln; End. Masukkan Nama : IPTTI Selesai Masukkan Nama : LPK AKAN DIULANG KARENA TIDAK SAMA DENGAN IPTTI AKAN DIULANG KARENA TIDAK SAMA DENGAN IPTTI AKAN DIULANG KARENA TIDAK SAMA DENGAN IPTTI …..dan seterusnya… tidak ….berhenti…henti……

Page 21: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

21

BAB III

ARRAY

1. Definisi ARRAY

Array adalah suatu tipe data terstruktur, yang berisi lebih dari satu data dan

merupakan kumpulan data-data yang sejenis.

Var Variabel : array[1..max] of TipeData ; {TipeData dapat berupa string, integer, real} contoh : Var Nama : array[1..100] of string; Usia : array[1..100] of integer; Upah : array[1..100] of real;

Dengan melihat deklarasi variabel array maka dapat dibayangkan bahwa dalam data

akan dapat menampung/ disusun sebagai berikut :

Nama[1] Usia[1] Upah[1] Nama[2] Usia[2] Upah[2] Nama[…] Usia[…] Upah[…] Nama[100] Usia[100] Upah[100] Mengapa harus memakai Array ?

Karena dalam proses data perulangan yang diinputkan berulang-ulang jika akan

dimunculkan/ ditampilkan kembali maka data yang terakhir sajalah yang akan muncul.

Jika menggunakan Array maka data yang diinputkan berulang-ulang akan disimpan

dalam array sehingga jika dimunculkan kembali akan tampil data dari 1 sampai ke sekian.

Misalkan kalau kita memprogram dengan perulangan:

Kasus 3.1 tidak menggunakan ARRAY : Uses crt,dos; Var Nama : string; I,N:integer; Begin N:= 3 For I := 1 to n do begin

Write(‘Masukkan Nama :‘); Readln(nama);

Page 22: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

22

End; For I := 1 to n do

begin Writeln(‘Nama :‘,nama);

End; End. Run Masukkan Nama : IPTTI Masukkan Nama : Yogyakarta Masukkan Nama : School Nama : School Nama : School Nama : School

Sehingga untuk input IPTTI, Yogyakarta akan tidak tampil dan yang tampil hanya

School semua sehingga seolah-olah data nama 1, data nama 2, dihapus dalam memori.

Untuk mengatasinya maka kita menggunakan program ARRAY.

Penyelesaian Kasus 3.1 maka menggunakan ARRAY : Uses crt,dos; Var Nama : array[1..100] of string; I,N:integer; Begin N:= 3 For I := 1 to n do

begin Write(‘Masukkan Nama :‘); Readln(nama[I]);

End; For I := 1 to n do

begin Writeln(‘Nama :‘,nama[I]);

End; Readln;

End. Run Masukkan Nama : IPTTI Masukkan Nama : Yogyakarta Masukkan Nama : School Nama : IPTTI Nama : Yogyakarta Nama : School

Contoh 3.2 : Program hari; Var Hari : array[1..7] of string[10];

Page 23: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

23

K: integer; Begin Hari[1] := ’SENIN’; Hari[2] := ’SELASA’; Hari[7] := ‘ MINGGU’; Hari[3] := ‘RABU’; Hari[4] := ‘KAMIS’; Hari[5] := ‘JUM’AT’; Hari[6] := ‘SABTU’; Repeat Write(‘Hari ke berapa ? ‘); Readln(K); If ( K>0) and (K<8) then Writeln(‘Hari : ‘,Hari[K]); Until K=0; End. Run Hari ke berapa ? 1 <enter> Hari : SENIN Contoh berikut akan membaca nama mahasiswa dan nilai dalam suatu array. Nilai >55 lulus. Dan program ditampilkan semua berupa nama mahasiswa dan nilai serta kelulusan. Contoh 3.3 : Program nilai; Const max=100; Var Nama : array[1..max] of string[20]; Nilai : array[1..max] of real; Hasil : array[1..max] of string[10]; N,j : integer; Begin Write(‘Jumlah Siswa : ‘); Readln(N); Writeln(‘Memasukkan Data’); For J := 1 to N do Begin Write(‘Nama Siswa : ’); Readln(Nama[J]); Write(‘Nilai Angka : ‘); Readln(Nilai[J]); If Nilai[J]>55 Then Hasil[J] := ‘LULUS’ Else Hasil[J] := ‘GAGAL’; End; Writeln(‘Hasil Daftar Nilai‘) ; Writeln(‘--------------------------------------------------‘); Writeln(‘ Nama Nilai Hasil ‘); Writeln(‘--------------------------------------------------‘); For J := 1 to N do Begin Writeln(Nama[J]:15,Nilai[J]:10:2 ,Hasil[J]:15); Writeln(‘--------------------------------------------------‘); End; End. Run Jumlah Siswa : 2 <enter>

Page 24: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

24

Memasukkan Data Nama Siswa : Herdiansyah Nilai Angka : 80 <enter> Nama Siswa : Arman Nilai Angka : 44 <enter> Hasil Daftar Nilai ------------------------------------------------------ Nama Nilai Hasil ------------------------------------------------------ Herdiansyah 80 LULUS Arman 44 GAGAL

2. Manipulasi Array

Pengertian manipulasi array adalah seluruh aplikasi pengolahan data yang disimpan

dalam struktur variabel array dapat didayagunakan.

2.1 Searching (pelacakan data)

2.2 Sorting (pengurutan data)

Berikut pembahasannya :

2.1 Searching

Pencarian/pelacakan data berupa input dari keyboard atau tidak yang tersimpan

dalam larik array sebanyak n kali, dapat mengcounter(menjumlah ) mengetahui

cacahnya. Dapat juga misalnya untuk mencari nilai terendah atau tertinggi ada berapa

jumlah mahasiswa tersebut.

Contoh 3.4 program searching array bilangan habis dibagi 3 ada berapa buah

Program pelacakan; Var x : array[1..100] of integer; N,I,c : integer; Begin Write(‘Ada berapa data : ‘); readln(N); For I := 1 to N Do begin Write(‘Data : ‘);Readln(X[I]); end; C := 0; For I := 1 to N Do IF (X[I] mod 3) = 0 then inc( c ); Write(‘Data yang habis dibagi 3 ada : ‘,C,’ Buah’); End. Run Ada berapa data : 5 <Enter> DATA : 10 <enter> DATA : 6 <enter> DATA : 11 <enter>

Page 25: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

25

DATA : 12 <enter> DATA : 10 <enter> Data yang habis dibagi 3 ada 2 buah Contoh 3.5 program searching array kamus

Program searching_Kamus; Const n = 5; Var x, y : array[1..5] of string[20]; Kata : string[20]; P,I : integer; Begin X[1] := ‘GOST’; Y[1] := ‘HANTU’; X[2] := ‘LOVE’; Y[2] := ‘CINTA’; X[3] := ‘WIND’; Y[3] := ‘ANGIN’; X[4] := ‘LOST’; Y[4] := ‘KEHILANGAN’; X[5] := ‘STOP’; Y[5] := ‘BERHENTI’; Writeln(‘KAMUS INGGRIS – INDONESIA’); Repeat Write(‘Kata Inggris : ‘); readln(Kata); P:=0; For I := 1 to N do If Kata = X[I] then P:=I; If P<>0 then Writeln(‘Indonesia ‘,Y[P]) Else writeln(‘Tidak ada dalam Kamus’); Until Kata=’HENTI’; End.

run KAMUS INGGRIS – INDONESIA Kata Inggris : LOVE Indonesia CINTA

2.2 Sorting (mengurutkan data)

Mengurutkan data merupakan topik penting dalam array. Bayangkan kalau kita ingin

melihat data kalau tanpa diurutkan maka akan betapa susahnya kita menemukan dan

melihat data tersebut.

Ada 2 jenis metode sortir yang sederhana yaitu :

1. Metode gelembung (Buble Sort)

2. Metode pilih langsung (Straight selection)

Metoede Buble Sort

Misalkan dimiliki data numerik dalam larik X sebanyak N elemen yang belum urut dan

akan diurutkan ascending (naik). Maka langkahnya adalah :

Page 26: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

26

Miasal N=5 terdiri dari data :

10 21 45 7 5

X[1 ] X[2] X[3] X[4] X[5]

Untuk I=1 maka nilai J adalah : 2,3,4,5 Jika X[1] > X[2] maka tukarkan X[1] dengan X[2] Jika X[1] > X[3] maka tukarkan X[1] dengan X[3] Jika X[1] > X[4] maka tukarkan X[1] dengan X[4] Jika X[1] > X[5] maka tukarkan X[1] dengan X[5] Untuk I=2 maka nilai J adalah : 3,4,5 Jika X[1] > X[3] maka tukarkan X[1] dengan X[3] Jika X[1] > X[4] maka tukarkan X[1] dengan X[4] Jika X[1] > X[5] maka tukarkan X[1] dengan X[5] Untuk I=3 maka nilai J adalah : 4,5 Jika X[1] > X[4] maka tukarkan X[1] dengan X[4] Jika X[1] > X[5] maka tukarkan X[1] dengan X[5] Untuk I=4 maka nilai J adalah : 5 Jika X[1] > X[5] maka tukarkan X[1] dengan X[5]

5 7 10 21 45

X[1 ] X[2] X[3] X[4] X[5]

Setelah itu menukarkan X[I] dengan X[J]

Tukar := X[I]; X[I] := X[J]; X[J] := Tukar; Berikut program lengkap: Contoh 3.6 sortir dengan buble sort Program BubleSortir; Const N=6; Var X : array[1..n] of integer; I,J : integer; Begin X[1]:= 10; X[2] := 21; X[3] := 45; X[4] := 7; X[5] := 5; Writeln(‘Data sebelum disortir’); For I := 1 to N do write(X[I]); For I := 1 to N-1 do For J := I+1 to N do If X[I] > X[J] then Begin

Tukar := X[I]; X[I] := X[J];

Page 27: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

27

X[J] := Tukar; End; Writeln; Writeln(‘Data setelah disortir’); For I := 1 to N do Write(X[I]); End. Run Data sebelum disortir 10 21 45 7 5 Data setelah disortir 5 7 10 21 45

2.3 Sortir Metode Straight Selection (Pilih Langsung)

Pada metode ini algoritma sortirnya adalah sebagai berikut : misalkan dimiliki larik

X[I] dengan I : 1 sampai N

Untuk I := 1 sampai (N-1)

Untuk J := 1 sampai N – I tentukan

Jika X[J] > X[J+1] maka tukarkan X[J] dengan X[j+1]

Berikut program Straight selection

Contoh 3.7 Straight selection sort

Program selection_sort; Const n=5; Var X : array[1.. n] of string[10]; I,j,p : Integer; Tukar : string[10]; Begin Writeln(‘Ketik Nama-Nama’); For I := 1 to N do

begin Write(‘Nama : ‘); Readln(X[I]); End; For I := 1 to N-1 do For J := 1 to N-I do If X[J] > X[J+1] then Begin Tukar := X[J]; X[J] := X[J+1]; X[J+1] := Tukar; End; Writeln;

Writeln(‘Data setelah di sortir’); For I := 1 to N do writeln(X[I]);

Page 28: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

28

End. Run Ketik Nama-Nama Nama : Budi Nama : Beno Nama : Andi Nama : Dedi Nama : Cahyo Data setelah di sortir Andi Beno Budi Cahyo Dedi

Contoh 3.8 program sortir model lainnya

Program Sort; Const N=5; Var X : array[1..n] of string[10]; I,j : integer; Begin Writeln(‘Ketik Nama-Nama’); For I := 1 to N do Begin Write(‘Nama : ‘); Readln(X[I]); End; For I := 1 to N-1 do For J := I + 1 to N do If X[I] > X[J] then Begin Tukar := X[I]; X[I] := X[J]; X[J] := Tukar; End; Writeln; For I := 1 to N do Begin Writeln(‘Data setelah disortir : ’,X[I]); End;

End.

Page 29: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

29

BAB IV

PROCEDURE DAN FUNCTION

1. Procedure

Procedure adalah suatu kumpulan instruksi yang dibuat oleh pemrogram sebagai

pengikat dalam suatu block program tersendiri-sendiri/ sekelompok program. Tujuan dibuat

procedure untuk memudahkan dalam pengeblokan program-program atau pecahan-pecahan

program seperti program non inti. Dengan kata lain procedure kepanjangan dari program non

inti yang dapat memberikan nilai bila dipanggil. Prosedure tersebut terdiri dari dua kelompok

yaitu :

- Procedure Tanpa parameter

- Procedure dengan parameter

Procedure tanpa parameter

Procedure yang dibuat agar dapat dipanggil oleh program inti dan tidak membawa

nilai variabel tertentu.

PROCEDURE TANPA PARAMETER

Procedure NamaProcedure; {Nama procedure bebas dapat huruf/angka} Var Begin …Statement… End;

Contoh 4.1

Procedure Garis; Begin Writeln(‘=====================’) pembuatan procedure Garis. End; Begin Garis; Procedure dipanggil Writeln(‘HELLO IPTTI’); Garis; Procedure dipanggil End. Run ===================== HELLO IPTTI

Page 30: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

30

===================== Dengan menggunakan procedure kita dapat memanggil cukup dengan GARIS maka program

di dalam procedure akan melaksanakan sesuai dengan blok perintah.

Berikut contoh untuk menghitung luas persegi panjang dengan procedure non parameter.

Contoh 4.2 Program persegi panjang.

Program Hitung_Segi_Panjang; Uses Crt; Var Panjang, Lebar, Luas : Real; Procedure masukData; Begin Write(‘PANJANG = ‘); Readln(panjang); Write(‘LEBAR = ‘); Readln(Lebar); End; Procedure HitungLuas; Begin Luas := Panjang * Lebar; End; Procedure CetakLuas; Begin Writeln(‘Luasnya = ‘,Luas:8:2); End; Begin MasukData; HitungLuas; CetakLuas; End. Run PANJANG = 5 <enter> LEBAR = 3 <enter> Luasnya = 15.00 Procedure dengan Parameter

Procedure dengan parameter sebenarnya juga merupakan procedure yang nanti akan

dipanggil tetapi membawa parameter atau suatu variabel tertentu “YANG HARUS

DILAKUKAN” terhadap procedure. Itulah parameter !!!

PROCEDURE DENGAN PARAMETER

Procedure Garis(N : integer); Var PARAMETER I : integer; Begin Variabel Lokal For I := 1 to N do Write(‘=’); Writeln;

Page 31: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

31

End;

Procedure itu dapat dipanggil dengan memberikan nilai variabel yang dibawa dan

nilai variabel itu mengerjakan dan melakukannya. Misalkan :

Garis(5); hasilnya =====

Garis(15); hasilnya ===============

Garis(5 + 5) hasilnya ==========

Contoh 4.3

Procedure Garis(n : integer; c : char); Var I : integer; Begin For I := 1 to n do Write ( c ); Writeln; End; Begin Writeln(‘Contoh Program Memakai Parameter’); Garis(5,’=’);

Garis(3,’X’); End. Run Contoh Program Memakai Parameter ===== XXX

Contoh 4.3 Uses Crt,Dos; Procedure BacaData(Var P1, P2 : real); Begin Write(‘PANJANG = ‘); Readln(P1); Write(‘LEBAR = ‘); Readln(P2); End; Procedure HitungLuas(Var q1 : real; q2,q3 : real); Begin q1 := q2 * q3; end; Procedure CetakLuas(P:real); Begin Writeln(‘LUASNYA = ‘,p:8:2); End; Var panjang, Lebar, Luas : real; Begin BacaData(Panjang, Lebar); HitungLuas(Luas, Panjang, Lebar);

Page 32: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

32

CetakLuas(Luas); End. Run PANJANG = 5 <enter> LEBAR = 3 <enter> LUASNYA = 15.00

2. FUNCTION

Function adalah fungsi yang didefinisikan sendiri oleh programmer seperti halnya

procedure tetapi fungsi lebih berfungsi untuk melakukan tugas khusus dari parameter dan

non parameter untuk RETURN VALUE / Nilai kembali, yang diproses ke dalam

NamaFungsi sebagai nilai balik terhadap fungsi tersebut.

RETURN VALUE merupakan data yang dapat berjenis integer, real, char, string,

namun tidak dapat bertipe array atau record.

- Function Tanpa Parameter

- Function dengan Parameter

FUNCTION TANPA PARAMETER

Function NamaFungsi : TipeReturnValue;

Var {variabel lokal}

Begin NamaFungsi := ReturnValue;

End;

Contoh 4.4

Function Dadu : integer; Begin Randomize; Dadu := 1 + random(6); End;

Begin Writeln(Dadu, ‘ ‘,Dadu,‘ ‘,Dadu); End. Run 4 4 4

FUNCTION DENGAN PARAMETER

Page 33: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

33

Function parameter tersebut akan membawa nilai balik /RETURN VALUE dari yang

dikerjakan.

Parameter function dapat berupa tipe : integer, char, real, string, boolean, array atau

record.

Hasil function dapat berupa : integer, char, real, string dan boolean.

Function NamaFungsi(Parameter/variabel) : Tipe untuk ReturnValue;

Var {variabel lokal}

Begin NamaFungsi := ReturnValue;

End; Contoh 4.5

var kata : string; function hurufbesarkecil(S: string): string; var I: Integer; begin for I := 1 to Length(S) do if (S[I] >= 'a') and (S[I] <= 'z') then Dec(S[I], 32); hurufbesarkecil := S; end;

begin Write('Ketikan Kata Huruf kecil : ');Readln(Kata); If hurufbesarkecil(kata)='IPTTI' Then begin Write('Dapat diterima :',Kata); end else Write('Bukan); readln; end. Run Ketikan Kata Huruf kecil : iptti Dapat diterima Ketikan Kata Huruf kecil : IPTTI Bukan

Page 34: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

34

Contoh 4.6 22),( YXyxJarak +=

Program JarakTitik; Function jarak(X,Y : real) : real; Begin

Jarak := Sqrt(X*X + Y*Y); End; Var jx, jy, Jrk : real; Begin Write(‘Jarak X = ‘); Readln(Jx); Write(‘Jarak Y = ‘); Readln(Jy);

Jrk := Jarak(Jx, Jy); Writeln(‘Jarak adalah = ‘,Jrk:5:2); End. Run Jarak X = 2 Jarak Y = 4 Jarak adalah = 4.47

Contoh 4.6

Function Balik (x : string) : string; Var I, n : integer; St : string; Begin St:=’ ‘; n := length(x); For I := 1 to n do st := x[I] + st; Balik := st; End; Begin Writeln(Balik(‘IPTTI’)); End.

Run ITTPI

Page 35: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

35

BAB V

RECORD DAN FILE

1. RECORD

Record merupakan kumpulan data yang tidak sejenis atau variasi. Penggunakan

record berkaitan dengan deklarasi suatu type.

Type NamaTipeData = TipeDataPascal;

Dideklarasikan dengan

Var NamaVariabel : NamaTipeData;

Contoh :

Type Bulat = integer; Pecahan = real; type menggunakan sama dengan Logika = boolean; Var Umur, JumlahAnak : bulat; Gaji, Tunjangan : pecahan; Status : logika; var menggunakan titi dua.

Tanda yang harus diperhatikan untuk deklarasi tipe adalah tanda sama dengan untuk

namavariabel/tipe data dan jenis tipe.

Untuk tipe data di atas akan lebih praktis jika dituliskan langsung tanpa memakai deklarasi

tipe yaitu :

Var Umur, JumlahAnak : integer; Gaji, Tunjangan : pecahan; Status : boolean;

Pembuatan deklarasi tipe nampak akan memperpanjang program namun untuk jenis array

dan RECORD pemakaian tipe sangat dianjurkan dan menguntungkan.

Misalkan :

Var Umur : array[1..n] of integer; Nama : array[1..n] of string; JumAnak : array[1..n] of integer; Dapat ditulis dengan type seperti :

Page 36: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

36

Type Larik1 = array[1..n] of integer; Larik2 = array[1..n] of string[20]; Var Umur, JumAnak : Larik1; Nama : Larik2; Namun untuk tipe data RECORD maka deklarasi data merupakan keharusan, karena variabel

bertipe record tidak dapat diberi tipe data record secara langsung.

Type NamaTypeRecord = RECORD Namaitem1 : TipeitemData1 Namaitem2 : TipeitemData2 …. End; Var NamaVariabelRecord : NamaTypeRecord; Contoh Type RecBarang = Record Kodebarang : string[5]; NamaBarang : String[20]; Harga : Real; End; Var Barang : RecBarang; Contoh 5.1 Program pendataan_buku_dengan_record; Uses Crt; Const Max=100; Type Rbuku = Record Kode : String[7]; Judul : String[7]; Ekse : Integer; Harga : Real; End; Var Buku : Rbuku; Dafbuku : array[1..max] of Rbuku; J, Ccbk : integer; Jum, Rat : real; Pilih : char; Begin Repeat Clrscr; Writeln(‘Menu Pilihan : ‘); Writeln(‘[1]. Masukkan data Buku’); Writeln(‘[2]. Lihat Daftar Buku’); Writeln(‘[3]. Tambah Data Buku’); Writeln(‘[4]. Selesai’);

Page 37: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

37

Write(‘Pilihan Proses : ); readln(Pilih); Case Pilih Of ‘1’ : begin Clrscr; Write(‘Berapa Buku ? : ‘); Readln(CcBk); For J := 1 to Ccbk do Begin Writeln(‘Data ke – ‘,j); Write(‘Kode Buku : ‘); Readln(Buku.Kode); Write(‘Judul Buku : ‘); Readln(Buku.Judul); Write(‘Eksemplar : ‘); Readln(Buku.Ekse); Write(‘Harga Buku : ‘); Readln(Buku.Harga); Dafbuku[J]:= Buku; End; End; ‘2’ : begin Clrscr; Writeln(‘Daftar BUKU’); Writeln(‘========================================’); Writeln(‘No. Kode Judul eks. Harga’); Writeln(‘========================================’); For J := 1 to CcBk do With dafbuku[J] do Begin Writeln(j:3, Kode:6, judul:15, Ekse:8, Harga:9:2); End; Readln; ‘3’ : begin Clrscr; Writeln(‘TAMBAH DATA’); J := CcBk; Repeat Inc(J); Writeln(‘Data Ke- ‘,j); Writeln(‘KODE BUKU HABIS=SELESAI’); Readln(Buku.Kode); If Buku.Kode <> ‘HABIS’ then Begin Write(‘JUDUL BUKU : ‘); Readln(Buku.Judul); Write(‘EKSEMPLAR : ‘); Readln(Buku.Ekse); Write(‘HARGA BUKU : ‘); Readln(Buku.Harga); End; Until Buku.Kode=’HABIS’; End; End; Until Pilih = ‘4’ End.

Page 38: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

38

run Menu Pilihan : [1]. Masukkan data Buku [2]. Lihat Daftar Buku [3]. Tambah Data Buku [4]. Selesai Pilihan Proses : Berapa Buku ? : 3 Data ke - 1 Kode Buku : A01 Judul Buku : BASIC Eksemplar : 4 Harga Buku : 2000 Data ke - 2 Kode Buku : A02 Judul Buku : PASCAL Eksemplar : 3 Harga Buku : 1000 Data ke - 3 Kode Buku : A03 Judul Buku : PDE Eksemplar : 3 Harga Buku : 3000

Daftar BUKU ==================================== No. Kode Judul eks. Harga ==================================== 1 A01 BASIC 4 2000.00 2 A02 PASCAL 3 1000.00 3 A03 PDE 3 3000.00

2. FILE DATA

Dalam memprogram tentunya melibatkan data-data yang cukup banyak, tidaklah

mungkin kalau menyimpan data hanya pada array, atau hanya diinputkan dari keyboard

sehingga jika komputer mati maka data hilang. File data berfungsi sebagai penampung dari

inputan sehingga membentu berkas yang berisi data diperlukan untuk proses input

selanjutnya. Dalam Pascal ada dua macam tipe file yaitu :

1. FILE TEXT

Page 39: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

39

2. FILE BERTIPE

Berikut adalah perbedaan antara file text dan file bertipe :

File text File Bertipe

1. Data direkam dalam format text

ASCII

1. Data direkam dalam format BINER

2. Akses/ rekam data harus urut 2. Akses/ rekam data bersifat

acak/sembarang

3. Akses hanya dapat satu arah 3. Akses dapat langsung dua arah

FILE TEXT

Beberapa perintah yang berkaitan dengan file text adalah :

1. Assign(f, nf)

Perintah ini berguna untuk mengaitkan suatu variabel file (f) dengan suatu nama file (nf).

Contoh : Assign(Mhs, ‘B:DataMhs’);

2. Rewrite(F)

Perintah ini berguna untuk membuka file, sehingga file tersebut telah dikaitkan dengan

variabel file (f) melalui procedure Assign. Perintah Rewrite akan mempunyai mode akses

REKAM, yaitu file tersebut dibuka untuk direkamkan data ke dalamnya

Contoh: Rewrite(Mhs);

3. Append(f)

Perintah ini membuka file seperti rewrite(f), tetapi file yang dibuka HARUS SUDAH

ADA terlebih dahulu. Sedangkan data yang direkam ke dalamnya akan MENAMBAH

pada data yang telah ada sebelumnya.

Contoh : APPEND(f)

4. Reset(f)

Perintah ini berguna untuk membuka file, sehingga file tersebut telah dikaitkan dengan

variabel file (f) melalui Assign juga. Perbedaan dengan Rewrite adalah Mode aksesnya

yaitu Reset mempunyai mode akses BACA. Reset berarti dibuka untuk dibaca data dari

dalam file tersebut.

5. Writeln(f, data) dan Write(f, data)

Page 40: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

40

Perintah ini berguna untuk menuliskan/simpan ke dalam file yang nama filenya dikaitkan

ke variabel file f. Perbedaan Writeln dan Write mempunyai efek yang sama dengan efek

ke layar. Data akan dituliskan ke file dapat berupa KONSTANTA, EKSPRESI atau

VARIABEL.

Contoh : Assign(f2,’File_A’); Rewrite(f2); Write(f2,’Hallo’); Writeln(‘IPTTI’); X := ‘Selamat Pagi’; Writeln(f2,x);

6. Readln(f, Var)

Perintah ini berguna untuk membaca data dari file dengan variabel file f. Data akan

ditampung dalam variabel Var.

Perintah ini berkaitan dengan membuka file dengan RESET(f).

Contoh : Assign(f2,’DataMhs’); Reset(f2); Readln(f2,noMhs,Nama)

7. Close(f)

Peintah ini berguna untuk menutup file dengan variabel file f.

Contoh : close(f);

8. Eof (f)

Fungsi sebagai boolean yang berarti TRUE jika pointer baca dari file dengan variabel file

f berada di posisi paling akhir/terakhir dan bernilai FALSE jika tidak.

Berikut agar lebih jelas lihat contoh program

Contoh 5.2 :

Program Nilai_Mhs; Uses Crt; Var F : text; {variabel fle} NoMhs : string[5]; Nama : String[20]; Nilai : real; Pil : Char; Procedure RekamData; Begin Clrscr; Assign(f,’Datmhs’); Rewrite(f); {buka file baru} Repeat

Page 41: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

41

Writeln(‘KETIK No.Mhs = HABIS jika selesai’); Write(‘Nomor Mhs : ‘); Readln(NoMhs); If NoMhs <> ‘HABIS’ then begin

Write(‘Nama Mhs : ‘); Readln(Nama); Write(‘Nilai angka : ‘); Readln(Nilai); Writeln; {rekam ke file} Writeln(f, NoMhs:5, Nama:20, Nilai: 5:2); End; Until NoMhs=’HABIS’; Close(f); End; Procedure TambahData; Begin Assign(f,’DatMhs’); Append(f); {buka file untuk ditambah data} Rekamdata; End; Procedure LihatData; Begin Assign(f,’DatMhs’); Reset(f); {buka file untuk diBACA/Dilihat datanya} Clrscr; Writeln(‘Daftar Nilai Siswa’); Writeln(‘=====================================’); Writeln(‘No Mhs Nama Nilai ‘); Writeln(‘=====================================’); While not eof (f) do Begin

{baca dari file} Readln(f,NoMhs, Nama, Nilai); Writeln(Nomhs: 5, Nama: 20, ‘ ‘,Nilai: 5:2); End; Writeln(‘=====================================’); Readln; Close(f);

End; Begin {program inti} Repeat Clrscr; Writeln(‘MENU UTAMA’); Writeln(‘1. Rekam Data’); Writeln(‘2. Tambah Data’);

Page 42: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

42

Writeln(‘3. Lihat Data’); Writeln(‘4. Selesai’); Write(‘Pilihan proses : ‘); Readln(Pil); Case pil of ‘1’ : RekamData; ‘2’ : TambahData; ‘3’ : LihatData; End; Until Pil=’4’; End.

Run MENU UTAMA 1. Rekam Data 2. Tambah Data 3. Lihat Data 4. Selesai Pilihan proses : KETIK No.Mhs = HABIS jika selesai Nomor Mhs : 01 Nama Mhs : Andria Nilai angka : 80 KETIK No.Mhs = HABIS jika selesai Nomor Mhs : 02 Nama Mhs : Basuki Nilai angka : 82 KETIK No.Mhs = HABIS jika selesai Nomor Mhs : 03 Nama Mhs : RIYAN Nilai angka : 90 KETIK No.Mhs = HABIS jika selesai Nomor Mhs : HABIS

Daftar Nilai Siswa ===================================== No Mhs Nama Nilai ===================================== 01 Andria 80.00 02 Basuki 82.00 03 RIYAN 90.00 =====================================

FILE BERTIPE

Page 43: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

43

Dalam mendeklarasikan variabel file, ada perbedaan antara file teks dengan file

bertipe yaitu :

Untuk file teks selalu : Var NamaVarFile : text

Untuk file bertipe : Var NamaVarFile : File Of Tipedata;

Dengan Tipedata dapat berupa integer, real, char, string atau record.

Contoh deklarasi variabel file dalam file bertipe adalah :

F : file of Real;

F : file of String[20];

F : file of RecMhs; recMhs merupakan Type data Record

Adapun perintah yang ada dalam file text maupun file bertipe adalah :

Assign(f,’namfile’);

Rewrite(f);

Reset(f);

Close(f);

Fungsi EOF(f)

File bertipe mempunyai fungsi eof yang berbeda yaitu :

1. Untuk menulis ke file maka perintah yang dipakai HANYA : Write(f,NamaVar);

2. Untuk membaca file perintah yang dipakai HANYA : Read(f,NamaVar);

Disamping itu posisi record yang direkam dan dibaca dapat ACAK dan dapat DUA ARAH

yaitu REKAM/BACA.

Berikut adalah perintah yang ada pada file tipe :

1. Seek(f, noRec)

Perintah ini untuk memposisikan pointer baca pada noRec. Perlu ketahui bahwa

record pertama ada pada posisi 0, record ke dua ada ada posisi 1 dan seterusnya.

Contoh : Seek (f, 4); Read(f,V);

Hasil : Record 5 akan dibaca, hasilnya disimpan di variabel V.

Contoh : Seek(f,9); Write(f,V);

Hasil : Isi variabel V direkam di posisi record 10

2. Truncate(f)

Perintah ini untuk menghapus seluruh record mulai dari posisi POINTER BACA

berada.

Page 44: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

44

Contoh : seek(f,5); Truncate(f);

Hasil : Seluruh record mulai posisi 5 akan dihapus dari file.

3. FilePos(f)

Perintah ini untuk mendapatkan pointer sekarang dari penunjuk file.

Contoh : Seek(f,5); p:=FilePos(F); Writeln(p);

Hasil : 3 posisi sekarang.

4. FileSize(f)

Berguna untuk mendapatkan cacah record dari file yang dibuka.

Contoh : Reset(f); n:=FileSize(f);

Hasil : n akan berisi cacah record dari file dengan varfile f.

Berikut contoh untuk File Record bertipe :

Contoh 5.3 File Beritpe

Uses Crt;

Type RecSiswa = Record NoMhs : String[5]; Nama : String[20]; Nilai : Real; End; Var Fsis : File Of RecSiswa; Siswa : RecSiswa; Pil : Char; Procedure RekamBaru; Begin Assign(fsis,’Datmhs’); Rewrite(fsis); Repeat Writeln(‘KETIK NoMhs = HABIS jika selesai’); Write(‘Nomor Mhs : ‘); Readln(Siswa.NoMhs); If Siswa.NoMhs <> ‘HABIS’ then Begin Write(‘Nama Mhs : ‘); Readln(Siswa.Nama); Write(‘Nilai Angka : ‘); Readln(Siswa.Nilai); {rekam file} Write(fsis,siswa); Writeln; End; Until Siswa.NoMhs=’HABIS’;

Page 45: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

45

Close(fSis); End; Procedure Tambahdata; Begin Assign(fSis,’DatMhs’); Reset(fsis);

Seek(fsis, FileSize(fSis)); RekamBaru;

End; Procedure BacaSemua; Var P : Integer; Begin Assign(Fsis,’DatMhs’); Reset(Fsis); Writeln(‘Daftar Nilai’); Writeln(‘=========================================’); Writeln(‘NoMhs Nama Nilai ‘); Writeln(‘=========================================’); For P:= 1 to FileSize(fSis) do Begin Read(Fsis,Siswa);

With Siswa do Writeln(NoMhs:5, Nama:20, Nilai:5,2); End;

Writeln(‘=========================================’); Readln; Close(Fsis); End;

Begin {program inti}

Repeat Clrscr; Writeln(‘MENU UTAMA’); Writeln(‘1. Rekam Baru’); Writeln(‘2. Tambah Data’); Writeln(‘3. Lihat Data’); Writeln(‘4. Selesai’); Write(‘Pilihan proses : ‘); Readln(Pil); Case pil of ‘1’ : RekamBaru; ‘2’ : TambahData; ‘3’ : BacaSemua; End; Until Pil=’4’;

End.

Page 46: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

46

Run MENU UTAMA 1. Rekam Baru 2. Tambah Data 3. Lihat Data 4. Selesai Pilihan proses :

Page 47: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

47

Daftar-Daftar Statement Tambahan

1. Clrscr {untuk menghapus layar}

Harus menggunakan uses crt

2. Exit

Berfungsi untuk keluar dari block program baik procedure maupun function. Jika

Exit ini ada diprogram inti akan menyebabkan program berhenti.

3. Halt

Berfungsi untuk mengakhiri eksekusi program, baik diprogram utama/inti maupun

diprogram sub inti. Program ini akan mem- break ke Source program sumber semua akan

dibatalkan kembali ke turbo pascal.

4. FillChar(x: string; count:word; ch:char)

Berfungsi untuk mengisikan sejumlah karakter ch sebanyak count ke dalam variabel string x.

Contoh : x: string[80]

FillChar(x,10,’A’);

Hasil : variabel string x akan berisi data : AAAAAAAAAA

5. Delay(n:integer);

Berfungsi untuk menunda eksekusi program selama n milisecond (1/1000 detik).

Termasuk dalam unit crt;

Contoh : Writeln(‘Hallo IPTII’); Delay(1000);Write(‘Bos’);

Hasil : Hallo IPTII {tertunda 1 detik} Bos

6. ClrEol

Berfungsi untuk menghapus tulisan dilayar mulai dari posisi kursor sampai ke akhir baris

tanpa merubah posisi kursor. Termasuk dalam unit CRT.

Contoh :

Gotoxy(1,1);write(‘IPTTI YOGYAKARTA’);

Delay(3000);

Gotoxy(5,1);ClrEol;

Hasil Tulisan IPTTI YOGYAKARTA ada di baris 1 kolom 1 tertunda

3 detik lalu IPTTI YOGYAKARTA akan dihapus.

Page 48: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

48

7. Gotoxy(x,y:word);

Berfungsi untuk menempatkan posisi di layar pada X: kolom dan Y : baris . Termasuk dalam

unit Crt.

Contoh :

Program animasi; Uses Crt; Const Teks=’IPTTI KUSUMAYO’; Var X: integer; Begin Clrscr; For x:= 1 to 70 do begin Gotoxy(x,12);Write(Teks); Delay(500); End; End.

8. Pi : real; Berfungsi untuk nilai 3.14151592…

Write(pi:5:2); hasil : 3.14

9. Abs(x:real):real;

Menerima masukan x real atau integer dan akan mengembalikan nilai positif dari x

Contoh : Writeln(Abs(-5.6):5:2);

Hasil : 5.60

10. Exp(x: real): real;

Contoh : Writeln(exp(1) : 5:2);

Hasil 2.73

11. La (x: real): real;

Contoh : Writeln(Ln(00) : 5:2);

Hasil : 4.61

12. Sqr (x: real): real;

Berfungsi untuk menerima masukan x real/integer dan akan mengembalikan nilai kuadrat

dari x.

13. Int (x: real): real;

Contoh : Writeln(Int(78.23));

Hasil : 78

14. Sqrt(x: real): real;

Page 49: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

49

Berfungsi untuk menerima masukan x real/integer dan akan mengembalikan nilai akar dari x.

15. Sin(x: real) : real; Cos(x: real): real dan ArcTan(x: real) : real;

Fungsi untuk memasukkan x real dalam radian untuk Sin dan Cos sin(x) cos(x)

16. Random(x: integer) : integer;

Untuk mengacak bilangan. Random sangat potensial untuk membangkitkan efek-efek yang

berkaitan dengan animasi game dan peramalan.

17. Sound(n)

Berfungsi untuk mengaktifkan suara speaker n bernilai >100

18. Nosound

Untuk mute atau mematikan suara.

Page 50: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

50

Gambar-Gambar Flow Chat

Proses Proses Alternative

Mulai / Selesai

Kondisi/Keputus

Data Masukan Dan Keluaran

Dokument File Simpan Data

Sambungan

Page 51: Pascal 4-aturan-penulisan-pascal

PASCAL

Dosen: Heriyanto,A.Md, S.Kom

51

DAFTAR PUSTAKA

1. Stubbs T., Daniel & Neil W. Webre, "Data Structures with Abstract Data Types and

Pascal", Brook/Cole Publishing Company, 1984.

2. Tanenbaum, A., "Data Structures using Pascal", Prentice-Hall, Englewood, NJ, 1976.

3. Borland International Inc Manual, TURBO PASCAL: version 6.0 REF.

4. Jogiyanto, HM, PASCAL Tingkat Lanjutan, Andi Ofset 1990.

5. Lewis, T.B. & Smith M.Z., "Applying Data Structures", second edition, Houghton Mifflin

Company, Boston.

6. Wirth, Nicklaus, "Algorithm & Data Structure Programs", Prentice-Hall, Englewood Cliff,

NJ, 1976.

7. Welsh, Jim ll., Elder J., Introduction to Pascal, New Jersey : Prentice Hall, Inc. 1982.

8. Santoso, P. Insap, Dasar-dasar Pemrograman Pascal: Teori dan Program terapan,

Yogyakarta: Andi Ofset, 1987.

9. Otto, Fischer, Borland Pascal/Turbo Pascal 7.0 Turbo Vision, PT. Dianastindo Adiperkasa

Internasional, Cetakan Kedua, April 1996, Jakarta.