Setelah membahas pengertian tipe data record dan cara penggunaan tipe data record pascal, kali ini saya akan membahas perintah with yang bisa digunakan untuk mengakses isi record dalam bahasa pemrograman pascal.
Perintah with ini akan memudahkan pengaksesan isi atau field dari record.
Cara Mengakses Field Record dalam Pascal
Seperti yang telah kita pelajari, untuk mengakses isi record, atau dikenal dengan istilah field record, kita menggunakan tanda titik. Sebagai contoh, jika saya memiliki record 'siswa' berikut:
var  siswa: record         nama: string[20];         umur: integer;         sekolah: string[30];         kota: string[20];         end;
Untuk mengakses field record siswa tersebut harus ditulis dengan format nama_record.field_record, seperti berikut ini:
 siswa.nama:= 'Anto';  siswa.umur:= 17;  siswa.sekolah:= 'SMA 1 Durian Runtuh';  siswa.kota:= 'Pelembang';
Perintah siswa.nama:= 'Anto' berarti saya ingin mengisi field nama dari record siswa dengan nilai 'Anto'.
Fungsi perintah With dalam Pascal
Selain cara pengaksesan diatas, pascal menyediakan keyword atau perintah with. Perintah with ini bisa digunakan untuk menyederhanakan pengaksesan isi record.
Sebagai contoh, proses pengisian record siswa sebelumnya bisa ditulis menjadi:
with siswa do    begin      nama:= 'Anto';      umur:= 17;      sekolah:= 'SMA 1 Durian Runtuh';      kota:= 'Pelembang';    end;
Kode program diatas diawali dengan perintah "with siswa do" ini merupakan instruksi kepada pascal bahwa kita ingin akan mengakses isi dari record siswa. Setelah perintah with, kita harus membatasi block kode program dengan perintah begin hingga end;Â Diantara blok inilah pengaksesan record dengan with dilakukan.
Perhatikan cara pengaksesan isi/field dari record siswa. Saya tidak perlu membuat nama variabel record "siswa.nama", tetapi cukup "nama" saja. Ini akan memudahkan penulisan kode program, terutama jika record yang diisi cukup banyak.
Berikut contoh lengkap kode program pascal dengan perintah with:
program tipe_record; uses crt; var  siswa: record         nama: string[20];         umur: integer;         sekolah: string[30];         kota: string[20];         end; begin  clrscr;  with siswa do    begin      nama:= 'Anto';      umur:= 17;      sekolah:= 'SMA 1 Durian Runtuh';      kota:= 'Pelembang';    end;   writeln('Nama : ',siswa.nama);  writeln('Umur : ',siswa.umur);  writeln('Sekolah : ',siswa.sekolah);  writeln('Kota : ',siswa.kota);   readln; end.
Lebih jauh lagi, kita bisa melingkupi seluruh kode program dengan perintah with.
program tipe_record; uses crt; var  siswa: record         nama: string[20];         umur: integer;         sekolah: string[30];         kota: string[20];         end; 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.
Penggunaan perintah with seperti ini hanya bisa digunakan selama di dalam block kode program tersebut kita tidak mengakses record lain. Jika butuh untuk mengakses record lain, kita harus keluar dari block with terlebih dahulu (menggunakan perintah end;).
Perintah with yang kita pelajari disini cocok digunakan untuk mempermudah pengaksesan record, terutama jika record tersebut memiliki banyak field. Dalam tutorial berikutnya kita akan mempelajari cara membuat array dari struktur data record.
Bisa bantu atasi error program saya mas andre
http://goo.gl/EIcNUI
error pada if yg ada modulus 1 = 0.5
Saya sudah lihat sekilas mas, errornya terjadi karena operator mod di pascal tidak bisa dilakukan dengan tipe data real. Operator mod hanya bisa untuk tipe data bulat (integer).
Untuk mengubahnya agak ribet mas, soalnya logika program harus diubah semua. Sebagai alternatif operasi mod untuk bilangan real bisa baca2 disini: http://www.delphigroups.info/2/77/410513.html
mas saya mau tanya, terus apa bedanya perintah record dan with dengan diDeklarsikan biasa?
Secara umum g ada perbedaan gan, cuma beda di cara penulisannya saja. Sama seperti mendeklarasikan beberapa variabel sekaligus, atau satu-satu dalam baris terpisah.
Perbedaanya terasa kalau kode programnya udah ribuan baris mas. heehehe
mas minta link untuk download turbo paskal 7 yg bisa masuk d semua windows seven….tolong ya mas….thankssa
Borland Turbo Pascal termasuk aplikasi "lawas" mas. Di windows Vista, 7, 8 dan 10 tidak bisa berjalan langsung, harus dari emulator DOS seperti DOSBOX. Mengenai tutorialnya (dan download turbo pascal 7) bisa cek dimari: https://www.duniailkom.com/tutorial-belajar-pascal-cara-mendownload-dan-menginstall-compiler-turbo-pascal-7/
Bang mau tanya gimana caranya menampilkan data record dengan file da dari stringgrid ada tugas tp masih pusing hee
Stringgrid ini di Delphi atau Lazarus y? saya udah lama g pakai Delphi lagi nih, jadi belum bisa bantu…