Melihat judul tutorial kali ini mungkin terdengar sedikit rumit. Tapi jika anda sudah memahami cara penggunaan tipe data array dan tipe data record pascal (yang telah kita bahas sebelumnya) , pembahasan kali ini bisa dipahami dengan mudah.
Kali ini saya akan saya akan menggabungkan tipe data array dengan tipe data record, atau lebih tepatnya membuat array dari struktur data record di dalam bahasa pemrograman pascal.
Cara Membuat Tipe Data Record Bentukan
Pada 2 tutorial record pascal sebelum ini, saya membuat record di bagian var kode program pascal. Kali ini saya akan memindahkannya ke bagian type. Dengan demikian, record akan menjadi tipe data bentukan yang nantinya bisa digunakan sebagai basis dari array.
Sebagai contoh, saya kembali menggunakan record data ‘siswa’. Sebelumnya kita mendefenisikan record siswa di bagian var, seperti contoh berikut ini:
var  siswa: record         nama: string[20];         umur: integer;         sekolah: string[30];         kota: string[20];         end;
Saya akan memindahkannya kepada bagian type, kemudian mengaksesnya dari bagian var:
type  rec_siswa =    record      nama: string[20];      umur: integer;      sekolah: string[30];      kota: string[20];    end; var  siswa: rec_siswa;
Tampak sedikit perubahan, dimana kali ini saya menggunakan variabel ‘rec_siswa’ sebagai penampung tipe data bentukan record, baru kemudian ‘memasukkannya’ ke dalam variabel ‘siswa’.
Berikut kode program lengkap cara pembuatan record di bagian type pascal:
program tipe_record; uses crt; type  rec_siswa =    record      nama: string[20];      umur: integer;      sekolah: string[30];      kota: string[20];    end; var  siswa: rec_siswa; begin  clrscr;  with siswa do    begin      nama:= 'Anto';      umur:= 17;      sekolah:= 'SMA 1 Durian Runtuh';      kota:= 'Pelembang';       writeln('Nama : ',nama);      writeln('Umur : ',umur);      writeln('Sekolah : ',sekolah);      writeln('Kota : ',kota);  end;   readln; end.
Selain memindahkan record ‘siswa’ ke bagian type, saya juga menggunakan perintah with untuk memudahkan pengaksesan isi array. Ini sudah kita bahas pada tutorial sebelumnya: Fungsi dan cara penggunaan perintah with pada record.
Cara Membuat Array dari Struktur Data Record
Setelah memindahkan record ke bagian type, kita bisa membuat array berdasarkan record ini. Melanjutkan contoh record siswa, cara pembuatan array-nya adalah sebagai berikut:
var  siswa: array [0..5] of rec_siswa;
Kode program ini akan membuat variabel siswa berisi 5 element array yang setiap element-nya adalah record. Terasa membingungkan?
Untuk mengakses element ini, kita juga harus menggunakan index array. Sebagai contoh, untuk mengakses element pertama, yang memiliki index 0, kita bisa menulis sebagai berikut:
 siswa[0].nama:= 'Anto';  siswa[0].umur:= 17;  siswa[0].sekolah:= 'SMA 1 Durian Runtuh';  siswa[0].kota:= 'Pelembang';
Bagaimana untuk element kedua (ber-index 1)?
 siswa[1].nama:= 'Santi';  siswa[1].umur:= 18;  siswa[1].sekolah:= 'SMA 1 Merdeka';  siswa[1].kota:= 'Makasar';
Seperti yang terlihat, kita mengkombinasikan pengaksesan index array dengan record. Berikut kode program lengkap cara penggabungkan array dengan record ini:
program tipe_record_array; uses crt; type  rec_siswa =    record      nama: string[20];      umur: integer;      sekolah: string[30];      kota: string[20];    end; var  siswa: array [0..5] of rec_siswa; begin  clrscr;   siswa[0].nama:= 'Anto';  siswa[0].umur:= 17;  siswa[0].sekolah:= 'SMA 1 Durian Runtuh';  siswa[0].kota:= 'Pelembang';   writeln('Nama : ',siswa[0].nama);  writeln('Umur : ',siswa[0].umur);  writeln('Sekolah : ',siswa[0].sekolah);  writeln('Kota : ',siswa[0].kota);   writeln;   siswa[1].nama:= 'Santi';  siswa[1].umur:= 18;  siswa[1].sekolah:= 'SMA 1 Merdeka';  siswa[1].kota:= 'Makasar';   writeln('Nama : ',siswa[1].nama);  writeln('Umur : ',siswa[1].umur);  writeln('Sekolah : ',siswa[1].sekolah);  writeln('Kota : ',siswa[1].kota);   readln; end.
Semoga anda bisa memahami maksud dari kode program diatas. Sebagai latihan, dapatkah anda melanjutkannya hingga element ke-6 (yang memiliki index array 5)?
Tutorial kali ini sekaligus menutup 3 tutorial yang membahas tipe data record pascal. Berikutnya kita akan masuk ke dalam tipe data set dalam bahasa pemrograman pascal.
tolong posting cara membuat tipe casting
Ditampung ya… :)
kok cuman sapai 15 ya gan?…
tlong di lanjutin dong…
Mungkin maksudnya 'kok cuma sampai tutorial ke 25' y gan?.. hehe,
Saat saya menjawab pertanyaan ini, sebenarnya sudah sampai 30 tutorial gan… sisanya akan segera menyusul..
Malah agak tambah panjang yah
kak mau nanya, kalau memakai with kita ngak bisa memasukkan nilai dengan memakai readln?
Bisa kok, contohnya seperti ini:
program tipe_record;
uses crt;
type
rec_siswa =
record
nama: string[20];
umur: integer;
sekolah: string[30];
kota: string[20];
end;
var
siswa: rec_siswa;
begin
clrscr;
with siswa do
begin
write('Nama : '); readln(nama);
write('Umur : '); readln(umur);
write('Sekolah : '); readln(sekolah);
write('Kota : '); readln(kota);
writeln('==========================');
writeln('Nama : ',nama);
writeln('Umur : ',umur);
writeln('Sekolah : ',sekolah);
writeln('Kota : ',kota);
end;
readln;
end.
wow, langsung di reply :) makasih jawabannya kak
Kalau data yang mau di record ada 4 gimana caranya bang
Untuk program array dari record, apa kita nggak bisa mengakses field recordnya dengan perintah with? Saya sudah mencobanya, tapi yang terbaca hanya bagian "with siswa[0] do" saja. Mungkinkah ada kode yang harus ditambahkan? Mohon penjelasannya. Terimakasih..
=======Ralat=====
Setelah saya periksa ternyata ada kode program yang sebelumnya yang lupa saya berikan tanda "{}". Setelah dicoba lagi akhirnya semua data siswanya muncul.
Terimakasih tutorialnya :)
Siip, sama2 :)
Ini jadinya kayak assosiatif array kah?
Atau kayak nested objek bisa juga kan mas Andre?
Lebih mirip ke object sepertinya, tapi record ini datang sebelum era pemrograman object.
kalo mengunakaan with kayak gimana gan?
apa " with siswa.[0] do " misalkan.
mohon penjelasannya
Kalau pakai array bisa pemutakhiran (hapus,tambah, edit) gak ya? Atau harus pake arsip?
Kalau bisa gimana caranya????
Mantap Bang, sangat membantu buat tugas Pemrograman Dasar di sekolah
Gan, kalau record array dibuat dalam looping for bisa nggak gan? Kalau emang gabisa, terus gimana alternatifnya untuk ngebuat perulangan gan?