Bab I 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
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
1
writeln('Delphi itu menyenangkan'); readln; // Insert user code here end.
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
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
2
gambar 1.1
Dalam membuat program, Delphi telah menyediakan banyak kemudahan, yaitu dengan disediakannya komponen-komponen. Komponen ini merupakan sebuah procedure/program yang sudah di kompile dan langsung dapat digunakan, sesuai dengan fungsinya masing-masing. Untuk menggunakan komponen ini kita dapat meng-klik komponen yang diinginkan, kemudian kita klik di form, maka komponen tersebut akan muncul di form. Kegunaan beberapa komponen : a. Button/ Bitbtn Biasa digunakan sebagai tombol kendali. Perbedaan antara bitbtn dengan btn : pada bitbtn kita dapat menyisipkan warna pada tombol dan icon tertentu, lain halnya bila kita menggunakan btn. b. Panel Panel berfungsi untuk mengelompokan komponen-komponen didalamnya. c. Label Kita dapat menamakan atau memberi keterangan pada program. d. Edit Edit berfungsi sebagai masukan data (input) dalam bentuk string, dari bentuk string ini kita dapat mengolahnya menjadi bentuk integer atau bentuk lainnya. Yang kemudian dapat digunakan untuk operasi selanjutnya. e. Chart Data-data yang telah kita analisa, dapat kita tampilkan ke dalam grafik, sehinga memudahkan kita untuk menganalisanya. f.
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
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
3
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).
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
4
gambar 1.2a
gambar 1.2b
Beberapa contoh pada Propertis : Font Menunjukan font yang akan kita gunakan. Dalam menu ini juga terdapat macam-macam font berikut style dan ukurannya. Caption Merupakan judul dari form itu. Perhatikan perbedaannya dengan name. Name Merupakan nama dari komponen itu. Biasanya bila kita mengambil sebuah komponen, Delphi otomatis menyediakan nama sesuai dengan nama komponen tersebut. Namun nama ini dapat dengan mudah kita ubah agar mudah mengingatnya.
Berbeda dengan caption pada caption kita tidak
mengubah nama componen, melainkan hanya mengubah juduk yang tertera pada komponen tersebut. Sehingga bila kita ingin menggunakan komponen tersebut, yang kita gunakan adalah namanya, dan bukan nama pada caption. Enabled Menunjukan bahwa komponen ini bisa digunakan atau tidak. Perintah ini cukup penting bila kita tidak ingin user menekan tombol yang tidak diinginkan. Height Merupakan tinggi dari komponen yang bakalan kita taruh pada form, atau komonen lainnya. Pelatihan Delphi untuk pemula, Lab Elka , November 2001
5
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.
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
6
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key =#13 then .....(isikan perintah) end;
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 ;
Ganti caption button1 pada Object Inspector = Start; Keterangan : Program ini bekerja ketika button1 di klik maka caption pada button1 akan berubah menjadi stop, bila stop di klik, makan button1.caption akan berubah menjadi start. Gambar hasil dari program tersebut.
gambar 3a
gambar 3b
5. File-file pada Delphi . *.pas Merupakan source file, disini akan disimpan kode pascal yang kita tulis. *.dpr
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
7
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.
Tugas : buatlah program yang bila bitbutton1.caption di klik, maka bitbutton1.color berubah, dan form2 terbuka. (gunakan form2.show)
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
8
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.
Konversi type data Dalam pengolahan data biasanya kita memerlukan suatu konversi type data, banyak sekali konversi data yang bisa dilakukan pada Delphi. Contoh konversi type data: Strtoint Mengubah type data string ke integer. Inttostr Mengubah type data integer ke string. Timetostr Mengubah type data time ke dalam bentuk string. Strtofloat Mengubah type data string ke dalam bentuk real. Floattostr Mengubah type data real ke dalam bentuk string. Untuk lebih jelasnya, perhatikan contoh program jam berikut ini : Masukan komponen timer (terletak di system) pada form. Masukan label pada form. (hapus captionnya). Pada procedure berikut : (double klik pada komponen timer) procedure TForm1.Timer1Timer(Sender: TObject);
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
9
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;
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
10
Masukan sumbu x pada edit1.text, masukan sumbu y pada edit2.text. Penjelasan : Fungsi utama terletak pada procedure bitbtn1click, setelah tombnol ini ditekan maka isi dari edit1 (nilai x) dan edit2 (nilai y) akan dikirim ke grafik. Pada grafik kita menggunakan addxy, yang mempunyai urutan fungsi addxy (sumbux, sumbuy, label, warna grafiknya). Perhatikan, Nilai x pada edit1 dan nilai y pada edit2, harus kita ubah ke type float (real), yaitu dengan menggunakan fungsi strtofloat. Untuk label sebaiknya dikosongkan saja (‘ ‘) dan warna grafik dapat dilihat pada propertis warnanya yang telah disediakan delphi. Kegunaan akhir program ini, anda bisa memasukan berbagai nilai x dan y (baik dalam bentuk integer maupun real), sehingga data yang telah dihasilkan dapat lebih mudah dianalisa dengan melihat perubahan pada grafiknya. Dibawah ini dijelaskan bagaimana mengedit graph dan bagian-bagian yang penting untuk diedit. Mengedit graph
Klik add untuk menambah series baru
Mengganti judul series
gambar 2.2
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
11
Model – model graph yang disediakan
Grafik untuk fungsifungsi tertentu
gambar 2.3 Bentuk 3 Dimensi
Mengubah batas X dan Y
gambar 2.4
4.
Menggunakan oleobject untuk akses ke Microsoft Excel dan Microsoft Word Dengan oleobject, kita bisa mengirim data dan mengakses program-program dari microsoft (seperti Microsoft Word dan Miscrosoft Excel). Terkadang kita ingin melakukan pengolahan data yang lebih advanced dengan Microsoft Excel. dengan oleobject persoalan ini dapat diatasi!
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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;
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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
I dan J untuk menaikan array, sehingga datanya tidak
ditimpa oleh data selanjutnya. Setelah data yang dinginkan terkumpul, data dikirim ke Excel
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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.
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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
Perhatikan gambar diatas, pada penggunaan komunikasi paralel semua bit dikirim secara bersamaan pada waktu yang sama. Oleh karena itu pada komunikasi ini kita membutuhkan banyak kabel. Hal memang sering menjadi kelemahan komunikasi paralel akibat banyaknya kabel yang dibutuhkan, dan panjang kabel ini tidak boleh lebih dari 20 m, untuk menjaga keaslian data. Namun kelebihan komunikasi paralel adalah lebih cepat dan kapasitas yang dibawa juga banyak serta pemrograman yang lebih mudah. 2. Komunikasi paralel Komunikasi paralel yang digunakan adalah komunikasi paralel lewat kabel data untuk printer (saat mengeluarkan data). Pada keadaan normal (tidak aktif) tegangan pada pin-pin ini adalah 0 volt, namun bila kita beri high, maka tegangannya akan berubah menjadi 5 volt. Pada pelatihan ini, komunikasi paralel hanya digunakan untuk mengeluarkan data, yang bisa berguna untuk menyalakan relay atau stepper motor untuk menjalankan atau mengontrol hardware.
3. Data db 25 Pada port paralel ada 3 jalur data, yaitu : Jalur kontrol
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
17
Memiliki arah bidirectional Jalur status Memiliki satu arah, yaitu arah input. Jalur data Memiliki 2 arah. Dapat juga berfungsi sebagai pengirim Address dan data, masing-masing 8 bit, dimana keduanya melakukan transfer data dengan protokol handshaking serta diakses dengan register yang berbeda. Bila kita menggunakan jalur LPT1 maka alamat yang ditentukan oleh PC adalah: Register kontrol 37A
Register Status 379
Register Data 378
Register Address 37B
Tabel fungsi pin-pin dari db25 Nomor Pin
Nomor Bit
Jalur
Sinyal
1
1
Kontrol
Strobe
2
1
Data
Data 1
3
2
Data
Data 2
4
3
Data
Data 3
5
4
Data
Data 4
6
5
Data
Data 5
7
6
Data
Data 6
8
7
Data
Data 7
9
8
Data
Data 8
10
7
Status
Ack
11
8
Status
Busy
12
6
Status
P Error
13
5
Status
Select
14
2
Kontrol
Auto FD
15
4
Status
Fault
16
3
Kontrol
Init
17
4
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
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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:
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
19
Gambar diatas menunjukan rangkaian pada led.
Akusisi data dengan timer Banyak percobaan yang melakukan akusis data. Kita dapat melakukan hal tersebut dengan komponen timer pada delphi. Langkahnya cukup mudah. Anda tinggal memasukan procedure di dalam ontimer. Sebenarnya langkah ini sudah kita lakukan saat kita membuat jam pa da bab 2, bila pada pembuatan jam kita memasukan procedure strto time didalam event ontimer, maka kita dapat mnengganti procedure itu menjadi berbagai macam, dengan tindakan ini kita bisa membuat lampu 1 menyala pada deti 1 dan lampu 2 menyala pada detik ke 2 dan seterusnya. Tugas.
Buatlah
8
buah
led
yang
nyala
kelap-kelip,
gunakan
fasilitas
sleep(millisecond).
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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.
Untuk mengatasi hal ini,
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.
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
21
Gambar 4.1 Succesive Approximation Register `ADC
Àdapun cara kerja ADC 0804 secara umum, saat keadaan logika WR atau RD dalam kondisi low, ADC ini dalam keadaan reset.
Jika salah satu dari
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 DACVin , 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
system ini, bus alamat diberi nilai 4000 H.
Gambar 4.2 Diagram Pewaktuan ADC SAR
Sensor yang kita gunakan adalah sensor pengubah tegangan. Bila suhu berubah,
maka tegangan pada sensor akan berubah juga. Perubahan inilah
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
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
22
dapat langsung menampilkan ke dalam layar seven-segment. Pada keperluan ini mikrokontroler digunakan untuk mengubah data paralel ke dalam bentuk serial. Peran peting mikrokontroller 89C51 dalam sistem pengukuran adalah sebagai tempat pengolahan data hasil pembacaan oleh ADC0804 dan kontrol data. Sebelum data ditampilkan ke 7segmen, data diproses dalam mikrokontroller.
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
menggunakan EPROM programer. 3. Register Pewaktu (Timer Register) sebanyak 2 buah yaitu Timer 0 dan Timer 1 yang masing-masing bekapasitas 16 bit. Register ini digunakan sebagai :
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
23
a. Delay
atau
jarak
waktu
sebagai
contoh
penggunaannya
mikrokontroller memberikan waktu kepada sebuah piranti I/O yang dikontrolnya untuk bekerja selama rentang waktu tertentu.
Hal ini
memerlukan delay. b. Counter atau pencacah.
Mikrokontroller mempunyai kemampuan
untuk mencacah (menghitung ) pulsa dari luar misalnya dari signal generator. c. Baud Rate Serial Komunikasi yaitu tekanan transfer dapat diubahubah sesuai dengan kebutuhan. 4. Port Input/Output. IC 89C51 mempunyai 4 buah port yang dapat dikontrol sebagai I/O yaitu P0, P1, P2, dan P3. sebuah port mempunyai 8 pin atau 8 bit. Meskipun semua port dapat dikontrol, masing-masing port mempunyai fungsi yang berbeda. a. Port 0 mempunyai fungsi sebagai port alamat dan data. Maka jika mikrokontroller sedang mengakses alamat, P0 aktif sebagai pembawa alamat 8 bit yang bawah (A0-A7). Ketika mengakses data (bisa input atau output) port ini berfungsi sebagai jalur data (D0-D7). b. Port 1 tidak mempunyai fungsi lainnya selain I/O sehingga port ini sering digunakan untuk mengontrol piranti lain di sistem antar muka. c. Port 2 berfungsi sebagai pembawa alamat 8 bit atas (A8-A15). Berbeda dengan port 0, port ini tidak bersifat sebagai jalur data hanya sabagai pembawa alamat.
Dengan demikian jelas bahwa untuk
alamat 89C51 menyediakan 16 bit sedangkan untuk jalur data 8 bit. d. Port 3 mempunyai fungsi yang berbeda-beda dari setiap pinnya yaitu P3.7 kaki read yang aktif manakala sedang melakukan eksekusi yang sifatnya membaca data. P3.6 kaki write yang aktif saat melakukan eksekusi yang sifatnya menulis data ke suatu alamat. P3.5 merupakan pin yang berhubungan dengan timer register 1 P3.4 merupakan pin yang berhubungan dengan timer register 0 P3.3 dan P3.2 berhubungan dengan kontrol interupsi. P3.1 dan P3.0 berhubungan dengan port serial 5. Kontrol intrupsi. Intrupsi yang dilayani oleh 89C51 dapat berasal dari a. Piranti diluar 89C51. Untuk intrupsi ini 89C51 menyediakan dua buah kontrol yaitu INT0 dan INT1 (pin P3.3 dan P3.2). b. Timer Register baik Timer 0 dan Timer 1
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
24
c. Port serial yaitu melalui register TI (transmit interupt) atau RI (Receive Interupt) 6. Port serial berfungsi untuk komunikasi serial dengan CPU lain. Sepasang Tx (Transmiter) dan Rx (Receiver) (pin P3.1 dan P3.0). 7. Jalur kontrol.
Sebagai mikrokontroller yang berorientasi kontrol 89C51
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.
Gambar 4.3. Struktur Memori MC 89C51
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
25
Untuk memori program, pada 89C51 sudah terintegrasi di dalamnya. Memori program berisi vektor interupsi dan kode-kode perogram yang ingin dijalankan oleh mikrokontroller. Vektor interupsi mengarahkan eksekusi ke lokasi memori program tertentu ketika terjadi interupsi. Memori data dalam mikrokontroller 89C51 terintegrasi didalamnya sebesar 256 byte. Memori data terdiri dari empat (4) buah register bank yang berisi 8 buah register, memori data umum dan register dengan fungsi khusus. Register bank R0-R7 dapat digunakan untuk program pengulangan dan pengalamatan secara tidak langsung (hanya R0 dan R1). Bank register yang berjumlah empat (4) buah ini dapat dipilih mana yang aktif dengan mengatur pada bit 3 dan bit 4 pada PSW (Program Status Words). Memori data umum terdiri dari byte yang dapat diakses secara bit dan byte memori yang tidak dapat. Untuk memori umum internal beralamat dari 20H-7FH. Untuk register dengan fungsi khusus terdiri dari alamat-alamat dari port dan register yaitu : 1. Port – port : a. Port 0 (alamatnya pada byte 80H) b. Port 1 (alamatnya pada byte 90H) c. Port 2 (alamatnya pada byte A0H) d. Port 3 (alamatnya pada byte B0H) 2. Register – register a. Akumulator atau register A berfungsi untuk pengalamatan tak langsung, pengisian data dan fungsi arimatika beralamat pada byte E0H b. Register B beralamat pada byte E0H digunakan untuk arimatika perkalian dan pembagian bersama dengan register A c. Stack Pointer (SP) alamatnya pada byte 81H d. Data Pointer (DPTR) dengan Data Pointer Low (DPL) alamatnya pada byte 82H dan Data Pointer High (DPH) alamatnya di byte 83H. Data Pointer ini digunakan untuk pengalamatan 16 bit dan biasanya bersifat eksternal. e. Power Control Register (PCON) alamat pada byte 87H f.
Timer Control Register (TCON) alamat pada byte 88H
g. Timer Mode Register (TMOD) alamat pada byte 89H
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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.
Serial Control Register (SCON) alamat pada byte 89H
j.
Serial Buffer Register (SBUF) alamat pada byte 99H
k. Interupt Enable Register (IE) alamat pada byte A8H l.
Interupt Priority (IP) alamat pada byte B8H
m. Program Status Word (PSW) alamat pada byte D0H
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
Keterangan tiap pin :
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
27
Pins
Common
Description
name
Signal Direction on DCE
1
CD
Received line signal Detector
-
2
RXD
Received data
out
3
TXD
Transmitted data
In
4
DTR
Data Terminal Ready
In
5
GND
Signal Ground
-
6
DSR
Data Set Ready
Out
7
RTS
Request to send
In
8
CTS
Clear to Send
Out
Ring Indicator
Out
9
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}
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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.
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
30
Komputer 1 Pengambilan data
Internet
Kontrol sensor
Komputer 2 Penampilan data dan pengontrolan data
Sensor suhu
2. Komponen yang dibutuhkan Komponen yang dibutuhkan dalam komunikasi internet adalah client dan server. Dari dua buah komputer harus ada salah satu komputer sebagai client dan yang lainnya sebagai server. Dalam hubungan ini, diperlukan sebuah port yang kosong agar kedua komputer dapat terkoneksi. Pengaturan port dilakukan pada komputer client. 3. Contoh program Untuk server unit server2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, Menus, ComCtrls, ExtCtrls, TeEngine, Series, Grids, TeeProcs, Chart, Buttons; type TForm1 = class(TForm) ServerSocket: TServerSocket; memo1: TMemo; MainMenu1: TMainMenu; File1: TMenuItem; Listen1: TMenuItem; Putus1: TMenuItem; keluar: TMenuItem; StatusBar: TStatusBar; Panel3: TPanel; Edit1: TEdit; Edit2: TEdit; Label2: TLabel; Button1: TButton; procedure Listen1Click(Sender: TObject); procedure keluarClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Putus1Click(Sender: TObject); procedure ClientSocketConnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocketClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocketAccept(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocketClientConnect(Sender: TObject;
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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;
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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;
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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;
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
34
procedure TForm1.FormCreate(Sender: TObject); begin memo1.Clear; end; procedure TForm1.Putus1Click(Sender: TObject); begin clientsocket.Close; statusbar.Panels[0].Text:=''; statusbar.Color:=clbtnface; end; procedure TForm1.ClientSocketConnect(Sender: TObject; Socket: TCustomWinSocket); begin statusbar.Panels[0].Text:='SUDAH NYAMBUNG KE :'+ socket.RemoteHost; statusbar.Color:=cllime; end; procedure TForm1.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket); begin edit2.Text:=socket.ReceiveText; end; Procedure TForm1.ServerSocketClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin memo1.Lines.Clear; end; procedure TForm1.ClientSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin memo1.Lines.Add('error nyambung :'+ server) ; ErrorCode := 0; 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 clientsocket.Socket.SendText(edit1.Text); end; end.
Penjelasan program 1. Kita harus menyamakan port yang akan digunakan (cth 1028), yang terletak pada object inspector masing-masing komponen internet
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
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
Server connet to client Pengiriman text, file Cilent connet to server
Cilent disconnet
Dengan konsep ini kita bisa mengirimkan berbagai data, baik dalam bentuk text, maupun file. Tampilan program diatas
Gambar tampilan program server dan client
Data yang dikirim server
Tugas: Buatlah koneksi 2 buah komputer, yang bisamengirim waktu dari salah satu komputer ke komputer lainya.
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
36
Daftar Pustaka
1. Marco Cantu. (1999). Mastering Delphi 5. Sybex Inc. New York. 2. Rudy H. (2000). Laporan Tugas Akhir, Peningkatan Praktikum Fisika Dasar dengan memanfaatkan Komputer. 3. Scott MacKenzie, The 8051 Microcontroller. Second Edition, Prentice Hall, 1995. 4. Nugroho Pancayogo, Pelatihan Mikrokontroller 8031 Bagi Pemula, Jurusan Fisika ITB, 2000 5. Help Menu pada Delphi 5
Pelatihan Delphi untuk pemula, Lab Elka , November 2001
37