praktikum iii delphi

25
LAPORAN PRAKTIKUM III DELPHI KOMUNIKASI SERIAL Dosen Pembimbing : M. Sarosa, DIPL.ING, MT Oleh : Edy Nur Ardiansyah (0831130008) JURUSAN TEKNIK ELEKTRO PROGRAM STUDI TEKNIK TELEKOMUNIKASI POLITEKNIK NEGERI MALANG 2010

Upload: mysteriusman

Post on 29-Jun-2015

886 views

Category:

Documents


28 download

TRANSCRIPT

Page 1: Praktikum III Delphi

LAPORAN PRAKTIKUM III DELPHI

KOMUNIKASI SERIAL

Dosen Pembimbing :

M. Sarosa, DIPL.ING, MT

Oleh :

Edy Nur Ardiansyah (0831130008)

JURUSAN TEKNIK ELEKTRO

PROGRAM STUDI TEKNIK TELEKOMUNIKASI

POLITEKNIK NEGERI MALANG

2010

Page 2: Praktikum III Delphi

PRAKTIKUM III KOMUNIKASI SERIAL

(KOMUNIKASI KOMPUTER DENGAN KOMPUTER)

I. Tujuan Khusus · Mampu melakukan komunikasi antara dua komputer menggunakan interface serial

RS 232 · Memahami sistem pengkabelan untuk menghubungkan dua komputer melalui port

serial · Memahami standarisasi komunikasi serial RS 232 · Memahami prosedur untuk melakukan komunikasi serial RS 232

II. Tujuan Umum · Memahami komponen untuk melakukan komunikasi serial RS 232 menggunakan

Delphi · Mampu melakukan instalasi komponen komunikasi serial RS 232 (Cport) · Mampu membuat program untuk komunikasi antara komputer dengan komputer

III. Alat dan Bahan

· Program Delphi versi 6 keatas · Komponen komunikasi serial (CPORT) · Konektor DB9 female 2 buah · Kabel (secukupnya) · Komputer 2 unit

IV. Teori Penunjang

A. Komunikasi Serial (RS232)

Komunikasi serial merupakan komunikasi yang pengiriman datanya dikirimkan per

elemen. Dengan transmisi serial pengiriman data jarak jauh menjadi lebih efektif

dibandingkan dengan transmisi paralel. Data paralel internal komputer dimasukkan ke

pengubah paralel ke serial. Saluran serial mengirimkan setiap karakter per elemen sehingga

hanya diperlukan satu atau dua penghantar,yaitu kirim data (TX) dan terima data (RX).

Contoh transmisi serial ditunjukkan pada Gambar 1.

Page 3: Praktikum III Delphi

Gambar 1. Transmisi Serial

Sumber : Donny Arius & Rum Andy K. R. , 2008

Pada Gambar 2 ditampilkan bahwa transmisi serial membutuhkan waktu yang relatif

lebih lama dibandingkan dengan transmisi paralel, hal ini dikarenakan untuk komunikasi

serial hanya menggunakan satu saluran. Berikut ini gambar arah transmisi dari komunikasi

serial.

Gambar 2. Arah transmisi komunikasi serial

Sumber : Donny Arius & Rum Andy K. R. , 2008

Sebagai contoh, jika akan dikirim data serial 10011010, maka agar data tersebut

dapat dikirim dan diterima dengan baik, selang waktu yang digunakan oleh pengirim dari

penerima satu dengan yang lain harus sama. Jika penerima telah menerima penyesuaian bit,

maka seharusnya juga harus segera menerima penyesuaian karakter, dan penerima juga harus

mengetahui awal dan akhir blok data yang dikirim. Penyesuaian yang diperlukan dapat

diperoleh secara sinkron maupun asinkron, data yang dikirim oleh terminal komputer lewat

jalur RX dimasukan ke pengubah seri ke paralel sebelum diteruskan ke komputer.

Dibutuhkan 1 line mengirimkan 8 bit

.

. 0 0 .

S E N D E R

.

. 0 0 .

R E C E I V E R

1 1 0 1 0 0 1 0

Paralel/serial konverter

8 bit dikirim satu per elemen

Paralel/serial konverter

SPACE

MARK

Arah transmisi

Panjang karakter 8 bit

Bit-bit yang ditransmisikan

1 1 0 1 0

0

1 0

Stop Start

Page 4: Praktikum III Delphi

B. Parameter Komunikasi Serial

Pada komunikasi serial data yang dikirimkan berupa bit ‘1’ (high) atau bit ‘0’ (low),

untuk bit ‘1’ diwakili sebagai tegangan +3 s/d +15 volt dan bit ’0’ diwakili sebagai tegangan

-3 s/d -15 volt dengan demikian tegangan dalam komunikasi serial memiliki ayunan tegangan

maksimal sebesar 30 volt.

Suatu karakter yang akan ditransfer harus didahului oleh kondisi (high) ke rendah

(low) yang dinamakan start bit, yang digunakan untuk mensikronkan antara pengirim dan

penerima. Setelah start bit, selanjutnya berisi karakter yang diikuti dengan parity bit dan

terakhir adalah stop bit. Berikut ini contoh sinyal informasi komunikasi serial RS232 pada

pengiriman huruf ”A” dalam format ASCII tanpa bit paritas.

Gambar 3. Gelombang informasi komunikasi serial

Sumber : Forum Komunitas Teknisi Ponsel Indonesia

Gambar 3 menunjukan bentuk gelombang komunikasi serial dengan format 8N1,

yaitu 8 bit-data, tanpa parity dan 1 stop bit. Pada keadaan idle atau menganggur, jalur RS232

ditandai dengan mark state atau logika high. Pengiriman data diawali dengan start bit yang

berlogika nol ‘0’ atau low, berikutnya data dikirimkan bit demi bit mulai dari LSB (Least

Significant Bit) atau bit ke-0 (nol). Pengiriman setiap byte diakhiri dengan stop bit yang

berlogika high. Gambar 3 memperlihatkan kondisi low setiap stop bit, ini adalah start bit yang

menandakan data berikutnya akan dikirimkan. Jika tidak ada lagi data yang ingin dikirim,

maka jalur transmisi ini akan dibiarkan dalam keadaan high. Ada yang disebut break sinyal,

yaitu keadaan low yang lamanya cukup untuk mengirimkan 8-bit data. Jika pengirim

menyebabkan jalur komunikasi dalam keadaan seperti ini, penerima akan menganggap ini

adalah break sinyal atau sinyal rusak.

Data yang dikirimkan dengan cara seperti gambar 2.11 ini disebut data yang

terbingkai (to be framed) oleh start dan stop bit. Jika stop bit dalam keadaan low, berarti telah

terjadi framing error. Biasanya hal ini terjadi karena perbedaan kecepatan komunikasi

(baudrate) antara pengirim dan penerima. Berikut ini beberapa parameter dari komunikasi

serial :

01 -15 Volt

0 Stop

Start

Logic ‘1’

Logic ‘0’

0 1

+15 Volt

0 0 00 Volt

Page 5: Praktikum III Delphi

· Data Bits

Jumlah bit yang akan ditransmisikan mempunyai nilai adalah 5 sampai 8 bit.

· Parity Bit

untuk mendeteksi kesalahan (error) yang berbentuk odd (ganjil), even (genap) atau

tanpa parity (no parity).

· Start bit dan Stop bit.

Start Bit digunakan untuk singkronisasi penerima, start bit berukuran 1 bit. Stop Bit

menandakan akhir dari data yang dikirimkan, stop bit berukuran 1 bit, 1.5 bit atau 2

bit.

· Baud rate atau kecepatan data (bps).

Merupakan kecepatan transmisi data dari transmitter ke receiver, mempunyai nilai

antara (50 s/d 19,2 kbps).

C. Konfigurasi Pengkabelan Komunikasi Serial antara 2 komputer

Untuk dapat melakukan komunikasi serial antara dua komputer maka di

butuhkan media kabel untuk mengirimkan informasi. Dalam komunikasi serial antara

dua komputer dibutuhkan media kabel serta konektor yang berupa DB9 (female).

DB9 (female) memiliki 9 pin out yang tiap-tiap pin out memiliki fungsi masing-

masing. Pada Tabel 1. dibawah ini, menunjukan konfigurasi pin out beserta fungsi

dari masing-masing pin.

Tabel 1. fungsi dari masing-masing pin keluaran

Fungsi Pin Out Keterangan Fungsi TX Transmit Data Untuk pengiriman data serial RX Receive Data Untuk penerimaan data serial CTS Clear To Send Digunakan untuk memberitahukan bahwa

modem siap untuk melakukan pertukaran data

CD Carrier Detect Saat modem mendeteksi suatu ‘carrier’ dari modem lain (dari tempat lain) maka sinyal ini akan diaktifkan

DSR Data Set Ready

Memberitahukan UART bahwa modem siap untuk melakukan komunikasi (Link)

DTR Data Terminal Ready

Kebalikan dari DSR, untuk memberitahukan bahwa UAT siap untuk melakukan hubungan komunikasi

Page 6: Praktikum III Delphi

RTS Request To Send

Sinyal untuk menginformasikan modem bahwa UART siap untuk melakukan pertukaran data

RI Ring Induktor Akan aktif jika modem mendeteksi adanya sinyal dering dari saluran telepon

Sumber: Forum Komunitas Teknisi Ponsel Indonesia

Untuk konfigurasi pin out antara DB9 (female) dengan DB9 (female) yang lain

ditunjukan pada gambar berikut :

Gambar 4. Konfigurasi pin out DB9

Pada gambar 4 diatas merupakan konfigurasi untuk komunikasi antara dua komputer

yang menggunakan koneksi point-to-point, artinya hanya komunikasi dalam mode

half duplex.

D. Installasi Komponen Cport pada delphi

Untuk melakukan komunikasi serial komputer ke komputer menggunakan

program Delphi dibutuhkan komponen serial, terdapat banyak sekali komponen

komunikasi serial yang dapat digunakan, salah satunya adalah cport. Untuk

mendapatkannya, dapat diunduh di alamat www.progdigy.com. File yang diperoleh

masih dalam format terkompresi, sehingga unuk menggunakannya dan melakukan

instalasi ke program delphi diperlukan tahapan sebagai berikut :

PIN 1 : CD PIN 2 : RX PIN 3 : TX PIN 4 : DTR PIN 5 : SG PIN 6 : DSR PIN 7 : RTS PIN 8 : CTS PIN 9 : RI

TX RX

PIN 1 : CD

PIN 2 : RX

PIN 3 : TX

PIN 4 : DTR

PIN 5 : SG

PIN 6 : DSR

PIN 7 : RTS

PIN 8 : CTS PIN 9 : RI

Page 7: Praktikum III Delphi

Cara menginstall Komponen Serial

1. Unkompres file cport yang telah di download.

2. Copy file cport hasil unkompres ke folder dimana program delphi diinstall,

biasanya terdapat di C:\Program Files\Borland\Delphi7

3. Ubah nama folder menjadi comserial (optional), sehingga menjadi C:\Program

Files\Borland\Delphi7\comserial

4. Jalankan program delphi. Setelah itu klik ke sub menu tools → Environment

Options

Gambar 5. Tampilan Environment Options

5. Pada environment window klik ke library

Gambar 6. Tampilan Environment Windows Library

6. Pada tab library pilih tanda (browse) pada library path

Gambar 7. Tampilan Library path

7. Klik tanda (browse) pada Directories

Gambar 8. Tampilan Directories

8. Arahkan ke file cport (sesuai dengan penempatan file cport uncompress) 9. Setelah itu tekan tombol ADD

Page 8: Praktikum III Delphi

Gambar 9. Tampilan tombol ADD pada Directories

10. Buka file CportLib7 pada folder file cport uncrompress ditempatkan, disini

ditempatkan pada C:\Program Files\Borland\Delphi7\comserial

11. Setelah itu tekan tombol install

Gambar 10. Tampilan tombol Install

12. Buka DsgnCport7 pada folder file cport uncrompress ditempatkan, disini

ditempatkan pada C:\Program Files\Borland\Delphi7\comserial

Gambar 11. Tampilan tombol Install 13. Cek di program delphi apakah komponen sudah terinstall, jika proses install

sukses akan tampak seperti gambar dibawah.

Gambar 12. Tampilan komponen Cport pada Delphi

V. Tugas Praktikum

· persiapkan instalasi kabel pada konektor DB9 (female) seperti Gambar 4.

· Buat program untuk mengirimkan serta menerima pesan (teks) secara serial dari PC

ke PC.

Berikut ini langkah-langkah untuk membuat program untuk mengirimkan dan

menerima pesan (teks) dengan program delphi :

1. Bukalah program delphi dan buat aplikasi baru.

Page 9: Praktikum III Delphi

2. Tambahkan pada form tiga buah komponen button, dua buah komponen label,

dua buah komponen memo, satu buah komponen comport dan satu buah

komponen edit. Selanjutnya atur tata letak komponen-komponen tersebut seperti

gambar dibawah ini.

Gambar 13. Tata letak komponen

3. Ubah beberapa property form dan komponen menurut tabel berikut:

Tabel 1. Setting properti komponen dan form Komunikasi PC to PC

Komponen Property Setting Form Caption Komunikasi PC to PC

Name Frmpctopc Label1 Caption Kirim Label2 Caption Terima Memo1 Lines (kosongkan string list editor)

Name Mekirim Memo2 Lines (kosongkan string list editor)

Name Meterima Button1 Caption &Send

Name Btsend Button2 Caption Se&tup

Name Btsetup Button3 Caption E&xit

Name Btexit Edit1 Caption (kosongkan)

Name Edinputteks Comport1 Name Comserial

4. ketikkan kode program dibawah ini untuk membuat procedure penerimaan

pesan Double klik pada event-OnRxChar.

procedure frmpctopc.ComserialRxChar(Sender: TObject;

Count: Integer);

Page 10: Praktikum III Delphi

var

str:string; //Variabel menyimpanan data yang

diterima

begin

Comserial.ReadStr(Str, Count);

meterima.Text:=meterima.Text + str;

end;

*Note

readstr merupakan fungsi dari delphi untuk menerima pesan

Count merupakan fungsi dari delphi yang menunjukkan jumlah karakter yang

diterima

5. Ketikkan kode program dibawah ini untuk membuka port serial dengan cara

melakukan double klik pada form untuk membuat prosedur formcreate, jika

tidak komunikasi serial tidak dapat dilakukan.

procedure frmpctopc.FormCreate(Sender: TObject);

begin

Comserial.Open;

end;

6. Ketikkan kode program dibawah ini untuk mengirimkan pesan dengan cara

melakukan double klik pada btsend sebagai event on click.

procedure frmpctopc.btsendClick(Sender: TObject);

var

i,n:integer;

str:string;

begin

Str := edinputteks.Text;

Comserial.WriteStr(Str);

mekirim.Lines.Add('Pengirim :' +

edinputteks.Text );

end;

*note

Str Variabel tempat menyimpan data yang akan dikirim

Writestr Fungsi untuk mengirinkan pesan yang ada di variable str

Page 11: Praktikum III Delphi

7. Ketikkan kode program dibawah ini untuk mengubah setting dari parameter

koneksi dengan cara melakukan double klik pada btsetup sebagai event on click.

procedure frmpctopc.btsetupClick(Sender: TObject);

begin

Comserial.ShowSetupDialog;

end;

8. Ketikkan program dibawah ini untuk menutup program dan menutup port serial

(com) dengan cara melakukan double klik pada btexit sebagai event on click.

procedure frmpctopc.btexitClick(Sender: TObject);

begin

comserial.close; //menutup port com

application.terminate; //keluar dari program

end;

9. Jalankan program dan perbaiki apabila terdapat kesalahan!

VI. Tugas Pengembangan

Ubahlah teks yang diterima ke dalam bentuk heksadesimal dan biner, amati pesan yang

dikirim dan diterima serta jawablah pertanyaan berikut ini :

1. Atur boudrate TX sama dengan boudrate RX, lakukan pengiriman karakter atau

teks!

2. Ubah boud rate TX dan RX sehingga memiliki nilai yang berbeda, kirimkan

pesan karakter ‘f’ , amati apa yang terjadi dan jawablah pertanyaan dibawah ini!

a. Data yang dikirim……, Data yang diterima……

b. Data yang dikirim dalam biner…..

c. Data yang diterima…..

d. Data yang diterima dalam biner……

e. Amati kesalahan pengiriman data (gunakan data biner untuk memudahkan

pengamatan)

3. Ulangi nomor 2, jika yang tidak sama adalah bit stop.

Page 12: Praktikum III Delphi

VII. LISTING PROGRAM unit Unpctopc; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, CPort; type Tfrmpctopc = class(TForm) mekirim: TMemo; meterima: TMemo; Comserial: TComPort; Label1: TLabel; Label2: TLabel; mekoreksiterima: TMemo; mekoreksikirim: TMemo; btsend: TButton; btexit: TButton; btsetup: TButton; edinputteks: TEdit; ComPort1: TComPort; procedure ComserialRxChar(Sender: TObject; Count: Integer); procedure FormCreate(Sender: TObject); procedure btsendClick(Sender: TObject); procedure btsetupClick(Sender: TObject); procedure btexitClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var frmpctopc: Tfrmpctopc; hexa,biner,ascii:string; implementation {$R *.dfm} procedure heksakebiner(heksa:string); var data:string;

Page 13: Praktikum III Delphi

begin data:=heksa; if data='0' then data:='0000'; if data='1' then data:='0001'; if data='2' then data:='0010'; if data='3' then data:='0011'; if data='4' then data:='0100'; if data='5' then data:='0101'; if data='6' then data:='0110'; if data='7' then data:='0111'; if data='8' then data:='1000'; if data='9' then data:='1001'; if data='A' then data:='1010'; if data='B' then data:='1011'; if data='C' then data:='1100'; if data='D' then data:='1101'; if data='E' then data:='1110'; if data='F' then data:='1111'; biner:=biner+''+data; end; Procedure ubahkekoreksi1(eye:string); var m:integer; z:integer; //huruf:string ; begin for m:=1 to length(eye)do begin ascii:=IntToStr(ord(eye[m])); hexa:=IntToHex(ord(eye[m]),1); for z:=1 to length(hexa)do begin heksakebiner(hexa[z]); end; frmpctopc.Mekoreksiterima.Lines.Add(eye[m]+'-->'+ascii+'-->'+hexa+'-->'+biner); biner:=''; end; end; Procedure ubahkekoreksi2(eye:string); var m:integer; z:integer; //huruf:string ;

Page 14: Praktikum III Delphi

begin for m:=1 to length(eye)do begin ascii:=IntToStr(ord(eye[m])); hexa:=IntToHex(ord(eye[m]),1); for z:=1 to length(hexa)do begin heksakebiner(hexa[z]); end; frmpctopc.Mekoreksikirim.Lines.Add(eye[m]+'-->'+ascii+'-->'+hexa+'-->'+biner); biner:=''; end; end; procedure Tfrmpctopc.ComserialRxChar(Sender: TObject; Count: Integer); var str:string; //variabel menyimpan data yang diterima begin comserial.ReadStr(str, count); meterima.Lines.Add('RAMA:'+ str); ubahkekoreksi1(str); end; procedure Tfrmpctopc.FormCreate(Sender: TObject); begin comserial.open; end; procedure Tfrmpctopc.btsendClick(Sender: TObject); var //n:integer; str:string; begin str:=edinputteks.Text; comserial.writestr(str); mekirim.Lines.Add('EDY:'+ edinputteks.Text); ubahkekoreksi2(str); end; procedure Tfrmpctopc.btsetupClick(Sender: TObject); begin comserial.showsetupdialog; end;

Page 15: Praktikum III Delphi

procedure Tfrmpctopc.btexitClick(Sender: TObject); begin comserial.close; //menutup port com application.Terminate; //keluar dari program end; end.

Page 16: Praktikum III Delphi

VIII. TAMPILAN

Gambar1. Tx dan Rx menggunakan baudrate 9600

Page 17: Praktikum III Delphi

Gambar2. Baudrate Tx 9600, Rx 4800

Gambar3. Baudrate Tx 9600, Rx 14400

Page 18: Praktikum III Delphi

Gambar4. Baudrate Tx 4800, Rx 4800

Gambar5. Baudrate Tx 14400, Rx 9600

Page 19: Praktikum III Delphi

Gambar6. Databit Tx 8, Rx 8

Gambar7. Databit Tx 8, Rx 7

Page 20: Praktikum III Delphi

Gambar8. Databit Tx 8, Rx 6

Gambar9. Databit Tx 8, Rx 5

Page 21: Praktikum III Delphi

Gambar10. Databit Tx 7, Rx 8

Gambar11. Databit Tx 6, Rx 8

Page 22: Praktikum III Delphi

Gambar12. Databit Tx 5, Rx 8

Gambar13. Databit Tx 5, Rx 5

Page 23: Praktikum III Delphi

Gambar14. Databit Tx 6, Rx 6

Gambar15. Databit Tx 7, Rx 7

Page 24: Praktikum III Delphi

IX. TAMPILAN

Flowchart Program Anakan

Page 25: Praktikum III Delphi

25

Flowchat program penerimaan pesan

Flowchart Program pengiriman pesan / tombol “send”

str:=edinputteks.Text;comserial.writestr(str);

mekirim.Lines.Add('EDY:'+ edinputteks.Text);

ubahkekoreksi2(str);

end

Tfrmpctopc.btsendClick

Flowchart Program Saat Form dibuka

Flowchart Program Tombol Setup Tfrmpctopc.btsetupClick

comserial.showsetupdialog;

end; Flowchart Program Tombol Exit