Modul VI Penanganan Data di Dalam Delphi 6.1 Array(Larik) Array adalah sebuah variabel tunggal yang digunakan untuk menyimpan sekumpulan data. Dimana masing-masing data akan memiliki identitasnya tersendiri, berupa kedudukannya dalam kelompok. Data yang disimpan dalam sebuah array disebut dengan elemen dan keseluruhannya harus mempunyai komponen dalam jumlah yang tetap dan setiap komponen harus mempunyai tipe data yang sama (sejenis). Posisi masing-masing komponen dalam array dinyatakan sebagai nomor indeks. Indeks elemen adalah angka yang menyatakan urutan data yang menjadi anggota. Contoh : Var NilUjian : array[1..5] of Real; Contoh tersebut mempunyai arti : suatu deklarasi yang memberi tahu kompiler bahwa variabel yang bernama NilUjian merupakan suatu kumpulan variabel bertipe real sebanyak lima buah dengan indeks 1, 2, 3, 4, 5. Dengan masing-masing elemennya dapat dinyatakan sebagai NilUjian[1], NilUjian[2], NilUjian[3], NilUjian[4], dan NilUjian[5]. Contoh Program : Berikut ini adalah contoh program aplikasi penanganan data yang disimpan dalam type data array, yaitu Penangana Data Alamat dengan tampilan seperti gambar di bawah ini : Label1 dari Tab Standard pada Component Palette
Button1 dari Tab Standard pada Component Palette
ListBox1 dari Tab Standard pada Component Palette
Panel1 dari Tab Standard pada Component Palette
StringGrid1 dari Tab Additional pada Component Palette
BitBtn dari Tab Additional pada Component Palette
Dengan Listing Program sebagai berikut : procedure TForm1.Button1Click(Sender: TObject); var s : string; p,i : integer; Nama : array[1..20] of string; Alamat : array[1..30] of string; begin ListBox1.Items.Clear; s := InputBox('Loop','Jumlah Data',''); p := StrToInt(s); StringGrid1.Cells[0,0]:='Nama'; StringGrid1.Cells[1,0]:='Alamat'; for i:=1 to p do begin nama[i]:=InputBox('ID','Nama',''); Alamat[i]:=InputBox('ID','Alamat',''); ListBox1.Items.Add(IntToStr(i)+'.'+Nama[i]); ListBox1.Items.Add(' '+Alamat[i]); StringGrid1.Cells[0,i]:=Nama[i]; StringGrid1.Cells[1,i]:=Alamat[i]; end; end;
6.2 Data Record Data record adalah tipe data terstruktur. Dengan tipe data record, dapat dikumpulkan beberapa item data yang masing-masing dapat mempunyai tipe data yang berbeda. Masing-masing item data disebut dengan field, jadi record terdiri dari kumpulan field dengan tipe data yang berbeda. Biasanya suatu record berisi beberapa field untuk sebuah subyek tertentu. Deklarasi Data Record Deklarasi data record diawali dengan kata cadangan RECORD dan diikuti oleh suatu daftar field dan diakhiri dengan kata cadangan End. Sintak dari deklarasi ini dalam bentuk diagram adalah sebagai berikut. Tipe record
Record
End Daftar field
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 24
Contoh: Type Lgn = Record Kode : integer; Nama : String[25]; Alamat : String[35]; Piutang : Real; End; Var Langganan : Lgn; Contoh Program: Pada contoh program di bawah ini, adalah sebuah data barang yang kemudian disimpan dalam sebuah file yang berjenis data record, dengan struktur sebagai berikut: KodeBrg : String[5]; (Kode Barang) NamaBrg : String[30]; (Nama Barang) HrgStn : LongInt; (Haraga Satuan) Stok : Byte; (Stok Barang) Dan disimpan dalam sebuah file dengan nama : Barang.Dat. dengan tampilan Form sebagai berikut :
Karena dalam aplikasi ini ditambahkan beberapa procedure, yaitu procedure EditBoxAktif, EditBoxNonAktif, EditBoxHapus dan Tampilkan, maka procedure tersebut disimpan pada deklarasi Type pada interface, yaitu: type TForm1 = class(TForm) GroupBox1: TGroupBox; : : : BtnSelesai: TButton; Image1: TImage; procedure EditBoxAktif; procedure EditBoxNonAktif; procedure EditBoxHapus; procedure Tampilkan;
Procedure Tambahan
Pada deklarasi Selanjuntnya, yaitu di bawah deklarasi public dan di atas implementation, tambahkan code program berikut: type FData = record KodeBrg : String[5]; NamaBrg : String[30]; HrgStn : LongInt; Stok : Byte; end; var Form1: TForm1; FileData : File of FData; AddRec : FData; JmlData, Rec : Integer;
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 25
Kemudian aturlah code program menurut listing berikut: Untuk procedure EditBoxAktif: procedure TForm1.EditBoxAktif; begin Edit1.ReadOnly := False; Edit2.ReadOnly := False; Edit3.ReadOnly := False; Edit4.ReadOnly := False; end;
Untuk procedure EditBoxNonAktif: procedure TForm1.EditBoxNonAktif; begin Edit1.ReadOnly := True; Edit2.ReadOnly := True; Edit3.ReadOnly := True; Edit4.ReadOnly := True; end;
Untuk procedure EditBoxHapus: procedure TForm1.EditBoxHapus; begin Edit1.Text :=''; Edit2.Text :=''; Edit3.Text :=''; Edit4.Text :=''; end;
Untuk procedure Tampilkan: procedure TForm1.Tampilkan; begin Seek(FileData,Rec); Read(FileData,AddRec); Edit1.Text:=AddRec.KodeBrg; Edit2.Text:=AddRec.NamaBrg; Edit3.Text:=IntToStr(AddRec.HrgStn); Edit4.Text:=IntToStr(AddRec.Stok); Label5.Caption:='Record Ke: '+IntToStr(Rec+1); end;
Button Sebelum: procedure TForm1.BtnSebelumClick(Sender: TObject); begin If Rec+1 > 1 Then begin Dec(Rec); Tampilkan; end else MessageDlg('Ini Awal Data Lho!',mtError,[mbOk],0); end;
Button Berikut: procedure TForm1.BtnBerikutClick(Sender: TObject); begin If Rec+1 < FileSize(FileData) Then begin Inc(Rec); Tampilkan; end else MessageDlg('Data Sudah Habis',mtError,[mbOk],0); end;
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 26
Button Simpan yang akan berubah menjadi button data baru: procedure TForm1.BtnSimpanClick(Sender: TObject); begin If BtnSimpan.Caption='Sim&pan' Then begin BtnSimpan.Caption:='&Data Baru'; BtnSelesai.Enabled:=True; EditBoxNonAktif; {Proses Simpan Data} With AddRec Do begin KodeBrg:=Edit1.Text; NamaBrg:=Edit2.Text; HrgStn:=StrToInt(Edit3.Text); Stok:=StrToInt(Edit4.Text); end; Seek(FileData,FileSize(FileData)); Write(FileData,AddRec); MessageDlg('Data Sudah Disimpan',mtInformation,[mbOK],0); end else begin BtnSimpan.Caption:='Sim&pan'; BtnSelesai.Enabled:=False; EditBoxAktif; EditBoxHapus; Edit1.SetFocus; JmlData:=FileSize(FileData); Label5.Caption:='Record Ke : '+IntToStr(JmlData+1); end; end;
Tubuh Form (Form Create): procedure TForm1.FormCreate(Sender: TObject); begin AssignFile(FileData,'Barang.Rec'); {$I-} Reset(FileData); {$I+} If IOResult<>0 Then Rewrite(FileData); JmlData := FileSize(FileData); BtnSimpan.Caption:='&Data Baru'; EditBoxNonAktif; Label5.Caption:='Record Ke : '+IntToStr(JmlData); end;
Button Selesai: procedure TForm1.BtnSelesaiClick(Sender: TObject); begin CloseFile(FileData); Close; end;
6.3 File Teks Yang dimaksud dengan file teks adalah sebuah file dengan format ASCII yang pada akhir barisnya diberi tanda line feed atau Carriage Return dan pada akhir file diberi tanda End Of File(EOF). Pada pemrograman, sebuah file teks dapat dibuat (dijadikan) sebagai file data yang kemudian dapat diproses. Deklarasi File Teks Sebuah file Teks yang akan digunakan, harus dideklarasikan dahulu pada bagian deklarasi perubah (Var) dengan type text. Bentuk umumnya : Var Pengenal : Text;
Dengan Pengenal adalah pengenal yang diidentifikasikan sebagai type text.
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 27
Contoh : Var FileData : Text;
Contoh Program: Pada contoh program di bawah ini, kita akan mencoba menggunakan sebuah file yang akan digunakan sebagai file data. Aplikasi kali ini akan mencoba menampilkan isi file text yang berupa untaian Alamat yang terdiri dari : Nama : String[20]; Alamat : String[30]; Telp : String[10]; Mail : String[20]; Dan disimpan dalam sebuah file dengan nama Alamat.Txt. dengan tampilan Form sebagai berikut :
-
Karena dalam aplikasi ini ditambahkan sebuah procedure, yaitu procedure Tampilkan, maka procedure tersebut disimpan pada deklarasi Type pada interface, yaitu : type TForm1 = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; Procedure Tambahan : : Button2: TButton; procedure Tampilkan; procedure Button1Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject);
-
Pada deklarasi private, tambahkan code program berikut private { Private declarations } FileData : Text; Nama : String[20]; Alamat : String[30]; Telp : String[10]; Mail : String[20]; public { Public declarations } end;
-
Kemudian aturlah code program menurut listing berikut: procedure TForm1.Tampilkan; begin Edit1.Text:=Nama; Edit2.Text:=Alamat; Edit3.Text:=Telp; Edit4.Text:=Mail; end; procedure TForm1.Button1Click(Sender: TObject); begin if Not Eof(FileData) then begin Readln(FileData,Nama,Alamat,Telp,Mail); Tampilkan; end else MessageDlg('Data Sudah Habis',mtInformation,[mbOK],0); end; procedure TForm1.BitBtn1Click(Sender: TObject); begin CloseFile(FileData); Close; end; procedure TForm1.Button2Click(Sender: TObject); begin Reset(FileData); Readln(FileData,Nama,Alamat,Telp,Mail); Tampilkan; end;
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 28
procedure TForm1.FormCreate(Sender: TObject); begin AssignFile(FileData,'Alamat.Txt'); {$I-} Reset(FileData); {$I+} if IOResult<>0 then begin MessageDlg('File Data Tidak Ada!',mtError,[mbAbort],0); Halt; end; Readln(FileData,Nama,Alamat,Telp,Mail); Tampilkan; end;
-
Membuat File Text sebagai File Data Untuk membuat file Text sebagai File Data, dapat menggunakan program bantu editor Notepad yang ada pada group Accessorie (pada Start Program Accessories), dengan langkahlangkah sebagai berikut : Aktifkan Notepad yang ada pada group Accessories. Selanjutnya buat dahulu nomor bantu, seperti di bawah ini : 1 2 1 2 3 1 1 2 12345678901234567890123456789012345678901234567890123456789012345678901234567890
Nomor di atas digunakan sebagai nomor bantuan saja, dimana angka 1 s/d 20 digunakan untuk Nama, angka 1 s/d 30 digunakan untuk Alamat, angka 1 s/d 10 digunakan untuk Telepon, dan yang terakhir angka 1 s/d 20 digunakan untuk e-mail. Berikutnya, tambahkan beberapa data seperti di bawah ini : 1 2 1 2 3 1 1 2 12345678901234567890123456789012345678901234567890123456789012345678901234567890 Tedi Suryaman Jl. Pajajaran No. 123 Garut 450989
[email protected] Dini Supadmi Jl. Kiansantang No. 5 Garut 440566
[email protected] Rita Sugiarto Jl. Ahmad Yani No. 52 Garut 242890
[email protected] Sofyan Yahya Jl. Buahbatu No. 234 Bandung 7505354
[email protected] Yoshe Maharani Jl. Pasir Koja N0. 334 Bdg 7605656
[email protected] Tejo Sutejo Jl. Siliwangi No. 45 Garut 342344
[email protected]
Jika selesai (jangan lupa, data terakhir jangan di Enter), hapus kembali angka bantuan pada baris 1 dan 2, dan simpan dengan nama file Alamat.TXT (Seperti terlihat pada gambar di bawah).
Aktifkan kembali aplikasi Borland Delphi, kemudian jalankan (Running) program tersebut.
6.4. Perintah-perintah yang digunakan di dalam File Text dan Data Record Perintah AssignFile
Untuk menghubungkan sebuah nama file dengan variabel file.
Perintah Reset Digunakan untuk membuka file yang telah dikaitkan sebelumnya dengan perintah AssignFile. Perintah IOResult Digunakan untuk mengetes apakah file yang diakses/dipanggil sukses atau tidak. Perintah Read Digunakan untuk membaca komponen file ke dalam sebuah dalam file bertipe, dan membaca satu variabel atau lebih dalam file teks. Perintah Readln Digunakan untuk membaca komponen file ke dalam sebuah dalam file bertipe, dan membaca satu variabel atau lebih dalam file teks. Serta pembacaan filenya dilakukan secara per baris. Perintah Write Digunakan untuk menulis sebuah variabel ke dalam komponen file dalam file bertipe, dan menulis satu variabel atau lebih ke dalam file dalam file teks.
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 29
Perintah Writeln Digunakan untuk menulis sebuah variabel ke dalam komponen file dalam file bertipe, dan menulis satu variabel atau lebih ke dalam file dalam file teks. Serta menghasilkan tanda akhir baris pada file. Perintah ReWrite Digunakan untuk membuat dan membuka file baru. Perintah EOF EOF() adalah singkatan dari End Of File, yaitu suatu fungsi yang digunakan untuk mengetahui akhir file. Bila nilainya True, maka merupakan akahir dari suatu sebuah file. Perintah CloseFile Digunakan untuk menutup file yang telah dibuka sebelumnya. Perintah FileSize Fungsinya untuk mengetahui ukuran sebuah file atau banyaknya record yang ada pada file record. Perintah FilePos Berguna untuk mencari di mana posisi pointer (penunjuk file) berada. Perintah Seek Digunakan untuk memindahkan atau meletakan pointer (penunjuk file) pada posisi tertentu dari sebuah file. Perintah Inc (Increment) Digunakan untuk manambahkan angka dengan angka 1 atau angka lain sesuai dengan kenaikan yang diinginkan. Perintah Dec (Decrement) Digunakan untuk mangurangi angka dengan angka 1 atau angka lain sesuai dengan penurunan yang diinginkan. Perintah Halt Digunakan untuk menghentikan eksekusi program. Perintah Compiler Directive {$I+/-} Digunakan untuk menangani kesalahan I/O(input/output) apabila akan membuka sebuah file text, dan ternyata file tersebut tidak ada/belum ada. Perintah Compiler Directive {$I+} Digunakan untuk menangani kesalahan yang terjadi (jika ada kesalahan). Perintah Compiler Directive {$I-} Digunakan untuk mengabaikan kesalahan yang terjadi. 6.5. Tugas Praktikum 1. Buatlah Program Input Output Data Mahasiswa sebanyak jumlah data yang diinputkan menggunakan InputBox. Data yang diinputkan adalah Nama dan NPM muncul secara otomatis di komponen ListBox, sedangkan data Nama, NMP, Alamat dan No. Telp. Muncul secara otomatis pada komponen StringGrid (Seperti Tampilan di bawah ini).
2. Buatlah Program untuk mengolah File Record, dan data yang diolah adalah data barang dengan struktur file sebagai berikut : type FData = record KodeBrg : String[5]; NamaBrg : String[30]; HrgStn : LongInt; Stok : Byte; end; var Form1: TForm1; FileData : File of FData; AddRec : FData; JmlData, Rec : Integer;
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 30
3. Buatlah Program untuk mengolah File Text, dan data yang diolah adalah data mahasiswa dengan struktur file sebagai berikut : NPM Nama KdJur KdDosen Tugas Uts Uas
: : : : : : :
String[7] String[15] Byte Byte Byte Byte Byte
(Nomor Pokok Mhs) (Nama Mhs) (Kode Jurusan 1,2,3) (Kode Dosen Wali 1,2,3) (Nilai Tugas) (Nilai UTS) (Nilai UAS)
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 31