Sunday, January 17, 2010

Menggunakan array, Anda hanya dapat menyimpan nilai-nilai yang Anda masukkan ke dalam memori selama program berjalan dalam tipe yang sama. Sebagai contoh, Anda tidak akan dapat menyimpan data selain berbentuk bilangan bulat bila telah array telah Anda definisikan sebagai jenis integer. Agar Anda dapat menyimpan berbagai jenis data saat program Anda berjalan, Anda memerlukan mekanisme lain untuk melakukan hal tersebut dalam Pascal, dalam hal ini adalah record.
Dengan record, Anda dapat menyimpan suatu nilai berbentuk integer, real, char, string, atau tipe data lain bersama-sama. Ini memungkinkan pengguna program untuk dapat menyimpan berbagai data secara bersamaan selama program masih berjalan, dan dapat menggunakan data tersebut untuk berbagai keperluan. Yang perlu diperhatikan, record biasanya terdiri atas beberapa field saja, sehingga sulit digunakan untuk menyimpan data dalam jumlah sebanyak array. Hal ini disebabkan karena tidak ada mekanisme indeks dalam record. Untuk itu digunakan kombinasi array dan record yang disebut dengan array of record.
Array of record memungkinkan untuk menyimpan banyak data (sebanyak indeks array), masing-masing data berisikan ‘properti’ yang terdiri atas berbagai jenis data (sebanyak field dari record). Karena itu sangat penting untuk menguasai array of record ini sebagai dasar untuk melakukan pemrograman yang melibatkan banyak data sekaligus yang terdiri atas berbagai jenis data. Bila bagian ini telah dikuasai, Anda siap untuk melakukan manipulasi data yang lebih jauh lagi melalui suatu pemrograman menggunakan Pascal.
Array         :  digunakan untuk mendefinisikan sebuah jenis array
Record       :  digunakan untuk mendeklarasikan record berisi kumpulan data dari berbagai tipe data
With           :  digunakan untuk melakukan referensi ke suatu field dalam record
Type          :  digunakan untuk mendeklarasikan suatu identifier yang memiliki tipe data tertentu
Record
Record adalah sebuah tipe data yang mengumpulkan beberapa item data di mana masing-masing tipe data dari item data ini berbeda-beda. Masing-masing item data ini bisa disebut dengan field.
Mendeklarasikan Record
Masih ingat kuliah mengenai tipe data? Dalam Pascal, semua variabel harus dideklarasikan sebelum bisa dipakai. Sebagai contoh, kitaingin memakai variabel dengan nama Nama untuk dimasukkan nilai nama-nama mahasiswa. Kita akan mendefinisikannya menjadi:var Nama: String[80];
Dari kode di atas kita memberitahukan ke Pascal bahwa kita akan memakai variabel Nama yang tipe datanya string dan kita alokasikan panjang stringnya 80 karakter.
Nah, dalam Pascal, kita dimungkinkan untuk memiliki judul tipe data yang kita definisikan sendiri. Misalkan kita ingin mengganti judul tipe data integer dengan bilanganBulat. Dalam Pascal, kita definisikan ini dengan:
type bilanganBulat = integer;
Perhatikan beda pendefinisian variabel dan pendefinisian type. Untuk pendefinisian variabel kita menggunakan titik dua (:), sedangkan pendefinisian type kita menggunakan sama dengan (=).
Oke, sekarang kalau memori Anda sudah segar kembali, kita kembali ke pembahasan record. Untuk mendeklarasikan record, kita memakai reserved word record, diikuti dengan daftar field dan diakhiri dengan end. Berikut adalah contoh dari deklarasi sebuah record.
type recMhs = record;
nama : string[80];
NPM : string[8];
nilai : integer;
end;
Untuk bisa memakai record ini, kita mendeklarasikan record ke dalam variabel seperti ini:
var recordMahasiswa: recMhs;
Menggunakan Record
Menggunakan/ mengakses nilai field dari record adalah menggunakan nama variabel yang sudah dideklarasikan, diikuti dengan tanda titik (.) dan nama field. Dari contoh di atas, apabila kita ingin mengakses nilai field nama dari record recordMahasiswa, kode dalam Pascal adalah sebagai berikut:recordMahasiswa.nama:=’Suliso Bams Duyodhono’;
Perhatikan contoh program berikut
type recMhs = record
nama : string[80];
NPM : string[8];
nilai : integer;
end;
var recordMahasiswa: recMhs;
begin
Write(’Masukkan nama mahasiswa ‘); ReadLn(recordMahasiswa.nama);
Write(’Masukkan NPM ‘); ReadLn(recordMahasiswa.NPM);
Write(’Nilainya berapa ‘); ReadLn(recordMahasiswa.nilai);
WriteLn(’Nama mahasiswa yang Anda masukkan adalah ‘,recordMahasiswa.nama);
WriteLn(’NPM mahasiswa ini adalah ‘,recordMahasiswa.NPM);
WriteLn(’Nilainya adalah ‘,recordMahasiswa.nilai);
end.
Program di atas akan memberikan output seperti berikut.
Masukkan nama mahasiswa Suliso Bams Duyodhono
Masukkan NPM 11207007
Nilainya berapa 45
Nama mahasiswa yang Anda masukkan adalah Suliso Bams Duyodhono
NPM mahasiswa ini adalah 11207007
Nilainya adalah 45
Mengetik nama variabel record berulang-ulang seperti tampak dalam contoh di atas mungkin bisa melelahkan untuk programmer. Oleh karena itu, dalam Pascal ada statement with yang bisa membantu memudahkan dan menyingkat penulisan kode program yang menggunakan record. Sehingga kode program di atas bisa disingkat menjadi berikut:
type recMhs = record
nama : string[80];
NPM : string[8];
nilai : integer;
end;
var recordMahasiswa: recMhs;
begin
with recordMahasiswa do begin
Write(’Masukkan nama mahasiswa ‘); ReadLn(nama);
Write(’Masukkan NPM ‘); ReadLn(NPM);
Write(’Nilainya berapa ‘); ReadLn(nilai);
WriteLn(’Nama mahasiswa yang Anda masukkan adalah ‘,nama);
WriteLn(’NPM mahasiswa ini adalah ‘,NPM);
WriteLn(’Nilainya adalah ‘,nilai);
end;
end.
Sudah jelas dengan record? Oke, sekarang kita lanjut ke pembahasan mengenai file. Setiap program pada umumnya menghasilkan data untuk disimpan ke dalam sebuah file. Pascal memungkinkan penyimpanan data ke dalam sebuah file. Dalam pembahasan kali ini, kita akan menyimpan data dalam bentuk file teks. Kemampuan Pascal untuk menyimpan data seperti ini bisa berguna untuk tugas-tugas Anda yang berhubungan dengan Pascal.
Yang perlu diketahui mengenai penanganan file dalam bahasa pemrograman apapun adalah: 1) bagaimana membuka filenya; 2) bagaimana mengakses isi file; dan 3) bagaimana menutup file.
Sebelum sebuah file bisa dibuka, Pascal memerlukan sebuah variabel untuk penanganan file.
Untuk mendeklarasikan sebuah file dalam Pascal digunakan sintaks
var
: file of
di sini adalah tipe yang sudah didefinisikan sebelumnya. Type yang paling umum digunakan adalah record.
Assign
Perintah ini akan mengasosiasikan nama variabel file dengan nama file. Perintah ini adalahassign(, );
Perintah ini akan menghasilkan sebuah variabel file yang mengarah pada sebuah file dalam hard disk Anda. Setelah perintah assign ini, barulah Anda bisa membuka file Anda. Ada 2 cara untuk membuka file.
Rewrite
Jika file yang dimaksud tidak ada, maka perintah Rewrite ini akan menghasilkan sebuah file kosong dengan nama yang dimaksud dalam .
Perintah rewrite dipakai dengan cara:rewrite();
Dengan mode ini, Anda tidak bisa melakukan pembacaan dari file.
Reset
Dengan mode ini, Anda bisa membaca sekaligus menulis ke file. Mode inilah yang seharusnya Anda pakai untuk program utama Anda. Trik untuk membuat sebuah file dan kemudian dibuka untuk dibaca dan ditulis adalah buat dengan menggunakan perintah rewrite dan gunakan reset. Perintah reset dipakai dengan cara:reset();
Close
Perintah close menutup sebuah file. Gunakan perintah ini untuk menyimpan perubahan-perubahan pada sebuah file yang dibuka. Untuk menutup file gunakan perintahclose();
Menulis record ke sebuah fileAnggaplah kita memiliki record seperti berikut
type recMhs = record
nama: String[80];
NPM: String[8];
nilai: integer;
end;
Untuk menyimpan record ini ke dalam file, cukup gunakan perintah
write(, recMhs);
Semudah itu.
Membaca record dari sebuah file
Untuk bisa membaca record dari sebuah file gunakan perintahread(, recMhs);
Perintah ini memasukkan data dari file ke dalam record recMhs. Perintah ini akan melanjutkan pointer pembacaan ke record selanjutnya secara otomatis.
Seek
Perintah seek menyuruh Pascal membaca sebuah record yang diminta dalam sebuah file. File dimulai dari 0, jadi untuk pergi ke record pertama gunakan perintahseek(, 0);
Untuk pergi ke record paling akhir, gunakan perintah
seek(, filesize());
Apabila kita ingin menyimpan data mahasiswa dalam Pascal ke sebuah file, berikut adalah contoh programnya.
program DataNilai;
type recMhs = record
nama: String[80];
NPM: String[8];
nilai: integer;
end;
var Mhs: recMhs;
var fileMhs: file of recMhs;
begin
assign(fileMhs, ‘mahasiswa.dat’);
rewrite(fileMhs);
reset(fileMhs);
//masukkan data 3 mahasiswa
for i:=1 to 3 do begin
with Mhs do begin
write(’Nama mahasiswa ke-’,i,’ adalah: ‘); readln(nama);
write(’NPMnya adalah ‘); readln(NPM);
write(’Nilainya adalah ‘); readln(nilai);
write(fileMhs, Mhs);
end;
end;

algoritma

Type
DataMhs = Record
NPM : String;
Nama : String;
KodeMK : String;
NamaMK : String;
SKS : Integer;
Nilai : Integer;
End;
Var
db : DataMhs;
Batas, Hit, DataFind : Integer;
Cari : String;
myData : Array[1..25] of DataMhs;

Begin
Writeln('Program Input Data Nilai Mahasiswa');
Writeln('');
Write('Banyaknya Data yang akan diinput : ');
Readln(Batas);
Writeln('');
For Hit := 1 to Batas Do
Begin
Writeln('Data ke ',Hit);
Write('NPM : ');Readln(db.NPM);
Write('Nama : ');Readln(db.Nama);
Write('Kode Mata Kuliah : ');Readln(db.KodeMK);
Write('Nama Mata Kuliah : ');Readln(db.NamaMK);
Write('Jumlah SKS : ');Readln(db.SKS);
Write('Nilai : ');Readln(db.Nilai);
Writeln('');
End;
Writeln('');
Writeln('');
Write('Masukkan Data NPM yang Anda cari : ');Readln(Cari);
DataFind := 0;
For Hit := 1 to Batas Do
Begin
If Cari = myData[Hit].NPM Then DataFind := Hit;
End;
If DataFind > 0 Then
Begin
Writeln('NPM : ',myData[DataFind].NPM);
Writeln('Nama : ',myData[DataFind].Nama);
Writeln('Kode Mata Kuliah : ',myData[DataFind].KodeMK);
Writeln('Nama Mata Kuliah : ',myData[DataFind].NamaMK);
Writeln('Jumlah SKS : ',myData[DataFind].SKS);
Writeln('Nilai : ',myData[DataFind].Nilai);
End;

If DataFind = 0 Then Writeln('Data NPM ', Cari,' tidak diketemukan');
If DataFind > 0 Then Writeln('Data NPM ', ' diketemukan');
readln;
End.
Naruto vs Sasuke © 2008 Template by:
SkinCorner