Headlines News :
Home » » Modul Algoritma Tentang Record

Modul Algoritma Tentang Record

Written By Unknown on Jumat, 21 Februari 2014 | 21.35


BAB II
PEMBAHASAN
R E C O R D

A.    Pendahuluan
Deskripsi Singkat
Bab ini akan mengemukakan bahasan tentang definisi record, deklarasi record, mengakses field, penugasan antar record, record dalam record, pernyataan with, array record.

Relevansi
Pembahasan pada bab ini sangat penting dipahami, karena materi record ini memberikan manfaat bagi pemrogram untuk membuat program yang menggunakan data yang terdiri dari beberapa data den berlainan tipe. Materi record sangat berkaitan dengan materi lainnya dalam sebuah pemrograman terstruktur, terutama dengan materi array.

Tujuan Instruksional Khusus
Mahasiswa mampu membuat program aplikasi dengan menggunakan record.

B.   Penyajian
1)      Definisi Record
Record adalah jenis tipe data terstruktur yang berisi beberapa data, yang masing-masing dapat berlainan tipe.
2)      Mendeklarasikan Record
Suatu tipe record dideklarasikan dengan bentuk sebagai berikut :
RECORD                                          Gambar 2.1 Pendeklarasian Record
Daftar_field_1 : tipe_1;                                   (sumber:Kadir)
Daftar_field_2 : tipe_2;
. . .
daftar_field_n : tipe_n;
END
Masing-masing daftar_field dapat berupa satu atau beberapa nama pengenal dan masing-masing dinamakan field. Bila daftar_field berisi lebih dari satu field , antar field perlu dipisahkan dengan koma. Masing-masing tipe dapat berupa tipe data apa saja termasuk array.
Berikut contoh pendeklarasian record :
Type
        RecBarang = Record
                                             Nama       : String;
                                             Kualitas   : Char;
                                             Harga       : LongInt
                                  End;

Var
        Barang : RecBarang;

Dengan mendeklarasikan seperti di atas, Barang akan mengandung tiga buah field, yaitu :
-          Nama,
-          Kualitas,
-          Harga.

3)      Cara Mengakses Field
Field dari suatu record diakses dengan bentuk :
Variabel.field

Gambar 2.2 Mengakses Field(sumber:Kadir)
Sebagai contoh :
Barang.Nama

Berarti “field Nama dari variabel record bernama Barang“.
Contoh penugasan nilai ke field tersebut :
Barang.Nama := ’Ubin TISKA 20x20’;

Dengan cara seperti di atas, field Nama dari record Barang berisi string ’Ubin TISKA 20x20’.
Isi dari suatu field ditampilkan dengan menggunakan Write atau Writeln.
Contoh :
Writeln (Barang.Nama);

Merupakan perintah untuk menampilkan isi field Nama dari record Barang.

Contoh program yang memberikan gambaran pendeklarasian record, pengisian terhadap field-field serta menampilkan isi masing-masing field dapat dilihat di bawah ini.
Program Rec1;
Uses crt;
Type
           RecBarang = Record
                                            Nama         : String[25];
                                            Kualitas     : Char;
                                            Harga         : LongInt
                                     End;
Var
           Barang : RecBarang;               {variabel bertipe record}
Begin
Clrscr;
{Penugasan nilai terhadap field-field}
Barang.Nama := ’Ubin TISKA 20x20’;
Barang.Kualitas := ’A’;
Barang.Harga := 14000;

{menampilkan isi field}
writeln (’Nama Barang             : ’, Barang.Nama);
writeln (’Kualitas          : ’, Barang.Kualitas);
writeln (’Harga                            : ’, Barang.Harga);
Readln
End.

Hasil program :

Nama Barang                 : Ubin TISKA 20x20
Kualitas                            : A
Harga                                : 14000

4)      Penugasan Antar Record
Jika record R1 dan R2 bertipe sama dan masing-masing memiliki F1, F2, dan F3, maka penugasan :
R1 := R2;
diperkenankan. Pernyataan di atas merupakan penyederhanaan dari sederetan pernyataan berikut :
R1.F1 := R2.F1;
R1.F2 := R2.F2;
R1.F3 := R2.F3;
Untuk lebih jelasnya, tulislah program berikut dan cobalah menjalankannya.
Program Rec2;
Uses crt;
Type
            RecBarang = Record
                                             Nama                  : string[25];
                                             Kualitas              : car;
                                             Harga                  : longInt
                                      End;
Var
            Barang1, Barang2 : RecBarang;   {variabel bertipe record}
Begin
Clrscr;
{penugasan nilai terhadap field-field}
Barang1.Nama := ’Ubin TISKA 20x20’;
Barang1.Kualitas := ’A’;
Barang1.Harga := 14000;

{menyalin record}
Barang2 := Barang1;

Menampilkan isi field}
Writeln (’Nama Barang                 : ’, Barang2.Nama);
Writeln (’Kualitas    : ’, Barang.Kualitas);
Writeln (’Harga              : ’, Barang.Harga);
Readln
End.

Dengan adanya penugasan
Barang2 := Barang1;
maka semua field pada record Barang2 akan berisi recrod Barang1. Hasil dari program di atas :
Nama Barang                 : Ubin TISKA 20x20
Kualitas                            : A
Harga                                : 14000



5)      Record Di Dalam Record
Mungkin saja sebuah record berisi record. Sebagai gambaran hal ini, perhatikan deklarasi berikut :
RecTanggal = Record
                                                  Tanggal,
                                                  Bulan,
                                                  Tahun               :Integer
                                            End;
RecPegawai = Record
                                                  Nomor              : LongInt;
                                                  Nama                : String [35];
                                                  TglLahir           : RecTanggal;
                                            Gaji                    : LongInt
                                     End;

Tampak bahwa tipe record bernama RecPegawai berisi record yang lain (RecTanggal).
Hal yang menarik yang perlu diperhatikan adalah cara mengakses field seperti Tanggal, Bulan dan Tahun. Notasi yang diperlukan adalah sebagai berikut.
Nama_variabel.TglLahir.Tanggal
Nama_variabel.TglLahir.Bulan
Nama_variabel.TglLahir.Tahun

Praktekkan program berikut, untuk mencoba pembuatan record dengan bentuk sepert di atas.

Program Rec3;
Uses crt;
Type
         RecTanggal = Record
                                                 Tanggal,
                                                 Bulan,
                                                 Tahun              : Integer
                                          End;
RecPegawai = Record
                                                 Nomor             : LongInt;
                                                 Nama               : string [35];
                                                 TglLahir          : RecTanggal;
                                                 Gaji                   : longInt
                                          End;
Var
         DataPeg : RecPegawai;                      {variabel betipe record}
Begin
Clrscr;
Penugasan nilai terhadap field-fiedl}
DataPeg.Nomor := 56789;
DataPeg.Nama   := ’Badu’;
DataPeg.TglLahir.Tanggal := 24;
DataPeg.TglLahir.Bulan := 12;
DataPeg.TglLahir.Tahun := 1972;
DataPeg.Gaji := 750000;

{menampilkan isi field}
Writeln (’Nama Pegawai  : ’, DataPeg.Nama);
Writeln (’Tanggal Lahir    : ’, DataPeg.TglLahir.Tanggal,
                     ’/’, DataPeg.TglLahir.Bulan,
                     ’/’, DataPeg.TglLahir.Tahun);
Readln
End.

Hasil dari program di atas adalah sebagai berikut :

Nama Pegawai                      : Badu
Tanggal Lahir                         : 24 / 12 / 1972

6)     Pernyataan With
Untuk menyederhanakan notasi seperti :
DataPeg.TglLahir.Tanggal
Turbo Pascal menyediakan pernyataan WITH. Bentuk pernyataan ini adalah sebagai berikut :
With nama_record do
pernyataan

Gambar 2.3 Bentuk Umum Pernyataan With(sumber:Kadir)
Pada bentuk ini, field-field yang terletak pada bagian pernyataan dapat disebutkan tanpa perlu menyertakan lagi nama record dan tanda titik. Untuk lebih jelasnya, perhatikan program berikut yang merupakan alternatif lain dari program di atas.


Program Rec4;
Uses crt;
Type
        RecBarang = Record
                                              Nama                : String [25];
                                              Kualitas            : Char;
                                              Harga                : LongInt
                                       End;
Var
        Barang : RecBarang;                          {variabel bertipe record}
Begin
Clrscr;
{penugasan nilai terhadap field-field}
With Barang do
Begin
        Nama := ’Ubin TISKA 20x20’;
        Writeln (’Nama Barang                    : ’, Nama);
        Writeln (’Kualitas   :’, Kualitas);
       Writeln (’Harga        :’, Harga);
End;
Readln
End.

Bila suatu record memiliki record lain, pernyataan With dapat diikuti dengan with yang lain. Sebagai contoh, program di atas ditulis menjadi :

Program Rec5;
Uses crt;
Type
       RecTanggal = Record
                                                Tanggal,
                                                Bulan,
                                                Tahun             : Integer
                                         End;
       RecPegawai = Record
                                                Nomor            : LongInt;
                                                Nama              : string [35];
                                                TglLahir         : RecTanggal;
                                                Gaji                  : LongInt
                                         End;
Var
       DataPeg : RecPegawai; {variabel bertipe record}
Begin
Clrscr;
{Penugasan nilai terhadap field-field}
With DataPeg do
With TglLahir do
Begin
       Nomor            := 56789;
       Nama              := ’Badu’;
       Tanggal          := 24;
       Bulan               := 12;
       Tahun             := 1972;
       Gaji                  := 750000;
End;
{menampilkan isi field}
With DataPeg do
       With TglLahir do
       Begin
                     Writeln (’Nama Pegawai             :’, DataPeg.Nama);
                     Writeln (’Tanggal lahir                 :’, DataPeg.TglLahir.Tanggal,
                                         ’/’, DataPeg.TglLahir.Bulan
                                         ’/’, DataPeg.TglLahir.Tahun)
       End;
Readln
End.

Pernyataan seperti :
With DataPeg do
                 With TglLahir do
Dapat ditulis menjadi :
With DataPeg, TglLahir do
dengan antar nama record dipisahkan oleh tanda koma.
Contoh program :

Program Rec6;
Uses crt;
Type
       RecTanggal = Record
                                                Tanggal,
                                                Bulan,
                                                Tahun             : Integer
                                         End;
       RecPegawai = Record
                                                Nomor            : LongInt;
                                                Nama              : string [35];
                                                TglLahir         : RecTanggal;
                                                Gaji                  : LongInt
                                         End;
Var
       DataPeg : RecPegawai; {variabel bertipe record}
Begin
Clrscr;
{Penugasan nilai terhadap field-field}
With DataPeg, TglLahir do
Begin
        Nomor           := 56789;
        Nama             := ’Badu’;
        Tanggal         := 24;
        Bulan              := 12;
        Tahun            := 1972;
        Gaji                 := 750000;
End;
{menampilkan isi field}
With DataPeg, TglLahir do
        Begin
                     Writeln (’Nama Pegawai             :’, DataPeg.Nama);
                     Writeln (’Tanggal lahir                 :’, DataPeg.TglLahir.Tanggal,
                                         ’/’, DataPeg.TglLahir.Bulan
                                         ’/’, DataPeg.TglLahir.Tahun)
        End;
Readln
End.

7)      Array Record
Elemen suatu array juga bisa berupa record. Sebagai contoh dapat dilihat di bawah ini.
Const
         Jum_Maks = 20;
Type
         RecBarang = Record
                                               Nama           : String [25];
                                               Kualitas       : Char;
                                               Harga           : LongInt
                                         End;
         TabelBarang = Array [ 1 . . Jum_Maks] of RecBarang;
Var
         DafBarang : TabelBarang;           {array record}

Pada contoh di atas, DafBarang adalah array yang maksimum berisi 20 buah elemen bertipe record.
Untuk mengakses suatu field, kita perlu menggunakan notasi :
       DafBarang [indeks].NamaField

Berikut contoh program Array Record.

Program Rec7;
Uses Crt;
Const
        Jum_Maks = 20;                        {jumlah maksimal jenis baramg}


Type
        RecBarang = Record
                                                 Nama              : string [25];
                                                 Kualitas          : char;
                                                 Harga              : longInt
                                      End;
        TabelBarang = Array [ 1 . . Jum_Maks] of RecBarang;
Var
        DafBarang : TabelBarang;                 {array record}
        JumBarang : Integer;

{memasukkan data barang je array DafBarang}
Procedure EntriBarang (Var DafBarang : TabelBarang;
                                                          Var JumBarang : Integer);    
Var
       Indeks : Integer;
Begin
       Clrscr;
       Write (’Jumlah Barang (Maksimum = 20) :’); Readln (JumBarang);
       For Indeks := 1 to JumBarang do
       With Dafbarang [indeks] do
       Begin
       Clrscr;
       Writeln (’Data Barang ’, Indeks, ’ :’);
       Write (’Nama                                                     :’); Readln (Nama);
       Write (’Kualitas                                                 :’); Readln (Kualitas);
       Write (’Harga                                                     :’); Readln (Harga);
       Writeln;
       End;
       End;                {akhir EntriBarang}

{menampilkan isi array DafBarang}
Procedure InfoBarang (Var DafBarang : Tabelbarang;
                                                        JumBarang : Integer);
Var
       Indeks : Integer;
Begin
       Clrscr;
       Writeln (’NAMA BARANG’:25, ’KUALITAS’:10, ’HARGA’:10);
       For Indeks := 1 to JumBarang do
       With Dafbarang [Indeks] do
       Writeln (Nama : 25, Kualitas : 10, Harga : 8);
       End;                {Akhir InfoBarang}


Begin
       Entribarang (DafBarang, JumBarang);
       InfoBarang (DafBarang, JumBarang);
       Readln
End.                 


C.   Penutup
Record adalah salah satu tipe data terstuktur bentukan yang digunakan untuk mempresntasikan sebuah objek yang tidak dapat dipresentasikan menggunakan tipe data dasar, seperti integer, real, boolean, character. Setiap record terdiri dari beberapa elemen yang disebut field. Setiap field menggambarkan informasi tertentu, dan tipe setiap field sudah dikenal, baik itu tipe dasar atau tipe bentukan lainnya.

Operasi atau manipulasi terhadap record hanya dapat dilakukan terhadap field-field pembentuknya. Pengacuan pada setiap field dilakukan dengan record selector. Operasi yang dapat dilakukan terhadap field-field tersebut sama dengan operasi yang dapat dikenakan terhadap tipe pembentuknya. 
Share this article :

0 komentar:

Speak up your mind

Tell us what you're thinking... !

 
Support : Creating Website | Sahrul-Teknik | Template
Proudly powered by Blogger
Copyright © 2011. MEDIA BELAJAR - All Rights Reserved
Template Design by Creating Website Published by Sahrul-Teknik