modul praktikum delphi ii _lanjut

30
MODUL PRAKTEK LAB KOMPUTER DISUSUN OLEH: TIM PENYUSUN BORLAND DELPHI ADVANCED AKADEMI MANAJEMEN INFORMATIKA DAN KOMPUTER JAKARTA 2010

Upload: ichal321

Post on 31-Jul-2015

535 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Modul Praktikum Delphi II _Lanjut

MODUL PRAKTEK LAB KOMPUTER

DISUSUN OLEH:

TIM PENYUSUN BORLAND DELPHI ADVANCED

AKADEMI MANAJEMEN INFORMATIKA DAN KOMPUTER

JAKARTA

2010

Page 2: Modul Praktikum Delphi II _Lanjut

Bab I.

Pengenalan Delphi Lanjutan

I. Pengertian Delphi

Delphi adalah suatu bahasa pemograman (development language) yang digunakan untk merancang

suatu aplikasi program.

Pada saat semester sebelumnya, sudah pernah mempelajari mata kuliah Delphi tentu tahu apa-apa saja

komponen yang ada didalam nya. Pada Bab ini sebelumnya diingatkan terlebih dahulu pengertian

delphi dan jendela IDE Delphi. Untuk pengertian nya sudah ada di Modul Delphi sebelumnya.

a. Kegunaan Delphi

1. untuk membuat aplikasi windows

2. Untuk merancang aplikasi program berbasis grafis

3. Untuk membuat program berbasis jaringan (client/server)

4. Untuk merancang program .Net (berbasis internet)

b. Keunggulan Delphi

1. IDE (Integrated Development Environment) atau lingkungan pengembangan aplikasi

sendiri adalah satu dari beberapa keunggulan delphi, didalamnya terdapat menu-menu yang

memudahkan kita untuk membuat suatu proyek program.

2. Proses Kompilasi cepat, pada saat aplikasi yang kita buat dijalankan pada Delphi, maka

secara otomatis akan dibaca sebagai sebuah program, tanpa dijalankan terpisah.

3. Mudah digunakan, source kode delphi yang merupakan turunan dari pascal, sehingga

tidak diperlukan suatu penyesuaian lagi.

4. Bersifat multi purphase, artinya bahasa pemograman Delphi dapat digunakan untuk

mengembangkan berbagai keperluan pengembangan aplikasi.

c. Sejarah Borland Delphi

1. Delphi versi 1 (berjalan pada windows 3.1 atau windows 16 bit)

2. Delphi versi 2 (Berjalan pada windows 95 atau delphi 32 bit)

3. Delphi versi 3 (berjalan pada windows 95 keatas dengan tambahan fitur internet atau web)

4. Perkembangan selanjutnya diikuti dengan Delphi versi 4, 5 dan 6.

Page 3: Modul Praktikum Delphi II _Lanjut

5. Versi terkini dari delphi adalah versi 7 dengan tambahan vitur .net dengan tambahan file

XML

II. IDE DELPHI

IDE adalah sebuah lingkungan dimana semua tools yang dipeerlukan untuk desain,

menjalankan dan mengetes sebuah aplikasi disajikan dan terhubung dengan baik sehingga

memudahkan pengembangan program.

• langkah - langkah mengaktifkan Delphi

• Klik start

• Pilih program Files

• Pilih Borland Delphi

• Pilih dan klik Delphi 7

• Jendela Utama Delphi

Gambar 1.1 Jendela Utama Delphi

Page 4: Modul Praktikum Delphi II _Lanjut

III. Rahasia Pembuatan Aplikasi Delphi

Sekilas pembuatan sebuah program sederhana seolah-olah hanya terdiri atas sebuah file

project dan sebuah unit/form. Tetapi kenyataanya ada beberapa file yang dibuat untuk Anda

pada saat Anda bekerja dengan program Anda, didalam listing programnya pun juga banyak

proses yang bisa kita buat untuk mengefisienkan listing pemrograman.

1. Procedure

Pada saat pertama kali menulis program, mungkin Anda akan membuat program yang

sederhana, program berjalan sequensial dari awal sampai akhir. Perhatikan contoh berikut:

Program Hallo; Begin {buat jendela} {Tulis pesan ke jendela} {Buang jendela}

{buat jendela} {Tulis pesan ke jendela} {Buang jendela} {buat jendela} {Tulis pesan ke jendela} {Buang jendela} End. Anda akan menuliskan program tersebut sebanyak tiga kali, program diatas mengulang

perintah yang sama sebanyak tiga kali, dengan cara ini Anda mungkin akan mengetikan

kesalahan yang sama sebanyak tiga kali

Adalah kumpulan pernyataan program yang berbentuk sebuah blok diagram. Blok

tersebut dapat diaktifkan dengan sebuah pemanggilan procedure. Perhatikan contoh berikut:

Jika Anda akan menuliskan pesan sebanyak 3 kali, anda cukup memanggil procedure

diatas sebanyak tiga kali, programnya menjadi:

Procedure tulispesan; {buat jendela} {Tulis pesan ke jendela} {Buang jendela} End;

Page 5: Modul Praktikum Delphi II _Lanjut

2. Function

Adalah procedure yang menghasilkan sebuah nilai. Misalnya persamaan y=cos(6), fungsi

cos memakai bilangan 6 sebagai operandnya, menghitung nilai cosinus dari 6 dan

mengembalikan nilainya ke persamaan.

3. Event

Cara pemrograman sekuensial dengan thread tunggal telah diperbaiki dengan adanya

windows, windows adalah sistem dinamik yang memberikan respon pada event, misalnya

ketika kita mengklik tombol start, muncul menu popup. Klik ada salah satu event, yang

nantinya diproses untuk menghasilkan respon, berupa menu popup tadi.

4. Project

Sebuah project Delphi terdiri dari form, unit, setting option, resource, dll. Beberapa file

dibuat oleh delphi pada saat Anda membangun sebuah aplikasi. File-file berikut dibuat oleh

delphi pada saat Anda merancang aplikasi:

♥ File Project (.dpr) – file ini dipakai untuk menyimpan informasi mengenai form dan

unit. Program inisialisasi ada disini.

♥ File Unit (.pas) – file ini untuk menyimpan program. Beberapa unit berhubungan

dengan form, beberapa lainnya hanya berisi procedure dan function

♥ File form (.dfrm) – file ini adalah file biner yang dibuat delphi untuk menyimpan

informasi mengenai form. setiap file form mempunyai sebuah file unit (.pas)

♥ File project option (.dfo) – file ini berisi setting option dari project.

Program hallo; Procedure tulispesan;

{buat jendela} {Tulis pesan ke jendela} {Buang jendela}

End; Begin Tulispesan; Tulispesan; Tulispesan; End;

Page 6: Modul Praktikum Delphi II _Lanjut

♥ File resource (.res) – file biner yang berisi sebuah icon yang dipakai oleh project. File

ini tidak dapat dibuat atau diubah oleh user karena delphi secara terus menerus

mengupdate atau membuat ulang file ini.

♥ File backup (.~dp, .~df, .~pa) – file-file backup untuk project, form dan unit.

File-file berikut ini dibuat oleh compiler:

• File Executable (.exe) – File executable dari aplikasi Anda. File ini berdiri sendiri

dan hanya memerlukan file librari di DLL, VBX, dll.

• File unit object (.dcu) – file unit (.pas) versi terkompilasi dan akan di link ke dalam

file executable akhir.

• File Dynamic Link Library (.dll) – file ini dibuat jika Anda merancang DLL sendiri.

Yang terakhir, file-file windows yang dapat dipakai bersama-sama dengan Delphi:

� File help (.hlp) – file help standard dari windows yang dapat dipakai di aplikasi

delphi.

� File image atau grafik (.wmf, .bmp, .ico) – file-file ini dipakai agar aplikasi lebih

menarik.

File project (.dpr) berisi program pascal yang merupakan bagian utama dari aplikasi,

tetapi Anda dapat membangun aplikasi tanpa perlu melihat file ini. File ini dibuat dan

diubah secara otomatis oleh Delphi.

5. Form

Inti dari setiap aplikasi Delphi adalah form. Form dapat dianggap sebagai sebuah

window. Defaultnya, delphi memberikan sebuah form pada sebuah project dan menampilkan

sebuah form kosong pada saat anda memulai delphi. Form adalah dasar dari aplikasi

windows. Form dipakai untuk menempatkan komponen, kontrol dan lain-lain. Informasi

mengenai form disimpan didalam dua file, yaitu file .dfm dan .pas. File .dfm berisi informasi

mengenai tampilan form, ukuran, lokasi dst.

Program form adalah program untuk mengontrol form disimpan di file .pas atau disebut

juga dengan unit. Setiap kali Anda menambahkan event handler atau menambahkan

perintah, file ini akan diubah, dan Delphi menempatkan kursor ditempat dimana seharusnya

Anda menambahkan program tsb.

Page 7: Modul Praktikum Delphi II _Lanjut

Form mempunyai property, dengannya Anda dapat mengubah tampilan form, mulai dari

warna, ukuran, lokasi, dll. Sebuah form bisa memiliki sejumlah event handler.

6. Unit

Ada tiga jenis unit, yaitu:

� Unit yang berhubungan dengan form (unit yang paling umum).

� Unit untuk menyimpan procedure dan function.

� Unit untuk membangun komponen.

Lihatlah struktur dibawah ini:

Nama unit ada pada baris pertama setelah kata unit. Bagian interface berisi kata-kata

uses, type, dan var. Terakhir bagian implementation berisi function dan procedure untuk

pengontrol (event handler), juga berisi function atau procedure yang akan Anda buat sendiri.

Nama-nama setelah kata uses adalah unit-unit lain yang dipakai. Anda juga dapat

menambahkan unit buatan sendiri. Bagian-bagian dari unit diatas adalah:

• Header unit – header dinyatakan dengan kata unit dan diikuti oleh namanya yang

juga merupakan nama file dengan ekstensi .pas

Unit unit1;

Interface

Uses

Windows,Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

Type

Tform1 = class (Tform)

Procedure FormCreate (Sender: Tobject);

Private

{Private declarations}

Public

{Public declarations}

End;

Var

Form1: Tform1;

Implementation

{$R *.DFM}

Procedure Tform1.formcreate (Sender: Tobject);

Begin

End;

End.

Page 8: Modul Praktikum Delphi II _Lanjut

• Interface – menandai awal dari bagian interface yang dipakai untuk mendeklarasikan

variable, type, procedure dan lain-lain. Bagian interface berakhir dengan diawalinya

bagian implementation.

• Uses – klausa ini menyatakan library yang perlu dikompilasi menjadi file executable

terakhir. Delphi secara otomatis akan memberikan beberapa unit untuk Anda. Jika

Anda memakai unit buatan sendiri, maka harus menyatakannya disini.

• Type – bagian deklarasi type. Type digunakan untuk mendeklarasikan variable.

Kata-kata berikut dipakai untuk menyatakan bagaimana sebuah object dipandang dari

program atau object lain:

• Private – hanya dikenal di dalam modul yang bersangkutan.

• Public – dapat diakses dari luar unit.

Kata published dan protected dipakai untuk membuat komponen, pada contoh diatas

belum dipakai.

• Published – property yang bersifat ini, ditampilkan di object inspector dan Anda

dapat mengubahnya pada saat pembuatan aplikasi.

• Protected – komponen, field, method dan property dengan sifat ini dapat diakses

oleh descendant.

• Var – dipakai untuk mendeklarasikan variable dan variable object.

• Implementation – tempat menuliskan semua function dan procedure yang telah

dideklarasikan dibagian interface.

• {$R *.DFM} – untuk mengikat unit form ke .dfrm-nya.

7. Property

Apa yang anda bayangkan jika mendengar kata property? Tanah, rumah atau apartemen?

Properties didalam delphi berarti atribut-atribut yang dimiliki sebuah objek. Orang memiliki

atribut tinggi, berat, warna kulit, dll.

Pada delphi, semua form dan semua komponen (Visual Component) mempunyai

properties. Form mempunyai ukuran (tinggi dan lebar), warna background, batas dan juga

nama. Kita dapat mengontrol penampilan objek-objek tersebut dengan memanipulasi atribut

atau property-nya.

Page 9: Modul Praktikum Delphi II _Lanjut

IV. Konstanta dan Variable

Konstanta adalah nilai tetap. Misalnya kita menetapkan nilai PPn 10%, jika kita

menggunakan nya sebanyak 5 kali, maka kita akan mengetikkannya sebanyak 5 kali juga.

Jika sewaktu-waktu nilai PPn nya berubah, maka kita akan merubah nilainya sebanyak yang

ketik dalam listing program.

Untuk mempermudahnya, kita bisa mendefinisikannya dalam constanta. Jadi, ketika akan

digunakan bukan lagi memanggil nilainya, tetapi yang dipanggil adalah constanta.

Contoh mendefinisikan konstanta:

Const ppn = 0.1;

Artinya, nama konstanta, dalam hal ini mempunyai nilai 0,1. Jika ingin menggunakan nilai

0,1 dalam aplikasi, kita cukup menyatakan nama konstantanya. Misalnya:

besarPpn := jumbel * ppn;

Variable adalah tempat untuk menyimpan sebuah nilai. Perbedaannya dengan konstanta

nilainya sudah tetap sedangkan variable nilainya dapat berubah-ubah setiap waktu.

Contoh pendefinisian variable:

Var besarPpn, jumbel : single;

Tipe Data

Tipe data sangat penting dalam pemrograman. Karena dia adalah pengenal dari data-data

yang akan diproses dalam program aplikasi. Tipe data juga mempunyai jangkauan nilai yang

berbeda-beda. Tipe-tipe data yang biasa digunakan dalam pemrograman adalah integer, real,

double, string, dll.

Dalam delphi semua data yang diinput didalam aplikasi program dibaca sebagai string, maka

supaya data-data angka bisa dibaca sebagai numerik, harus dikonversi dari string menjadi

tipe data yang diinginkan.

V. Variable Global dan Variable Lokal

Variable global adalah variable yang dapat dipakai diseluruh program, diprogram utama

atau didalam procedure.

Variable lokal hanya dapat dipakai ditempat pendefinisiannya. Misalnya jika

didefinisikan didalam procedure, maka hanya procedure tersebut saja yang dapat

menggunakan.

Contoh dari penggunaan variable global dan lokal, bisa kita lihat dari program yang

berbasis console berikut:

Page 10: Modul Praktikum Delphi II _Lanjut

1. Sebelumnya, klik menu Project � Option � pilih tab linker � beri tanda (√) pada

generate console aplication � klik OK.

2. Kemudian klik menu project � view source.

3. Setelah itu, ketiklah listing program berikut:

Program contohvar;

Uses Forms;

{$APPTYPE CONSOLE}

Var varglobal:integer;

Procedure cobacoba;

Var varlokal:integer;

Begin

Varlokal:=20;

Writeln(‘Isi variabel global : ‘,varglobal);

Writeln(‘Isi variabel lokal : ‘,varlokal);

End;

Begin

Varglobal:=10;

Cobacoba;

Readln;

End.

4. Kemudian simpan filenya, File � Save Project As � save as type = .pas, kemudian

ketik file name = contohvar � Save

5. Untuk menjalankan filenya, double klik file yang berextention .exe (contohvar.exe)

VI. Visual Component Library

Berisi kumpulan object yang di tulis dalam object pascal dari delphi untuk dipakai pada

form delphi. Ada dua jenis, yaitu visible (tampak) dan invisible (tidak tampak). Komponen

visible ditempatkan dan diprogram untuk pemakai, contohnya: editbox. Komponen invisible

memberikan kontrol khusus atau sebagai antarmuka bagi pemrogram, contohnya: timer.

1. Object Inspector

Didalam object inspector terdapat properties dan event handler. Properties yang

dimaksud disini adalah aturan mengenai object yang Anda tempatkan didalam form.

Page 11: Modul Praktikum Delphi II _Lanjut

Beberapa properties ada yang bersifat umum dan dimiliki oleh komponen-komponen,

tetapi ada juga properties yang bersifat khusus.

Komponen-komponen delphi juga mempunyai sejumlah event yang masing-masing

mempunyai event handler. Program yang Anda masukkan ke event handler akan

dijalankan pada saat event terjadi.

Page 12: Modul Praktikum Delphi II _Lanjut

Bab II.

Event Driven dan Exception

Apakah program yang event driven? Yaitu program yang terdiri dari blok-blok perintah yang

dijalankan jika terjadi sebuah event atau aksi. Contoh program yang event adalah klik mouse,

menekan tombol pada keyboard, dan memulai aplikasi.

Selain itu, ada juga program yang non event driven. Sebelum kita masuk kedalam program yang

event driven, terlebih dahulu kita mempelajari program yang non event driven. Untuk bisa

membuatnya kita perlu menggunakan aplikasi console. Cara menggunakannya:

1. klik menu Project � Option � pilih tab linker � beri tanda (√) pada generate console

aplication � klik OK.

2. Kemudian klik menu project � view source.

3. Kemudian ketikkan listing program berikut:

Program nonevent;

Uses forms;

{$APPTYPE CONSOLE}

Var nama:string;

{$R *.res}

Begin

Writeln(‘Selamat datang di Delphi 7’);

Writeln(‘Program ini menggunakan Non Event Driven’);

Write(‘Masukkan nama Anda : ‘);readln(nama);

If (length(nama)<7) then

Writeln(‘Nama Anda pendek’)

Else

Writeln(‘Nama Anda panjang’);

End.

4. Simpan filenya, file � Save Project As � untuk program console, kita menggunakan

extention .pas (nonevent.pas)

5. Untuk menjalankan programnya, terlebih dahulu kita harus mengcompile filenya. Project �

compile nama file (nonevent)

6. Setelah itu, kita tinggal menjalankan file yang berextention .exe (nonevent.exe)

Page 13: Modul Praktikum Delphi II _Lanjut

I. Program yang Event-Driven

Aplikasi yang event driven tidak akan mengerjakan apa-apa, jika tidak terjadi event. Oleh

sebab itu program yang event driven tidak mempunyai titik awal dan titik akhir yang jelas.

Program hanya perlu mengetahui respon-respon yang akan diberikan pada setiap event.

Sebagai contoh kita akan membuat aplikasi yang akan memberi respon pada klik tombol mouse,

dan menampilkan koordinatnya.

1. Buat aplikasi baru

2. Buka tab Events dari object inspector, lihatlah event-event yang telah didefinisikan.

3. Klik ganda pada bagian kanan dari label OnMouseDown, hal ini menyatakan kita akan

membuat event handler jika kita menekan tombol mouse pada saat kursor mouse ada di

form.

4. Delphi sudah memberikan kerangka procedure. Tambahkan perintah yang diperlukan:

5. Jalankan aplikasi tersebut.

II. Event yang telah Didefinisikan

Untuk mengetahui lebih jelas bagaimana hubungan antara event dan komponen, kita akan

melihat event-event dari komponen umum, yaitu Button

• OnClick menandai jika user mengklik pada sebuah button

• OnDragDrop dipanggil jika sebuah object di drag ke sebuah mouse dan di-drop

• OnDragOver dipanggil jika sebuah object di-drag di atas button

• OnEndDrag dipanggil jika sebuah button sedang di-drag, dan kemudian button di-drop

atau drag diakhiri tanpa drop

• OnEnter dipanggil jika button menerima fokus

• OnExit dipanggil jika button tidak lagi fokus

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState;

X, Y: Integer);

begin

form1.Canvas.TextOut(X,Y,'Mouse Pada '+inttostr(x)+','+inttostr(y));

end;

end.

Page 14: Modul Praktikum Delphi II _Lanjut

• OnKeyPress dan OnKeyDown menyatakan ada sebuah tombol yang ditekan, termasuk

tombol yang tidak dicetak misalnya Shift, Alt dan Insert. Event Handler ini dipanggil

hanya jika button difokus

• OnKeyUp dipanggil jika tombol dilepaskan pada saat button difokus.

• Dan masih banyak lagi event handler lain. Anda hanya menuliskan event handler untuk

event-event tertentu saja.

III. Parameter dalam Event Handler

Parameter mempunyai dua fungsi, yaitu:

• Memberi informasi ke event handler

• Meminta event handler menghasilkan nilai tertentu

Kadang-kadang event handler diminta untuk mengirim kembali informasi, contoh:

Prcedure TForm1.Edit1KeyPress (Sender:TObject; var Key:Char);

Variable key adalah parameter var, artinya setiap perubahan dari isinya akan

dikembalikan ke procedure pemanggil.

Ada juga event handler yang berfungsi untuk melakukan pengontrolan yang lebih rumit.

Contohnya: Anda mempunyai sebuah listbox yang berisi tulisan bola dan kotak, anda ingin

menampilkan simbol untuk setiap teks tersebut. Anda harus memanipulasi list standar

dengan memanfaatkan event. Langkah-langkahnya:

1. Buat sebuah aplikasi baru, pada form tambahkan sebuah listbox

2. Isi property Items dari listbox dengan kata “kotak” dan “bola”. Buat beberapa baris.

3. Ubah property style dari listbox menjadi lbOwnerDrawFixed. Hal ini menyatakan Anda

akan menggambar sel sendiri dan sebuah event terjadi pada saat akan menggambar

sebuah sel.

4. Klik disebelah kanan event OnDrawItem, dan isikan nama event handlernya adalah

ListBox1DrawItem. Tambahkan listing program sebagai berikut:

Page 15: Modul Praktikum Delphi II _Lanjut

IV. Mengenal Exception

Komputer tidak pernah salah, dalam arti ia akan mengerjakan segala sesuatu yang

diperintahkan padanya. Pemrogram atau pemakai sering sekali secara tidak sengaja memberikan

perintah yang salah. Terjadilah exception pada saat runtime bukan pada saat kompilasi.

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin with listbox1.Canvas do begin if listbox1.Items[index]='bola' then ellipse(Rect.Left, rect.Top, rect.Left+(rect.Bottom-rect.Top), rect.Bottom); if listbox1.Items[index]='kotak' then Rectangle(rect.Left, rect.Top, rect.Left+(rect.Bottom-rect.Top), rect.Bottom); textout(rect.Left+(rect.Bottom-rect.Top)+10, rect.Top, listbox1.Items[index]); end; end; end.

Page 16: Modul Praktikum Delphi II _Lanjut

BAB III.

Dynamic Link Library (DLL)

1. Mengenal DLL

DLL (Dynamic Link Library) adalah satu jenis file executable yang dipakai untuk

menyimpan procedure dan function didalam file yang terpisah dari file executable Anda.

Biasanya kita harus membuat program, function, procedure, dan dilink ke dalam satu executable

file, cara ini dinamakan link yang statis. Dengan DLL, kita menggunakan link secara rutin dan

dinamakan link yang dinamik, karena program dilink pada saat runtime. Rutin-rutin yang bersifat

umum dapat dipakai oleh beberapa aplikasi pada saat yang bersamaan dan hanya diperlukan satu

copy di memori atau disk.

2. Membuat DLL

Sebelum membuat function-function di dalam DLL, Anda harus membuat beberapa setup.

Cara membuat DLL:

a. Dari baris menu Delphi, pilih File | New. Dari kotak dialog New Items, pilih DLL.

b. Buat direktori/folder khusus untuk menyimpan DLL. Simpanlah project dengan nama

DLL1, menggunakan menu File | Save Project As.

c. Tambahkan Klausa Exports diatas blok begin...end.

Anda dapat membuang komentar panjang setelah klausa library. Ada hal yang perlu

diperhatikan, semua variable yang ada didalam DLL bersifat private, karena DLL

Page 17: Modul Praktikum Delphi II _Lanjut

mempunyai data segmen sendiri. Artinya program Anda dan DLL tidak bisa memakai

variable secara bersama-sama.

Kita akan memasukkan program ke dalam DLL, yaitu function untuk encryption.

Aplikasi yang memanggil function tersebut akan mengirimkan null-terminated string dan

proses encryption adalah dengan operasi exclusive OR pada setiap karakternya dengan

nilai 159. Hasilnya akan dikembalikan sebagai null-terminated string.

Hal yang menarik adalah sekali kita proses sebuah string, string tersebut akan di encrypt

(diubah setiap karakaternya untuk menghasilkan kode rahasia). Functionnya:

3. Menggunakan DLL

Mengakses rutin didalam DLL semudah kita mengakses rutin yang dibuat dalam aplikasi.

Untuk lebih jelasnya kita buat project berikut:

library Project2; uses SysUtils, Classes; {$R *.res} function encrypt (eptr:PChar):PChar;export; var x:integer; p:word; estr:string; ch:char; begin {mengubah null terminated string menjadi string pascal} estr:=strpas(eptr); {cari panjangnya} p:=strlen(eptr); {encrypt dengan exclusive or} for x:= 1 to p do begin ch:=estr[x]; ch:=chr(ord(ch) xor 159); estr[x]:=ch; end; {mengembalikan ke null terminated string} strpcopy(eptr,estr); {mengembalikan hasilnya ke pemanggil function} encrypt:=eptr; end; exports encrypt; begin end.

Page 18: Modul Praktikum Delphi II _Lanjut

a. Bukalah project aplikasi yang baru, dan tambahkan object edit dan button didalam form,

seperti tampilan dibawah ini:

b. Kemudian ketik scriptnya secara lengkap:

c. Pada bagian implementation jangan lupa untuk menambahkan listing berikut:

procedure TForm1.Button1Click(Sender: TObject);

var kode:integer;

sumber, tujuan:Pchar;

strku:string;

begin

{alokasi tempat untuk null terminated string}

sumber:=strAlloc(100);

{baca teks dari kotak edit}

strku:=edit1.Text;

{mengubah jadi null terminated string}

strPcopy(sumber,strku);

{kirim null terminated string ke DLL, dan tampilkan}

edit1.Text:=strpas(Encrypt(sumber));

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

application.Terminate;

end;

end.

Page 19: Modul Praktikum Delphi II _Lanjut

Keterangan:

� Far – menyatakan pada compiler bahwa harus memakai model pemanggilan far

untuk mengakses function atau procedure.

� External – procedure tersebut bukan bagian dari program ini. Dengan cara ini

program dikompilasi tanpa mencari rutin yang bersangkutan.

d. Proses yang berjalan didalam aplikasi yang dibuat, yaitu:

• Membaca data dari kotak edit

• Mengubah teks ke null-terminated string

• Mengirim null-terminated string ke function didalam DLL

• Menerima hasil dari function dan mengubah string menjadi string pascal

• Mengubah kotak edit dengan string baru

4. Form dalam DLL

Selanjutnya kita ingin mempunyai DLL yang memakai form didalamnya. Dengan Delphi

Anda dapat melakukannya dengan mudah. Dalam DLL Anda dapat membuat function atau

procedure yang menampilkan atau membaca informasi melalui form, kotak dialog dan lain-

lain, dan semua komponen itu disimpan di DLL. Selanjutnya DLL tersebut dapat dipanggil

dari Delphi, Visual Basic, C/C++ dan lain-lain.

Membuat DLL yang ada form didalamnya sedikit berbeda dengan membuat DLL tanpa

form. tetapi tidak sulit dan ikuti langkah-langkah berikut:

a. Pilih menu File|New, lalu pilih item DLL

b. Tambahkan form dengan menu File|New Form. ke dalam form tersebut tambahkan 2

bitbtn, 1 kotak edit dan satu label.

Form ini akan dipakai untuk memasukkan kunci encrypt. Jika Anda lihat contoh

sebelumnya, proses encrypt dilakukan dengan operator XOR dan operand 159. DLL

yang kita buat ini akan menginput kunci encrypt dari form diatas. Kita memasukkan

sebuah karakter dan program akan mencari kode ASCII-nya.

c. Lengkapi program seperti listing yang diberikan.

• Tambahkan deklarasi dari function diatas bagian implementation.

Page 20: Modul Praktikum Delphi II _Lanjut

• Tambahkan function BacaKunci.

d. Simpan project dengan File|Save Project As dan beri nama BacaKey.DPR dan unitnya

dengan input.pas

e. Pilih Project|View Source.

f. Di BacaKey.DPR, tambahkan klausa Exports dibagian bawah, sebelum begin...end.

5. Mengakses form dalam DLL

Mengakses form yang ada di dalam DLL tidak berbeda dengan memanggil function-

function dalam DLL. Anda hanya perlu memanggil procedure atau function dalam DLL,

mengirim parameter jika ada dan function DLL akan menampilkan formnya. Jika form sudah

tidak diperlukan lagi, form akan keluar dan mengirimkan hasilnya ke program pemanggil.

Kita akan membuat project yang akan memanggil DLL yang telah kita buat dan memakai

form dan function yang tersimpan didalamnya.

a. Buat project baru dan simpan dengan nama TestForm.DPR, sedangkan unitnya beri nama

FormTest.pas. Sebenarnya Anda bisa memberi nama bebas, tetapi untuk hal ini lebih

baik Anda mengikuti nama yang diberikan agar nama-nama yang dipakai di program

tidak membingungkan Anda.

b. Buatlah form dengan 2 button, 1 bitbtn, 3 label, dan 1 edit. Ubah property nya sehingga

tampilan seperti berikut ini.

c. Kemudian lengkapi listing berikut:

d. Compile dan jalankan aplikasi diatas, ikuti langkah-langkah berikut:

� Tekan tombol “pilih kunci encrypt” dan Anda akan masuk ke form yang ada didalam

DLL

� Isikan sebuah karakter ke dalam kotak edit dan pilih OK. Form akan menghilang dan

Anda kembali ke form aplikasi. Kunci Encrypt yang Anda masukkan akan

ditampilkan di label3

� Isikan teks teks ke kotak edit yang ada

� Pilih tombol Encrypt/Decrypt. Lihat hasilnya di kotak edit. Jika Anda menekan

tombol sekali, teks akan di-encrypt-kan. Jika menekan sekali lagi, teks akan kembali

semula.

Page 21: Modul Praktikum Delphi II _Lanjut

� Kotak edit tidak bisa menampilkan semua simbol dalam table ASCII oleh sebab itu

kadang-kadang ada karakter yang tidak ditampilkan, tetapi nilai di memori tetap ada.

� Tombol Close dipakai untuk keluar dari aplikasi.

Page 22: Modul Praktikum Delphi II _Lanjut

BAB IV.

Bekerja dengan Grafik

1. Elemen Grafik pemrogram harus mengerti bagaimana menampilkan image dalam sebuah aplikasi dan bagaimana memanipulasi titik, bentuk, garis dan warna. Delphi memberikan komponen-komponen grafik dan methodnya sehingga anda dapat memakainya dengan mudah.

a. Koordinat

Setiap komponen visual mempunyai property top dan left. Nilai yang tersimpan didalam property ini menyatakan dimana komponen tersebut diletakkan pada form.

b. Canvas

Adalah property yang dimiliki oleh area gambar atau komponen-komponen grafik lainnya. Dengan property ini anda dapat memanipulasi area gambar. Canvas mempunyai property dan method.

c. Pixel dan point

pada dasarnya semua operasi grafik adalah mengubah warna pixel pada area gambar. Di delphi Anda dapat memanipulasi pixel secara individual. Pada awalnya pixel hanya ada on atau off, sehingga hanya dapat berwarna hitam dan putih, tetapi sekarang monitor mempunyai jutaan warna, sehingga tampilan gambar menjadi halus.

d. Pallete dan True Color

pallete pada grafik adalah sekumpulan warna yang dapat dipakai di layar. True color adalah warna yang dihasilkan dari kombinasi merah, hijau dan biru. Komputer dengan warna 24-bit dapat memiliki 16 juta warna. Setiap warna sama dengan sebuah bilangan, misalnya bilangan 0 menyatakan warna hitam dan bilangan terbesarnya (16.843.008) menyatakan warna putih. Warna-warna lain adalah bilangan-bilangan diantara kedua batas tersebut, warna ini dinamakan RGB (Red Green Blue).

Aplikasi berikut memakai 3 scrollbar yang dipakai untuk mengubah banyaknya warna merah, hijau dan biru untuk membentuk warna latar belakang. Sebuah scrollbar lagi digunakan untuk memperlihatkan intensitas. Dengan menggerakan scrollbar terakhir akan mengubah ketiga scrollbar lainnya dengan nilai yang sama.

unit warna; interface

Page 23: Modul Praktikum Delphi II _Lanjut

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ScrollBar1: TScrollBar; ScrollBar2: TScrollBar; ScrollBar3: TScrollBar; Merah: TLabel; Hijau: TLabel; Biru: TLabel; ScrollBar4: TScrollBar; intensitas: TLabel; procedure UpdateAll; procedure ScrollBar2Change(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure ScrollBar3Change(Sender: TObject); procedure ScrollBar4Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.UpdateAll; begin Form1.Color:=RGB(ScrollBar1.Position, ScrollBar2.Position, ScrollBar3.Position); Merah.Caption:='Merah='+IntToStr(ScrollBar1.Position); Hijau.Caption:='Hijau='+IntToStr(ScrollBar2.Position); Biru.Caption:='Biru='+InttoStr(ScrollBar3.Position); Intensitas.Caption:='warna RGB='+InttoStr(form1.Color); end; procedure TForm1.ScrollBar2Change(Sender: TObject); begin UpdateAll; end; procedure TForm1.ScrollBar1Change(Sender: TObject); begin UpdateAll; end; procedure TForm1.ScrollBar3Change(Sender: TObject); begin

Page 24: Modul Praktikum Delphi II _Lanjut

UpdateAll; end; procedure TForm1.ScrollBar4Change(Sender: TObject); begin Scrollbar1.Position:=scrollbar4.Position; Scrollbar2.Position:=scrollbar4.Position; Scrollbar3.Position:=scrollbar4.Position; end; end.

e. Lebih Lanjut dengan pixel

untuk mengakses sebuah pixel pada form, pakailah property canvas dari form dan property pixel dari canvas. Misalnya Canvas.Pixel[10,20] berarti warna dari pixel yang berada 10 pixel kekanan dan 20 pixel ke bawah. Untuk mengubah warna pixel, Anda dapat melakukannya dengan mengubah nilai pixel tersebut. Jika ingin mengetahui warnanya, baca nilai pixel.

Contoh: kita akan memakai pixel untuk menggambar grafik sinus didalam form. Hanya ada satu komponen button pada form. Jika button di klik, grafik akan digambar. Kita akan memakai 70% dari tinggi form untuk menggambar grafik, dan lebar grafik akan dipakai semua. Berikut programnya:

unit graf;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

const pi = 3.14159;

Page 25: Modul Praktikum Delphi II _Lanjut

var x,y : real;

Px, Py : longint;

half:longint;

begin

half:= form1.Height div 2;

for Px := 0 to form1.Width do

begin

x:=Px*(2*pi/form1.Width);

y:=sin(x);

py:=trunc (0.7*y*half)+half;

canvas.Pixels[Px,Py] := 0;

end;

end;

end.

f. Pen

setiap canvas mempunyai sebuah pen (walaupun tidak tampak) yang dipakai untuk menggambar garis atau bentuk. Ada dua cara menggerakan pen tersebut, pertama: pen menyentuh kertas dan membuat tanda. Cara kedua: pen berada diatas kertas dan jika digerakan tidak akan meninggalkan bekas. Pen juga mempunyai atribut, misalnya panjang dan lebar. Pen juga memiliki method untuk menggambar aneka bentuk seperti lingkaran, segiempat, dll.

Jika kita ingin memindahkan pen, tanpa meninggalkan bekas, kita memakai Moveto. Untuk menggambar sebuah garis lurus dari posisi pen ke posisi lainnya, dipakai Lineto yang hanya membutuhkan koordinat tujuan.

Contoh program berikut menggunakan Lineto untuk menggambar bentuk bersarang.

procedure TForm1.Button1Click(Sender: TObject);

const pi = 3.14159;

var x,y : real;

px, py : longint;

half, offset : longint;

begin

half:= form1.Height div 2;

offset:=0;

for offset := -10 to 10 do

begin

px:=0;

Page 26: Modul Praktikum Delphi II _Lanjut

while px < form1.Width do

begin

x:=px*(2*pi/form1.Width);

y:=sin(x);

py:=trunc (0.7*y*half)+half+(offset*10);

if(px=0) then

canvas.MoveTo(px, py);

canvas.LineTo(px, py);

py:=trunc(0.7*y*half)+half+((offset-1)*10);

canvas.LineTo(px, py);

px:= px+15;

end;

end;

end;

end.

g. Atribut Brush

kadang-kadang kita ingin menggambar objek yang terisi bukan hanya garis luarnya saja. Property brush dipakai untuk menentukan corak pengisian objek. Ada 3 property dari brush, yaitu color, style dan bitmap. Ada dua cara pemakaian brush, yaitu property color (style) dan property bitmap.

Dengan property color (style), warna dari pengisian tergantung dari isi property color. Property style mendefinisikan corak pengisian. Anda dapat menggunakan polyline untuk menggambar kerangka objek (tidak terisi), atau dengan menggunakan method polygon untuk menggambar polygon sekaligus memberi arsir.

Kita akan membuat aplikasi yang mendemonstrasikan pemakaian method polygon dengan style yang berbeda-beda sehingga corak arsir setiap bentuk berbeda.

procedure segitiga(Iterasi:integer);

begin

form1.Canvas.Brush.Color:=clRed;

form1.Canvas.Polygon([point(Trunc((Iterasi/9)*form1.Width),50),point(trunc((Iterasi/8)*f

orm1.Width),100),point (trunc(((Iterasi-1)/8)*form1.Width),100),point

(trunc((Iterasi/9)*form1.Width),50)]);

end;

procedure TForm1.Button1Click(Sender: TObject);

Page 27: Modul Praktikum Delphi II _Lanjut

begin

form1.Canvas.Brush.Style:=bsSolid;

segitiga(1);

form1.Canvas.Brush.Style:=bsClear;

segitiga(2);

form1.Canvas.Brush.Style:=bsHorizontal;

segitiga(3);

form1.Canvas.Brush.Style:=bsVertical;

segitiga(4);

form1.Canvas.Brush.Style:=bsFDiagonal;

segitiga(5);

form1.Canvas.Brush.Style:=bsBDiagonal;

segitiga(6);

form1.Canvas.Brush.Style:=bsCross;

segitiga(7);

form1.Canvas.Brush.Style:=bsDiagCross;

segitiga(8);

end;

end.

2. Event OnPaint

Pemograman grafik sebelumnya menggunakan satu layar penuh. Di lingkungan windows, beberapa aplikasi dapat berjalan bersama-sama. Jika salah satu jendela ditimpa jendela lain, sistem operasi membuat sebuah salinan layar itu dalam memori. Tetapi cara ini akan sulit dikerjakan jika banyak aplikasi dijalankan secara bersamaan. Cara lain yaitu, sistem operasi memberitahu aplikasi bahwa ada perubahan dan selanjutnya adalah tugas aplikasi untuk menangani hal tersebut. Pada saat terjadi perubahan, terjadilah event on paint. Delphi hanya menggambar ulang bagian dari canvas yang berubah, dan dinamakan invalidation. Jika ada bagian dari form yang tidak valid, delphi memanggil procedure yang dinyatakan didalam even handler OnPaint untuk menggambar ulang bagian yang berubah. Untuk lebih jelasnya, berikut adalah aplikasi untuk mendemonstrasikannya. Buatlah sebuah aplikasi menggunakan textbox.

3. Komponen PaintBox

Page 28: Modul Praktikum Delphi II _Lanjut

Sebelumnya kita telah membuat beberapa grafik di canvas. Kadang-kadang kiata perlu menggambar diarea tertentu, untuk itu kita memerlukan komponen paintbox. Contoh: Kita membuat suatu aplikasi dengan menambahkan komponen paintbox pada form.

Page 29: Modul Praktikum Delphi II _Lanjut

BAB V.

Aplikasi Delphi: Mengetahui Versi Windows

Pada bab ini kita akan membuat aplikasi menggunakan delphi, yang memiliki fungsi untuk

mengetahui versi windows apa yang kita gunakan dalam komputer. Langkah-langkahnya:

1. Buat aplikasi project aplikasi baru, kemudian desain formnya dengan menambahkan

memo dan button

2. Selanjutnya, ketikkan listing program berikut selengkapnya.

procedure TForm1.Button1Click(Sender: TObject);

var

verinfo:TOsversionInfo;

begin

verinfo.dwOSVersionInfoSize:=sizeof(verinfo);

getversionex(verinfo);

memo1.Lines.Append('Major Version: '+inttostr(verinfo.dwMajorVersion));

memo1.Lines.Append('Minor Version: '+inttostr(verinfo.dwMinorVersion));

memo1.Lines.Append('Build Number: '+inttostr(verinfo.dwBuildNumber));

case verinfo.dwPlatformId of

ver_platform_win32s:

memo1.Lines.Append('PlatformId: '+'win32s on windows 3.1.');

ver_platform_win32_windows:

memo1.Lines.Append('PlatformId: '+'win32 on windows 95.');

ver_platform_win32_nt:

memo1.Lines.Append('PlatformId: '+'win32 on windows NT.');

end;

memo1.Lines.Append('CSD Version: '+verinfo.szCSDVersion);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

button1.Caption:='Lihat Versi Windows Saya';

memo1.Text:='Keterangan Versi Windows Saya';

end;

end.

Page 30: Modul Praktikum Delphi II _Lanjut

3. Simpan dengan nama unit:versi.pas dan nama project: Pro_versi.dpr

4. Kemudian jalankan dan uji aplikasi tersebut dengan meng-klik tombol “lihat versi

windows saya”

Hasil aplikasi diatas menyatakan tentang major version (versi utama), minor version (versi

tambahan), build number (keterangan nomor), platform (jenis windows yang digunakan), dan

CSD version.