LAPORAN
LAPORAN
PRAKTIKUM KOMUNIKASI DATA
PRAKTIKUM KOMUNIKASI DATA
““PDU
PDU
””Disusun Oleh :
Disusun Oleh :
Eva Novianingsih (04)
Eva Novianingsih (04)
TT-2A
TT-2A
PROGRAM STUDI TEKNIK
PROGRAM STUDI TEKNIK TELEKOMUNI
TELEKOMUNIKASI
KASI
JURUSAN TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
POLITEKNIK NEGERI MALANG
2014
2014
I.
I. TUJUAN KHUSUSTUJUAN KHUSUS 1.
1. Mampu menghubungkan HP dengan komputerMampu menghubungkan HP dengan komputer 2.
2. Mampu mengkonversi teks yang dikirim dan diterima ke Mampu mengkonversi teks yang dikirim dan diterima ke formatformat Protocol Data Protocol Data Unit (PDU)
Unit (PDU)
II.
II. TUJUAN UMUMTUJUAN UMUM 1.
1. Dapat melakukan instalasi untuk komponen yang tidak terdapat pada DelphiDapat melakukan instalasi untuk komponen yang tidak terdapat pada Delphi (MSCOMM)
(MSCOMM) 2.
2. Dapat membuat program untuk komunikasi antara komputer ke Handphone.Dapat membuat program untuk komunikasi antara komputer ke Handphone. 3.
3. Dapat mengirimkan dan menerima SMS (Dapat mengirimkan dan menerima SMS (Sort Message ServiceSort Message Service) dari komputer.) dari komputer. 4.
4. Dapat merubah format teks ke dalam formatDapat merubah format teks ke dalam format Protocol Data Unit Protocol Data Unit ( ( PDU PDU ) dengan) dengan program Delphi
program Delphi
III.
III. ALAT DAN BAHANALAT DAN BAHAN 1.
1. Program Delphi versi 6 ke atasProgram Delphi versi 6 ke atas 2.
2. Komponen serial (Komponen serial ( MSCOMM MSCOMM )) 3.
3. Handphone (Handphone (SiemenSiemens types type M35,C45 M35,C45 atau atau A55 A55) ) 1 1 buahbuah 4.
4. Kabel dataKabel data 5.
IV. DASAR TEORI
A. Protocol Data Unit (PDU)
Format data yang diterima atau yang dikirim handphone berupa Protocol Data Unit ( PDU ), PDU yang diterima dari handphone berbeda dengan PDU yang di kirim, namun tetap menggunakan aturan yang sama. Perbedaannya terutama pada field yang dikandung, baik nilai maupun fungsinya. Untuk format PDU yang dikirim memiliki jumlah header
sebanyak 8 bagian. Berikut ini ke delapan header dari PDU yang dikirimkan : Nomor SMS Center (tergantung operator) Tipe SMS/SM S SUBMIT (8 bit) Nomor Referensi SMS (8 bit) Nomor Ponsel Penerima (targantung operator) Bentuk SMS (8 bit) Skema Encoding Data I/O (7 bit / 8 bit) Jangka Waktu Sebelum SMS Expired (8 bit) Isi SMS (jumlah bit tergantung pada jumlah karakter
yang dikirim) Gambar 1. Header Protocol PDU beserta ukuran bit
1. Nomor SMSCenter
Header pertama ini terbagi atas tiga subheader,yaitu:
a. Jumlah pasangan heksadesimal SMS-Center dalam bilangan heksa. b. Kode nasional/internasional untuk negara Indonesia
Untuk national , kode subheader-nya adalah 81 Untuk international, kode subheader-nya adalah 91
c. Nomor SMS-Center -nya sendiri dalam pasangan heksa dibalik-balik
Jika tertinggal satu angka heksa yang tidak memiliki pasangan, angka tersebut akan dipasangkan dengan F didepannya.
Contoh: nomor SMS-Center Indosat-IM3 dapat ditulis dengan dua cara sebagai berikut:
Cara 1 (nasional):
0855000000 diubah menjadi:
a. 0855000000 : ada 5 pasang nomor smsc b. 81 : 1 pasang
c. 80-55-00-00-00: 5 pasang nomor smsc yang sudah dibalik perpasangan Digabung menjadi: 06818055000000
Total pasangan SMSC dank ode nasional 6 pasang
Cara 2 (internasional):
a. 62855000000F : ada 6 pasang b. 91 : ada 1 pasang
c. 26-58-05-00-00-F0 : 6 pasang smsc yang sudah dibalik perpasangan Digabung menjadi 07912658050000F0
Berikut beberapa contoh nomor SMS-Center operator seluler di Indonesia. Tabel 1.1 Nomor SMSCenter dengan Cara 1
NO. Operator Seluler SMS-Center Kode PD U
1. Telkomsel 0811000000 06818011000000
2. Satelindo 0816124 0581806121F4
3. Excelcom 0818445009 0681081440590
4. Indosat-IM3 0855000000 06818055000000
Tabel 1.2 Nomor SMSCenter dengan cara 2 NO. Operator Celuler SMS-Center Kode PDU
1. Telkomsel 62811000000 07912618010000F0
2. Satelindo 62816124 059126181642
3. Excelcom 62818445009 07912618485400F9
4. Indosat-IM3 62855000000 07912658050000F0
2. Tipe SMS (SMS SUBMIT)
Tipe SMS SUBMIT = 11 (kode pengiriman SMS). 3. Nomor Referensi SMS
Nomor referensi dibiarkan 0. Jadi, bilangan heksanya 00. Selanjutnya akan diberikan sebuah nomor referensi otomatis oleh ponsel/alat SMS-gateway.
4. Nomor Ponsel Penerima
Sama seperti menulis PDU Header untuk SMS-Center , header ini juga terbagi atas tiga bagian, yaitu:
a. Jumlah bilangan desimal nomor ponsel yang dituju dalam bilangan heksa. b. Kode nasional/internasional untuk negara Indonesia
c. Untuk nasional, kode subheader-nya: 81
d. Untuk internasional, kode subheader-nya: 91.
e. Nomor ponsel yang dituju dalam pasangan heksa dibalik-balik.
Jika tertinggal satu angka heksa yang tidak memiliki pasangan, angka tersebut dipasangkan dengan huruf F didepannya.
Contoh:
Nomor ponsel yang dituju 628129573337 maka dapat ditulis dengan dua cara , yaitu sebagai berikut :
Cara 1 (nasional): 08129573337 diubah menjadi:
a. 0B: ada 11 angka (jumlah bilangan desimal dari nomor tujuan) b. 81 (subheader nasional)
c. 80-21-59-37-33-F7 (penggabungan nomor tujuan yang dibalik, apabila tertinggal
1 angka maka ditambahkan huruf „F‟ didepanya)
Digabung menjadi:0B818021593733F7
Cara 2: 628129573337 diubah menjadi:
a. 0C: ada 12 angka (jumlah bilangan desimal dari nomor tujuan) b. 91 (subheader nasional)
c. 26-81-92-75-33-F7 (penggabungan nomor tujuan yang dibalik, apabila tertinggal 1 angka maka ditambahkanhuruf „F‟ didepanya)
Digabung menjadi:0C91261892753373
5. Bentuk SMS
0→ 00→ dikirim sebagai SMS 1→ 01→ dikirim sebagai telex 2→ 02→ dikirim sebagai fax
Dalam hal ini, pengiriman dalam bentuk SMS tentu saja memakai 00. 6. Skema Encoding Data I/O
Ada dua skema, yaitu:
a. Skema 7 bit→ ditandai dengan angka 0→ 00
b. Skema 8 bit→ ditandai dengan angka lebih besar dari 0 yang diubah ke heksa.
Kebanyakan ponsel/SMS Gateway yang ada di pasaran sekarang menggunakan skema 7 bit sehingga kita menggunakan kode 00.
Jika bagian ini di-skip, berarti kita tidak membatasi waktu berlakunya SMS, sehingga tidak perlu memberikan nilai apapun di PDU headernya. Selain dengan cara tersebut juga dapat dilakukan dengan memberikan nilai heksa „FF‟ yang juga berarti memberikan waktu validitas maksimum. Sementara itu, jika kita mengisinya dengan suatu bilangan integer yang kemudian diubah ke pasangan heksa tertentu, bilangan yang kita berikan tersebut akan mewakili jumlah waktu validitas SMS tersebut.
8. Isi SMS
Header terdiri atas dua subheader, yaitu: a. Panjang isi (jumlah huruf dari isi)
Misalnya: untuk kata “hello” → ada 5 huruf→ 05 b. Isi berupa pasangan bilangan heksa
Ponsel/SMS Gateway berskema encoding 7 bit berarti jika kita mengetikkan suatu huruf dari keypad-nya, kita telah membuat 7 angka I/O berturutan.
Ada dua langkah yang harus kita lakukan untuk mengkonversi isi SMS, yaitu: Langkah pertama : mengubah menjadi kode 7 bit.
Langkah kedua : mengubah kode 7 bit menjadi 8 bit, yang diwakili oleh pasangan heksa.
Contoh: untuk kata “hello” Langkah pertama: Bit 7 1 h 110 1000 e 110 0101 l 110 1100 l 110 1100 o 110 1111
langkah kedua: E 8 h 1 110 1000 3 2 e 00 11 0010 1 9 B l 100 1 1011 00 F D l 1111 1101 100 0 6 o 0000 0 110 1111
Oleh karena total 7 bit x 5 huruf = 35 bit, sedangkan yang kita perlukan adalah 8 bit x 5 bit = 40 bit, maka diperlukan 5 bitdummy yang diisi dengan bilangan 0.
Setiap 8 bit mewakili suatu pasangan heksa. Setiap 4 bit mewakili suatu angka heksa, tentu saja karena secara logika 24= 16. Dengan demikian,maka kata “hello” hasil konversinya menjadiE8329BFD06.
Setelah semua header terbentuk, maka selanjutnya adalah menggabungkan semua header yang terbentuk, Masing-masing header maupun subheader untuk mengirim SMS diatas harus digabungkan menjadi sebuah PDU yang lengkap.
Contoh: jika mengirimkan kata “hello” ke ponsel nomor 628129573337 lewat SMS-Center Indosat-M3, denagan waktu valid maksimum, maka PDU lengkapnya adalah :
V. DISKRIPSI PROGRAM
Program ini dibuat agar mahasiswa dapat membuat program untuk komunikasi antara komputer dengan HP menggunakan MSCOMM dengan menggunakan format PDU. Program ini juga mempermudah kita untuk mengirimkan dan menerima SMS dari komputer. VI. FLOWCHART FLOWCHART START Pilih Metode Konversi Nasional Subheader dan Format SMS Center Nasional Subheader dan Format SMS Center Internasional Pilih Operator Seluler Masukkan Nomor HP Tujuan Masukkan Pesan Teks Generate Kode PDU FINISH Teks ke PDU START
Ambil PDU dari Operator pada
PDU lengkap Ambil Hasil Konversi PDU
Lengkap
Ambil PDU dari Nomor HP pada PDU Lengkap
Ambil PDU dari pesan teks pada PDU Lengkap Rekonvert masing-masing PDU FINISH PDU ke Teks
VII. LISTING PROGRAM
unit Unpdu;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Label1: TLabel; Panel1: TPanel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edhasil: TEdit; Edno: TEdit; Edhasil2: TEdit; Label6: TLabel; Label8: TLabel; Label9: TLabel; Memo2: TMemo;
btkonversi: TButton; bthapus: TButton; btexit: TButton; Memo3: TMemo; edsms: TEdit; Memo1: TMemo; Label7: TLabel; Memo4: TMemo; btkonversi2: TButton;
// procedure Label6Click(Sender: TObject); // procedure Edhasil2Change(Sender: TObject); // procedure btexitClick(Sender: TObject); // procedure EdsmsChange(Sender: TObject); // procedure Label2Click(Sender: TObject); // procedure EdhasilChange(Sender: TObject);
procedure btkonversiClick(Sender: TObject); // procedure EdnoChange(Sender: TObject);
procedure bthapusClick(Sender: TObject); procedure btexitClick(Sender: TObject);
procedure btkonversi2Click(Sender: TObject); procedure Memo1Change(Sender: TObject); // procedure Memo1Change(Sender: TObject);
private
{ Private declarations } public
{ Public declarations } end; var Form1: TForm1; t_biner,t_heksa:string; implementation {$R *.dfm} procedure kebiner1(t_Hexa:string); var data : string; begin data := t_hexa;
if data = '0' then data :='000'; if data = '1' then data :='001'; if data = '2' then data :='010'; if data = '3' then data :='011'; if data = '4' then data :='100'; if data = '5' then data :='101'; if data = '6' then data :='110'; if data = '7' then data :='111'; if data = '8' then data :='1000';
t_biner := data; end;
procedure kebiner2 (t_Hexa:string); var
data : string; begin
data := t_hexa;
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'; t_biner := t_biner+data;
end;
procedure keheksa (data:string); var
temp : string; begin
temp :=data;
if temp = '0000' then temp :='0'; if temp = '0001' then temp :='1'; if temp = '0010' then temp :='2'; if temp = '0011' then temp :='3'; if temp = '0100' then temp :='4'; if temp = '0101' then temp :='5'; if temp = '0110' then temp :='6'; if temp = '0111' then temp :='7'; if temp = '1000' then temp :='8'; if temp = '1001' then temp :='9'; if temp = '1010' then temp :='A'; if temp = '1011' then temp :='B'; if temp = '1100' then temp :='C'; if temp = '1101' then temp :='D'; if temp = '1110' then temp :='E'; if temp = '1111' then temp :='F'; t_heksa := temp+t_heksa;
procedure sms_center(data:string); var jumlah_pasangan,a:integer;
nomer,kode,temp:string; begin
a:=1;
if length(data) mod 2=1 then data:=data+'F'; nomer:=data;
temp:=data;
if nomer [1]='0' then kode:='81' else kode:='91'; jumlah_pasangan:=length(data)div 2+1; while(a<=length(data)+2) do begin nomer[a+1]:=temp[a]; nomer[a]:=temp[a+1]; a:=a+2; end; form1.Edhasil.Text:='0'+inttostr(jumlah_pasangan)+kode+nomer; end; procedure nomer_penerima(data:string); var a:integer; nomer,kode,temp,jumlah_nomer:string; begin a:=1;
nomer:=data;
jumlah_nomer:=inttohex(length(data),1); if length(data)mod 2=1 then data:=data+'F'; 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);
if length(jumlah_kata)<2 then jumlah_kata:='0'+jumlah_kata; pesan:=data;
for a:=length(pesan) downto 1 do begin
hexa:=inttohex(ord(pesan[a]),2); kebiner1(hexa[1]);
kebiner2(hexa[2]); temp:=temp+t_biner; end;
if length(temp) mod 8 <>0 then begin b:=length(pesan); if b>8 then b:=b mod 8; for a:=1 to b do begin temp:='0'+temp; end; end; b:=0;temp2:='';hexa:='';
for a:=length(temp) downto 1 do begin temp2:=temp[a]+temp2; inc(b); if b>=4 then begin b:=0; keheksa(temp2); inc(c); temp2:='';
if c>=2 then begin hexa:=hexa+t_heksa; c:=0; t_heksa:=''; end; end; end; form1.memo2.Text:=jumlah_kata+hexa; end;
procedure TForm1.btkonversiClick(Sender: TObject); const tipe_sms='11'; no_ref='00'; bentuk_sms='00'; //sms encoding='00'; //7bit expired='FF'; //maksimum begin sms_center(edsms.Text); nomer_penerima(edno.Text); text2pdu(memo1.Text);
memo3.Text:=edhasil.Text+tipe_sms+no_ref+edhasil2.Text+bentuk_sms+encoding+expired+m emo2.Text;
end;
//procedure Tform1.edsmsKeyPress(Sender: TObject; var Key: Char); //begin // if key=chr(vk_return) then // begin // konversiClick(self); // end; //end;
procedure TForm1.bthapusClick(Sender: TObject); begin edsms.Clear; edhasil.Clear; edno.Clear; edhasil2.Clear; memo1.Clear; memo2.Clear; end;
//procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char); //begin // if key=chr(vk_return) then // begin // Konversiclick(self); // key:=chr(vk_back); // end; //end;
procedure TForm1.btexitClick(Sender: TObject); begin
Application.Terminate end;
procedure TForm1.btkonversi2Click(Sender: TObject); const tipe_sms='11'; no_ref='00'; bentuk_sms='00'; //sms encoding='00'; //7bit expired='FF'; //maksimum begin memo4.Text:=edsms.Text+tipe_sms+no_ref+edno.Text+bentuk_sms+encoding+expired+memo 1.Text;
end;
procedure TForm1.Memo1Change(Sender: TObject); begin
end;
IX. KESIMPULAN
1. Kita dapat mempelajari bahasa pemrograman Delphi antara pc to HP dengan menggunakan MSCOMM dengan format PDU
2. Kita dapat mengetahui bagian-bagian atau header untuk mengirim maupun menerima pesan seperti Nomor SMS Center Tipe SMS, Nomor Referensi SMS, Nomor Ponsel
Penerima, Bentuk SMS, Skema encoding Data I/O, jangka waktu sebelum SMS expired, dan isi SMS.