SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
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.
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.
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.
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}
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.
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;
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.
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 :
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;
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)
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;
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)
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)
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.
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);
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}
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’);
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
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…
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……
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);
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];
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>
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>
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 :
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];
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]);
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.
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
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;
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);
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
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
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
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 :
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’);
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.
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
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)
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
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’);
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
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.
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’;
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.
PASCAL
Dosen: Heriyanto,A.Md, S.Kom
46
Run
MENU UTAMA
1. Rekam Baru
2. Tambah Data
3. Lihat Data
4. Selesai
Pilihan proses :
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.
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;
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.
PASCAL
Dosen: Heriyanto,A.Md, S.Kom
50
Gambar-Gambar Flow Chat
Proses Proses Alternative
Mulai / Selesai
Kondi
si/Ke
putus
Data
Masukan Dan
Keluaran
Dokument File
Simpan Data
Sambu
ngan
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksNila Aulia
 
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOContext Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOahmad haidaroh
 
Pertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur DataPertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur DataEndang Retnoningsih
 
Perbedaan sistem linear dan non linear
Perbedaan sistem linear dan non linearPerbedaan sistem linear dan non linear
Perbedaan sistem linear dan non linearElGazzaYantPratama
 
Konsep distribusi peluang_kontinu(9)
Konsep distribusi peluang_kontinu(9)Konsep distribusi peluang_kontinu(9)
Konsep distribusi peluang_kontinu(9)rizka_safa
 
Modul persamaan diferensial 1
Modul persamaan diferensial 1Modul persamaan diferensial 1
Modul persamaan diferensial 1Maya Umami
 
Tugas regresi linear dan non linier
Tugas regresi linear dan non linierTugas regresi linear dan non linier
Tugas regresi linear dan non liniernopiana
 
Materi Kuliah : Dasar pemrograman 1
Materi Kuliah : Dasar pemrograman 1Materi Kuliah : Dasar pemrograman 1
Materi Kuliah : Dasar pemrograman 1Braga Rezpect
 
Pertemuan ke 5
Pertemuan ke 5Pertemuan ke 5
Pertemuan ke 5padlah1984
 
03 limit dan kekontinuan
03 limit dan kekontinuan03 limit dan kekontinuan
03 limit dan kekontinuanRudi Wicaksana
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)zachrison htg
 
Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )Kelinci Coklat
 
Transformasi laplace
Transformasi laplaceTransformasi laplace
Transformasi laplacedwiprananto
 
Transformasi Laplace (bag.1)
Transformasi Laplace (bag.1)Transformasi Laplace (bag.1)
Transformasi Laplace (bag.1)Heni Widayani
 

Was ist angesagt? (20)

Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
 
Array dan Contoh
Array dan ContohArray dan Contoh
Array dan Contoh
 
2. galat
2. galat2. galat
2. galat
 
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOContext Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
 
Pertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur DataPertemuan 1 Data dan Struktur Data
Pertemuan 1 Data dan Struktur Data
 
Perbedaan sistem linear dan non linear
Perbedaan sistem linear dan non linearPerbedaan sistem linear dan non linear
Perbedaan sistem linear dan non linear
 
Konsep distribusi peluang_kontinu(9)
Konsep distribusi peluang_kontinu(9)Konsep distribusi peluang_kontinu(9)
Konsep distribusi peluang_kontinu(9)
 
Modul persamaan diferensial 1
Modul persamaan diferensial 1Modul persamaan diferensial 1
Modul persamaan diferensial 1
 
Tugas regresi linear dan non linier
Tugas regresi linear dan non linierTugas regresi linear dan non linier
Tugas regresi linear dan non linier
 
Materi Kuliah : Dasar pemrograman 1
Materi Kuliah : Dasar pemrograman 1Materi Kuliah : Dasar pemrograman 1
Materi Kuliah : Dasar pemrograman 1
 
Display
DisplayDisplay
Display
 
Pertemuan ke 5
Pertemuan ke 5Pertemuan ke 5
Pertemuan ke 5
 
03 limit dan kekontinuan
03 limit dan kekontinuan03 limit dan kekontinuan
03 limit dan kekontinuan
 
GoLang_1
GoLang_1GoLang_1
GoLang_1
 
Hipotesis nol
Hipotesis nolHipotesis nol
Hipotesis nol
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )
 
Transformasi laplace
Transformasi laplaceTransformasi laplace
Transformasi laplace
 
TURUNAN TINGKAT TINGGI
TURUNAN TINGKAT TINGGITURUNAN TINGKAT TINGGI
TURUNAN TINGKAT TINGGI
 
Transformasi Laplace (bag.1)
Transformasi Laplace (bag.1)Transformasi Laplace (bag.1)
Transformasi Laplace (bag.1)
 

Ähnlich wie Pascal 4-aturan-penulisan-pascal

Bahasa pemrograman pascal
Bahasa pemrograman pascalBahasa pemrograman pascal
Bahasa pemrograman pascalNadya Olivia
 
Ayo membuat program pascal
Ayo membuat program pascalAyo membuat program pascal
Ayo membuat program pascalHary Purwoko
 
Modul praktikum-algo-pemro
Modul praktikum-algo-pemroModul praktikum-algo-pemro
Modul praktikum-algo-pemroFaisal Amir
 
Perulangan,stack,record
Perulangan,stack,recordPerulangan,stack,record
Perulangan,stack,recordsamsonarieska
 
Pemrograman pascal bab_i
Pemrograman pascal bab_iPemrograman pascal bab_i
Pemrograman pascal bab_iadealfarisi
 
listiati univ bung hata (1110013211051) Bahasa pemrograman pascal
listiati univ bung hata (1110013211051) Bahasa pemrograman pascallistiati univ bung hata (1110013211051) Bahasa pemrograman pascal
listiati univ bung hata (1110013211051) Bahasa pemrograman pascalMaryanto Sumringah SMA 9 Tebo
 
Pascal - Kontrol.txt - Notepad.pdf
Pascal - Kontrol.txt - Notepad.pdfPascal - Kontrol.txt - Notepad.pdf
Pascal - Kontrol.txt - Notepad.pdfJurnal IT
 
Part 24 Perintah Record with
Part 24 Perintah Record withPart 24 Perintah Record with
Part 24 Perintah Record withSyaiful Ahdan
 
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATA
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATAstruktur pemrograman pascal - MATA KULIAH STRUKTUR DATA
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATAsugianto91
 
Struktur pemrograman pascal
Struktur pemrograman pascalStruktur pemrograman pascal
Struktur pemrograman pascalJefry Jefry
 
Pemrograman pascal bab_i
Pemrograman pascal bab_iPemrograman pascal bab_i
Pemrograman pascal bab_ifajaralpindra
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahBraga Rezpect
 
Pengantar Algoritma Pemrograman II
Pengantar Algoritma Pemrograman IIPengantar Algoritma Pemrograman II
Pengantar Algoritma Pemrograman IIformatik
 
Struktur data chapter_01
Struktur data chapter_01Struktur data chapter_01
Struktur data chapter_01Sejahtera Affif
 
Part 6: Aturan dan Penulisan Kode Program
Part 6: Aturan dan Penulisan Kode ProgramPart 6: Aturan dan Penulisan Kode Program
Part 6: Aturan dan Penulisan Kode ProgramSyaiful Ahdan
 
Materi dasar-pascal
Materi dasar-pascalMateri dasar-pascal
Materi dasar-pascalFaisal Amir
 

Ähnlich wie Pascal 4-aturan-penulisan-pascal (20)

1999 turbo-pascal
1999 turbo-pascal1999 turbo-pascal
1999 turbo-pascal
 
Bahasa pemrograman pascal
Bahasa pemrograman pascalBahasa pemrograman pascal
Bahasa pemrograman pascal
 
Ayo membuat program pascal
Ayo membuat program pascalAyo membuat program pascal
Ayo membuat program pascal
 
Pertemuan 5
Pertemuan 5Pertemuan 5
Pertemuan 5
 
Modul praktikum-algo-pemro
Modul praktikum-algo-pemroModul praktikum-algo-pemro
Modul praktikum-algo-pemro
 
Perulangan,stack,record
Perulangan,stack,recordPerulangan,stack,record
Perulangan,stack,record
 
Pemrograman pascal bab_i
Pemrograman pascal bab_iPemrograman pascal bab_i
Pemrograman pascal bab_i
 
listiati univ bung hata (1110013211051) Bahasa pemrograman pascal
listiati univ bung hata (1110013211051) Bahasa pemrograman pascallistiati univ bung hata (1110013211051) Bahasa pemrograman pascal
listiati univ bung hata (1110013211051) Bahasa pemrograman pascal
 
Pascal - Kontrol.txt - Notepad.pdf
Pascal - Kontrol.txt - Notepad.pdfPascal - Kontrol.txt - Notepad.pdf
Pascal - Kontrol.txt - Notepad.pdf
 
Part 24 Perintah Record with
Part 24 Perintah Record withPart 24 Perintah Record with
Part 24 Perintah Record with
 
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATA
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATAstruktur pemrograman pascal - MATA KULIAH STRUKTUR DATA
struktur pemrograman pascal - MATA KULIAH STRUKTUR DATA
 
Struktur pemrograman pascal
Struktur pemrograman pascalStruktur pemrograman pascal
Struktur pemrograman pascal
 
Pemrograman pascal bab_i
Pemrograman pascal bab_iPemrograman pascal bab_i
Pemrograman pascal bab_i
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
 
Pengantar Algoritma Pemrograman II
Pengantar Algoritma Pemrograman IIPengantar Algoritma Pemrograman II
Pengantar Algoritma Pemrograman II
 
Struktur data chapter_01
Struktur data chapter_01Struktur data chapter_01
Struktur data chapter_01
 
Pertemuan 3
Pertemuan 3Pertemuan 3
Pertemuan 3
 
Pascal
PascalPascal
Pascal
 
Part 6: Aturan dan Penulisan Kode Program
Part 6: Aturan dan Penulisan Kode ProgramPart 6: Aturan dan Penulisan Kode Program
Part 6: Aturan dan Penulisan Kode Program
 
Materi dasar-pascal
Materi dasar-pascalMateri dasar-pascal
Materi dasar-pascal
 

Mehr von adealfarisi

Sistem bilangan4
Sistem bilangan4Sistem bilangan4
Sistem bilangan4adealfarisi
 
Sistem bilangan3
Sistem bilangan3Sistem bilangan3
Sistem bilangan3adealfarisi
 
Sistem bilangan2
Sistem bilangan2Sistem bilangan2
Sistem bilangan2adealfarisi
 
Pengenalan komputer
Pengenalan komputerPengenalan komputer
Pengenalan komputeradealfarisi
 
Pengenalan komputer
Pengenalan komputerPengenalan komputer
Pengenalan komputeradealfarisi
 
Pengenalan komputer mulok
Pengenalan komputer mulokPengenalan komputer mulok
Pengenalan komputer mulokadealfarisi
 
Jeni intro1-bab01-pengenalan pemrogramankomputer
Jeni intro1-bab01-pengenalan pemrogramankomputerJeni intro1-bab01-pengenalan pemrogramankomputer
Jeni intro1-bab01-pengenalan pemrogramankomputeradealfarisi
 
Bab 15 jaringan_komputer
Bab 15 jaringan_komputerBab 15 jaringan_komputer
Bab 15 jaringan_komputeradealfarisi
 

Mehr von adealfarisi (12)

Video editing@
Video editing@Video editing@
Video editing@
 
Frontpage
FrontpageFrontpage
Frontpage
 
Modul html
Modul htmlModul html
Modul html
 
Sistem bilangan4
Sistem bilangan4Sistem bilangan4
Sistem bilangan4
 
Sistem bilangan3
Sistem bilangan3Sistem bilangan3
Sistem bilangan3
 
Sistem bilangan2
Sistem bilangan2Sistem bilangan2
Sistem bilangan2
 
Sistem bilangan
Sistem bilanganSistem bilangan
Sistem bilangan
 
Pengenalan komputer
Pengenalan komputerPengenalan komputer
Pengenalan komputer
 
Pengenalan komputer
Pengenalan komputerPengenalan komputer
Pengenalan komputer
 
Pengenalan komputer mulok
Pengenalan komputer mulokPengenalan komputer mulok
Pengenalan komputer mulok
 
Jeni intro1-bab01-pengenalan pemrogramankomputer
Jeni intro1-bab01-pengenalan pemrogramankomputerJeni intro1-bab01-pengenalan pemrogramankomputer
Jeni intro1-bab01-pengenalan pemrogramankomputer
 
Bab 15 jaringan_komputer
Bab 15 jaringan_komputerBab 15 jaringan_komputer
Bab 15 jaringan_komputer
 

Pascal 4-aturan-penulisan-pascal

  • 1. 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.
  • 2. 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.
  • 3. 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.
  • 4. 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}
  • 5. 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.
  • 6. 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;
  • 7. 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.
  • 8. 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 :
  • 9. 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;
  • 10. 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)
  • 11. 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;
  • 12. 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)
  • 13. 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)
  • 14. 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.
  • 15. 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);
  • 16. 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}
  • 17. 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’);
  • 18. 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
  • 19. 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…
  • 20. 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……
  • 21. 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);
  • 22. 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];
  • 23. 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>
  • 24. 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>
  • 25. 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 :
  • 26. 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];
  • 27. 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]);
  • 28. 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.
  • 29. 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
  • 30. 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;
  • 31. 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);
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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 :
  • 36. 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’);
  • 37. 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.
  • 38. 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
  • 39. 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)
  • 40. 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
  • 41. 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’);
  • 42. 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
  • 43. 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.
  • 44. 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’;
  • 45. 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.
  • 46. PASCAL Dosen: Heriyanto,A.Md, S.Kom 46 Run MENU UTAMA 1. Rekam Baru 2. Tambah Data 3. Lihat Data 4. Selesai Pilihan proses :
  • 47. 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.
  • 48. 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;
  • 49. 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.
  • 50. PASCAL Dosen: Heriyanto,A.Md, S.Kom 50 Gambar-Gambar Flow Chat Proses Proses Alternative Mulai / Selesai Kondi si/Ke putus Data Masukan Dan Keluaran Dokument File Simpan Data Sambu ngan
  • 51. 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.