Anda di halaman 1dari 43

Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.

html
by: Defy Muhammad Aminuddin

Pembahasan 1
Pengenalan Turbo Pascal dan Pemrograman
Apakah Program Itu?
Komputer tidak dapat melakukan sesuatu kalo tidak ada instruksi yang mengaturnya.
Sebenarnya di dalam disk terdapat perintah- perintah untuk komputer. Perintah- perintah
atau instruksi- instruksi yang diberikan kepada komputer agar komputer dapat
melaksanakan tugas- tugas tertentu dikenal dengan sebutan program. Sebuah program
berisi sekumpulan kode. Kode- kode yang digunakan dapat bermacam- macam dan
bergantung oleh bahasa pemrograman yang digunakan. Adapun upaya untuk membuat
program dikenal dengan sebutan pemrograman atau pengkodean.
Setiap program tentu dibuat dengan sebuah bahasa pemrograman. Sama halnya dengan
manusia, komputer pun memiliki bahasa, namun komputer hanya memilki bahasa dasar
yaitu bahasa mesin. Bahasa mesin adalah bahasa yang hanya menggunakan kode biner,
yaitu kode yang hanya berisi angka 0 dan 1 saja. Bahasa ini pastinya sulit untuk dapat
dipahami oleh manusia. Oleh karena itu, agar program dapat dibuat dengan mudah, maka
diciptakanlah bahasa pemrograman komputer yang lain, yang terdiri dari 2 golongan :
1. Bahasa pemrograman tingkat rendah, yaitu yang berorientasi kepada mesin.
Contoh :
- Bahasa mesin (machine language)
- Bahasa rakitan (assembly language)
2. Bahasa pemrograman tingkat tinggi, yaitu yang berorientasi kepada manusia,
menggunakan kata-kata yang biasa digunaka oleh manusia, misalnya :
Writeln(’Selamat Belajar’);
Contoh :
- Pascal
- BASIC
- COBOL
- Fortran
- C dan C++

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
Dalam membuat program, ada langkah- langkah yang perlu diperhatikan, yaitu :

Mulai

Menulis Program

Menjalankan
Program

Ada ya Memperbaiki
Kesalahan? Program

tidak

Selesai

Langkah Pemrograman

Sejarah Pascal
Pascal adalah bahasa pemrograman yang pertama kali di buat oleh Profesor Niklaus Wirth,
seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971.
Dengan mengambil nama dari matematikawan Perancis, Blaise Pascal, yang pertama kali
menciptakan mesin penghitung, Profesor Niklaus Wirth membuat bahasa Pascal ini sebagai
alat bantu untuk mengajarkan konsep pemrograman komputer kepada mahasiswanya.
Selain itu, Profesor Niklaus Wirth membuat Pascal juga untuk melengkapi kekurangan-
kekurangan bahasa pemrograman yang ada pada saat itu.

Kelebihan
Kelebihan dari bahasa pemrograman Pascal adalah:
 Tipe Data Standar, tipe-tipe data standar yang telah tersedia pada kebanyakan
bahasa pemrograman. Pascal memiliki tipe data standar: boolean, integer, real, char,
string,
 User defined Data Types, programmer dapat membuat tipe data lain yang
diturunkan dari tipe data standar.
 Strongly-typed, programmer harus menentukan tipe data dari suatu variabel, dan
variabel tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain dari
format yang ditentukan.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
 Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah
menjadi fungsi-fungsi kecil (procedure dan function) yang dapat dipergunakan
berulang-ulang.
 Sederhana dan Ekspresif, memiliki struktur yang sederhana dan sangat mendekati
bahasa manusia (bahasa Inggris) sehingga mudah dipelajari dan dipahami.

Bahasa PASCAL juga merupakan bahasa yang digunakan sebagai standar bahasa
pemrograman bagi tim nasional Olimpiade Komputer Indonesia (TOKI). Selain itu, Bahasa
PASCAL masih digunakan dalam IOI (International Olympiad in Informatics).

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pembahasan 2
Memulai Turbo Pascal

Struktur Bahasa Pascal


Struktur Program Pascal
Secara ringkas struktur suatu program pascal dapat terdiri dari:
1. Judul program (program heading)
Judul program bersifat optional dan tidak signifikan terhadap proses program. Beberapa
ketentuan yang perlu diperhatikan:
a. Diawali dengan reserved word Program dilanjutkan dengan identifier dan diakhiri
dengan tanda ;.
b. Aturan pemberian nama pengenal (identifier) mengikuti aturan kata
pengenal dalam turbo pascal (lihat subbagian identifier).
Contoh :
Program Luas_segitiga ;
2. Blok program
a. Bagian deklarasi
Bagian deklarasi digunakan untuk mendeklarasikan unit, label, tipe, konstanta,
variabel, prosedur dan fungsi.
- Deklarasi uses
Tata tulis:
USES unit1,unit2,…,unit-n ;
Uses merupakan perintah yang digunakan untuk memakai suatu unit tertentu dari
Turbo Pascal. Unit pada turbo pascal adalah kumpulankumpulan instruksi yang
merupakan prosedur dan fungsi yang dipakai dalam turbo pascal.
Beberapa unit dalam turbo pascal, diantaranya: Unit System, Unit Crt,
Unit DOS, Unit WinDos, Unit Strings, Unit Graph, Unit
Overlay, Unit Printer.
Contoh :
Program Luas_segitiga ;
Uses Crt;

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
- Deklarasi konstanta
Deklarasi ini berfungsi untuk menyatakan konstanta yang digunakan. Nama
konstanta yang didefinisikan oleh pemrogram mengikuti aturan pengenal ( identifier)
Tata tulis:
CONST
Nama1 = nilai1;
Nama2 = nilai2;
Contoh :
Program Luas_segitiga ;
Const
Pengali = 0,5 ;

- Deklarasi variable
Deklarasi ini memberitahukan pascal variabel apa saja yang digunakan dalam
program. Nama variabel mengikuti aturan pengenal.
VAR
Nama1 = tipedata1 ;
Nama2 = tipedata2 ;
Contoh :
Program Luas_segitiga ;
Const
Pengali = 0,5 ;
Var
Alas,tinggi = real ;

- Deklarasi label
Deklarasi ini digunakan jika kita menggunakan statement GoTo untuk meloncat ke
suatu statement tertentu.
Tata Tulis
LABEL nama1,nama2,…,nama-n ;
Contoh 1.3:
Program Luas_segitiga ;
Uses Crt;
Label 100,Selesai;

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
- Deklarasi tipe
Deklarasi ini berfungsi untuk menyatakan tipe data yang digunakan.
Tata tulis:
TYPE
Nama1 = tipe data1 ;
Nama2 = tipe data2 ;
Contoh 1.4:
Program Luas_segitiga ;
Type
Pecahan = real;
Bulat = bulat;
- Deklarasi prosedur
- deklarasi fungsi
b. Bagian pernyataan
Bagian pernyataan (statement part) merupakan bagian yang terakhir dari suatu
blok, yang sering disebut juga main program. Bagian ini diawali dengan kata
cadangan (reserved word) BEGIN dan diakhiri dengan kata cadangan END.
Bagian pernyataan ini menunjukkan suatu tindakan yang akan dikerjakan oleh
program. Dalam menuliskan pernyataan dalam program setiap pernyataan harus
diakhiri dengan tanda titik koma.
Tata tulis:
BEGIN
Pernyataan1 ;
Pernyataan2 ;
END.
Contoh 1.7:
Program Luas_segitiga ;
Const
Pengali = 0,5 ;
Var
Alas,tinggi = real ;
Begin
Alas := 10 ;
Tinggi = 20 ;
Luas = Pengali*Alas*Tinggi ;
End .

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
Contoh Program

Listing Programnya
Uses Crt;
Begin
WriteLn( ‘Saya’ ); Hasilnya :
Write( ‘Belajar’ );
Saya
WriteLn( ‘Turbo’ );
Belajar Turbo
Write( ‘Pascal’ );
Pascal Versi 7.0
Write( ‘Versi 7.0’ );
End.
Tugas:
Tekan Ctrl F9 untuk ekseskusi program
Buatlah Program cetak dilayar Biodata
(compile dan mengecek kesalahan)
diri anda
Tekan F5 untuk melihat hasilnya

Perintah Dasar – Identifier - Deklarasi

Perintah Dasar/Sederhana Pascal


 Write ( ‘Text/tulisan’,Variabel);

Perintah untuk menampilkan atau cetak dilayar monitor tanpa pindah baris
 WriteLn( ‘Text/Tulisan’,Variabel);

Perintah untuk menampilkan/cetak dilayar monitor lalu pindah baris kebawah


 Read(Variabel);
Perintah untuk menginput/mengisi data tanpa pindah baris
 ReadLn(Variabel);
Perintah untuk menginput/mengisi data lalu pindah baris

Identifier/Pengenal Data
Digunakan untuk penamaan elemen-elemen deklarasi seperti Label, Constanta, type,
variabel, procedure, function

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Syarat Identifier Contoh :


Luas_Segi_Tiga
 Diawali huruf
LuasSegiTiga
 Tidak boleh ada spasi/blank LuasS3
LS3
 Tidak boleh menggunakan reserved word
 Tidak boleh menggunakan simbol khusus,
kecuali underscore(tanda bawah)
 Panjang maximal 63 character

Deklarasi Variabel Deklarasi Constanta


Adalah elemen data yang belum Adalah suatu elemen data yang sudah
memiliki nilai dan nilainya dapat ada nilainya dan nilainya tetap
berubah ubah Contoh :
Contoh : USES CRT;
USES CRT; CONST Namasis= ‘Syaiful
VAR Nama : String[25]; Anwar’;
Nilai : Integer; IPK = 3.35;
BEGIN Mutu = ‘A’
CLRSCR; BEGIN
WRITE( ‘Nama Siswa : ‘ ); CLRSCR;
READLN(Nama); WRITE( ‘Nama Siswa : ‘ ,
WRITE( ‘Nilai Ujian : ‘ Namasis);
); READLN(Nilai); WRITE( ‘Nilai IPK :
END. ‘ , IPK);
WRITE( ‘Mutu Ujian : ‘ ,
Ctrl F9 lalu isi datanya Mutu);
Nama Siswa : … END.
Nilai Ujian : …
Ctrl F5 lihat hasilnya Ctrl F9 lalu Alt F5
Nama Siswa : Syaiful Anwar;
Nilai IPK : 3.350000E+0
Mutu Ujian : A

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pembahasan 3
PENGUNAAN USES CRT – TIPE SEDERHANA - OPERATOR

Penggunaan Unit CRT (Cathoda Ray Tube)


 CLRSCR ;
Untuk membersihkan layar
 Delay (nilainya);
Untuk menghentikan program dalam satuan milisecond
 Gotoxy(x,y);
Untuk menempatkan kursor diposisi x dan y
 Window(x1,y1,x2,y2)
Untuk membuat batasan jendela pada layar

Tipe Data Bahasa Pascal


 Bilangan Bulat [integer] Terdiri dari

Tipe Jangkauan nilainya


Shortint -128 .. 127
Byte 0 .. 255
Integer -32768 .. 32767
Word 0 .. 65535
Longint -21747483648 .. 21747483647

 Bilangan Pecahan [real] terdiri dari single, real, double, extended


 Character  satu huruf/simbol saja
 String  lebih dari satu huruf/simbol
 Boolean  data berisi True/False

Operator-Operator Pascal
 Assignment Operator (Operator Pengerjaan)  :=
Contoh A:=5 Nama:=Budi
 Binari Operator  * / + - DIV MOD
 Unary Operator (Operator Tunggal) 
Contoh -5 +2.5
 Bitwise Operator  NOT, AND, OR, XOR, SHL, SHR
 Relasi Operator (Operator Relasi)  = <> > < <= >= IN
 Logical Operator (Operator Logika)  NOT, AND, OR, XOR
 Address Operator (Operator Alamat)  @ ^
 Set Operator (Operator Himpunan)  + - *
 String Operator  +
Contoh Nama1:= ‘Syaiful Anwar’; Nama2:= ‘Anwar’;
Nama3 := Nama1 + Nama2 ;
Hasilnya Nama3  SyaifulAnwar

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Contoh Program Tipe Data Sederhana Cth. Program Operator

Nama Barang :… Listing Program Operator


Jumlah Beli :… USES CRT;
Harga Satuan : Rp. … BEGIN
Harga Barang : Rp. ___ CLRSCR;
Tipe A/B/C/D : … WRITELN(15=10);
Discount : Rp. ___ WRITELN(15>10);
Harga Bayar : Rp. ___ WRITELN(15 DIV 2);
Uangnya : Rp. … WRITELN(15 MOD 2);
Kembalinya : Rp. ___ WRITELN(15/2);
WRITELN(12 AND 23);
Catatan : WRITELN(12 OR 23);
Tanda … berarti program diisi/input READLN;
Tanda ___ berarti program tampil/cetak END.

Listing Program Tipe Data Sederhana Hasilnya


Uses Crt; False
Var Nb : String[20]; True
Hbr, U,Hs : Longint; 7
Jb : Byte; 1
Dis, Hby,K : Real; 7.5000000E+00
Tipe : Char; 4
Begin Clrscr; 31
Write(‘Nama Barang : ‘); Readln(Nb);
Write(‘Jumlah Beli : ‘); Readln(Jb);
Write(‘Harga Satuan : Rp. ‘);
Readln(Hs);
Hbr:=Jb*Hs;
Writeln(‘Harga Barang : Rp. ‘,Hbr);
Write (‘Tipe A/B : ‘); Readln(Tipe);
If Tipe=‘A’ Then Dis:=5/100*Hbr
Else Dis:=0;
Writeln(‘Discount : Rp. ‘,Dis:8:1);
Hby:=Hbr-Dis;
Writeln(‘Harga Bayar : Rp. ‘,Hby:10:1);
Write(‘Uangya : Rp. ‘); Readln(U);
K:=U-Hby;
Write(‘Kembalinya : Rp. ‘,K:10:1);
Readln;
End.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Contoh program:
Program Hitung;
{*program menghitung dengan operasi matematika*}

Var ………,B : ………..;


Begin
Write (‘Masukkan bilangan A : ‘); ………(A);
Write………………………………………. ; readln (….);
Writeln;
Writeln;
Writeln(‘Bilangan yang Anda inputkan adalah :’);
Writeln(‘A = ‘, ……..);
Writeln(‘B = ‘, B);
Writeln(a,’+’,b,’=’,a+b); {perhitungan penjumlahan}
Writeln(…………………..); {perhitungan penjumlahan}
Writeln(…………………..); {perhitungan penjumlahan}
Writeln(…………………..); {perhitungan penjumlahan}
……………………..
End.

Tugas Program
1. Buatlah Program Luas Segi Tiga
2. Buatlah Program Luas dan Keliling Lingkaran
3. Buatlah Program Persegi Panjang

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pembahasan 4
BRANCHING IF TUNGGAL/MAJEMUK – CASE OF

Bracnhing/ Penyeleksian Kondisi


Untuk menyeleksi kondisi-kondisi suatu proses makan diperlukan perintah IF. Adapun
bentuk-bentuk IF sbb:

 Statement IF
Bentuk Umum : If <Kondisi> Then <Statement>;
contoh : IF N>=60 Then Ket:=‘Lulus’;

Bentuk Umum : If <Kondisi> Then <Statement1>


Else <Statement2>;
contoh : IF N>=60 Then Ket:=‘Lulus’
Else Ket:=‘Gagal’;

Nb : apabila dalam satu statement lebih dari 1 baris perintah maka statemen tsb
dimasukkan blok
Begin
Perintah1;
Perintah2;
End;
Branching Majemuk (Nested IF)
Bentuk Umum : If <Kondisi1> Then <Statement1>
Else If <Kondisi2> Then <Statement2>
Else <Statement3>;

contoh : IF (N>=84) and (N<100) Then Mutu:=‘Amat Baik’


Else IF N>74 Then Mutu:=‘Baik’
Else IF N>60 Then Mutu:=‘Cukup’
Else Mutu:=‘Kurang’;

Contoh Nested IF lainnya:


1. Diberikan sebuah kondisi di sebuah swalayan yang memberikan bonus pada
pelanggannya dengan syarat :

Total Belanja Bonus yang diperoleh


≥ 100.000 Payung
≥ 50.000 Piring
≥ 20.000 Gelas
< 20.000 Tidak ada bonus

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
Program bonus_belanja;
Var total : LongInt;
Begin
Writeln (‘Total Belanja Pelanggan : ‘);
Readln(total);
If total >= 100000 then
Writeln(‘bonus payung’)
Else
If total >= 50000 then
Writeln(‘bonus payung’)
Else
If total >= 20000 then
Writeln(‘bonus gelas’)
Else
Writeln(‘bonus payung’);
Readln;
End.

2. Program konversi nilai

Rentang nilai Indeks


100 ≥ nilai ≥ 80 A
Nilai ≥ 70 B
Nilai ≥ 55 C
Nilai ≥ 40 D
Nilai < 40 E

Program indeks_nilai;
Var nilai : integer;
Begin
Writeln (‘nilai akhir siswa :’);
Readln(nilai);
If (nilai <= 100) and (nilai >=80) then
Writeln (‘indeks A)
Else
If (nilai >= 70) then
Writeln (‘indeks B)
Else
If (nilai >= 55) then
Writeln (‘indeks C)
Else
If (nilai >= 40) then
Writeln (‘indeks D)
Else
Writeln (‘indeks E);
Readln;
End.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Statement Case…OF
Bentuk Umum : Contohnya :
CASE <Variabel> OF CASE N OF
Konstanta1 : <Statement1>; 85..100 : Mutu:=‘Amat Baik’;
Konstanta2 : <Statement2>; 75..84 : Mutu:=‘Baik’ ;
Konstanta3 : <Statement3>; 60..74 : Mutu:=‘Cukup’
Konstanta4 : <Statement4>; 0..59 : Mutu:=‘Kurang’;
END; END;

Contoh program dengan case….of……:

Program hari_bulan;
{*program untuk menentukan jumlah hari pada bulan yang
dipilih*}
Var bulan; integer;
Begin
Writeln(‘ Bulan [1…..12] : ’);
readln(bulan);
Case bulan of
1,3,5,7,8,10,12 : {Bulan dengan jumlah hari 31}
Writeln(‘jumlah hari : 31’);
4,6,9,11:
Writeln(‘jumlah hari : 30’);{Bulan dengan jumlah hari
30}

2 : {Bulan dengan jumlah hari 28 atau 29}


Writeln(‘jumlah hari : 28 atau 29’);
Else
Writeln(‘salah kode bulan’);
End;
Readln;
End.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pembahasan 5
PENGULANGAN (LOOPING)

1. Statement For....Do (Perulangan Counter)


B.U : For variabel_kontrol : = nilai_awal To nilai_akhir Do
Statement ;
B.U : For variabel_kontrol:= nilai_awal DownTo nilai_akhir Do
Statement ;
2. Statement While ... Do (Perulangan Kondisi Terpenuhi)
B.U : While ungkapan_logika Do
Statement ;
3. Statement Repaet...Until (Perulangan Kondisi Tidak Terpenuhi)
B.U : Repeat
Statement ;
Until ungkapan_logika ;

Pengulangan dengan For .....Do

Misalnya: For i:=1 to 5 Do Pernyataan1; Berarti: Pernyataan1 akan diulang 5 kali,


dengan nilai I bergerak dari 1, 2, 3, 4, 5 Pergerakan nilai seperti ini disebut naik atau
positif..
Bentuk lainnya adalah: For i:=5 downto 1 Do Statemen1; Berarti; Statemen1 akan
diulang 5 kali, tetapi dengan hitungan turun atau negatif, yaitu: 5, 4, 3, 2, 1.

Contoh program sederhana:

Var x : integer ;
Begin
Writeln(‘--------------------------‘);
Writeln(‘x x*x x*x*x 1/x ‘);
For x:= 1 to 10 do
Writeln(x:3, x*x :8, x*x*x:8, 1/x :12:3);
Writeln(‘---------------------------‘);
readln ;
End .

Keterangan: Pernyataan yang ada di bawah For …Do, akan diulang 10 kali
Jika For x:= 1 to 10 do diganti dengan For x:= 10 downto 1 do ,maka pengulangan
tetap terjadi 10 kali, hanya pergerakan nilai x mulai dari 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pengulangan bersarang, yaitu For ....do ada di dalam For ... do

Contoh pogram sederhana:

Var I, j : integer;
Begin
For i:=1 to 5 do
begin
For j:= 1 to 3 do
Write (i:8, j:4);
end ;
readln;
End.

Hasilnya: 11 12 13
21 22 23
31 32 33
41 42 43
51 52 53

Pengulangan dengan While –Do

Statemen While –Do digunakan untuk mengulang suatu statemen atau blok statemen
terus-menerus selama kondisi bernilai true
Contoh program sederhana :

Var i : integer;
Begin
i := 0;
While i < 5 do
Begin
Writeln(i);
i := i +1;
End ;
readln ;
End.

Contoh lain ,yaitu program untuk mencari rata-rata

Uses crt ;
Var nilai, Total, rata : real;
n, i : integer ;
Begin
Clrscr;
Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
Write(‘Berapa banyaknya data ?’); readln(n);
i := 0; total := 0 ;
While i < n do
Begin
i := i + 1;
Write(‘Berapa data ke ‘, i,’?’);
readln(nilai);
Total := total + nilai ;
End ;
Rata := total / n ;
Writeln(‘Total nilai ‘,total:8:2);
Writeln(‘Rata-rata ‘,rata :8:2);
Readln ;
End .

Contoh program untuk menghetikan proses dengan data sentinel, data sentinel adalah
bilangan untuk pemberitahukan bahwa pemasukan data telah selesai. Dalam program
berikut ini data sentinelnya adalah 99999..

Uses Crt ;
Var
Nilai, Total, Rata : Real ;
I : Interger ;
BEGIN
Clrscr ;
I := 0 ; Total := 0 ; Nilai := 0 ;
While nilai <> 99999 do
Begin
I := I + 1 ;
Write(‘Berapa nilai ke ‘, I , ‘? ‘ ) ;
Readln ( nilai ) ;
Total := Total + Nilai ;
End ;
Total := Total – 99999 ;
I := I – 1 ;
Rata : = Total / I
Writeln ( ‘ Total Nilai = ‘ , Total : 8 : 2) ;
Writeln ( ‘ Banyak Data = ‘ , I : 3) ;
Writeln ( ‘Rata – rata = ‘ , Rata : 8 : 2) ;
Readln ;
END .

Ket : Jika sudah di ketik 99999, maka While – Do akan berhenti .

Contoh memberhentikan program dengan Y/T


Uses Crt ;
Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
Var
Nilai, Total, Rata : Real ;
i : Integer ;
Lagi : Char ;
BEGIN
Clrscr ;
i := 0 ; Total := 0 ; Lagi := ‘ Y ‘ ;
While lagi = ‘Y‘ do
Begin ;
i := 0 + 1 ;
Write ( ‘ Berapa Nilai ke ‘ , i , ‘ ? ‘ ) ;
Readln ( Nilai ) ;
Total : = Total + Nilai ;
Write ( ‘ Ada Data Lagi ( Y / T ) ? ‘ );
Readln ( Lagi ) ;
End ;
Writeln ( ‘ Total Nilai = ‘ , Total : 8 : 2 ) ;
Writeln ( ‘ Banyak Data = ‘ , i : 3 ) ;
Writeln ( ‘ Rata – ratanya = ‘ , rata : 8 : 2 ) ;
Readln ;
END .

WHILE – DO YANG BERSARANG

Contoh Programnya :

Uses Crt ;
Var
Nilai, Total, Rata : Real ;
I , N : Integer ;
Lagi : Char ;
Begin
Lagi : = ‘Y‘ ;
While Lagi = ‘Y‘ Do
Begin
Clrscr ;
Write(‘ Berapa Banyak Data ? ‘) ; Readln(N) ;
I := 0; Total := 0;
While I < N Do
Begin
I := I + 1 ;
Write(‘Ketik Nilai Ke ‘ ,I) ;
Readln(Nilai) ;
Total := Total + Nilai ;
End ;
Rata := Total / I ;
Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
Writeln(‘ Jumlah Nilai = ‘, Total : 8 : 2 ) ;
Writeln(‘ Banyak Data = ‘, I) ;
Writeln(‘ Rata – rata = ‘, Rata : 8 : 2 ) ;
Writeln(‘ Akan menghitung lagi ( Y/T ) ? ‘) ;
Readln (Lagi);
End ;
End .

5.5 Pengulangan dengan Repeat…Until


Repeat… Until digunakan untuk mengulang Statemen atau Blok Statemen sampai
(Until) kondisi yang ditentukan terpenuhi.

Var i : Integer Keterangan :1.Dua statemen, yaitu i := i + 1 dan


Begin Writeln (i); akan diulang terus sampai terpenuhi
i : = 0 ; i = 5. Menurut program ini, nilai i yang pertama
Repeat tama adalah 0, kemudian ditambah 1 terus - me
i : = i + 1 ; nerus, sehingga nilainya 0. 1, 2, 3, 4, 5.
Writeln ( i ) ; Bila sudah mencapai maka program berhenti.
Until i = 5; 2.Repeat until, tidak memerlukan pembatas
End. Begin …End tetapi boleh diisi kalau mau.

5.6. Refeat … Until bersarang


Contoh sederhana:

Var A, B, C :Real;
Begin
Writeln(‘================‘);
Writeln(‘sisi A sisi B sisi C ’);
Writeln(‘----------------------------‘);
A :=1 ;
Repeat
B := 0 ;
Repeat
C := Sqrt(A*A + B*B);
Writeln(A:6:2, B:9:2, C:9:2);
B := B + 5;
Until B >25 ;
A := A + 1;
Until A > 3 ;
Writeln (‘================’);

End.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
Keterangan :1. Pertama-tama yang diulang adalah repeat-until yang ada di dalam , sampai
B > 25.
2. Repeat - until yang diluar akan melakukan pengulangan, setelah refeat –
until dalam berhenti.
3. Agar lebih mengerti sebaiknya program di atas dicoba

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pembahasan 6
PROCEDURE

Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai
subprogram ( program bagian ). Parameter pada procedure ada 2 :

Bentuk Umum :
PROGRAM Judul_Program ;

PROCEDURE judul_prosedur ;
Begin
.............
End ;
BEGIN
..............
END.

Parameter didalam prosedur terdiri dari 2 yaitu :


a. Parameter bersifat Lokal artinya bahwa nilai yang terdapat didalam suatu modul
program hanya dapat digunakan pada modul yang bersangkutan sehingga tidak dapat
digunakan pada modul lain.
b. Parameter bersifat Global artinya bahwa nilai dapat digunakan pada semua modul
maka nilai tersebut harus dideklarasikan di atas modul yang akan menggunakannya.

Contoh : Parameter Lokal Contoh : Paramater Global


Procedure Hitung ; Var
Var X, Y : Byte ;
X, Y : real ; Procedure Tambah ;
Begin Begin
Write ( ‘ Nilai X ? ‘ ) ;
readln ( X ) ;
Write ( ‘ Input Nilai : ‘ ) ;
Y:=X*X; readln ( X ) ;
Writeln ( ‘ Nilai Y ? ‘ , Y :1: 0 ) ; Y:=A+A;
End ; End ;

BEGIN BEGIN
Hitung ; Tambah ;
END. Writeln ( ‘ Nilai Y = ‘, Y ) ;
Readln;
END.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pemanggilan parameter pada prosedur terdiri dari 2 yaitu :


a. Parameter Secara Nilai ( By Value )
Bersifat satu arah, jika terjadi perubahan pada subprogram, maka tidak akan
mempengaruhi program utama.
b. Parameter Secara Acuan ( By Reference )
Bersifat dua arah, jika terjadi perubahan pada subprogram, maka program utamanya
akan ikut berubah.

Contoh : By Value Contoh : By Reference


Uses crt ; Uses crt ; Cont
Procedure Hitung (A,B :integer ); Procedure Hitung ( Var A, B, C : integer ) ; oh
Var Begin Prog
C : integer; C : = A+B ; ram
Begin End ; Prose
C:=A+B; dure
Writeln ( ‘ Nilai C = ‘, C ) ; Var Stan
End ; X, Y, Z : integer ; dar
BEGIN Use
Var X:=2; s
X,Y : integer ; Y:=3; Crt
BEGIN Hitung ( X, Y, Z ) ; ;
Write ( ‘ Nilai X : ‘ ) ; readln ( X ) ; Writeln ( ‘ X = ‘, X, ‘ Y= ‘, Y, ‘ Z = ‘, Z ) ; Con
Write ( ‘ Nilai Y : ‘ ) ; readln ( Y ) ; Readln ; st
Hitung ( X, Y ) ; END. Bsi
Readln ; ='B
END. ina
Sarana';
Begin
Clrscr;
Writeln(Copy(Bsi,6,4));  mengambil sebagian dari string
Writeln(Pos('Sarana',Bsi));  mencari posisi string
Writeln(Length(Bsi));  panjang string
Writeln(Concat(Bsi,' Informatika'));  mengabungkan string
Readln;
End.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pembahasan 7
FUNGSI

Fungsi secara garis besar sama dengan prosedure baik parameter maupun pemanggilan
parameternya hanya yang membedakannya adalah nama fungsi harus dideklarasikan
dengan type datanya.

Bentuk Umum :

Function Identifier ( daftar_ parameter ) : type data ;

Contoh :
Uses crt ;
Function Hitung ( Var A, B : integer ) : integer ;
Begin
Hitung : = A+B ; Bagian Fungsi
End ;
Var
X, Y : integer ;
BEGIN
Write ( ‘ Nilai X ? ‘ ) ; readln ( X ) ;
Write ( ‘ Nilai Y ? ‘ ) ; readln ( Y ) ; Program Utama
Writeln ;
Writeln ( X, ‘ + ‘, Y , ‘ =’, Hitung ( X, Y )) ;
Readln ;
END.

Parameter pada fungsi sama dengan parameter yang ada pada prosedure yaitu :
a. Pemanggilan secara Nilai ( By Value )
Contoh :
Uses crt ;
Function Hitung ( X, Y, Z : integer ) : integer ;
Begin
Z : = X+Y ;
Writeln ( ‘ Nilai X = ‘, X ) ;
Writeln ( ‘ Nilai Y = ‘, Y ) ;
Writeln ( ‘ Nilai Z = ‘, Z ) ;
End ;
Var
A, B, C : integer ;
BEGIN
A:=5;B:=7;C:=3;
Hitung ( A, B, C ) ;
Writeln ( ‘ Nilai A =’, A, ‘ Nilai B = ‘, B, ‘ Nilai C = ‘, C ) ;
Readln ;

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
END.

c. Pemanggilan secara Reference ( Acuan )


Contoh :
Uses crt ;
Function Hitung ( var A, B, C : integer ) : integer ;
Begin
Hitung : = A+B ;
C:=A*B;
End ;

Var
X, Y, Z : integer ;
BEGIN
Write ( ‘ Nilai X : ‘ ) ; readln ( X ) ;
Write ( ‘ Nilai Y : ) ; readln ( Y ) ;
Writeln ;
Writeln ( X , ‘ + ‘ , Y, ‘=’, Hitung ( X, Y, Z )) ;
Writeln ( X, ‘ * ’,Y, ‘=’, Z ) ;
Readln ;
END.

Contoh Function Standar Aritmatika & Transfer


Uses Crt;
Const A=2; B=-2;
C=4; D=2.5;
E=2.3; F=2.7;
G='A';
Begin
Clrscr;
Writeln('Absnya : ',A, '=' ,Abs(A));  Argumen Mutlak
Writeln('Absnya : ',B, '=' ,Abs(-B));
Writeln('Expnya : ',A, '=' ,Exp(A));  Eksponensial Argumen
Writeln('Lnnya : ',A, '=' ,Ln(A));  Logaritma Natural Argumen
Writeln('Sqrnya : ',A, '=' ,Sqr(A));  Kuadrat Argumen
Writeln('Sqrtnya : ',C,'=' ,Sqrt(C));  Akar Argumen
Writeln('Pinya : ',Pi);  angka Pi=3.14
Writeln('Intnya : ',D, '=' ,Int(D));  bagian bulat angka real
Writeln('Truncnya : ',D, '=' ,Trunc(D));  bagian bulat angka real
Writeln('Fracnya : ',D, '=' ,Frac(D));  bagian pecahan real
Writeln('Roundnya : ',E, '=' ,Round(E));  bulatkan angka real
Writeln('Roundnya : ',F, '=' ,Round(F));
Writeln('Ordnya : ',G, '=' ,Ord(G));  Character ke ordinal
Writeln('Chrnya : ',A, '=' ,Chr(67));  ordinal ke character
Readln;

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
End.

Contoh Dengan Format


Uses Crt;
Const A=2; B=-2;
C=4; D=2.5;
E=2.3; F=2.7;
G='A';
Begin
Clrscr;
Writeln('Absnya : ',A, '=' ,Abs(A));
Writeln('Absnya : ',B, '=' ,Abs(-B));
Writeln('Expnya : ',A, '=' ,Exp(A):5:2);
Writeln('Lnnya : ',A, '=' ,Ln(A):5:2);
Writeln('Sqrnya : ',A, '=' ,Sqr(A));
Writeln('Sqrtnya : ',C,'=' ,Sqrt(C):1:0);
Writeln('Pinya : ',Pi:4:2);
Writeln('Intnya : ',D:3:1, '=' ,Int(D):1:0);
Writeln('Truncnya : ',D:3:1, '=' ,Trunc(D));
Writeln('Fracnya : ',D:3:1, '=' ,Frac(D):3:1);
Writeln('Roundnya : ',E:3:1, '=' ,Round(E));
Writeln('Roundnya : ',F:3:1, '=' ,Round(F));
Writeln('Ordnya : ',G, '=' ,Ord(G));
Writeln('Chrnya : ',A, '=' ,Chr(67));
Readln;
End.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pembahasan 8
ARRAY/ LARIK

Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen komponen yang
mempunyai tipe sama. Komponen tersebut disebut sebagai komponen type, larik
mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik
ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan
menunjukkan nilai indexnya atau subskript.
Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan
tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau
komponenkomponenya mempunyai nilai dengan tipe data tersebut.
Contoh :
var
untai : array[1..50] of integer;
Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer, dengan
jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe
integer.

Dengan kata lain , Array ( larik ) adalah tipe terstruktur yang terdiri dari sejumlah
komponen yang mempuyai tipe sama.

B.U : Array [ 1 . . 20 ] of tipe_data ; (Dimensi 1)


B.U : Array [1 . . 3 , 1 . . 2] of tipe_data; (Dimensi 2)

Contoh Program Array :


Uses crt ;
Var
Nama : array [1..30 ] of string ;
Tugas, uts, uas, absen : array [1..30] of integer ;
Rata : array [1..30] of real ;
x , jd : byte;
BEGIN
CLRSCR ;
Write ( ‘ Masukan Jumlah data : ‘ ) ; readln ( jd ) ;
For x : = 1 to jd do
begin
Writeln ( ‘ ***************************** ‘ ) ;
Writeln ( ‘ PENILAIAN UJIAN MAHASISWA BSI ‘ ) ;
Writeln ( ‘ ***************************** ‘ ) ;
Write ( ‘ Input Nama : ‘ ) ; readln (nama[x]);
Write ( ‘ Input Nilai Tugas : ‘ ) ; readln tugas[x]);
Write ( ‘ Input Nilai Absen : ‘ ) ; readln (absen[x] );
Write ( ‘ Input Nilai UTS : ‘ ) ; readln (uts[x] ) ;
Write ( ‘ Input Nilai UAS : ‘ ) ; readln (uas[x]) ;
Rata[x]:=(0.1*tugas[x])+(0.2*absen[x])+(0.3*uts[x])+(0.4*
uas[x]);
End ;
Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
CLRSCR ;
For i : = 1 to j do
Begin
Writeln ( ‘ ***************************** ‘ ) ;
Writeln ( ‘ PENILAIAN UJIAN MAHASISWA BSI ‘ ) ;
Writeln ( ‘ ***************************** ‘ ) ;
Writeln ( ‘ Nama : ‘ , nama[i] ) ;
Writeln ( ‘ Nilai Tugas : ‘ , tugas[i] ) ;
Writeln ( ‘ Nilai Absen : ‘ , absen[i] ) ;
Writeln ( ‘ Nilai UTS : ‘ , uts[i] ) ;
Writeln ( ‘ Nilai UAS : ‘ , uas[i]) ;
Writeln ( ‘ **************************** ‘ ) ;
Writeln ( ‘ Rata-rata : ‘ , rata : 1: 0 ) ;
Readln ;
End;
END.

Contoh :
Program contoh_array_input;
uses crt;
var
bilangan : array[1..50] of integer;
begin
clrscr;
bilangan[1]:=3;
bilangan[2]:=29;
bilangan[3]:=30;
bilangan[4]:=31;
bilangan[5]:=23;
writeln('nilai varibel bilangan ke 3 =',bilangan[3]);
readln;
end.

Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh
dibawah ini :
Program contoh_deklarasi_array_beragam;
uses crt;
var
NPM : array[1..20] of string[10];
nama : array[1..20] of string[25];
nilai : array[1..20] of real;
umur : array[1..20] of byte;
banyak,i : integer;
begin
clrscr;
write('Isi berapa data array');readln(banyak);

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
for i := 1 to banyak do
begin
write('NPM =');readln(npm[i]);
write('Nama =');readln(nama[i]);
write('Nilai=');readln(nilai[i]);
write('umur =');readln(umur[i]);
end;
{cetak varibel array}
writeln('NPM NAMA NILAI UMUR ');
for i:= 1 to banyak do
begin
writeln(npm[i]:10,nama[i]:25,nilai[i]:3:2,' ',umur[i]:3);
end;
READLN; end.

Untuk deklarasi array dapat digunakan beberapa cara seperti beri kut ini :
Type
Angka =string[20];
Var
nama : array [1..50] of angka;
begin
.
end.

Deklarasi tipe indeks subrange integer


Indeks pada array dapat tipe skalar atau subrange, tetapi tidak bisa real.

Contoh:
var
nilai : array[1..10] of integer;
Pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array tersebut
dapat dideklarasikan dengan type seperti berikut ini :
Type
skala = 1..10;
var
nilai : array [skala] of integer;
atau :
Type
skala = 1..10;
Y = array[skala] of integer;
var
nilai : Y;
atau :
Type
Y = array[1..10] of integer;
var
nilai : Y;

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
Atau :
const
atas =1;
bawah = 5;
type
y = array[atas..bawah] of integer;
var
nilai : y;

I. Deklarasi type indeks skalar


Indeks dari larik dapat berupa tipe skalar.
Contoh :
program deklarasi_indeks_array_skalar;
uses crt;
var
jum : array[(jan,feb,mar,apr,mei)] of integer;
begin
jum[jan]:=25;
jum[feb]:=45;
jum[mar]:=21;
jum[apr]:=23;
jum[mei]:=50;
writeln('Jumlah nilai bulan maret =',jum[mar]);
readln;
end.
dapat juga ditulis :
type
bln = (jan,feb,mar,apr,mei);
Var
jum : array[bln] of integer;
atau :
type
bln =(jan,feb,mar,apr,mei);
var
jum : array[jan..mei] of integer;

II. Deklarasi konstanta array


Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi
variabel, tetapi dapat juga berupa konstanta (const).
Contoh :
program contoh_deklarasi_array_konstan;
uses crt;
const

tetap : array[1..4] of integer=(7,10,21,20);


var
i : integer;

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
begin
for i:= 1 to 4 do
writeln('Nilai Konstan array ke ',i:2,' =',tetap[i]);
readln;
end.
Konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut.
Contoh :
program contoh_konstan_array_char_;
uses crt;
const
huruf : array[0..5] of char=('A','B','C','D','E','F');
VAR
i : integer;
begin
for i:= 0 to 5 do
writeln('Nilai konstan array ke',i:2,' = ',huruf[i]);
readln;
end.
Konstanta array dapat juga berupa string seperti berikut ini.
Contoh :
program constanta_array_string;
uses crt;
type
A = array [1..5] of string;
const
Nama : A = ('basic','pascal','cobol','paradox','dbase');
var
I : integer;
begin
for i:= 1 to 5 do
writeln('Nilai array ke-',i:2,'= ',nama[i]);
readln;
end.

Dalam pascal string merupakan array dari elemen- elemen karakter seperti berikut :
Contoh :
program string_adalah_array_tipe_char;
uses crt;
var

nama : string;
i : integer;
begin
nama:='Turbo Pascal';
for i:= 1 to length(nama) do
writeln('Elemen ',i,' dari ',Nama,'= ',nama[i]);
readln;

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
end.

Contoh program bilangan prima dengan menggunakan bantuan array.


Program mencari_bilangan_prima_dengan_array;
uses crt;
var
prima : array[1..100] of integer;
i,j : integer;
bil : integer;
begin
clrscr;
for i := 2 to 100 do
begin
prima[i]:=i;
for j:= 2 to i-1 do
begin
bil := (i mod j); { i dibagi j dicek apakah 0}
if bil = 0 then prima[i]:=0;
{jika habis dibagi,berarti bkn prima}
end;
if prima[i]<> 0 then write(prima[i],' ');
{cetak array yg prima}
end; readln; end.

Contoh pengurutan data dengan metode buble sort, yaitu dengan cara penukaran, dapat
dilihat pada contoh dibawah ini :
Contoh program :
program penggunaan_array_untuk_sortir_buble_sort;
uses crt;
var
nil1 : array[1..100] of integer;
n,i,j,dum : integer;
begin
clrscr;
write('mau isi berapa data acak (integer) ='); readln(n);
for i := 1 to n do
begin

Write('Data Ke ',i,':');readln(nil1[i]);
end;
{* penyapuan proses}
for i:= 1 to n-1 do
begin
for j:= i to n do
begin
if nil1[j]<nil1[i] then
begin

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
dum:=nil1[j];
nil1[j]:=nil1[i];
nil1[i]:=dum;
end;
end;
end;
writeln;
writeln('Hasil Sortir');
for i := 1 to n do
write(nil1[i]:3);
readln;
end.

III. Array dua dimensi


Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi
banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi
dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris
dan indeks ke dua menunjukkan kolom dari tabel atau matrik.
Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat
pada listing program dibawah ini .
Contoh :
Program deklarasi_array_dua_dimensi;
uses crt;
var
tabel : array[1..3,1..2] of integer;
i,j : integer;
begin
clrscr;
tabel[1,1]:=1;
tabel[1,2]:=2;
tabel[2,1]:=3;
tabel[2,2]:=4;
tabel[3,1]:=5;
tabel[3,2]:=6;
for I := 1 to 3 do
begin
for J:= 1 to 2 do
begin
writeln('Elemen ',i,',',j,'= ',tabel[i,j]);
end;
end;
readln;
end.

IV. Alternatif deklarasi array dua dimensi


Ada beberapa cara dalam mendeklarasikan array dua dimensi, beberapa cara tersebut
dapat dilihat dibawah ini :

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
Contoh :
Var
tabel : array[1..3] of array[1..2] of byte;
atau :
type
matrik = array[1..3,1..2] of byte;
var
tabel : matrik;
atau :
Type
baris = 1..3;
kolom = 1..2;
matrik = array[baris,kolom] of byte;
var
tabel : matrik;
atau :
type
baris = 1..3;
kolom=1..2;
matrik=array[baris] of array[kolom] of byte;
var
tabel : matrik;

Dibawah ini akan diberikan listing program penggunaan array dua dimensi dalam aplikasi
penjumlahan matrik :
Contoh:
Program Penjumlahan_matrik;
uses crt;
var
matrik1,matrik2
, hasil : array[1..3,1..2] of integer;
i,j : integer;
begin
clrscr;
{ input matrik ke satu }
writeln(' Elemen matrik satu');
for i := 1 to 3 do
begin
for j := 1 to 2 do
begin
write('Elemen baris -',i,' kolom -',j,'= ');
readln(matrik1[i,j]);
end;
end;
{input matrik ke dua}
writeln('input elemen matrik dua');
for i:= 1 to 3 do

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
begin
for j:= 1 to 2 do
begin
write('Elemen baris -',i,' kolom -',j,'= ');
readln(matrik2[i,j]);
end;
end;
{proses penjumlahan tiap elemen}
for i := 1 to 3 do
begin
for j:= 1 to 2 do
begin
hasil[i,j]:=matrik1[i,j]+matrik2[i,j];
end;
end;
{proses cetak hasil}
for i:= 1 to 3 do
begin
for j:= 1 to 2 do
begin
write(hasil[i,j]:6);
end;
writeln;
end;
readln;
end.

V. Array sebagai parameter


Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value)
atau secara acuan (by reference) ke procedure atau ke function. Procedure yang
menggunakan parameter berupa array harus dideklara sikan di dalam judul procedure yang
menyebutkan parameternya bertipe array.

Contoh :
program contoh_pengiriman_parameter_array_di_procedure;
uses crt;
const
garis ='---------------------------------------------------
';
type
untai = array[1..10] of string[15];
bulat = array[1..10] of integer;
huruf = array[1..10] of char;
var
i,banyak : integer;
procedure proses(nama:untai;nilai:bulat);
var

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
ket : string;
abjad : char;
begin
writeln(garis);
writeln('Nama Nilai Abjad Keterangan');
writeln(garis);
for i := 1 to banyak do
begin
if nilai[i] > 90 then
begin
abjad:='A';
ket :='Istimewa';
end;
if (nilai[i]<90) and (nilai[i]>70) then
begin
abjad:='B';
ket :='Memuaskan';
end;
if (nilai[i]<70) and (nilai[i]>60) then
begin
abjad:='C';
ket :='Cukup';
end;
if (nilai[i]<60) and (nilai[i]>45) then
begin
abjad:='D';
ket :='Kurang';
end;
if nilai[i]< 45 then
begin
abjad:='E';
ket :='Sangat kurang';
end;
writeln(nama[i]:15,' ',nilai[i]:4,' ',abjad,' ',ket:15);
end;
writeln(garis);
end;
procedure masuk_data;
var
nama : untai;
nilai : bulat;
begin
write('banyak data =');readln(banyak);
for i:= 1 to banyak do
begin
clrscr;
writeln('Data ke - ',i);

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
write('Nama =');readln(nama[i]);
write('Nilai =');readln(nilai[i]);
end;
proses(nama,nilai);
end;
{modul Utama}
begin
masuk_data;
readln;
end.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pembahasan 9
RECORD

Adalah kumpulan item data (field) yang masing-masing dapat mempunyai tipe data yang
beda

Contoh
Type
Lgn= Record
Kode : integer;
Nama : string[35];
Piutang : real;
End;
Var Langganan : Lgn;

Menggunakan Tipe Data Record


Tiap-tiap komponen field dari record dapat dipergunakan dengan cara menuliskan
Pengenalrecord.pengenalfield

Contoh
Langganan.Nama := ’Maulana’ ;
PengenalField
PengenalRecord

Penulisan statemen diatas dapat menyebabkan statement menjadi panjang


Contoh lain :
Lingkaran.Keliling := 2 * Pi * JariJari ;

Menggunakan Statemen With Do menjadi :


With Lingkaran Do
Begin
Keliling := 2 * Pi * JariJari ;
End;

Contoh :
Uses Crt;
Type
Recsis = Record
Nama : string[15];
Nu : byte;
End;
Var DataSis : Array[1..10] of RecSis;
X, JD : Byte ;
Pred : String[6] ;

BEGIN
CLRSCR ;

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
Write( ’ Jumlah Data : ’ ) ; Readln(JD) ;
For X := 1 To JD Do
Begin
Write( ’ Nama Siswa : ’ ) ; ReadLn(Datasis[x].Nama) ;
Write( ’ Nilai Ujian : ’ ) ; ReadLn(Datasis[x].Nu) ;
End;
For X := 1 To JD Do
Begin
With Datasis[X] Do
Begin
IF Nu > 60 Then Pred := ’Lulus’ ;
Else Pred := ’Gagal’ ;
WriteLn(X, ’ ’ , Nama:10, ’ ’ ,Nu:2, ’ ’ , Pred:6);
End;
End;
ReadLn;
END.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pembahasan 10
FILE

Suatu File terdiri dari urutn komponen yang mempunyai tipe sama. Berbeda dengan larik
yang jumlah komponennya sudah pasti, jumlah komponen dalam file sifatnya luwes, yaitu
dapat ditambah dan dikurangi sewaktu-waktu

File Teks
Merupakan file yang berisi kumpulan dari karakter yang dibentuk dalam baris-baris dan
masing-masing baris diakhiri dengan tanda akhir dari baris berupa karakter carriage return
dan karakter line feed. File teks sebenarnya merupakan file dengan tipe char; tetapi
mempunyai perbedaan, yaitu nilai yang bukan tipe char dapat direkam dan dibaca oleh File
Teks

Prosedur Standar File Teks


Append : digunakan untuk membuka file yang telah ada untuk keperluan
menambah data ke dalam file
Write : digunakan untuk merekam data ke file
Flush : digunakan untuk segera merekam data yang ada di buffer ke file Teks
Read : untuk membaca satu atau lebih nilai dari file ke dalam satu atau lebih
variabel
SetTextBuf : digunakan untuk membuat buffer yang baru sebagai pengganti dari
internal buffer untuk file variabel

Fungsi Standar File Teks


EoLn : untuk mengetahui apakah posisi dari file berada di end-of-line marker atau
tidak
SeekEOF : untuk menghasilkan status akhir dari File
SeekEoLn : untuk menghasilkan status akhir baris

Contoh :
Uses Crt ;
Label a,b ;
Var
Vfbarang : text ;
Nabrg : string [20 ];
Hrg : longint ;
Jml : integer ;
X, y : byte ;
Ttl, gth : longint ;
Lagi : char ;
Pil : byte ;
BEGIN
A:
Clrscr ;
Writeln ( ‘ MENU PILIHAN FILE TEXT ‘ ) ;
Writeln ( ‘ 1. Rekam Data File Baru ‘ ) ;
Writeln ( ‘ 2. Tambah Data File ‘ ) ;
Writeln ( ‘ 3. Lihat Data’ ) ;

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin
Writeln ( ‘ 4. Exit’ ) ;
Write ( ‘ Silakan Pilih Menu [ 1/2/3/4 ] : ‘ ); readln ( pil ) ;
Case pil of
1..2 : begin
Assign (vfbarang,’barang.txt’ ) ; { variabel file barang }
IF pil =1 then
Rewrite ( vfbarang )
Else
Append (vfbarang ) ;
Lagi : = ‘Y’ ; X : = 0 ;
While (lagi =’Y’) or (lagi = ‘T’) do
begin
write ( ‘ Nama Barang : ‘ ) ; readln ( nabrg );
write ( ’ Harga Barang : ’ ) ; readln ( hrg ) ;
write ( ’ Jumlah Barang : ’ ) ; readln ( jml ) ;
write ( vfbarang, nabrg:1 5 , hrg : 10, jml : 4 ) ;
write ( ’ Isi Data Lagi [ Y/T ] : ’ ) ; readln ( lagi ) ;
end ;
close (vfbarang) ;
goto a ;
end ;
end;
3 : begin
Assign ( vfbarang , ’ barang.txt ’ ) ;
Reset ( vfbarang ) ;
Writeln(’ DATA PENJUALAN BARANG ’);
Writeln(’**************************************** ’) ;
Writeln(’No Nama Barang Harga Jumlah Total ’ ) ;
Writeln(’*************************************** ’ ) ;
{ proses dan cetak data detail }
y : = 0 ; fth : = 0 ;
While not eof ( vfbarang ) do
Begin
Read ( vfbarang, nabrg, hrg, jml ) ;
Total : = hrg * jml ;
gth : = gth + ttl ;
Inc ( y) ;
Write (y, ’ ’ ,nabar:15, ’ ’ ,hrg:7,’ ’,jml:3, ’ ’,ttl) ;
End ;
{ garis penutup subtotal }
Writeln(’**************************************** ’ ) ;
Writeln (’Grand Total: Rp. ’, gth ) ;
Writeln(’**************************************** ’ ) ;
Close(vfbarang ) ;
Readln ;
goto a ;
end ;
4 : Goto b ;
End ;
Readln ;
b:
END.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

File Bertipe
Berbeda dengan file teks yang hanya dapat diakses secara urut, file bertipe disamping dapt
pulajuga diakses secara urut(sequential acces, dapat juga diakses secara aaak (randam
access). Dan Tipe dari file bertipe dapat berupa tipe integer, real, char, string array, record

Write : digunakan untuk merekam satu atau lebih nilai ke dalam file
Read : digunakan untuk membaca atau lebih, nilai dari file
Seek : Digunkan untuk mengarahkan penunjuk file ke suatu komponen tertentu di
dalam file
Trunccate : digunakan untuk menghapus sejumlah komponen atau record mulai dari
posisi record tertentu
FileSize : digunakan untuk menghasilkan jumlah dari komponen atau record

Contoh Program Bertipe Input Data


Uses Crt;
Type MHS = Record
NM : string[15];
UTS,UAS : byte;
End;
Var FileMHS : File of MHS;
RecMHS : MHS;
No, Bts, JD, T, RN : Byte;
BEGIN
CLRSCR;
Write('Jumlah Data : '); ReadLn(JD);
Assign(FileMHS,'C:\MHS.DAT');
ReWrite(FileMHS);
For No := 1 To JD Do
Begin
With RecMHS Do
Begin
Write('Nama : '); ReadLn(NM);
Write('UTS : '); ReadLn(UTS);
Write('UAS : '); ReadLn(UAS);
End;
Write(FileMHS,RecMHS);
End;
Close(FileMHS);
ReadLn;
END.
Lalu disimpan

Contoh Program Bertipe Tampil Data


Uses Crt;
Procedure Judul;
Begin
WriteLn('DAFTAR NILAI MAHASISWA');
WriteLn('--------------------------------------------------------------------');
WriteLn('No. Nama Mahasiswa UTS UAS Total Rata Predikat Kelulusan');
WriteLn('--------------------------------------------------------------------');
End;

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Type MHS=Record
NM : string[15];
UTS,UAS : byte;
End;
Var FileMHS : File of MHS;
RecMHS : MHS;
No,Brs,JD,T,R,RN : byte;
P : string[10];
K : string[5];
BEGIN
CLRSCR;
Judul;
Assign(FileMHS,'C:\MHS.DAT');
Reset(FileMHS);
No:=0;
While Not EOF (FileMHS) Do
Begin
With RecMHS Do
Begin
Read(FileMHS,RecMHS);
T:= UTS+UAS; R:= T div 2; inc(No);
Case R of
00..59 : P:='Kurang';
60..74 : P:='Cukup';
75..84 : P:='Baik';
85..100: P:='Amat Baik';
End;
IF R<60 Then K:='Gagal' Else K:='Lulus';
WriteLn(No:3,' ',NM:15,' ',UTS:3,' ',UAS:3,' ',T:3,' ',R:3,' ',P:10,' ',K:5);
End;
End;
ReadLn;
Close(FileMHS);
END.

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom
Upload at http://www.ichensthea.co.cc/2010/11/modul-pascal-untuk-siswa-smk-kelas-x.html
by: Defy Muhammad Aminuddin

Pembahansan 11
PEMBUATAN UNIT BARU

Contoh Program Pembentukan Unitku


Unit Unitku;

Interface
Uses Crt;
Procedure Bersihkan;
Function Ls3(A,T:Integer):Real;

Implementation
Procedure Bersihkan;
Begin
Clrscr;
End;

Function Ls3(A,T:Integer):Real;
Begin
Ls3:=A*T/2;
End;
End
Lalu simpan

Contoh Program Pemakaian Unit Baru


Uses Unitku;
Var A,T :Integer;
Begin
Bersihkan;
Write('Nilai Alas :');Readln(A);
Write('Nilai Tinggi :');Readln(T);
Write('Luas Segitiga :',Ls3(A,T):5:1);
Readln;
End..

Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom

Anda mungkin juga menyukai