LAPORAN PRAKTIKUM Pak Sarosa (Alisha)
LAPORAN PRAKTIKUM Pak Sarosa (Alisha)
Dosen:
Dr. M. Sarosa, Dipl. Ing., MT
Disusun oleh :
Nama : Alisha Gita Gumilang
NIM : 1441160028
No. Absen : 01
Kelas : D4-JTD-3B
PENDAHULUAN
1.1 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
1.2 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
1.3 Alat dan Bahan
Program Delphi versi 6 keatas
Komponen komunikasi serial (CPORT)
Konektor DB9 female 2 buah
Kabel (secukupnya)
Komputer 2 unit
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.
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
12. Buka DsgnCport7 pada folder file cport uncrompress ditempatkan, disini
ditempatkan pada C:\Program Files\Borland\Delphi7\comserial
13. Cek di program delphi apakah komponen sudah terinstall, jika proses
install sukses akan tampak seperti gambar dibawah.
interface
uses
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit1: TEdit;
Label3: TLabel;
edsms: TEdit;
Label4: TLabel;
edhasil: TEdit;
Label5: TLabel;
edno: TEdit;
Label6: TLabel;
edhasil2: TEdit;
Button4: TButton;
Button5: TButton;
Comserial: TComPort;
Button6: TButton;
Edit2: TEdit;
Edit3: TEdit;
Label7: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
t_biner,t_biner2,t_heksa,t_heksa1,t_heksa2:String;
t_desimal,t_temp:Integer;
implementation
{$R *.dfm}
var
data : string;
begin
data:= t_hexa;
t_biner :=data;
end;
var
data :string;
begin
data:= t_hexa;
t_biner := t_biner+data;
end;
var
temp : string;
begin
temp :=data;
t_heksa1 := temp;
end;
var
temp :string;
begin
temp :=data;
t_heksa := temp+t_heksa;
t_heksa2:= temp;
end;
var
temp : string;
begin
temp :=data;
end;
var jumlah_pasangan,a:integer;
nomer,kode,temp:string;
begin
a:= 1;
nomer:= data;
temp:=data;
while (a<=length(data)+2) do
begin
nomer[a+1]:=temp[a];
a:= a+2;
end;
form1.Edhasil.Text:= '0'+inttostr(jumlah_pasangan)+kode+nomer;
end;
var
a:integer;
nomer,kode,temp,jumlah_nomer:string;
begin
a:=1;
nomer:=data;
jumlah_nomer:=inttohex(length(data),1);
nomer:=data;
temp:=data;
if nomer [1]= '0' then kode:='81' else kode:='91';
while (a<=Length(data)+2) do
begin
nomer[a+1]:=temp[a];
nomer[a]:=temp[a+1];
a:=a+2;
end;
form1.Edhasil2.Text:='0'+jumlah_nomer+kode+nomer;
end;
procedure text2pdu(data:string);
var
jumlah_kata,pesan,hexa,temp,temp2:string;
a,b,c:integer;
begin
b:=0; c:=0;
jumlah_kata:= inttohex(length(data),1);
pesan:= data;
begin
hexa:=inttohex (ord(pesan[a]),2);
kebiner1(hexa[1]);
kebiner2(hexa[2]);
temp:=temp+t_biner;
end;
begin
b:=length(pesan);
for a:= 1 to b do
begin
temp:='0'+temp;
end;
end;
begin
temp2:= temp[a]+temp2;
inc(b);
if b>=4 then
begin
b:=0;
keheksa2(temp2);
inc(c);
temp2:='';
if c>=2 then
begin
hexa:=hexa+t_heksa;
c:=0;
t_heksa:='';
end;
end;
end;
form1.edit3.Text:=jumlah_kata+hexa;
end;
//------- PROCEDURE PDU TO TEXT -------------
var a:integer;
nomer,temp,kata:string;
begin
a:=5;
nomer:= data;
temp:=data;
while (a<=length(data)) do
begin
nomer[a+1]:=temp[a];
a:= a+2;
end;
kata:= '';
form1.edsms.Text := kata;
end;
var
a:integer;
nomer,temp,jumlah_nomer,kata:string;
begin
a:=5;
nomer:=data;
jumlah_nomer:=inttohex(length(data),1);
nomer:=data;
temp:=data;
while (a<=Length(data)) do
begin
nomer[a+1]:=temp[a];
nomer[a]:=temp[a+1];
a:=a+2;
end;
kata:= '';
form1.Edno.Text:=kata;
end;
procedure pdu2text(pdu:string);
var
data,hasil,temp,temp2,temp3,biner:string;
desimal,jumlah_karakter,jumlah_ascii7,dummy_bit,a,b,c,d,i:integer;
begin
kedesimal(data[1]);
a:=t_desimal;
kedesimal(data[2]);
b:=t_desimal;
jumlah_karakter:=(16*a)+b;
data:=copy(data, 3, length(pdu));
temp:=data;
c:=1;
d:=0;
while(c<=length(data)) do
begin
data[c+1]:=temp[length(data)-d];
data[c]:=temp[length(data)-(d+1)];
c:=c+2;
d:=d+2;
end;
begin
kebiner2(data[i]);
biner:=biner + t_biner2;
end;
dummy_bit:=length(biner) mod 7;
delete(biner, 1, dummy_bit);
jumlah_ascii7:=length(biner) div 7;
c:=0;
d:=1;
while (c<jumlah_ascii7) do
begin
temp:=copy(biner, d, 7);
temp2:=copy(temp, 1, 3);
keheksa1(temp2);
temp3:=copy(temp, 4, 4);
keheksa2(temp3);
kedesimal(t_heksa1);
a:=t_desimal;
kedesimal(t_heksa2);
b:=t_desimal;
desimal:=(16*a)+b;
hasil:=hasil + chr(desimal);
d:=d+7;
c:=c+1;
end;
temp:=hasil;
c:=1;
d:=0;
while(c<=length(hasil)) do
begin
hasil[c]:=temp[length(hasil)-d];
c:=c+1;
d:=d+1;
end;
t_heksa:='';
t_biner:='';
end;
const
tipe_sms='11';
no_ref='00';
bentuk_sms='00'; //sms
encoding='00'; //7bit
begin
sms_center (edsms.Text);
nomer_penerima(edno.Text);
text2pdu(edit1.Text);
end;
begin
smscenter (edhasil.Text);
nomerpenerima (edhasil2.Text);
pdu2text (edit1.Text);
edit2.Text:=edsms.Text+ edno.Text;
end;
begin
edhasil.Clear;
edhasil2.Clear;
edit1.Clear;
edit2.Clear;
edit3.Clear;
end;
var
i,n:integer;
str:string;
begin
Str := memo1.Text;
Comserial.WriteStr(Str);
memo1.Lines.Add('pengirim : '+memo1.Text);
end;
var
begin
Comserial.ReadStr(Str, Count);
end;
begin
comserial.Open;
end;
begin
comserial.ShowSetupDialog;
end;
begin
comserial.Close;
application.Terminate;
end;
end.
2.2 FLOWCHART
2.3 DESAIN PROGRAM
PENUTUP
3.1 Kesimpulan