Modul Pascal
Modul Pascal
Field_n : tipe_data_n
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
97
End;
Var variabel : nama_record;
Pada pendeklarasian di atas, maksudnya adalah sebagai berikut : variabel B
berupa record dengan dua elemen yaitu X bertipe integer dan Y bertipe real.
Untuk mengakses elemen dari variabel B seperti berikut :
-6nama_/ariabel
contoh :
-6< "3 1$;
Untuk lebih jelasnya perhatikan program berikut :
Program Contoh_Re(ord;
Uses Crt;
&-4e mahasiswa1record
nim*string7M9;
nama*string7189;
n1n!nE*integer;
end;
3ar a *mahasiswa;
rata *real;
huru;*char;
ket *string7!09;
#egin
Clr%cr;
teJtcolor(1@);
write($0(' *$);readln(a/nim);
write($0ama *$);readln(a/nama);
write($0ilai 1*$);readln(a/n1);
write($0ilai !*$);readln(a/n!);
write($0ilai E*$);readln(a/nE);
rata*1(a/n16a/n!6a/nE)QE;
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
98
i; ((rata K1 0) and (rataP1 @0)) then
begin
huru;*1$D$;
ket *1$%angat &idak #aik$;
end;
i; ((rata K @0) and (rataP1 B0)) then
begin
huru;*1$)$;
ket *1$&idak #aik$;
end;
i; ((rata K B0) and (rataP1 28)) then
begin
huru;*1$C$;
ket *1$#aik$;
end;
i; ((rata K 28) and (rataP1 F8)) then
begin
huru;*1$#$;
ket *1$%angat #aik$;
end;
i; ((rata K F8) and (rataP1 100)) then
begin
huru;*1$,$;
ket *1$%angat #aik %ekali$;
end;
Clrscr;
teJtcolor(11);
writeln($)ata 'ahasiswa$);
writeln($0(' *$$ $a/nim);
writeln($0ama 'ahasiswa *$$ $a/nama);
writeln($0ilai <ata:rata *$$ $rata*E*!);
writeln($0ilai =uru; *$$ $huru;);
writeln($"eterangan *$$ $ket);
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
99
readln;
end/
Daftar Pustaka :
http://beeography.modblog.com
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
100
Latihan
1.Buatlah Program untuk menentukan nilai maksimum dan nilai
minimum dari suatu deretan angka yang anda masukkan
2.Buatlah program untuk menghitung Gaji Karyawan dengan ketentuan
sebagai berikut :
Tampilan Program Sebagai berikut :
Procedure Input_Data
Banyak Data :
Data Ke :
NIP :
Nama Pegawai :
Jabatan :
Jenis Kelamin :
Status Perkawinan :
Jumlah anak :
Jumlah Hari Kerja :
Procedure Cetak_Data
REKAPITULASI GAJI PEGAWAI PT. SEJAHTERA
NIP
Nama
Pegawai
Gaji
Pokok
Tunjangan
Jabatan
Tunjangan
Istri
Tunjangan
Anak
Uang
Makan
Uang
transport
Gaji
Bersih
Procedure Tampil_Menu
Program Perhitungan Gaji Karyawan PT. Sejahtera
[1] Input Data[2] Cetak Data [3] Keluar
Masukkan Pilihan Anda :
Pegawai di PT. Sejahtera dibagi dalam tiga golongan yaitu
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
101
Jabatan Gaji Pokok
Tunjangan
Jabatan
Tunjangan
Istri
Tunjangan
Anak
Uang
Makan/hari
Uang
transport
/hari
Direktur 1000000 3% 2.5% 2.5% 15000 12500
Staf 750000 2% 2.5% 2.5% 12500 10000
Karyawan 645000 1% 2.5% 2.5% 10000 7500
Jumlah anak yang mendapat tunjangan maksimal 2 orang anak
Tunjangan istri hanya diberikan jika pegawai berjenis kelamin P
Tunjangan istri dan anak hanya diberikan bagi pegawai yang sudah menikah
U_Makan = Uang Makan/hari * Jumlah hari kerja
U_Transport= Uang Transport/hari * Jumlah hari kerja
Gaji kotor = gaji pokok + T_Anak+T_Istri+T_Jabatan+U_Makan+U_Transport
Gaji Bersih = gaji kotor PPh (2.5% * gaji kotor)
Jenis Kelamin = P : Pria dan W : Wanita
Status Perkawinan = 1 : Menikah dan 2 : Belum Menikah
Buatlah program aplikasi untuk menghitung gaji masing-masing pegawai
diatas
3.Buatlah Program untuk operasi matrik ordo 2 x 2 :
a.Pertambahan Matrik
b.Pengurangan Matrik
c.Transpose Matrik
d.Perkalian Matrik
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
102
A. Tipe Data Record
B. Sorting
Ada 3 metode pengurutan data yang digunakan yaitu :
a.Bubble Sort
Teknik mengurutkan data dengan cara membandingkan data yang ada. Metode
ini merupakan metode yang paling sederhana tetapi lambat.
Contoh :
Program Contoh_&)bble;ort;
5"e" Crt;
$ar nilai%arra( 81..1<<9 o/ integer;
i'n':'t %integer;
Begin
Clr6#r;
te)t#olor(12);
*rite(+@umla3 Data %+);realn(n);
/or i%1 1 to n o begin
realn(nilai8i9);
en;
Clr6#r;
/or i%1 1 to nE1 o begin
/or :%1 i?1 to n o begin
i/ nilai8i9 0 nilai8:9 t3en begin
t%1nilai8i9;
nilai8i9%1nilai8:9;
nilai8:9%1t;
en;
en;
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
103
BAB VII RECORD (REKAMAN)
en;
*riteln;
Writeln(+-ilai Fang ;ela3 Diurut&an .ala3 %+);
/or i%1 1 to n o
*rite(nilai8i9'+ +);
realn;
en.
b.Shell Sort
Prinsipnya sama dengan bubble sort, hanya saja dilakukan optimalisasi
sehingga lebih cepat. Metode ini dilakukan dengan membandingkan jarak antar
data.
Contoh :
Program Contoh_;hell;ort;
5"e" Crt;
$ar nilai%arra( 81..1<<9 o/ integer;
i'n':'t %integer;
Begin
Clr6#r;
te)t#olor(12);
*rite(+@umla3 Data %+);realn(n);
/or i%1 1 to n o begin
realn(nilai8i9);
en;
/or :%1 (n iG 2) o*nto 1 o
/or i%1 1 to nE: o
i/ nilai8i9 0 nilai8i?:9 t3en begin
t%1nilai8i9;
nilai8i9%1nilai8i?:9;
nilai8H?:9%1t;
en;
*riteln;
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
104
Writeln(+-ilai Fang ;ela3 Diurut&an .ala3 %+);
/or i%1 1 to n o
*rite(nilai8i9'+ +);
realn;
en.
c.Quick Sort
Metode ini dilakukan dengan metode rekursi sampai habis. Dimana data dibagi
menjadi dua dan data tengah berfungsi sebagai pivot (pusat operasi). Data
dengan nilai rendah akan berada disebelah kiri pivot dan data dengan nilai
tinggi akan berada disebelah kanan pivot. Metode ini merupakan metode
paling rumit namun paling cepat dalam mengurutkan data.
Contoh :
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
105
'ro(ed)re <sort(ba$ah2 atas : integer)
Gar &iri' &anan' AiGot % integer;
begin
AiGot%1Data8(ba*a3?ata") iG 29;
&iri%1ba*a3;
&anan%1ata";
*3ile &iriI1&anan o
begin
*3ile Data8&iri9 I AiGot o &iri%1&iri?1; J memi"a3&an &e
&iri K
*3ile Data8&anan90AiGot o &anan%1&ananE1;J,emi"a3&an &e
&ananK
i/ &iriI1&anan t3en J #3e& Aeruba3an K
begin
"*aA Data8&iri9 *it3 Data8&anan9;
&iri%1&iri?1;
&anan%1&ananE1;
en;
en;
i/ &anan0ba*a3 t3en L"ort(ba*a3'&anan);J urut&an bagian
CHRH K
i/ ata"0&iri t3en L"ort(&iri 'ata");J urut&an bagian C.-.-K
en;
Pemangilan dalam program utama : qsort(1,NumberOfData);
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
106
d.
Bab ini akan mempelajari bagaimana menyimpan suatu data dalam disk. Ada
tiga cara untuk menangani fle :
a.Text File
Pembacaan fle dilakukan secara berurutan.
b.Typed File
Pembacaan dilakukan secara acak, sesuai dengan keinginan user dan tidajk
harus dari awal fle. Ciri khas fle ini tipe flenya dinyatakan dengan fle of
yang diikuti oleh tipe komponen dari fle.
c.Untyped File
File ini tidak mengansumsi apa-apa tentang tipe datanya. Bila anda ingin
membaca atau menulis fle jenis untyped fle diperlukan perintah khusus
yaitu blockwrite dan blockread.
Berikut ini adalah beberapa perintah yang digunakan untuk pembacaan fle :
Perintah Keterangan Sintaks Penulisan
Assign Untuk memberi nama bagi
txtfle
.""ign
(t)t/ile'Conto3.t)t);
Rewrite Digunakan bila dipakai
sebagai output baru
Re*rite (t)t/ile);
Append Digunakan untuk membuka
kembali jika akan dipakai
sebagai output baru
.AAen(t)t/ile);
Reset Digunakan jika dibaca
sebagai input
Re"et(t)t/ile);
Read Untuk membaca isi fle
yang telah di-assign
sebelumnya
Rea (t)t/ile);
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
107
BAB VIII FILE
Close Digunakan untuk menutup
fle
Clo"e(t)t/ile);
EOF (end Of
File)
Bernilai true jika penunjuk
fle berada diakhir fle
!BM(t)t/ile);
EOFLn (End Of
Line)
Bernilai true jika penunjuk
fle berada di akhir baris
!BM4n(t)t/ile);
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
108
Contoh Program Pengelolaan File :
a.Membaca fle dan menampilkan dilayar
Program &a(a_!ile_#e9t;
5"e" Crt;
Gar /ile&u%te)t;
nama %"tring;
" %"tring;
begin
#lr"#r;
*rite(+-ama Mile (ang a&an iba#a %+);
realn(nama);
a""ign(/ile&u'nama);
re"et(/ile&u);
*3ile not !BM(/ile&u) o begin
realn(/ile&u'");
*riteln(");
en;
#lo"e(/ile&u);
realn;
en.
b.Membuat fle baru
Program &)at_!ile_#e9t;
5"e" Crt;
Gar /ile&u%te)t;
nama %"tring;
" %"tring;
begin
#lr"#r;
*rite(+-ama Mile (ang a&an ibuat %+);
realn(nama);
a""ign(/ile&u'nama);
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
109
re*rite(/ile&u);
*riteln(+,ulai ,enuli"+);
*riteln(;e&an enter N "Aa"i untu& ber3enti);
*3ile "I0+ + o begin
realn(");
*riteln(/ile&u'");
en;
#lo"e(/ile&u);
realn;
en.
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
110
c.Menambahkan isi fle pada fle yang sudah ada
Program #ambah_8si_!ile_#e9t;
5"e" Crt;
Gar /ile&u%te)t;
nama %"tring;
" %"tring;
begin
#lr"#r;
*rite(+-ama Mile (ang a&an ibuat %+);
realn(nama);
a""ign(/ile&u'nama);
aAAen(/ile&u);
*riteln(+,ulai ,enuli"+);
*3ile "I0+ + o begin
realn(");
*riteln(/ile&u'");
en;
#lo"e(/ile&u);
realn;
en.
d.Membuat fle bertipe atau Typed File
Program !ile_#6'ed;
5"e" Crt;
;(Ae "1<1"tring81<9;
Gar t)t/ile %te)t;
"tring/ile%/ile o/ "1<;
" %"1<;
begin
Clr6#r;
*riteln(+Re*riting outAut.t)t+);
a""ign(t)t/ile'+outAut.t)t+);
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
111
re*rite(t)t/ile);
*riteln(+Re*riting outAut.rt/+);
a""ign("tring/ile'+outAut.rt/+);
re*rite("tring/ile);
"%1+P.6C.4+;
*riteln(+,en(imAan ata &e
outAut.t)t+);*rite(t)t/ile'");
*riteln(+,en(imAan ata &e
outAut.rt/+);*rite("tring/ile'");
#lo"e(t)t/ile);
#lo"e("tring/ile);
realn;
en.
e.Jhgh
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
112
DAFTAR PUSTAKA
Hartono, Jogianto, 1989, Teori dan Aplikasi Program Komputer Bahasa Turbo Pascal,
Yogyakarta, Andi
Raharjo, Budi, 2005, Teknik Pemrograman Pascal, Informatika, Bandung
Pardosi, Mico, 1999, Bahasa Pemrograman Turbo Pascal 7.0, Surabaya, Penerbit
Indah.
http://sipil.uns.ac.id/kulol/bahasa_komputer
http://www.boxpascal.110mb.com/Contoh%20Program%20Pascal.html
http://www.hu.freepascal.org/faq.html.id
http://yogyafree.net/forum2/viewtopic.php?f=8&t=8240
http://rosihanari.net/programming-pascal.php
(14 Januari 2009 pukul 16.00)
http://www.a-rang.info
http://materi-praktek.blogspot.com/2007/03/bab-1-mengenal-tampilan-turbo-
pascal.html
http://rosihanari.net/programming-pascal.php
http://www.dwisanjaya.com/downloads.htm
Modul Bahasa Pemrograman I (Pascal) STMIK Duta Bangsa Surakarta
113