• Tidak ada hasil yang ditemukan

Bab I PENGENALAN DELPHI - Materi Delphi

N/A
N/A
Protected

Academic year: 2018

Membagikan "Bab I PENGENALAN DELPHI - Materi Delphi"

Copied!
37
0
0

Teks penuh

(1)

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;

(2)

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.

(3)

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.

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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.

(9)

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)

(10)

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

(11)

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

Mengganti judul series Klik add untuk menambah

series baru

(12)

Model – model graph yang disediakan

Grafik untuk

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

(13)

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 :

Masukan data Start

I = 1 J = 1

I = 1 + 1 J = 1 + 1 Tampil grafik

Tampil Excel

Flowchart sederhana Menampilkan data ke grafik dan

(14)

unit jam_grap; interface uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, TeEngine, Series, Buttons, TeeProcs, Chart;

type

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

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;

(15)

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.

(16)

Tampilan hasilnya :

Fungsi oleobject ke Excel atau Word)

gambar 2.5

(17)

BAB III

AKSES PORT PARALEL

(Menyalakan 8 buah led)

1. Pengantar

Komunikasi paralel adalah komunikasi yang mengirimkan data secara bersamaan.

Bit data 2

Bit data 8 Bit data 7 Bit data 6 Bit data 5 Bit data4 Bit data 3

Bit data 1

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 :

(18)

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

(19)

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.

(20)

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.

(21)

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

(22)

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<Vin , bit set 1) maka SAR terus bekerja sampai pada kondisi dimana tegangan keluaran DAC lebih besar dari tegangan masukan analog (Vout DAC>Vin , bit set 0) . Pada saat itu keluaran komparator akan menghentikan SAR. Data pada keluaran SAR adalah data digital hasil konversi tegangan analog. Setelah selesai konversi, ADC akan memberi tanda dengan mengaktifkan INTR. Keluaran SAR disimpan sementara oleh latch sehingga dapat langsung berhubungan dengan bus mikrokontroller. Data ini dapat dibaca dengan jalan mengaktifkan CS dan RD low. Dalam 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

(23)

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

(24)

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

(25)

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.

(26)

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.

(27)

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.

9 6 7 8

4 3 5 2

1

(28)

Pins Common name

Description Signal Direction

on DCE

Received line signal Detector Received data

Transmitted data Data Terminal Ready

Signal Ground Data Set Ready Request to send Clear to Send

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;

(29)

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

(30)

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

Komputer 3

Komputer 2

Internet

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

(31)

Komputer 1

Internet Komputer 2

Penampilan data dan pengontrolan 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;

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

(32)

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

(33)

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;

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, Menus, ComCtrls, ExtCtrls, Grids, TeEngine, Series, TeeProcs;

type

(34)

keluar: TMenuItem;

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

procedure TForm1.keluarClick(Sender: TObject); begin

clientsocket.close; close;

(35)

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

(36)

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

Pengiriman text, file

Cilent disconnet Cilent connet to server

Server connet to client Client connet ke server Server listening

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

(37)

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

Gambar

Gambar hasil dari program tersebut.
Grafik untuk fungsi-
gambar 2.5
Tabel fungsi pin-pin dari db25
+5

Referensi

Dokumen terkait

Berdasarkan penilaian hasil penapisan berdasar sistem penglihatan manusia, yang diwakili oleh 30 responden, terhadap citra Barbara.jpg , Lena.jpg , dan trui.tif ,

Eğme deneyi sonucunda malzemelerin Ģekil değiĢtirme özellikleri hakkında edinilen genel bilginin yanında eğilme momenti, eğilme gerilmesi, elastisite modülü ve

Hasil analisis Indeks Kerentanan Lingkungan (IKL) pada kawasan penelitian yang hanya mencakup darat (pantai) ini menunjukkan bahwa secara umum pesisir selatan

Pengaruh Varian Efek Acak Terhadap Pengestimasian Efek Tetap dalam Model Poisson-Gamma pada HGLM (Hierarchical Generalized Linear Model); Siskha Kusumaningtyas; 2013; 50

(3) Lembaga Sosial Lokal (LSL) yang dapat ditunjuk sebagai pelaksana BKSP adalah yang telah memberikan pelayanan sosial, Lanjut Usia Terlantar, Penderita Cacat Fisik dan

Sebagai contoh sinyal yang berbentuk sinusoidal dan mempunyai dua arah gelombang, yaitu arah dari kutub positif ke negatif dan arah dari negatif ke positif, kemudian dijadikan

Buku pedoman Program D-3 Studi Bahasa Inggris. Universitas

Penelitian yang dilakukan oleh Riska (2013) berjudul “Pengaruh Rasio Keuangan Dalam Memprediksi Pertumbuhan Laba (Studi Kasus Pada Perusahaan Otomotif Yang Terdaftar Di Bei)”