Tampilkan postingan dengan label Struktur Data Pascal. Tampilkan semua postingan
Tampilkan postingan dengan label Struktur Data Pascal. Tampilkan semua postingan

Modul II (Record)



Pengertian
 
Record adalah elemen larik yang bertipe terstruktur. Dengan menggunakan tipe datarecord, beberapa item data yang masing-masing dapat mempunyai tipe data berbeda-beda dapat dikumpulkan. Masing-masing item data disebut dengan field. Jadi recordterdiri dari kumpulan field yang dapat berbeda tipe. Biasanya suatu record berisi beberapa field untuk sebuah subyek tertentu.
Record adalah kumpulan dari field yang berhubungan yang bisa diperlakukan sebagai unit oleh beberapa proses dalam program. Field adalah data  yang elementer, seperti nama, NIP, Kota, tanggal lahir dan lain-lain. Panjang field bisa bervariasi. Seluruh dara dalam record selalu berhubungan. Sebuah record bisa mengandung banyak field , seperti bisa dilihat :
Name

Address

Date of hire

Education

Pay History



Gambar 1. Record Karyawan
Terdapat field offset yang menyimpan jumlah byte dari awal dari record sampai awal dari field untuk mengetahui lokasi dari suatu field.
Record memiliki beberapa karakteristik
·         Record memiliki ukuran maksimum yang didefinisikan, walaupun begitu tidak semua data harus terisi.
·         Record memiliki format tertentu, dan format tersebut harus sama untuk file yang sama. Jika semua record mempunyai ukuran yang sama maka di sebut fixed-length record, namun jika ukuran record bisa berubah disebut variable-length record.
Files merupakan kumpulan dari record yang saling berhubungan. Jika dianalogikan seperti file cabinet, jika seseorang ingin menyimpan data kedalam cabinet secara terorganisir sehingga ketika ia membutuhkan informasi, dapat didapatkan atau  diperbaruhi secara mudah. Organisisa file bisa dilihat pada gambar
Ada beberapa karakteristik file yang penting untuk mengerti , yaitu
·         File dapat diciptakan atau dihapus oleh user.
·         File mempunyai nama file yang unik.
Pathname = device + user + directory + filename
·         Performa akses data tergantung algoritma pengaksesan file serta posisi datanya
Block merupakan unit data yang ditransfer kepada  dan dari file kepada operasi I/O. block bisa terdiri 1 atau lebih dari record, bahkan 1 block bisa saja hanya menyimpan bagian dari record sehingga untuk mengakses record dibutuhkan lebih dari 1 block.
Terdapat 2 alternatif dalam peletakan record dalam block, alternatif pertama record dimungkinkan untuk melintas batas block, kondisi ini space dalam block dapat digunakan secara maksimal, namun alternative ini mempunyai kelemahan yaitu waktu aksesnya jadi lebih panjang karena dalam sekali operasi I/O blok belum tentu bisa digunakan untuk mengakses seluruh record. Alternatif yang lain adalah 1 record tidak boleh mengunakan lebih dari 1 block, namun ini mempunyai batasan bahwa panjang record tidak boleh lebih dari panjang block, selain itu memungkinkan terdapat sisa space dalam block yang tidak digunakan.
Blocking factor merupakan jumlah record dalam satu block. Dalam fixed-length record dapat dihitung berapa record yang bisa ditampung dalam satu block jika ukuran block bisa diketahui, namun dalam variable-length record tidak bisa diketahui 100% blocking faktornya, namun bisa diprediksi dari rata-rata blocking factor.
 Uses crt;
Type mahasiswa = record
            Nama : string;
            Alamat : string;
            Jurusan : string;
            Ipk : real;
Endl;

Var data : mahasiswa;
Begin
            Clrscr;
            Data. nama := “ismet Dohoi”;
            Data. Alamat := “jl. A. Yani;
            Data. Jurusan := “teknik informatika”;
            Data. Ipk := 3.75;

            Writeln(data. Nama);
            Writeln(data. Alamat);
            Writeln(data. Jurusan);
            Writeln(data. Ipk);
Endl;
Redakey;
End.


RECORD (REKAMAN)
Sebuah 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). Contoh , sebuah record dengan empat buah field.




Field 1
Field 2
Field 3
Field 4
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;
:
:
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;

1. Pengaksesan Elemen Record
Nama variable disertai nama field.
Nama
Usia
Kota
Kodepos
Contoh.
program RECORD_INTRO;
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.

2. Pengunaan With … do
Pernyataan with untuk lebih menyederhanakan pengaksesan field-field pada record. Pemrograman dapat mengakses field cukup dengan menyebutkan nama field-nya saja. Misalkan pernyataan :
Nama
Usia
Kota
Kodepos
menjadi
with x do
Begin
Nama
Usia
Kota
Kodepos
end
Contoh.
program RECORD_INTRO;
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
begin {program utama}
with waktu do {mulai with}
begin
hari :=25;
bulan:=09;
tahun:=1983;
writeln('hari ini adalah ',hari,':',bulan,':', tahun)
end {akhir with}
end.

3. Array dari Record
Suatu array dapat juga berisi record contoh suatu deklarasi record tanggal.
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
kemudian kita membentuk suatu array dari record ini, namakan birthdays.
var birthdays : array[1..10] of tanggal;
pernyataan ini akan membentuk suatu array dengan 10 elemen. Dimana tiap elemen adalah sebuah record tanggal, yaitu, terdiri atas bulan, hari, tahun dengan tipe data Integer.
Digambarkan seperti berikut:

Contoh Pemberian nilai awal dari masing-masing elemen birthdays:
Birthdays[1].hari :=25;
Birthdays[1].bulan:=09;
Birthdays[1].tahun:=1983;

4. Record di dalam Record
Record bisa berisi record lain sebagai field. Seperti contoh record tanggal dan jam dikombinasikan menjadi sebuah record saat ini,
type tanggal = record
bulan, hari, tahun : integer;
end;
type waktu =record
jam, menit, detik : integer;
end;
type waktu_ini =record
tanggal_ini : tanggal;
waktu_ini : waktu
end;
Kemudian kita perlu membuat variabel kerja
var saat_ini : waktu_ini;
pemberian nilai akan terjadi seperti di bawah ini:
saat_ini.tanggal.bulan:= 11;
saat_ini.tanggal.hari:= 2;
saat_ini.tanggal.tahun:= 1985;
saat_ini.waktu.jam:= 3;
saat_ini.waktu.menit:= 3;
saat_ini.waktu.detik:= 33;


Sekian, Semoga Bermanfaat Kawan.,

Modul 1 (Array)

Pengertian

     Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-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 komponen- komponenya mempunyai nilai dengan tipe data tersebut.

Suatu array adalah sebuah struktur data yang terdiri atas banyak variabel dengan tipe data sama, dimana masing-masing elemen variabel mempunyai nilai indeks. Setiap elemen array mampu untuk menyimpan satu jenis data (yaitu: variabel).

Cara Pendefinisian

contoh type
A = array [1..6] of integer;
Secara logika pendefinisian array di atas merupakan sekumpulan kotak , dimana tiap kotak mempunyai nilai indeks integer 1, 2, 3, ...,6 tiap elemen array ditandai dengan: A[1], A[2], A[3], A[4], A[5], A[6] untuk mengisi elemen array misal A[1]:=4;.Sifat Array Array merupakan struktur data yang statis, yaitu jumlah elemen yang ada harus ditentukan terlebih dahulu dan tak bisa di ubah saatprogram berjalan.

Program stat_array;

Var A: array[1…5] of byte;

I: byte;

Begin

{memberi nilai sela array}

A[1] := 3;

A[2} := 2;

A[3] := 7;

A[4] := 9;

A[5] := 2;

For I := 1 to 5 do

Write (A[i]);

End.
-----------------------------------------------------------------------------------

Program stat_array;

Var A : array[1…5] of byte;

I : byte;



Begin


{memberi nilai array}

For i := 1 to 5 d0

Begin

Write(‘masukan nilai array ke- ‘,i,’:’);

Readln(A[i]);

End;

For i:= 1 to 5 do

Writeln(A[i]);

End.

Program INT_ARRAY;

Uses wincrt;

Const max = 50;

Type int_array = ARRAY [1..max] of integer;

Var bil : int_array;

Indeks : integer;

BEGIN

Writeln(‘Masukan 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.
 KESIMPULAN

Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-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 komponen- komponenya mempunyai nilai dengan tipe data tersebut.


Array adalah variabel yang dapat menyimpan lebih dari satu nilai sejenis. Terdapat dua bagian penting yaitu elemen array yang merupakan nilai dan indeks array yang merupakan nilai urut untuk mengakses nilai pada array.
Berikut ini contoh array A dengan 10 buah elemen tiap elemen memiliki nilai antara 10 hingga 100.


Deklarasi Array.
Array dideklarasikan pada bagian deklarasi. Deklarasi umum dari array adalah
NamaArray : array[IndeksAwal..IndeksAkhir] of tipe_data;

Contoh: Jika akan mendeklarasikan viriabel A sebagai Array dengan 10 elemen bertipe integer:
Var
A: array [1..10] of Integer;
Contoh lain:
A1: array[0..9] of Integer;
A1: array[10..20] of Integer;
A1: array[‘a’..’j’] of Integer;
Mengakses elemen Array
Untuk memberikan nilai pada variabel array dapat dengan menggunakan parameter berikut :
NamaArray [indeks]:=nilai;

Var
A: array[1..10] of integer;
Begin
A[1]:=1; {Mengisikan elemen 1 dengan nilai 1}
A[9]:=200; {Mengisi elemen 9 dengan nilai 200};
End.
Array sebagai konstanta

Nilai pada array dapat bernilai konstan. Dapat kita lakukan dengan mendeklarasikannya pada bagian constanta.
Bentuk umum pendeklrasiannya adalah:
Const
NamaArray : array[IndeksAwal..IndeksAkhir] of Tipe_Data = (nilai1, nilai2,………);
Banyaknya nilai konstanta harus sama dengan jumlah elemennya.



Contoh penggunaanya
Program ArrayKonstanm;
Uses Wincrt;
Const
Hari : array[1..2] oof string = (’senin’,’selasa’,'rabu’,'kamis’,'jumat’,’sabtu’,'minggu’);
Var
noHari:integer;
begin
clrscr;
write(‘Masukan nomor harinya : ‘);readln(noHAri);
write(‘Hari ke’,noHari,’adalah’,Har[noHari]);
end.
Jika dieksekusi maka hasilnya adalah:
Masukan nomor harinya : 2
Hari ke 3 adalah rabu
Array saebagai parameter

Array pada waktu tertentu dapat digunakan sebagai parameter dari suatu proesdur atyau fungsi. Contoh
Type
Bilangan = array [1..100[ of integer;
Procedure InputArray(A:bilangan; N:integer);
var
begin
for i:=1 to N do
write('Masukan elemen array ke ',i); readln(A[i]);
end.
Contoh diatas adalah prenggunaan array sebagai parameter untuk memberikan nilai pada suatu array tertentu.
Array berisi record
Caranya adalah mendefinisikan record terlebih dahulu yang kemudian akan digunakan sebagaitipe data pada saat pendeklarasiaan array. Contoh:
Type
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
End;
TkumpulanSiswa = array [1..100] of Tsiswa;

Var
A: TkumpulanSiswa;

Variabel A diatas akan menampung 100 buah record yang bertipe Tsiswa. Sementara untukrecord berisi array dengan contoh perhitungan nilai siswa berikut : Nilai = (20% * kuis) + (30% * UTS) + (50% * UAS). Maka kita dapat mendefinisikan mahasiswa sebagai tipe record yang memiliki 3 nilai dengan menggunakan array. Yaitu:
Type
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
Nilai = array [1..3] of real;
Kode diatas menunjukan bahwa setiap mahasiswa memiliki 3 nilai.
Metode pencarian pada Array
Ada beberapa macam teknik dalam mendapatkan nilai dari suatu elemen pada array salh satunya dengan metode pencarian beruntun.Contoh:



Program CaraiBeruntun;

Uses Wincrt;
Const
N : array[1..5] of integer= (10,20,30,40,50);
Var
a,b,index : integer;
begin
clrscr;
write(‘Masukan nilai yang akan dicari : ’);readln(a);
index:=0;
for b:=1 to 5 do begin
if N[b] = a then begin
index:=b;
break;
end;
end;
writeln(a,’ adalah nilai yang ditemukan pada index ke ’,index);
end.
Array 2 dimensi
Array 2 dimensi adalah array yang memiliki 2 buah elemen bertipe array yang berbentuk kolom dan baris. Pendeklarasiannya adlah sebagai berikut:
NamaArray : array[1..BanyakBaris, 1..BanyakKolom] of tipe_data;
Array2D : array[1..3, 1..4] of integer;
Sedangkan untuk mengaskes maupun memberikan nilai dengan parameter:
Array2D [2,3]:=200; {Mengisikan nilai 200 pada baris 2 kolom 3}


Sekian, semoga bermanfaat ya.


DAFTAR PUSTAKA








Popular Post

Teman Blogger

Blogroll

free counters

RSS Feed Berlangganan artikelKu



Masukan Email Mu Disini: