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.
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 :
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 :
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
Cara 2 (internasional):
b. 91 : ada 1 pasang
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. Skema 8 bit ditandai dengan angka lebih besar dari 0 yang diubah ke heksa.
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
h 1 110 1000
3 2
e 00 11 0010 1
9 B
l 100 1 1011 00
F D
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!
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 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;
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.
G. KESIMPULAN
Dengan menggunakan program Delphi7 dapat dilakukan pengubahan format
data ke Protocol Data Unit (PDU).