Dasar Struktur Data Ika Menarianti Persiapan awal Buka
Dasar Struktur Data Ika Menarianti
Persiapan awal Buka program Delphi
Ubah properti milik Form Name : Form. Bab 2 Caption : Test. Bab 2 Perhatikan apa yang berubah ketika properti diubah!
Selanjutnya persiapkan prosedurnya: Klik pada Form. Bab 2 Klik Tab Event pada Object Inspector Klik pada On. Create Klik ganda pada sel disebelahnya hingga muncul kode berikut: procedure TForm. Bab 2. Form. Create(Sender: TObject); begin end;
Selanjutnya. . Tambahkan komponen Label. Atur Propertinya: Name : Label. Info Caption : Info Align : al. Client Perhatikan apa yang berubah ketika properti diubah!
Selanjutnya. . . Simpan dengan cara: 1. Pilih Menu File lalu pilih Save Project As. . . 2. Ketikkan FBab 2 untuk menggantikan Unit 1 pada kotak disebelah kanan judul File Name untuk memberi nama file formulir dan klik tombol 3. Ganti project 1 dengan PBab 2 untuk memberi nama proyek. Setelah itu klik Save.
Struktur Data Primitif Wadah data yang paling sederhana disebut sebagai tipe data primitif atau struktur data primitif. Tipe Data Primitif Tipe Data Keterangan Kebutuhan Memori Shortint Bilangan Bulat -128 s/d 127 1 byte Integer Bilangan Bulat -32767 s/d 32768 2 byte Longint Bilangan Bulat -2147483648 s/d 2147483647 4 byte Bilangan Bulat 0 s/d 255 1 byte Word Bilangan Bulat 0 s/d 65535 2 byte Real Bilangan real 6 byte Boolean Data logika. Bernilai True atau False 1 byte Char Menyatakan sebuah karakter 1 byte
Struktur Data Primitif (2) Pemilihan tipe data dilakukan dengan pedoman: Pilihlah yang membutuhkan memori paling sedikit Semua kemungkinan nilai bisa terakomodasi oleh tipe tersebut.
Enumerasi, Subjangkauan dan Himpunan Enumerasi merupakan salah satu tipe yang dibuat sendiri oleh pemrogram. Tipe ini digunakan pada variabel yang nilai kemungkinannya terbatas atau tidak begitu banyak. Nilai dinyatakan dengan nama pengenal. Menggunakan pengenal diharapkan akan lebih memberikan kejelasan dibandingkan menggunakan kode. Contoh: Type Sistem. Operasi = (unix, linux, windows_xp, windows_7, mac_os); Jenis. Kelamin = (pria, wanita);
Enumerasi, Subjangkauan dan Himpunan (2) Subjangkauan (subrange) merupakan suatu tipe yang menyatakan suatu jaringan nilai dari suatu tipe yang sudah ada. Jangkauan nilai ditentukan oleh nilai terkecil dan nilai terbesar. Bentuk pendeklarasian: type Nama_type = Nilai_terkecil. . Nilai_terbesar; Contoh: type Nilai. Bulan: 1. . 12; Huruf. Kapital : ‘A’. . ‘Z’ ; //subjangkauan integer //subjangkauan char
Enumerasi, Subjangkauan dan Himpunan (2) Himpunan (set) adalah suatu struktur data yang memungkinkan menyimpan sejumlah nilai yang tergolong dalam tipe data primitif. Bentuk pendeklarasian: type Nama_tipe = set of Tipe_elemen; Elemen-elemen himpunan yang dinyatakan denagan [ ]. Misal [1, 2, 3] menyatakan himpunan yeng terdiri elemen 1, 2 dan 3. Sedangkan [ ] dinyatakan himpunan kosong.
Operator untuk memanipulasi himpunan Operator Pembandingan Keterangan + H 1 + H 2 Operator union ini berguna untuk menggabungkan himpunan H 1 dan H 2 Contoh: [1, 2, 3] + [3, 4, 5] [1, 2, 3, 4, 5] - H 1 – H 2 Operator perbedaan/pengurangan berguna untuk mendapatkan himpunan yang berisi elemen-elemen dari H 1 yang tidak ada pada H 2 Contoh: [1, 2, 3] - [3, 4, 5] [1, 2] [3, 4, 5] - [1, 2, 3] [4, 5] * H 1 * H 2 Operator interseksi berguna untuk memperoleh himpunan dengan elemen yang ada pada H 1 dan H 2 Contoh: [1, 2, 3] * [3, 4, 5] [3]
Contoh program enum procedure TForm. Bab 2. Form. Create(Sender: TObject); type TSistem. Operasi = (unix, linux, windows_xp, windows_7, mac_os); var Sis. Operasi : set of TSistem. Operasi; teks : string; keterangan: string; S : TSistem. Operasi; begin Sis. Operasi : = [unix, linux, windows_7];
Selanjutnya. . . //Tampilkan isi Sis. Operasi for S : = unix to mac_os do if S in Sis. Operasi then begin case S of unix : keterangan : = 'UNIX'; linux : keterangan : = 'LINUX'; windows_xp : keterangan: ='WINDOWS_XP'; windows_7 : keterangan: = 'WINDOWS_7'; mac_os : keterangan: = 'MAC OS'; end; teks : = teks + keterangan + #13#10; end; Label. Info. Caption: =teks; end.
Record Struktur data yang menampung beberapa data yang tipenya dapat berlainan. Bertipe TRec. Buku Delphi Abdul Kadir 10 Field : Judul Field : Pengarang Field : Jumlah Ketiga buah field yang terdapat pada record bertipe TRec. Buku memiliki tipe data yang berlainan. Field judul dan pengarang bertipe string dan field jumlah bertipe bilangan bulat.
Record (2) Record dapat menampung beberapa data berlainan tipe. Bentuk pendeklarasian: Contoh: record type TRec. Buku = record Field_1 : Tipe_1; Judul : String; Pengarang : String; Field_2 : Tipe_2; Jumlah : byte; . . . end; Field_N : Tipe_N; Var Buku : TRec. Buku end;
Record (3) Untuk mengakses sebuah field dalam variabel bertipe record diperlukan notasi: Variabel. nama_field Contoh: Buku. Judul artinya field judul yang terdapat pada variabel Buku Jika ingin diisikan data ‘Pascal’, pernyataannya: Buku. Judul : = ‘Pascal’;
Program Record Gunakan Form. Create untuk menulis program dibawah ini. procedure TForm. Bab 2. Form. Create(Sender: TObject); type TRec. Buku = record Judul : String; Pengarang : String; Jumlah : byte; end; var Buku : TRec. Buku;
Selanjutnya. . begin //pemberian nilai ke field milik buku Buku. Judul : = 'Pascal'; Buku. Pengarang : = 'Abdul Kadir'; Buku. Jumlah : = 10; //tampilkan isi buku Label. Info. Caption: = 'Judul : ' + Buku. Judul + #13#10 + 'Pengarang : ' + Buku. Pengarang+#13#10 + 'Jumlah : ' + Int. To. Str(Buku. Jumlah); end;
Hasilnya. . .
Array dan String Array adalah struktur data yang berguna untuk menyimpan sejumlah data yang bertipe sama, Array bisa bernilai yang sama (himpunan tidak). Nunung Wardiman 1 2 Margie Siegers 3 Syaharani 4 Andien 5 Rien Jamain Array Penyanyi. Jazz Mengandung 5 elemen Angka ini menyatakan indeks bagi elemen array
Array dan String (2) Bagian yang menyusun array disebut elemen array. Masing-masing elemen dapat diakses melalui indeks array. Array gambar diatas dibuat dengan cara: type TArray. Nama = array [1. . 5] of string; var Penyanyi. Jazz : TArray. Nama; Kuncinya pada kata array yang diikuti dengan [nilai terkecil. . . Nilai terbesar] dan kata of diikuti tipe data elemen.
Array dan String (2) Elemen array diakses dengan: Nama_array[indeks] Rien Jamain Penyanyi. Jazz[1] Nunung Wardiman Penyanyi. Jazz[2] Margie Siegers Penyanyi. Jazz[3] Syaharani Penyanyi. Jazz[4] Andien Penyanyi. Jazz[5]
Program Array dan String procedure TForm. Bab 2. Form. Create(Sender: TObject); type TArray. Nama = array [1. . 5] of string; var Penyanyi. Jazz : TArray. Nama; Teks : String; I : integer; begin //pemberian nilai ke array Penyanyi. Jazz[1] : = 'Rien Jamain'; Penyanyi. Jazz[2] : = 'Nunung wardiman'; Penyanyi. Jazz[3] : = 'Margie Siegers'; Penyanyi. Jazz[4] : = 'Syaharani'; Penyanyi. Jazz[5] : = 'Andien';
selanjutnya. . //Tampilkan isi Array Teks : = ' '; for I : = 1 to 5 do Teks : = Teks + 'Penyanyi Jazz [ ' + Int. To. Str(I)+ ' ] : '+ Penyanyi. Jazz[I] + #13#10; Label. Info. Caption : =Teks; end. Hasilnya. . .
Array dan string Array yang dibahas didepan tergolong sebagai array berdimensi satu. Terdapat pula elemen berdimensi dua. Indeks kolom 2 Bentuk array 1 berdimensi dua: 1 Indonesia 2 Austria Vienna 3 Prancis Paris 4 Mesir Kairo Jakarta Info. Negara[3, 2] Kolom kedua Indeks baris Nama array Baris ketiga
Program Array dua dimensi procedure TForm. Bab 2. Form. Create(Sender: TObject); type TArray. Negara = array [1. . 4, 1. . 2] of string; var Info. Negara : TArray. Negara; Teks : String; I : integer; begin //pemberian nilai ke array Info. Negara[1, 1] : = 'Indonesia'; Info. Negara[1, 2] : = 'Jakarta'; Info. Negara[2, 1] : = 'Austria'; Info. Negara[2, 2] : = 'Vienna';
Info. Negara[3, 1] : = 'Prancis'; Info. Negara[3, 2] : = 'Paris'; Info. Negara[4, 1] : = 'Mesir'; Info. Negara[4, 2] : = 'Kairo'; //Tampilkan isi Array Teks : = ' '; for I : = 1 to 4 do Teks : = Teks + Info. Negara[I, 1] + ' - ' + Info. Negara[I, 2] + #13#10; Label. Info. Caption : =Teks; end.
Untuk memudahkan mengolah deretan karakter digunakan tipe data string. Var Nama: string; Variabel Nama mampu menampung string dengan panjang karakter bisa berapa saja. Apabila jumlah maksimal dalam suatu string mencapai N karakter, bisa membatasinya dengan menuliskan String[N]. Var Alamat : String [65]; Alamat hanya bisa menampung 65 karakter. Untuk mengakses setiap karakter dalam suatu string, gunakan notasi [] seperti pada array. Nama[1] Menyatakan karakter pada posisi kesatu dalam string Nama
Kode program procedure TForm. Bab 2. Form. Create(Sender: TObject); var Nama : String [15]; Teks : String; i : Integer; begin Nama : = 'Ika Menarianti'; //Tampilkan per huruf per baris Teks : = ' '; for i : = 1 to Length(Nama) do Teks : = Teks + Nama[i] + #13#10; Label. Info. Caption: =Teks; Label. Info. Alignment: =ta. Center; end;
Keterangan Fungsi Length digunakan untuk mengetahui jumlah karakter dalam string. Label. Info. Alignment: =ta. Center; Dipakai untuk mengatur agar teks dalam label diatur di tengah.
Pointer adalah suatu tipe data yang digunakan untuk menunjuk ke suatu data. Variabel yang bertipe pointer tidaklah berisi data, melainkan berisi alamat suatu data. POINTER Variabel X 5 Berisi alamat variabel x Data
Penjelasan Dimungkinkan untuk mengakses data pada variabel x melalui pointer. Pointer digunakan sehubungan dengan pembentukan variabel dinamis. Variabel dinamis adalah variabel yang bisa dialokasikan di dalam memori atau dihapus dari memori ketika program dieksekusi.
Mendeklarasikan pointer Tipe pointer dideklarasikan: Type Nama_tipe = ^pengenal_tipe; Pengenal_tipe dapat berupa tipe-tipe data yang tergolog sebagai struktur data primitif. Tanda ^ mengawali pengenal_tipe. Contoh: Type TPtr. Int = ^Integer; Var Ptr. X: TPtr. Int; Ptr. Int adalah tipe pointer yang menunjuk ke data bertipe Integer;
Tanda ^ mendefinisikan pointer TPtr. Int = ^Integer; Tipe yang ditunjuk pointer Nama tipe pointer Contoh lain: Type TRec. Buku = record Judul : String; Pengarang : String; Jumlah : Byte; End; TPtr. Buku = ^Trec. Buku; Var Novel : TPtr. Buku;
Novel adalah variabel pointer yang menunjuk ke tipe record bernama t. Recbuku Agar variabel pointer menunjuk ke suatu variabel data maka diperlukan penugasan: Variabel_pointer : = @variabel_data Simbol @ berarti alamat. Variabel_pointer diisi dengan alamat variabel_data
Mengakses data via pointer procedure TForm. Bab 2. Form. Create(Sender: TObject); Type TRec. Buku = record Judul : String; Pengarang : String; Jumlah : Byte; End; TPtr. Buku = ^Trec. Buku; Var Novel : TPtr. Buku; Buku : TRec. Buku;
begin //pemberian nilai ke field milik buku Buku. Judul: = 'Badai Pasti Berlalu'; Buku. Pengarang: = 'Marga T. '; Buku. Jumlah : = 2; //atur agar novel menunjuk ke buku Novel: = @Buku; //Tampilkan isi Buku melalui novel Label. Info. Caption: = 'Judul: ' + Novel^. Judul + #13#10 + 'Pengarang: ' + Novel^. Pengarang +#13#10 + 'Jumlah: ' +Int. To. Str(Novel^. Jumlah); end;
Menggunakan variabel dinamis Variabel dinamis adalah variabel yang bisa diciptakan ketika program dieksekusi. Bagaimana cara menciptakan variabel dinamis? Kuncinya yaitu menggunakan prosedur New Terdapat variabel pointer Ptr. Baru yang bertipe Ptr. Buku. Agar tercipta variabel yang dinamis yang kan ditunjuk oleh Ptr. Baru diperlukan perintah: New(Ptrbaru);
Gambaran variabel dinamis procedure TForm. Bab 2. Form. Create(Sender: TObject); Type TRec. Buku = record Judul : String; Pengarang : String; Jumlah : Byte; End; TPtr. Buku = ^Trec. Buku; Var Ptr. Data: TPtr. Buku;
begin //alokasikan memori New(Ptr. Data); //pemberian nilai ke field yang ditunjuk Ptrdata Ptr. Data. Judul: = 'Badai Pasti Berlalu'; Ptr. Data. Pengarang: = 'Marga T. '; Ptr. Data. Jumlah : = 2; //Tampilkan data buku melalui Ptr. Data Label. Info. Caption: = 'Judul: ' + Ptr. Data^. Judul + #13#10 + 'Pengarang: ' + Ptr. Data^. Pengarang +#13#10 + 'Jumlah: ' +Int. To. Str(Ptr. Data^. Jumlah); //dealokasi memori Dispose(Ptr. Data); end;
Menghapus Variabel Dinamis Bila suatu variabel dinamis tidak diperlukan lagi, memori yang digunakannya bisa dihapus dengan prosedur Dispose. Pemanggilannya: Dispose(Variabel_pointer); Artinya, memori yang ditunjuk oleh Variabel_pointer dihapus.
Gambaran Penghapusan Data Keadaan awal: ? Ptr. Data ? ? Setelah Dispose(Ptr. Data): Ptr. Data ? ? ? Memori untuk data ini didealokasikan atai dibebaskan
Pointer dan Array Dinamis Array juga dapat dipesan secara dinamis. Untuk membuat array dinams digunakan fungsi Get. Mem Untuk membebaskan memori digunakan prosedur Free. Mem
Kode Program procedure TForm. Bab 2. Form. Create(Sender: TObject); Type TRec. Buku = record Judul : String [60]; Pengarang : String[60]; Jumlah : Byte; End; TArray. Rec. Buku=array [1. . 10000] of TRec. Buku; TPtr. Buku = ^TArray. Rec. Buku; Var Ptr. Data: TPtr. Buku; i, Jum. Elemen : Longint; Teks : String; begin //alokasikan memori Jum. Elemen: =5; Get. Mem(Ptr. Data, Jum. Elemen * Size. Of(TRec. Buku));
Lanjutan. . . //pemberian nilai ke field yang ditunjuk Ptrdata Ptr. Data^[1]. Judul: = 'Octopussy'; Ptr. Data^[1]. Pengarang: = 'Ian Flemings'; Ptr. Data^[1]. Jumlah : = 2; Ptr. Data^[2]. Judul: = 'Badai Pasti Berlau'; Ptr. Data^[2]. Pengarang: = 'Marga T. '; Ptr. Data^[2]. Jumlah : = 4; Ptr. Data^[3]. Judul: = 'Struktur Data'; Ptr. Data^[3]. Pengarang: = 'Abdul Kadir'; Ptr. Data^[3]. Jumlah : = 2; Ptr. Data^[4]. Judul: = 'Algoritma Pemrograman'; Ptr. Data^[4]. Pengarang: = 'Rinaldi Munir'; Ptr. Data^[4]. Jumlah : = 5;
Lanjutan. . . Ptr. Data^[5]. Judul: = 'Metodologi Penelitian'; Ptr. Data^[5]. Pengarang: = 'Moh. Nazir'; Ptr. Data^[5]. Jumlah : = 6; //Tampilkan data buku melalui Ptr. Data Teks: =' '; for i: =1 to Jum. Elemen do Teks : = Teks + 'judul : ' + Ptr. Data^[i]. Judul + #13#10 +'pengarang : '+ Ptr. Data^[i]. Pengarang +#13#10 + 'Jumlah : ' + Int. To. Str(Ptr. Data^[i]. Jumlah) + #13#10; Label. Info. Caption: =Teks; //dealokasi memori Free. Mem(Ptr. Data); end;
Catatan Yang perlu diperhatikan dalam menggunakan Get. Mem dan melibatkan String adalah panjang string harus ditentukan. Perhatikan dua deklarasi berikut: TArray. Rec. Buku=array [1. . 10000] of TRec. Buku; TPtr. Buku = ^TArray. Rec. Buku; TArray. Rec. Buku merupakan tipe array dengan jumlah hingga 100. 000 elemen. Namun sebenarnya pemesanan memori sesungguhnya tidak sebesar itu, mengingat hal itu hanya berupa tipe.
Perhatikan kode bagian pernyataan: Jum. Elemen: =5; Get. Mem(Ptr. Data, Jum. Elemen * Size. Of(TRec. Buku)); Jumlah memori yang dialokasikan melalui Get. Mem hanya sebesar Jum. Elemen ukuran tipe TRec. Buku. Dengan kata lain, hanya akan ada 5 elemen saja. Pernyataan Get. Mem(Ptr. Data, Jum. Elemen * Size. Of(TRec. Buku)); dapat diliustrasikan sebagai berikut:
Hasil pengalokasikan memori oleh Get. Mem Field : judul Field : pengarang Field : jumlah 1 Field : judul 2 Field : pengarang 3 Field : jumlah 4 Field : judul 5 Field : pengarang Array Ptr. Data Field : jumlah Field : judul Field : pengarang Field : jumlah
Pernyataan seperti: Ptr. Data^[1]. Judul: = 'Octopussy'; Dibaca sebagai pengisian string Octopussy ke field judul yang ditunjuk oleh elemen pertama pada array Ptr. Data. Pernyataan: Free. Mem(Ptr. Data); Digunakan untuk membebaskan atau mendealokasikan memori yang ditunjuk oleh Ptr. Data
Fungsi Rekursif Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi rekursif banyak digunakan pada pola tertentu, misalnya pohon biner atau menghitung faktorial. Contoh: Faktorial m! Didefinisikan sebagai: • • 1 jika m=0 1 x 2 x 3 x. . X m jika m > 0 Secara rekursif, persoalan diatas ditulis sebagai berikut: • • 0! = m Bila m > 0, m! = m x (m – 1 )!
Kondisi pertama digunakan sebagai penghenti rekursi, sedangkan kondisi kedua menggambarkan proses rekursi. Kondisi tersebut dituangkan: Function Faktorial (M : Integer) : Longint; Begin if M = 0 then Faktorial : = 1 else Faktorial : = M * Faktorial (M – 1); End;
Misal dilakukan pemanggilan: Hasil : = Faktorial(4); Faktorial(4) 24 4 x Faktorial(3) Hasil: 24 6 3 x Faktorial(2) 2 2 x Faktorial(1) 1 x Faktorial(0) 1 1
Kode Faktorial Procedure TForm. Bab 2. Form. Create (Sender: Tobject); Function Faktorial (m: Integer): Longint; begin if M = 0 then Faktorial : = 1 else Faktorial : = M * Faktorial (M-1); end; begin //Hitung 4! Label. Info. Caption : = ‘ 4! = ‘ +Int. To. Str(Faktorial(4)); end;
Pengenalan Objek disebut sebagai instan kelas. Kelas mengandung properti dan metode Kelas adalah suatu wadah yang mengandung data (disebut propeti atau variabel instan) dan prosedur atau fungsi untuk mengakses data (disebut metode)
Menyatakan data Kelas Berupa fungsi atau prosedur Variabel Instan Metode Seolah-olah kelas adalah cetakan bagi objek Objek 1 Objek 2 Objek N Instan kelas, dengan sendirinya memiliki variabel instan dan metode
Deklarasi sebuah kelas Tipe. Kelas = Class (Object) private //bagian yang bersifat khusus public //bagian yang bersifat umum end; Private menyatakan area untuk mendeklarasikan variabel instan ataupun metode yang hanya boleh diakses oleh objek secara internal. Public menyatakan area untuk mendeklarasikan variabel instan ataupun metode yang boleh diakses oleh siapa saja.
Membuat kelas dalam unit Kelas dibuat pada sebuah unit. Menyatakan nama unit Unit 1; Interface Implementation Mendeklarasikan kelas Digunakan untuk mendefinisikan metode End. Menyatakan akhir unit Untuk membuat unit: 1. Klik Menu file 2. Klik New 3. Klik Unit - Delphi
Tulis kode program ini pada unit FBuku; interface uses Sysutils; type TBuku = class (TObject) private Judul : String; Pengarang : String; Jumlah : Integer; public constructor Create (Judul : String =''; Pengarang: String =''; Jumlah : Integer = 0); function Info(): String; end;
implementation constructor TBuku. Create(Judul : String; Pengarang : String; Jumlah : Integer); begin Self. Judul : = Judul; Self. Pengarang : = Pengarang; Self. Jumlah: = Jumlah; end; function TBuku. Info(): String; begin Info: = 'Judul: '+ Judul + #13#10 + 'Pengarang: '+ Pengarang + #13#10+ 'Jumlah: '+ Int. To. Str(Jumlah); end.
Penjelasan program uses Sysutils; q Digunakan untuk menyertakan unit Sysutils. q Unit ini berisi sejumlah pustaka yang berguna dalam penyusunan unit. q Contoh: Int. To. Str() hanya bisa digunakan Sysutils digunakan.
Nama kelas Objek yang diwarisi Bersifat khusus (privat). type Hanya metode milik TBuku = class (TObject) kelas Tbuku yang bisa private mengakses Judul : String; Pengarang : String; Jumlah : Integer; public constructor Create (Judul : String = ''; Pengarang: String = ''; Menyatakan nilai bawaan Jumlah : Integer = 0); function Info(): String; end; Bisa dipakai dimana saja karena bersifat umum (publik)
TBuku. Create q Detail dari metode milik kelas diletakkan pada bagian implementation. q Nama kelas disebutkan didepan nama metode. q Create tersebut milik Tbuku, karena bisa saja ada create untuk kelas lain. q Penulisan: constructor TBuku. Create(Judul : String; Pengarang : String; Jumlah : Integer); q Menyerupai pendeklarasian kelas yang berupa constructor Create (Judul : String =''; Pengarang: String =''; Jumlah : Integer = 0);
� Konstruktor adalah metode yang dipanggil pertama kali ketika kelas instan diciptakan. � Nilai bawaan digunakan sebagai nilai yang akan dipakai sekiranya argumen tidak disebutkan ketika konstruktor dipanggil. � Nama konstruktor tidak harus berupa Create, tapi create umum dipakai Self. Judul : = Judul; � Self berarti objek tempat pernyataan berada. � Self. Judul dibaca sebagai variabel instan Judul milik objek. � Self digunakan karena terdapat dua Judul (judul milik objek dan judul dalam argumen). � Self. Judul : = Judul berarti “Isikan nilai judul milik argumen kepada judul milik objek”
Menyimpan dan Menambahkan Proyek Jika semua program telah ditulis, compile program! Jika tidak ada kesalahan, simpan dengan nama Fbuku. Tambahkan unit ke dalam proyek Pbab 2. Caranya: q q q Klik menu Project Klik Add to Project Pilih Fbuku Klik tombol Open Buka kode milik FBab 2 dengan tekan tombol F 12 Tambahkan , Fbuku seperti: unit FBab 2; Interface uses Windows, Messages, Sys. Utils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Std. Ctrls, FBuku;
Tujuan penambahan , FBuku untuk memberitahukan bahwa unit FBab 2 memerlukan unit Fbuku Penggunaan unit Fbuku dapat dilihat pada kode yang diletakkan pada unit FBab 2 yang terdapat pada Form. Create
Kode Program procedure TForm. Bab 2. Form. Create(Sender: TObject); var Buku: TBuku; begin Buku : = TBuku. Create('Badai', 'Marga', 4); Label. Info. Caption: = Buku. Info(); end.
Menggunakan Destruktor adalah kebalikan dari konstruktor. Kegunaannya untuk melakukan tindakan ketika objek berakhir. Jika kita menggunakan objek maka destruktor bisa meletakkan kode untuk membebaskan memori.
Contoh kode (simpan dengan FBuku 2) unit FBuku 2; interface uses Sysutils, Dialogs; type TBuku = class (TObject) private Judul : String; Pengarang : String; Jumlah : Integer; public constructor Create (Judul : String =''; Pengarang: String =''; Jumlah : Integer = 0); destructor Destroy; override; function Info(): String; end;
implementation uses FBuku, FBab 2; constructor TBuku. Create(Judul : String; Pengarang : String; Jumlah : Integer); begin Self. Judul : = Judul; Self. Pengarang : = Pengarang; Self. Jumlah: = Jumlah; end; destructor TBuku. Destroy; begin Inherited Destroy; end; function TBuku. Info(): String; begin Info: = 'Judul: '+ Judul + #13#10 + 'Pengarang: '+ Pengarang + #13#10+ 'Jumlah: '+ Int. To. Str(Jumlah); end.
Review Dasar Struktur Data
Soal 1 Apa yang dimaksud dengan: a. Enumerasi b. Record c. Pointer d. Fungsi rekursif e. Variabel dinamis f. Konstruktor g. Destruktor h. New i. Dispose j. Free. Mem
Soal 2 Terdapat dua buah himpunan seperti berikut: H 1 = [2, 3, 4, 5] H 2 = [4, 5, 6, 7] Apa hasil operasi berikut? a) H 1 - H 2 b) H 2 - H 1 c) H 2 + H 1 d) H 1 + H 2 e) H 1 * H 2
Soal 3 Buatlah program untuk mendeklarasikan array Bunga yang akan menampung 5 buah nama bunga, yaitu Mawar, Melati, Kenanga, Arumdalu dan Anthurium. Bagaimana pula pernyataan untuk mengisikan nama bunga tersebut?
Soal 4 Suatu array data diisi dengan: 70 80 60 80 76 Buatlah program untuk menghitung nilai rata-rata dari kelima elemen tersebut.
Soal 5 Jelaskan maksud program dibawah ini: Type TRec. Buku = record Judul : String [60]; Pengarang : String[60]; Jumlah : Byte; End; TArray. Rec. Buku=array [1. . 10000] of TRec. Buku; TPtr. Buku = ^TArray. Rec. Buku; Var Ptr. Data: TPtr. Buku;
- Slides: 77