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
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 untuk menampilkan atau cetak dilayar monitor tanpa pindah baris
WriteLn( ‘Text/Tulisan’,Variabel);
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
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
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
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*}
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
Statement IF
Bentuk Umum : If <Kondisi> Then <Statement>;
contoh : IF N>=60 Then Ket:=‘Lulus’;
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>;
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.
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;
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}
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)
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
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
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.
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 .
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 .
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.
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
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 :
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.
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.
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.
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.
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.
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;
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 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.
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.
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;
Contoh
Langganan.Nama := ’Maulana’ ;
PengenalField
PengenalRecord
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
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
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
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
Modul Pascal by: Siti Nur Elia Lailasari, ST Kelas X RPL SMK MedikaCom