TYPE DATA RECORD DAN ARRAY YANG DIGUNAKAN PADA PROGRAM PASCAL.



TYPE DATA RECORD DAN ARRAY YANG DIGUNAKAN PADA PROGRAM PASCAL.


SETELAH KEMARIN SAYA TELAH MEMBAHAS TENTANG TYPE DATA ARRAY DAN LENGKAP DENGAN CONOHNYA, KALI INI SAYA AKAN MEMBAHAS TENTANG TYPE DATA RECORD DAN FILE YANG DIGUNAKAN PADA PROGRAM PASCAL.

BAIKLAH, LANGSUNG SAJA KE POKOK BAHASAN MATERINYA DIBAWAH INI:

1. RECORD
Record merupakan kumpulan data yang tidak sejenis atau variasi. Penggunakan
record berkaitan dengan deklarasi suatu type.
Type NamaTipeData = TipeDataPascal;

Dideklarasikan dengan

Var NamaVariabel : NamaTipeData;

Contoh :
Type Bulat = integer;
Pecahan = real;                                           type menggunakan sama dengan
Logika = boolean;

Var Umur, JumlahAnak : bulat;
Gaji, Tunjangan              : pecahan;
Status                              : logika; var menggunakan titi dua.

Tanda yang harus diperhatikan untuk deklarasi tipe adalah tanda sama dengan untuk
namavariabel/tipe data dan jenis tipe.
Untuk tipe data di atas akan lebih praktis jika dituliskan langsung tanpa memakai deklarasi
tipe yaitu :
Var Umur, JumlahAnak : integer;
Gaji, Tunjangan : pecahan;
Status : boolean;
Pembuatan deklarasi tipe nampak akan memperpanjang program namun untuk jenis array
dan RECORD pemakaian tipe sangat dianjurkan dan menguntungkan.
Misalkan :
Var Umur : array[1..n] of integer;
Nama : array[1..n] of string;
JumAnak : array[1..n] of integer;
Dapat ditulis dengan type seperti :
Type Larik1 = array[1..n] of integer;
Larik2 = array[1..n] of string[20];
Var Umur, JumAnak : Larik1;
Nama : Larik2;
Namun untuk tipe data RECORD maka deklarasi data merupakan keharusan, karena variabel
bertipe record tidak dapat diberi tipe data record secara langsung.
Type NamaTypeRecord = RECORD
Namaitem1 : TipeitemData1
Namaitem2 : TipeitemData2
….
End;
Var NamaVariabelRecord : NamaTypeRecord;
Contoh
Type RecBarang = Record
Kodebarang : string[5];
NamaBarang : String[20];
Harga : Real;
End;
Var Barang : RecBarang;
Contoh 5.1
Program pendataan_buku_dengan_record;
Uses Crt;
Const Max=100;
Type Rbuku = Record
Kode : String[7];
Judul : String[7];
Ekse : Integer;
Harga : Real;
End;
Var
Buku : Rbuku;
Dafbuku : array[1..max] of Rbuku;
J, Ccbk : integer;
Jum, Rat : real;
Pilih : char;
Begin
Repeat
Clrscr;
Writeln(‘Menu Pilihan : ‘);
Writeln(‘[1]. Masukkan data Buku’);
Writeln(‘[2]. Lihat Daftar Buku’);
Writeln(‘[3]. Tambah Data Buku’);
Writeln(‘[4]. Selesai’);
Write(‘Pilihan Proses : ); readln(Pilih);
Case Pilih Of

‘1’ :     begin
Clrscr;
Write(‘Berapa Buku ? : ‘); Readln(CcBk);
For J := 1 to Ccbk do
Begin
Writeln(‘Data ke – ‘,j);
Write(‘Kode Buku : ‘); Readln(Buku.Kode);
Write(‘Judul Buku : ‘); Readln(Buku.Judul);
Write(‘Eksemplar : ‘); Readln(Buku.Ekse);
Write(‘Harga Buku : ‘); Readln(Buku.Harga);
Dafbuku[J]:= Buku;
End;
End;
‘2’ :      begin
Clrscr;
Writeln(‘Daftar BUKU’);
Writeln(‘========================================’);
Writeln(‘No. Kode Judul eks. Harga’);
Writeln(‘========================================’);
For J := 1 to CcBk do
With dafbuku[J] do
Begin
Writeln(j:3, Kode:6, judul:15, Ekse:8, Harga:9:2);
End;
Readln;
‘3’ :     begin
Clrscr;
Writeln(‘TAMBAH DATA’);
J := CcBk;
Repeat
Inc(J);
Writeln(‘Data Ke- ‘,j);
Writeln(‘KODE BUKU HABIS=SELESAI’);
Readln(Buku.Kode);
If Buku.Kode <> ‘HABIS’ then
Begin
Write(‘JUDUL BUKU : ‘); Readln(Buku.Judul);
Write(‘EKSEMPLAR : ‘); Readln(Buku.Ekse);
Write(‘HARGA BUKU : ‘); Readln(Buku.Harga);
End;
Until Buku.Kode=’HABIS’;
End;
End;
Until Pilih = ‘4’
End.
run
Menu Pilihan :
[1]. Masukkan data Buku
[2]. Lihat Daftar Buku
[3]. Tambah Data Buku
[4]. Selesai
Pilihan Proses :
Berapa Buku ? : 3
Data ke - 1
Kode Buku : A01
Judul Buku : BASIC
Eksemplar : 4
Harga Buku : 2000
Data ke - 2
Kode Buku : A02
Judul Buku : PASCAL
Eksemplar : 3
Harga Buku : 1000
Data ke - 3
Kode Buku : A03
Judul Buku : PDE
Eksemplar : 3
Harga Buku : 3000
Daftar BUKU
====================================
No. Kode Judul eks. Harga
====================================
1 A01 BASIC 4 2000.00
2 A02 PASCAL 3 1000.00
3 A03 PDE 3 3000.00


2. FILE DATA
Dalam memprogram tentunya melibatkan data-data yang cukup banyak, tidaklah
mungkin kalau menyimpan data hanya pada array, atau hanya diinputkan dari keyboard
sehingga jika komputer mati maka data hilang. File data berfungsi sebagai penampung dari
inputan sehingga membentu berkas yang berisi data diperlukan untuk proses input
selanjutnya. Dalam Pascal ada dua macam tipe file yaitu :
1. FILE TEXT
2. FILE BERTIPE
Berikut adalah perbedaan antara file text dan file bertipe :
File text File Bertipe
1. Data direkam dalam format text
ASCII
1. Data direkam dalam format BINER
2. Akses/ rekam data harus urut 2. Akses/ rekam data bersifat
acak/sembarang
3. Akses hanya dapat satu arah 3. Akses dapat langsung dua arah
FILE TEXT
Beberapa perintah yang berkaitan dengan file text adalah :
1. Assign(f, nf)
Perintah ini berguna untuk mengaitkan suatu variabel file (f) dengan suatu nama file (nf).
Contoh : Assign(Mhs, ‘B:DataMhs’);
2. Rewrite(F)
Perintah ini berguna untuk membuka file, sehingga file tersebut telah dikaitkan dengan
variabel file (f) melalui procedure Assign. Perintah Rewrite akan mempunyai mode akses
REKAM, yaitu file tersebut dibuka untuk direkamkan data ke dalamnya
Contoh: Rewrite(Mhs);
3. Append(f)
Perintah ini membuka file seperti rewrite(f), tetapi file yang dibuka HARUS SUDAH
ADA terlebih dahulu. Sedangkan data yang direkam ke dalamnya akan MENAMBAH
pada data yang telah ada sebelumnya.
Contoh : APPEND(f)
4. Reset(f)
Perintah ini berguna untuk membuka file, sehingga file tersebut telah dikaitkan dengan
variabel file (f) melalui Assign juga. Perbedaan dengan Rewrite adalah Mode aksesnya
yaitu Reset mempunyai mode akses BACA. Reset berarti dibuka untuk dibaca data dari
dalam file tersebut.
5. Writeln(f, data) dan Write(f, data)
Perintah ini berguna untuk menuliskan/simpan ke dalam file yang nama filenya dikaitkan
ke variabel file f. Perbedaan Writeln dan Write mempunyai efek yang sama dengan efek
ke layar. Data akan dituliskan ke file dapat berupa KONSTANTA, EKSPRESI atau
VARIABEL.
Contoh : Assign(f2,’File_A’);
Rewrite(f2);
Write(f2,’Hallo’); Writeln(‘IPTTI’);
X := ‘Selamat Pagi’;
Writeln(f2,x);
6. Readln(f, Var)
Perintah ini berguna untuk membaca data dari file dengan variabel file f. Data akan
ditampung dalam variabel Var.
Perintah ini berkaitan dengan membuka file dengan RESET(f).
Contoh : Assign(f2,’DataMhs’);
Reset(f2);
Readln(f2,noMhs,Nama)
7. Close(f)
Peintah ini berguna untuk menutup file dengan variabel file f.
Contoh : close(f);
8. Eof (f)
Fungsi sebagai boolean yang berarti TRUE jika pointer baca dari file dengan variabel file
f berada di posisi paling akhir/terakhir dan bernilai FALSE jika tidak.
Berikut agar lebih jelas lihat contoh program
Contoh 5.2 :
Program Nilai_Mhs;
Uses Crt;
Var
F : text; {variabel fle}
NoMhs : string[5];
Nama : String[20];
Nilai : real;
Pil : Char;
Procedure RekamData;
Begin
Clrscr;
Assign(f,’Datmhs’);
Rewrite(f); {buka file baru}
Repeat
Writeln(‘KETIK No.Mhs = HABIS jika selesai’);
Write(‘Nomor Mhs : ‘); Readln(NoMhs);
If NoMhs <> ‘HABIS’ then
begin
Write(‘Nama Mhs : ‘); Readln(Nama);
Write(‘Nilai angka : ‘); Readln(Nilai);
Writeln;
{rekam ke file}
Writeln(f, NoMhs:5, Nama:20, Nilai: 5:2);
End;
Until NoMhs=’HABIS’;
Close(f);
End;
Procedure TambahData;
Begin
Assign(f,’DatMhs’);
Append(f); {buka file untuk ditambah data}
Rekamdata;
End;
Procedure LihatData;
Begin
Assign(f,’DatMhs’);
Reset(f); {buka file untuk diBACA/Dilihat datanya}
Clrscr;
Writeln(‘Daftar Nilai Siswa’);
Writeln(‘=====================================’);
Writeln(‘No Mhs Nama Nilai ‘);
Writeln(‘=====================================’);
While not eof (f) do
Begin
{baca dari file}
Readln(f,NoMhs, Nama, Nilai);
Writeln(Nomhs: 5, Nama: 20, ‘ ‘,Nilai: 5:2);
End;
Writeln(‘=====================================’);
Readln;
Close(f);
End;
Begin {program inti}
Repeat
Clrscr;
Writeln(‘MENU UTAMA’);
Writeln(‘1. Rekam Data’);
Writeln(‘2. Tambah Data’);
Writeln(‘3. Lihat Data’);
Writeln(‘4. Selesai’);
Write(‘Pilihan proses : ‘); Readln(Pil);
Case pil of
‘1’ : RekamData;
‘2’ : TambahData;
‘3’ : LihatData;
End;
Until Pil=’4’;
End.
Run
MENU UTAMA
1. Rekam Data
2. Tambah Data
3. Lihat Data
4. Selesai
Pilihan proses :
KETIK No.Mhs = HABIS jika selesai
Nomor Mhs : 01
Nama Mhs : Andria
Nilai angka : 80
KETIK No.Mhs = HABIS jika selesai
Nomor Mhs : 02
Nama Mhs : Basuki
Nilai angka : 82
KETIK No.Mhs = HABIS jika selesai
Nomor Mhs : 03
Nama Mhs : RIYAN
Nilai angka : 90
KETIK No.Mhs = HABIS jika selesai
Nomor Mhs : HABIS
Daftar Nilai Siswa
=====================================
No Mhs Nama Nilai
=====================================
01 Andria 80.00
02 Basuki 82.00
03 RIYAN 90.00
=====================================



FILE BERTIPE
Dalam mendeklarasikan variabel file, ada perbedaan antara file teks dengan file
bertipe yaitu :
Untuk file teks selalu : Var NamaVarFile : text
Untuk file bertipe : Var NamaVarFile : File Of Tipedata;
Dengan Tipedata dapat berupa integer, real, char, string atau record.
Contoh deklarasi variabel file dalam file bertipe adalah :
F : file of Real;
F : file of String[20];
F : file of RecMhs; 􀃆 recMhs merupakan Type data Record
Adapun perintah yang ada dalam file text maupun file bertipe adalah :
Assign(f,’namfile’);
Rewrite(f);
Reset(f);
Close(f);
Fungsi EOF(f)
File bertipe mempunyai fungsi eof yang berbeda yaitu :
1. Untuk menulis ke file maka perintah yang dipakai HANYA : Write(f,NamaVar);
2. Untuk membaca file perintah yang dipakai HANYA : Read(f,NamaVar);
Disamping itu posisi record yang direkam dan dibaca dapat ACAK dan dapat DUA ARAH
yaitu REKAM/BACA.
Berikut adalah perintah yang ada pada file tipe :
1. Seek(f, noRec)
Perintah ini untuk memposisikan pointer baca pada noRec. Perlu ketahui bahwa
record pertama ada pada posisi 0, record ke dua ada ada posisi 1 dan seterusnya.
Contoh : Seek (f, 4); Read(f,V);
Hasil : Record 5 akan dibaca, hasilnya disimpan di variabel V.
Contoh : Seek(f,9); Write(f,V);
Hasil : Isi variabel V direkam di posisi record 10
2. Truncate(f)
Perintah ini untuk menghapus seluruh record mulai dari posisi POINTER BACA
berada.
Contoh : seek(f,5); Truncate(f);
Hasil : Seluruh record mulai posisi 5 akan dihapus dari file.
3. FilePos(f)
Perintah ini untuk mendapatkan pointer sekarang dari penunjuk file.
Contoh : Seek(f,5); p:=FilePos(F); Writeln(p);
Hasil : 3 posisi sekarang.
4. FileSize(f)
Berguna untuk mendapatkan cacah record dari file yang dibuka.
Contoh : Reset(f); n:=FileSize(f);
Hasil : n akan berisi cacah record dari file dengan varfile f.
Berikut contoh untuk File Record bertipe :
Contoh 5.3 File Beritpe
Uses Crt;
Type
RecSiswa = Record
NoMhs : String[5];
Nama : String[20];
Nilai : Real;
End;
Var
Fsis : File Of RecSiswa;
Siswa : RecSiswa;
Pil : Char;
Procedure RekamBaru;
Begin
Assign(fsis,’Datmhs’);
Rewrite(fsis);
Repeat
Writeln(‘KETIK NoMhs = HABIS jika selesai’);
Write(‘Nomor Mhs : ‘); Readln(Siswa.NoMhs);
If Siswa.NoMhs <> ‘HABIS’ then
Begin
Write(‘Nama Mhs : ‘); Readln(Siswa.Nama);
Write(‘Nilai Angka : ‘); Readln(Siswa.Nilai);
{rekam file}
Write(fsis,siswa);
Writeln;
End;
Until Siswa.NoMhs=’HABIS’;
Close(fSis);
End;
Procedure Tambahdata;
Begin
Assign(fSis,’DatMhs’);
Reset(fsis);
Seek(fsis, FileSize(fSis));
RekamBaru;
End;
Procedure BacaSemua;
Var P : Integer;
Begin
Assign(Fsis,’DatMhs’);
Reset(Fsis);
Writeln(‘Daftar Nilai’);
Writeln(‘=========================================’);
Writeln(‘NoMhs Nama Nilai ‘);
Writeln(‘=========================================’);
For P:= 1 to FileSize(fSis) do
Begin
Read(Fsis,Siswa);
With Siswa do
Writeln(NoMhs:5, Nama:20, Nilai:5,2);
End;
Writeln(‘=========================================’);
Readln;
Close(Fsis);
End;
Begin {program inti}
Repeat
Clrscr;
Writeln(‘MENU UTAMA’);
Writeln(‘1. Rekam Baru’);
Writeln(‘2. Tambah Data’);
Writeln(‘3. Lihat Data’);
Writeln(‘4. Selesai’);
Write(‘Pilihan proses : ‘); Readln(Pil);
Case pil of
‘1’ : RekamBaru;
‘2’ : TambahData;
‘3’ : BacaSemua;
End;
Until Pil=’4’;
End.
Run
MENU UTAMA
1. Rekam Baru
2. Tambah Data
3. Lihat Data
4. Selesai
Pilihan proses :

Sign up here with your email address to receive updates from this blog in your inbox.

1 Response to "TYPE DATA RECORD DAN ARRAY YANG DIGUNAKAN PADA PROGRAM PASCAL."