Modul Pemrograman Pascal
Modul Pemrograman Pascal
MODUL
Pemrograman Pascal
Sejarah Pascal – Struktur – Branching – Pengulangan – Himpunan – Record – File -
Array
Bahasa Pascal merupakan bahasa yang sangat populer di dunia, terlebih karena
digunakan sebagai bahasa untuk mengajarkan pemrograman terstruktur bagi
para SISWA
di pelbagai perguruan tinggi, baik di Indonesia maupun negara lainnya. Sebagai
bahasa pemrograman yang terstruktur, bahasa ini menyediakan sejumlah kontrol
(berupa REPEAT, WHILE dan FOR) serta mendukung pembuatan program yang
tersusun atas sejumlah blokblok
kecil (yang dikenal dengan sebutan rutin pada berbagai bahasa pemrograman).
Blok-blok kecil ini dapat dipakai untuk membentuk blok yang lebih besar, dan
secara keseluruhan membentuk program kerja. Keuntungan dari pemrograman
terstruktur, program mudah dibuat, dipahami dan dikembangkan.
Pencipta bahasa Pascal adalah Niklaus Wirth (EidgenOssische Technishe
Hochshule, Zurich, Swiss). Nama Pascal sendiri diambil untuk mengenang dan
mengabadikan seorang matematikawan Perancis bernama Blaise Pascal (1623-
1662), penemu mesin penjumlah mekanis yang pertama kali.
Bahasa Pascal lahir sebagai hasil pengembangan dari bahasa ALGOL-60. Versi
pertama Pascal muncul pada tahun 1970 dan laporan pertama mengenai bahasa
ini baru dipublikasikan pada tahun 1971. Pada tahun 1974, buku berjudul Pascal
User Manual and Report dipublikasikan. Buku ini ditulis oleh Niklaus Wirth dan
Kathleen Jensen.
Kepopuleran Pascal berkembang seiring dengan berkembangnya PC. Pada
platform ini terdapat sejumlah kompiler Pascal. Salah satunya Turbo Pascal,
yang dikeluarkan oleh Borland International. Turbo Pascal telah mengalami
perubahan semenjak versinya yang
pertama. Tercatat pada tahun 1992, Turbo Pascal For Windows telah dirilis.
Yang menarik, Turbo Pascal bukanlah sekedar kompiler. Turbo Pascal
menyediakan suatu lingkungan terpadu (dikenal dengan sebutan IDE, Integrated
Development Environment), yang diantaranya berisi :
Kompiler (untuk mengkompilasi program menjadi suatu objek yang
dipahami oleh komputer)
Debugger (untuk mencari kesalahan program)
Linker (untuk menggabungkan file objek dan file pustaka serta
membentuk file executable)
Editor (untuk menulis program sumber)
Contoh Program
Listing Programnya
Uses WinCrt;
Begin
WriteLn( ‘Saya’ );
Write( ‘Belajar’ );
WriteLn( ‘Turbo’ );
Write( ‘Pascal’ );
Write( ‘For Windows’ );
End.
Hasilnya :
Saya
Belajar Turbo
Pascal For Windows
Tugas:
Buatlah Program cetak dilayar Biodata diri anda
Identifier/Pengenal Data
Digunakan untuk penamaan elemen-elemen deklarasi seperti Label, Constanta,
type, variabel, procedure, function
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 Ujang Wahyudi
Deklarasi Type
Pengenal (identifier) dari data yang digunakan harus diperkenalkan Tipenya. Jika
ingin menggunakan tipe data dengan nama yang dibuat oleh pemakai, maka
harus disebutkan tipe data standarnya.
Deklarasi Label
Deklarasi label digunakan untuk melompati beberapa perintah program. Memiliki
arah dan tujuan yaitu dengan menggunakan GOTO
Tugas :
PROGRAM DGN_LABEL; Contoh Tipe Dalam Program
USES WINCRT;
LABEL A,B,C; USES WINCRT;
BEGIN TYPE Pecahan = Real;
CLRSCR; Bulat = Integer;
WRITELN(‘TEXT1’); GOTO A; VAR A,T : Bulat;
LS3 : Pecahan;
WRITELN(‘TEXT2’); BEGIN
A:WRITELN(‘TEXT3’); GOTO B; CLRSCR;
WRITE(‘Masukkan Nilai Alas : ‘);
WRITELN(‘TEXT4’);
READLN(A);
B:WRITELN(‘TEXT5’); GOTO C;
WRITE(‘Masukkan Nilai Tinggi : ‘);
WRITELN(‘TEXT6’);
READLN(T);
C:READLN; LS3:=(A*T)/2;
END. WRITELN(‘Luas Segitiga:’,LS3:8:1);
READLN;
Hasilnya
END.
TEXT1
TEXT3
Tugas
TEXT5Program
1. Rubah Program Labelnya dgn Layout sbb
TEXT2 TEXT4 TEXT6
2. Buat luas dan Keliling lingkaran dengan menggunakan deklarasi type dan Var
Tampilan Terformat
Untuk mengatur bentuk tampilan dari tampilan default ke bentuk yang diinginkan
atau Batasan cetak
Parameter Char:n
Batasan cetak/ bentuk tampilan/ jarak tampil data char
Parameter String:n
Batasan cetak/ bentuk tampilan/ jarak tampil data string
Parameter Boolean:n
Batasan cetak/ bentuk tampilan/ jarak tampil data Boolean
Parameter Integer:n
Batasan cetak/ bentuk tampilan/ jarak tampil data Integer
Parameter Real:n:m
Batasan cetak/ bentuk tampilan/ jarak tampil data Real
Uses WinCrt;
Const Kampus=‘PPKM’; {Tipe String}
Nrata=2.5; {Tipe Real}
Ntotal=55; {Tipe Integer}
Cek =True; {Tipe Boolean}
Huruf =‘A’; {Tipe Char}
BEGIN Hasilnya :
Clrscr;
Writeln(‘Nama Kampus :’,Kampus); Nama Kampus :PPKM
Writeln(‘Nama Kampus :’,Kampus:3); Nama Kampus :PPKM
Writeln(‘Nama Kampus :’,Kampus:6); Nama Kampus : PPKM
Writeln(‘Nilai Rata :’,Nrata); Nilai Rata :2.500000e+00
Writeln(‘Nilai Rata :’,Nrata:3:0); Nilai Rata :3
Writeln(‘Nilai Rata :’,Nrata:6:1); Nilai Rata : 2.5
Writeln(‘Nilai Total :’,Ntotal:2);
Nilai Total :55
Writeln(‘Nilai Total :’,Ntotal:5);
Nilai Total : 55
Writeln(‘Cek Boolean :’,Cek);
Writeln(‘Cek Boolean :’,Cek:7); Cek Boolean :True
Writeln(‘Huruf Abjad :’,Huruf); Cek Boolean : True
Writeln(‘Huruf Abjad :’,Huruf:3); Huruf Abjad :A
Readln; Huruf Abjad : A
End.
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
Bentuk Umum : If <Kondisi1> Then <Statement1>
Else If <Kondisi2> Then <Statement2>
Else <Statement3>;
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;
Tugas :
1. Buat deret bilangan ganjil dan deret bilangan genap
2. Buatlah deret bilangan Fibonanci 1 1 2 3 5 8 13 21 34 55
3. Buatlah deret
12345 b. 1 c. 5 d. 1 2 3 4 5
1234 12 45 2345
123 123 345 345
12 1234 2345 45
1 12345 12345 5
4. Buatlah deret
1.2 1.4 1.6 1.8
2.2 2.4 2.6 2.8
Himpunan termasuk salah satu tipe data terstruktur,yang terdiri dari sejumlah
elemen yang bertipe data sama.
Pendefinisian tipe data himpunana diawali dengan kata tercadang Set dan
Of,kemudian didikuti dengan tipe elemen.
Himp1 <= Himp2 Hasil bernilai True jika semua elemen dari Himp1
terdapat pada Himp2
Himp1 >= Himp2 Hasil bernilai True jika semua elemen dari Himp2
terdapat pada Himp1
Elemen In Himp Memeriksa elemen adalah anggota himpunan Himp
atau tidak.Hasil true jika elemen adalah anggota dari
Himp
Array ( larik ) adalah tipe terstruktur yang terdiri dari sejumlah komponen yang
mempuyai tipe sama.
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.
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 WinCrt ;
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 WinCrt ;
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 ;
END.
c. Pemanggilan secara Reference ( Acuan )
Contoh :
Uses WinCrt ;
Function Hitung ( var A, B, C : integer ) : integer ;
Begin
Hitung : = A+B ;
C:=A*B;
End ;
Modul Pemrograman Pascal 15
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.
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
BEGIN
CLRSCR ;
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.
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 WinCrt ;
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’ ) ;
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
Modul Pemrograman Pascal 18
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.
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 acak (random 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 WinCrt;
Type MHS = Record
NM : string[15];
UTS,UAS : byte;
End;
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.
Interface
Uses WinCrt;
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