LAPORAN PRAKTIKUM KOMUNIKASI DATA KOMUNIKASI SERIAL ANTARA PC KE PC oleh: ARIF FATHONI .A 2B-05-0931130030 PROGRAM STUDI TEKNIK TELEKOMUNIKASI JURUSAN TEKNIK ELEKTRO POLITEKNIK NEGERI MALANG 2011 I. Tujuan Khusus Mampu menghubungkan 2 PC untuk melakukan komunikasi lewat serial RS 232. Memahami sistem pengkabelan untuk menghubungkan 2 PC melalui port serial. Mengetahui adanya pulsa startbit, data bit(word), stopbit, evenparity, dan oddparity. Mengetahui setting-setting untuk melakukan komunikasi serial antara PC to PC (Boutrate, Data Bit, Parity, Flowcontrol). II. Tujuan Umum Memahami komponen Delphi lebih lanjut. Dapat melakukan instalasi komponen tambahan yang tidak terdapat pada Delphi (Cport). Mampu membuat program untuk komunikasi antara PC ke PC. 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 perelemen. 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 konverter S E N D E R . . 0 0 . Paralel/serial konverter 8 bit dikirim satu per elemen 1 1 0 1 0 0 1 0 Dibutuhkan 1 line mengirimkan 8 bit . . 0 0 . R E C E I V E 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 Start Stop 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. +15 Volt Logic ‘0’ Start 0 Volt 1 0 0 0 0 0 1 0 Stop Logic ‘1’ Gambar 3. Gelombang informasi komunikasi serial Sumber : Forum Komunitas Teknisi Ponsel Indonesia -15 Volt 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 masingmasing pin. Fungsi Pin Out TX RX CTS CD Tabel 1. fungsi dari masing-masing pin keluaran Keterangan Fungsi Transmit Untuk pengiriman data serial Data Receive Untuk penerimaan data serial Data Clear To Digunakan untuk memberitahukan bahwa Send modem siap untuk melakukan pertukaran data Carrier Saat modem mendeteksi suatu ‘carrier’ Detect dari modem lain (dari tempat lain) maka DSR DTR RTS RI Data Set Ready Data Terminal Ready Request To Send Ring Induktor sinyal ini akan diaktifkan Memberitahukan UART bahwa modem siap untuk melakukan komunikasi (Link) Kebalikan dari DSR, untuk memberitahukan bahwa UAT siap untuk melakukan hubungan komunikasi Sinyal untuk menginformasikan modem bahwa UART siap untuk melakukan pertukaran data Akan aktif jika modem mendeteksi adanya sinyal dering dari saluran telepon Untuk konfigurasi pin out antara DB9 (female) dengan DB9 (male) yang lain ditunjukan pada gambar berikut : TX PIN 1 : CD RX 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 Gambar 13. Tata letak komponen 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 FLOWCHART PROGRAM PC to PC start var str:string; //variabel menyimpan data yang diterima begin Comserial.ReadStr(str, count); menerima.Text:=menerima.Text + str; end; start var str:string; begin str := Edinputteks.Text; Comserial.WriteStr(str); mengirim.Lines.Add('pengirim : '+ Edinputteks.Text); end; PROGRAM PC to PC ASCII start var i,n:integer; str:string; begin Str:=input.Text; com.WriteStr(Str); snd.Lines.Add('ILA : "' + input.Text + '"'); input.Clear; end; start var str:string; i, n:integer; asc:byte; begin com.ReadStr(Str, Count); rcv.Text:=rcv.Text + str; rcv.Lines.Add(''); n:=length(str); for i:=1 to n do begin asc:=Ord(str[i]); ascii.Text:=ascii.Text + inttostr(asc) + '; '; end; end; Listing Program PC to PC unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, CPort, StdCtrls; type TFrmpctopc = class(TForm) mengirim: TMemo; menerima: TMemo; Label2: TLabel; btsend: TButton; btsetup: TButton; btexit: TButton; Edinputteks: TEdit; 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; implementation {$R *.dfm} procedure TFrmpctopc.ComserialRxChar(Sender: TObject; Count: Integer); var str:string; //variabel menyimpan data yang diterima begin Comserial.ReadStr(str, count); menerima.Text:=menerima.Text + str; end; procedure TFrmpctopc.FormCreate(Sender: TObject); begin Comserial.Open; end; procedure TFrmpctopc.btsendClick(Sender: TObject); var str:string; begin str := Edinputteks.Text; Comserial.WriteStr(str); mengirim.Lines.Add('pengirim : '+ Edinputteks.Text); 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. Listing Program PC to PC dengan kode ASCII unit communication; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, XPMan, StdCtrls, CPort; type Tfrmpctopc = class(TForm) comserial: TComPort; Kirim: TLabel; Terima: TLabel; mekirim: TMemo; meterima: TMemo; btsend: TButton; btsetup: TButton; btexit: TButton; edinputteks: TEdit; XPManifest1: TXPManifest; procedure comserialRxChar(Sender: TObject; Count: Integer); procedure FormCreate(Sender: TObject); procedure btsendClick(Sender: TObject); procedure btsetupClick(Sender: TObject); procedure btexitClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; var frmpctopc: Tfrmpctopc; implementation {$R *.dfm} procedure Tfrmpctopc.comserialRxChar(Sender: TObject; Count: Integer); var str:string; //Variabel menyimpanan data yang diterima i,n:integer; asc:byte; begin Comserial.ReadStr(Str, Count); // meterima.Text:=meterima.Text + str; n:=length(str); meterima.lines.Add(str); for i:=1 to n do begin asc:=Ord(str[i]); meterima.Lines.Add(str[i] + ' = '+inttostr(asc)); end end; procedure Tfrmpctopc.FormCreate(Sender: TObject); begin Comserial.Open; end; procedure Tfrmpctopc.btsendClick(Sender: TObject); var i,n:integer; str:string; begin Str := edinputteks.Text; Comserial.WriteStr(Str); mekirim.Lines.Add('You : '+edinputteks.Text ); edinputteks.Text:=''; 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; procedure Tfrmpctopc.FormClose(Sender: TObject; var Action: TCloseAction); begin comserial.close; //menutup port com application.terminate; //keluar dari program end; end. V. Penjelasan Jalannya Program Program pertama adalah komunikasi antara PC to PC menggunakan kabel RS 232 yang berfungsi untuk menghubungkan kedua PC. Dengan program PC to PC yang telah dijalankan akan Nampak hasil seperti dibawah : Tampilan hasil program setelah di inputkan data karakter : Program setelah di inputkan diproses lebih lanjut dengan meng-klik button send kemudian di pihak penerima akan muncul data seperti yang di masukkan pada pengirim. Seperti tampilan di atas. Program kedua yaitu Komunikasi PC ke PC dengan kode ASCII. Program yang ditampilakn pada program kedua ini terdapat sedikit perbedaan , yaitu pada data yang diterima yaitu disertai kode ascii selain dari data aslinya. Setelah di run hasilnya seperti di bawah : Tampilan program setelah diketikkan suatu karakter : KESIMPULAN Penggunaan program Delphi lebih lanjut adalah dengan menggunakan komunikasi serial antara PC to PC dan dengan aplikasi menggunakan ASCII di penerima. Penggunaan Cport disini untuk pengaplikasian jalannya program PC to PC. Kabel RS 232 digunakan sebagai konektor dalam komunikasi serial yang dilakukan.