270 likes | 477 Vues
record. Altien Jonathan Rindengan, S.Si., M.Kom. Pendahuluan. Tipe data bentukan atau tipe yang didefinisikan sendiri oleh pemrogram (user-defined type data) Tipe bentukan : Tipe dasar yang diberi nama dengan nama tipe baru Tipe terstruktur. Pendahuluan ….
E N D
record Altien Jonathan Rindengan, S.Si., M.Kom.
Pendahuluan • Tipe data bentukanatautipe yang didefinisikansendiriolehpemrogram (user-defined type data) • Tipebentukan : • Tipedasar yang diberinamadengannamatipebaru • Tipeterstruktur
Pendahuluan …. • Tipedasar yang diberinamadengannamatipebaru : • Dimaksudkan agar lebihmudahdiinterpretasikan/ dipahamiolehpembacateks program • Contoh : A : integer; menjadi Typebilangan_bulat : integer; A : bilanganbuat;
Pendahuluan …. • Record : • Tipe data majemuk (biasanyaterdiridaribeberapatipedasar data) • Tipe data terstruktur • Record disusunolehlebihdarisatu field, dimanatiap field menyimpan data daritipedasartertentuatautipebentukan lain yang telahdidefinisikansebelumnya. • Nama record dintentukansendiriolehpemrogram
Notasi • Notasi : Typenama_record : record < nama_var_1 : tipe_var nama_var_2 : tipe_var . . . nama_var_n : tipe_var >
Contoh • Contoh 1 • Titikdalamkoordinatkartesiusdinyatakandalam (x,y) dengan x adalahnilaiabsis (sumbu-x) dan y adalahnilaiordinat (sumbu-y). typetitik = record < x,y : real > • Jikadideklarasikan p adalahvariabelbertipetitik, makacaramengacutiapfield pada p adalah : p.x p.y
Contoh …. • Contoh 2 • Tanggaldalamkalender, dinyatakandalambentuk tanggal (dd), bulan (mm), tahun (yy). typetanggal = record < dd: integer, {1..31} mm: integer, {1..12} yy: integer {>0} >
Contoh …. • Contoh 3 • Strukturtipe data bentukan yang lebihkompleks • Misalkanakanmenyimpan data nilai-nilaimatakuliahmahasiswa • Akandibuat record matakuliahdannilaimahasiswa • Record nilaimahasiswajugamengacuke record matakuliah • Struktur record : • NIM • NamaMahasiswa • Mata kuliah : • Kode Mata kuliah • Nama Mata kuliah • Nilai Mata kuliah
Contoh …. type : mata_kuliah = record < kode_mk : string, nama_mk : string, nilai : char {A/B/C/D/E} > type : nil_mhs = record < NIM : string, nama_mhs : string, mk : mata_kuliah > Jikavariabel p bertipenil_mhs, makacaramengacufieldnya : p.NIM p.mk.nama_mk
Contoh …. program record_01; uses crt; type tanggal = record dd : integer; mm : integer; yy : integer; end; var p : tanggal; begin clrscr; write('Masukkantanggal: ');readln(p.dd); write('Masukkanbulan : ');readln(p.mm); write('Masukkantahun : ');readln(p.yy); writeln; writeln('Tanggal yang di-input : '); writeln(p.dd,' - ',p.mm,' - ',p.yy); readln; end. Akhiridenganendpada record
Contoh …. program record_02; uses crt; type mata_kuliah = record kode_mk : string[6]; nama_mk: string; nilai : char; end; type nilai_mhs = record NIM : string[9]; nama_mhs: string; mk: mata_kuliah; end; varnilmhs : nilai_mhs;
Contoh …. begin clrscr; write('Nomorindukmahasiswa : ');readln(nilmhs.NIM); write('Namamahasiswa : ');readln(nilmhs.nama_mhs); write('Kodematakuliah : ');readln(nilmhs.mk.kode_mk); write('Namamatakuliah : ');readln(nilmhs.mk.nama_mk); write('Nilai : ');readln(nilmhs.mk.nilai); writeln; writeln('Data mahasiswa yang di-input : '); writeln; write(nilmhs.NIM,' ',nilmhs.nama_mhs,' ',nilmhs.mk.kode_mk, ' ', nilmhs.mk.nama_mk,' ',nilmhs.mk.nilai); readln; end.
Record dalam Array • Misalnyaakanmengelola data sekumpulanmahasiswa • Data mahasiswa : • NIM (nomorindukmahasiswa) • Namamahasiswa • IPK (indeksprestasikomulatif) • Array mahasiswadengansetiapelemenbertiperecord • Tiap record terdiriatas field NIM, nama_mhs, dan IPK
Record dalam Array …. • n adalahjumlahmahasiswa • Cara mengacuelemenmhsadalah : • mhs[i] (elemenke-idari array mhs) • mhs[i].NIM (mengacu field NIM darielemenke-idariarray) • mhs[i].IPK (mengacu field IPK darielemenke-idari array) type mahasiswa : record < NIM : integer, nama_mhs : string, IPK : real > type datmhs : array[1..n]of mahasiswa varmhs: datmhs
Record dalam Array …. program record_03; uses crt; type mahasiswa = record NIM : string[9]; nama_mhs : string; IPK : real; end; type datmhs = array [1..100] of mahasiswa; var mhs : datmhs; i,n : integer;
Record dalam Array …. begin clrscr; write('Jumlahmahasiswa : ');readln(n); writeln; for i:=1 to n do begin write(i); write(' NIM : ');readln(mhs[i].NIM); write(' Namamahasiswa : ');readln(mhs[i].nama_mhs); write(' IPK : ');readln(mhs[i].IPK); end; writeln; writeln('No. NIM Nama IPK '); for i:= 1 to n do writeln (i,' ',mhs[i].NIM,' ',mhs[i].nama_mhs,' ', mhs[i].IPK:0:2); readln; end.
Record dalam Array …. • Strukturtipe data yang lebihkompleks • record array dalam record array yang lain • Misalkan data n mahasiswa yang masing-masingmengontrak 3 matakuliah. • Strukturdatanya : • NIM • nama_mhs • mata_kuliah : • kode_mk • nama_mk • nilai_mk
Record dalam Array …. type mata_kuliah: record < kode_mk: string[6], nama_mk: string, nilai: char > type mahasiswa : record < NIM : string[9], nama_mhs : string, mk: array[1..3]of mata_kuliah > type datmhs : array[1..100]of mahasiswa varmhs: datmhs
Record dalam Array …. • n adalahjumlahmahasiswa • Cara mengacuelemenmhsadalah : • mhs[i] (elemenke-idari array mhs) • mhs[i].NIM (mengacu field NIMdarielemenke-idariarray mhs) • mhs[i].mk[j].nilai (mengacu field nilaike-j darielemenke-i array mhs)
Record dalam Array …. program record_04; uses crt; type mata_kuliah = record kode_mk: string[6]; nama_mk: string; nilai: char; end; type mahasiswa = record NIM : string[9]; nama_mhs: string; mk: array[1..3] of mata_kuliah; end; type datmhs = array[1..100] of mahasiswa; varmhs: datmhs; i,j,a,n: integer;
Record dalam Array …. begin clrscr; write('Jumlahmahasiswa : ');readln(n); writeln; for i:=1 to n do begin write(i); write(' NIM : ');readln(mhs[i].NIM); write(' Namamahasiswa : ');readln(mhs[i].nama_mhs); for j:=1 to 3 do begin write(' ',j); write(' Kode_mk : ');readln(mhs[i].mk[j].kode_mk); write(' Nama_mk: ');readln(mhs[i].mk[j].nama_mk); write(' Nilai: ');readln(mhs[i].mk[j].nilai); end; end;
Record dalam Array …. writeln; write('Data mahasiswake - ');readln(a); writeln('Nama : ',mhs[a].NIM); writeln('NIM : ',mhs[a].nama_mhs); writeln; for j:=1 to 3 do writeln(mhs[a].mk[j].kode_mk,' ', mhs[a].mk[j].nama_mk,' ',mhs[a].mk[j].nilai); readln; end.