bab ii dasar teori - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/t1... ·...

14
6 BAB II DASAR TEORI Bab ini berisi dasar teori pendukung yang digunakan sebagai acuan dalam merealisasikan sistem. Teori teori yang dibahas pada bab ini dibagi menjadi 2 bagian yaitu perangkat keras dan perangkat lunak. Perangkat keras membahas teori yang digunakan dalam perancangan modul e-STNK diantaranya adalah mikokontroler ATMega 2560, modul GSM/GPRS SIMCOM SIM908, modul Liquid Crystal Display (LCD) keypad, dan RFID. Perangkat lunak membahas mengenai teori yang digunakan dalam perancangan perangkat lunak, diantaranya adalah Virtual Private Server (VPS) untuk membangun aplikasi TCP server, basis data, komunikasi socket, komunikasi GPRS, dan fungsi hash MD5. 2.1. Perangkat Keras 2.1.1. Mikrokontroler ATMega2560 ATMega2560 adalah mikrokontroler keluarga AVR yang dibuat oleh Atmel Corporation. Untuk memprogram mikrokontroler ini digunakan compiler Arduino. Gambar 2.1 menunjukkan konfigurasi pin mikrokontroler ATMega2560. Beberapa fasilitas ATMega2560 yang digunakan adalah sebagai berikut : 1. 4Kbytes Internal EEPROM. 2. 8KBytes Static Random Memory (SRAM). 3. 256Kbytes Self-Programmable Flash. 4. 86 saluran input / output. 5. 4 buah Universal Asynchronus Receiver Transceiver UART Hardware. 6. Antarmuka SPI. 7. Bekerja pada frekuensi 16MHz dan memiliki kecepatan 16MIPS.

Upload: doanque

Post on 20-May-2018

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

6

BAB II

DASAR TEORI

Bab ini berisi dasar teori pendukung yang digunakan sebagai acuan dalam

merealisasikan sistem. Teori – teori yang dibahas pada bab ini dibagi menjadi 2 bagian

yaitu perangkat keras dan perangkat lunak. Perangkat keras membahas teori yang

digunakan dalam perancangan modul e-STNK diantaranya adalah mikokontroler

ATMega 2560, modul GSM/GPRS SIMCOM SIM908, modul Liquid Crystal Display

(LCD) keypad, dan RFID. Perangkat lunak membahas mengenai teori yang digunakan

dalam perancangan perangkat lunak, diantaranya adalah Virtual Private Server (VPS)

untuk membangun aplikasi TCP server, basis data, komunikasi socket, komunikasi

GPRS, dan fungsi hash MD5.

2.1. Perangkat Keras

2.1.1. Mikrokontroler ATMega2560

ATMega2560 adalah mikrokontroler keluarga AVR yang dibuat oleh

Atmel Corporation. Untuk memprogram mikrokontroler ini digunakan compiler

Arduino. Gambar 2.1 menunjukkan konfigurasi pin mikrokontroler ATMega2560.

Beberapa fasilitas ATMega2560 yang digunakan adalah sebagai berikut :

1. 4Kbytes Internal EEPROM.

2. 8KBytes Static Random Memory (SRAM).

3. 256Kbytes Self-Programmable Flash.

4. 86 saluran input / output.

5. 4 buah Universal Asynchronus Receiver Transceiver UART Hardware.

6. Antarmuka SPI.

7. Bekerja pada frekuensi 16MHz dan memiliki kecepatan 16MIPS.

Page 2: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

7

Gambar 2.1. Konfigurasi pin mikrokontroler ATMega 2560 [4]

2.1.2. Modul GSM/GPRS SIMCOM SIM908

SIM908 merupakan modul GSM/GPRS yang memiliki fitur – fitur sebagai

berikut :

a. Quad-Band 850/900/1800/1900 MHz.

b. GPRS Mobile Station Class B.

c. GPRS Multislot class 10 yang memiliki downlink maksimal 85.6 kbps

dan uplink maksimal 42.8 kbps.

d. Integrated TCP/IP Stack.

e. Dikontrol dengan menggunakan ATCommand melalui komunikasi

serial.

f. Dua mode sms yaitu teks dan Protocol Data Unit (PDU).

g. Mekanisme pengisian ulang baterai otomatis.

Page 3: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

8

Gambar 2.2. Diagram konfigurasi pin SIM908 [5]

Gambar 2.2 menunjukkan konfigurasi pin modul SIM908. Modul SIM908

digunakan sebagai jembatan untuk berkomunikasi dengan server melalui

komunikasi GPRS menggunakan metode socket. Untuk mengontrol modul ini,

digunakan library GSM Shield arduino untuk SIM900 [10]. Contoh kode

komunikasinya dapat dilihat pada Kode Sumber 2.1.

1 #include "SIM900.h"

2 #include "inetGSM.h"

3

4 InetGSM inet;

5 bool started=false, serverConnected=false;

6 char strPaket[50], strRespon[50];

7 void setup()

8 {

9 Serial.begin(9600);

10 if (gsm.begin(19200))

11 {

12 Serial.println("GSM Connected");

13 started=true;

14 }

15 if(started)

16 {

17 if (inet.attachGPRS("internet", "", ""))

18 {

GN

D

GP

S-A

NT

GN

D

GN

D

GP

S-V

AN

T-I

N

GP

S-V

AN

T-O

UT

VC

HG

TE

MP

-BA

T

DT

R

TX

D

DC

D

RI

RX

D

CT

S

RT

S

GN

D

GN

D

VB

AT

VB

AT

GN

D

GND GND

GND GSM-ANT

PWRKEY GND

NC GND

GND I2C-SDA

DISP-CLK I2C-SCL

DISP-DATA NC

DISP-D/C NC

DISP-CS STATUS

GND NETLIGHT

PWM3

PWM2

PWM1

ADC

NC

GPS/DBG-RXD NC

SIM-DATA VDD-EXD

SIM-RST GND

SIM-CLK VRTC

SIM-VDD GND

SP

K1N

SP

K1P

MIC

1P

MIC

1N

SP

K2N

SP

K2P

MIC

2P

MIC

2N

NC

NC

GP

IO1/K

BR

0

GP

IO2/K

BR

1

GP

IO3/K

BR

2

GP

IO4/K

BC

0

GP

IO5/K

BC

1

GP

IO6/K

BC

2

GN

D

NC

NC

GN

D

GPS/DBG-TXD

NC

NC

NC

GND

80

79

78

77

70

69

76

75

74

73

64

1 60

68

67

66

65

72

71

2 59

3 58

4 57

5 56

6 55

7 54

9 52

8 53

11 50

12 49

10 51

14 47

SIM908

TOP VIEW13 48

15 46

16 45

17 44

21

22

23

24

25

26

27

28

29

30

31

32

37

33

34

35

36

18

19

20

43

42

41

63

62

61

38

39

40

Page 4: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

9

19 Serial.println("status = GPRS ATTACHED");

20 if(inet.connectTCPOnly("180.246.73.191",1210))

21 {

22 Serial.println("Connected to server..");

23 serverConnected=true;

24 }

25 }

26 else Serial.println("status = Server disconnected");

27 }

28 else Serial.println("GSM not connected");

29 }

30

31 void loop()

32 {

33 if(serverConnected)

34 {

35 if(inet.tcpSend(strPaket,strRespon)>0)

36 {

37 Serial.print(“Respon dari server = ”);

38 Serial.println(strRespon);

39 }

40 else Serial.print(“TCP Connection problem..”);

41 }

42 }

Kode Sumber 2.1. Contoh program komunikasi metode socket pada

modul SIM908

Penjelasan Kode Sumber 2.1 adalah sebagai berikut :

Baris 1 dan 2 mereferensikan library GSM shield yang digunakan.

Baris 4, 5 dan 6 merupakan deklarasi variabel yang dibutuhkan.

InetGSM merupakan kelas pada library inetGSM.h yang merupakan

kelas utama yang digunakan untuk melakukan komunikasi socket.

Baris 9 merupakan inisialisasi serial dengan baudrate 9600.

Baris 10 merupakan inisialisasi GSM dengan baudrate 19200. Variabel

gsm merupakan variabel dari kelas SIMCOM900 yang dideklarasikan

pada library SIM900.h. Kelas ini digunakan untuk menangani

komunikasi jaringan GSM.

Baris 17 menunjukkan bahwa modem SIM908 sedang berusaha

terkoneksi ke jaringan GPRS dengan APN (Access Point Name)

“internet”.

Baris 20 menunjukkan modem SIM908 sedang melakukan komunikasi

socket ke server dengan IP server 180.246.73.191 dan port 1210.

Page 5: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

10

Baris 35 menunjukkan pengiriman dan penerimaan data dengan

menggunakan komunikasi socket. Variabel strPaket merupakan paket

data yang dikirimkan ke server, sedangkan variabel strRespon

merupakan balasan yang diterima dari server.

2.1.3. Modul LCD Keypad

LCD dan keypad menggunakan modul LCD Keypad Shield dari DFRobot.

Modul ini terdiri dari sebuah LCD karakter 2x16 dan antarmuka keypad yang

terdiri atas 6 buah push button. LCD karakter tersebut mendukung 4 bit mode data

dan digunakan untuk menampilkan menu serta informasi dari berbagai proses

yang dilakukan oleh modul e-STNK. Untuk mengakses modul ini, digunakan

library LiquidCrystal pada arduino. Contoh penggunaan modul ini dapat dilihat

pada Kode Sumber 2.2.

1 #include "LiquidCrystal.h"

2

3 LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

4

5 void setup()

6 {

7 lcd.begin(16,2);

8 lcd.clear();

9 lcd.setCursor(0,0);

10 lcd.print(“E-STNK SYSTEM”);

11 }

Kode Sumber 2.2. Contoh program penggunaan modul LCD

Penjelasan Kode Sumber 2.2 adalah sebagai berikut :

Baris 1 mereferensikan library LiquidCrystal yang digunakan.

Baris 2 merupakan deklarasi variabel LiquidCrystal.

Baris 7 merupakan inisialisasi LCD.

Baris 8 melakukan clear pada LCD.

Baris 9 memindahkan cursor LCD ke posisi (0,0).

Baris 10 menuliskan “E-STNK SYSTEM” pada LCD dimulai dari

koordinat (0,0).

2.1.4. RFID

RFID atau Radio Frequency Identification adalah sebuah metode

identifikasi terhadap suatu obyek melalui data yang ditransmisikan melalui

Page 6: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

11

frekuensi radio. Sistem tersebut minimal memerlukan sebuah tag (yang berfungsi

sebagai transponder), sebuah reader (yang berfungsi sebagai interrogator), dan

sebuah antenna (yang berfungsi sebagai coupling device). Reader biasanya

terhubung dengan dengan sebuah host computer atau perangkat lainnya yang

memiliki kecerdasan untuk memproses lebih lanjut tag data dan memutuskan

untuk mengambil suatu tindakan.

Salah satu elemen penting pada RFID adalah data transfer. Data transfer

terjadi ketika terjadi hubungan antara sebuah tag dengan sebuah reader, yang

dikenal dengan coupling, melalui antena baik yang terpasang pada tag tersebut

maupun pada reader seperti yang diilustrasikan pada Gambar 2.3.

Gambar 2.3. Hubungan antara tag, reader dan antena RFID [6]

Elemen penting lainnya dalam sistem RFID adalah frekuensi untuk operasi

antara tag dan reader. Pemilihan suatu frekuensi didorong oleh kebutuhan aplikasi

seperti kecepatan, akurasi dan kondisi-kondisi lingkungan, yang mungkin

melibatkan juga regulasi dan standar yang mengatur suatu aplikasi.

Adapun frekuensi-frekuensi yang biasa digunakan pada RFID adalah

sebagai berikut :

Low Frequency (LF): kurang dari 135KHz

High Frequency (HF): pada 13.56 MHz

Ultra High Frequency (UHF) antara 433 MHz s/d 860 to 930 MHz

Microwave pada 2.45 GHz dan 5.8 GHz

Modul RFID MFRC522 yang digunakan bekerja pada frekuensi 13.56

MHz sehingga sudah mendukung untuk baca tulis data. Memiliki jarak

pembacaan kartu tag maksimum 5 cm dari antena. Kartu tag yang adalah mifare

ISO 14443A dengan kapasitas 1KB. Modul ini berkomunikasi dengan

mikrokontroler dengan menggunakan komunikasi SPI. Untuk mengontrol RFID

MFRC522 digunakan library RFID arduino [11]. Contoh penggunaan modul ini

dapat dilihat pada Kode Sumber 2.3.

Page 7: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

12

1 #include <SPI.h>

2

3 unsigned char flag;

4 unsigned char serNum[5];

5 unsigned char strData[32];

6 char serial[20];

7 char data[32];

8

9 void setup()

10 {

11 Serial.begin(9600);

12 SPI.begin();

13 MFRC522_Init();

14 }

15

16 void loop()

17 {

18 flag=0;

19 while(1)

20 {

21 ReadRFID_Data();

22 if(flag==1)break;

23 }

24 sprintf(serial,"%i%i%i%i%i",serNum[0],serNum[1],

25 serNum[2],serNum[3],serNum[4]);

26 for(int i=0;i<32;i++) strData[i]=(strHash[i]);

27 Serial.print(“Nomor serial kartu = “);

28 Serial.println(serial);

29 Serial.print(“Data pada kartu = “);

30 Serial.println(strData);

31 }

Kode Sumber 2.3. Contoh program pembacaan data pada modul

RFID MFRC522

Penjelasan Kode Sumber 2.3 adalah sebagai berikut :

Baris 1 mereferensikan library SPI yang dibutuhkan untuk mengakses

modul RFID.

Baris 3 sampai 7 mendeklarasikan variabel – variabel yang dibutuhkan.

Baris 11 menginisialisasi serial dengan baudrate 9600.

Baris 12 menginisialisasi SPI.

Baris 13 adalah fungsi untuk menginisialisasi modul RFID.

Baris 18 mereset nilai flag menjadi 0.

Baris 19 memulai perulangan tak berhingga untuk melakukan

pembacaan data. Hal ini dilakukan karena modul RFID menunggu user

untuk mendekatkan kartu tag.

Page 8: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

13

Baris 21 adalah fungsi untuk membaca data pada kartu tag yang

didekatkan. Jika data berhasil dibaca, didalam fungsi tersebut akan

menyimpan nomor serial kartu pada variabel serNum dan data yang

tersimpan di dalam kartu pada variabel strData serta mengubah nilai

flag menjadi 1 tanda bahwa pembacaan data berhasil dilakukan.

Baris 22 melakukan pengecekan terhadap variabel flag, bila

pembacaan data berhasil dilakukan, maka akan break dari perulangan

tak berhingga.

Baris 24 sampai 26 melakukan konversi nomor serial kartu dan data

kartu tag dari tipe data unsigned char menjadi char.

Baris 27 sampai 30 menampilkan data yang dibaca pada serial.

2.2. Perangkat Lunak

2.2.1. Virtual Private Server

Virtual Private Server (VPS) adalah mesin virtual yang disediakan oleh

perusahaan yang menawarkan jasa internet hosting. VPS berjalan di atas sebuah

software yang terdapat pada sebuah komputer fisik yang sama dengan pelanggan

lain. VPS bekerja layaknya sebuah komputer fisik dan dapat diatur berdasarkan

kebutuhan masing-masing penggunanya.

Pada model server virtual, software virtualization menciptakan lebih dari

satu komputer virtual yang memiliki harddisk, memori dan kartu jaringan yang

terpisah kepada beberapa user walaupun berasal dari sebuah komputer fisik yang

sama, tetapi melalui software virtualization ini server virtual dari masing-masing

user memiliki tingkat security yang lebih tinggi dan terpisah dari virtual server

yang lain. Masing masing server virtual dapat menjalankan sendiri sistem operasi

yang disesuaikan dengan kebutuhan user dan dapat secara indepen untuk

dijalankan ulang (reboot).

Aplikasi TCP server yang dijalankan di VPS bertugas untuk menerima dan

mengolah paket data dari modul e-STNK serta memberikan balasan dari request

yang diminta. Selain aplikasi TCP server, basis data juga dipasang pada VPS ini

sehingga mempercepat dalam proses transaksi data.

Page 9: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

14

2.2.2. Basis Data

Basis data merupakan sekumpulan data berisi informasi yang terdapat

dalam tabel yang saling berhubungan. Sedangkan tabel merupakan sekumpulan

entity data yang masing – masing berisi informasi. Pengolahan data dan

perancangan basis data yang tepat akan menghasilkan informasi yang berguna,

memiliki integritas data yang tinggi serta memudahkan dalam proses pencarian

data.

Standar bahasa yang digunakan untuk mengakses dan melakukan

manipulasi data dalam sistem basis data adalah SQL (Structured Query

Language). SQL dieksekusi pada Database Management System (DBMS). SQL

ini dipakai oleh berbagai macam DBMS seperti Microsoft Access, MySQL

Server, DB2, Informix, Microsoft SQL Server, Oracle, dan lain – lain. Pada

skripsi ini digunakan Microsoft SQL Server sebagai basis data server.

Tabel 2.1 menunjukkan ringkasan beberapa daftar sintaks – sintaks yang

umum digunakan dalam pengaksesan atau manipulasi basis data.

Tabel 2.1. Sintaks SQL yang digunakan (bersambung)

STATEMENT KEGUNAAN SINTAKS

INSERT INTO Memasukkan data-

data ke dalam kolom-

kolom suatu tabel

INSERT INTO Mahasiswa(NIM,

Nama, AlamatAsal,

TempatLahir, TanggalLahir,

AlamatTinggal, NoTelepon,

Fak_Key, Angkatan,

Keterangan) VALUES(@NIM,

@Nama, @AlamatAsal,

@TempatLahir, @TanggalLahir,

@AlamatTinggal, @NoTelepon,

@Fak_Key, @Angkatan,

@Keterangan)

SELECT Menampilkan data

kolom tertentu

SELECT * FROM Mahasiswa

UPDATE Memperbaharui data UPDATE Mahasiswa SET

NIM=@NIM, Nama=@Nama,

AlamatAsal=@AlamatAsal,

TempatLahir=@TempatLahir,

TanggalLahir=@TanggalLahir,

AlamatTinggal=@AlamatTinggal,

NoTelepon=@NoTelepon,

Fak_Key=@Fak_Key,

Angkatan=@Angkatan,

Keterangan=@Keterangan WHERE

Mahasiswa_Key=@Key

Page 10: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

15

Tabel 2.1. Sintaks SQL yang digunakan (lanjutan)

STATEMENT KEGUNAAN SINTAKS

DELETE

FROM

Menghapus baris-

baris tertentu pada

tabel sesuai kondisi

yang disyaratkan

DELETE FROM Mahasiswa

WHERE Mahasiswa_Key=@Key

AS Memberikan nama

alias untuk tabel

SELECT A.*, B.Fak_Nama,

B.Fak_Kode FROM Mahasiswa A,

Fakultas B WHERE

A.Fak_Key=B.Fak_Key

WHERE Memfilter akses atau

manipulasi data

berdasar kondisi

tertentu

SELECT *

FROM Mahasiswa

WHERE Mahasiswa_Key=@Key

AND Memfilter akses atau

manipulasi data

berdasar kondisi-

konsisi tertentu

SELECT A.*, B.Fak_Nama,

B.Fak_Kode FROM Mahasiswa A,

Fakultas B WHERE

A.Fak_Key=B.Fak_Key AND

A.Mahasiswa_Key=@Key

ORDER BY Menciptakan suatu

acuan urutan pada

kolom tertentu

SELECT A.*, B.Fak_Nama,

B.Fak_Kode FROM Mahasiswa A,

Fakultas B WHERE

A.Fak_Key=B.Fak_Key ORDER BY

Fak_Kode, NIM, Nama

BETWEEN Memfilter akses atau

manipulasi data

dengan suatu batasan

nilai

SELECT * FROM ParkirOut WHERE

Tanggal BETWEEN @tanggalAwal

AND @tanggalAkhir

GROUP BY Membuat suatu

pengelompokan

tampilan berdasar

kolom tertentu

SELECT COUNT(STNK_Key) AS

JUMLAH, TANGGAL FROM

ParkirOut WHERE

year(Tanggal)=@tahun AND

month(Tanggal)=@bulan GROUP

BY Tanggal

Pada Microsoft SQL Server, terdapat fitur replikasi yang memungkinkan

basis data pada sebuah server dapat disinkronisasi dengan basis data pada server

fisik yang lain. Fitur ini dimanfaatkan untuk membangun basis data pada server

cadangan, sehingga ketika server utama mengalami gangguan dan tidak dapat

online, maka server cadangan akan menggantikan fungsi dari server utama serta

melakukan replikasi data yang masuk ke database server cadangan. Hal ini

dimaksudkan agar ketika server utama bisa kembali online, basis data pada server

cadangan segera melakukan sinkronisasi agar data pada server utama kembali

utuh. Untuk melakukan replikasi, server utama dan server cadangan harus berada

Page 11: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

16

pada jaringan yang sama. Oleh karena itu dibuat sebuah jaringan Virtual Private

Network (VPN) sehingga kedua server dapat berada dalam satu jaringan yang

sama.

Terdapat empat komponen penting dalam melakukan replikasi basis data

yaitu [12]:

Publisher, merupakan basis data yang akan di replikasi setiap kali

terjadi perubahan data.

Subscriber, merupakan basis data yang menjadi target replikasi dari

publisher.

Distribution database, merupakan basis data yang didalamnya

terdapat semua perintah – perintah replikasi. Setiap kali terjadi

perubahan data pada publisher, SQL Server membuat perintah –

perintah replikasi pada distribution database yang kemudian akan

dilanjutkan ke subscriber.

Articles, merupakan tabel pada publisher yang akan direplikasi.

Gambar 2.4. Prinsip kerja dari transactional replication [13]

Gambar 2.4 menunjukkan prinsip kerja dari transactional replication.

Dapat dilihat bahwa terdapat dua buah SQL Agent yang bekerja pada replikasi ini,

Page 12: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

17

yaitu Log Reader Agent yang membaca log perubahan data pada publisher lalu

mengirimkannya ke distribution database. Agen yang kedua adalah Distribution

Agent yang akan meneruskan log tersebut ke subscriber.

2.2.3. Komunikasi Socket

Socket merupakan mekanisme komunikasi yang memungkinkan terjadinya

pertukaran data antar program atau proses, baik dalam satu mesin maupun antar

mesin melalui jaringan berbasis TCP/IP. Beberapa contoh aplikasinya adalah

fasilitas- fasilitas yang disediakan oleh mesin unix seperti telnet, rlogin, ssh, ftp,

dan lain lain yang menggunakan socket sebagai sarana komunikasi mereka.

Komunikasi socket diciptakan terutama untuk menjembatani komunikasi antara

dua buah program yang dijalankan pada mesin yang berbeda.

Pemrograman socket merupakan salah satu jenis pemrograman jaringan

komputer yang memiliki model client-server dan menggunakan socket sebagai

cara untuk pertukaran datanya. Untuk menciptakan sebuah komunikasi diantara

dua node, salah satu node harus memulai lebih dulu dan node yang lain harus

menunggu. Dalam pemrograman jaringan komputer node yang bertugas untuk

membangun koneksi disebut dengan client sedangkan node yang menunggu

adanya komunikasi yang masuk disebut server. Pola desain dasar untuk aplikasi

client-server berbasis komunikasi socket digambarkan pada Gambar 2.5.

Gambar 2.5. Pola desain dasar komunikasi socket [8]

Page 13: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

18

Penggunaan komunikasi socket berfungsi sebagai jembatan komunikasi

antara modul e-STNK dengan aplikasi TCP server pada komputer server.

Komputer server memiliki public IP serta port 1210 yang dibuka sehingga

SIM908 pada modul e-STNK dapat membangun komunikasi socket dengan

alamat public IP dan port tersebut. Komunikasi socket ini juga dipilih karena

dapat melewatkan data berupa string, sehingga memudahkan pemrosesan paket

data.

2.2.4. Komunikasi GPRS

General Packet Radio Service (GPRS) merupakan sebuah layanan paket

data pada jaringan mobile GSM. GPRS dikembangkan untuk memenuhi tuntutan

perkembangan pesat dari jumlah pemakai internet. Keuntungan dari GPRS adalah

layanan ini menyediakan layanan data menggunakan jaringan radio GSM,

sehingga operator GSM dapat menerapkan layanan ini tanpa mengubah

keseluruhan infrastruktur. Selain itu, GPRS juga memungkinkan operator jaringan

untuk menerapkan arsitektur jaringan berbasis IP untuk aplikasi data mobile secara

wireless. GPRS dapat dikelompokkan menjadi 3 kelas yang memiliki kemampuan

yang berbeda :

Class A, perangkat mobile dapat melakukan / menerima panggilan

secara simultan pada jaringan GSM dan GPRS.

Class B, perangkat mobile dapat melakukan / menerima panggilan pada

jaringan GSM atau GPRS, tetapi tidak simultan.

Class C, perangkat mobile dapat bekerja pada jaringan GPRS atau

GSM yang dipilih secara manual.

GPRS diimplementasikan pada modul e-STNK agar dapat berkomunikasi

dengan server menggunakan metode socket.

2.2.5. Fungsi Hash MD5

Hash merupakan salah satu algoritma kriptografis satu arah yang

digunakan untuk mengubah suatu plaintext (teks jelas) menjadi chipertext (teks

yang tersandi) [14]. Salah satu algoritma hash yang umum digunakan adalah MD5

dimana algoritma ini mengubah sebuah teks jelas ke teks yang jumlahnya tetap.

MD5 menghasilkan 128 bit nilai hash dan direpresentasikan ke dalam

Page 14: BAB II DASAR TEORI - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/T1... · memiliki kecerdasan untuk memproses lebih lanjut tag data dan ... mengolah paket data

19

heksadesimal sepanjang 32. Pada hash MD5, suatu teks yang telah di-hash dapat

di-dehash dengan precomputed table yaitu tabel yang berisi hasil hash dari banyak

teks yang telah di hash sebelumnya. Selain itu proses dehash juga dilakukan

dengan melakukan brute force atau dictionary attack. Oleh karena itu, fungsi hash

MD5 yang digunakan diperkuat dengan menggunakan salt, yaitu byte acak yang

ditambahkan ke plaintext sebagai tambahan input yang menyebabkan nilai hash

akan berubah jauh dari hash sebelumnya tanpa salt.

Fungsi hash MD5 ini diterapkan pada aplikasi server untuk mengubah nilai

nomor polisi kendaraan yang akan disimpan di kartu tag, serta untuk melakukan

verifikasi kartu tag tersebut. Untuk itu, dibuat sebuah class SimpleHash yang

memanfaatkan library System.Security.Cryptography pada .Net

framework. Contoh penggunaan class SimpleHash yang dibangun dapat dilihat

pada Kode Sumber 2.4.

1 string ComputeHash(string PlainText)

2 {

3 string result = SimpleHash.ComputeHash(PlainText,

4 “MD5”);

5 return result;

6 }

7

8 bool VerifyHash(string PlainText, string HashValue)

9 {

10 bool verify = SimpleHash.VerifyHash(PlainText, “MD5”,

11 HashValue);

12 return verify;

13 }

14

Kode Sumber 2.4. Contoh program penggunaan class SimpleHash

Penjelasan Kode Sumber 2.4 adalah sebagai berikut :

Fungsi ComputeHash pada baris 1 sampai baris 6 merupakan fungsi

yang akan mengubah plaintext menjadi nilai hash MD5 yang telah

dimodifikasi dengan penyisipan salt. Fungsi ini memberikan kembalian

berupa string.

Fungsi VerifyHash pada baris 8 sampai baris 13 merupakan fungsi

yang digunakan untuk melakukan verifikasi apakah nilai hash yang

dicek itu valid atau tidak. Fungsi ini akan memberikan kembalian

berupa boolean “True” jika nilai hash valid, dan “False” jika nilai hash

tidak valid.