Anda di halaman 1dari 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
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.
Paralel/serial Paralel/serial konverter
8 bit dikirim satu
konverter
per elemen

R
S E
E C
. .
N E
. .
D I
0 1 1 0 1 0 0 1 0 0
E V
0 0
R E
. Dibutuhkan 1 line mengirimkan 8 bit . R

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.
Arah transmisi
Bit-bit yang ditransmisikan

Panjang karakter 8 bit Stop


Start
MARK

1 1 0 1 0 0 1 0
SPACE

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

Logic ‘0’ +15 Volt


Start
0 Volt
1 0 0 0 0 0 1 0 Stop
Logic ‘1’ -15 Volt

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 :
· 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 Memberitahukan UART bahwa modem
Ready siap untuk melakukan komunikasi (Link)
DTR Data Terminal Kebalikan dari DSR, untuk
Ready memberitahukan bahwa UAT siap untuk
melakukan hubungan komunikasi
RTS Request To Sinyal untuk menginformasikan modem
Send 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 :

TX RX
PIN 1 : CD PIN 1 : CD

PIN 2 : RX PIN 2 : RX

PIN 3 : TX PIN 3 : TX

PIN 4 : DTR PIN 4 : DTR

PIN 5 : SG PIN 5 : SG

PIN 6 : DSR PIN 6 : DSR

PIN 7 : RTS PIN 7 : RTS

PIN 8 : CTS PIN 8 : CTS

PIN 9 : RI PIN 9 : RI

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 :
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
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.
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);
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
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.
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;
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 ;
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;
procedure Tfrmpctopc.btexitClick(Sender: TObject);
begin
comserial.close; //menutup port com
application.Terminate; //keluar dari program
end;

end.
VIII. TAMPILAN

Gambar1. Tx dan Rx menggunakan baudrate 9600


Gambar2. Baudrate Tx 9600, Rx 4800

Gambar3. Baudrate Tx 9600, Rx 14400


Gambar4. Baudrate Tx 4800, Rx 4800

Gambar5. Baudrate Tx 14400, Rx 9600


Gambar6. Databit Tx 8, Rx 8

Gambar7. Databit Tx 8, Rx 7
Gambar8. Databit Tx 8, Rx 6

Gambar9. Databit Tx 8, Rx 5
Gambar10. Databit Tx 7, Rx 8

Gambar11. Databit Tx 6, Rx 8
Gambar12. Databit Tx 5, Rx 8

Gambar13. Databit Tx 5, Rx 5
Gambar14. Databit Tx 6, Rx 6

Gambar15. Databit Tx 7, Rx 7
IX. TAMPILAN

Flowchart Program Anakan


Flowchat program penerimaan Flowchart Program Tombol Setup
pesan Tfrmpctopc.btsetupClick

comserial.showsetupdialog;

end;

Flowchart Program Tombol Exit

Flowchart Program pengiriman


pesan / tombol “send”
Tfrmpctopc.btsendClick

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

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

ubahkekoreksi2(str);

end

Flowchart Program Saat Form


dibuka

25