Pelatihan Delphi PDF
Pelatihan Delphi PDF
PENGENALAN DELPHI
1. Asal mula Delphi
Borland Delphi dirilis pertama kali pada bulan Februari 1995, dan sekarang sudah
mencapai perkembangannya sampai dengan Delphi 6.
Delphi merupakan bahasa pemrograman yang mudah, karena Delphi adalah
bahasa perograman tingkat tinggi (high level) sehingga sangat memudahkan user
untuk bermain-main di tingkat ini, apa lagi bagi mereka yang malas berurusan
dengan level-level yang rendah.
Pemrograman Delphi sangatlah mudah, kita tinggal click and drag, dan jadilah
program aplikasi yang kita inginkan.
2. Penggunaan pascal pada Delphi
Secara kasar kita bisa menyebut Delphi sebagai kakaknya pascal, sehingga
macam-macam syntax yang digunakan oleh pascal dapat berguna, dan bisa
digunakan lewat Delphi .
Untuk mengakses pascal kita harus mengubah compiler yang digunakan Delphi ,
cara mengubahnya:
Project -> options -> linker -> check Generate console Application
Project -> view source ->
Lakukan langkah berikut :
program Project1;
// uses
// Forms,
/ /Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
writeln('Delphi itu menyenangkan'); // start menulis program
readln;
//Application.Initialize;
//Application.CreateForm(TForm1, Form1);
// Application.Run;
end.
Atau kita dapat langsung pilih File -> New -> Console Application. Lalu tuliskan
kode anda (program pascal pada tempat yang telah disediakan). Perhatikan
contoh berikut :
program Project2;
{$APPTYPE CONSOLE}
uses SysUtils;
begin
Kita bisa langsung menuliskan program pascal kita setelah begin, Untuk
mengecak syntax yang digunakan : project -> Syntax check (atau alt,p-s)
Setelah syntax-nya benar klik run (F9). Anda akan menemukan program pascal
berjalan di dalam jendela dos.
3. Form dan unit
Berbeda dengan pascal, pada Delphi kita akan mengenal OOP (Object oriented
programming), jadi bila pada pascal kita akan melihat tampilan yang menjemukan,
pada Delphi kita bisa mengatur tampilan kita semenarik mungkin pada form yang
kita gunakan. Caranya cukup mudah, kita hanya menaruh komponen-komponen
yang kita inginkan pada form tersebut, dan memfungsikan masing-masing
komponen sesuai dengan yang kita inginkan.
Unit
Setiap perubahan pada form akan berakibat perubahan pada unit yang kita miliki,
Untuk pindah dari form ke unit, anda bisa tekan F12.
Berikut ini adalah bentuk unit yang diberikan Delphi saat pertama kita membuka
sebuah form.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
end.
4. Komponen
gambar 1.1
Stringgrid
Stringgrid berguna untuk menaruh data string kedalam bentuk kolom tabel,
seperti pada Excel. Kita harus mengubah type data ke dalam bentuk string
bila data yang ingin kita tampilkan data bukan string.
g. PopupMenu
Popup Menu berfungsi sebagai perintah yagn aktif bila kita meng-klik kanan
mouse, Untuk mengaktifkannya kita harus mengaktifkan popup menu pada
komponen yang dinginkan, caranya : ubah pada object inspector.
h. MainMenu
Contoh main menu adalah Option pada tiap aplikasi porgram, dengan
komponen ini, kita bisa menaruh fungsi-fungsi program seperti pada aplikasi
umumnya.
i.
ComboBox
Combo Box berfungsi sebagai petunjuk untuk pemilihan berbagai masukan.
Lihat contoh.
j.
CheckBox
Bila komponen ini di check maka ada aplikasi yang bisa disetting untuk
bekerja dibawahnya.
k. RadioButton
Prinsip kerjanya hampir sama dengan check box, cuma tampilannya saja yang
berbeda.
l.
Media Player
Biasa digunakan untuk mennyalakan atau memainkan musik (format wav atau
midi) dan menjalankan film (format avi).
m. Timer
Timer berfungsi sebagai jam yang telah disediakan Delphi. Dengan timer kita
juga dapat mendecode time, sehingga dapat terjadi akusisi data.
n. Clientsocket
Digunakan di client pada saat koneksi ke server.
o. Serversocket
Digunakan di server, yang akan menyediakan layanan koneksi ke client.
Masih banyak komponen lain. Untuk mempelajari lebih lanjut dapat dibaca pada
help menu.
Object Inspector
Object inspector (gambar 1.2a) berguna sebagai options dari masing-masing
komponen. Dengan object inspector ini kita dapat memanipulasi komponen yang
kita gunakan (walaupun sebenarnya kita juga dapat menggunakannya dengan
menuliskannya lewat text mode).
gambar 1.2a
gambar 1.2b
Width
Merupakan lebar komoponen.
Popup menu
Fungsi ini berguna saat kita mengkilik kanan dan akan tampil perintah. Pada
penggunaanya kita mengambuil komponen popup menu dan menset popup
menu pada form.
Auto size
Fungsi ini berisi mengenai apakah form yang kita mil;iki bisa diperbesar atau
tidak.
Text
Biasanya tedapat pada komponen edit dan mask edit. Kegunaanya untuk
menaruh kata-kata pada komonen ini.
Color
Warna pada komponen. Kita dapat mengubah warna-warna tiap komponen
(hanya yang disediakan) dengan point ini.
Visible
Berfungsi untuk menampilkan dan tidak menampilkan komponen yang kita
inginkan.
Hint
Bila kursor kita diatas komponen, maka akan muncul suatu keterangan.
Keterangan ini yang disebut dengan hint. Jangan lupa untuk mengganti
properti show hint menjadi tru untuk mengaktifkannya.
Borderstyle
Menunjukan berbagai macam bingkai yang diinginkan.
Masih banyak properti lainnya, bisa dipelajari lebih lanjut.
Dengan Object inspector kita juga dapat menentukan event apa yang akan kita
buat dengan komponen tersebut. Gambar 1.2b menunjukan object inspector
untuk event pada form.
Beberapa contoh event.
Onclick
Bila kita mengklik komponen tersebut maka prosedur yang kita inginkan akan
dijalankan oleh program tersebut.
Onkeypress
Bila kita menekan suatu key (tombol) maka komponen tersebut akan aktif.
Perlu diperhatikan pada event ini, delphi mengenal character yang kita tekan
melalui kode yang masuk kedalam variabel key. Lihat contoh ini.
Bila key =#13 (enter) maka perintah yang ikuti akan dijalankan.
Contoh program :
Buatlah sebuah program dengan sebuah click button, yang bila diklik namannya
berubah dari start ke stop, dan bila diklik lagi namannya berubah dari stop ke
start.
Solusi :
Ambil komponen button1, dan klik 2 kali pada button tersebut. Isikan pada unit 1
procedure berikut:
procedure TForm1.Button1Click(Sender: TObject);
begin
if Button1.Caption ='Start' then
button1.Caption:='Stop' // check caption pada button1 apabila = Start maka ubah
// caption ke Stop
else button1.Caption:='Start';
end ;
gambar 3a
gambar 3b
Merupakan project file. Sebagai project file, file ini berguna untuk
meggabungkan satu atau lebih file-file source (*.pas).
*.dcu (Delphi compiled Unit)
Pada saat kita membuat sebuah aplikasi, Delphi akan membuat file ini. File
ini berfungsi untuk me-link-kan kita dengan file lain (*.dcu) sehingga kita bisa
membuat beberapa form yang terhubung satu dengan yang lainnya.
*.dfm (Delpi Form)
File ini berisi informasi mengenai data-data form.
*.res (Windows Resources)
*.dof (Delphi project options)
Kita dapat mengubah icon aplikasi tersebut, dan datanya disimpan pada file
ini.
*.exe
Merupakan appllication file setelah kita compile program kita.
BAB II
Pengolahan Data, Chart dan Oleobject
1. Type data pada Delphi
Pada umumnya Delphi menggunakan type data yang sama dengan pascal.
Namun type data pada Delphi lebih lengkap dibanding pascal. Tipe data yang
biasa digunakan pada Delphi :
String
Biasa digunakan untuk masukan data string ( String merupakan gabungan
beberapa character ).
Integer
Merupakan bilangan asli ( 1, 2, 3, 4, ...).
Real
Bilangan bulat (berupa pecahan dan integer).
Byte
Besar dari type ini hanya 8 bit.
Word
Besar bilangan ini 16 bit.
Date and time
Type waktu dan tanggal yang disediakan Delphi
2.
begin
label1.Caption:=timetostr(time);
end;
gambar 2.1
Penjelasan :
Inti dari program ini adalah mengubah time ke dalam bentuk string (dengan
fungsi timetostr). Program ini dapat menunjukan jam komputer anda, komponen
timer yang akan terus berubah mengikuti waktu pada jam komputer. Perubahan
ini langsung ditulis pada label1.caption. Sehingga caption pada label1 akan
berubah tiap detiknya.
(anda bisa membuat jam dengan alarm, untuk sourcenya dapat dilihat pada
http://planck.fi.itb.ac.id/~ris or http://ww.geocities.com/bodypack).
3. Memasukan data ke grafik
Pada Pascal biasanya cukup sulit untuk membuat grafik dari data-data yang
telah kita peroleh. Kita dapat memecahkan permasalahan ini dengan mudah bila
menggunakan Delphi.
Perhatikan contoh berikut ;
1. Masukan komponen :
Edit1
Edit2
Bitbtn1 (Ubah captionnya menjadi Send)
Bitbtn2 (ubah Captionnya menjadi Clear)
Chart1
2. Tulis procedure berikut :
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
with chart1 do
with series1 do
addxy(strtofloat(edit1.text),strtofloat(edit2.text),'',clblue);
edit1.Clear;
edit2.Clear
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
series1.Clear;
end;
10
gambar 2.2
11
gambar 2.3
Bentuk 3 Dimensi
Mengubah
batas X dan Y
gambar 2.4
4.
12
Berikut ini adalah contoh memasukan kata yang kita inginkan ke dalam microsoft
word.
Uses comobj;
procedure TForm1.BitBtn3Click(Sender: TObject);
var
keword:variant;
begin
keword:=createoleobject('word.basic');
keword.filenew; {membuka file baru}
keword.appshow; (Perintah menampilkan aplikasi word}
keword.insert('Delphi itu menyenangkan');
end;
Keterangan program
Penggunaan oleobject harus diawali dengan uses comobj
Kita memasukan variant keword:= createoleobject(word.basic), kita dapat
menggantinya dengan (excel.application) bla kita ingin koneksi ke Microsoft
Excel.
Keword.filenew -> membuka file baru pada Microsoft Word.
Keword.appshow -> menampilkan program Microsoft Word.
Keword.insert -> mengisi data pada Microsoft Word.
Kita dapat mengabung program memasukan data ke graph dan hasilnya dari
data tersebut ditampilkan pada Microsoft Excel.
Perhatikan program berikut :
Start
Flowchart sederhana
Menampilkan data ke grafik dan
mengirim data ke M Excel
I=1
J=1
Masukan data
I=1+1
J=1+1
Tampil grafik
Tampil Excel
13
unit jam_grap;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, TeEngine, Series, Buttons, TeeProcs, Chart;
type
TForm1 = class(TForm)
Label1: TLabel;
Timer1: TTimer;
Chart1: TChart;
Panel1: TPanel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
BitBtn1: TBitBtn;
Series1: TLineSeries;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
procedure Timer1Timer(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
fa,g:variant;
i,j:integer;
datax,datay:array[0..20]of real;
implementation
{$R *.DFM}
uses comobj;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.Caption:=timetostr(time);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
datax[i]:=strtofloat(edit1.text);
datay[i]:=strtofloat(edit2.text);
with chart1 do
with series1 do
addxy(strtofloat(edit1.text),strtofloat(edit2.text),'',clblue);
edit1.Clear;
edit2.Clear;
i:=i+1;
14
j:=j+1;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
series1.Clear;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
fa:=createoleobject('Excel.application');
fa.visible:=true;
fa.workbooks.add;
fa.workbooks[1].worksheets[1].name:='kirim';
g:=fa.workbooks[1].worksheets['kirim'];
g.cells[1,1]:='Nomor';
g.cells[1,2]:='Data X';
g.cells[1,3]:='Data Y';
for i:=2 to j+1 do
begin
g.cells[i,1]:= formatfloat('',i-1);
end;
for i:=2 to j+1 do
begin
g.cells[i,2]:= formatfloat('',datax[i]);
end;
for i:=2 to j+1 do
begin
g.cells[i,3]:= formatfloat('#0.##',datay[i]);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=2;
j:=2;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if not varisempty(fa) then
begin
fa.displayalerts:=true;
fa.quit;
end;
end;
end.
Penjelasan :
Pertama kita masukan data ke edit1 dan edit2
Kedua Data tersebut disimpan pada array ke i dan j
Tampilkan data ke dalam grafik.
Tambah 1, pada
15
Tampilan hasilnya :
Fungsi oleobject ke
Excel atau Word)
gambar 2.5
Tugas : Buatlah sebuah program yang bisa menampilkan 3 buah garis pada
grafik, dan data itu dikirim ke excel.
16
BAB III
AKSES PORT PARALEL
(Menyalakan 8 buah led)
1. Pengantar
Komunikasi
paralel
adalah
komunikasi
yang
mengirimkan
data
secara
bersamaan.
Bit data 1
Bit data 3
Bit data 5
Bit data 7
Bit data 2
Bit data4
Bit data 6
Bit data 8
3. Data db 25
Pada port paralel ada 3 jalur data, yaitu :
Jalur kontrol
17
Register Status
379
Register Data
378
Register Address
37B
Nomor Bit
Jalur
Sinyal
Kontrol
Strobe
Data
Data 1
Data
Data 2
Data
Data 3
Data
Data 4
Data
Data 5
Data
Data 6
Data
Data 7
Data
Data 8
10
Status
Ack
11
Status
Busy
12
Status
P Error
13
Status
Select
14
Kontrol
Auto FD
15
Status
Fault
16
Kontrol
Init
17
Kontrol
Select In
18 - 25
Ground
4. Menyalakan Led
Seperti telah dijelaskan di atas, bahwa ketika kita memberi masukan high, maka
pada pin paralel akan dikeluarkan tegangan 5 volt. Untuk simulai ini kita dapat
18
menggunakan led sebagai penanda. Bila port itu aktif (high) maka led tersebuat
kan menyala.
Untuk programnya :
asm
mov dx,$378 {port yang digunakan}
mov al,$1 {memberi masukan 1 }
out dx,al
end;
asm
mov dx,$378
mov al,$0 {memberi masukan 0}
out dx,al
end;
Keterangan:
Yang penting untuk diperhatikan adalah memberi masukan pada alamat $378, (mov
al,$1), sesuai dengan konversi angka desimal dan biner, maka $1 menunjukan
angka 1 D
Ingat , untuk 8 bit
1 = 0000 0001 (lampu 1 nyala)
2 = 0000 0010 (lampu 2 nyala)
8 = 0000 0100 (lampu 3 nyala)
dengan pengetahuan ini kita sudah dapat membuat sebuah relay yan gakan menyala
bila kita memberikan masukan high. Adapun cara relay bekerja adalah bila kita
memberi masukan high, maka saklar pada relay tersebut akan aktif sehingga bisa
mengalirkan arus dan tegangan sesuai dengan klasifikasi relay tersebut.
Gambar rangkaian:
19
Buatlah
buah
led
yang
nyala
kelap-kelip,
gunakan
fasilitas
sleep(millisecond).
20
BAB IV
Akses Port Serial
(Interface dari sensor )
1. Pengantar
Bila pada bab sebelumnya kita menggunakan akses paralel port, pada bab ini
kita akan berkenalan dengan akses port serial.
Kelemahan pada komunikasi paralel adalah banyaknya kabel yang harus
terhubungkan. Hal ini menjadi tidak efisien bila kita menggabungkan alat ke
komputer (interfacing) untuk jarak yang jauh.
diperkenalkan komunikasi serial. Pada komunikasi serial, data yang dikirim per
bit (data itu antri), walaupun mempunyai kelemahan pengiriman data yang lebih
lambat dibanding dengan komunikasi paralel, komunikasi serial bisa digunakan
untuk jarak yang jauh. Contohnya modem dengan menggunakan kabel telepon.
Pada bab ini akan dijelaskan secara detail, bila kita melakukan interfacing
dengan komunikasi serial.
2. Analog to Digital Converter (ADC)
ADC adalah suatu komponen yang berfungsi sebagai akusisi data yaitu
mengambil isyarat analog untuk diubah menjadi isyarat digital.
ADC yang
tersedia dipasaran saat ini sudah banyak sfesifikasinya. khusus pelatihan ini
dipakai ADC 0804 8 bit dengan menggunakan metode konversi pendekatan
berturutan atau Successive Approximation Register (SAR).
Waktu konversi ADC 0804 sekitar 100 mikro detik untuk clock 640 KHz,
tegangan input 0-5 volt (1 channel) dan tegangan acuan 2,5 volt dengan
ketelitian +/- 1 LSB . Sistem pewaktuan untuk ADC ini diatur oleh komponenkomponen R dan C pada pin-pin CLK-R dan CLK-IN dan tidak membutuhkan
clock generator eksternal kerena ADC sudah dilengkapi oleh clock generator
internal.
21
dapun cara kerja ADC 0804 secara umum, saat keadaan logika WR atau
RD dalam kondisi low, ADC ini dalam keadaan reset.
keadaan logika tersebut dalam kondisi high maka ADC mulai bekerja. SAR
mengeluarkan 8 bit yang kemudian diubah menjadi tegangan analog oleh DAC.
Tegangan ini dibandingkan dengan tegangan masukan analog, jika keluaran
DAC lebih kecil dari tegangan masukan analog (Vout DAC<Vin , bit set 1) maka
SAR terus bekerja sampai pada kondisi dimana tegangan keluaran DAC lebih
besar dari tegangan masukan analog (Vout DAC>Vin , bit set 0) . Pada saat itu
keluaran komparator akan menghentikan SAR. Data pada keluaran SAR adalah
data digital hasil konversi tegangan analog. Setelah selesai konversi, ADC akan
memberi tanda dengan mengaktifkan INTR. Keluaran SAR disimpan sementara
oleh latch sehingga dapat langsung berhubungan dengan bus mikrokontroller.
Data ini dapat dibaca dengan jalan mengaktifkan CS dan RD low.
Dalam
Sensor yang kita gunakan adalah sensor pengubah tegangan. Bila suhu
berubah,
yang kita manfaatkan sebagai masukan pada adc, yang kemudian akan
ditampilkan di komputer.
3. Mikrokontroler
Mikrokontroler berguna untuk megubah keluaran adc yang berbentuk paralel ke
dalam bentuk serial. Sebenarnya banyak cara untuk mengubah data paralel ini
ke dalam serial, namun sengaja digunakan mikrokontroler agar peserta dapat
mengenal mikrokontroler sebagai pengolah data. Mikrokontroler digunakan
sebagai otak kecil yang mudah untuk diprogram. Dengan mikrokontroler kita
22
Di dalam sebuah IC 89C51 selain CPU (Central Prosessing Unit) juga terintegrasi
di dalamnya
1. RAM (Random Acces Memory) sebesar 128 bytes. RAM merupakan tempat
menyimpan sementara, yang akan terhapus apabila sistem mikrokontroller
dimatikan.
2. ROM (Read Only Memory) sebesar 4Kbytes. ROM ini berisikan programprogram yang akan dijalankan oleh mikrokontroller. ROM hanya bisa dibaca
tidak bisa ditulis pada saat eksekusi program. Untuk menghapus program di
ROM ada berbagai macam cara yang disesuaikan dengan jenis ROM
tersebut.
a. Untuk EPROM (Erasable Programable ROM) dapat dihapus dengan
menggunakan sinar ultra violet selama kurang lebih 15 menit. Setelah
itu EPROM dapat ditulis program menggunakan EPROM Programer.
b. Untuk EEPROM (Electric Erasable Programable ROM) dapat dihapus
dengan memberikan tegangan 5 volt selama beberapa saat pada pin
tertentu,
setelah
itu
dapat
ditulis
program
kembali
dengan
23
a. Delay
atau
jarak
waktu
sebagai
contoh
penggunaannya
Hal ini
memerlukan delay.
b. Counter atau pencacah.
24
mempunyai pin yang berfungsi secara khusus untuk mengontrol piranti lain
untuk melakukan sebuah eksekusi atau mengakses data.
Jalur kontrol
tersebut beranggotakan :
a. PSEN (Program Store Enable) aktif saat 89C51 sedang mengakses
program memori dari ROM luar.
b. ALE (Address Latch Enable) aktif saat 89C51 sedang mengakses
alamat.
c. EA (External Access) jika aktif maka 89C51 dapat mengakses memori
luar.
d. RST (Reset) jika diaktifkan maka semua pin dan program akan
terakses dari awal lagi.
8. Osilator On-Chip 89C51 sangat penting dalam menentukan tekanan siklus
mesin dari 89C51. Osilator ini dibangkitkan oleh kristal ataupun dari TTL
(Transitor Transistor Logic) luar. Semakin besar frekuensi yang dipakai oleh
osilator on-chip ini semakin cepat siklus mesin dari 89C51 berarti semakin
cepat pula kemampuan 89C51 mengeksekusi suatu program.
Semua mikrokontroller dalam keluarga MCS51 memiliki pembagian ruangan
alamat untuk program dan data. Pemisahan memori program dan memori data
memperbolehkan memori data untuk diakses oleh alamat 8 bit.
Sekalipun
demikian, alamat data memori 16 bit dapat dihasilkan melalui register DPTR (Data
Pointer Register). DPTR adalah suatu register untuk mengakses suatu alamat
eksternal (di luar chip 89C51) dengan lebar 16 bit.
25
26
h. Register data timer yaitu Timer Low ke 0 (TL0) alamat pada byte 8AH.
Timer High ke 0 (TH0) alamat pada byte 8CH. Timer Low ke 1 (TL1)
alamat pada byte 8BH. Timer High ke 1 (TH1) alamat pada byte 8DH.
i.
j.
4. DB 9 dan Rs 232
Bagian yang penting dari komunikasi serial adalah DB 9 dan RS 232. DB 9
adalah konektor yang kita gunakana untuk menghubungkan hardware dengan
komputer.
1 2 3 4 5
6 7 8 9
27
Pins
Common
Description
name
Signal Direction
on DCE
CD
RXD
Received data
out
TXD
Transmitted data
In
DTR
In
GND
Signal Ground
DSR
Out
RTS
Request to send
In
CTS
Clear to Send
Out
Ring Indicator
Out
Kegunaan RS 232 adalah sebagai driver, yang akan mengkonversi tegangan dari
hardware agar sesuai dengan tegangan pada komputer sehingga data dapat
dibaca.
5. Bahasa Assembly untuk akses port serial
Untuk mengakses port serial digunakan bahasa assembly. Untuk mengakses
bahasa tersebut dari Delphi sangatlah mudah yaitu :
Asm
{perintah di dalamnya} // tak perlu tanda ;
end;
Berikut ini adalah contoh penggunaan bahasa assembly untuk mengakses port
serial.
Const
tx_buffer = $3F8;
rx_buffer = $3F8;
int_enb_reg= $3F9;
mod_cont_reg= $3FC;
line_stat_reg= $3FD;
procedure inisialisasi;
begin
asm
mov ah,0 { isi register ah ( inisialisasi aktif )}
mov dx,0 { isi reg dx ( reg.alamat ) = com1 }
mov al,$83 { isi reg al ( reg.data ) }
int $14 { alamat interupt}
mov dx,int_enb_reg {$3f9}
mov al,0
out dx,al
end;
asm
mov dx,mod_cont_reg {$3fc}
28
mov al,$0
out dx,al
end;
end;
procedure terima(var data_masuk:byte);
var cek,d:byte;
begin
repeat
asm
mov dx,line_stat_reg{$3fd}
in al,dx
mov cek,al
end;
cek:=cek and $1;
until cek=$1;
asm
mov dx,rx_buffer {3f8}
in al,dx
mov d,al
end;
data_masuk:=d;
end;
Dengan procedure diatas anda sudah dapat melakukan interfacing dari hardware
ke PC. Data akan masuk ke dalam data_masuk. Dari variabel inilah kita data
meneruskan pengolahan data.
Adapun untuk pengolahan data kita dapat melakukan akusisi data lagi. Dengan
memasukan procedure memasukan data ke grafik didalam procedure ontimer
(lihat bab 2 dan bab 3), maka kita dapat menampilkan data yang kita ambil tiap
detiknya.
Tugas
Buatlah program interfacing dari sensor suhu secara lengkap. Data yang
dihasilkan dapat ditampilkan langsung ke dalam grafik, dan tabel dengan
menggunakan fasilitas stringgrid.
29
BAB V
Pemrograman INTERNET Menggunakan Delphi
1. Pengertian dasar
Jaringan internet terjadi ketika 2 atau lebih komputer terkoneksi bersama.
Dengan jaringan internet kita dapat melakukan banyak hal, seperti ftp (file
transfer portocol), telnet (operasi komputer lain dari tempat kita berada), dan
banyak lagi. Komunikasi inidapat terjadi karena pada internet digunakan suatu
protokol (bahasa pengantar), untuk protokol standar biasanya diguakan TCP/IP
Bahasa pemrograman Delphi juga suport untuk pemrograman Internet. Pada
bahasa delphi untuk Internet protokol yang digunakan adalah TCP/IP. Dengan
protokol inilah yang memungkinkan program kita terkoneksi antar komputer.
Perhatikan gambar 5.1 berikut
Komputer 1
Internet
Komputer 2
Komputer 3
Banyak contoh program yang dapat kita buat dari bahasa Delphi dengan
memanfaatkian internet. Contohnya :
Program chatting
Membuat Browser seperti Internet Explorer 5
Membuat Program permainan antar komputer
Intelegent House
Dan lainnya
Dengan membuat program sendiri, memungkinkan kita untuk lebih leluasa
memanupulasi berbagai macam fasilitas dari program tersebut. Ambilah contoh
bila kita ingin embuat intelegent house (rumah pintar). Dengan memanfaatkan
komukasi serial dan paralel. Kita bisa mengirim data dari komputer 1 ke komputer
2, dan kita juga bisa mengontrol komputer lainya. Perhatikan gambar 5.2
30
Komputer 1
Pengambilan
data
Internet
Kontrol
sensor
Komputer 2
Penampilan data dan
pengontrolan data
Sensor suhu
31
Socket: TCustomWinSocket);
procedure ClientSocketDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocketError(Sender: TObject; Number: Smallint;
var Description: string; Scode: Integer; const Source,
HelpFile: string; HelpContext: Integer; var CancelDisplay: Wordbool);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
server:string;
implementation
{$R *.DFM}
procedure TForm1.Listen1Click(Sender: TObject);
begin
listen1.checked :=not listen1.checked;
serversocket.Active:=true;
statusbar.Panels[0].text:='Menunggu sambungan dari client ....'
end;
procedure TForm1.keluarClick(Sender: TObject);
begin
serversocket.Close;
close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
listen1click(nil);
memo1.Clear;
edit1.Clear;
edit2.Clear;
end;
procedure TForm1.Putus1Click(Sender: TObject);
begin
listen1click(nil);
end;
procedure TForm1.ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
statusbar.Panels[0].Text:='nyambung ke:'+ socket.RemoteHost;
end;
procedure TForm1.ServerSocketClientRead(Sender: TObject;Socket: TCustomWinSocket);
begin
edit2.Text:=socket.ReceiveText;
32
end;
procedure TForm1.ServerSocketAccept(Sender: TObject;
Socket: TCustomWinSocket);
begin
statusbar.Panels[0].Text:='nyambung ke'+socket.RemoteAddress;
end;
procedure TForm1.ServerSocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.Lines.Clear;
end;
procedure TForm1.ClientSocketDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
listen1click(nil);
end;
procedure TForm1.ServerSocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
serversocket.active:=false;
listen1.Checked:= not listen1.Checked;
listen1click(nil)
end;
procedure TForm1.ServerSocketError(Sender: TObject; Number: Smallint;
var Description: string; Scode: Integer; const Source, HelpFile: string;
HelpContext: Integer; var CancelDisplay: Wordbool);
begin
ShowMessage(Description);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
serversocket.Socket.Connections[0].SendText(edit1.Text);
end;
end.
Untuk client
unit client2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ScktComp, Menus, ComCtrls, ExtCtrls, Grids, TeEngine, Series,
TeeProcs;
type
TForm1 = class(TForm)
ClientSocket: TClientSocket;
MainMenu1: TMainMenu;
File1: TMenuItem;
nyambung1: TMenuItem;
Putus1: TMenuItem;
33
keluar: TMenuItem;
StatusBar: TStatusBar;
Label1: TLabel;
Panel2: TPanel;
Memo1: TMemo;
Panel1: TPanel;
Panel3: TPanel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure nyambung1Click(Sender: TObject);
procedure keluarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Putus1Click(Sender: TObject);
procedure ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
procedure ServerSocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocketError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ServerSocketError(Sender: TObject; Number: Smallint;
var Description: string; Scode: Integer; const Source,
HelpFile: string; HelpContext: Integer; var CancelDisplay: Wordbool);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
server,col:string;
k:integer;
implementation
{$R *.DFM}
procedure TForm1.nyambung1Click(Sender: TObject);
begin
if clientsocket.Active then clientsocket.Active:=false;
if inputquery('Computer nyambung ke','alamatnya :',server)
then if length(server)>0 then with clientsocket do
begin
host:= server;
active:=true;
statusbar.Panels[0].Text:='Menunggu Jawaban dari ; '+ server;
end;
end;
procedure TForm1.keluarClick(Sender: TObject);
begin
clientsocket.close;
close;
end;
34
Penjelasan program
1. Kita harus menyamakan port yang akan digunakan (cth 1028), yang terletak pada
object inspector masing-masing komponen internet
35
2. Onclient read dan onserver read, menunjukan ketika server dan client menerima
masukan data (text, file)
3. Listening, menunjukan bahwa server dalam keadaan siap menerima client.
4. Onaccept, menunjukan ketika server berhasil menerima masukan dari client.
5. Host menunjukan nama server yang dituju.
Bagan yang membantu
Client connet ke server
Server listening
Cilent disconnet
Dengan konsep ini kita bisa mengirimkan berbagai data, baik dalam bentuk text, maupun file.
Tampilan program diatas
Data yang
dikirim server
Tugas: Buatlah koneksi 2 buah komputer, yang bisamengirim waktu dari salah satu komputer
ke komputer lainya.
36
Daftar Pustaka
37