Pascal
Pascal
PEMROGRAMAN PASCAL
Didasarkan pada Turbo Pascal 7.0
Penyusun
Daftar Isi
Winner vs. Looser....................................................................... ii
Kata Pengantar........................................................................... iii
Daftar Isi..................................................................................... iv
1. Struktur Dasar Bahasa Pascal ...................................... 1
2. Struktur Kendali Aliran .................................................. 10
3. Struktur Perulangan....................................................... 17
4. Prosedur dan Fungsi ..................................................... 23
5. Array................................................................................ 29
6. Record............................................................................. 34
7. Unit .................................................................................. 38
8. File................................................................................... 41
Praktikum
1
Struktur Dasar Bahasa Pascal
Tujuan:
• Praktikan mampu menjelaskan tentang langkah-langkah pembuatan program hingga
menghasilkan program yang bisa dieksekusi dari lingkungan MS-DOS secara langsung
• Praktikan mengerti pendeklarasian constanta, type, variable mampu menggunakannya
dalam pembuatan program.
Persiapan
Menjalankan program Pascal, mengikuti percobaan yang diberikan
sesuai dengan urutannya. Mengerjakan Latihan-latihan yang diberikan.
Pekerjaan
Mengetikkan program sederhana dengan menggunakan type, constanta,
dan variable seperti pada percobaan.
Teori
S ebuah program Pascal berisi kepala program, anak kalimat uses (tidak
harus ada), serta blok pengumuman dan pernyataan. Kepala program
menunjukkan nama program. Anak kalimat uses menggunakan unit-unit
yang dipakai oleh program tersebut. Bagian terakhir merupakan blok
yang berisi pengumuman san pernyataan yang akan dijalankan.
Setiap program Pascal mempunyai susunan sebagai berikut:
Program Nama_Program;
uses
. . . {Unit-unit yang dipakai} ;
label
. . . {label-label yang dipakai } ;
const
. . . {pengumuman tetapan-tetapan} ;
type
. . . { pengumuman tipe-tipe data };
Modul 1 – Struktur Dasar Bahasa Pascal 1-6
var
. . . { pengumuman peubah-peubah };
procedure Nama_Prosedur;
begin
. . .
end;
Function Nama_Fungsi;
begin
. . .
end;
{ Program utama }
begin
. . .
end.
operator
A* 2+5 expression
s
operand
Percobaan
Salinlah program berikut ini :
program P0101;
{ program untuk menampilkan data diri }
uses Crt;
var
nama, alamat,hobby: string;
{ program utama }
begin
Writeln(' Program Penampil Data Diri ');
Modul 1 – Struktur Dasar Bahasa Pascal 1-7
Writeln('********************************');
Write('Masukkan Nama : ');
Readln(nama);
Write('Masukkan Alamat : ');
Readln(alamat);
Write('Masukkan Hobby : ');
Readln(hobby);
Writeln;
Writeln('Hallo ',nama,' !!! kamu tinggal di ',
alamat, ' dan Hobbymu adalah ',hobby);
Readln;
end.
program P0102;
{ program untuk Menghitung Luas Lingkaran }
uses Crt;
const
phi=3.14159;
var
luas, jejari: Real;
begin
Writeln('Program Menghitung Luas Lingkaran ');
Writeln('******************************************');
Write('Masukkan Jari-jari Lingkaran : ');
Readln(jejari);
luas := phi * sqr(jejari);
Writeln('Luas Lingkaran adalah : ', round(luas));
Readln;
end.
Latihan
Latihan 1.1
Lengkapilah program P0102.PAS di atas untuk menghitung keliling
lingkaran.
Latihan 1.2
Buatlah program untuk menentukan hasil penjumlahan atau
pengurangan dari 2 bilangan bulat.
Modul 1 – Struktur Dasar Bahasa Pascal 1-9
Latihan 1.3
Buatlah Program untuk menentukan hasil dari pembagian bulat dan sisa
pembagian bulat dari 2 bilangan bulat.
Laporan
Laporan 1.1
Buatlah kesimpulan dari kegiatan praktikum 1 ini.
Laporan 1.2
Jelaskan perbedaan antara
a. Write dan Writeln
b. Read dan Readln
Laporan 1.3
Buatlah program yang menampilkan data mahasiswa berupa NRP,
Nama, Nilai Tugas, Nilai UTS, Nilai UAS dan Total Nilai.
Praktikum
2
Struktur Kendali Aliran
Tujuan:
• Bila diberikan kasus sederhana yang memerlukan alur terkondisi, mahasiswa mampu
membuat program untuk memecahkan kasus tersebut dalam Bahasa Pascal.
Persiapan
Menjalankan Program Turbo Pascal, mengikuti percobaan yang
diberikan sesuai dengan urutannya. Mengerjakan latihan-latihan yang
diberikan.
Pekerjaan
Mengetikkan coding dengan menggunakan struktur kendali if dan case,
menjalankannya, dan menganalisa hasil.
3. If dan else
If (kondisi) then
begin
pernyataan1 ;
pernyataan2 ;
…..
end
else
begin
pernyataan1 ;
pernyataan2 ;
…..
end;
program P0201;
var
Modul 2 – Struktur Kendali Aliran 2-12
case <peubah> of
tetapan1: pernyataan1;
tetapan2: begin
pernyataan1;
pernyataan2;
…
end;
tetapan3, tetapan4: pernyataan1;
tetapan5 .. tetapan8: pernyataan1;
else pernyataan1;
Modul 2 – Struktur Kendali Aliran 2-13
end;
program P0202;
var
alas, tinggi, jejari, luas: Real;
pilih: Integer;
begin
Writeln('1. Segitiga 2. Lingkaran');
Readln(pilih);
case pilih of
1: begin
Readln(alas, tinggi);
luas := 1 / 2 * alas * tinggi;
Writeln('Luas Segitiga : ', luas);
End;
2: begin
Readln(jejari);
luas := pi * Sqr(jejari);
Writeln('Luas Segitiga : ', luas);
end;
end;
Readln;
end.
Latihan
Latihan 2.1
Ubah program P0203, tambahkan sehingga :
• nilai yang diinputkan ada tiga macam yaitu : nilai Tugas, nilai UTS
dan Nilai UAS.
• Untuk perhitungan grade didapatkan dari nilai akhir dengan
perhitungan :
• Nilai akhir = (2 * nilai UAS + nilai Tugas + nilai UTS) / 4
• Data mahasiswa yang ditampilkan dalam huruf besar, meskipun
dalam pengisian awal menggunakan huruf kecil.
• Tampilkan juga apakah mahasiswa tersebut LULUS atau TIDAK
LULUS dengan ketentuan jika grade dari mahasiswa "D" maka ia
TIDAK LULUS selain itu maka ia LULUS.
Latihan 2.2
Tambahkan dari program no. 1 username dan password, sehingga ketika
pengguna mengisi data username dan password, dan jika tidak sesuai
dengan yang ada pada listing maka pemakai tidak dapat melakukan
proses selanjutnya, dan munculkan teks "username atau password yang
Anda inputkan salah !!"
Latihan 2.3
Buatlah program untuk menentukan apakah nilai yang diinputkan
genap atau ganjil.
Laporan
Laporan 2.1
Buat kesimpulan untuk praktikum hari ini.
Laporan 2.2
Buatlah program untuk menentukan bilangan terbesar dan bilangan
terkecil dari tiga buah masukan angka.
Modul 2 – Struktur Kendali Aliran 2-16
Laporan 2.3
Buatlah program kalkulator sederhana dengan memberikan pilihan bagi
pengguna. Operasi-operasinya meliputi : penjumlahan, pengurangan,
perkalian, pembagian, sisa hasil bagi dan pangkat.
Praktikum
3
Struktur Perulangan
Tujuan:
• Bila diberikan kasus sederhana yang memerlukan alur berulang, mahasiswa akan mampu
membuat program untuk memecahkan kasus tersebut dalam Bahasa Pascal, untuk setiap
perulangan.
Persiapan
Menjalankan Program Turbo Pascal, mengikuti percobaan yang
diberikan sesuai dengan urutannya. Mengerjakan latihan-latihan yang
diberikan.
Pekerjaan
Mengetikkan coding dengan menggunakan struktur perulangan repeat,
while, dan for, menjalankannya, dan menganalisa hasil.
Pengendalian Perulangan
program P0301;
var
I, Panjang: Integer;
Kata, Balik: string;
begin
Writeln('Balik Kalimat');
Writeln('=============');
Write('Masukkan kalimat : ');
Readln(Kata);
Panjang := Length(Kata);
Balik := '';
for I := Panjang downto 1 do
Balik := Balik + Kata[I];
Writeln('Hasil pembalikannya : ', Balik);
Readln;
end.
program P0302;
var
i: Integer;
begin
Writeln('Bilangan genap');
i := 1;
repeat
Inc(i);
if i mod 2 = 0 then Write(i:4);
until (i=100);
Readln;
end.
program P0303;
var
i, j: Integer;
M: Char;
begin
Modul 3 – Struktur Perulangan 3-20
program P0304;
uses Crt;
var
Hasil: Real;
I, pilih, A, X, N: Integer;
Status: Boolean;
begin
Repeat
Clrscr;
Writeln('1. Pemangkatan 2. Faktorial 3. Keluar');
Write('Masukkan Pilihan Anda : ');
Readln(pilih);
case pilih of
1 : begin
Write('Masukkan Sembarang angka : ');
Readln(X);
Write('Akan dipangkatkan berapa : ');
Readln(A);
Hasil := 1;
for I := 1 to A do Hasil := X * Hasil;
Writeln('Jadi ', X,' dipangkatkan ', A,' : ',
Hasil:5);
Status := False;
end;
2 : begin
Write('Masukkan Sembarang angka : ');
Readln(N);
if N <= 1 then Hasil := 1
else
begin
Hasil := 1;
for I := 2 to N do Hasil := Hasil * I;
Modul 3 – Struktur Perulangan 3-21
end;
Writeln('Jadi factorial ', N,' (', N,'!) : ',
Hasil:5);
Status := False;
end;
3 : Status := True;
else
begin
Writeln('Pilihan Anda salah !');
Status := True;
end;
end;
Readln;
until Status;
end.
Latihan
Latihan 3.1
Buat program untuk menampilkan deret fibbonaci 1, 1, 2, 3, 5, 8, .. !
Latihan 3.2
Buat program untuk menampilkan deret kuadrat 1, 4, 9, 16, .. !
Latihan 3.3
Buat program untuk menampilkan angka sebagai berikut :
1
22
333
4444
55555
Laporan
Laporan 3.1
Buat kesimpulan untuk praktikum hari ini.
Laporan 3.2
Buat program untuk menampilkan bilangan Prima antara 1 sampai 100.
Modul 3 – Struktur Perulangan 3-22
Laporan 3.3
Buatkan program untuk menampilkan segitiga pascal !
1
11
121
1331
14641
Laporan 3.4
Buat program untuk menghitung gaji pegawai dengan ketentuan sebagai
berikut :
• Terdapat dua buah golongan yaitu : A dengan gaji pokok 500000
dan B dengan gaji pokok 1000000
• Pegawai akan mendapatkan tunjangan jika sudah menikah
sebesar 10% dari gaji pokok. Untuk status tidak menikah, janda,
dan duda tunjangan=0.
• Jika pemakai memasukkan inputan baik itu untuk status dan
golongan tidak sesuai dengan yang diminta ulang terus sampai
yang diinputkan benar.
• Tampilkan nama, alamat, status, gaji pokok dan total gajinya
Praktikum
4
Prosedur dan Fungsi
Tujuan:
• Praktikan mengerti tentang prosedur dengan parameter dan prosedur tanpa parameter.
• Praktikan mengerti tentang fungsi dengan parameter dan fungsi tanpa parameter.
• Praktikan mengerti tentang penggunaan variable global dan variable lokal.
• Praktikan mampu membuat program yang berisi prosedur dan fungsi
Persiapan
Menjalankan program Pascal, mengikuti percobaan yang diberikan
sesuai dengan urutannya. Mengerjakan Latihan-latihan yang diberikan.
Pekerjaan
Mengetikkan program sederhana dengan menggunakan prosedur dan
fungsi seperti pada percobaan.
TEORI
PROCEDURE nama(daftar_parameter)
Bagian deklarasi / pengumuman;
Bagian pernyataan;
Percobaan
Perhatikan dan salinlah program di bawah ini :
program P0401;
{ Contoh Program pembuatan Prosedur }
uses Crt;
var
A,B: Integer; { variable global }
{ Program Utama }
begin
ClrScr;
Write('Masukkan angka Pertama : ');
Readln(A);
Write('Masukkan angka Kedua : ');
Readln(B);
while A <> 0 do
begin
Maximum; { pemanggilan prosedur }
Readln(A,B);
end;
end.
program P0402;
{ Contoh Program pembuatan Fungsi }
uses crt;
var
A,B : integer; { variable global }
{ Program Utama }
begin
ClrScr;
Write('Masukkan sembarang bilangan : ');
Readln(A);
Modul 4 – Prosedur dan Fungsi 4-26
program P0403;
uses Crt;
var
A: integer;
Procedure Flop(N:Integer);
begin
Writeln('Flop');
If N > 0 then Flip(N - 1);
end;
Procedure Flip(N:Integer);
begin
Writeln('Flip');
If N > 0 then Flop(N - 1);
end;
begin
ClrScr;
Write('Masukkan Banyak kata : ');
Readln(A);
A := A - 1;
Flip(A);
Readln;
end.
Latihan
Latihan 4.1
Rubahlah Prosedur Maximum pada program P0401.PAS menjadi
prosedur dengan parameter.
Latihan 4.2
Buatlah Program yang terdiri dari 2 buah prosedur :
• Prosedur pertama digunakan untuk memasukkan 2 buah
bilangan sebagai inputan
• Prosedur kedua menampilkan hasil dari bilangan tersebut setelah
nilainya ditukar.
Latihan 4.3
Buatlah program yang berisi sebuah fungsi yang dapat menampilkan
bilangan ganjil antara 1 sampai dengan 15.
Laporan
Laporan 4.1
Jelaskan perbedaan antara
a. Prosedur tanpa parameter dan prosedur dengan parameter
b. Fungsi tanpa parameter dan fungsi dengan parameter
Laporan 4.2
Apa Yang dimaksud dengan
a. Variable Global
b. Variable Lokal
Laporan 4.3
Buatlah Fungsi untuk menentukan nilai Pangkat dari suatu bilangan
bulat. Inputannya berupa suatu bilangan yang akan dipangkatkan dan
bilangan pangkatnya.
Misalnya : 5 pangkat 2 = 25.
Modul 4 – Prosedur dan Fungsi 4-28
Laporan 4.4
Buatlah sebuah program untuk menghitung :
• Luas Persegi Panjang, bila diinputkan panjang dan lebarnya.
• Luas Lingkaran, bila diinputkan jari-jarinya.
• Luas Segitiga, bila diinputkan alas dan tingginya.
Masing-masing perhitungan di atas harus dimasukkan fungsi atau
prosedur dan memakai parameter. Begitu program dijalankan, pemakai
harus diberi pilihan untuk menghitung salah satu dari perhitungan di
atas atau mengakhiri program.
Praktikum
5
Array
Tujuan:
• Praktikan mengerti struktur data dengan menggunakan banyak variable dengan tipe data
yang sama.
Persiapan
Menjalankan program Pascal, mengikuti percobaan yang diberikan
sesuai dengan urutannya. Mengerjakan Latihan-latihan yang diberikan
dan pelajari bab Procedure dan Function.
Pekerjaan
Mengetikkan program sederhana dengan menggunakan type, constanta
dan variable yang dikombinasikan dengan array seperti pada percobaan.
TEORI
A rray merupakan struktur data yang statis, yaitu jumlah elemen yang
ada harus ditentukan terlebih dahulu dan tak bisa di ubah saat
program berjalan. Untuk menyatakan array dalam PASCAL kita harus
terlebih dahulu:
• Mendefinisikan jumlah elemen array,
• Mendefinisikan tipe data dari elemen array
Contoh :
const
N=10;
type
A= array [1..N] of integer;
Modul 5 – Array 5-30
var
variabel_array : ARRAY[bawah..atas] of tipe_data;
Array Multidimensi
Dalam array multidimensi terdiri atas baris (row) dan kolom (column).
Index pertama adalah baris dan yang kedua adalah kolom .
Type nama_array =ARRAY[bawah..atas, bawah..atas] of tipe_data;
var variabel_array : nama_array;
Percobaan
Salinlah program berikut ini :
program P0501;
{Program Array menggunakan 1 dimensi}
uses Crt;
var
a: array[1..10] of byte;{maksimum jumlah elemen=10}
begin
a[1]:=10;
a[2]:=15;
a[3]:=a[1]+a[2];
Writeln(a[1]);
Writeln(a[2]);
Modul 5 – Array 5-31
Writeln(a[3]);
end.
program P0502;
uses crt;
const
N=10;
type
int_array= ARRAY [1..N] of integer;
var
bil : int_array;
indeks : integer;
begin
writeln('masukkan sepuluh bilangan integer.');
for indeks := 1 to 10 do
begin
readln(bil[indeks]);
end;
writeln('Isi dari array ini adalah');
for indeks := 1 to 10 do
begin
writeln('bil[', indeks:2,'] adalah ',bil[indeks] );
end
end.
program P0503;
uses crt;
const
kolom = 3;
baris = 3;
type
matriks = ARRAY [1..baris, 1..kolom] of integer;
var
AKU: matriks;
Modul 5 – Array 5-32
procedure ISI_MATRIK(m,n:integer);
var
i,j: integer;
begin
for i:=1 to m do
begin
for j:=1 to n do
begin
read(AKU[i,j]);
end;
readln ;
end;
end;
procedure TULIS_MATRIK(m,n:integer);
var i,j: integer;
begin
for i:=1 to m do
begin
for j:=1 to n do
begin
write(AKU[i,j]:6);
end;
writeln ;
end;
end;
begin
clrscr;
isi_matrik(kolom,baris);
tulis_matrik(kolom,baris);
end.
Latihan
Latihan 5.1
Tambahkan procedure untuk menghitung nilai maksimal
Latihan 5.2
Tambahkan procedure untuk menghitung nilai minimum
Modul 5 – Array 5-33
Laporan
Laporan 5.1
Buatlah kesimpulan dari kegiatan praktikum 1 ini.
Laporan 5.2
Jelaskan perbedaan antara array 1 dimensi dengan array multidimensi.
Laporan 5.3
Buatlah program penjumlahan matrik.
Praktikum
6
Record
Tujuan:
• Praktikan mengerti struktur data dengan menggunakan record untuk menyimpan data.
Persiapan
Menjalankan program Pascal, mengikuti percobaan yang diberikan
sesuai dengan urutannya. Mengerjakan Latihan-latihan yang diberikan
dan pelajari bab Procedure dan Function. Dan pahami array di bab
sebelumnya.
Pekerjaan
Mengetikkan program sederhana dengan menggunakan type, constanta
dan variable yang dikombinasikan dengan array ditambahkan dengan
record seperti pada percobaan.
TEORI
S ebuah record rekaman disusun oleh beberapa field. Tiap field berisi
data dari tipe dasar / bentukan tertentu. Record mempunyai
kelebihan untuk menyimpan suatu sekumpulan elemen data yang
berbeda-beda tipenya (di banding array).
Cara pendeklarasian dari record adalah sbb:
• Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang
dipakai),
• Mendefinisikan variabel untuk dilakukan operasi.
Syntax
type
nama_record = record
identifier_1 : tipe_data_1;
:
:
Modul 6 – Record 6-35
identifier_n : tipe_data_n;
end;
var
variabel : nama_record;
Contoh :
type
Data_mahasiswa = record
Nama : string;
Usia : integer;
Kota : string;
Kodepos : integer;
end;
Var
x: Data_mahasiswa;
Percobaan
Salinlah program berikut ini :
Cara mengacu pada tiap field pada record pada contoh di atas adalah
sbb:
x.Nama
x.Usia
x.Kota
x.Kodepos
program P0601;
type
tanggal = record
bulan, hari, tahun: integer;
end;
var
waktu: tanggal;
begin
waktu.hari :=25;
waktu.bulan:=09;
waktu.tahun:= 1983;
Writeln('hari ini adalah
',waktu.hari,':',waktu.bulan,':',waktu.tahun)
end.
program P0602;
const
Modul 6 – Record 6-36
N = 2;
type
data = record
nrp : string[8];
nama : string[20];
end;
var
mhs : array [1..N] of data;
begin
mhs[1].nrp := '00112398';
mhs[1].nama := 'Eko Agung W';
mhs[2].nrp := '03113551';
mhs[2].nama := 'Ni Luh';
Writeln(mhs[1].nrp);
Writeln(mhs[1].nama);
Writeln(mhs[2].nrp);
Writeln(mhs[2].nama);
end.
program P0603;
const
N = 2;
type
tmhs = record
nim : string[11];
nama : string[30];
alamat : string;
end;
var
datamhs: array[1..N] of tmhs;
i, j: integer;
begin
for i:= 1 to N do
begin
with datamhs[i] do
begin
Write('NIM : ');
Readln(nim);
Write('NAMA : ');
Readln(nama);
Write('ALAMAT : ');
Readln(alamat);
end;
end;
for j:= 1 to N do
Modul 6 – Record 6-37
begin
Writeln('NIM : ',datamhs[j].nim);
Writeln('NAMA : ',datamhs[j].nama);
Writeln('ALAMAT : ',datamhs[j].alamat);
end;
readln;
end.
Latihan
Latihan 6.1
Buatlah 2 procedure untuk menginput data dan menampilkan data pada
program P0603 diatas.
Laporan
Laporan 6.1
Buatlah kesimpulan dari kegiatan praktikum 6 ini.
Laporan 6.1
Jelaskan tentang field dan record.
Laporan 6.1
Buatlah program penyusunan data dengan teknik bubble sort.
Praktikum
7
Unit
Tujuan:
• Bila terdapat prosedur, fungsi, tipe data, peubah, atau tetapan yang dipakai pada lebih dari
satu program, mahasiswa akan mampu memilih, menuliskan ke dalam unit, mengkompilasi
unit, serta menggunakan unit tersebut..
Persiapan
Menjalankan Program Turbo Pascal, mengikuti percobaan yang
diberikan sesuai dengan urutannya. Mengerjakan latihan-latihan yang
diberikan.
Pekerjaan
Mengetikkan coding, menjalankannya, dan menganalisa hasil.
Pengenalan Unit
unit U0701;
interface
function CekSandi(Kata, Password: string): Boolean;
implementation
function CekSandi(Kata, Password: string): Boolean;
begin
if Kata=Password then
CekSandi := True
Else
CekSandi := False;
end;
end.
program P0701;
uses
Crt, U0701;
var
Kata_sandi : string;
begin
Clrscr;
repeat
Write('Masukkan Password Anda !! : ');
Readln(Kata_sandi);
until CekSandi (Kata_sandi, 'praktikan');
Writeln;
Write('Password Anda Benar !!');
Readln;
end.
Modul 7 – Unit 7-40
Latihan
Latihan 7.1
Buatlah sebuah unit yang mana dalam unit tersebut terdapat prosedur
atau fungsi untuk merubah satuan suhu tertentu (Celcius) ke satuan yang
lainnya contohnya ke satuan Kelvin, Fahrenheit, dan Reamur. Kemudian
buatlah suatu program sederhana yang mana menggunakan unit yang
telah dibuat tersebut, ketika program dijalankan dengan memasukkan
sebuah masukan berupa suhu dalam satuan Celcius maka akan
ditampilkan suhu-suhu dengan satuan yang lainnya.
Adapun Rumusnya adalah sebagai berikut :
• t °C = 4/5 t °R = ( 9/5t + 32 ) °F = ( t + 273 ) °K
Latihan 7.1
Buatlah unit untuk menghitung nilai sinus, kosinus, dan tangen, Ingat
bahwa fungsi sin dan cos menggunakan parameter bersatuan radian.
Buatlah pula sebuah program yang nantinya menggunakan unit
tersebut, ketika program dijalankan dengan memasukkan sebuah
masukan dalam satuan derajat, secara otomatis program merubah
masukan tersebut ke dalam satuan radian dan menampilkan nilai sinus,
kosinus, dan tangen dari masukan tersebut.
Adapun tan x = sin x / cos x
Laporan
Laporan 7.1
Buat kesimpulan untuk praktikum hari ini.
Laporan 7.1
Buatlah unit yang di dalamnya terdapat function untuk menghitung
perhitungan matematik, yang meliputi penjumlahan, pengurangan,
perkalian, pembagian, sisa hasil bagi, pemangkatan, factorial, sinus,
cosinus, dan tangent.
Praktikum
8
File
Tujuan:
• Praktikan mengerti struktur data dengan menggunakan file (berkas).
Persiapan
Menjalankan program Pascal, mengikuti percobaan yang diberikan
sesuai dengan urutannya. Mengerjakan Pahami array dan record di bab
sebelumnya.
Pekerjaan
Teori
File Teks disusun sebagai runtunan beberapa baris .
• Tiap baris terdiri dari runtunan karakter.
• Tiap baris diakhiri oleh karakter khusus, yaitu END-OF-LINE
(EOLN) .
• Karakter yang terakhir dari file teks adalah END-OF-FILE (EOF)
EOF adalah menerima argumen nama file dan menghasilkan nilai
true jika sudah tidak ada data yang bisa dibaca lagi. Dan EOLN adalah
menerima argumen nama file dan menghasilkan nilai true jika sudah
tidak ada lagi data yang bisa lagi dalam satu baris.
Untuk melakukan operasi pada file teks, kita perlu mendeklarasikan
suatu variabel dengan tipe teks seperti berikut:
Modul 8 –File 8-42
var
F : text;
F adalah sembarang variabel file teks dan readme adalah nama file teks
yang akan dibaca, pertama kita harus memanggilnya dengan fungsi:
assign(F,'README');
Sebelum kita bisa membaca kita harus membuka file tersebut.
reset(F);
Kita bisa membaca file baris demi baris, misalkan dengan
menyatakan suatu variabel s sebagai string:
readln(F, s);
Setelah selesai membaca keseluruhan teks kita harus menutupnya
dengan:
close(F);
Kita membuat suatu file teks dengan mengubah kata kunci :
reset(F); menjadi rewrite(F);
Kemudian: Gunakan readln(F,s) untuk membaca file yang akan
dikopi dan writeln(F,s) untuk menulis ke file tujuan
(misal kita punya suatu file dengan path ‘D:\file1.txt’) dan kita akan
memgkopinya ke file dengan path ‘D:\file1.txt’)
Untuk mengatasi error pada pembacaan file teks digunakan error-
handling. yaitu :
{$I-} --> membuat Pascal stabil
: --> proses pada file
{$I+} --> deteksi terhadap error
Error dapat di deteksi dengan memanggil fungsi IOResult. jika
IOresult adalah 0, maka tidak terjadi error.
Percobaan
Salinlah program berikut ini :
Membuat program file yang sederhana , tetapi sebelumnya anda
harus membuat file terlebih dahulu di “c:\test.txt”
program P0801;
type
coba = file of byte;
var
fcoba : coba;
i : byte;
begin
Assign(fcoba,'c:\test.txt');
Reset(fcoba);
i:=1;
Modul 8 –File 8-43
Write(fcoba,i);
Close(fcoba);
end.
program P0802;
type
mhs = record
nrp : string[8];
nama : string[20];
end;
var
fmhs : file of mhs;
tmhs : mhs;
begin
tmhs.nrp := '00112398';
tmhs.nama := 'Wiwien';
Assign(fmhs,'c:\test.txt');
Reset(fmhs);
Write(fmhs,tmhs);
Close(fmhs);
end.
program P0803;
const
N = 2;
type
tmhs = record
nrp : string[8];
nama : string[20];
alamat : string;
end;
dtmhs = array[1..N] of tmhs;
var
F : File of dtmhs;
datamhs : dtmhs;
i : integer;
begin
for i:= 1 to N do
begin
with datamhs[i] do
begin
Write('Masukkan NRP : ');
Modul 8 –File 8-44
Readln(nrp);
Write('Masukkan Nama : ');
Readln(nama);
Write('Masukkan Alamat : ');
Readln(alamat);
end;
end;
Assign(F,'c:\test.txt');
Rewrite(F);
Write(F,datamhs);
Close(F);
Assign(F,'c:\test.txt');
Reset(F);
Read(F,datamhs);
Close(F);
for i : = 1 to N do
begin
Writeln(datamhs[i].nrp);
Writeln(datamhs[i].nama);
Writeln(datamhs[i].alamat);
end;
Readln;
end.
Latihan
Latihan 8.1
Buatlah 2 procedure untuk menginput data dan menampilkan data pada
program P0803 di atas.
Laporan
Laporan 8.1
Buatlah kesimpulan dari kegiatan praktikum 8 ini.