Anda di halaman 1dari 37

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

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

gambar 1.1 Dalam membuat program, Delphi telah menyediakan banyak kemudahan, yaitu dengan disediakannya

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

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 Beberapa contoh pada Propertis : Font Menunjukan font yang akan kita

gambar 1.2a

gambar 1.2a gambar 1.2b Beberapa contoh pada Propertis : Font Menunjukan font yang akan kita gunakan.

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.

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.

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

if key =#13 then end;

(isikan perintah)

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.

berubah menjadi start. Gambar hasil dari program tersebut. gambar 3a 5. File-file pada Delphi . gambar

gambar 3a

5. File-file pada Delphi .

program tersebut. gambar 3a 5. File-file pada Delphi . gambar 3b *.pas Merupakan source file, disini

gambar 3b

*.pas Merupakan source file, disini akan disimpan kode pascal yang kita tulis.

*.dpr

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.

tersebut, dan datanya disimpan pada file ini. *.exe Merupakan appllication file setelah kita compile program kita.
tersebut, dan datanya disimpan pada file ini. *.exe Merupakan appllication file setelah kita compile program kita.
tersebut, dan datanya disimpan pada file ini. *.exe Merupakan appllication file setelah kita compile program kita.
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)

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);

begin

label1.Caption:=timetostr(time);

end;

begin label1.Caption:=timetostr(time); end; gambar 2.1 Penjelasan : Inti dari program ini adalah mengubah time ke dalam

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

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;

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

bagian-bagian yang penting untuk diedit. Mengedit graph Klik add untuk menambah series baru Mengganti judul series

Klik add untuk menambah series baru

diedit. Mengedit graph Klik add untuk menambah series baru Mengganti judul series gambar 2.2 Pelatihan Delphi

Mengganti judul series

gambar 2.2

Model – model graph yang disediakan

Model – model graph yang disediakan gambar 2.3 Bentuk 3 Dimensi Grafik untuk fungsi- fungsi tertentu
Model – model graph yang disediakan gambar 2.3 Bentuk 3 Dimensi Grafik untuk fungsi- fungsi tertentu
Model – model graph yang disediakan gambar 2.3 Bentuk 3 Dimensi Grafik untuk fungsi- fungsi tertentu

gambar 2.3

Bentuk 3 Dimensi
Bentuk 3 Dimensi
Bentuk 3 Dimensi

Bentuk 3 Dimensi

Grafik untuk fungsi- fungsi tertentu

2.3 Bentuk 3 Dimensi Grafik untuk fungsi- fungsi tertentu Mengubah batas X d an Y gambar
2.3 Bentuk 3 Dimensi Grafik untuk fungsi- fungsi tertentu Mengubah batas X d an Y gambar

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!

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

Kita memasukan variant keword:= createoleobject(‘word.basic’), kita dapat

Penggunaan oleobject harus diawali dengan uses comobj

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 :

Flowchart sederhana Menampilkan data ke grafik dan mengirim data ke M Excel

Start I = 1 J = 1 Masukan data Tampil grafik Tampil Excel
Start
I = 1
J = 1
Masukan data
Tampil grafik
Tampil Excel

I = 1 + 1

J = 1 + 1

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

implementation

{$R *.DFM}

uses comobj;

20]of real;

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;

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

Tampilan hasilnya :

Fungsi oleobject ke Excel atau Word)
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.

BAB III AKSES PORT PARALEL

(Menyalakan 8 buah led)

1. Pengantar

Komunikasi

bersamaan.

paralel

adalah

komunikasi

yang

mengirimkan

Bit data 1 Bit data 3 Bit data 5 Bit data 7 Bit data 2

Bit data 1 Bit data 3 Bit data 5 Bit data 7

Bit data 2 Bit data4 Bit data 6 Bit data 8

data

secara

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

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

Register Status

Register Data

Register Address

37A

379

378

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

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:

Gambar diatas menunjukan rangkaian pada led. Akusisi data dengan timer Banyak percobaan yang melakukan akusis

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.

sleep(millisecond).

Buatlah

8

buah

led

yang

nyala

kelap-kelip,

gunakan

fasilitas

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 komponen- komponen 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.

kerena ADC sudah dilengkapi oleh clock generator internal. Pelatihan Delphi untuk pemula, Lab Elka , November

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 DAC<V in , bit set 1) maka SAR terus bekerja sampai pada kondisi dimana tegangan keluaran DAC lebih besar dari tegangan masukan analog (Vout DAC>V in , 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.

RD low. Dalam system ini, bus alamat diberi nilai 4000 H. Gambar 4.2 Diagram Pewaktuan ADC

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

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.

ditampilkan ke 7segmen, data diproses dalam mikrokontroller. Di dalam sebuah IC 89C51 selain CPU (Central Prosessing

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 program-

program 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 :

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 diubah-

ubah 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

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.

alamat eksternal (di luar chip 89C51) dengan lebar 16 bit. Gambar 4.3. Struktur Memori MC 89C51

Gambar 4.3.

Struktur Memori MC 89C51

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

h.

Register data timer yaitu Timer Low ke 0 (TL0) alamat pada byte 8AH.

Timer High ke 0 (TH0) alamat pada byte 8CH.

alamat pada byte 8BH. Timer High ke 1 (TH1) alamat pada byte 8DH.

Timer Low ke 1 (TL1)

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

byte B8H m. Program Status Word (PSW) alamat pada byte D0H 4. DB 9 dan Rs

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
1
2
3
4
5
6
7
8
9

Keterangan tiap pin :

Pins

Common

Description

Signal Direction

name

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

9

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}

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.

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
Internet
Komputer 2
Komputer 3
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

Internet
Internet
Komputer 1 Kontrol sensor Sensor suhu
Komputer 1
Kontrol
sensor
Sensor suhu
Komputer 2
Komputer 2

Penampilan data dan pengontrolan data

Pengambilan

data

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;

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;

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;

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;

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

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

Client connet ke server
Client connet ke server
Client connet ke server Server listening Server connet to client Cilent disconnet Pengiriman text, file Cilent
Server listening

Server listening

Server listening
Server listening
Client connet ke server Server listening Server connet to client Cilent disconnet Pengiriman text, file Cilent
Client connet ke server Server listening Server connet to client Cilent disconnet Pengiriman text, file Cilent

Server connet to client

connet ke server Server listening Server connet to client Cilent disconnet Pengiriman text, file Cilent connet
connet ke server Server listening Server connet to client Cilent disconnet Pengiriman text, file Cilent connet
Cilent disconnet
Cilent disconnet
Cilent disconnet
Cilent disconnet

Cilent disconnet

Pengiriman text, file

Cilent connet to server

Dengan konsep ini kita bisa mengirimkan berbagai data, baik dalam bentuk text, maupun file.

Tampilan program diatas

baik dalam bentuk text, maupun file. Tampilan program diatas Gambar tampilan program server dan client Data

Gambar tampilan program server dan client

Data yang dikirim server
Data yang
dikirim server

Tugas: Buatlah koneksi 2 buah komputer, yang bisamengirim waktu dari salah satu komputer

ke komputer lainya.

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