• Tidak ada hasil yang ditemukan

Pendahuluan Pendefinisian Record Menggunakan Tipe Data Record Tipe Data Record dengan Field Tipe Record (Record Terstruktur)

N/A
N/A
Protected

Academic year: 2018

Membagikan "Pendahuluan Pendefinisian Record Menggunakan Tipe Data Record Tipe Data Record dengan Field Tipe Record (Record Terstruktur)"

Copied!
10
0
0

Teks penuh

(1)

S1 Teknik Informatika-Unijoyo 1

Algoritma Pemrograman

Pertemuan Ke-12

(

Record

)

::

::

(2)

S1 Teknik Informatika-Unijoyo 3

Record

adalah elemen larik yang bertipe terstruktur

Dengan menggunakan tipe data

record

, beberapa item

data yang masing-masing dapat mempunyai tipe data

berbeda-beda dapat dikumpulkan. Masing-masing item

data disebut dengan

field

. Jadi

record

terdiri dari

kumpulan

field

yang dapat berbeda tipe

Biasanya suatu

record

berisi beberapa

field

untuk sebuah

subyek tertentu

Pendahuluan

DEKLARASI

type Hasil : record

<JariJari : real,

Keliling

: real,

Luas

: real

>

Lingkaran : Hasil

type

Hasil =

record

JariJari :

real

;

Keliling :

real

;

Luas

:

real

;

end

;

var

Lingkaran : Hasil;

(3)

S1 Teknik Informatika-Unijoyo 5

Contoh 1: Misal

record

TabMhs

adalah sebuah larik

yang elemennya menyatakan

nilai ujian mata kuliah (MK)

yang diambil seorang

mahasiswa

Data (

field

) setiap mahasiswa

adalah:

NIM

(Nomor Induk Mahasiswa)

nama mahasiswa

mata kuliah

yang diambil

nilai

mata kuliah

Menggunakan Tipe Data

Record

DEKLARASI

const Nmaks = 100

type Mahasiswa :

record<NIM : integer,

NamaMhs : string,

KodeMK : string,

Nilai : char

>

TabMhs: array[1..Nmaks] of

Mahasiswa

k : integer

{pencatat indeks larik}

N : integer

Mahasiswa = record

NIM : integer; NamaMhs : string[20]; KodeMK : string[10]; Nilai : char;

end;

var

TabMhs: array[1..Nmaks] of Mahasiswa; k, N : integer;

begin

write(‘Masukkan jumlah data ? ‘);

readln(N);

for k := 1 to N do

writeln(‘Data ke-‘,k,’ : ‘); begin

write(‘Masukkan NIM?: ‘);

readln(TabMhs[k].NIM);

write(‘Masukkan NAMA?: ‘);

(4)

S1 Teknik Informatika-Unijoyo 7

Mengurutkan data berdasarkan nomor mahasiswa (NIM)

dengan urutan dari yang terkecil ke yang terbesar dan

kemudian menampilkannya pada tabel seperti di bawah ini:

Contoh 2:

Algoritma URUT_NIM

DEKLARASI ( * Program Utama *) const Nmaks = 100

type Mahasiswa : record<NIM : integer, Nama : string, Kode : string, Nilai: char

>

TabMhs : array[1..Nmaks] of Mahasiswa Bantuan : Mahasiswa

I, J, N : integer

procedure BacaData

{ Membaca data record TabMhs }

DEKLARASI (* Prosedur BacaData *)

{ Tidak ada }

DESKRIPSI: (* Prosedur BacaData *) for I ← 1 to N do

write(‘Nomor Mahasiwa ke-‘,I,’ ? ‘) read(TabMhs[I].NIM)

write(‘Nama Mahasiwa ke-‘,I,’ ? ‘) read(TabMhs[I].Nama)

write(‘Kode Mata Kuliah ke-‘,I,’ ? ‘) read(TabMhs[I].Kode)

write(‘Nilai Mahasiwa ke-‘,I,’ ? ‘) read(TabMhs[I].Nilai)

endfor

(5)

S1 Teknik Informatika-Unijoyo 9

procedure urut

{ Mengurutkan isi record TabMhs berdasarkan NIM } DEKLARASI (* Prosedur urut *)

{ Tidak ada }

DESKRIPSI: (* Prosedur urut *) for I ←1 to N-1 do

for J ← 1 to N-1 do

if TabMhs[J].NIM > TabMhs[J+1].NIM then Bantuan := TabMhs[J];

TabMhs[J]:= TabMhs[J+1]; TabMhs[J+1]:= Bantuan; endif

endfor endfor

procedure tampil

{Menampilkan isi record TabMhs yg telah diurutkan berdasarkan NIM dlm bentuk tabel } DEKLARASI (* Prosedur tampil *)

{ Tidak ada }

DESKRIPSI: (* Prosedur tampil *)

write('---') write(' Nomor Nama Kode Nilai ') write('---') for I ←1 to N do

with TabMhs[I] do

write(NIM,Nama,Kode,Nilai); endfor

write('---');

Contoh 2: Solusi Algoritma … [bagian 2/3]:

DESKRIPSI: (* Program Utama *)

write(‘Jumlah Mahasiswa ? ‘)

read(N)

bacadata

urut

tampil

(6)

S1 Teknik Informatika-Unijoyo 11 Program URUT_NIM;

const Nmaks = 100;

type

Mahasiswa = record

NIM : integer;

TabMhs : array[1..Nmaks] of Mahasiswa; Bantuan : Mahasiswa;

I, J, N : integer;

write(‘Nomor Mahasiwa ke-‘,I,’ ? ‘);readln(TabMhs[I].NIM);

write(‘Nama Mahasiwa ke-‘,I,’ ? ‘);readln(TabMhs[I].Nama);

write(‘Kode Mata Kuliah ke-‘,I,’ ? ‘);readln(TabMhs[I].Kode);

write(‘Nilai Mahasiwa ke-‘,I,’ ? ‘);readln(TabMhs[I].Nilai);

end;

end;

Contoh 2: Solusi Pascal … [bagian 1/3]:

procedure urut; begin

for I := 1 to N-1 do for J := 1 to N-1 do

if TabMhs[J].NIM > TabMhs[J+1].NIM then begin

Bantuan := TabMhs[J]; TabMhs[J]:= TabMhs[J+1]; TabMhs[J+1]:= Bantuan;

end;

end;

procedure tampil; begin

(7)

S1 Teknik Informatika-Unijoyo 13

(* PROGRAM UTAMA *)

begin

write

(‘Jumlah Mahasiswa ? ‘);

readln

(N);

writeln

;

bacadata

;

clrscr;

urut

;

tampil

;

end.

Contoh 2: Solusi Pascal… [bagian 3/3]:

Jumlah Mahasiswa ? 3

Nomor Mahasiwa ke-1 ? 0604100044

Nama Mahasiwa ke-1 ? Adi Darmaji

Kode Mata Kuliah ke-1 ? FTC104

Nilai Mahasiwa ke-1 ? B

Nomor Mahasiwa ke-2 ? 0604100011

Nama Mahasiwa ke-2 ? Elisa Hadi

Kode Mata Kuliah ke-2 ? FTC111

Nilai Mahasiwa ke-2 ? A

Nomor Mahasiwa ke-1 ? 0604100020

Nama Mahasiwa ke-1 ? Aditya

Kode Mata Kuliah ke-1 ? FTC115

Nilai Mahasiwa ke-1 ? C

(8)

S1 Teknik Informatika-Unijoyo 15

Tipe data

record

juga dapat memiliki

field

berupa tipe data

record

yang lainnya. Misalnya item-item data pada data nilai-nilai mata

kuliah yang diambil setiap mahasiswa pada suatu semester.

Data yang disimpan di dalam

record

adalah sbb:

1.

NIM (Nomor Induk Mahasiswa)

2.

NamaMhs (nama mahasiswa)

3.

Mata Kuliah (MK) yang diambil mahasiswa, berupa

record

:

Kode mata kuliah ke-1

Nama mata kuliah ke-1

Nilai mata kuliah ke-1

Kode mata kuliah ke-2

Nama mata kuliah ke-2

Nilai mata kuliah ke-2

. . .

Kode mata kuliah ke-n

Nama mata kuliah ke-n

Nilai mata kuliah ke-n

Tipe Data

Record

dengan

Field

Tipe

Record

(

Record

Terstruktur)

DEKLARASI

const Nmaks = 100

const Mn = 10

type MataKuliah :

record

<KodeMK : string,

NamaMK : string,

Nilai

: char

>

type Mahasiswa :

record

<NIM: integer,

Nama: string,

MK: array[1..Mn] of MataKuliah

>

TabMhs : array[1..Nmaks] of Mahasiswa

const

Nmaks = 100;

Mn = 10;

type

MataKuliah =

record

KodeMK:

string

[8];

NamaMK:

string

[20];

Nilai:

char

;

end

;

Mahasiswa =

record

NIM :

integer

;

Nama :

string

[20];

MK :

array

[1..Mn]

of

Cara mengakses elemen TabMhs :

TabMhs[N] {elemen ke-N dari TabMhs}

TabMhs[N].NIM {mengacu field NIM dari elemen ke-N dari TabMhs}

(9)

S1 Teknik Informatika-Unijoyo 17

Algoritma RECORD_DATA_MAHASISWA

{ Mengisi elemen record mahasiswa } DEKLARASI

const Nmaks = 10 const Mn = 10

type MataKuliah : record<KodeMK : string, NamaMK : string, Nilai : char>

type Mahasiswa : record<NIM : integer, Nama : string, MK : array[1..Mn] of MataKuliah> LarikMhs : array[1..Nmaks] of Mahasiswa

I, J, M, N : integer DESKRIPSI:

write(’Masukkan Jumlah Data Mahasiswa ? ’) read(N)

for I ←1 to N do

write(’Nomor Mahasiswa ke-‘,I,’ ? ’) read(TabMhs[I].NIM)

write(’Nama Mahasiswa ke-‘,I,’ ? ’) read(TabMhs[i].Nama)

write(’Masukkan Jumlah Data Mata Kuliah? ’) read(M)

for J ← 1 to M do

write(’Kode Mata Kuliah ke-‘,J,’ ? ’) read(TabMhs[I].MK[J].KodeMK)

write(’Nama Mata Kuliah ke-‘,J,’ ? ’) read(TabMhs[I].MK[J].NamaMK)

write(’Nilai Mata Kuliah ke-‘,J,’ ? ’) read(TabMhs[I].MK[J].Nilai)

endfor endfor

Solusi Algoritma untuk mengisi TabMhs:

Program RECORD_DATA_MAHASISWA; const Nmaks = 100;

Mn = 10;

type

MataKuliah = record

KodeMK : string[8]; NamaMK : string[20]; Nilai: char;

end; Mahasiswa = record

NIM : integer; Nama : string[20]; MK : array[1..Mn] of MataKuliah;

end;

var

TabMhs : array[1..Nmaks] of Mahasiswa; I, J, M, N : integer;

begin

write(’Masukkan Jumlah Data Mahasiswa ? ’);readln(N);

for I := 1 to N do begin

write(’Nomor Mahasiswa ke-‘,I,’ ? ’); readln(TabMhs[I].NIM);

write(’Nama Mahasiswa ke-‘,I,’ ? ’); readln(TabMhs[I].Nama);

write(’Masukkan Jumlah Data Mata Kuliah? ’); readln(M); writeln;

for J :=1 to M do

(10)

S1 Teknik Informatika-Unijoyo 19

Record

adalah elemen larik yang bertipe terstruktur

Tipe data

record

merupakan kumpulan beberapa item

data dengan tipe data yang berbeda-beda atau biasa

disebut sebagai

field

Tipe data

record

juga dapat memiliki

field

berupa tipe

data

record

yang lainnya

Summary

Jogiyanto HM [1989].

Turbo Pascal

, Yogyakarta: Andi

Offset.

Noor Ifada [2005].

Diktat Matakuliah Algoritma

Pemrograman (Hibah Kompetisi A1)

, Bangkalan:

Jurusan Teknik Informatika, Universitas Trunojoyo.

Rinaldi Munir [2003].

Algoritma dan Pemrograman

dengan Pascal dan C edisi Kedua

, Bandung: Informatika.

Referensi

Dokumen terkait

Format data item list yang digunakan pada basis data ini bertipe XLS (Excel), untuk membuatnya dapat digunakan Microsoft Excel atau Open Office.. Kata kunci: safeguards, web,

(merupakan suatu bentuk data yang bisa mengandung sejumlah elemen dengan tipe yang berbeda-beda dan memungkinkan penambahan atau pengurangan

Array adalah suatu tipe data terstruktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu.. Array dapat berupa array 1

Untuk menunjuk ke masing-masing elemen tabel diperlukan sebuah subscript yg dapat berupa literal numerik (bilangan bulat positif) ataupun suatu identifier yg berisi bilangan

Deklarasi tipe data Record diawali dengan kata cadangan Record diikuti oleh suatu daftar Field dan diakhiri dengan kata cadangan End... Pengenal_Record.Pengenal_Field

Dari deklarasi di atas berarti kita mendefinisikan suatu tipe data baru bernama LARIK yang merupakan array berisi data real dengan elemen maksimum yang dapat ditampung sebanyak 100

Struct merupakan tipe yang menghimpun sejumlah data dengan tipe yang berbeda-beda sehingga data yang diletakkan dalam sebuah struct adalah data yang terkait. Di dalam

Perbedaan antara array dengan record adalah bahwa dalam array semua elemennya harus bertipe sama, tetapi dalam rekaman setiap elemen bisa mempunyai tipe data