• 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

Retnaningati (2011), melakukan penelitian di SMA Negeri 3 Surakarta menggunakan Model Pembelajaran Siklus Belajar (Learning Cycle) Untuk Meningkatkan Ke- terampilan Proses

Misalkan saja pendapatmu benar adanya, dan dia berhasil menemukan orang yang telah, mengancam nyawamu tadi malam, pasti dia pun akan mencium siapa pencuri berkas perjanjian

Artinya, hasil belajar kelompok siswa yang memiliki sikap negatif dengan menggunakan model pembelajaran Think Pair and Share lebih tinggi dari pada hasil belajar siswa

Dari ketiga hasil petikan wawancara di atas, dapat peneliti simpulkan bahwa program BSM yang sebelumnya pernah SD Negeri Kalicacing 02 Salatiga memprogramkan dalam

Menyatakan bahwa terdakwa KHAIRUL ARMAN terbukti secara sah dan meyakinkan bersalah melakukan tindak pidana : “Memperdagangkan barang yang diketahui atau patut diketahui

Analisis Pengaruh Kepuasan Gaji, Kepuasan Kerja, Komitmen Organisasional terhadap Turnover Intention: Studi Kasus Pada RS Roemani Muhammadiyah

Sampel pada penelitian eksperimental ini adalah ekstrak bawang putih ( Allium sativum Linn ) yang dibuat dengan cara maserasi.. Hasil : Hasil untuk uji aktivitas antibakteri

“Pada kata [talua] dalam bahasa Minangkabau diucapkan menjadi [alU] ketika dilafalkan responden yang diartikan dalam bahasa Indonesia berarti „telur‟. Pengucapan ini