Anda di halaman 1dari 21

LAPORAN PRAKTIKUM IV

PRAKTIKUM KOMUNIKASI DATA

KOMUNIKASI KOMPUTER DENGAN HANDPHONE

(PEMANFAATAN PROTOCOL DATA UNIT)

Dosen:

Dr. M. Sarosa, Dipl. Ing., MT

Disusun oleh :

Nama : Mamluatus Saadah

NIM : 1541160078

No. Absen : 15

Kelas : 2C JTD

PROGRAM STUDI TEKNIK TELEKOMUIKASI


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
2017
BAB I
PENDAHULUAN

1.1 Capaian Pembelajaran


Mahasiswa mampu menghubungkan handphone dengan komputer.
Mahasiswa mampu mengkonversi teks yang dikirim dan diterima ke format Protokol
Data Unit (PDU) atau sebaliknya secara manual.
Mahasiswa dapat melakukan instalasi untuk komponen yang tidak terdapat pada Delphi
(MSCOMM).
Mahasiswa dapat membuat program untuk komunikasi antara computer ke Handphone.
Mahasiswa dapat mengirimkan dan menerima SMS (Short Message Service) dari
computer.
Mahasiswa dapat membuat program untuk mengubah format teks ke dalam format
Protocol Data Unit (PDU dengan Bahasa pemrograman Delphi.

1.2 Alat dan Bahan


1) Program Delphi versi 6 ke atas
2) Komputer 1 unit
3) Komponen Serial (MSCOMM)
4) Handphone (Siemens type M35, C45 atau A55) 1 buah
5) Kabel data

1.3 Teori Penunjang


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 Tipe Nomor Nomor Bentuk Skema Jangka Isi SMS (jumlah bit
SMS SMS/SM Referensi Ponsel SMS (8 Encoding Waktu tergantung pada
Center S SMS (8 Penerima bit) Data I/O Sebelum jumlah karakter yang
(tergantung SUBMIT bit) (targantung (7 bit / 8 SMS dikirim)
Expired (8
operator) (8 bit) operator) bit)
bit)
Gambar 1. Header Protocol PDU beserta ukuran bit
1. Nomor SMS Center
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 Total pasangan SMSC dank ode
nasional 6 pasang
b. 81 : 1 pasang
c. 80-55-00-00-00: 5 pasang nomor smsc yang sudah dibalik perpasangan
Digabung menjadi: 06818055000000
Cara 2 (internasional):
a. 62855000000F : ada 6 pasang Total 7 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 SMS Center dengan Cara 1
NO Operator Seluler SMS-Center Kode PDU
.
1. Telkomsel 0811000000 06818011000000
2. Satelindo 0816124 0581806121F4
3. Excelcom 0818445009 0681081440590
4. Indosat-IM3 0855000000 06818055000000
Tabel 1.2 Nomor SMS Center 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 ditambahkan huruf 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.
7. Jangka Waktu Sebelum SMS Expired
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 bit dummy 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 menjadi E8329BFD06.
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 :07912658050000F011000C912618927533730000FF05E8329BFD06

BAB II
PEMBAHASAN

2.1 Perencanaan

Flowhart

2.2 Pembahasan
Pertama-tama yang dilakukan dalam membuat tampilan Komunikasi Serial
adalah melakukan identifikasi pada setiap fungsi-fungsi yang diperlukan. Identifikasi ini
dilakukan dengan mengedit pada menu Box Inspector sesuai dengan yang diinginkan
sehingga pada listing program akan muncul otomatis. 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.

2.3 Listing Program


unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
Tform1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
edsms: TEdit;
Edhasil: TEdit;
edno: TEdit;
Edhasil2: TEdit;
Button1: TButton;
Button4: TButton;
Button3: TButton;
Edit5: TEdit;
Label1: TLabel;
Edit6: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit7: TEdit;
Edit8: TEdit;
P: TLabel;
Label8: TLabel;
Label9: TLabel;
T: TLabel;
Label10: TLabel;
Label11: TLabel;
T2P: TButton;
P2T: TButton;
Button2: TButton;
Label12: TLabel;
Label13: TLabel;
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure T2PClick(Sender: TObject);
procedure P2TClick(Sender: TObject);
procedure Button2Click(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;
end;

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.Button3Click(Sender: TObject);
begin
edhasil.Clear;
edhasil2.Clear;
memo1.Clear;
memo2.Clear;
Edit1.Clear;
Edit3.Clear;
Edit7.Clear;
Edit2.Clear;
Edit4.Clear;
Edit8.Clear;
end;

procedure Tform1.Button4Click(Sender: TObject);


const
tipe_sms='3';
no_ref='0';
bentuk_sms='0';
encoding='0';
expired='1515';
batas=' ';
begin
sms_center(edsms.Text);
nomer_penerima(edno.Text);
text2pdu(memo1.Text);
Edit6.Text:=edsms.Text+tipe_sms+no_ref+edno.Text+bentuk_sms+encoding+expired+m
emo1.Text;
end;
procedure Tform1.Button1Click(Sender: TObject);
const
tipe_sms='11';
no_ref='00';
bentuk_sms='00';
encoding='00';
expired='FF';
batas=' ';

begin
sms_center(edsms.Text);
nomer_penerima(edno.Text);
text2pdu(memo1.Text);

Edit5.Text:=edhasil.Text+tipe_sms+no_ref+edhasil2.Text+bentuk_sms+encoding+expire
d+memo2.Text;
end;

procedure Tform1.T2PClick(Sender: TObject);


const
tipe_sms='11';
no_ref='00';
bentuk_sms='00';
encoding='00';
expired='FF';
batas=' ';

begin
sms_center(edsms.Text);
nomer_penerima(edno.Text);
text2pdu(memo1.Text);
Edit1.Text:=edhasil.Text;
Edit3.Text:=edhasil2.Text;
Edit7.Text:=Memo2.Text;
end;

procedure Tform1.P2TClick(Sender: TObject);


begin
sms_center(edsms.Text);
nomer_penerima(edno.Text);
text2pdu(memo1.Text);
Edit2.Text:=edsms.Text;
Edit4.Text:=edno.Text;
Edit8.Text:=Memo1.Text;
end;

procedure Tform1.Button2Click(Sender: TObject);


begin
form1.Close;
end;
end.

2.4 Desain Program


Selanjutnya adalah mengisikan SMS Centre, Nomor Penerima, dan Isi Pesan pada
kolom yang telah tersedia. Selanjutnya klik PDU to Text dan klik TEXT to PDU maka
akan muncul hasil konversi dari SMS Centre, Nomor Penerima, Isi Pesan, dan hasil
konversi dari PDU ke TEXT setelah digabungkan serta hasil konversi dari TEXT ke PDU.
Tampilannya seperti berikut :
Hasil Konversi PDU to TEXT

Hasil Konversi TEXT ke PDU

2.5 Analisa
Dari hasil percobaan yang diperoleh, diketahui bahwa pada saat isi pesan
dimasukkan pada kolom memo hello dengan nomor SMS center 0855000000 dan
nomor penerima 08129573337 menghasilkan hasil konversi dari PDU ke TEXT yaitu
0681805500000011000B818021593733F70000FF05E8329BFD06. Sedangkan pada saan
dikolom memo dituliskan isi pesan hello dengan nomor penerima dan sms center yang
sama menghasilkan hasilkan konversi TEXT ke PDU yaitu
08550000003008129573337001515hello. Hasil tersebut merupakan gabungan dari
karakter yang dihasilkan ditambah dengan kode-kode tambahan.

2.6 Kesimpulan
Dari percobaan yang telah dilakukan, dapat disimpulkan bahwa :
1) Dengan menggunakan program Delphi7 dapat dilakukan pengubahan format data ke
Protocol Data Unit (PDU) atau PDU ke Text
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.

Anda mungkin juga menyukai