Upload
ichal321
View
531
Download
10
Embed Size (px)
Citation preview
MODUL PRAKTEK LAB KOMPUTER
DISUSUN OLEH:
TIM PENYUSUN BORLAND DELPHI ADVANCED
AKADEMI MANAJEMEN INFORMATIKA DAN KOMPUTER
JAKARTA
2010
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.
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
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;
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;
♥ 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.
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.
• 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.
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:
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.
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.
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)
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.
• 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:
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.
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
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.
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.
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.
• 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.
� 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.
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
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
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;
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;
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);
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
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.
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.
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.