Anda di halaman 1dari 19

Nama : Reggi Samudra TEXT TO PDU

Kelas : TT - 2C
NIM : 1731130105

A. TUJUAN
 Mampu mengkonversi teks yang dikirim dan diterima ke format Protocol Data
Unit.
 Dapat merubah format teks ke dalam format Protocol Data Unit (PDU) dengan
program Delphi.

B. ALAT DAN BAHAN

 Program Delphi versi 6 keatas

 Komputer 1 buah

C. TEORI DASAR
1. PROTOCOL DATA UNIT (PDU)
Protocol Data Unit atau yang sering disebut dengan PDU merupakan bentuk
potongan potongan data pada setiap layer/lapisan yang berjalan pada layered model
(model referensi OSI dan TCP/IP), seperti yang kita ketahui pada model referensi
OSI terdapat tujuh lapisan (empat lapisan pada TCP/IP) setiap lapisan memiliki
fungsinya masing masing berurutan dari atas kebawah (enkapsulasi) dan dari bawah
ke atas (de-kapsulasi). Setiap lapisan memiliki format khusus yang
mengimplementasi-kan fitur dan fungsi pada protokol tersebut.
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
PDU pada model referensi OSI :

 Layer 1 (Physical Layer) : PDU nya adalah Bits.


 Layer 2 (Data Link Layer) : PDU nya adalah Frame.
 Layer 3 (Network Layer) : PDU nya adalah Packet.
 Layer 4 (Transport Layer) : PDU nya adalah Segments untuk TCP, datagram
untuk UDP.
 Layer 5 - 6 - 7 (Session - Presentation dan Application) : PDU nya adalah
Data.
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
PDU pada model TCP/IP :

 Bits, PDU yang digunakan untuk transmisi data biner melalui media.
 Layer 1 : Network Access layer, PDU nya adalah Frame.
 Layer 2 : Internet layer, PDU nya adalah Packet.
 Layer 3 : Transport layer, PDU nya adalah Segments.
 Layer 4 : Application Layer, PDU nya adalah Data.

Untuk format PDU yang dikirim memiliki jumlah header sebanyak 8 bagian.
Berikut ini ke delapan header dari PDU yang dikirimkan :

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
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
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 nomer smsc

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

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 4. 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 06810818445009
4. Indosat-IM3 0855000000 06818055000000
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105

Tabel 4. 2 Nomor SMS Center dengan Cara 2

NO. Operator Seluler 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 decimal 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 :
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
Cara 1 (nasional) : 08129573337 diubah menjadi :
a. 0B : ada 11 angka (jumlah bilangan decimal 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’ didepannya).
Digabung menjadi: 0B818021593733F7
Cara 2 (internasional) : 628129573337 diubah menjadi:
a. 0C: ada 12 angka (jumlah bilangan decimal dari nomor tujuan)
b. 91 (subheader internasional)
c. 26-81-92-75-33-73 (penggabungan nomor tujuan yang dibalik, apabila
tertinggal 1 angka maka ditambahkan huruf ‘F’ didepannya)
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
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,
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
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 berurutan.
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
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
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 1111
110

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, dengan waktu valid maksimum, maka PDU lengkapnya
adalah:
07912658050000F011000C912618927533730000FF05E8329BFD06
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
D. FLOWCHART

TEX KE PDU
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
E. LANGKAH PERCOBAAN
1. Buka program Delphi
2. Atur tata letak komponen-komponen tersebut pada form seperti Gambar 4.1.
dibawah ini!

Gambar 4.1. Tatak letak komponen

3. Ubah property komponen-komponen tersebut seperti pada Tabel 4.1.


Tabel 4.1. Setting property komponen
Komponen Property Setting
Caption Text to PDU
Form
Name Form1
Label1 Caption TEXT TO PDU
Label2 Caption Isi Pesan
Label3 Caption Hasil
Label4 Caption Sms Center
Label5 Caption Hasil
Label6 Caption No. Penerima
Label7 Caption Hasil
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
Label8 Caption Konversi Text to PDU
Label9 Caption Konversi PDU to Text
Memo1 Name memo1
Memo2 Name memo2
Memo3 Name memo3
Memo4 Name memo4
Text (kosongkan)
Edit1
Name edsms
Text (kosongkan)
Edit2
Name edhasil
Text (kosongkan)
Edit3
Name edno
Text (kosongkan)
Edit4
Name edhasil2
Caption TEXT 2 PDU
Button1
Name btT2P
Caption PDU 2 TEXT
Button2
Name btP2T
Caption HAPUS
Button3
Name bthapus

4. Ketikkan Script dibawah ini :


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
Panel1: TPanel;
edno: TEdit;
edhasil2: TEdit;
T2P: TButton;
P2T: TButton;
hapus: TButton;
edhasiil: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
edsms: TEdit;
Label8: TLabel;
memo1: TMemo;
memo2: TMemo;
memo3: TMemo;
procedure T2PClick(Sender: TObject);
procedure hapusClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }

end;

var
Form1: TForm1;
t_biner,t_heksa:string;
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
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 :='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';
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
if data = '6' then data :='110';
if data = '7' then data :='111';
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';
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
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);
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
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);
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
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;
form1.Memo2.Text:=jumlah_kata+hexa;
end;
end;

procedure TForm1.btT2PClick(Sender: TObject);


const
tipe_sms='11';
no_ref='00';
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105
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+memo2.Text;
end;

procedure TForm1.bthapusClick(Sender: TObject);


begin
edsms.Clear;
edhasil.Clear;
edno.Clear;
edhasil2.Clear;
memo1.Clear;
memo2.Clear;
memo3.Clear;
end;

end.

Jika sudah mengetik script seperti diatas, jalankan program dan akan tampil seperti
gambar 4.2.
Nama : Reggi Samudra TEXT TO PDU
Kelas : TT - 2C
NIM : 1731130105

5. Selanjutnya isikan pada kolom Isi pesan, Sms Center, dan Nomor Penerima yang terlah
tersedia. Setelah itu klik pada Button “TEXT 2 PDU” maka akan muncul hasil konversi
dari Isi Pesan, Sms Center, dan Nomor Penerima dan hasil konversi dari Text ke PDU.

F. HASIL DAN PEMBAHASAN


 Selesai penulisan listing program selanjutnya klik Run. Tampilan awal saat dilakukan
Run :
 Selanjutnya adalah mengisikan SMS Centre, Nomor Penerima, dan Isi Pesan pada
kolom yang telah tersedia. Lalu selanjutnya klik ‘TEXTtoPDU’ dan klik
‘PDUtoTEXT’ maka akan muncul hasil konversi dari SMS Centre, Nomor Penerima,
Isi Pesan, dan hasil konversi dari Text ke PDU setelah digabungkan serta hasil
konversi dari PDU ke Text.
 Jika ingin menghapus data dan memulai konversi lagi maka dapat di klik ‘Hapus’
sehingga data awal akan terhapus dan dapat dilakukan konversi kembali.

G. KESIMPULAN
Dengan menggunakan program Delphi7 dapat dilakukan pengubahan format
data ke Protocol Data Unit (PDU).

Anda mungkin juga menyukai