Anda di halaman 1dari 11

Modul I Mengenal Pemrograman Delphi

A. Pemrograman Berorientasi Objek Pemrograman berorientasi objek memakai objek-objek yang berbeda. Setiap objek berisi data dan program. Penulisan program berorientasi objek tidak mudah, tetapi akan mudah bagi kita untuk mengubah program dan mengembangkannya. Kesatuan antara data dan program akan memudahkan mencari kesalahan dan meminimalkan pengaruhnya pada objek lain. Ada tiga konsep dasar pemrograman berorientasi objek, yaitu; 1) Enkapsulisasi (encapsulisation), kita hanya akan memandang objek-objek dari field-field data yang berhubungan, tanpa perlu memperdulikan detil implementasinya. Keuntungannya adalah modularitas dan isolasi program dari program lain. 2) Pewarisan fungsi (inherintance), yaitu sifat kemampuannya untuk menciptakan objek lain dari objek ancestor. Konsep ini memungkinkan bagi kita untuk menciptakan hirarki object seperti dalam VCL Delphi. Polymorphism, artinya adalah setiap objek mengimplementasikan dengan caranya masing-masing. Unit Pada pemrograman Delphi, unit merupakan tempat programmer menuliskan kodekode program pascal ketika seorang program membuat sebuah program. Pada sebuah unit dapat berisi perintah-perintah Pascal. Perintah-perintah ini dikelompokkan kedalam sebuah prosedur dan atau kedalam sebuah fungsi. Jadi pada hakekatnya sebuah file unit berisi kumpulan prosedur dan atau kumpulan fungsi. Kode program pada file unit dapat bersifat umum atau bersifat khusus. Bersifat umum jika file ini berisi kode program yang dirancang untuk dapat digunakan secara umum, sehingga aplikasi lain juga dapat menggunakan fungsi yang dijalankannya. Sebagai contoh, jika pada file unit kita letakkan kode program untuk menghitung usia dalam satuan hari. Karena sifatnya umum, yaitu menghiutng umur maka kita dapat menggunakan unit ini untuk menghitung umur pemakaian alat, lama peminjaman koleksi di perpustakaan, dan lain-lain. Jika file unit dirancang untuk keperluan umu, maka setelah dikompilasi maka file unit tersebut dapat diguanakan oleh aplikasi lain. Di samping untuk pengunaan umum, file unit pun sering digunakan untuk kepentingan khusus. Maksudnya adalah file unit digunakan hanya untuk apliasi yang sedang dikembangkan saja (aplikasi yang dibuat saat ini). Sesuai dengan tujuan penggunaannyam, file unit pada dibagi kedalam tiga jenis, yaitu; 1) Unit yang berhubungan degan form, 2) Unit untuk menyimpan procedure dan function, 3) Unit untuk membangun komponen Materi-materi yang ada pada perkuliahan Pemrograman XBase ini hanya akan menggunakan file unit yang berhubungan dengan form. Struktur penulisan kode

program pada file unit yang berhubungan dengan fomr ditunjukkan pada Code 1.1 di bawah ini.
unit uPrak1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtnrs, MPlayer, StdCtrls; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} end.

Code 1.1 Struktur Penulisan Kode Program pada File Unit Nama-nama setelah kata cadangan uses adalah unit-unit lain yang dipakai. Kita dapat juga menambahkan unit buatan sendiri. Kode program pada file unit di atas dapat dibagi menjadi bagian; header, interface, user, type, var, implementation, dan end. (end titik). Penjelasan umum dari masing-masing bagian ini adalah sebagai berikut; Header unit, dinyatakan dengan kata cadangan unit dan diikuti dengan nama unitnya. Pada contoh di atas, nama unitnya adalah Prak1, berarti kita telah menyimpan unit tersebut dengan nama file Prak1.pas. Interface, menandai awal dari bagian interface yang dipakai untuk mendeklarasikan variable, type, procedure, dan lain-lain. Uses, kata cadangan ini digunakan untuk menyatakan library yang perlu dikompilasi menjadi file executable terakhir. Delphi secara ototmatis akan memberikan beberapa unit untuk kita. Jika kita menggunakan unit buatan sendiri, kita harus menuliskannya (nama unit tersebut) pada bagian ini. Type, merupakan bagian deklarasi type bagi object Form. Kita dapat mendeklarasikan variable, procedure, dan function pada bagian ini, yaitu pad bagian Private atau Public. Pendeklarasian Private hanya dikenal di dalam unit (modul) bersangkutan, sedangkan pendeklarasian Public dapat diakses dari unit lain. Var, digunakan untuk mendeklarasikan variable object dan variable lain yang sifat deklarasinya adalah global (berlalu di berbagai procedure dan function). Implementation, merupakan awal blok program utama. Semua procedure dan function yang telah dideklarasikan di bagian interface akan (dapat) digunakan pada bagian ini.

End. (end titik), merupakan akhir dari blok program utama.

Pernyataan lain yang perlu diterangkan dari kode program di atas adalah pernyataan {$R.DFM}, pernyataan ini menandakan bahwa unit tersebut adalah unit yang berhubungan dengan form. Pernyataan ini tidak boleh dihapus karena akan menimbulkan kesalahan (compiler akan salah menterjemahkan kode program pascal menjadi kode mesin) Klausa Uses Klausa atau kata cadangan uses digunakan untuk menuliskan unit-unit yang akan dipakai di sebuah program atau di sebuah unit. Kita dapat menemukan kata cadangan ini baik di dalam file project maupun file unit. Contoh pemakaian kata cadandan uses pada file project;
program prjPrak1; uses Forms, uPrak1 in 'uPrak1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end.

Code 1.2 Kata Cadangan Uses pada File Project Pada file unit, kata cadangan uses dapat diberikan dua kali, pertama di bagian interface dan yang kedua di bagai implementation. Contoh kode programnya;
unit uPrak1; interface uses {unit lain}, unitA; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses uPrak2; {$R *.dfm}

Uses pada interface

Uses pada implementation

end.

Code 1.3 Kata Cadangan Uses pada File Unit Kata cadangan uses setelah interface digunakan untuk me-uses-kan file-file pustaka Delphi atau file unit yang kita buat dengan tujuan umum seperti dijelaskan di atas. Sebaliknya, kata cadangan uses setelah implementation digunakan untuk me-uses-kan unit lain yang ada di dalam project yang sama. Class dan Object Class dan Object adalah dua istilah yang sering dipakai dalam Object Pascal dan bahasa OOP lainnya. Class adalah type data yang didefinisikan oleh pemakai. Class mempunyai keadaan (representasi) dan operasi (perilaku). Class mempunyai data internal dan beberapa method (dalam bentuk procedure dan function. Method menggambarkan karakteristrik dasar dan perilaku sejumlah objek yang serupa. Object adalah instance dari sebuah class atau sebuah variable dengan type class. Pada saat program dijalankan, Object memerlukan memori untuk representasi internalnya. Hubungan antara class dan obect sama dengan hubungan type data dengan variable. Memakai Objek-objek Delphi Object adalah entitas yang berisi data dan program. Object Delphi sepunuhnya bersifat pemrograman berorientasi objek sehingga mendukung inheritance, encapsulation, dan polymorphism. Menciptakan Object Kode program pada Code 1.3 terdapat perintah;
type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end;

Kode program di atas digunakan untuk mendeklarasikan class dengan nama TForm1. Class ini akan digunakan oleh compile Delphi untuk membuat object Form1, dengan perintah;
var Form1: TForm1;

Class TForm1 dan object Form1 diciptakan oleh compiler Delphi bersamaan dengan ditambahkannya form pada aplikasi tersebut. Dengan kata lain, jika kita membuat sebuah aplikasi berbasis form (window), maka secara otomatis Delphi akan

mendeklarasikan class TForm dan object atau variable instant Form bertipe TForm. Contoh Form1 : TForm1. Seperti dijelaskan di atas, Delphi adalah bahasa pemrograman visual yang sepenuhnya mendukung OOP (Object Oriented Programming), maka di dalam sebuah file unit (jika diperlukan), kita dapat menciptakan class dan object sendiri (sesuai dengan keinginan kita). Berikut ini akan dicontohkan cara membuat sebuah class dengan nama TTanggal. Class ini memiliki data; Tgl, Bln, dan Thn yang masing-masingnya bertipe Integer. Disamping ketiga data di atas, class TTanggal juga memiliki program (methode) masing-masing bernama IsiNilai dan TahunKabisat. Kegunaan methode ini adalah untuk; a) IsiNilai() digunakan untuk memasukkan data kepengenal Tgl, Bln dan Thn, dan b) TahunKabisat digunakan untuk menguji apakah nilai yang dimasukkan ke pengenal Thn merupakan tahun kabisat atau bukan. Selengkapnya kode program untuk mendeklarasikan class TTanggal tersebut dapat dilihat di bawah ini;
Type TTanggal = class Tgl : Integer; Bln : Integer; Thn : integer; Procedure IsiNilai (Tg, Bl. Th : integer); function TahunKabisat : Boolean; public procedure P( Y : String); private procedure X( Y : String); End;

Setelah class buatan sendiri diciptakan, agar class ini dapat digunakan kita kita harus mendeklarasikan sebuah object (variable instant) ber-type class tersebut. Contoh cara mendeklarasikannya ditunjukkan melalui kode program di bawah ini:
var Tanggal : TTanggal

Jika anda mendeklarasikan type class TTanggal di atas pada sebuah unit yang berhubungan dengan form, maka kode program deklarasi class TTanggal dibuat di bawah deklarasi class TForm. Kode program lengkap contoh cara mendeklarsikan class TTanggal di dalam sebuah unit yang berhubungan dengan form dapat di lihat melalui Code 1.4 di bawah ini.
unit uPrak1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls;

type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end;

Deklarasi type class TForm1yang diciptakan oleh Delphi secara otamatis.

type TTanggal = class Tgl, Bln, Thn : integer; procedure IsiNilai (Tg, Bl, Th : integer); function TahunKabisat : Boolean; end; var Form1: TForm1; Tanggal : TTanggal; implementation {$R *.dfm} end.

Deklarasi type class TTanggal, yang dapat dibuat sendiri oleh programmer

Form1 adalah variable instance dari type class TForm1 Tanggal adalah variable instance dari type class TTanggal

Code 1.4 Deklari Type Class TTanggal pada Unit uPrak2.pas Dan deklrasi variable Instance Tanggal dari Type Class TTanggal Setelah object buatan tersebut dideklarasikan dan variable instance-nya juga telah didefinisikan, selanjutnya adalah meciptakan object tersebut. Caranya adalah dengan memanggil constructor-nya. Construktor bertugas menciptakan sebuah instance dari object dan mengalokasikan memori atau menginisialisasi data-data yang diperlukan sehingga object siap dipakai. Object-object dari Pascal minimal mempunyai sebuah constructor yaitu create. Contoh pemanggilan contructor;
Tanggal := TTanggal.Create;

Perintah pemanggilan constructor sebuah object dapat dilakukan pada event OnCreate sebuah Form, seperti ditunjukkap pada kode program di bawah ini
procedure TForm1.FormCreate(Sender: TObject); begin Tanggal := TTanggal.Create; end;

Membuang Object Setelah selesai memakai object, kita harus membuangnya dengan menjalankan perintah Free(). Dengan menjalankan perintah Free() tesebut, pertama-tama Free() akan mengecek apakah instance dari object ada (tidak nil), lalu memanggil destructornya, yaitu Destroy(). Tugas destructor adalah kebalikan dari constructor, yaitu untuk

mendealokasikan memori dan membuang objek dari memori. Contoh perintah untuk memanggil Free() adalah;
Tanggal.Free;

Pemanggil Free() dapat dilakukan pada event OnClose sebuah form seperti ditunjukkan pada kode program di bawah ini.
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Tanggal.Free; end;

Method Method adalah procedure dan function yang dimiliki sebuah object. Method membentuk prilaku object. Dua method yang di bagian atas telah digunakan adalah constructor dan destructor. Kita dapat membuat method lain untuk melakukan berbagai tugas. Langkah-langkah untuk membuat method; 1) Mendeklarasikan method pada deklarasi type object, 2) Mendefinisikan method dalam program utama. Pada deklarasi type class TTanggal di atas, telah didekarasikan dua buah method, masing-masing bernama; IsiNilai (procedure) dan TahunKabisat (function). Selengkapnya kita bisa lihat melalui penampilan ulang kode program pada Code 1.4 di atas
type TTanggal = class Tgl, Bln, Thn : integer; procedure IsiNilai (Tg, Bl, Th : integer); function TahunKabisat : Boolean; end;

Procedure IsiNilai (method) Function TahunKabisat(method)

Definisi kedua method di atas pada program utama dapat dilihat pada contoh kode program di bawah ini;
Implementation // awal program utama {$R *.dfm} procedure TTanggal.IsiNilai(Tg, Bl, Th: integer); begin Tgl := Tg; Bln := Bl; Thn := Th;

end; function TTanggal.TahunKabisat : Boolean; begin if (Thn mod 4 <> 0) then TahunKabisat := False else if (Thn mod 100 <> 0) then TahunKabisat := False else TahunKabisat := True; end; end. // akhir program utama

Catatan: - Penjelasan tentang bagaimana konsep dan cara membuat procedure dan function akan disampaikan pada pokok bahasan tersendiri

Praktikum
Untuk memahami konsep Object Pascal di atas, lakukan langkah praktikum di bawah ini: 1. Aktifkan Komputer, 2. Buat direktori di drive C dengan nama C:\Program Files\Borland\Delphi6\ Project\NOBP\Prak1 Catatan: NOBP adalah nomor BP anda masing-masing. Misalnya nomor BP anda adalah 1234, maka anda harus membuat direktori; C:\Program Files\Borland\Delphi6\\Project\1234\Prak1 3. Jalankan Delphi 6, 4. Buat sebuah user interface dengan tampilan sepert Gambar 1.1 di bawah ini. 5. Isi property BorderStyle Form1 dengan nilai bsDialog, Check point 1: Tuliskan kegunaan property BorderStyle tesebut! 6. Isi property Posision Form1 dengan nilai poDesktopCenter. Check point 2: Tuliskanlah kegunaan property poDesktopCenter tersebut! 7. Tampilkan kode program (tekan tombol F12), kemudian deklarasikan sebuah type class TTanggal (Code 1.5) di bawah ini di bawah deklarasikan type class TForm1 (di atas deklarasi var),

Gambar 1.1 Tampilan User Interface Praktikum II type TTanggal = class Tgl, Bln, Thn : integer; procedure IsiNilai (Tg, Bl, Th : integer); function TahunKabisat : Boolean; end; Code 1.5 Kode Program untuk Deklarasi Class TTanggal 8. Deskripsikan method IsiNilai dan TahunKabisat di dalam program utama seperti contoh di bawah ini (yang anda ketik adalah kode program yang dicetak miring);
Implementation {$R *.dfm}

procedure TTanggal.IsiNilai(Tg, Bl, Th: integer); begin Tgl := Tg; Bln := Bl; Thn := Th; end; function TTanggal.TahunKabisat : Boolean; begin if (Thn mod 4 <> 0) then TahunKabisat := False else if (Thn mod 100 <> 0) then TahunKabisat := False else TahunKabisat := True; end; end.

9. Deklarasikan variable instance dengan nama Tanggal untuk type class TTanggal dibagian deklarasi var seperti contoh di bawah ini (yang anda ketikkan adalah kode program yang dicetak temab di bawah ini);
var Form1: TForm1; Tanggal : TTanggal;

10. Ciptakan object Tanggal melelui event OnCreate Form1. Caranya; Sorot Form 1, klik tabsheet event yang ada di Jendela Object Inspector. Cari event OnCreate, dan klik ganda di sebelah kanan garis vertika (garis yang memisahkan event dan nilai event). Ketik kode program yang dicetak tebal di bawah ini untuk menciptakan object tersebut.
procedure TForm1.FormCreate(Sender: TObject); begin Tanggal := TTanggal.Create; end;

11. Tampilkan kembali Form, dan sorot form tersebut, 12. Berikan perintah untuk membebaskan memori dari object Tanggal melaui event OnClose Form1. Ketik kode program di bawah ini (yang dicetak tebal) untuk menghapus object yang telah dibuat di atas dari memori. Check point 3: Jelaskan (menurut logika anda) kenapa object Tanggal diciptakan melalui event OnCreate dan dihancurkan melalui event OnClose sebuah Form !
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Tanggal.Free; end;

13. Rubah property Caption komponen Button1 dengan nilai; Proses dan property caption Button2 dengan nilai Keluar. 14. Klik ganda komponen Button1, dan ketik kode program yang dicetak tebal di bawah ini pada event OnClick komponen Button1 tersebut.
procedure TForm1.Button1Click(Sender: TObject); var h, b, t : integer; begin h := StrToInt(Edit1.Text); b := StrToInt(Edit2.Text); t := StrToInt(Edit3.Text); Tanggal.IsiNilai(h, b, t); if Tanggal.TahunKabisat = true then Label5.Caption := 'Tahun Kabisat' else Label5.Caption := 'Bukan Tahun Kabisat'; end;

15. Klik ganda komponen Button2, kemudian ketik kode program yang dicetak tebal di bawah ini;

procedure TForm1.Button2Click(Sender: TObject); begin Application.Terminate; end;

16. Simpan file unit anda dengan nama uPrak1.pas dan nama file project prjPrak1.pas, 17. Jalankan program dan coba mengisikan nilai tanggal, bulan, dan tahun pada komponen Edit1, Edit2, dan Edit3, setelah itu klik tombol Proses. Perhatikan informasi yang ditampilkan melalui komponen Label5, 18. Coba merubah-ubah nilai tahun setelah itu akhiri dengan mengklik tombol Proses, 19. Stop program dengan cara mengklik tombol Selesai. Check point 4: Tuliskan kegunaan perintah Application.Terminate yang ada dibalik penekanan tombol Button2 (tombo Selesai), 20. Tampilkan Form1, kemudian sorot komponen UpDown1. Isi property Associate dengan nilai Edit2 dan isi nilai property Min dengan nilai 1 dan property Max dengan nilai 12, 21. Jalankan kembali program sambil mengamati fungsi komponen UpDown1. Check point 5: Jelaskan kegunaan komponen UpDown di dalam program anda ini. Tugas: - Buat sebuah method pada type class TTanggal untuk membatasi (memberikan nilai minim dan maksimum) pada saat pengisian tanggal. Nilai minimum tanggal untuk seluruh bulan adalah 1 sedangkan nilai maksimum ditentukan oleh bulannya. Sebagai contoh, jika bulannya bulan 1, 3, 5, 7, 9, dan 11, nilai tanggal maksimumnya adalah 31. Perhitungkan juga untuk bulan yang lainnya. - Anda dimita untuk menggali pengatuan dan pemahaman ada dari materi di atas agar ketia anda membuat sebuah program aplikasi database anda mendapatkan banyak kemudahan. Untuk mendapatkanya anda boleh menggali informasi dari berbagai sumber, untuk itu pada bagian akhir lembaran jawaban dan tugas disediakan tempat bagi anda untuk mencantumkan nama orang atau sumber anda untuk mendapatkan pengetahuan yang anda butuhkan tersebut. Tidak hanya itu, ilmu yang kita miliki akan bertambah jika kita juga mau membagikannya kepada orang lain. Tuliskanlah nama-nama orang/kawan yang pernah anda ajari dalam menyelesaikan praktikumnya pada bagian bawah lembaran jawaban dan tugas ini.

Anda mungkin juga menyukai