array dan record

7
RECORD III. Dasar Teori Record merupakan kumpulan elemen data yang dikumpulkan menjadi satu kesatuan dengan tipe data sama ataupun berbeda. Meskipun field tersebut berada dalam satu kesatuan, namun masih dapat di akses secara individual. 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). Cara pendeklarasian dari record adalah sebagai berikut: • 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 x.Usia Nama variable disertai nama field. x.Nama x.Kota x.Kodepos Contoh. program RECORD_INTRO; type tanggal = record bulan, hari, tahun : integer; end;

Upload: ezra-greg-schmidt

Post on 05-Jul-2015

254 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Array Dan Record

RECORDIII. Dasar TeoriRecord merupakan kumpulan elemen data yang dikumpulkan menjadi satu kesatuan dengan tipe data sama ataupun berbeda. Meskipun field tersebut berada dalam satu kesatuan, namun masih dapat di akses secara individual.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). Cara pendeklarasian dari record adalah sebagai berikut:• Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),• Mendefinisikan variabel untuk dilakukan operasi. SYNTAX type nama_record = recordidentifier_1 : tipe_data_1;identifier_n : tipe_data_n;end;var variabel : nama_record; Contoh. type Data_mahasiswa = recordNama : string;Usia : integer;Kota : String;Kodepos : integer;end;Varx: Data_mahasiswa; 1. Pengaksesan Elemen Recordx.Usia Nama variable disertai nama field. x.Namax.Kotax.Kodepos Contoh. program RECORD_INTRO;type tanggal = recordbulan, hari, tahun : integer;end;var waktu : tanggal;beginwaktu.hari :=25;waktu.bulan:=09;waktu.tahun:= 1983;writeln('hari ini adalah ',waktu.hari,':',waktu.bulan,':', waktu.tahun)end.

Page 2: Array Dan Record

2. Pengunaan With … doPernyataan with untuk lebih menyederhanakan pengaksesan field-field pada record. Pemrograman dapat mengakses field cukup dengan menyebutkan nama field-nya saja.Misalkan pernyataan : x.Namax.Usiax.Kotax.Kodepos menjadi with x doBeginNamaUsiaKotaKodeposend Contoh. program RECORD_INTRO;type tanggal = recordbulan, hari, tahun : integer;end;varwaktu : tanggal;begin {program utama}with waktu do {mulai with}beginhari :=25;bulan:=09;tahun:=1983;writeln('hari ini adalah ',hari,':',bulan,':', tahun)end {akhir with}end. 3. Array dari RecordSuatu array dapat juga berisi record contoh suatu deklarasi record tanggal. type tanggal = recordbulan, 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;

Page 3: Array Dan Record

Birthdays[1].bulan:=09;Birthdays[1].tahun:=1983; 4. Record di dalam RecordRecord bisa berisi record lain sebagai field. Seperti contoh record tanggal dan jam dikombinasikan menjadi sebuah record saat ini, type tanggal = recordbulan, hari, tahun : integer;end;type waktu =recordjam, menit, detik : integer;end;type waktu_ini =recordtanggal_ini : tanggal;waktu_ini : waktuend; 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; Simple Record dan Array pada PascalPada ujian struktur data kemaren ada sebuah soal yang memerintahkan kita untuk membuat sebuah program untuk sebuah perpustakaan. Program ini akan merekam informasi mengenai 200 data buku-buku yang ada meliputi judul buku, kode, pengarang, edisi, tahun terbit, dan penerbitnya. Output yang diharapkan adalah berupa tabel yang menampilkan informasi data buku yang telah direkam secara terurut ascending dengan metode sorting berdasarkan judul buku. Demikianlah kira-kira gambaran tentang program tersebut..uses wincrt; typerecBuku=recordjudul:string[20];kode:string[10];pengarang:string[20];ed:string[4];tahun:integer;penerbit:string[20];end;vara:array[1..200] of recBuku;tempjudul,temppeng,temppnb:string[20];tempkod:string[10];temped:string[4];tempth,i,j:integer;

Page 4: Array Dan Record

beginwriteln(’+++++++++++++++++ Input Data Buku ++++++++++++++++’);writeln(’—————————————————————–’);for i:=1 to 200 dobeginwrite(’Judul Buku : ‘);readln(a[i].judul);write(’Kode Buku : ‘);readln(a[i].kode);write(’Pengarang : ‘);readln(a[i].pengarang);write(’Edisi : ‘);readln(a[i].ed);write(’Tahun terbit : ‘);readln(a[i].tahun);write(’Penerbit : ‘);readln(a[i].penerbit);writeln;end;for i:=1 to 200 dobeginfor j:=1 to 200 dobeginif a[j].judul > a[i].judul thenbegintempjudul:=a[j].judul;a[j].judul:=a[i].judul;a[i].judul:=tempjudul;tempkod:=a[j].kode;a[j].kode:=a[i].kode;a[i].kode:=tempkod;temppeng:=a[j].pengarang;a[j].pengarang:=a[i].pengarang;a[i].pengarang:=temppeng;temped:=a[j].ed;a[j].ed:=a[i].ed;a[i].ed:=temped;tempth:=a[j].tahun;a[j].tahun:=a[i].tahun;a[i].tahun:=tempth;temppnb:=a[j].penerbit;a[j].penerbit:=a[i].penerbit;a[i].penerbit:=temppnb;end;end;end;clrscr;writeln;writeln(’+++++++++++++++++ Output Data Buku +++++++++++++++++++’);writeln;writeln(’———————————————————————–’);writeln(’| No | Judul | Kode | Pengarang | Edisi | Tahun | Penerbit |’);writeln(’———————————————————————–’);

Page 5: Array Dan Record

writeln;for i:=1 to 200 dobeginwriteln(i,’ ‘,a[i].judul:3,’ ‘,a[i].kode:3,’ ‘,a[i].pengarang:3,’ ‘,a[i].ed:3,’ ‘,a[i].tahun:3,’ ‘,a[i].penerbit:3);end;readln;end.Pada program diatas deklarasi untuk proses sorting data ditunjukkan pada :for i:=1 to 200 dobeginfor j:=1 to 200 dobeginif a[j].judul > a[i].judul thenbegintempjudul:=a[j].judul;a[j].judul:=a[i].judul;a[i].judul:=tempjudul;…a[j].penerbit:=a[i].penerbit;a[i].penerbit:=temppnb;end;end;end;yang akan memproses data secara ascending berdasarkan judul buku yang telah diinputkan pengguna. Demikian semoga bisa membantu kita semua.4.2.2.3 Tipe RekamanSama halnya dengan larik, rekaman (record) adalah kumpulan data. Perbedaan antara larik dengan rekaman adalah dalam larik semua elemennya harus bertipe sama tetapi dalam rekaman setiap elemen bisa mempunyai tipe data yang berbeda satu sama lainnya.Bentuk umum deklarasi rekaman adalahtype pengenal = recordmedan1 :tipe1;medan2 :tipe2;...medann :tipen;end;Keterangan:pengenal : pengenal yang menunjukkan tipe data yang akan dideklarasikan.medan1,…, medann : nama medan yang akan digunakan.tipe1,…, tipen : sembarang tipe data yang telah dideklarasikan sebelumnya.Contoh deklarasi rekaman,

Page 6: Array Dan Record

type Tgl_Kalender = recordTanggal :1..31;Bulan : 1..12;Tahun : 1900..2000;end;